/* A Bison parser, made by GNU Bison 2.0. */ /* Skeleton parser for Yacc-like parsing with Bison, Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ /* As a special exception, when this file is copied by Bison into a Bison output file, you may use that output file without restriction. This special exception was added by the Free Software Foundation in version 1.24 of Bison. */ /* Written by Richard Stallman by simplifying the original so called ``semantic'' parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* 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, EXECUTE_SYM = 405, EXISTS = 406, EXIT_SYM = 407, EXPANSION_SYM = 408, EXTENDED_SYM = 409, EXTENT_SIZE_SYM = 410, EXTRACT_SYM = 411, FALSE_SYM = 412, FAST_SYM = 413, FETCH_SYM = 414, FILE_SYM = 415, FIRST_SYM = 416, FIXED_SYM = 417, FLOAT_NUM = 418, FLOAT_SYM = 419, FLUSH_SYM = 420, FORCE_SYM = 421, FOREIGN = 422, FOR_SYM = 423, FOUND_SYM = 424, FRAC_SECOND_SYM = 425, FROM = 426, FULL = 427, FULLTEXT_SYM = 428, FUNCTION_SYM = 429, GE = 430, GEOMETRYCOLLECTION = 431, GEOMETRY_SYM = 432, GET_FORMAT = 433, GLOBAL_SYM = 434, GRANT = 435, GRANTS = 436, GROUP_SYM = 437, GROUP_CONCAT_SYM = 438, GT_SYM = 439, HANDLER_SYM = 440, HASH_SYM = 441, HAVING = 442, HELP_SYM = 443, HEX_NUM = 444, HIGH_PRIORITY = 445, HOST_SYM = 446, HOSTS_SYM = 447, HOUR_MICROSECOND_SYM = 448, HOUR_MINUTE_SYM = 449, HOUR_SECOND_SYM = 450, HOUR_SYM = 451, IDENT = 452, IDENTIFIED_SYM = 453, IDENT_QUOTED = 454, IF = 455, IGNORE_SYM = 456, IMPORT = 457, INDEXES = 458, INDEX_SYM = 459, INFILE = 460, INITIAL_SIZE_SYM = 461, INNER_SYM = 462, INNOBASE_SYM = 463, INOUT_SYM = 464, INSENSITIVE_SYM = 465, INSERT = 466, INSERT_METHOD = 467, INSTALL_SYM = 468, INTERVAL_SYM = 469, INTO = 470, INT_SYM = 471, INVOKER_SYM = 472, IN_SYM = 473, IS = 474, ISOLATION = 475, ISSUER_SYM = 476, ITERATE_SYM = 477, JOIN_SYM = 478, KEYS = 479, KEY_BLOCK_SIZE = 480, KEY_SYM = 481, KILL_SYM = 482, LANGUAGE_SYM = 483, LAST_SYM = 484, LE = 485, LEADING = 486, LEAVES = 487, LEAVE_SYM = 488, LEFT = 489, LESS_SYM = 490, LEVEL_SYM = 491, LEX_HOSTNAME = 492, LIKE = 493, LIMIT = 494, LINEAR_SYM = 495, LINES = 496, LINESTRING = 497, LIST_SYM = 498, LOAD = 499, LOCAL_SYM = 500, LOCATOR_SYM = 501, LOCKS_SYM = 502, LOCK_SYM = 503, LOGFILE_SYM = 504, LOGS_SYM = 505, LONGBLOB = 506, LONGTEXT = 507, LONG_NUM = 508, LONG_SYM = 509, LOOP_SYM = 510, LOW_PRIORITY = 511, LT = 512, MASTER_CONNECT_RETRY_SYM = 513, MASTER_HOST_SYM = 514, MASTER_LOG_FILE_SYM = 515, MASTER_LOG_POS_SYM = 516, MASTER_PASSWORD_SYM = 517, MASTER_PORT_SYM = 518, MASTER_SERVER_ID_SYM = 519, MASTER_SSL_CAPATH_SYM = 520, MASTER_SSL_CA_SYM = 521, MASTER_SSL_CERT_SYM = 522, MASTER_SSL_CIPHER_SYM = 523, MASTER_SSL_KEY_SYM = 524, MASTER_SSL_SYM = 525, MASTER_SSL_VERIFY_SERVER_CERT_SYM = 526, MASTER_SYM = 527, MASTER_USER_SYM = 528, MATCH = 529, MAX_CONNECTIONS_PER_HOUR = 530, MAX_QUERIES_PER_HOUR = 531, MAX_ROWS = 532, MAX_SIZE_SYM = 533, MAX_SYM = 534, MAX_UPDATES_PER_HOUR = 535, MAX_USER_CONNECTIONS_SYM = 536, MAX_VALUE_SYM = 537, MEDIUMBLOB = 538, MEDIUMINT = 539, MEDIUMTEXT = 540, MEDIUM_SYM = 541, MEMORY_SYM = 542, MERGE_SYM = 543, MICROSECOND_SYM = 544, MIGRATE_SYM = 545, MINUTE_MICROSECOND_SYM = 546, MINUTE_SECOND_SYM = 547, MINUTE_SYM = 548, MIN_ROWS = 549, MIN_SYM = 550, MODE_SYM = 551, MODIFIES_SYM = 552, MODIFY_SYM = 553, MOD_SYM = 554, MONTH_SYM = 555, MULTILINESTRING = 556, MULTIPOINT = 557, MULTIPOLYGON = 558, MUTEX_SYM = 559, NAMES_SYM = 560, NAME_SYM = 561, NATIONAL_SYM = 562, NATURAL = 563, NCHAR_STRING = 564, NCHAR_SYM = 565, NDBCLUSTER_SYM = 566, NE = 567, NEG = 568, NEW_SYM = 569, NEXT_SYM = 570, NODEGROUP_SYM = 571, NONE_SYM = 572, NOT2_SYM = 573, NOT_SYM = 574, NOW_SYM = 575, NO_SYM = 576, NO_WAIT_SYM = 577, NO_WRITE_TO_BINLOG = 578, NULL_SYM = 579, NUM = 580, NUMERIC_SYM = 581, NVARCHAR_SYM = 582, OFFSET_SYM = 583, OLD_PASSWORD = 584, ON = 585, ONE_SHOT_SYM = 586, ONE_SYM = 587, OPEN_SYM = 588, OPTIMIZE = 589, OPTIONS_SYM = 590, OPTION = 591, OPTIONALLY = 592, OR2_SYM = 593, ORDER_SYM = 594, OR_OR_SYM = 595, OR_SYM = 596, OUTER = 597, OUTFILE = 598, OUT_SYM = 599, OWNER_SYM = 600, PACK_KEYS_SYM = 601, PAGE_SYM = 602, PARAM_MARKER = 603, PARSER_SYM = 604, PARTIAL = 605, PARTITIONING_SYM = 606, PARTITIONS_SYM = 607, PARTITION_SYM = 608, PASSWORD = 609, PHASE_SYM = 610, PLUGINS_SYM = 611, PLUGIN_SYM = 612, POINT_SYM = 613, POLYGON = 614, PORT_SYM = 615, POSITION_SYM = 616, PRECISION = 617, PREPARE_SYM = 618, PRESERVE_SYM = 619, PREV_SYM = 620, PRIMARY_SYM = 621, PRIVILEGES = 622, PROCEDURE = 623, PROCESS = 624, PROCESSLIST_SYM = 625, PURGE = 626, QUARTER_SYM = 627, QUERY_SYM = 628, QUICK = 629, RANGE_SYM = 630, READS_SYM = 631, READ_ONLY_SYM = 632, READ_SYM = 633, READ_WRITE_SYM = 634, REAL = 635, REBUILD_SYM = 636, RECOVER_SYM = 637, REDOFILE_SYM = 638, REDO_BUFFER_SIZE_SYM = 639, REDUNDANT_SYM = 640, REFERENCES = 641, REGEXP = 642, RELAY_LOG_FILE_SYM = 643, RELAY_LOG_POS_SYM = 644, RELAY_THREAD = 645, RELEASE_SYM = 646, RELOAD = 647, REMOVE_SYM = 648, RENAME = 649, REORGANIZE_SYM = 650, REPAIR = 651, REPEATABLE_SYM = 652, REPEAT_SYM = 653, REPLACE = 654, REPLICATION = 655, REQUIRE_SYM = 656, RESET_SYM = 657, RESOURCES = 658, RESTORE_SYM = 659, RESTRICT = 660, RESUME_SYM = 661, RETURNS_SYM = 662, RETURN_SYM = 663, REVOKE = 664, RIGHT = 665, ROLLBACK_SYM = 666, ROLLUP_SYM = 667, ROUTINE_SYM = 668, ROWS_SYM = 669, ROW_FORMAT_SYM = 670, ROW_SYM = 671, RTREE_SYM = 672, SAVEPOINT_SYM = 673, SCHEDULE_SYM = 674, SECOND_MICROSECOND_SYM = 675, SECOND_SYM = 676, SECURITY_SYM = 677, SELECT_SYM = 678, SENSITIVE_SYM = 679, SEPARATOR_SYM = 680, SERIALIZABLE_SYM = 681, SERIAL_SYM = 682, SESSION_SYM = 683, SERVER_SYM = 684, SERVER_OPTIONS = 685, SET = 686, SET_VAR = 687, SHARE_SYM = 688, SHIFT_LEFT = 689, SHIFT_RIGHT = 690, SHOW = 691, SHUTDOWN = 692, SIGNED_SYM = 693, SIMPLE_SYM = 694, SLAVE = 695, SMALLINT = 696, SNAPSHOT_SYM = 697, SOCKET_SYM = 698, SONAME_SYM = 699, SOUNDS_SYM = 700, SPATIAL_SYM = 701, SPECIFIC_SYM = 702, SQLEXCEPTION_SYM = 703, SQLSTATE_SYM = 704, SQLWARNING_SYM = 705, SQL_BIG_RESULT = 706, SQL_BUFFER_RESULT = 707, SQL_CACHE_SYM = 708, SQL_CALC_FOUND_ROWS = 709, SQL_NO_CACHE_SYM = 710, SQL_SMALL_RESULT = 711, SQL_SYM = 712, SQL_THREAD = 713, SSL_SYM = 714, STARTING = 715, STARTS_SYM = 716, START_SYM = 717, STATUS_SYM = 718, STDDEV_SAMP_SYM = 719, STD_SYM = 720, STOP_SYM = 721, STORAGE_SYM = 722, STRAIGHT_JOIN = 723, STRING_SYM = 724, SUBDATE_SYM = 725, SUBJECT_SYM = 726, SUBPARTITIONS_SYM = 727, SUBPARTITION_SYM = 728, SUBSTRING = 729, SUM_SYM = 730, SUPER_SYM = 731, SUSPEND_SYM = 732, SYSDATE = 733, TABLES = 734, TABLESPACE = 735, TABLE_REF_PRIORITY = 736, TABLE_SYM = 737, TEMPORARY = 738, TEMPTABLE_SYM = 739, TERMINATED = 740, TEXT_STRING = 741, TEXT_SYM = 742, THAN_SYM = 743, THEN_SYM = 744, TIMESTAMP = 745, TIMESTAMP_ADD = 746, TIMESTAMP_DIFF = 747, TIME_SYM = 748, TINYBLOB = 749, TINYINT = 750, TINYTEXT = 751, TO_SYM = 752, TRAILING = 753, TRANSACTION_SYM = 754, TRANSACTIONAL_SYM = 755, TRIGGERS_SYM = 756, TRIGGER_SYM = 757, TRIM = 758, TRUE_SYM = 759, TRUNCATE_SYM = 760, TYPES_SYM = 761, TYPE_SYM = 762, UDF_RETURNS_SYM = 763, ULONGLONG_NUM = 764, UNCOMMITTED_SYM = 765, UNDEFINED_SYM = 766, UNDERSCORE_CHARSET = 767, UNDOFILE_SYM = 768, UNDO_BUFFER_SIZE_SYM = 769, UNDO_SYM = 770, UNICODE_SYM = 771, UNINSTALL_SYM = 772, UNION_SYM = 773, UNIQUE_SYM = 774, UNKNOWN_SYM = 775, UNLOCK_SYM = 776, UNSIGNED = 777, UNTIL_SYM = 778, UPDATE_SYM = 779, UPGRADE_SYM = 780, USAGE = 781, USER = 782, USE_FRM = 783, USE_SYM = 784, USING = 785, UTC_DATE_SYM = 786, UTC_TIMESTAMP_SYM = 787, UTC_TIME_SYM = 788, VALUES = 789, VALUE_SYM = 790, VARBINARY = 791, VARCHAR = 792, VARIABLES = 793, VARIANCE_SYM = 794, VARYING = 795, VAR_SAMP_SYM = 796, VIEW_SYM = 797, WAIT_SYM = 798, WARNINGS = 799, WEEK_SYM = 800, WHEN_SYM = 801, WHERE = 802, WHILE_SYM = 803, WITH = 804, WORK_SYM = 805, WRAPPER_SYM = 806, WRITE_SYM = 807, X509_SYM = 808, XA_SYM = 809, XOR = 810, YEAR_MONTH_SYM = 811, YEAR_SYM = 812, ZEROFILL = 813 }; #endif #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 EXECUTE_SYM 405 #define EXISTS 406 #define EXIT_SYM 407 #define EXPANSION_SYM 408 #define EXTENDED_SYM 409 #define EXTENT_SIZE_SYM 410 #define EXTRACT_SYM 411 #define FALSE_SYM 412 #define FAST_SYM 413 #define FETCH_SYM 414 #define FILE_SYM 415 #define FIRST_SYM 416 #define FIXED_SYM 417 #define FLOAT_NUM 418 #define FLOAT_SYM 419 #define FLUSH_SYM 420 #define FORCE_SYM 421 #define FOREIGN 422 #define FOR_SYM 423 #define FOUND_SYM 424 #define FRAC_SECOND_SYM 425 #define FROM 426 #define FULL 427 #define FULLTEXT_SYM 428 #define FUNCTION_SYM 429 #define GE 430 #define GEOMETRYCOLLECTION 431 #define GEOMETRY_SYM 432 #define GET_FORMAT 433 #define GLOBAL_SYM 434 #define GRANT 435 #define GRANTS 436 #define GROUP_SYM 437 #define GROUP_CONCAT_SYM 438 #define GT_SYM 439 #define HANDLER_SYM 440 #define HASH_SYM 441 #define HAVING 442 #define HELP_SYM 443 #define HEX_NUM 444 #define HIGH_PRIORITY 445 #define HOST_SYM 446 #define HOSTS_SYM 447 #define HOUR_MICROSECOND_SYM 448 #define HOUR_MINUTE_SYM 449 #define HOUR_SECOND_SYM 450 #define HOUR_SYM 451 #define IDENT 452 #define IDENTIFIED_SYM 453 #define IDENT_QUOTED 454 #define IF 455 #define IGNORE_SYM 456 #define IMPORT 457 #define INDEXES 458 #define INDEX_SYM 459 #define INFILE 460 #define INITIAL_SIZE_SYM 461 #define INNER_SYM 462 #define INNOBASE_SYM 463 #define INOUT_SYM 464 #define INSENSITIVE_SYM 465 #define INSERT 466 #define INSERT_METHOD 467 #define INSTALL_SYM 468 #define INTERVAL_SYM 469 #define INTO 470 #define INT_SYM 471 #define INVOKER_SYM 472 #define IN_SYM 473 #define IS 474 #define ISOLATION 475 #define ISSUER_SYM 476 #define ITERATE_SYM 477 #define JOIN_SYM 478 #define KEYS 479 #define KEY_BLOCK_SIZE 480 #define KEY_SYM 481 #define KILL_SYM 482 #define LANGUAGE_SYM 483 #define LAST_SYM 484 #define LE 485 #define LEADING 486 #define LEAVES 487 #define LEAVE_SYM 488 #define LEFT 489 #define LESS_SYM 490 #define LEVEL_SYM 491 #define LEX_HOSTNAME 492 #define LIKE 493 #define LIMIT 494 #define LINEAR_SYM 495 #define LINES 496 #define LINESTRING 497 #define LIST_SYM 498 #define LOAD 499 #define LOCAL_SYM 500 #define LOCATOR_SYM 501 #define LOCKS_SYM 502 #define LOCK_SYM 503 #define LOGFILE_SYM 504 #define LOGS_SYM 505 #define LONGBLOB 506 #define LONGTEXT 507 #define LONG_NUM 508 #define LONG_SYM 509 #define LOOP_SYM 510 #define LOW_PRIORITY 511 #define LT 512 #define MASTER_CONNECT_RETRY_SYM 513 #define MASTER_HOST_SYM 514 #define MASTER_LOG_FILE_SYM 515 #define MASTER_LOG_POS_SYM 516 #define MASTER_PASSWORD_SYM 517 #define MASTER_PORT_SYM 518 #define MASTER_SERVER_ID_SYM 519 #define MASTER_SSL_CAPATH_SYM 520 #define MASTER_SSL_CA_SYM 521 #define MASTER_SSL_CERT_SYM 522 #define MASTER_SSL_CIPHER_SYM 523 #define MASTER_SSL_KEY_SYM 524 #define MASTER_SSL_SYM 525 #define MASTER_SSL_VERIFY_SERVER_CERT_SYM 526 #define MASTER_SYM 527 #define MASTER_USER_SYM 528 #define MATCH 529 #define MAX_CONNECTIONS_PER_HOUR 530 #define MAX_QUERIES_PER_HOUR 531 #define MAX_ROWS 532 #define MAX_SIZE_SYM 533 #define MAX_SYM 534 #define MAX_UPDATES_PER_HOUR 535 #define MAX_USER_CONNECTIONS_SYM 536 #define MAX_VALUE_SYM 537 #define MEDIUMBLOB 538 #define MEDIUMINT 539 #define MEDIUMTEXT 540 #define MEDIUM_SYM 541 #define MEMORY_SYM 542 #define MERGE_SYM 543 #define MICROSECOND_SYM 544 #define MIGRATE_SYM 545 #define MINUTE_MICROSECOND_SYM 546 #define MINUTE_SECOND_SYM 547 #define MINUTE_SYM 548 #define MIN_ROWS 549 #define MIN_SYM 550 #define MODE_SYM 551 #define MODIFIES_SYM 552 #define MODIFY_SYM 553 #define MOD_SYM 554 #define MONTH_SYM 555 #define MULTILINESTRING 556 #define MULTIPOINT 557 #define MULTIPOLYGON 558 #define MUTEX_SYM 559 #define NAMES_SYM 560 #define NAME_SYM 561 #define NATIONAL_SYM 562 #define NATURAL 563 #define NCHAR_STRING 564 #define NCHAR_SYM 565 #define NDBCLUSTER_SYM 566 #define NE 567 #define NEG 568 #define NEW_SYM 569 #define NEXT_SYM 570 #define NODEGROUP_SYM 571 #define NONE_SYM 572 #define NOT2_SYM 573 #define NOT_SYM 574 #define NOW_SYM 575 #define NO_SYM 576 #define NO_WAIT_SYM 577 #define NO_WRITE_TO_BINLOG 578 #define NULL_SYM 579 #define NUM 580 #define NUMERIC_SYM 581 #define NVARCHAR_SYM 582 #define OFFSET_SYM 583 #define OLD_PASSWORD 584 #define ON 585 #define ONE_SHOT_SYM 586 #define ONE_SYM 587 #define OPEN_SYM 588 #define OPTIMIZE 589 #define OPTIONS_SYM 590 #define OPTION 591 #define OPTIONALLY 592 #define OR2_SYM 593 #define ORDER_SYM 594 #define OR_OR_SYM 595 #define OR_SYM 596 #define OUTER 597 #define OUTFILE 598 #define OUT_SYM 599 #define OWNER_SYM 600 #define PACK_KEYS_SYM 601 #define PAGE_SYM 602 #define PARAM_MARKER 603 #define PARSER_SYM 604 #define PARTIAL 605 #define PARTITIONING_SYM 606 #define PARTITIONS_SYM 607 #define PARTITION_SYM 608 #define PASSWORD 609 #define PHASE_SYM 610 #define PLUGINS_SYM 611 #define PLUGIN_SYM 612 #define POINT_SYM 613 #define POLYGON 614 #define PORT_SYM 615 #define POSITION_SYM 616 #define PRECISION 617 #define PREPARE_SYM 618 #define PRESERVE_SYM 619 #define PREV_SYM 620 #define PRIMARY_SYM 621 #define PRIVILEGES 622 #define PROCEDURE 623 #define PROCESS 624 #define PROCESSLIST_SYM 625 #define PURGE 626 #define QUARTER_SYM 627 #define QUERY_SYM 628 #define QUICK 629 #define RANGE_SYM 630 #define READS_SYM 631 #define READ_ONLY_SYM 632 #define READ_SYM 633 #define READ_WRITE_SYM 634 #define REAL 635 #define REBUILD_SYM 636 #define RECOVER_SYM 637 #define REDOFILE_SYM 638 #define REDO_BUFFER_SIZE_SYM 639 #define REDUNDANT_SYM 640 #define REFERENCES 641 #define REGEXP 642 #define RELAY_LOG_FILE_SYM 643 #define RELAY_LOG_POS_SYM 644 #define RELAY_THREAD 645 #define RELEASE_SYM 646 #define RELOAD 647 #define REMOVE_SYM 648 #define RENAME 649 #define REORGANIZE_SYM 650 #define REPAIR 651 #define REPEATABLE_SYM 652 #define REPEAT_SYM 653 #define REPLACE 654 #define REPLICATION 655 #define REQUIRE_SYM 656 #define RESET_SYM 657 #define RESOURCES 658 #define RESTORE_SYM 659 #define RESTRICT 660 #define RESUME_SYM 661 #define RETURNS_SYM 662 #define RETURN_SYM 663 #define REVOKE 664 #define RIGHT 665 #define ROLLBACK_SYM 666 #define ROLLUP_SYM 667 #define ROUTINE_SYM 668 #define ROWS_SYM 669 #define ROW_FORMAT_SYM 670 #define ROW_SYM 671 #define RTREE_SYM 672 #define SAVEPOINT_SYM 673 #define SCHEDULE_SYM 674 #define SECOND_MICROSECOND_SYM 675 #define SECOND_SYM 676 #define SECURITY_SYM 677 #define SELECT_SYM 678 #define SENSITIVE_SYM 679 #define SEPARATOR_SYM 680 #define SERIALIZABLE_SYM 681 #define SERIAL_SYM 682 #define SESSION_SYM 683 #define SERVER_SYM 684 #define SERVER_OPTIONS 685 #define SET 686 #define SET_VAR 687 #define SHARE_SYM 688 #define SHIFT_LEFT 689 #define SHIFT_RIGHT 690 #define SHOW 691 #define SHUTDOWN 692 #define SIGNED_SYM 693 #define SIMPLE_SYM 694 #define SLAVE 695 #define SMALLINT 696 #define SNAPSHOT_SYM 697 #define SOCKET_SYM 698 #define SONAME_SYM 699 #define SOUNDS_SYM 700 #define SPATIAL_SYM 701 #define SPECIFIC_SYM 702 #define SQLEXCEPTION_SYM 703 #define SQLSTATE_SYM 704 #define SQLWARNING_SYM 705 #define SQL_BIG_RESULT 706 #define SQL_BUFFER_RESULT 707 #define SQL_CACHE_SYM 708 #define SQL_CALC_FOUND_ROWS 709 #define SQL_NO_CACHE_SYM 710 #define SQL_SMALL_RESULT 711 #define SQL_SYM 712 #define SQL_THREAD 713 #define SSL_SYM 714 #define STARTING 715 #define STARTS_SYM 716 #define START_SYM 717 #define STATUS_SYM 718 #define STDDEV_SAMP_SYM 719 #define STD_SYM 720 #define STOP_SYM 721 #define STORAGE_SYM 722 #define STRAIGHT_JOIN 723 #define STRING_SYM 724 #define SUBDATE_SYM 725 #define SUBJECT_SYM 726 #define SUBPARTITIONS_SYM 727 #define SUBPARTITION_SYM 728 #define SUBSTRING 729 #define SUM_SYM 730 #define SUPER_SYM 731 #define SUSPEND_SYM 732 #define SYSDATE 733 #define TABLES 734 #define TABLESPACE 735 #define TABLE_REF_PRIORITY 736 #define TABLE_SYM 737 #define TEMPORARY 738 #define TEMPTABLE_SYM 739 #define TERMINATED 740 #define TEXT_STRING 741 #define TEXT_SYM 742 #define THAN_SYM 743 #define THEN_SYM 744 #define TIMESTAMP 745 #define TIMESTAMP_ADD 746 #define TIMESTAMP_DIFF 747 #define TIME_SYM 748 #define TINYBLOB 749 #define TINYINT 750 #define TINYTEXT 751 #define TO_SYM 752 #define TRAILING 753 #define TRANSACTION_SYM 754 #define TRANSACTIONAL_SYM 755 #define TRIGGERS_SYM 756 #define TRIGGER_SYM 757 #define TRIM 758 #define TRUE_SYM 759 #define TRUNCATE_SYM 760 #define TYPES_SYM 761 #define TYPE_SYM 762 #define UDF_RETURNS_SYM 763 #define ULONGLONG_NUM 764 #define UNCOMMITTED_SYM 765 #define UNDEFINED_SYM 766 #define UNDERSCORE_CHARSET 767 #define UNDOFILE_SYM 768 #define UNDO_BUFFER_SIZE_SYM 769 #define UNDO_SYM 770 #define UNICODE_SYM 771 #define UNINSTALL_SYM 772 #define UNION_SYM 773 #define UNIQUE_SYM 774 #define UNKNOWN_SYM 775 #define UNLOCK_SYM 776 #define UNSIGNED 777 #define UNTIL_SYM 778 #define UPDATE_SYM 779 #define UPGRADE_SYM 780 #define USAGE 781 #define USER 782 #define USE_FRM 783 #define USE_SYM 784 #define USING 785 #define UTC_DATE_SYM 786 #define UTC_TIMESTAMP_SYM 787 #define UTC_TIME_SYM 788 #define VALUES 789 #define VALUE_SYM 790 #define VARBINARY 791 #define VARCHAR 792 #define VARIABLES 793 #define VARIANCE_SYM 794 #define VARYING 795 #define VAR_SAMP_SYM 796 #define VIEW_SYM 797 #define WAIT_SYM 798 #define WARNINGS 799 #define WEEK_SYM 800 #define WHEN_SYM 801 #define WHERE 802 #define WHILE_SYM 803 #define WITH 804 #define WORK_SYM 805 #define WRAPPER_SYM 806 #define WRITE_SYM 807 #define X509_SYM 808 #define XA_SYM 809 #define XOR 810 #define YEAR_MONTH_SYM 811 #define YEAR_SYM 812 #define ZEROFILL 813 /* Copy the first part of user declarations. */ #line 18 "sql_yacc.yy" /* thd is passed as an arg 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 #include 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:
  yyerrlab1:
  #if defined (__GNUC_MINOR__) && 2093 <= (__GNUC__ * 1000 + __GNUC_MINOR__)
    __attribute__ ((__unused__))
  #endif
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:
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
The actions are used to generate the following code:
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"
@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 . See SQL:2003, Part 2, section 8.4 , Note 184, page 383. This function returns the proper item for the SQL expression left [NOT] IN ( expr ) @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 , page 383, - SQL:2003, Part 2, section 7.2 , page 296, - SQL:2003, Part 2, section 6.3 , page 174, - SQL:2003, Part 2, section 7.15 , page 370, - SQL:2003 Feature F561, "Full value expressions". The exception in SQL:2003 Note 184 means: Item_singlerow_subselect, which corresponds to a , should be re-interpreted as an Item_in_subselect, which corresponds to a when used inside an . Our reading of Note 184 is reccursive, so that all: - IN (( )) - IN ((( ))) - IN '('^N ')'^N - etc should be interpreted as a
, no matter how deep in the expression the 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 #if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #line 444 "sql_yacc.yy" typedef union YYSTYPE { 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_list; List *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 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; 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; } YYSTYPE; /* Line 190 of yacc.c. */ #line 1671 "sql_yacc.cc" # 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 488 "sql_yacc.yy" bool my_yyoverflow(short **a, YYSTYPE **b, ulong *yystacksize); /* Line 213 of yacc.c. */ #line 1686 "sql_yacc.cc" #if ! defined (yyoverflow) || YYERROR_VERBOSE # ifndef YYFREE # define YYFREE free # endif # ifndef YYMALLOC # define YYMALLOC malloc # endif /* 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 # else # define YYSTACK_ALLOC alloca # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's `empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # else # if defined (__STDC__) || defined (__cplusplus) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # 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 { short int 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 (short int) + 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 \ { \ register YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (To)[yyi] = (From)[yyi]; \ } \ while (0) # endif # endif /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack, Stack, yysize); \ Stack = &yyptr->Stack; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif #if defined (__STDC__) || defined (__cplusplus) typedef signed char yysigned_char; #else typedef short int yysigned_char; #endif /* YYFINAL -- State number of the termination state. */ #define YYFINAL 536 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 43586 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 578 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 845 /* YYNRULES -- Number of rules. */ #define YYNRULES 2343 /* YYNRULES -- Number of states. */ #define YYNSTATES 4006 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 813 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ static const unsigned short int 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, 571, 2, 2, 2, 565, 560, 2, 568, 569, 563, 562, 570, 561, 575, 564, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 577, 576, 2, 2, 2, 2, 574, 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, 566, 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, 572, 559, 573, 567, 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 }; #if YYDEBUG /* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in YYRHS. */ static const unsigned short int 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, 1453, 1459, 1461, 1463, 1467, 1472, 1477, 1480, 1483, 1486, 1490, 1494, 1498, 1503, 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526, 1528, 1530, 1532, 1534, 1537, 1538, 1540, 1542, 1544, 1546, 1548, 1550, 1554, 1556, 1558, 1561, 1564, 1572, 1581, 1590, 1593, 1596, 1597, 1599, 1602, 1603, 1605, 1608, 1609, 1614, 1618, 1622, 1626, 1628, 1633, 1635, 1637, 1643, 1646, 1652, 1655, 1660, 1662, 1668, 1674, 1679, 1683, 1685, 1687, 1690, 1692, 1694, 1697, 1699, 1701, 1703, 1706, 1710, 1713, 1717, 1720, 1723, 1727, 1731, 1735, 1736, 1743, 1744, 1751, 1754, 1756, 1758, 1760, 1762, 1764, 1766, 1768, 1770, 1772, 1774, 1776, 1779, 1782, 1784, 1787, 1789, 1792, 1796, 1799, 1801, 1803, 1805, 1807, 1809, 1811, 1813, 1816, 1817, 1821, 1823, 1829, 1830, 1832, 1835, 1837, 1839, 1841, 1843, 1844, 1848, 1849, 1851, 1852, 1854, 1857, 1859, 1861, 1864, 1867, 1872, 1874, 1878, 1881, 1883, 1886, 1889, 1892, 1895, 1897, 1900, 1902, 1904, 1906, 1908, 1910, 1911, 1914, 1916, 1918, 1920, 1922, 1924, 1925, 1928, 1930, 1932, 1933, 1935, 1936, 1939, 1941, 1944, 1948, 1951, 1952, 1954, 1955, 1957, 1959, 1962, 1963, 1965, 1966, 1971, 1973, 1978, 1982, 1984, 1985, 1987, 1990, 1992, 1996, 2000, 2003, 2006, 2009, 2011, 2013, 2016, 2019, 2022, 2024, 2027, 2030, 2033, 2036, 2038, 2040, 2041, 2043, 2045, 2047, 2049, 2050, 2052, 2054, 2056, 2057, 2059, 2062, 2063, 2065, 2067, 2070, 2073, 2076, 2078, 2082, 2086, 2088, 2090, 2092, 2097, 2100, 2102, 2107, 2108, 2110, 2111, 2114, 2116, 2120, 2121, 2128, 2129, 2135, 2136, 2142, 2143, 2149, 2150, 2156, 2157, 2162, 2163, 2174, 2178, 2183, 2187, 2191, 2199, 2200, 2204, 2206, 2211, 2212, 2216, 2217, 2220, 2221, 2223, 2224, 2227, 2230, 2233, 2236, 2238, 2240, 2242, 2246, 2251, 2252, 2260, 2261, 2268, 2269, 2275, 2276, 2283, 2288, 2290, 2293, 2295, 2297, 2298, 2304, 2305, 2309, 2312, 2313, 2319, 2320, 2321, 2328, 2330, 2334, 2336, 2338, 2342, 2345, 2349, 2352, 2357, 2358, 2365, 2366, 2367, 2376, 2381, 2386, 2390, 2394, 2397, 2400, 2407, 2413, 2417, 2423, 2425, 2427, 2429, 2430, 2432, 2433, 2435, 2436, 2438, 2440, 2441, 2444, 2446, 2447, 2449, 2451, 2453, 2454, 2460, 2464, 2465, 2471, 2475, 2479, 2480, 2484, 2485, 2488, 2490, 2494, 2495, 2497, 2499, 2500, 2503, 2505, 2509, 2510, 2517, 2518, 2525, 2526, 2532, 2533, 2535, 2537, 2538, 2545, 2546, 2548, 2550, 2553, 2555, 2557, 2559, 2560, 2567, 2570, 2571, 2577, 2578, 2580, 2582, 2585, 2587, 2589, 2591, 2593, 2595, 2598, 2599, 2606, 2607, 2609, 2611, 2612, 2617, 2618, 2623, 2628, 2632, 2638, 2640, 2644, 2648, 2652, 2658, 2660, 2664, 2667, 2669, 2671, 2672, 2679, 2681, 2685, 2689, 2690, 2693, 2694, 2699, 2700, 2703, 2705, 2708, 2713, 2716, 2720, 2721, 2725, 2726, 2727, 2734, 2737, 2739, 2741, 2744, 2747, 2756, 2761, 2762, 2764, 2767, 2769, 2771, 2773, 2775, 2777, 2779, 2781, 2783, 2785, 2787, 2789, 2790, 2793, 2798, 2802, 2804, 2806, 2811, 2812, 2813, 2815, 2817, 2818, 2821, 2824, 2826, 2828, 2829, 2832, 2833, 2837, 2838, 2842, 2846, 2847, 2851, 2852, 2856, 2859, 2861, 2865, 2870, 2874, 2879, 2883, 2888, 2890, 2894, 2899, 2903, 2907, 2914, 2916, 2922, 2929, 2935, 2943, 2950, 2959, 2965, 2972, 2977, 2982, 2988, 2992, 2997, 2999, 3003, 3005, 3009, 3011, 3015, 3019, 3021, 3025, 3029, 3034, 3039, 3041, 3045, 3049, 3053, 3057, 3061, 3063, 3067, 3069, 3071, 3073, 3075, 3077, 3079, 3081, 3083, 3085, 3087, 3089, 3091, 3093, 3095, 3097, 3099, 3101, 3104, 3106, 3108, 3110, 3112, 3114, 3118, 3120, 3122, 3124, 3126, 3130, 3133, 3136, 3139, 3142, 3146, 3150, 3156, 3163, 3168, 3173, 3181, 3184, 3191, 3197, 3204, 3211, 3216, 3221, 3226, 3228, 3233, 3240, 3243, 3248, 3253, 3258, 3269, 3276, 3281, 3286, 3293, 3298, 3303, 3308, 3315, 3320, 3328, 3336, 3344, 3351, 3358, 3365, 3372, 3376, 3381, 3388, 3397, 3400, 3403, 3408, 3416, 3424, 3431, 3438, 3441, 3446, 3453, 3460, 3469, 3478, 3485, 3494, 3501, 3504, 3509, 3518, 3527, 3530, 3533, 3536, 3541, 3546, 3551, 3556, 3560, 3569, 3574, 3581, 3586, 3591, 3596, 3603, 3612, 3619, 3624, 3631, 3633, 3640, 3645, 3650, 3655, 3660, 3665, 3672, 3677, 3678, 3684, 3691, 3694, 3698, 3699, 3704, 3705, 3709, 3710, 3712, 3713, 3716, 3718, 3722, 3727, 3732, 3738, 3743, 3748, 3753, 3759, 3764, 3765, 3766, 3774, 3779, 3785, 3790, 3796, 3801, 3806, 3811, 3816, 3821, 3827, 3828, 3837, 3838, 3842, 3846, 3848, 3853, 3854, 3856, 3857, 3860, 3861, 3863, 3864, 3868, 3871, 3875, 3878, 3880, 3883, 3885, 3888, 3890, 3892, 3894, 3897, 3898, 3900, 3901, 3904, 3906, 3910, 3912, 3916, 3917, 3920, 3922, 3926, 3927, 3929, 3930, 3933, 3938, 3944, 3946, 3948, 3950, 3952, 3956, 3960, 3964, 3965, 3972, 3973, 3980, 3981, 3990, 3995, 3996, 4005, 4006, 4017, 4024, 4025, 4034, 4035, 4046, 4053, 4055, 4058, 4061, 4062, 4067, 4068, 4080, 4084, 4091, 4092, 4096, 4097, 4098, 4104, 4105, 4107, 4108, 4110, 4111, 4114, 4118, 4122, 4124, 4126, 4127, 4135, 4136, 4144, 4146, 4149, 4150, 4151, 4154, 4155, 4158, 4159, 4161, 4163, 4165, 4167, 4171, 4173, 4177, 4179, 4181, 4183, 4185, 4187, 4189, 4191, 4193, 4195, 4197, 4199, 4201, 4203, 4205, 4207, 4209, 4211, 4213, 4215, 4217, 4219, 4221, 4223, 4225, 4227, 4229, 4230, 4232, 4234, 4235, 4238, 4239, 4241, 4242, 4243, 4247, 4248, 4249, 4253, 4256, 4257, 4258, 4263, 4268, 4271, 4272, 4275, 4278, 4282, 4286, 4288, 4291, 4292, 4294, 4295, 4300, 4305, 4308, 4309, 4311, 4313, 4314, 4316, 4317, 4319, 4322, 4324, 4328, 4332, 4334, 4336, 4338, 4340, 4341, 4344, 4346, 4348, 4350, 4352, 4354, 4356, 4358, 4360, 4362, 4364, 4366, 4368, 4370, 4372, 4374, 4376, 4378, 4380, 4382, 4384, 4386, 4388, 4390, 4391, 4392, 4399, 4400, 4402, 4406, 4408, 4412, 4413, 4416, 4420, 4422, 4425, 4427, 4428, 4432, 4433, 4439, 4442, 4444, 4445, 4449, 4456, 4457, 4464, 4469, 4474, 4479, 4484, 4490, 4495, 4500, 4506, 4513, 4518, 4520, 4524, 4526, 4527, 4530, 4531, 4533, 4534, 4535, 4544, 4545, 4546, 4553, 4554, 4556, 4558, 4560, 4562, 4564, 4567, 4569, 4571, 4573, 4577, 4582, 4583, 4587, 4591, 4593, 4596, 4599, 4600, 4604, 4605, 4611, 4615, 4617, 4621, 4623, 4627, 4629, 4631, 4632, 4634, 4635, 4640, 4641, 4643, 4647, 4649, 4651, 4653, 4654, 4655, 4662, 4663, 4664, 4676, 4680, 4682, 4686, 4690, 4692, 4696, 4697, 4699, 4700, 4705, 4706, 4713, 4714, 4720, 4721, 4728, 4730, 4734, 4738, 4744, 4745, 4748, 4749, 4752, 4754, 4756, 4758, 4762, 4763, 4765, 4766, 4770, 4773, 4778, 4783, 4787, 4792, 4797, 4800, 4802, 4806, 4810, 4817, 4834, 4837, 4840, 4841, 4848, 4854, 4857, 4860, 4863, 4865, 4867, 4869, 4875, 4881, 4884, 4887, 4891, 4894, 4897, 4900, 4904, 4907, 4910, 4912, 4916, 4921, 4925, 4929, 4932, 4935, 4939, 4943, 4947, 4951, 4955, 4959, 4963, 4967, 4969, 4971, 4973, 4975, 4977, 4978, 4980, 4981, 4984, 4985, 4987, 4989, 4991, 4992, 4995, 4996, 4999, 5000, 5003, 5006, 5007, 5012, 5013, 5018, 5020, 5022, 5023, 5025, 5027, 5028, 5030, 5032, 5033, 5038, 5042, 5044, 5045, 5049, 5054, 5057, 5059, 5061, 5063, 5065, 5067, 5069, 5071, 5073, 5074, 5076, 5077, 5081, 5085, 5087, 5089, 5091, 5094, 5095, 5099, 5103, 5106, 5109, 5113, 5114, 5116, 5118, 5121, 5122, 5127, 5133, 5134, 5135, 5136, 5137, 5156, 5159, 5160, 5162, 5163, 5165, 5167, 5168, 5170, 5172, 5173, 5176, 5179, 5181, 5185, 5190, 5194, 5198, 5199, 5202, 5205, 5207, 5211, 5215, 5216, 5220, 5221, 5225, 5228, 5232, 5234, 5236, 5239, 5240, 5243, 5245, 5247, 5250, 5253, 5255, 5257, 5259, 5261, 5263, 5266, 5269, 5271, 5273, 5275, 5277, 5279, 5281, 5283, 5286, 5289, 5292, 5295, 5298, 5300, 5302, 5304, 5306, 5308, 5310, 5312, 5316, 5322, 5324, 5326, 5328, 5330, 5332, 5336, 5341, 5347, 5349, 5355, 5359, 5362, 5364, 5368, 5371, 5373, 5375, 5377, 5379, 5381, 5383, 5385, 5387, 5389, 5391, 5393, 5395, 5397, 5399, 5401, 5405, 5408, 5410, 5412, 5414, 5416, 5418, 5420, 5422, 5424, 5426, 5428, 5430, 5432, 5434, 5436, 5438, 5440, 5442, 5444, 5446, 5448, 5450, 5452, 5454, 5456, 5458, 5460, 5462, 5464, 5466, 5468, 5470, 5472, 5474, 5476, 5478, 5480, 5482, 5484, 5486, 5488, 5490, 5492, 5494, 5496, 5498, 5500, 5502, 5504, 5506, 5508, 5510, 5512, 5514, 5516, 5518, 5520, 5522, 5524, 5526, 5528, 5530, 5532, 5534, 5536, 5538, 5540, 5542, 5544, 5546, 5548, 5550, 5552, 5554, 5556, 5558, 5560, 5562, 5564, 5566, 5568, 5570, 5572, 5574, 5576, 5578, 5580, 5582, 5584, 5586, 5588, 5590, 5592, 5594, 5596, 5598, 5600, 5602, 5604, 5606, 5608, 5610, 5612, 5614, 5616, 5618, 5620, 5622, 5624, 5626, 5628, 5630, 5632, 5634, 5636, 5638, 5640, 5642, 5644, 5646, 5648, 5650, 5652, 5654, 5656, 5658, 5660, 5662, 5664, 5666, 5668, 5670, 5672, 5674, 5676, 5678, 5680, 5682, 5684, 5686, 5688, 5690, 5692, 5694, 5696, 5698, 5700, 5702, 5704, 5706, 5708, 5710, 5712, 5714, 5716, 5718, 5720, 5722, 5724, 5726, 5728, 5730, 5732, 5734, 5736, 5738, 5740, 5742, 5744, 5746, 5748, 5750, 5752, 5754, 5756, 5758, 5760, 5762, 5764, 5766, 5768, 5770, 5772, 5774, 5776, 5778, 5780, 5782, 5784, 5786, 5788, 5790, 5792, 5794, 5796, 5798, 5800, 5802, 5804, 5806, 5808, 5810, 5812, 5814, 5816, 5818, 5820, 5822, 5824, 5826, 5828, 5830, 5832, 5834, 5836, 5838, 5840, 5842, 5844, 5846, 5848, 5850, 5852, 5854, 5856, 5858, 5860, 5862, 5864, 5866, 5868, 5870, 5872, 5874, 5876, 5878, 5880, 5882, 5884, 5886, 5888, 5890, 5892, 5894, 5896, 5898, 5900, 5902, 5904, 5906, 5908, 5910, 5912, 5914, 5916, 5918, 5920, 5922, 5924, 5926, 5928, 5930, 5932, 5934, 5936, 5938, 5940, 5942, 5944, 5946, 5948, 5950, 5952, 5954, 5956, 5958, 5960, 5962, 5964, 5966, 5968, 5970, 5972, 5974, 5976, 5978, 5980, 5982, 5984, 5986, 5988, 5990, 5992, 5994, 5996, 5998, 6000, 6002, 6004, 6005, 6010, 6011, 6013, 6015, 6019, 6020, 6023, 6025, 6027, 6029, 6031, 6032, 6034, 6035, 6037, 6039, 6041, 6042, 6045, 6048, 6051, 6053, 6056, 6061, 6067, 6072, 6079, 6082, 6086, 6090, 6094, 6100, 6102, 6106, 6110, 6113, 6116, 6119, 6121, 6123, 6128, 6133, 6135, 6137, 6139, 6141, 6143, 6144, 6149, 6151, 6153, 6155, 6159, 6163, 6165, 6167, 6170, 6173, 6174, 6178, 6183, 6187, 6188, 6196, 6198, 6201, 6203, 6205, 6207, 6209, 6211, 6213, 6214, 6220, 6222, 6224, 6226, 6228, 6230, 6234, 6241, 6248, 6255, 6263, 6267, 6276, 6285, 6294, 6295, 6297, 6299, 6302, 6303, 6305, 6307, 6311, 6312, 6316, 6317, 6321, 6322, 6326, 6327, 6331, 6333, 6335, 6337, 6339, 6341, 6343, 6345, 6347, 6349, 6351, 6353, 6356, 6359, 6361, 6365, 6368, 6371, 6374, 6377, 6380, 6383, 6386, 6389, 6391, 6393, 6394, 6396, 6400, 6402, 6405, 6408, 6411, 6413, 6417, 6421, 6423, 6425, 6429, 6431, 6435, 6440, 6446, 6448, 6449, 6453, 6457, 6459, 6461, 6462, 6465, 6468, 6471, 6474, 6475, 6478, 6481, 6483, 6486, 6489, 6492, 6495, 6498, 6499, 6503, 6504, 6506, 6507, 6511, 6514, 6515, 6517, 6520, 6521, 6523, 6528, 6533, 6539, 6542, 6546, 6547, 6549, 6550, 6555, 6556, 6558, 6560, 6561, 6564, 6567, 6569, 6570, 6572, 6574, 6579, 6580, 6588, 6590, 6591, 6592, 6595, 6599, 6601, 6603, 6605, 6607, 6608, 6612, 6614, 6617, 6619, 6622, 6626, 6630, 6634, 6635, 6639, 6643, 6644, 6645, 6654, 6655, 6659, 6661, 6665, 6666, 6670, 6673, 6678, 6679, 6683, 6688, 6693, 6694, 6695, 6696, 6713, 6714, 6721, 6722, 6723, 6724, 6725, 6738, 6743, 6748, 6752, 6757, 6761, 6764, 6766, 6770, 6776, 6778, 6780, 6781, 6783, 6785, 6786, 6789, 6790, 6791, 6795, 6796, 6799, 6805 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const short int yyrhs[] = { 579, 0, -1, 138, -1, 580, 138, -1, 581, -1, 1364, -1, 907, -1, 969, -1, 959, -1, 971, -1, 632, -1, 593, -1, 972, -1, 961, -1, 1370, -1, 598, -1, 582, -1, 1210, -1, 1236, -1, 1166, -1, 1168, -1, 586, -1, 1242, -1, 1339, -1, 1330, -1, 591, -1, 1174, -1, 1421, -1, 1256, -1, 1259, -1, 1322, -1, 977, -1, 987, -1, 766, -1, 991, -1, 584, -1, 1252, -1, 1373, -1, 980, -1, 964, -1, 1177, -1, 1248, -1, 957, -1, 1337, -1, 1371, -1, 1372, -1, 999, -1, 1305, -1, 1223, -1, 946, -1, 949, -1, 1221, -1, 1422, -1, 1328, -1, 1202, -1, 1258, -1, 1413, -1, 583, 363, 1299, -1, 105, -1, 126, -1, 363, 1299, 171, 585, -1, 1296, -1, 574, 1301, -1, -1, 150, 1299, 587, 588, -1, -1, 530, 589, -1, 589, 570, 590, -1, 590, -1, 574, 1301, -1, -1, 188, 592, 1301, -1, -1, 54, 272, 497, 594, 595, -1, 596, -1, 595, 570, 596, -1, 259, 142, 1296, -1, 273, 142, 1296, -1, 262, 142, 1296, -1, 263, 142, 1147, -1, 258, 142, 1147, -1, 270, 142, 1147, -1, 266, 142, 1296, -1, 265, 142, 1296, -1, 267, 142, 1296, -1, 268, 142, 1296, -1, 269, 142, 1296, -1, 271, 142, 1147, -1, 597, -1, 260, 142, 1296, -1, 261, 142, 1149, -1, 388, 142, 1296, -1, 389, 142, 1147, -1, -1, 85, 819, 482, 822, 1293, 599, 754, -1, -1, 85, 894, 204, 1299, 896, 330, 1293, 600, 568, 902, 569, 897, -1, -1, 85, 92, 822, 1299, 601, 816, -1, -1, 85, 602, 1387, -1, 85, 527, 619, 1355, -1, 85, 249, 182, 713, -1, 85, 480, 710, -1, 85, 603, -1, 429, 1301, 167, 95, 551, 1301, 335, 568, 604, 569, -1, 605, -1, 604, 570, 605, -1, 527, 1296, -1, 191, 1296, -1, 92, 1296, -1, 345, 1296, -1, 354, 1296, -1, 443, 1296, -1, 360, 1147, -1, -1, 148, 822, 620, 607, 330, 419, 608, 613, 610, 615, 125, 616, -1, -1, 149, 1020, 1119, 609, 611, 612, -1, 22, 1020, -1, -1, 134, -1, 119, 330, 440, -1, 119, -1, -1, 461, 1020, -1, -1, 137, 1020, -1, -1, 614, -1, 330, 73, 364, -1, 330, 73, 319, 364, -1, -1, 69, 1296, -1, -1, 617, 618, -1, 664, -1, 666, -1, 662, -1, 683, -1, 698, -1, 668, -1, 670, -1, 671, -1, 672, -1, 673, -1, 675, -1, -1, 1299, 575, 1299, -1, 1299, -1, 407, 835, 444, 1296, -1, -1, -1, -1, -1, -1, 568, 622, 637, 569, 623, 407, 624, 846, 625, 628, 626, 661, -1, -1, 627, 629, -1, -1, 628, 630, -1, 69, 1296, -1, 228, 457, -1, 321, 457, -1, 80, 457, -1, 376, 457, 95, -1, 297, 457, 95, -1, 631, -1, 629, -1, 117, -1, 1038, 117, -1, 457, 422, 110, -1, 457, 422, 217, -1, -1, 48, 620, 633, 634, -1, -1, 568, 635, 569, -1, -1, 636, -1, 636, 570, 1020, -1, 1020, -1, -1, 638, -1, 638, 570, 640, -1, 640, -1, -1, 1299, 639, 846, -1, -1, 642, -1, 642, 570, 643, -1, 643, -1, 644, 639, 1299, 846, -1, -1, 218, -1, 344, -1, 209, -1, -1, 645, 661, 576, -1, 661, 576, -1, 646, 661, 576, -1, -1, 647, 648, 576, -1, -1, 108, 659, 649, 846, 660, -1, 108, 1299, 76, 168, 656, -1, -1, 108, 653, 185, 168, 650, 654, 661, -1, 108, 1299, 90, 168, 651, -1, -1, 652, 581, -1, 152, -1, 81, -1, 655, -1, 654, 570, 655, -1, 658, -1, 1147, -1, 449, 657, 1297, -1, -1, 535, -1, 656, -1, 1299, -1, 450, -1, 1038, 169, -1, 448, -1, 1299, -1, 659, 570, 1299, -1, -1, 109, 1020, -1, 664, -1, 666, -1, 662, -1, 683, -1, 698, -1, 668, -1, 670, -1, 671, -1, 672, -1, 673, -1, 675, -1, -1, 200, 663, 678, 136, 200, -1, -1, 665, 581, -1, -1, 408, 667, 1020, -1, -1, 669, 701, -1, 233, 1300, -1, 222, 1300, -1, 333, 1299, -1, -1, 159, 676, 1299, 215, 674, 677, -1, 62, 1299, -1, -1, 315, 171, -1, 171, -1, 1299, -1, 677, 570, 1299, -1, -1, -1, -1, 679, 1020, 489, 680, 646, 681, 682, -1, -1, 133, 678, -1, 132, 646, -1, 684, -1, 687, -1, -1, -1, 51, 685, 1020, 686, 689, 697, 136, 51, -1, -1, 51, 688, 690, 697, 136, 51, -1, 691, -1, 689, 691, -1, 694, -1, 690, 694, -1, -1, -1, 546, 692, 1020, 693, 489, 646, -1, -1, -1, 546, 695, 1020, 696, 489, 646, -1, -1, 132, 646, -1, -1, 1300, 577, 699, 701, 700, -1, -1, 1300, -1, -1, 30, 702, 647, 645, 136, -1, 255, 646, 136, 255, -1, -1, -1, 548, 703, 1020, 125, 704, 646, 136, 548, -1, -1, 398, 646, 523, 705, 1020, 136, 398, -1, 29, -1, 8, -1, 211, -1, 524, -1, 113, -1, 739, 741, -1, 739, 54, 736, 716, -1, 739, 6, 736, 711, 720, -1, -1, 529, 249, 182, 1299, -1, 739, 6, 736, 724, -1, 739, 126, 736, 724, -1, 740, 715, 728, -1, 740, 715, 732, -1, 6, 737, -1, 6, 738, -1, -1, 717, 718, -1, 719, -1, 718, 719, -1, 718, 570, 719, -1, 742, -1, 743, -1, 744, -1, -1, 721, 722, -1, 723, -1, 722, 723, -1, 722, 570, 723, -1, 742, -1, 743, -1, 744, -1, 745, -1, 748, -1, 750, -1, 752, -1, 749, -1, -1, 725, 726, -1, 727, -1, 726, 727, -1, 726, 570, 727, -1, 742, -1, 743, -1, 744, -1, 750, -1, 752, -1, -1, 729, 730, -1, 731, -1, 730, 731, -1, 730, 570, 731, -1, 742, -1, 746, -1, 747, -1, 748, -1, 750, -1, 752, -1, 749, -1, -1, 733, 734, -1, 735, -1, 734, 735, -1, 734, 570, 735, -1, 742, -1, 750, -1, 752, -1, 94, 1296, -1, 513, 1296, -1, 383, 1296, -1, 1299, -1, 1299, -1, 377, -1, 379, -1, 319, 4, -1, 206, 1194, 753, -1, 24, 1194, 753, -1, 278, 1194, 753, -1, 155, 1194, 753, -1, 514, 1194, 753, -1, 384, 1194, 753, -1, 316, 1194, 1148, -1, 69, 1194, 1296, -1, 1229, 140, 1194, 829, -1, -1, 752, -1, 543, -1, 322, -1, 1148, -1, 197, -1, 568, 756, -1, -1, 823, 763, 755, 760, -1, 238, 1293, -1, 568, 238, 1293, 569, -1, -1, 836, 569, 823, 763, 757, 760, -1, -1, -1, 763, 758, 812, 569, 759, 1377, -1, -1, -1, 1268, 815, 812, 761, 1374, -1, -1, 1268, 815, 568, 812, 569, 762, 1377, -1, -1, 764, -1, -1, 353, 765, 768, -1, -1, 353, 767, 768, -1, -1, -1, 45, 771, 781, 769, 782, 770, 789, -1, 775, 226, 568, 776, 569, -1, -1, 775, 186, 772, 779, -1, -1, 375, 773, 779, -1, -1, 243, 774, 779, -1, -1, 240, -1, -1, 777, -1, 778, -1, 777, 570, 778, -1, 1299, -1, 568, 1015, 787, 1016, 569, -1, 568, 1015, 787, 1016, 569, -1, -1, 352, 1148, -1, -1, -1, 473, 45, 775, 186, 780, 783, 788, -1, -1, 473, 45, 775, 226, 568, 785, 569, 784, 788, -1, 786, -1, 785, 570, 786, -1, 1299, -1, 1030, -1, -1, 472, 1148, -1, -1, 568, 790, 569, -1, 791, -1, 790, 570, 791, -1, -1, -1, -1, -1, 353, 792, 796, 793, 797, 794, 809, 795, 804, -1, 1299, -1, -1, 534, 235, 488, 798, -1, 534, 218, 568, 801, 569, -1, 799, -1, 800, -1, 282, -1, 568, 282, 569, -1, 568, 803, 569, -1, 802, -1, 801, 570, 802, -1, 803, -1, 1030, -1, -1, 568, 805, 569, -1, 806, -1, 805, 570, 806, -1, -1, 473, 807, 808, 809, -1, 1301, -1, -1, 810, -1, 810, 811, -1, 811, -1, 480, 1194, 1301, -1, 1229, 140, 1194, 829, -1, 316, 1194, 1148, -1, 277, 1194, 1150, -1, 294, 1194, 1150, -1, 95, 118, 1194, 1296, -1, 204, 118, 1194, 1296, -1, 69, 1194, 1296, -1, -1, -1, 423, 813, 1009, 1013, 814, 833, -1, -1, 18, -1, -1, 817, -1, 818, -1, 817, 818, -1, 828, -1, 827, -1, -1, 820, -1, 821, -1, 821, 820, -1, 483, -1, -1, 200, 1038, 151, -1, -1, 825, -1, 826, -1, 826, 824, -1, 826, -1, 826, 825, -1, 826, 570, 825, -1, 140, 1194, 829, -1, 507, 1194, 829, -1, 277, 1194, 1149, -1, 294, 1194, 1149, -1, 26, 1194, 1147, -1, 354, 1194, 1296, -1, 69, 1194, 1296, -1, 25, 1194, 1149, -1, 346, 1194, 1147, -1, 346, 1194, 109, -1, 58, 1194, 1147, -1, 112, 1194, 1147, -1, 415, 1194, 831, -1, 518, 1194, 568, 1170, 569, -1, 827, -1, 828, -1, 212, 1194, 832, -1, 95, 118, 1194, 1296, -1, 204, 118, 1194, 1296, -1, 480, 1299, -1, 467, 121, -1, 467, 287, -1, 77, 1194, 1296, -1, 225, 1194, 1147, -1, 500, 1194, 1147, -1, 876, 867, 1194, 869, -1, 876, 65, 1194, 875, -1, 1301, -1, 1301, -1, 109, -1, 162, -1, 130, -1, 74, -1, 385, -1, 72, -1, 347, -1, 321, -1, 161, -1, 229, -1, 1142, -1, 1008, 1012, -1, -1, 10, -1, 469, -1, 380, -1, 107, -1, 216, -1, 837, -1, 836, 570, 837, -1, 838, -1, 839, -1, 844, 840, -1, 844, 881, -1, 889, 904, 896, 568, 902, 569, 897, -1, 842, 890, 904, 896, 568, 902, 569, 897, -1, 842, 167, 226, 904, 568, 902, 569, 881, -1, 843, 840, -1, 842, 841, -1, -1, 841, -1, 59, 1020, -1, -1, 843, -1, 79, 904, -1, -1, 1292, 845, 846, 863, -1, 854, 861, 858, -1, 855, 862, 858, -1, 164, 856, 858, -1, 38, -1, 38, 568, 325, 569, -1, 42, -1, 41, -1, 850, 568, 325, 569, 877, -1, 850, 877, -1, 851, 568, 325, 569, 878, -1, 851, 878, -1, 33, 568, 325, 569, -1, 33, -1, 852, 568, 325, 569, 877, -1, 853, 568, 325, 569, 878, -1, 536, 568, 325, 569, -1, 557, 861, 858, -1, 99, -1, 493, -1, 490, 861, -1, 96, -1, 494, -1, 40, 861, -1, 849, -1, 283, -1, 251, -1, 254, 536, -1, 254, 852, 877, -1, 496, 877, -1, 487, 861, 877, -1, 285, 877, -1, 252, 877, -1, 107, 856, 858, -1, 326, 856, 858, -1, 162, 856, 858, -1, -1, 141, 847, 568, 906, 569, 877, -1, -1, 431, 848, 568, 906, 569, 877, -1, 254, 877, -1, 427, -1, 177, -1, 176, -1, 358, -1, 302, -1, 242, -1, 301, -1, 359, -1, 303, -1, 57, -1, 310, -1, 307, 57, -1, 850, 540, -1, 537, -1, 307, 537, -1, 327, -1, 310, 537, -1, 307, 57, 540, -1, 310, 540, -1, 216, -1, 495, -1, 441, -1, 284, -1, 32, -1, 380, -1, 124, -1, 124, 362, -1, -1, 568, 325, 569, -1, 857, -1, 568, 325, 570, 325, 569, -1, -1, 859, -1, 859, 860, -1, 860, -1, 438, -1, 522, -1, 558, -1, -1, 568, 325, 569, -1, -1, 857, -1, -1, 864, -1, 864, 865, -1, 865, -1, 324, -1, 1038, 324, -1, 109, 866, -1, 330, 524, 320, 1019, -1, 25, -1, 427, 109, 535, -1, 880, 226, -1, 519, -1, 519, 226, -1, 69, 1296, -1, 65, 873, -1, 320, 1019, -1, 1283, -1, 57, 431, -1, 56, -1, 1301, -1, 33, -1, 868, -1, 109, -1, -1, 867, 869, -1, 1301, -1, 33, -1, 871, -1, 109, -1, 1301, -1, -1, 65, 875, -1, 873, -1, 109, -1, -1, 109, -1, -1, 20, 878, -1, 46, -1, 516, 878, -1, 867, 868, 878, -1, 33, 879, -1, -1, 33, -1, -1, 20, -1, 516, -1, 867, 868, -1, -1, 366, -1, -1, 386, 1293, 882, 883, -1, 885, -1, 568, 884, 569, 885, -1, 884, 570, 1299, -1, 1299, -1, -1, 886, -1, 886, 887, -1, 887, -1, 330, 113, 888, -1, 330, 524, 888, -1, 274, 172, -1, 274, 350, -1, 274, 439, -1, 405, -1, 49, -1, 431, 324, -1, 321, 5, -1, 431, 109, -1, 891, -1, 173, 892, -1, 446, 892, -1, 366, 226, -1, 519, 892, -1, 226, -1, 204, -1, -1, 891, -1, 224, -1, 204, -1, 203, -1, -1, 519, -1, 173, -1, 446, -1, -1, 895, -1, 895, 899, -1, -1, 898, -1, 900, -1, 898, 900, -1, 530, 901, -1, 507, 901, -1, 899, -1, 225, 1194, 1147, -1, 549, 349, 1295, -1, 44, -1, 417, -1, 186, -1, 902, 570, 903, 1140, -1, 903, 1140, -1, 1299, -1, 1299, 568, 325, 569, -1, -1, 1292, -1, -1, 575, 1299, -1, 1281, -1, 906, 570, 1281, -1, -1, 13, 942, 482, 1293, 908, 919, -1, -1, 13, 92, 918, 909, 817, -1, -1, 13, 368, 620, 910, 627, -1, -1, 13, 174, 620, 911, 627, -1, -1, 13, 1392, 1389, 912, 1394, -1, -1, 13, 1389, 913, 1394, -1, -1, 13, 1389, 148, 620, 914, 915, 916, 610, 615, 917, -1, 13, 480, 712, -1, 13, 249, 182, 714, -1, 13, 480, 709, -1, 13, 480, 708, -1, 13, 429, 1301, 335, 568, 604, 569, -1, -1, 330, 419, 608, -1, 614, -1, 330, 419, 608, 614, -1, -1, 394, 497, 620, -1, -1, 125, 616, -1, -1, 1299, -1, -1, 120, 480, -1, 202, 480, -1, 935, 763, -1, 935, 924, -1, 924, -1, 764, -1, 926, -1, 126, 353, 933, -1, 381, 353, 979, 925, -1, -1, 334, 353, 979, 925, 920, 979, 974, -1, -1, 14, 353, 979, 925, 921, 974, -1, -1, 59, 353, 925, 922, 974, -1, -1, 396, 353, 979, 925, 923, 966, -1, 63, 353, 979, 1148, -1, 929, -1, 393, 351, -1, 12, -1, 933, -1, -1, 6, 353, 979, 927, 928, -1, -1, 568, 790, 569, -1, 352, 1148, -1, -1, 395, 353, 979, 930, 931, -1, -1, -1, 933, 932, 215, 568, 790, 569, -1, 934, -1, 933, 570, 934, -1, 1299, -1, 937, -1, 935, 570, 937, -1, 6, 941, -1, 936, 838, 944, -1, 6, 839, -1, 936, 568, 836, 569, -1, -1, 54, 941, 1292, 938, 844, 944, -1, -1, -1, 298, 941, 1292, 939, 846, 863, 940, 944, -1, 126, 941, 1292, 943, -1, 126, 167, 226, 904, -1, 126, 366, 226, -1, 126, 891, 1292, -1, 119, 224, -1, 134, 224, -1, 13, 941, 1292, 431, 109, 1283, -1, 13, 941, 1292, 126, 109, -1, 394, 945, 1293, -1, 83, 497, 867, 869, 874, -1, 824, -1, 166, -1, 1133, -1, -1, 68, -1, -1, 201, -1, -1, 405, -1, 49, -1, -1, 8, 1299, -1, 161, -1, -1, 497, -1, 142, -1, 18, -1, -1, 462, 440, 951, 947, 955, -1, 466, 440, 951, -1, -1, 440, 462, 951, 948, 955, -1, 440, 466, 951, -1, 462, 499, 950, -1, -1, 549, 78, 442, -1, -1, 952, 953, -1, 954, -1, 953, 570, 954, -1, -1, 458, -1, 390, -1, -1, 523, 956, -1, 597, -1, 956, 570, 597, -1, -1, 404, 1324, 958, 1170, 171, 1296, -1, -1, 28, 1324, 960, 1170, 497, 1296, -1, -1, 58, 1324, 962, 1170, 963, -1, -1, 374, -1, 154, -1, -1, 396, 979, 1324, 965, 1170, 966, -1, -1, 967, -1, 968, -1, 968, 967, -1, 374, -1, 154, -1, 528, -1, -1, 14, 979, 1324, 970, 1170, 974, -1, 34, 1296, -1, -1, 59, 1324, 973, 1170, 974, -1, -1, 975, -1, 976, -1, 976, 975, -1, 374, -1, 158, -1, 286, -1, 154, -1, 55, -1, 168, 525, -1, -1, 334, 979, 1324, 978, 1170, 974, -1, -1, 323, -1, 245, -1, -1, 394, 1324, 981, 984, -1, -1, 394, 92, 982, 986, -1, 394, 527, 619, 983, -1, 1302, 497, 1302, -1, 983, 570, 1302, 497, 1302, -1, 985, -1, 984, 570, 985, -1, 1293, 497, 1293, -1, 1299, 497, 1299, -1, 47, 204, 988, 218, 990, -1, 989, -1, 988, 570, 989, -1, 1293, 995, -1, 1299, -1, 109, -1, -1, 244, 204, 215, 47, 992, 993, -1, 994, -1, 993, 570, 994, -1, 1293, 995, 998, -1, -1, 996, 997, -1, -1, 891, 568, 1115, 569, -1, -1, 201, 232, -1, 1000, -1, 423, 1002, -1, 568, 1001, 569, 1377, -1, 423, 1004, -1, 568, 1001, 569, -1, -1, 1004, 1003, 1374, -1, -1, -1, 1005, 1009, 1013, 1006, 1007, 1012, -1, 1136, 1142, -1, 1162, -1, 1008, -1, 1162, 1008, -1, 1008, 1162, -1, 171, 1083, 1125, 1130, 1127, 1136, 1142, 1153, -1, 171, 127, 1125, 1142, -1, -1, 1010, -1, 1010, 1011, -1, 1011, -1, 468, -1, 190, -1, 122, -1, 456, -1, 451, -1, 452, -1, 454, -1, 455, -1, 453, -1, 12, -1, -1, 168, 524, -1, 248, 218, 433, 296, -1, 1013, 570, 1014, -1, 1014, -1, 563, -1, 1015, 1017, 1016, 1018, -1, -1, -1, 1287, -1, 1020, -1, -1, 18, 1299, -1, 18, 1296, -1, 1299, -1, 1296, -1, -1, 568, 569, -1, -1, 1023, 1021, 1022, -1, -1, 1022, 1036, 1023, -1, 1023, 555, 1023, -1, -1, 1026, 1024, 1025, -1, -1, 1025, 1037, 1026, -1, 319, 1026, -1, 1027, -1, 1028, 219, 504, -1, 1028, 219, 1038, 504, -1, 1028, 219, 157, -1, 1028, 219, 1038, 157, -1, 1028, 219, 520, -1, 1028, 219, 1038, 520, -1, 1028, -1, 1028, 219, 324, -1, 1028, 219, 1038, 324, -1, 1028, 143, 1029, -1, 1028, 1040, 1029, -1, 1028, 1040, 1041, 568, 1382, 569, -1, 1029, -1, 1030, 218, 568, 1382, 569, -1, 1030, 1038, 218, 568, 1382, 569, -1, 1030, 218, 568, 1020, 569, -1, 1030, 218, 568, 1020, 570, 1072, 569, -1, 1030, 1038, 218, 568, 1020, 569, -1, 1030, 1038, 218, 568, 1020, 570, 1072, 569, -1, 1030, 31, 1030, 16, 1029, -1, 1030, 1038, 31, 1030, 16, 1029, -1, 1030, 445, 238, 1030, -1, 1030, 238, 1043, 1129, -1, 1030, 1038, 238, 1043, 1129, -1, 1030, 387, 1030, -1, 1030, 1038, 387, 1030, -1, 1030, -1, 1030, 559, 1031, -1, 1031, -1, 1031, 560, 1032, -1, 1032, -1, 1032, 434, 1033, -1, 1032, 435, 1033, -1, 1033, -1, 1033, 562, 1034, -1, 1033, 561, 1034, -1, 1033, 562, 1042, 1119, -1, 1033, 561, 1042, 1119, -1, 1034, -1, 1034, 563, 1035, -1, 1034, 564, 1035, -1, 1034, 565, 1035, -1, 1034, 123, 1035, -1, 1034, 299, 1035, -1, 1035, -1, 1035, 566, 1043, -1, 1043, -1, 341, -1, 338, -1, 16, -1, 15, -1, 319, -1, 318, -1, 571, -1, 318, -1, 142, -1, 175, -1, 184, -1, 230, -1, 257, -1, 312, -1, 12, -1, 17, -1, 214, 1020, -1, 1289, -1, 1044, -1, 1045, -1, 1048, -1, 1046, -1, 1043, 65, 1301, -1, 1284, -1, 1282, -1, 1062, -1, 1058, -1, 1043, 340, 1043, -1, 562, 1043, -1, 561, 1043, -1, 567, 1043, -1, 1039, 1043, -1, 568, 1382, 569, -1, 568, 1020, 569, -1, 568, 1020, 570, 1072, 569, -1, 416, 568, 1020, 570, 1072, 569, -1, 151, 568, 1382, 569, -1, 572, 1299, 1020, 573, -1, 274, 1075, 9, 568, 1030, 1050, 569, -1, 33, 1043, -1, 52, 568, 1020, 18, 1070, 569, -1, 51, 1079, 1081, 1080, 136, -1, 83, 568, 1020, 570, 1070, 569, -1, 83, 568, 1020, 530, 868, 569, -1, 109, 568, 1289, 569, -1, 534, 568, 1290, 569, -1, 1042, 1119, 562, 1020, -1, 1042, -1, 57, 568, 1072, 569, -1, 57, 568, 1072, 530, 868, 569, -1, 89, 1019, -1, 99, 568, 1020, 569, -1, 104, 568, 1020, 569, -1, 196, 568, 1020, 569, -1, 211, 568, 1020, 570, 1020, 570, 1020, 570, 1020, 569, -1, 234, 568, 1020, 570, 1020, 569, -1, 293, 568, 1020, 569, -1, 300, 568, 1020, 569, -1, 410, 568, 1020, 570, 1020, 569, -1, 421, 568, 1020, 569, -1, 493, 568, 1020, 569, -1, 490, 568, 1020, 569, -1, 490, 568, 1020, 570, 1020, 569, -1, 503, 568, 1020, 569, -1, 503, 568, 231, 1020, 171, 1020, 569, -1, 503, 568, 498, 1020, 171, 1020, 569, -1, 503, 568, 43, 1020, 171, 1020, 569, -1, 503, 568, 231, 171, 1020, 569, -1, 503, 568, 498, 171, 1020, 569, -1, 503, 568, 43, 171, 1020, 569, -1, 503, 568, 1020, 171, 1020, 569, -1, 527, 568, 569, -1, 557, 568, 1020, 569, -1, 7, 568, 1020, 570, 1020, 569, -1, 7, 568, 1020, 570, 214, 1020, 1119, 569, -1, 88, 1019, -1, 91, 1019, -1, 91, 568, 1020, 569, -1, 97, 568, 1020, 570, 1042, 1119, 569, -1, 98, 568, 1020, 570, 1042, 1119, 569, -1, 156, 568, 1119, 171, 1020, 569, -1, 178, 568, 1121, 570, 1020, 569, -1, 320, 1019, -1, 320, 568, 1020, 569, -1, 361, 568, 1030, 218, 1020, 569, -1, 470, 568, 1020, 570, 1020, 569, -1, 470, 568, 1020, 570, 214, 1020, 1119, 569, -1, 474, 568, 1020, 570, 1020, 570, 1020, 569, -1, 474, 568, 1020, 570, 1020, 569, -1, 474, 568, 1020, 171, 1020, 168, 1020, 569, -1, 474, 568, 1020, 171, 1020, 569, -1, 478, 1019, -1, 478, 568, 1020, 569, -1, 491, 568, 1120, 570, 1020, 570, 1020, 569, -1, 492, 568, 1120, 570, 1020, 570, 1020, 569, -1, 531, 1019, -1, 533, 1019, -1, 532, 1019, -1, 20, 568, 1020, 569, -1, 56, 568, 1020, 569, -1, 63, 568, 1072, 569, -1, 66, 568, 1020, 569, -1, 92, 568, 569, -1, 200, 568, 1020, 570, 1020, 570, 1020, 569, -1, 289, 568, 1020, 569, -1, 299, 568, 1020, 570, 1020, 569, -1, 329, 568, 1020, 569, -1, 354, 568, 1020, 569, -1, 372, 568, 1020, 569, -1, 398, 568, 1020, 570, 1020, 569, -1, 399, 568, 1020, 570, 1020, 570, 1020, 569, -1, 505, 568, 1020, 570, 1020, 569, -1, 545, 568, 1020, 569, -1, 545, 568, 1020, 570, 1020, 569, -1, 1047, -1, 80, 568, 1020, 570, 1020, 569, -1, 176, 568, 1072, 569, -1, 242, 568, 1072, 569, -1, 301, 568, 1072, 569, -1, 302, 568, 1072, 569, -1, 303, 568, 1072, 569, -1, 358, 568, 1020, 570, 1020, 569, -1, 359, 568, 1072, 569, -1, -1, 1295, 568, 1049, 1053, 569, -1, 1299, 575, 1299, 568, 1071, 569, -1, 1051, 1052, -1, 218, 41, 296, -1, -1, 218, 308, 228, 296, -1, -1, 549, 373, 153, -1, -1, 1054, -1, -1, 1055, 1056, -1, 1057, -1, 1056, 570, 1057, -1, 1015, 1020, 1016, 1018, -1, 27, 568, 1068, 569, -1, 27, 568, 122, 1068, 569, -1, 36, 568, 1068, 569, -1, 37, 568, 1068, 569, -1, 39, 568, 1068, 569, -1, 84, 568, 1124, 563, 569, -1, 84, 568, 1068, 569, -1, -1, -1, 84, 568, 122, 1059, 1072, 1060, 569, -1, 295, 568, 1068, 569, -1, 295, 568, 122, 1068, 569, -1, 279, 568, 1068, 569, -1, 279, 568, 122, 1068, 569, -1, 465, 568, 1068, 569, -1, 539, 568, 1068, 569, -1, 464, 568, 1068, 569, -1, 541, 568, 1068, 569, -1, 475, 568, 1068, 569, -1, 475, 568, 122, 1068, 569, -1, -1, 183, 568, 1065, 1061, 1072, 1067, 1066, 569, -1, -1, 574, 1063, 1064, -1, 1301, 432, 1020, -1, 1301, -1, 574, 1314, 1301, 905, -1, -1, 122, -1, -1, 425, 1281, -1, -1, 1137, -1, -1, 1124, 1069, 1020, -1, 33, 861, -1, 57, 861, 877, -1, 310, 861, -1, 438, -1, 438, 216, -1, 522, -1, 522, 216, -1, 99, -1, 493, -1, 96, -1, 107, 856, -1, -1, 1072, -1, -1, 1073, 1074, -1, 1020, -1, 1074, 570, 1020, -1, 1076, -1, 568, 1076, 569, -1, -1, 1077, 1078, -1, 1289, -1, 1078, 570, 1289, -1, -1, 1020, -1, -1, 132, 1020, -1, 546, 1020, 489, 1020, -1, 1081, 546, 1020, 489, 1020, -1, 1094, -1, 1085, -1, 1084, -1, 1082, -1, 1084, 570, 1082, -1, 1082, 1093, 1082, -1, 1082, 468, 1094, -1, -1, 1082, 1093, 1082, 330, 1086, 1020, -1, -1, 1082, 468, 1094, 330, 1087, 1020, -1, -1, 1082, 1093, 1082, 530, 1088, 568, 1118, 569, -1, 1082, 308, 223, 1094, -1, -1, 1082, 234, 1104, 223, 1082, 330, 1089, 1020, -1, -1, 1082, 234, 1104, 223, 1094, 1090, 530, 568, 1118, 569, -1, 1082, 308, 234, 1104, 223, 1094, -1, -1, 1082, 410, 1104, 223, 1082, 330, 1091, 1020, -1, -1, 1082, 410, 1104, 223, 1094, 1092, 530, 568, 1118, 569, -1, 1082, 308, 410, 1104, 223, 1094, -1, 223, -1, 207, 223, -1, 86, 223, -1, -1, 1095, 1293, 1123, 1113, -1, -1, 572, 1299, 1082, 234, 342, 223, 1082, 330, 1096, 1020, 573, -1, 1103, 1102, 1099, -1, 568, 1102, 1097, 1377, 569, 1123, -1, -1, 1102, 1098, 1084, -1, -1, -1, 1100, 1009, 1013, 1101, 833, -1, -1, 423, -1, -1, 342, -1, -1, 168, 223, -1, 168, 339, 45, -1, 168, 182, 45, -1, 166, -1, 201, -1, -1, 1106, 891, 1105, 1108, 568, 1117, 569, -1, -1, 529, 891, 1105, 1109, 568, 1115, 569, -1, 1107, -1, 1110, 1107, -1, -1, -1, 1112, 1110, -1, -1, 1114, 1111, -1, -1, 1117, -1, 1299, -1, 366, -1, 1116, -1, 1117, 570, 1116, -1, 1299, -1, 1118, 570, 1299, -1, 1120, -1, 100, -1, 101, -1, 102, -1, 103, -1, 193, -1, 194, -1, 195, -1, 289, -1, 291, -1, 292, -1, 420, -1, 556, -1, 104, -1, 545, -1, 196, -1, 170, -1, 293, -1, 300, -1, 372, -1, 421, -1, 557, -1, 99, -1, 493, -1, 96, -1, 490, -1, -1, 18, -1, 142, -1, -1, 1122, 1299, -1, -1, 12, -1, -1, -1, 547, 1126, 1020, -1, -1, -1, 187, 1128, 1020, -1, 146, 1043, -1, -1, -1, 182, 45, 1131, 1132, -1, 1131, 570, 1288, 1140, -1, 1288, 1140, -1, -1, 549, 87, -1, 549, 412, -1, 339, 45, 1134, -1, 1134, 570, 1135, -1, 1135, -1, 1290, 1140, -1, -1, 1137, -1, -1, 339, 45, 1138, 1139, -1, 1139, 570, 1288, 1140, -1, 1288, 1140, -1, -1, 19, -1, 114, -1, -1, 1143, -1, -1, 1143, -1, 239, 1144, -1, 1145, -1, 1145, 570, 1145, -1, 1145, 328, 1145, -1, 1282, -1, 509, -1, 253, -1, 325, -1, -1, 239, 1145, -1, 325, -1, 189, -1, 253, -1, 509, -1, 106, -1, 163, -1, 325, -1, 189, -1, 253, -1, 509, -1, 1151, -1, 325, -1, 509, -1, 253, -1, 106, -1, 163, -1, 325, -1, 509, -1, 253, -1, 1151, -1, 1152, -1, 106, -1, 163, -1, -1, -1, 368, 1299, 1154, 568, 1155, 569, -1, -1, 1156, -1, 1156, 570, 1157, -1, 1157, -1, 1015, 1020, 1016, -1, -1, 1159, 1160, -1, 1160, 570, 1161, -1, 1161, -1, 574, 1301, -1, 1301, -1, -1, 215, 1163, 1164, -1, -1, 343, 1298, 1165, 1269, 1272, -1, 128, 1298, -1, 1158, -1, -1, 125, 1167, 1072, -1, 126, 1173, 1324, 1172, 1170, 943, -1, -1, 126, 204, 1299, 330, 1293, 1169, -1, 126, 92, 1172, 1299, -1, 126, 174, 1172, 620, -1, 126, 368, 1172, 620, -1, 126, 527, 619, 1354, -1, 126, 542, 1172, 1170, 943, -1, 126, 148, 1172, 620, -1, 126, 502, 1172, 620, -1, 126, 480, 739, 750, 751, -1, 126, 249, 182, 740, 750, 751, -1, 126, 429, 1172, 1301, -1, 1171, -1, 1170, 570, 1171, -1, 1293, -1, -1, 200, 151, -1, -1, 483, -1, -1, -1, 211, 1175, 1180, 942, 1182, 1176, 1184, 1200, -1, -1, -1, 399, 1178, 1181, 1182, 1179, 1184, -1, -1, 256, -1, 111, -1, 190, -1, 1209, -1, 111, -1, 215, 1183, -1, 1183, -1, 1171, -1, 1187, -1, 568, 569, 1187, -1, 568, 1186, 569, 1187, -1, -1, 431, 1185, 1191, -1, 1186, 570, 1286, -1, 1286, -1, 534, 1190, -1, 535, 1190, -1, -1, 812, 1188, 1374, -1, -1, 568, 812, 569, 1189, 1377, -1, 1190, 570, 1195, -1, 1195, -1, 1191, 570, 1192, -1, 1192, -1, 1290, 1193, 1199, -1, 142, -1, 432, -1, -1, 1193, -1, -1, 568, 1196, 1197, 569, -1, -1, 1198, -1, 1198, 570, 1199, -1, 1199, -1, 1020, -1, 109, -1, -1, -1, 330, 129, 1201, 226, 524, 1207, -1, -1, -1, 524, 1203, 1209, 942, 1083, 431, 1205, 1204, 1125, 1136, 1146, -1, 1205, 570, 1206, -1, 1206, -1, 1290, 1193, 1199, -1, 1207, 570, 1208, -1, 1208, -1, 1290, 1193, 1199, -1, -1, 256, -1, -1, 113, 1211, 1219, 1212, -1, -1, 171, 1293, 1213, 1125, 1136, 1146, -1, -1, 1216, 1214, 171, 1083, 1125, -1, -1, 171, 1216, 1215, 530, 1083, 1125, -1, 1217, -1, 1216, 570, 1217, -1, 1299, 1218, 1123, -1, 1299, 575, 1299, 1218, 1123, -1, -1, 575, 563, -1, -1, 1220, 1219, -1, 374, -1, 256, -1, 201, -1, 505, 1222, 1171, -1, -1, 482, -1, -1, 436, 1224, 1225, -1, 93, 1235, -1, 1231, 479, 1230, 1235, -1, 1231, 501, 1230, 1235, -1, 147, 1230, 1235, -1, 482, 463, 1230, 1235, -1, 333, 479, 1230, 1235, -1, 1231, 357, -1, 356, -1, 140, 830, 1227, -1, 140, 12, 1227, -1, 1231, 67, 1232, 1293, 1230, 1235, -1, 314, 272, 168, 440, 549, 260, 142, 1296, 16, 261, 142, 1149, 16, 264, 142, 1147, -1, 1228, 250, -1, 440, 192, -1, -1, 34, 147, 1233, 1234, 1226, 1141, -1, 893, 1232, 1293, 1230, 1125, -1, 68, 506, -1, 482, 506, -1, 1229, 139, -1, 23, -1, 82, -1, 367, -1, 84, 568, 563, 569, 544, -1, 84, 568, 563, 569, 144, -1, 544, 1141, -1, 144, 1141, -1, 1313, 463, 1235, -1, 208, 463, -1, 304, 463, -1, 1231, 370, -1, 1313, 538, 1235, -1, 867, 1235, -1, 66, 1235, -1, 181, -1, 181, 168, 1302, -1, 85, 92, 822, 1299, -1, 85, 482, 1293, -1, 85, 542, 1293, -1, 272, 463, -1, 440, 463, -1, 85, 368, 620, -1, 85, 174, 620, -1, 85, 502, 620, -1, 368, 463, 1235, -1, 174, 463, 1235, -1, 368, 64, 620, -1, 174, 64, 620, -1, 85, 148, 620, -1, 463, -1, 304, -1, 250, -1, 272, -1, 33, -1, -1, 467, -1, -1, 1232, 1299, -1, -1, 172, -1, 171, -1, 218, -1, -1, 218, 1296, -1, -1, 171, 1149, -1, -1, 238, 1296, -1, 547, 1020, -1, -1, 1239, 1293, 1237, 1241, -1, -1, 1239, 1240, 1238, 999, -1, 114, -1, 115, -1, -1, 154, -1, 352, -1, -1, 1281, -1, 1299, -1, -1, 165, 979, 1243, 1244, -1, 1244, 570, 1245, -1, 1245, -1, -1, 1324, 1246, 1247, -1, 479, 549, 378, 248, -1, 373, 47, -1, 192, -1, 367, -1, 250, -1, 463, -1, 440, -1, 272, -1, 116, -1, 403, -1, -1, 1170, -1, -1, 402, 1249, 1250, -1, 1250, 570, 1251, -1, 1251, -1, 440, -1, 272, -1, 373, 47, -1, -1, 371, 1253, 1254, -1, 1228, 250, 1255, -1, 497, 1296, -1, 29, 1020, -1, 227, 1257, 1020, -1, -1, 77, -1, 373, -1, 529, 1299, -1, -1, 244, 95, 1260, 1261, -1, 244, 482, 1293, 171, 272, -1, -1, -1, -1, -1, 1267, 1266, 205, 1298, 1262, 1268, 215, 1263, 482, 1293, 1264, 870, 1265, 1269, 1272, 1275, 1276, 1279, -1, 171, 272, -1, -1, 245, -1, -1, 75, -1, 256, -1, -1, 399, -1, 201, -1, -1, 67, 1270, -1, 1270, 1271, -1, 1271, -1, 485, 45, 1281, -1, 337, 135, 45, 1281, -1, 135, 45, 1281, -1, 145, 45, 1281, -1, -1, 241, 1273, -1, 1273, 1274, -1, 1274, -1, 485, 45, 1281, -1, 460, 45, 1281, -1, -1, 201, 325, 241, -1, -1, 568, 1277, 569, -1, 568, 569, -1, 1277, 570, 1278, -1, 1278, -1, 1290, -1, 574, 1301, -1, -1, 431, 1207, -1, 486, -1, 309, -1, 512, 486, -1, 1280, 1297, -1, 1297, -1, 189, -1, 35, -1, 348, -1, 1284, -1, 562, 1285, -1, 561, 1285, -1, 1280, -1, 1285, -1, 324, -1, 157, -1, 504, -1, 189, -1, 35, -1, 512, 189, -1, 512, 35, -1, 99, 1280, -1, 493, 1280, -1, 490, 1280, -1, 325, -1, 253, -1, 509, -1, 106, -1, 163, -1, 1290, -1, 1287, -1, 1299, 575, 563, -1, 1299, 575, 1299, 575, 563, -1, 1020, -1, 1299, -1, 1291, -1, 1299, -1, 1291, -1, 1299, 575, 1299, -1, 575, 1299, 575, 1299, -1, 1299, 575, 1299, 575, 1299, -1, 1299, -1, 1299, 575, 1299, 575, 1299, -1, 1299, 575, 1299, -1, 575, 1299, -1, 1299, -1, 1299, 575, 1299, -1, 575, 1299, -1, 1299, -1, 197, -1, 199, -1, 486, -1, 486, -1, 486, -1, 1295, -1, 377, -1, 1303, -1, 1295, -1, 1304, -1, 1299, -1, 1296, -1, 237, -1, 1301, -1, 1301, 574, 1301, -1, 89, 1019, -1, 1304, -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, 150, -1, 165, -1, 185, -1, 188, -1, 191, -1, 213, -1, 228, -1, 321, -1, 333, -1, 335, -1, 345, -1, 349, -1, 353, -1, 360, -1, 363, -1, 393, -1, 396, -1, 402, -1, 404, -1, 411, -1, 418, -1, 422, -1, 429, -1, 438, -1, 443, -1, 440, -1, 444, -1, 462, -1, 466, -1, 505, -1, 516, -1, 517, -1, 551, -1, 554, -1, 525, -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, 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, 153, -1, 154, -1, 155, -1, 158, -1, 169, -1, 134, -1, 172, -1, 160, -1, 161, -1, 162, -1, 170, -1, 177, -1, 176, -1, 178, -1, 181, -1, 179, -1, 186, -1, 192, -1, 196, -1, 198, -1, 217, -1, 202, -1, 203, -1, 206, -1, 220, -1, 221, -1, 208, -1, 212, -1, 225, -1, 229, -1, 232, -1, 235, -1, 236, -1, 242, -1, 243, -1, 245, -1, 247, -1, 249, -1, 250, -1, 277, -1, 272, -1, 259, -1, 263, -1, 260, -1, 261, -1, 273, -1, 262, -1, 264, -1, 258, -1, 270, -1, 266, -1, 265, -1, 267, -1, 268, -1, 269, -1, 275, -1, 276, -1, 278, -1, 280, -1, 281, -1, 282, -1, 286, -1, 287, -1, 288, -1, 289, -1, 290, -1, 293, -1, 294, -1, 298, -1, 296, -1, 300, -1, 301, -1, 302, -1, 303, -1, 304, -1, 306, -1, 305, -1, 307, -1, 310, -1, 311, -1, 315, -1, 314, -1, 322, -1, 316, -1, 317, -1, 327, -1, 328, -1, 329, -1, 331, -1, 332, -1, 346, -1, 347, -1, 350, -1, 351, -1, 352, -1, 354, -1, 355, -1, 357, -1, 356, -1, 358, -1, 359, -1, 364, -1, 365, -1, 367, -1, 369, -1, 370, -1, 372, -1, 373, -1, 374, -1, 381, -1, 382, -1, 384, -1, 383, -1, 385, -1, 388, -1, 389, -1, 390, -1, 392, -1, 395, -1, 397, -1, 400, -1, 403, -1, 406, -1, 407, -1, 412, -1, 413, -1, 414, -1, 415, -1, 416, -1, 417, -1, 419, -1, 421, -1, 427, -1, 426, -1, 428, -1, 439, -1, 433, -1, 437, -1, 442, -1, 445, -1, 453, -1, 452, -1, 455, -1, 458, -1, 461, -1, 463, -1, 467, -1, 469, -1, 470, -1, 471, -1, 473, -1, 472, -1, 476, -1, 477, -1, 479, -1, 480, -1, 483, -1, 484, -1, 487, -1, 488, -1, 499, -1, 500, -1, 501, -1, 490, -1, 491, -1, 492, -1, 493, -1, 506, -1, 507, -1, 508, -1, 174, -1, 510, -1, 511, -1, 514, -1, 513, -1, 520, -1, 523, -1, 527, -1, 528, -1, 538, -1, 542, -1, 535, -1, 544, -1, 543, -1, 545, -1, 550, -1, 553, -1, 557, -1, -1, 431, 1307, 1306, 1308, -1, -1, 336, -1, 1309, -1, 1308, 570, 1309, -1, -1, 1310, 1315, -1, 1312, -1, 179, -1, 245, -1, 428, -1, -1, 331, -1, -1, 179, -1, 245, -1, 428, -1, -1, 179, 575, -1, 245, 575, -1, 428, 575, -1, 1316, -1, 1312, 1317, -1, 1311, 1318, 1193, 1321, -1, 1311, 499, 220, 236, 1319, -1, 574, 1301, 1193, 1020, -1, 574, 574, 1314, 1318, 1193, 1321, -1, 867, 872, -1, 305, 1193, 1020, -1, 305, 869, 874, -1, 354, 1193, 1320, -1, 354, 168, 1302, 1193, 1320, -1, 1299, -1, 1299, 575, 1299, -1, 109, 575, 1299, -1, 378, 510, -1, 378, 70, -1, 397, 378, -1, 426, -1, 486, -1, 354, 568, 486, 569, -1, 329, 568, 486, 569, -1, 1020, -1, 109, -1, 330, -1, 12, -1, 33, -1, -1, 248, 1324, 1323, 1325, -1, 482, -1, 479, -1, 1326, -1, 1325, 570, 1326, -1, 1293, 1123, 1327, -1, 378, -1, 552, -1, 256, 552, -1, 378, 245, -1, -1, 521, 1329, 1324, -1, 185, 1293, 333, 1123, -1, 185, 1294, 62, -1, -1, 185, 1294, 378, 1331, 1332, 1125, 1142, -1, 1333, -1, 1299, 1334, -1, 161, -1, 315, -1, 161, -1, 315, -1, 365, -1, 229, -1, -1, 1336, 1335, 568, 1198, 569, -1, 142, -1, 175, -1, 230, -1, 184, -1, 257, -1, 409, 619, 1338, -1, 1342, 330, 1341, 1353, 171, 1355, -1, 1342, 330, 174, 1353, 171, 1355, -1, 1342, 330, 368, 1353, 171, 1355, -1, 12, 1343, 570, 180, 336, 171, 1355, -1, 180, 619, 1340, -1, 1342, 330, 1341, 1353, 497, 1355, 1360, 1361, -1, 1342, 330, 174, 1353, 497, 1355, 1360, 1361, -1, 1342, 330, 368, 1353, 497, 1355, 1360, 1361, -1, -1, 482, -1, 1344, -1, 12, 1343, -1, -1, 367, -1, 1345, -1, 1344, 570, 1345, -1, -1, 423, 1346, 1357, -1, -1, 211, 1347, 1357, -1, -1, 524, 1348, 1357, -1, -1, 386, 1349, 1357, -1, 113, -1, 526, -1, 204, -1, 13, -1, 85, -1, 126, -1, 150, -1, 392, -1, 437, -1, 369, -1, 160, -1, 180, 336, -1, 436, 93, -1, 476, -1, 85, 483, 479, -1, 248, 479, -1, 400, 440, -1, 400, 61, -1, 85, 542, -1, 436, 542, -1, 85, 413, -1, 13, 413, -1, 85, 527, -1, 148, -1, 502, -1, -1, 16, -1, 1352, 1350, 1351, -1, 1352, -1, 471, 486, -1, 221, 486, -1, 60, 486, -1, 563, -1, 1299, 575, 563, -1, 563, 575, 563, -1, 1293, -1, 1302, -1, 1354, 570, 1302, -1, 1356, -1, 1355, 570, 1356, -1, 1302, 198, 45, 486, -1, 1302, 198, 45, 354, 486, -1, 1302, -1, -1, 568, 1358, 569, -1, 1358, 570, 1359, -1, 1359, -1, 1299, -1, -1, 401, 1351, -1, 401, 459, -1, 401, 553, -1, 401, 317, -1, -1, 549, 1362, -1, 1362, 1363, -1, 1363, -1, 180, 336, -1, 276, 1147, -1, 280, 1147, -1, 275, 1147, -1, 281, 1147, -1, -1, 30, 1365, 1366, -1, -1, 550, -1, -1, 16, 321, 53, -1, 16, 53, -1, -1, 391, -1, 321, 391, -1, -1, 418, -1, 71, 1366, 1367, 1368, -1, 411, 1366, 1367, 1368, -1, 411, 1366, 497, 1369, 1299, -1, 418, 1299, -1, 391, 418, 1299, -1, -1, 1375, -1, -1, 518, 1381, 1376, 1000, -1, -1, 1375, -1, 1378, -1, -1, 1379, 1380, -1, 1137, 1141, -1, 1143, -1, -1, 122, -1, 12, -1, 423, 1385, 1384, 1386, -1, -1, 568, 1385, 1382, 569, 1383, 1374, 1386, -1, 1002, -1, -1, -1, 1389, 1388, -1, 1390, 1389, 1394, -1, 1394, -1, 1403, -1, 1407, -1, 606, -1, -1, 110, 142, 1302, -1, 1391, -1, 1391, 1392, -1, 1392, -1, 341, 399, -1, 11, 142, 511, -1, 11, 142, 288, -1, 11, 142, 484, -1, -1, 457, 422, 110, -1, 457, 422, 217, -1, -1, -1, 1393, 542, 1293, 1395, 1397, 18, 1396, 1399, -1, -1, 568, 1398, 569, -1, 1299, -1, 1398, 570, 1299, -1, -1, 1400, 1401, 1402, -1, 423, 1002, -1, 568, 1001, 569, 1377, -1, -1, 549, 59, 336, -1, 549, 50, 59, 336, -1, 549, 245, 59, 336, -1, -1, -1, -1, 502, 1015, 620, 706, 707, 330, 1015, 1404, 1293, 168, 1015, 1405, 131, 416, 1406, 661, -1, -1, 834, 1015, 174, 620, 1408, 621, -1, -1, -1, -1, -1, 368, 1015, 620, 1409, 568, 1410, 641, 569, 1411, 628, 1412, 661, -1, 554, 1415, 1414, 1416, -1, 554, 136, 1414, 1418, -1, 554, 363, 1414, -1, 554, 71, 1414, 1417, -1, 554, 411, 1414, -1, 554, 382, -1, 1281, -1, 1281, 570, 1281, -1, 1281, 570, 1281, 570, 1147, -1, 30, -1, 462, -1, -1, 223, -1, 406, -1, -1, 332, 355, -1, -1, -1, 477, 1419, 1420, -1, -1, 168, 290, -1, 213, 357, 1299, 444, 1296, -1, 517, 357, 1299, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ static const unsigned short int yyrline[] = { 0, 1289, 1289, 1303, 1306, 1307, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, 1322, 1323, 1324, 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1366, 1375, 1376, 1381, 1390, 1397, 1407, 1406, 1417, 1419, 1423, 1424, 1427, 1440, 1439, 1458, 1457, 1468, 1469, 1472, 1477, 1482, 1487, 1492, 1496, 1501, 1505, 1509, 1513, 1517, 1521, 1527, 1531, 1535, 1551, 1555, 1567, 1566, 1601, 1599, 1628, 1627, 1640, 1639, 1647, 1651, 1655, 1659, 1665, 1674, 1675, 1679, 1684, 1689, 1694, 1699, 1704, 1709, 1721, 1716, 1766, 1765, 1772, 1778, 1779, 1784, 1789, 1797, 1800, 1806, 1807, 1813, 1814, 1818, 1824, 1832, 1833, 1841, 1841, 1899, 1900, 1901, 1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1915, 1929, 1943, 1961, 1988, 2031, 2039, 2047, 2070, 1987, 2136, 2137, 2141, 2142, 2147, 2149, 2151, 2153, 2155, 2157, 2159, 2165, 2166, 2167, 2171, 2175, 2183, 2182, 2195, 2197, 2200, 2202, 2206, 2210, 2217, 2219, 2223, 2224, 2229, 2248, 2274, 2276, 2280, 2281, 2285, 2311, 2312, 2313, 2314, 2318, 2319, 2323, 2324, 2329, 2332, 2359, 2358, 2414, 2429, 2428, 2472, 2496, 2496, 2530, 2531, 2536, 2538, 2543, 2566, 2572, 2587, 2588, 2592, 2596, 2605, 2610, 2615, 2623, 2638, 2656, 2657, 2661, 2662, 2663, 2664, 2665, 2666, 2667, 2668, 2669, 2670, 2671, 2675, 2675, 2681, 2681, 2734, 2733, 2759, 2759, 2773, 2805, 2836, 2855, 2854, 2874, 2891, 2893, 2894, 2898, 2919, 2942, 2944, 2958, 2942, 2976, 2978, 2979, 2983, 2984, 2989, 2995, 2988, 3014, 3013, 3029, 3030, 3034, 3035, 3040, 3044, 3039, 3061, 3065, 3060, 3080, 3088, 3093, 3092, 3130, 3131, 3136, 3135, 3162, 3173, 3175, 3172, 3199, 3198, 3216, 3218, 3223, 3225, 3227, 3244, 3249, 3255, 3262, 3263, 3270, 3277, 3285, 3291, 3297, 3298, 3302, 3302, 3307, 3308, 3309, 3313, 3314, 3315, 3319, 3319, 3324, 3325, 3326, 3330, 3331, 3332, 3333, 3334, 3335, 3336, 3337, 3341, 3341, 3346, 3347, 3348, 3352, 3353, 3354, 3355, 3356, 3360, 3360, 3365, 3366, 3367, 3371, 3372, 3373, 3374, 3375, 3376, 3377, 3381, 3381, 3386, 3387, 3388, 3392, 3393, 3394, 3399, 3406, 3413, 3420, 3429, 3438, 3443, 3448, 3455, 3462, 3469, 3476, 3483, 3490, 3497, 3509, 3521, 3533, 3535, 3539, 3544, 3556, 3557, 3608, 3610, 3609, 3612, 3621, 3634, 3633, 3636, 3638, 3636, 3642, 3644, 3643, 3646, 3645, 3674, 3675, 3680, 3679, 3712, 3711, 3728, 3728, 3728, 3732, 3739, 3738, 3742, 3741, 3745, 3744, 3750, 3751, 3756, 3757, 3761, 3762, 3766, 3777, 3789, 3802, 3803, 3819, 3821, 3820, 3825, 3823, 3834, 3835, 3839, 3850, 3866, 3867, 3883, 3884, 3907, 3908, 3913, 3929, 3930, 3931, 3912, 3936, 3947, 3967, 3982, 4000, 4012, 4028, 4029, 4033, 4043, 4044, 4048, 4065, 4124, 4132, 4159, 4160, 4165, 4164, 4185, 4190, 4191, 4195, 4196, 4200, 4202, 4208, 4210, 4212, 4214, 4216, 4218, 4228, 4244, 4227, 4258, 4259, 4262, 4263, 4266, 4267, 4270, 4271, 4274, 4275, 4278, 4279, 4282, 4285, 4286, 4288, 4290, 4293, 4294, 4297, 4298, 4299, 4302, 4303, 4310, 4311, 4312, 4313, 4314, 4315, 4316, 4331, 4337, 4338, 4339, 4340, 4355, 4356, 4357, 4358, 4359, 4360, 4361, 4362, 4363, 4364, 4369, 4378, 4395, 4411, 4434, 4448, 4449, 4450, 4451, 4452, 4453, 4454, 4457, 4458, 4459, 4462, 4463, 4466, 4467, 4470, 4471, 4472, 4473, 4476, 4477, 4481, 4482, 4486, 4487, 4494, 4507, 4517, 4536, 4540, 4546, 4548, 4552, 4556, 4557, 4561, 4566, 4565, 4586, 4587, 4588, 4589, 4591, 4593, 4595, 4597, 4599, 4601, 4604, 4607, 4610, 4613, 4615, 4618, 4621, 4622, 4623, 4624, 4637, 4638, 4640, 4642, 4654, 4656, 4658, 4660, 4661, 4662, 4663, 4664, 4665, 4667, 4669, 4671, 4671, 4673, 4673, 4675, 4676, 4685, 4686, 4687, 4690, 4691, 4692, 4693, 4694, 4698, 4702, 4703, 4707, 4708, 4712, 4713, 4714, 4715, 4716, 4720, 4721, 4722, 4723, 4724, 4727, 4729, 4730, 4734, 4735, 4736, 4739, 4746, 4747, 4750, 4751, 4754, 4755, 4756, 4759, 4760, 4763, 4764, 4767, 4768, 4771, 4772, 4775, 4776, 4777, 4778, 4780, 4781, 4787, 4793, 4799, 4805, 4806, 4822, 4823, 4827, 4828, 4832, 4840, 4844, 4845, 4848, 4849, 4853, 4862, 4866, 4867, 4870, 4880, 4881, 4885, 4886, 4889, 4890, 4893, 4894, 4895, 4896, 4905, 4906, 4909, 4910, 4913, 4914, 4915, 4924, 4926, 4928, 4933, 4932, 4944, 4945, 4948, 4949, 4953, 4954, 4957, 4958, 4961, 4962, 4963, 4964, 4965, 4968, 4969, 4970, 4971, 4972, 4975, 4976, 4977, 4989, 4990, 4993, 4994, 4997, 4998, 5002, 5003, 5004, 5007, 5008, 5009, 5010, 5023, 5035, 5036, 5040, 5041, 5045, 5046, 5050, 5051, 5055, 5056, 5058, 5072, 5073, 5077, 5080, 5081, 5084, 5085, 5096, 5097, 5100, 5101, 5104, 5105, 5113, 5112, 5139, 5138, 5153, 5152, 5171, 5170, 5189, 5188, 5207, 5201, 5225, 5220, 5274, 5279, 5284, 5289, 5294, 5303, 5304, 5305, 5306, 5309, 5310, 5321, 5322, 5326, 5327, 5329, 5330, 5331, 5332, 5334, 5336, 5337, 5346, 5347, 5351, 5360, 5358, 5369, 5367, 5377, 5376, 5385, 5383, 5392, 5399, 5403, 5410, 5414, 5419, 5418, 5434, 5435, 5440, 5449, 5448, 5464, 5469, 5468, 5480, 5481, 5485, 5500, 5501, 5505, 5513, 5514, 5518, 5523, 5522, 5530, 5539, 5529, 5551, 5558, 5562, 5569, 5576, 5582, 5588, 5594, 5601, 5620, 5641, 5646, 5650, 5657, 5658, 5661, 5662, 5666, 5667, 5668, 5672, 5673, 5674, 5677, 5678, 5679, 5680, 5688, 5687, 5698, 5706, 5705, 5715, 5725, 5734, 5735, 5742, 5742, 5748, 5749, 5753, 5754, 5755, 5759, 5760, 5777, 5778, 5783, 5782, 5793, 5792, 5803, 5802, 5812, 5813, 5814, 5819, 5818, 5830, 5831, 5834, 5835, 5838, 5839, 5840, 5844, 5843, 5855, 5864, 5863, 5880, 5881, 5884, 5885, 5888, 5889, 5890, 5891, 5892, 5893, 5897, 5896, 5908, 5909, 5910, 5915, 5914, 5921, 5920, 5927, 5934, 5939, 5947, 5948, 5951, 5963, 5974, 5983, 5984, 5987, 5996, 5997, 6002, 6001, 6011, 6012, 6015, 6024, 6024, 6035, 6036, 6041, 6042, 6051, 6060, 6062, 6065, 6087, 6091, 6090, 6110, 6118, 6110, 6124, 6125, 6126, 6127, 6128, 6131, 6138, 6145, 6147, 6158, 6159, 6162, 6163, 6169, 6170, 6171, 6172, 6178, 6184, 6190, 6204, 6207, 6209, 6215, 6225, 6226, 6227, 6240, 6260, 6267, 6274, 6275, 6278, 6279, 6280, 6281, 6282, 6286, 6287, 6291, 6291, 6308, 6310, 6315, 6316, 6316, 6333, 6335, 6340, 6341, 6344, 6346, 6348, 6350, 6352, 6353, 6354, 6358, 6359, 6360, 6361, 6363, 6365, 6368, 6372, 6378, 6382, 6388, 6392, 6400, 6402, 6408, 6411, 6413, 6415, 6416, 6418, 6421, 6422, 6425, 6426, 6429, 6431, 6433, 6436, 6437, 6438, 6440, 6442, 6445, 6446, 6447, 6448, 6449, 6450, 6453, 6454, 6456, 6456, 6457, 6457, 6458, 6458, 6459, 6459, 6461, 6462, 6463, 6464, 6465, 6466, 6469, 6470, 6474, 6478, 6479, 6480, 6481, 6482, 6483, 6491, 6492, 6493, 6494, 6495, 6497, 6498, 6500, 6502, 6504, 6508, 6509, 6514, 6519, 6523, 6524, 6531, 6536, 6544, 6546, 6553, 6555, 6567, 6570, 6573, 6591, 6593, 6595, 6600, 6602, 6604, 6606, 6608, 6610, 6612, 6614, 6616, 6618, 6620, 6622, 6624, 6626, 6628, 6630, 6632, 6634, 6636, 6638, 6640, 6645, 6662, 6667, 6669, 6674, 6679, 6684, 6686, 6688, 6690, 6692, 6697, 6702, 6704, 6709, 6711, 6713, 6715, 6717, 6719, 6727, 6735, 6737, 6739, 6744, 6749, 6762, 6764, 6766, 6768, 6770, 6775, 6777, 6779, 6781, 6783, 6793, 6795, 6797, 6799, 6801, 6810, 6812, 6825, 6831, 6838, 6845, 6852, 6859, 6866, 6868, 6888, 6887, 6955, 6987, 6989, 6994, 6995, 6999, 7000, 7004, 7005, 7009, 7009, 7015, 7019, 7026, 7046, 7048, 7050, 7052, 7054, 7056, 7058, 7061, 7063, 7060, 7066, 7073, 7075, 7077, 7079, 7081, 7083, 7085, 7087, 7089, 7092, 7091, 7106, 7105, 7120, 7126, 7132, 7145, 7146, 7150, 7153, 7158, 7161, 7173, 7172, 7188, 7189, 7190, 7191, 7192, 7193, 7194, 7195, 7196, 7197, 7198, 7202, 7203, 7207, 7207, 7212, 7213, 7216, 7217, 7220, 7220, 7225, 7226, 7229, 7230, 7233, 7234, 7237, 7243, 7253, 7254, 7263, 7268, 7269, 7289, 7291, 7295, 7293, 7310, 7308, 7326, 7324, 7331, 7340, 7338, 7356, 7355, 7365, 7376, 7374, 7393, 7392, 7403, 7413, 7414, 7415, 7420, 7420, 7435, 7433, 7452, 7474, 7521, 7520, 7543, 7560, 7543, 7567, 7571, 7597, 7598, 7602, 7606, 7607, 7608, 7612, 7613, 7618, 7617, 7623, 7622, 7630, 7631, 7634, 7636, 7636, 7640, 7640, 7645, 7646, 7650, 7651, 7658, 7659, 7663, 7671, 7680, 7681, 7682, 7683, 7684, 7685, 7686, 7687, 7688, 7689, 7690, 7691, 7692, 7695, 7696, 7697, 7698, 7699, 7700, 7701, 7702, 7703, 7707, 7708, 7709, 7710, 7713, 7715, 7716, 7719, 7720, 7723, 7725, 7729, 7731, 7730, 7744, 7747, 7746, 7761, 7767, 7780, 7782, 7785, 7787, 7791, 7792, 7805, 7823, 7827, 7828, 7832, 7845, 7847, 7851, 7850, 7882, 7884, 7888, 7889, 7890, 7895, 7901, 7905, 7906, 7910, 7914, 7921, 7928, 7937, 7941, 7942, 7943, 7948, 7952, 7960, 7961, 7962, 7963, 7964, 7965, 7969, 7970, 7971, 7972, 7973, 7977, 7978, 7979, 7980, 7981, 7985, 7986, 7987, 7988, 7992, 7997, 7998, 8001, 8004, 8003, 8032, 8033, 8036, 8037, 8040, 8053, 8053, 8063, 8064, 8068, 8080, 8113, 8112, 8125, 8124, 8133, 8145, 8156, 8155, 8172, 8179, 8179, 8191, 8198, 8210, 8222, 8226, 8232, 8238, 8245, 8250, 8255, 8265, 8266, 8269, 8277, 8278, 8282, 8283, 8291, 8300, 8290, 8310, 8317, 8309, 8327, 8339, 8340, 8341, 8345, 8346, 8349, 8350, 8353, 8362, 8363, 8364, 8366, 8365, 8375, 8376, 8379, 8380, 8381, 8381, 8382, 8382, 8386, 8387, 8390, 8392, 8395, 8403, 8404, 8408, 8409, 8414, 8413, 8426, 8427, 8430, 8435, 8443, 8444, 8447, 8449, 8449, 8457, 8466, 8456, 8488, 8489, 8492, 8499, 8500, 8503, 8512, 8513, 8519, 8518, 8532, 8531, 8540, 8539, 8547, 8546, 8556, 8557, 8560, 8567, 8580, 8581, 8585, 8586, 8589, 8590, 8591, 8594, 8604, 8606, 8611, 8610, 8624, 8631, 8639, 8647, 8655, 8663, 8671, 8679, 8686, 8688, 8690, 8699, 8709, 8713, 8718, 8717, 8722, 8731, 8736, 8744, 8751, 8756, 8761, 8766, 8768, 8770, 8772, 8774, 8782, 8794, 8806, 8808, 8816, 8823, 8830, 8840, 8847, 8853, 8862, 8870, 8874, 8878, 8885, 8892, 8898, 8907, 8916, 8926, 8936, 8944, 8946, 8948, 8952, 8953, 8955, 8957, 8960, 8961, 8964, 8965, 8968, 8969, 8972, 8973, 8976, 8977, 8979, 8981, 8984, 8996, 8995, 9009, 9008, 9018, 9019, 9022, 9023, 9024, 9029, 9030, 9031, 9039, 9038, 9050, 9051, 9054, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9061, 9062, 9063, 9064, 9067, 9068, 9072, 9071, 9080, 9081, 9084, 9085, 9086, 9090, 9089, 9099, 9103, 9107, 9119, 9128, 9129, 9130, 9135, 9145, 9144, 9160, 9177, 9188, 9195, 9205, 9176, 9210, 9219, 9220, 9223, 9224, 9236, 9240, 9241, 9242, 9244, 9246, 9249, 9250, 9253, 9258, 9265, 9270, 9276, 9278, 9281, 9282, 9285, 9290, 9296, 9298, 9305, 9306, 9307, 9310, 9312, 9317, 9318, 9323, 9324, 9330, 9348, 9356, 9361, 9380, 9382, 9393, 9406, 9427, 9428, 9429, 9438, 9439, 9440, 9445, 9446, 9447, 9448, 9449, 9465, 9479, 9480, 9481, 9484, 9485, 9486, 9487, 9495, 9510, 9511, 9514, 9520, 9531, 9534, 9571, 9575, 9583, 9587, 9656, 9671, 9695, 9696, 9712, 9722, 9725, 9726, 9727, 9731, 9735, 9736, 9762, 9775, 9789, 9802, 9803, 9809, 9818, 9819, 9828, 9829, 9830, 9833, 9847, 9861, 9875, 9876, 9877, 9878, 9879, 9880, 9881, 9882, 9883, 9884, 9885, 9886, 9887, 9888, 9889, 9890, 9891, 9892, 9893, 9894, 9895, 9896, 9897, 9898, 9899, 9900, 9901, 9902, 9903, 9904, 9905, 9906, 9907, 9908, 9909, 9910, 9911, 9912, 9913, 9914, 9915, 9916, 9917, 9918, 9919, 9920, 9921, 9922, 9923, 9924, 9934, 9935, 9936, 9937, 9938, 9939, 9940, 9941, 9942, 9943, 9944, 9945, 9946, 9947, 9948, 9949, 9950, 9951, 9952, 9953, 9954, 9955, 9956, 9957, 9958, 9959, 9960, 9961, 9962, 9963, 9964, 9965, 9966, 9967, 9968, 9969, 9970, 9971, 9972, 9973, 9974, 9975, 9976, 9977, 9978, 9979, 9980, 9981, 9982, 9983, 9984, 9985, 9986, 9987, 9988, 9989, 9990, 9991, 9992, 9993, 9994, 9995, 9996, 9997, 9998, 9999, 10000, 10001, 10002, 10003, 10004, 10005, 10006, 10007, 10008, 10009, 10010, 10011, 10012, 10013, 10014, 10015, 10016, 10017, 10018, 10019, 10020, 10021, 10022, 10023, 10024, 10025, 10026, 10027, 10028, 10029, 10030, 10031, 10032, 10033, 10034, 10035, 10036, 10037, 10038, 10039, 10040, 10041, 10042, 10043, 10044, 10045, 10046, 10047, 10048, 10049, 10050, 10051, 10052, 10053, 10054, 10055, 10056, 10057, 10058, 10059, 10060, 10061, 10062, 10063, 10064, 10065, 10066, 10067, 10068, 10069, 10070, 10071, 10072, 10073, 10074, 10075, 10076, 10077, 10078, 10079, 10080, 10081, 10082, 10083, 10084, 10085, 10086, 10087, 10088, 10089, 10090, 10091, 10092, 10093, 10094, 10095, 10096, 10097, 10098, 10099, 10100, 10101, 10102, 10103, 10104, 10105, 10106, 10107, 10108, 10109, 10110, 10111, 10112, 10113, 10114, 10115, 10116, 10117, 10118, 10119, 10120, 10121, 10122, 10123, 10124, 10125, 10126, 10127, 10128, 10129, 10130, 10131, 10132, 10133, 10134, 10135, 10136, 10137, 10138, 10139, 10140, 10141, 10142, 10143, 10144, 10145, 10146, 10147, 10148, 10149, 10150, 10151, 10152, 10153, 10154, 10155, 10156, 10157, 10158, 10159, 10160, 10161, 10162, 10163, 10164, 10165, 10166, 10167, 10168, 10169, 10170, 10171, 10172, 10173, 10174, 10175, 10176, 10177, 10178, 10179, 10180, 10181, 10188, 10187, 10201, 10202, 10205, 10206, 10209, 10209, 10287, 10288, 10289, 10290, 10294, 10295, 10299, 10300, 10301, 10302, 10306, 10307, 10308, 10309, 10313, 10314, 10317, 10398, 10410, 10414, 10419, 10426, 10441, 10454, 10475, 10482, 10514, 10557, 10571, 10572, 10573, 10574, 10578, 10579, 10586, 10595, 10596, 10597, 10598, 10599, 10607, 10606, 10622, 10623, 10626, 10627, 10630, 10638, 10639, 10640, 10641, 10646, 10645, 10666, 10678, 10691, 10690, 10713, 10714, 10718, 10719, 10723, 10724, 10725, 10726, 10728, 10727, 10738, 10739, 10740, 10741, 10742, 10748, 10753, 10760, 10773, 10785, 10792, 10797, 10805, 10818, 10832, 10834, 10837, 10838, 10845, 10847, 10851, 10852, 10855, 10855, 10856, 10856, 10857, 10857, 10858, 10858, 10859, 10860, 10861, 10862, 10863, 10864, 10865, 10866, 10867, 10868, 10869, 10870, 10871, 10872, 10873, 10874, 10875, 10876, 10877, 10878, 10879, 10880, 10881, 10882, 10883, 10888, 10889, 10893, 10894, 10898, 10908, 10918, 10931, 10946, 10959, 10972, 10985, 10986, 10995, 10996, 11005, 11030, 11032, 11039, 11043, 11046, 11047, 11050, 11071, 11072, 11076, 11080, 11084, 11091, 11092, 11095, 11096, 11100, 11101, 11107, 11113, 11119, 11129, 11128, 11138, 11139, 11143, 11144, 11145, 11149, 11150, 11151, 11155, 11156, 11160, 11170, 11177, 11187, 11196, 11210, 11211, 11216, 11215, 11250, 11251, 11252, 11256, 11256, 11280, 11281, 11285, 11286, 11287, 11291, 11296, 11295, 11315, 11321, 11341, 11363, 11365, 11370, 11372, 11374, 11376, 11388, 11398, 11411, 11413, 11415, 11420, 11425, 11427, 11429, 11435, 11436, 11438, 11444, 11453, 11443, 11477, 11478, 11482, 11487, 11495, 11495, 11519, 11520, 11525, 11526, 11528, 11530, 11548, 11557, 11565, 11541, 11637, 11636, 11646, 11675, 11687, 11696, 11645, 11723, 11727, 11731, 11735, 11739, 11743, 11749, 11756, 11763, 11772, 11773, 11777, 11778, 11779, 11783, 11784, 11788, 11789, 11789, 11794, 11795, 11799, 11808 }; #endif #if YYDEBUG || YYERROR_VERBOSE /* YYTNME[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", "EXECUTE_SYM", "EXISTS", "EXIT_SYM", "EXPANSION_SYM", "EXTENDED_SYM", "EXTENT_SIZE_SYM", "EXTRACT_SYM", "FALSE_SYM", "FAST_SYM", "FETCH_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", "INNOBASE_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", "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", "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", "WHEN_SYM", "WHERE", "WHILE_SYM", "WITH", "WORK_SYM", "WRAPPER_SYM", "WRITE_SYM", "X509_SYM", "XA_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", "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", "opt_primary", "references", "@70", "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", "@71", "@72", "@73", "@74", "@75", "@76", "@77", "ev_alter_on_schedule_completion", "opt_ev_rename_to", "opt_ev_sql_stmt", "ident_or_empty", "alter_commands", "@78", "@79", "@80", "@81", "remove_partitioning", "all_or_alt_part_name_list", "add_partition_rule", "@82", "add_part_extra", "reorg_partition_rule", "@83", "reorg_parts_rule", "@84", "alt_part_name_list", "alt_part_name_item", "alter_list", "add_column", "alter_list_item", "@85", "@86", "@87", "opt_column", "opt_ignore", "opt_restrict", "opt_place", "opt_to", "slave", "@88", "@89", "start", "start_transaction_opts", "slave_thread_opts", "@90", "slave_thread_opt_list", "slave_thread_opt", "slave_until", "slave_until_opts", "restore", "@91", "backup", "@92", "checksum", "@93", "opt_checksum_type", "repair", "@94", "opt_mi_repair_type", "mi_repair_types", "mi_repair_type", "analyze", "@95", "binlog_base64_event", "check", "@96", "opt_mi_check_type", "mi_check_types", "mi_check_type", "optimize", "@97", "opt_no_write_to_binlog", "rename", "@98", "@99", "rename_list", "table_to_table_list", "table_to_table", "db_to_db", "keycache", "keycache_list", "assign_to_keycache", "key_cache_name", "preload", "@100", "preload_list", "preload_keys", "cache_keys_spec", "@101", "cache_key_list_or_empty", "opt_ignore_leaves", "select", "select_init", "select_paren", "select_init2", "@102", "select_part2", "@103", "@104", "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", "@105", "bool_or_expr", "bool_term", "@106", "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", "@107", "fulltext_options", "opt_natural_language_mode", "opt_query_expansion", "udf_expr_list", "udf_expr_list2", "@108", "udf_expr_list3", "udf_expr", "sum_expr", "@109", "@110", "@111", "variable", "@112", "variable_aux", "opt_distinct", "opt_gconcat_separator", "opt_gorder_clause", "in_sum_expr", "@113", "cast_type", "opt_expr_list", "expr_list", "@114", "expr_list2", "ident_list_arg", "ident_list", "@115", "ident_list2", "opt_expr", "opt_else", "when_list", "table_ref", "join_table_list", "derived_table_list", "join_table", "@116", "@117", "@118", "@119", "@120", "@121", "@122", "normal_join", "table_factor", "@123", "@124", "select_derived", "@125", "select_derived2", "@126", "@127", "get_select_lex", "select_derived_init", "opt_outer", "index_hint_clause", "index_hint_type", "index_hint_definition", "@128", "@129", "index_hints_list", "opt_index_hints_list", "@130", "opt_key_definition", "@131", "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", "@132", "having_clause", "@133", "opt_escape", "group_clause", "group_list", "olap_opt", "alter_order_clause", "alter_order_list", "alter_order_item", "opt_order_clause", "order_clause", "@134", "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", "@135", "procedure_list", "procedure_list2", "procedure_item", "select_var_list_init", "@136", "select_var_list", "select_var_ident", "into", "@137", "into_destination", "@138", "do", "@139", "drop", "@140", "table_list", "table_name", "if_exists", "opt_temporary", "insert", "@141", "@142", "replace", "@143", "@144", "insert_lock_option", "replace_lock_option", "insert2", "insert_table", "insert_field_spec", "@145", "fields", "insert_values", "@146", "@147", "values_list", "ident_eq_list", "ident_eq_value", "equal", "opt_equal", "no_braces", "@148", "opt_values", "values", "expr_or_default", "opt_insert_update", "@149", "update", "@150", "@151", "update_list", "update_elem", "insert_update_list", "insert_update_elem", "opt_low_priority", "delete", "@152", "single_multi", "@153", "@154", "@155", "table_wild_list", "table_wild_one", "opt_wild", "opt_delete_options", "opt_delete_option", "truncate", "opt_table_sym", "show", "@156", "show_param", "@157", "show_engine_param", "master_or_binary", "opt_storage", "opt_db", "opt_full", "from_or_in", "binlog_in", "binlog_from", "wild_and_where", "describe", "@158", "@159", "describe_command", "opt_extended_describe", "opt_describe_column", "flush", "@160", "flush_options", "flush_option", "@161", "opt_table_list", "reset", "@162", "reset_options", "reset_option", "purge", "@163", "purge_options", "purge_option", "kill", "kill_option", "use", "load", "@164", "load_data", "@165", "@166", "@167", "@168", "opt_local", "load_data_lock", "opt_duplicate", "opt_field_term", "field_term_list", "field_term", "opt_line_term", "line_term_list", "line_term", "opt_ignore_lines", "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", "@169", "opt_option", "option_value_list", "option_type_value", "@170", "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", "@171", "table_or_tables", "table_lock_list", "table_lock", "lock_option", "unlock", "@172", "handler", "@173", "handler_read_or_scan", "handler_scan_function", "handler_rkey_function", "@174", "handler_rkey_mode", "revoke", "revoke_command", "grant", "grant_command", "opt_table", "grant_privileges", "opt_privileges", "object_privilege_list", "object_privilege", "@175", "@176", "@177", "@178", "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", "@179", "opt_work", "opt_chain", "opt_release", "opt_savepoint", "commit", "rollback", "savepoint", "release", "union_clause", "union_list", "@180", "union_opt", "union_order_or_limit", "@181", "order_or_limit", "union_option", "subselect", "@182", "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", "@183", "@184", "view_list_opt", "view_list", "view_select", "@185", "view_select_aux", "view_check_option", "trigger_tail", "@186", "@187", "@188", "sp_tail", "@189", "@190", "@191", "@192", "@193", "xa", "xid", "begin_or_start", "opt_join_or_resume", "opt_one_phase", "opt_suspend", "@194", "opt_migrate", "install", "uninstall", 0 }; #endif # ifdef YYPRINT /* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to token YYLEX-NUM. */ static const unsigned short int 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, 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 unsigned short int yyr1[] = { 0, 578, 579, 579, 580, 580, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 581, 582, 583, 583, 584, 585, 585, 587, 586, 588, 588, 589, 589, 590, 592, 591, 594, 593, 595, 595, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 596, 597, 597, 597, 597, 599, 598, 600, 598, 601, 598, 602, 598, 598, 598, 598, 598, 603, 604, 604, 605, 605, 605, 605, 605, 605, 605, 607, 606, 609, 608, 608, 610, 610, 610, 610, 611, 611, 612, 612, 613, 613, 614, 614, 615, 615, 617, 616, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 618, 619, 620, 620, 621, 622, 623, 624, 625, 626, 621, 627, 627, 628, 628, 629, 629, 629, 629, 629, 629, 629, 630, 630, 630, 631, 631, 633, 632, 634, 634, 635, 635, 636, 636, 637, 637, 638, 638, 639, 640, 641, 641, 642, 642, 643, 644, 644, 644, 644, 645, 645, 646, 646, 647, 647, 649, 648, 648, 650, 648, 648, 652, 651, 653, 653, 654, 654, 655, 656, 656, 657, 657, 658, 658, 658, 658, 658, 659, 659, 660, 660, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 661, 663, 662, 665, 664, 667, 666, 669, 668, 670, 671, 672, 674, 673, 675, 676, 676, 676, 677, 677, 679, 680, 681, 678, 682, 682, 682, 683, 683, 685, 686, 684, 688, 687, 689, 689, 690, 690, 692, 693, 691, 695, 696, 694, 697, 697, 699, 698, 700, 700, 702, 701, 701, 703, 704, 701, 705, 701, 706, 706, 707, 707, 707, 708, 709, 710, 711, 711, 712, 712, 713, 714, 715, 715, 717, 716, 718, 718, 718, 719, 719, 719, 721, 720, 722, 722, 722, 723, 723, 723, 723, 723, 723, 723, 723, 725, 724, 726, 726, 726, 727, 727, 727, 727, 727, 729, 728, 730, 730, 730, 731, 731, 731, 731, 731, 731, 731, 733, 732, 734, 734, 734, 735, 735, 735, 736, 737, 738, 739, 740, 741, 741, 741, 742, 743, 744, 745, 746, 747, 748, 749, 750, 751, 751, 752, 752, 753, 753, 754, 755, 754, 754, 754, 757, 756, 758, 759, 756, 760, 761, 760, 762, 760, 763, 763, 765, 764, 767, 766, 769, 770, 768, 771, 772, 771, 773, 771, 774, 771, 775, 775, 776, 776, 777, 777, 778, 779, 780, 781, 781, 782, 783, 782, 784, 782, 785, 785, 786, 787, 788, 788, 789, 789, 790, 790, 792, 793, 794, 795, 791, 796, 797, 797, 797, 798, 798, 799, 799, 800, 801, 801, 802, 803, 804, 804, 805, 805, 807, 806, 808, 809, 809, 810, 810, 811, 811, 811, 811, 811, 811, 811, 811, 813, 814, 812, 815, 815, 816, 816, 817, 817, 818, 818, 819, 819, 820, 820, 821, 822, 822, 823, 823, 824, 824, 825, 825, 825, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 826, 827, 828, 829, 830, 831, 831, 831, 831, 831, 831, 831, 832, 832, 832, 833, 833, 834, 834, 835, 835, 835, 835, 836, 836, 837, 837, 838, 838, 839, 839, 839, 839, 839, 840, 840, 841, 842, 842, 843, 845, 844, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 846, 847, 846, 848, 846, 846, 846, 849, 849, 849, 849, 849, 849, 849, 849, 850, 851, 851, 852, 852, 853, 853, 853, 853, 853, 854, 854, 854, 854, 854, 855, 855, 855, 856, 856, 856, 857, 858, 858, 859, 859, 860, 860, 860, 861, 861, 862, 862, 863, 863, 864, 864, 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, 865, 866, 866, 867, 867, 868, 868, 869, 869, 870, 870, 871, 871, 872, 872, 873, 874, 874, 875, 875, 876, 876, 877, 877, 877, 877, 877, 877, 878, 878, 879, 879, 879, 879, 880, 880, 882, 881, 883, 883, 884, 884, 885, 885, 886, 886, 887, 887, 887, 887, 887, 888, 888, 888, 888, 888, 889, 889, 889, 890, 890, 891, 891, 892, 892, 893, 893, 893, 894, 894, 894, 894, 895, 896, 896, 897, 897, 898, 898, 899, 899, 900, 900, 900, 901, 901, 901, 902, 902, 903, 903, 904, 904, 905, 905, 906, 906, 908, 907, 909, 907, 910, 907, 911, 907, 912, 907, 913, 907, 914, 907, 907, 907, 907, 907, 907, 915, 915, 915, 915, 916, 916, 917, 917, 918, 918, 919, 919, 919, 919, 919, 919, 919, 919, 919, 919, 920, 919, 921, 919, 922, 919, 923, 919, 919, 919, 924, 925, 925, 927, 926, 928, 928, 928, 930, 929, 931, 932, 931, 933, 933, 934, 935, 935, 936, 937, 937, 937, 938, 937, 939, 940, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 937, 941, 941, 942, 942, 943, 943, 943, 944, 944, 944, 945, 945, 945, 945, 947, 946, 946, 948, 946, 946, 949, 950, 950, 952, 951, 953, 953, 954, 954, 954, 955, 955, 956, 956, 958, 957, 960, 959, 962, 961, 963, 963, 963, 965, 964, 966, 966, 967, 967, 968, 968, 968, 970, 969, 971, 973, 972, 974, 974, 975, 975, 976, 976, 976, 976, 976, 976, 978, 977, 979, 979, 979, 981, 980, 982, 980, 980, 983, 983, 984, 984, 985, 986, 987, 988, 988, 989, 990, 990, 992, 991, 993, 993, 994, 996, 995, 997, 997, 998, 998, 999, 1000, 1000, 1001, 1001, 1003, 1002, 1005, 1006, 1004, 1007, 1007, 1007, 1007, 1007, 1008, 1008, 1009, 1009, 1010, 1010, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1011, 1012, 1012, 1012, 1013, 1013, 1013, 1014, 1015, 1016, 1017, 1017, 1018, 1018, 1018, 1018, 1018, 1019, 1019, 1021, 1020, 1022, 1022, 1023, 1024, 1023, 1025, 1025, 1026, 1026, 1027, 1027, 1027, 1027, 1027, 1027, 1027, 1028, 1028, 1028, 1028, 1028, 1028, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1029, 1030, 1030, 1031, 1031, 1032, 1032, 1032, 1033, 1033, 1033, 1033, 1033, 1034, 1034, 1034, 1034, 1034, 1034, 1035, 1035, 1036, 1036, 1037, 1037, 1038, 1038, 1039, 1039, 1040, 1040, 1040, 1040, 1040, 1040, 1041, 1041, 1042, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1045, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1046, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1047, 1049, 1048, 1048, 1050, 1050, 1051, 1051, 1052, 1052, 1053, 1053, 1055, 1054, 1056, 1056, 1057, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1059, 1060, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1061, 1058, 1063, 1062, 1064, 1064, 1064, 1065, 1065, 1066, 1066, 1067, 1067, 1069, 1068, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1070, 1071, 1071, 1073, 1072, 1074, 1074, 1075, 1075, 1077, 1076, 1078, 1078, 1079, 1079, 1080, 1080, 1081, 1081, 1082, 1082, 1083, 1084, 1084, 1085, 1085, 1086, 1085, 1087, 1085, 1088, 1085, 1085, 1089, 1085, 1090, 1085, 1085, 1091, 1085, 1092, 1085, 1085, 1093, 1093, 1093, 1095, 1094, 1096, 1094, 1094, 1094, 1098, 1097, 1100, 1101, 1099, 1102, 1103, 1104, 1104, 1105, 1105, 1105, 1105, 1106, 1106, 1108, 1107, 1109, 1107, 1110, 1110, 1111, 1112, 1111, 1114, 1113, 1115, 1115, 1116, 1116, 1117, 1117, 1118, 1118, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1119, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1120, 1121, 1121, 1121, 1121, 1122, 1122, 1122, 1123, 1123, 1124, 1124, 1125, 1126, 1125, 1127, 1128, 1127, 1129, 1129, 1130, 1130, 1131, 1131, 1132, 1132, 1132, 1133, 1134, 1134, 1135, 1136, 1136, 1138, 1137, 1139, 1139, 1140, 1140, 1140, 1141, 1141, 1142, 1142, 1143, 1144, 1144, 1144, 1145, 1145, 1145, 1145, 1146, 1146, 1147, 1147, 1147, 1147, 1147, 1147, 1148, 1148, 1148, 1148, 1148, 1149, 1149, 1149, 1149, 1149, 1150, 1150, 1150, 1150, 1151, 1152, 1152, 1153, 1154, 1153, 1155, 1155, 1156, 1156, 1157, 1159, 1158, 1160, 1160, 1161, 1161, 1163, 1162, 1165, 1164, 1164, 1164, 1167, 1166, 1168, 1169, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1170, 1170, 1171, 1172, 1172, 1173, 1173, 1175, 1176, 1174, 1178, 1179, 1177, 1180, 1180, 1180, 1180, 1181, 1181, 1182, 1182, 1183, 1184, 1184, 1184, 1185, 1184, 1186, 1186, 1187, 1187, 1188, 1187, 1189, 1187, 1190, 1190, 1191, 1191, 1192, 1193, 1193, 1194, 1194, 1196, 1195, 1197, 1197, 1198, 1198, 1199, 1199, 1200, 1201, 1200, 1203, 1204, 1202, 1205, 1205, 1206, 1207, 1207, 1208, 1209, 1209, 1211, 1210, 1213, 1212, 1214, 1212, 1215, 1212, 1216, 1216, 1217, 1217, 1218, 1218, 1219, 1219, 1220, 1220, 1220, 1221, 1222, 1222, 1224, 1223, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1226, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1225, 1227, 1227, 1227, 1228, 1228, 1229, 1229, 1230, 1230, 1231, 1231, 1232, 1232, 1233, 1233, 1234, 1234, 1235, 1235, 1235, 1237, 1236, 1238, 1236, 1239, 1239, 1240, 1240, 1240, 1241, 1241, 1241, 1243, 1242, 1244, 1244, 1246, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1245, 1247, 1247, 1249, 1248, 1250, 1250, 1251, 1251, 1251, 1253, 1252, 1254, 1255, 1255, 1256, 1257, 1257, 1257, 1258, 1260, 1259, 1259, 1262, 1263, 1264, 1265, 1261, 1261, 1266, 1266, 1267, 1267, 1267, 1268, 1268, 1268, 1269, 1269, 1270, 1270, 1271, 1271, 1271, 1271, 1272, 1272, 1273, 1273, 1274, 1274, 1275, 1275, 1276, 1276, 1276, 1277, 1277, 1278, 1278, 1279, 1279, 1280, 1280, 1280, 1280, 1281, 1281, 1281, 1282, 1283, 1283, 1283, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1284, 1285, 1285, 1285, 1285, 1285, 1286, 1286, 1287, 1287, 1288, 1289, 1289, 1290, 1290, 1291, 1291, 1291, 1292, 1292, 1292, 1292, 1293, 1293, 1293, 1294, 1295, 1295, 1296, 1297, 1298, 1299, 1299, 1299, 1300, 1300, 1301, 1301, 1301, 1302, 1302, 1302, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1303, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1304, 1306, 1305, 1307, 1307, 1308, 1308, 1310, 1309, 1311, 1311, 1311, 1311, 1312, 1312, 1313, 1313, 1313, 1313, 1314, 1314, 1314, 1314, 1315, 1315, 1316, 1316, 1317, 1317, 1317, 1317, 1317, 1317, 1317, 1318, 1318, 1318, 1319, 1319, 1319, 1319, 1320, 1320, 1320, 1321, 1321, 1321, 1321, 1321, 1323, 1322, 1324, 1324, 1325, 1325, 1326, 1327, 1327, 1327, 1327, 1329, 1328, 1330, 1330, 1331, 1330, 1332, 1332, 1333, 1333, 1334, 1334, 1334, 1334, 1335, 1334, 1336, 1336, 1336, 1336, 1336, 1337, 1338, 1338, 1338, 1338, 1339, 1340, 1340, 1340, 1341, 1341, 1342, 1342, 1343, 1343, 1344, 1344, 1346, 1345, 1347, 1345, 1348, 1345, 1349, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1345, 1350, 1350, 1351, 1351, 1352, 1352, 1352, 1353, 1353, 1353, 1353, 1354, 1354, 1355, 1355, 1356, 1356, 1356, 1357, 1357, 1358, 1358, 1359, 1360, 1360, 1360, 1360, 1360, 1361, 1361, 1362, 1362, 1363, 1363, 1363, 1363, 1363, 1365, 1364, 1366, 1366, 1367, 1367, 1367, 1368, 1368, 1368, 1369, 1369, 1370, 1371, 1371, 1372, 1373, 1374, 1374, 1376, 1375, 1377, 1377, 1377, 1379, 1378, 1380, 1380, 1381, 1381, 1381, 1382, 1383, 1382, 1384, 1385, 1386, 1387, 1387, 1388, 1388, 1388, 1388, 1389, 1389, 1390, 1390, 1390, 1391, 1392, 1392, 1392, 1393, 1393, 1393, 1395, 1396, 1394, 1397, 1397, 1398, 1398, 1400, 1399, 1401, 1401, 1402, 1402, 1402, 1402, 1404, 1405, 1406, 1403, 1408, 1407, 1409, 1410, 1411, 1412, 1407, 1413, 1413, 1413, 1413, 1413, 1413, 1414, 1414, 1414, 1415, 1415, 1416, 1416, 1416, 1417, 1417, 1418, 1419, 1418, 1420, 1420, 1421, 1422 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ static const unsigned char 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, 3, 5, 1, 1, 3, 4, 4, 2, 2, 2, 3, 3, 3, 4, 4, 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, 2, 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, 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, 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, 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, 6, 0, 6, 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, 6, 4, 6, 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, 2, 1, 3, 3, 6, 16, 2, 2, 0, 6, 5, 2, 2, 2, 1, 1, 1, 5, 5, 2, 2, 3, 2, 2, 2, 3, 2, 2, 1, 3, 4, 3, 3, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 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, 4, 5, 0, 0, 0, 0, 18, 2, 0, 1, 0, 1, 1, 0, 1, 1, 0, 2, 2, 1, 3, 4, 3, 3, 0, 2, 2, 1, 3, 3, 0, 3, 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, 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, 4, 1, 1, 1, 3, 3, 1, 1, 2, 2, 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 unsigned short int yydefact[] = { 0, 2283, 922, 0, 2240, 0, 0, 0, 0, 0, 0, 2242, 99, 58, 1529, 1626, 1627, 1448, 1468, 2, 0, 922, 147, 0, 70, 1470, 0, 1665, 0, 0, 922, 405, 0, 1659, 0, 0, 922, 1473, 1652, 0, 147, 2242, 0, 960, 2075, 1551, 0, 0, 0, 1549, 0, 2132, 1518, 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, 953, 19, 20, 26, 40, 54, 17, 51, 48, 18, 1628, 22, 41, 36, 28, 55, 29, 47, 30, 53, 24, 43, 23, 5, 14, 44, 45, 37, 56, 27, 52, 0, 791, 0, 0, 856, 0, 0, 0, 0, 0, 774, 2283, 924, 923, 0, 2124, 2123, 889, 2242, 1761, 907, 0, 1825, 1826, 1827, 1828, 1829, 1830, 1831, 1776, 1832, 1833, 1835, 1834, 1836, 1837, 1777, 1778, 1838, 1839, 1841, 1840, 1842, 1779, 1780, 1843, 1844, 1845, 1781, 1782, 1846, 1847, 1783, 1848, 1849, 1850, 1851, 1784, 1852, 1785, 1853, 1854, 1855, 1856, 1857, 1858, 1786, 1859, 1860, 1862, 1861, 1863, 1864, 1865, 1787, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1788, 1873, 1874, 1875, 1890, 1789, 1876, 1879, 1878, 1877, 1880, 1881, 1883, 1882, 1884, 1790, 1885, 1886, 1887, 1888, 1892, 1893, 1894, 1791, 1889, 1895, 1891, 2055, 1897, 1896, 1898, 1900, 1899, 1792, 1901, 1793, 1794, 1902, 1903, 1759, 1904, 1760, 1906, 1907, 1908, 1911, 1912, 1795, 1905, 1909, 1910, 1913, 1796, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921, 1922, 1923, 1933, 1926, 1928, 1929, 1931, 1927, 1932, 1936, 1935, 1937, 1938, 1939, 1934, 1925, 1930, 1940, 1941, 1924, 1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951, 1952, 1954, 1953, 1955, 1956, 1957, 1958, 1959, 1961, 1960, 1962, 1963, 1964, 1966, 1965, 1968, 1969, 1797, 1967, 1970, 1971, 1972, 1973, 1974, 1798, 1799, 1800, 1975, 1976, 1801, 1977, 1978, 1979, 1802, 1980, 1981, 1983, 1982, 1984, 1985, 1803, 1804, 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1765, 1994, 1995, 1997, 1996, 1998, 1999, 2000, 2001, 2002, 1805, 2003, 1806, 2004, 2005, 1807, 2006, 1808, 2007, 2008, 1809, 2009, 2010, 2011, 2012, 2013, 2014, 1810, 2015, 2016, 1811, 2018, 2017, 2019, 1812, 2021, 2022, 1813, 2020, 1815, 2023, 1814, 1816, 2024, 2026, 2025, 2027, 2028, 2029, 1817, 2030, 1818, 2031, 2032, 2033, 2034, 2036, 2035, 2037, 2038, 2039, 2040, 2041, 2042, 2043, 2044, 2048, 2049, 2050, 2051, 2045, 2046, 2047, 1819, 2052, 2053, 2054, 2056, 2057, 2059, 2058, 1820, 1821, 2060, 2061, 1824, 2062, 2063, 2066, 2064, 2065, 2068, 2067, 2069, 2070, 1822, 2071, 1823, 2072, 173, 1764, 149, 1766, 1775, 0, 891, 908, 2243, 2244, 496, 737, 0, 0, 738, 0, 495, 736, 147, 2283, 104, 0, 492, 493, 0, 1543, 1247, 1466, 1466, 1466, 0, 0, 1466, 1466, 0, 1469, 1466, 147, 1466, 0, 63, 1634, 0, 0, 0, 0, 1758, 0, 1476, 0, 1666, 1667, 0, 1669, 0, 0, 2121, 0, 0, 0, 0, 0, 927, 147, 925, 0, 1527, 0, 887, 0, 2244, 2255, 954, 958, 970, 2076, 2073, 1611, 876, 876, 876, 874, 876, 1550, 0, 0, 0, 1527, 1668, 2330, 0, 0, 0, 2326, 0, 2331, 0, 960, 0, 0, 1, 3, 0, 1886, 1979, 1624, 1622, 1755, 0, 766, 792, 0, 770, 0, 768, 1771, 1770, 1769, 0, 781, 780, 778, 0, 366, 0, 0, 2292, 772, 905, 0, 2241, 0, 937, 947, 175, 0, 72, 0, 0, 0, 2247, 0, 0, 0, 0, 103, 0, 0, 0, 100, 546, 2283, 2285, 2287, 496, 494, 0, 1547, 1546, 1545, 0, 1543, 1449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1607, 0, 0, 0, 1466, 65, 0, 2166, 2181, 2182, 2178, 2183, 2201, 2184, 2188, 0, 2180, 2172, 0, 2187, 2176, 2185, 0, 2170, 0, 2186, 2191, 2202, 2174, 2179, 2158, 0, 2164, 2168, 1757, 1356, 2135, 2136, 0, 71, 1478, 1479, 1477, 855, 0, 1826, 1776, 1837, 0, 1728, 0, 0, 0, 1257, 0, 1781, 0, 1848, 1850, 1786, 0, 0, 1000, 1000, 1000, 0, 0, 0, 1864, 1865, 1737, 0, 0, 0, 1725, 1738, 1897, 1898, 0, 1727, 1903, 0, 0, 0, 0, 1918, 1735, 1253, 0, 1949, 1951, 0, 0, 1955, 1956, 1957, 1958, 1712, 1067, 0, 1000, 1724, 1734, 1972, 1718, 1980, 1984, 1985, 0, 1991, 0, 0, 0, 2013, 2016, 0, 0, 2033, 0, 0, 1000, 1711, 2048, 2049, 2050, 2051, 0, 1726, 1819, 1736, 0, 2062, 1000, 1000, 1000, 0, 0, 0, 2069, 2072, 0, 0, 0, 0, 1066, 0, 1221, 0, 1664, 1002, 1007, 1012, 1019, 1025, 1039, 1041, 1043, 1046, 1051, 1057, 0, 1107, 1059, 1078, 1079, 1081, 1174, 1080, 1086, 1085, 1722, 1084, 1083, 1723, 1077, 1745, 1764, 1744, 1680, 0, 0, 0, 920, 417, 406, 0, 1606, 1605, 0, 1660, 2256, 0, 0, 0, 896, 1481, 1528, 0, 1480, 1657, 0, 1656, 1653, 1655, 0, 2166, 2153, 0, 2250, 2247, 2257, 983, 976, 975, 978, 979, 982, 980, 981, 977, 974, 991, 971, 973, 2079, 1573, 0, 671, 0, 1619, 0, 1574, 0, 0, 1619, 0, 1391, 1609, 1612, 0, 2088, 1587, 734, 733, 0, 732, 2089, 1605, 0, 0, 0, 1560, 1575, 0, 2090, 0, 1608, 0, 1391, 1619, 0, 1552, 0, 0, 0, 0, 870, 880, 872, 867, 0, 873, 869, 1548, 1465, 2343, 2133, 855, 1717, 1716, 1762, 2327, 1715, 2335, 2337, 2323, 2325, 2332, 956, 0, 2261, 57, 0, 1631, 2290, 2291, 2289, 687, 1000, 1772, 2284, 157, 779, 0, 367, 157, 0, 0, 0, 0, 0, 368, 369, 301, 764, 776, 0, 0, 775, 2292, 0, 0, 1463, 0, 0, 939, 949, 177, 174, 148, 0, 893, 910, 2246, 0, 0, 2248, 2252, 1065, 1064, 0, 97, 102, 0, 0, 0, 2220, 101, 2216, 2288, 547, 496, 991, 991, 2282, 991, 2277, 2279, 2280, 2281, 2292, 2286, 0, 739, 0, 1530, 1533, 1537, 1541, 1544, 1249, 1248, 1467, 1453, 1458, 1454, 0, 1607, 1455, 1462, 380, 0, 1459, 2214, 1456, 857, 0, 0, 64, 1648, 1642, 1644, 1647, 1643, 0, 1649, 1646, 1645, 2124, 1635, 1637, 1638, 2167, 2165, 2199, 2198, 0, 2200, 2196, 2189, 2221, 2193, 2221, 2195, 2194, 2221, 2190, 2197, 2221, 2162, 0, 1357, 1358, 0, 2134, 0, 1756, 0, 0, 0, 0, 1361, 1099, 1361, 1361, 1361, 1258, 0, 0, 0, 1247, 1247, 0, 0, 0, 1361, 0, 1135, 1110, 0, 1136, 0, 0, 0, 0, 0, 1731, 0, 0, 0, 0, 1247, 0, 1226, 0, 0, 0, 1076, 0, 1247, 1253, 0, 1251, 0, 1361, 0, 0, 1361, 0, 0, 1247, 1247, 1247, 1011, 0, 1142, 0, 0, 0, 1247, 0, 0, 0, 0, 0, 0, 0, 1361, 1361, 0, 0, 1361, 0, 1151, 0, 1733, 0, 0, 0, 1732, 0, 0, 1730, 1729, 1713, 0, 1155, 1157, 1156, 0, 1361, 1361, 0, 0, 1089, 1088, 1090, 2275, 0, 0, 0, 0, 0, 0, 0, 1004, 1009, 1068, 0, 1069, 1070, 0, 1071, 1072, 1073, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1091, 1331, 1332, 1333, 1334, 1343, 1346, 1335, 1336, 1337, 1345, 1338, 1339, 1340, 1347, 1348, 1349, 1341, 1350, 1344, 1342, 1351, 0, 1330, 0, 0, 1714, 1183, 0, 1681, 0, 1682, 1670, 1678, 942, 0, 1356, 2122, 2125, 0, 418, 415, 413, 426, 0, 0, 60, 61, 0, 928, 0, 929, 0, 926, 932, 0, 0, 0, 1484, 1474, 1483, 1658, 0, 0, 2165, 2162, 2251, 0, 2253, 2268, 959, 2258, 989, 961, 988, 0, 972, 2074, 2077, 2085, 1615, 670, 0, 0, 1586, 1570, 0, 496, 0, 0, 0, 0, 0, 0, 1553, 0, 0, 533, 0, 1579, 1392, 1613, 1614, 1619, 0, 0, 1619, 0, 1581, 1592, 1582, 0, 1609, 0, 1619, 1566, 1593, 1609, 1571, 1578, 1585, 0, 1565, 1572, 0, 1559, 1583, 1609, 1609, 1619, 1619, 883, 882, 881, 877, 878, 883, 0, 1290, 0, 0, 2324, 2338, 2322, 2333, 2334, 2321, 957, 2262, 955, 2263, 0, 1625, 1623, 1632, 1633, 688, 687, 487, 490, 489, 0, 1774, 0, 771, 0, 355, 769, 0, 0, 333, 312, 333, 370, 687, 783, 0, 0, 773, 910, 0, 0, 941, 936, 940, 938, 729, 728, 0, 948, 0, 178, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, 74, 88, 895, 894, 892, 918, 917, 915, 0, 916, 914, 909, 911, 912, 2245, 2249, 497, 687, 343, 0, 304, 0, 0, 0, 0, 0, 0, 2278, 93, 740, 0, 1535, 1531, 1541, 0, 0, 0, 1356, 0, 1451, 380, 383, 382, 1460, 381, 1505, 0, 859, 858, 1457, 857, 0, 66, 68, 1641, 0, 0, 1650, 2192, 0, 2173, 2177, 2171, 2175, 0, 0, 2163, 0, 2169, 1360, 1893, 1965, 0, 1363, 2138, 1471, 2342, 0, 0, 1362, 1361, 0, 1232, 0, 0, 0, 0, 1259, 0, 0, 0, 0, 0, 0, 0, 1206, 0, 1232, 1001, 0, 1162, 0, 0, 0, 0, 0, 1744, 2275, 0, 0, 0, 1354, 1352, 1355, 1353, 0, 1227, 1219, 0, 0, 0, 0, 0, 0, 0, 1254, 1255, 1361, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1361, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1131, 0, 1747, 1746, 0, 0, 0, 0, 960, 0, 1093, 1247, 1092, 0, 2091, 1222, 1224, 0, 1006, 1003, 1008, 1022, 1015, 1020, 1013, 1017, 0, 1074, 1831, 1023, 0, 0, 0, 1370, 1037, 0, 1040, 0, 0, 0, 0, 1042, 1044, 1045, 1048, 1107, 1047, 1107, 1055, 1056, 1052, 1053, 1054, 1058, 0, 1082, 1087, 1194, 1748, 1677, 1679, 0, 0, 1671, 0, 0, 910, 0, 0, 0, 407, 411, 0, 62, 0, 0, 1661, 0, 0, 0, 0, 0, 898, 1482, 0, 1654, 0, 0, 0, 0, 0, 2254, 2270, 2269, 2259, 991, 1382, 992, 994, 993, 1744, 2079, 2082, 2083, 2086, 2084, 0, 2081, 2080, 2095, 0, 1617, 1620, 1621, 0, 0, 1601, 1595, 1594, 1590, 1596, 1591, 1604, 1603, 1602, 1562, 1561, 1401, 1402, 1400, 1395, 1396, 1399, 1556, 1610, 1600, 1598, 1588, 0, 1619, 1599, 1597, 1619, 1609, 0, 1619, 1619, 1580, 1584, 0, 871, 880, 868, 875, 1302, 1301, 0, 1266, 0, 1265, 1264, 1263, 0, 1301, 2328, 2336, 2340, 0, 1391, 2267, 2265, 488, 1505, 1505, 1773, 0, 0, 0, 0, 0, 0, 0, 158, 167, 0, 0, 310, 311, 309, 1607, 0, 0, 0, 0, 0, 0, 0, 0, 106, 363, 306, 1607, 302, 0, 307, 853, 853, 0, 1505, 1505, 853, 1505, 0, 0, 1505, 1505, 0, 0, 1505, 0, 0, 853, 0, 1505, 851, 0, 0, 1505, 1505, 1505, 1505, 853, 0, 0, 1505, 403, 1505, 0, 0, 863, 0, 0, 1505, 0, 0, 1505, 1505, 1505, 799, 850, 500, 519, 520, 765, 798, 800, 812, 401, 0, 829, 852, 0, 785, 787, 2293, 2294, 2295, 906, 890, 1464, 1322, 176, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 919, 913, 98, 687, 308, 1607, 0, 0, 320, 0, 2217, 115, 2316, 0, 0, 498, 0, 0, 741, 0, 0, 1363, 0, 1538, 1290, 1542, 1541, 1539, 1250, 1452, 1461, 1503, 1504, 1506, 0, 2215, 1450, 69, 0, 0, 1636, 1651, 1639, 2225, 0, 2224, 2210, 2213, 1755, 0, 0, 0, 2148, 2142, 2149, 2151, 2145, 2150, 2152, 2143, 2144, 2139, 2146, 1364, 1393, 0, 0, 1158, 0, 1199, 0, 1201, 1202, 1203, 0, 0, 0, 0, 0, 1159, 0, 1108, 1160, 1161, 0, 0, 0, 1247, 1205, 0, 1137, 0, 0, 1111, 1112, 1104, 0, 1096, 0, 1176, 0, 1247, 1113, 0, 0, 0, 1177, 1252, 0, 0, 0, 1211, 1164, 1116, 0, 1209, 0, 1117, 1178, 1179, 1180, 1143, 1166, 1167, 0, 1182, 0, 1168, 0, 0, 0, 1247, 1119, 1215, 1213, 0, 0, 0, 0, 1217, 1152, 1121, 0, 0, 0, 1120, 0, 0, 0, 0, 0, 0, 0, 1123, 0, 1105, 1214, 1216, 1172, 0, 1132, 2274, 2276, 0, 0, 1097, 0, 0, 0, 0, 0, 1749, 1061, 1060, 0, 1063, 1062, 0, 1016, 1021, 1014, 1018, 0, 0, 0, 0, 0, 1035, 1034, 0, 0, 1370, 1038, 1050, 1049, 1106, 0, 1193, 991, 1247, 0, 0, 943, 944, 947, 0, 2128, 2129, 2127, 2126, 921, 991, 416, 414, 1426, 1427, 1412, 1413, 1411, 1414, 427, 1415, 1425, 428, 0, 419, 1663, 1662, 935, 0, 930, 933, 934, 903, 902, 904, 897, 899, 900, 480, 1488, 0, 0, 0, 1494, 1475, 1485, 888, 0, 0, 0, 0, 0, 987, 1290, 1442, 984, 965, 1393, 1383, 964, 995, 0, 2078, 0, 2045, 2106, 0, 0, 0, 0, 0, 2096, 1616, 0, 1567, 0, 1589, 0, 0, 0, 1558, 1557, 1363, 1609, 1554, 1555, 885, 884, 879, 1301, 1290, 0, 0, 1287, 1303, 0, 1303, 1290, 1290, 0, 1290, 1356, 1298, 0, 0, 2339, 1384, 2266, 0, 0, 161, 164, 162, 0, 163, 0, 0, 365, 364, 1505, 356, 357, 360, 361, 362, 110, 109, 111, 112, 1409, 1410, 1406, 1407, 1405, 1408, 114, 113, 108, 782, 0, 1505, 1505, 334, 335, 338, 339, 340, 341, 342, 313, 314, 317, 318, 319, 854, 758, 730, 922, 730, 833, 0, 563, 758, 723, 831, 0, 922, 0, 0, 0, 0, 0, 922, 0, 0, 0, 1505, 0, 844, 794, 0, 0, 0, 0, 0, 845, 0, 795, 1505, 0, 0, 0, 0, 0, 922, 0, 0, 0, 0, 922, 813, 866, 865, 864, 0, 922, 922, 0, 525, 526, 524, 0, 0, 0, 501, 687, 796, 402, 797, 566, 0, 860, 563, 569, 1751, 0, 0, 0, 120, 2298, 1325, 0, 1326, 1323, 1324, 179, 80, 76, 89, 1419, 1420, 1418, 1416, 1417, 90, 78, 79, 83, 82, 84, 85, 86, 81, 87, 77, 91, 92, 75, 1505, 1505, 1505, 1505, 344, 345, 348, 349, 350, 351, 354, 352, 353, 0, 0, 303, 1607, 0, 2218, 0, 0, 297, 296, 0, 2314, 0, 566, 94, 401, 499, 502, 751, 753, 752, 747, 746, 95, 1290, 1382, 1541, 1363, 0, 1356, 379, 532, 67, 1640, 2222, 0, 0, 0, 0, 0, 0, 0, 0, 2137, 1394, 1515, 0, 0, 1200, 1233, 0, 1260, 0, 1101, 649, 649, 1243, 1241, 638, 649, 1237, 1242, 1239, 0, 673, 0, 672, 0, 0, 0, 1207, 1204, 0, 0, 1748, 0, 0, 1230, 0, 0, 0, 1188, 1256, 1212, 1210, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2271, 2272, 1094, 2092, 2093, 2094, 760, 1223, 1005, 1010, 0, 1032, 1028, 1247, 1026, 1369, 0, 0, 0, 1036, 1184, 0, 1195, 1196, 0, 1246, 1750, 1763, 1672, 0, 951, 2130, 2131, 0, 0, 408, 412, 0, 420, 421, 423, 0, 901, 970, 0, 1507, 1492, 1499, 1493, 0, 0, 0, 1491, 1740, 1739, 1746, 2257, 0, 0, 0, 0, 2260, 1363, 1363, 1436, 0, 0, 962, 967, 963, 966, 0, 990, 999, 998, 1741, 1748, 0, 0, 0, 0, 675, 674, 683, 0, 0, 0, 2091, 0, 679, 681, 680, 2101, 678, 1618, 1391, 1577, 1576, 1398, 1397, 0, 1569, 1619, 0, 2264, 1296, 0, 1289, 1288, 1304, 0, 1290, 1303, 1303, 0, 1269, 1268, 1519, 1522, 0, 1267, 1320, 1294, 970, 2329, 2341, 0, 686, 685, 531, 682, 530, 166, 165, 171, 172, 0, 1607, 358, 107, 0, 0, 1607, 336, 0, 315, 568, 759, 731, 724, 816, 725, 0, 0, 0, 730, 562, 758, 561, 564, 739, 0, 0, 512, 509, 835, 515, 814, 807, 815, 826, 828, 0, 511, 527, 0, 0, 516, 758, 801, 842, 843, 857, 505, 0, 542, 543, 541, 521, 528, 507, 508, 837, 0, 1378, 1380, 1388, 514, 513, 404, 510, 0, 848, 821, 0, 539, 537, 534, 536, 535, 540, 538, 517, 529, 506, 0, 853, 853, 830, 0, 552, 554, 555, 1754, 0, 862, 832, 0, 556, 557, 0, 0, 0, 130, 0, 0, 784, 0, 123, 121, 132, 0, 0, 950, 0, 0, 0, 0, 0, 1607, 346, 0, 0, 1505, 321, 322, 325, 326, 327, 328, 329, 332, 330, 331, 2219, 0, 2317, 300, 298, 299, 0, 0, 389, 0, 1802, 386, 393, 0, 387, 687, 503, 0, 1363, 1403, 1534, 1540, 2223, 2212, 2211, 2226, 2226, 2226, 0, 1365, 0, 1472, 1076, 1133, 1261, 0, 0, 1234, 689, 0, 1244, 640, 1236, 1238, 1240, 1100, 1109, 1175, 1103, 1102, 0, 0, 0, 1140, 1141, 1228, 1231, 0, 0, 1115, 0, 0, 1190, 1165, 1181, 1144, 1169, 0, 1118, 1095, 1076, 1145, 0, 1150, 1148, 0, 1122, 0, 0, 1129, 0, 1127, 0, 1128, 0, 1130, 1171, 1173, 2257, 0, 1225, 1024, 0, 1033, 1030, 1247, 1027, 992, 991, 1185, 1683, 945, 0, 946, 992, 436, 417, 439, 410, 0, 931, 991, 1489, 1501, 0, 1509, 0, 0, 1486, 1496, 0, 0, 0, 1495, 0, 2155, 2156, 2154, 1393, 1371, 0, 0, 1447, 0, 1443, 985, 0, 997, 996, 0, 2108, 0, 2107, 2119, 2120, 2117, 2118, 2116, 2097, 0, 2103, 2102, 0, 0, 0, 2113, 2104, 0, 0, 1568, 0, 1563, 886, 0, 1290, 1303, 1290, 1276, 0, 0, 1290, 1272, 1270, 1274, 0, 1363, 0, 1291, 1317, 991, 1743, 1385, 1388, 385, 371, 384, 359, 372, 373, 337, 316, 818, 565, 758, 726, 727, 739, 0, 0, 0, 805, 0, 910, 0, 811, 683, 522, 841, 840, 523, 0, 803, 0, 1389, 1390, 1381, 802, 823, 809, 0, 834, 566, 861, 703, 634, 583, 574, 649, 577, 576, 620, 591, 588, 638, 636, 606, 638, 638, 613, 612, 630, 616, 596, 689, 689, 595, 633, 689, 617, 615, 619, 0, 621, 638, 626, 614, 618, 635, 611, 608, 632, 649, 649, 589, 592, 631, 689, 0, 624, 649, 653, 594, 689, 695, 0, 0, 649, 651, 1753, 131, 119, 0, 0, 786, 788, 0, 0, 789, 2300, 0, 2296, 1327, 378, 377, 376, 375, 347, 0, 305, 0, 1607, 323, 0, 192, 991, 0, 151, 2315, 0, 0, 498, 1683, 504, 0, 1536, 0, 1532, 0, 2231, 2231, 2231, 1514, 1513, 0, 1512, 1516, 0, 1262, 0, 695, 697, 691, 695, 0, 1235, 0, 1208, 1138, 1139, 0, 0, 0, 0, 0, 0, 1098, 0, 1186, 0, 0, 0, 0, 0, 0, 1126, 1124, 1125, 2276, 761, 1029, 0, 995, 1197, 1685, 1684, 0, 952, 0, 0, 0, 409, 422, 481, 0, 0, 0, 1510, 1498, 2261, 1487, 1490, 1748, 2157, 969, 0, 1366, 1446, 1444, 0, 1437, 1439, 1441, 0, 1742, 0, 0, 2112, 2098, 684, 0, 0, 0, 0, 2099, 0, 1356, 1297, 0, 0, 1263, 1290, 1290, 0, 1263, 0, 0, 0, 1521, 1382, 1523, 1321, 0, 1299, 0, 1387, 0, 0, 817, 0, 0, 0, 847, 0, 910, 860, 808, 827, 849, 653, 922, 1379, 822, 824, 898, 518, 553, 709, 0, 0, 593, 642, 637, 0, 642, 642, 602, 620, 597, 0, 689, 610, 601, 622, 625, 627, 629, 642, 0, 689, 590, 599, 0, 642, 661, 0, 0, 0, 657, 0, 702, 0, 664, 570, 654, 656, 0, 0, 623, 0, 579, 696, 0, 581, 0, 0, 642, 0, 652, 642, 0, 117, 122, 133, 134, 777, 2299, 0, 2302, 0, 374, 324, 128, 195, 193, 194, 0, 188, 190, 185, 2310, 550, 551, 549, 548, 0, 181, 390, 0, 401, 388, 483, 0, 1388, 756, 1404, 0, 0, 2230, 2228, 0, 2229, 2227, 2203, 0, 2160, 2161, 2159, 2147, 0, 0, 1134, 650, 690, 698, 699, 0, 694, 692, 695, 639, 0, 1229, 1220, 1163, 0, 1187, 0, 0, 1170, 1146, 1149, 1147, 1153, 1154, 2273, 1031, 1198, 1673, 424, 0, 0, 443, 0, 441, 1393, 1500, 1502, 1508, 1497, 0, 1367, 1382, 1686, 1440, 0, 986, 2110, 2109, 2111, 2105, 0, 0, 0, 0, 1295, 1290, 1277, 0, 1281, 1286, 1282, 0, 1273, 1271, 0, 1403, 1309, 1310, 0, 0, 1315, 1319, 1393, 1388, 820, 0, 0, 0, 0, 0, 0, 0, 0, 0, 846, 1719, 806, 836, 838, 910, 0, 810, 0, 0, 0, 704, 705, 710, 712, 0, 0, 646, 647, 648, 603, 643, 645, 0, 605, 573, 598, 628, 604, 0, 600, 0, 587, 667, 666, 1000, 659, 669, 0, 0, 665, 655, 663, 658, 0, 0, 0, 0, 571, 0, 572, 1752, 124, 790, 241, 2301, 2297, 0, 105, 120, 129, 2318, 192, 0, 0, 0, 0, 182, 184, 185, 394, 391, 484, 0, 742, 0, 755, 0, 2209, 2208, 2207, 2204, 0, 0, 0, 0, 0, 0, 2232, 2234, 1511, 0, 700, 693, 0, 0, 1189, 1191, 0, 991, 429, 0, 0, 440, 0, 482, 984, 544, 1375, 1388, 0, 1393, 0, 1694, 1438, 2115, 2114, 2100, 0, 0, 0, 0, 0, 0, 0, 1328, 1520, 1305, 1305, 1316, 1300, 1386, 819, 0, 0, 742, 1721, 1720, 860, 804, 0, 715, 716, 717, 0, 0, 0, 708, 711, 582, 575, 644, 0, 762, 0, 586, 668, 1000, 662, 689, 695, 689, 695, 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, 1767, 0, 1768, 960, 0, 2306, 132, 159, 189, 0, 0, 150, 152, 0, 0, 2261, 1683, 0, 397, 1505, 0, 96, 743, 748, 744, 1388, 0, 2205, 2235, 2238, 2236, 2237, 2239, 2233, 0, 641, 1114, 0, 0, 437, 0, 433, 435, 444, 448, 442, 545, 0, 0, 1372, 1374, 1368, 1428, 0, 0, 0, 0, 1687, 1689, 0, 1445, 0, 1292, 1278, 0, 1283, 0, 1275, 0, 0, 1313, 1311, 0, 742, 558, 839, 0, 719, 0, 718, 0, 713, 714, 709, 0, 689, 0, 689, 660, 578, 580, 584, 585, 125, 0, 118, 0, 0, 252, 255, 0, 0, 258, 248, 247, 249, 0, 242, 288, 241, 241, 291, 246, 284, 2304, 0, 0, 2303, 0, 2319, 191, 991, 0, 183, 186, 395, 392, 0, 2257, 0, 0, 745, 754, 757, 1517, 1525, 0, 1674, 992, 0, 430, 431, 0, 449, 1376, 1377, 1388, 0, 968, 0, 0, 0, 0, 1688, 0, 0, 1695, 1697, 0, 0, 0, 0, 1329, 0, 1306, 0, 0, 0, 560, 559, 0, 721, 722, 720, 706, 707, 607, 763, 609, 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, 2261, 0, 0, 0, 134, 169, 168, 160, 0, 241, 2311, 153, 399, 398, 749, 750, 0, 0, 676, 0, 438, 437, 434, 0, 445, 1373, 1429, 1692, 1693, 0, 1690, 0, 0, 1696, 0, 0, 1280, 1285, 1308, 1307, 1322, 0, 825, 0, 0, 241, 275, 0, 250, 0, 0, 196, 0, 0, 198, 294, 0, 286, 2305, 0, 2307, 0, 116, 170, 2320, 0, 0, 2261, 1524, 1526, 0, 1675, 425, 432, 0, 0, 468, 0, 1691, 1699, 1698, 0, 1293, 0, 0, 276, 282, 272, 280, 241, 0, 0, 240, 259, 0, 241, 0, 290, 199, 0, 292, 285, 287, 2308, 2309, 0, 154, 400, 677, 1686, 0, 0, 1505, 0, 0, 1505, 1505, 1505, 1505, 446, 469, 471, 0, 991, 0, 1314, 1312, 0, 273, 0, 0, 271, 251, 256, 241, 211, 210, 0, 202, 224, 289, 0, 201, 0, 241, 2312, 159, 1694, 0, 457, 459, 460, 454, 0, 450, 452, 453, 0, 1505, 1505, 0, 0, 0, 0, 461, 470, 1505, 0, 0, 1432, 1434, 0, 277, 0, 241, 0, 241, 0, 0, 0, 0, 0, 197, 0, 241, 241, 155, 1700, 451, 0, 1945, 0, 479, 0, 0, 1423, 1421, 1422, 475, 1424, 476, 474, 472, 0, 447, 0, 992, 1430, 991, 1564, 0, 269, 241, 257, 262, 205, 225, 226, 0, 208, 295, 0, 2313, 241, 0, 1702, 458, 455, 456, 477, 478, 465, 0, 463, 473, 1435, 1433, 241, 241, 258, 261, 0, 0, 203, 217, 204, 215, 207, 0, 293, 156, 0, 0, 1709, 0, 462, 0, 241, 241, 263, 223, 221, 241, 212, 219, 214, 0, 220, 227, 218, 0, 209, 1701, 1704, 0, 0, 1706, 1707, 0, 1676, 468, 467, 464, 0, 206, 222, 216, 1708, 1703, 0, 1710, 466, 213, 1705 }; /* YYDEFGOTO[NTERM-NUM]. */ static const short int yydefgoto[] = { -1, 56, 57, 58, 59, 60, 61, 1218, 62, 613, 996, 1434, 1435, 63, 483, 64, 938, 1381, 1382, 1383, 65, 1853, 2700, 1399, 455, 456, 1745, 1746, 962, 2316, 2655, 3369, 2659, 3481, 3601, 3376, 1810, 2970, 3370, 3371, 3490, 478, 436, 2990, 3208, 3628, 3778, 3858, 3935, 1336, 3625, 1730, 3719, 1731, 66, 570, 936, 1362, 1363, 3383, 3384, 3380, 3385, 3198, 3199, 3200, 3201, 3807, 3696, 3763, 3808, 3891, 3953, 3959, 3960, 3849, 3974, 3975, 3976, 3982, 3977, 3850, 3955, 3697, 3698, 3608, 3699, 3493, 3700, 3612, 3701, 3496, 3702, 3703, 3704, 3705, 3803, 3706, 3607, 3844, 3692, 3693, 3846, 3926, 3952, 3707, 3503, 3602, 3755, 3504, 3603, 3798, 3688, 3799, 3839, 3922, 3689, 3756, 3842, 3759, 3708, 3711, 3813, 3618, 3695, 3710, 3856, 3811, 2320, 2689, 555, 556, 581, 1846, 557, 950, 910, 1338, 1750, 1751, 2188, 2189, 2312, 2313, 2673, 2674, 1748, 1749, 2181, 2182, 1842, 1843, 2301, 2302, 1736, 1737, 2159, 2160, 1342, 1734, 1735, 558, 911, 921, 2161, 2184, 2185, 2678, 2304, 2305, 2306, 2307, 2162, 1425, 2163, 2867, 2324, 2994, 2694, 3522, 2992, 3521, 3212, 3634, 3779, 2255, 2256, 2236, 67, 494, 792, 2061, 2790, 1215, 2062, 1616, 1615, 1216, 2456, 2457, 2458, 2050, 3417, 1618, 2454, 3545, 3733, 3546, 3547, 2787, 3646, 3053, 3265, 3266, 3419, 3649, 3788, 3876, 3549, 3736, 3866, 3867, 3868, 3860, 3861, 3862, 3916, 3944, 3945, 3966, 3992, 3831, 3832, 3833, 2082, 2462, 3267, 3390, 1840, 1329, 1330, 457, 458, 459, 578, 2325, 1797, 2326, 2327, 1799, 1800, 2340, 1268, 2631, 2607, 3422, 963, 3207, 2638, 2639, 2640, 2641, 2577, 2578, 2199, 2200, 2261, 2649, 2953, 3135, 3150, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2723, 2724, 3337, 3338, 3339, 2720, 3181, 3165, 3166, 3167, 3353, 3016, 2501, 2502, 3783, 2510, 2511, 2547, 2833, 2548, 1333, 3017, 3175, 3239, 3168, 2648, 3129, 3328, 3463, 3329, 3330, 3331, 3587, 2201, 2576, 2202, 2568, 868, 460, 1411, 1412, 3527, 3528, 3529, 3530, 2331, 3214, 3215, 2565, 2773, 3469, 68, 1346, 905, 913, 909, 927, 562, 1347, 1811, 2267, 3187, 545, 1801, 3122, 3116, 2885, 3126, 1802, 2587, 1803, 2874, 3110, 1804, 2900, 3124, 3323, 2588, 2589, 1805, 1806, 1807, 2884, 2893, 3455, 2203, 123, 1431, 2645, 2243, 69, 1308, 1303, 70, 879, 874, 875, 1306, 1307, 1698, 2126, 71, 812, 72, 565, 73, 573, 1386, 74, 1228, 2074, 2075, 2076, 75, 928, 76, 77, 574, 1393, 1394, 1395, 78, 1211, 128, 79, 801, 799, 1223, 1225, 1226, 1221, 80, 567, 568, 1355, 81, 1610, 2040, 2041, 933, 934, 1361, 2786, 82, 83, 535, 508, 818, 509, 510, 1644, 2094, 3423, 829, 830, 831, 2486, 1245, 1246, 1247, 2099, 1645, 2491, 1055, 3005, 1143, 1567, 757, 1144, 1568, 758, 759, 760, 761, 762, 763, 764, 765, 766, 767, 2012, 2015, 3169, 768, 1153, 1578, 769, 770, 771, 772, 773, 774, 775, 1605, 2744, 2745, 3030, 2034, 2035, 2036, 2441, 2442, 776, 1925, 2733, 1939, 777, 1140, 1563, 1499, 3023, 2738, 1463, 1908, 2373, 2443, 598, 599, 979, 1079, 1080, 1081, 1507, 1045, 1915, 1469, 1705, 1706, 1707, 1708, 3098, 3097, 3099, 3437, 3290, 3439, 3294, 2137, 1709, 1710, 3665, 2523, 2847, 2541, 2542, 3305, 2128, 1711, 2529, 3576, 3302, 3303, 3673, 3672, 3304, 3103, 3104, 2860, 2861, 2270, 2271, 2272, 3441, 1194, 1195, 1497, 1031, 1032, 1464, 1902, 2352, 3274, 3427, 2025, 3068, 3425, 3555, 1808, 2613, 2614, 2096, 2097, 2545, 2864, 2898, 1271, 3424, 2354, 1678, 1679, 2999, 3958, 2868, 2283, 3910, 2059, 2060, 3654, 3789, 3880, 3881, 3882, 2815, 2816, 3072, 3073, 2098, 2483, 2817, 3275, 84, 462, 85, 1867, 929, 930, 601, 475, 86, 484, 1903, 87, 502, 1632, 651, 805, 1231, 1232, 2083, 2463, 2470, 2084, 2475, 3061, 2465, 2795, 2796, 1871, 1872, 2466, 2798, 3058, 3006, 3007, 2714, 3232, 88, 523, 2858, 2536, 2537, 3640, 3641, 806, 89, 461, 973, 1859, 1417, 1858, 974, 975, 1419, 596, 597, 90, 520, 91, 513, 869, 2514, 1673, 796, 989, 1275, 872, 1276, 1659, 2113, 1256, 92, 901, 900, 93, 541, 1325, 94, 614, 1007, 1008, 1439, 1880, 95, 503, 810, 811, 96, 496, 797, 1624, 97, 488, 98, 99, 786, 1204, 2783, 3415, 3730, 3821, 1609, 1205, 3213, 3430, 3563, 3564, 3566, 3662, 3663, 3937, 3965, 3987, 3988, 3991, 778, 889, 779, 3317, 780, 781, 2471, 2472, 2865, 782, 3642, 783, 2262, 882, 481, 437, 552, 890, 2447, 785, 3507, 907, 954, 439, 440, 100, 832, 512, 1249, 1250, 1251, 1654, 1655, 873, 2007, 1656, 1657, 2110, 2105, 3080, 2839, 2831, 101, 789, 1009, 1209, 1210, 2046, 102, 522, 103, 1033, 1455, 1456, 1899, 2351, 1900, 104, 814, 105, 638, 1449, 639, 1011, 640, 641, 1023, 1018, 1026, 1020, 3399, 3224, 3225, 1887, 992, 955, 956, 1442, 1882, 1883, 3001, 3227, 3405, 3406, 106, 132, 445, 576, 945, 1239, 107, 108, 109, 110, 1242, 1320, 2090, 1321, 1322, 1323, 1718, 1642, 1138, 2771, 2000, 1557, 2419, 585, 964, 124, 587, 588, 125, 925, 926, 2268, 3190, 2661, 2972, 3373, 3374, 3511, 3623, 966, 3381, 3777, 3897, 967, 2690, 2317, 2986, 3513, 3721, 111, 891, 532, 1318, 1313, 1315, 1714, 2144, 112, 113 }; /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ #define YYPACT_NINF -3319 static const int yypact[] = { 4091, 748, 1141, 1113, -3319, -108, 179, 36417, 577, 1113, 1113, 353, 1030, -3319, -3319, -3319, -3319, -3319, 1014, -3319, 36417, 1141, -3319, 19318, -3319, -3319, 559, 470, 346, 1113, 1141, -3319, 36417, -3319, 515, 292, 1141, -3319, -3319, 1113, -3319, 353, 36417, -3319, 639, -3319, -121, -103, 744, 480, 866, -3319, -3319, 36417, 779, -102, 1243, 1110, -3319, -3319, 912, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 19872, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1222, 36417, 1229, 36417, -3319, 1231, 36417, 30907, 36417, 959, 1313, 1356, -3319, -3319, 1113, -3319, -3319, -3319, 353, -3319, -3319, 19318, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 927, -3319, -3319, 1046, -3319, -3319, -3319, 1532, 1363, -3319, 1394, 30907, -3319, 36417, -3319, -3319, -3319, 246, -3319, 1100, -3319, 1107, 1396, 1005, -3319, 1423, 1423, 1423, 36417, 1431, 1423, 1423, 36417, -3319, 1423, -3319, 1423, 1113, -3319, -3319, 3103, 36417, 1307, 168, 487, 30907, 184, 36417, -3319, -3319, 10882, -3319, 1421, 19318, -3319, 1113, 1605, 1484, 829, 36417, -3319, -3319, -3319, 1113, 1138, 42, -3319, 4676, 129, -3319, -3319, -3319, 675, -3319, -3319, 3088, -3319, -3319, -3319, 1116, -3319, -3319, 19318, 36417, 1113, 1436, -3319, -3319, 163, 163, 163, -3319, 163, -3319, 163, -3319, -102, 1143, -3319, -3319, 36417, 821, 867, -3319, -3319, 1127, 613, -3319, -3319, 28152, -3319, 36417, -3319, -3319, -3319, -3319, 1375, -3319, -3319, -3319, 961, -3319, 19318, 36417, 1257, -3319, -3319, 19318, -3319, 225, -3319, -3319, 1153, 36417, -3319, 19318, 19318, 774, 43, 1361, 36417, 36417, 1558, -3319, 1726, 28152, 1337, -3319, 180, 1356, 1727, -3319, 1363, -3319, 36417, -3319, -3319, -3319, 32560, 1005, -3319, 10882, 1590, 36417, 36417, 36417, 1417, 36417, 36417, 30907, 1296, 36417, 28152, 19318, 1423, 1221, 1367, 1411, 1370, 1083, -3319, -3319, -3319, -3319, -3319, 1425, -3319, -3319, 1319, -3319, -3319, -3319, 172, -3319, 147, -3319, -3319, -3319, -3319, -3319, -3319, 1456, 1226, -3319, -3319, 118, -3319, -3319, 36417, -3319, -3319, -3319, -3319, 1613, 1397, 1254, 1261, 1279, 13737, -3319, 1293, 1305, 1325, 10882, 1342, 1358, 1365, 1371, 1382, 1384, 1391, 1398, 1412, 1412, 1422, 1424, 1427, 1435, 906, 1438, -3319, 1440, 1441, 1444, -3319, -3319, 1445, 1446, 1448, -3319, 1449, 1450, 1451, 10882, 1452, 1454, -3319, 1455, 1457, 1458, 1459, 1460, 1461, 1462, 1467, 1468, 1469, -3319, -3319, 10882, 1471, -3319, -3319, 1472, -3319, 1474, 1475, 1476, 1478, 1479, 1480, 1481, 1483, 1485, 1486, 1487, 1489, 1490, 1491, 1492, 1493, -3319, 968, 1494, 1495, 1018, 1496, -3319, 1497, -3319, 230, 1498, 1412, 1412, 1412, 1499, 1500, 1502, 1504, 1505, 13737, 13737, 13737, 8027, -3319, 36417, -3319, 36417, -3319, 1236, -3319, -3319, 1637, -3319, 327, 1260, 1284, 1184, 154, 1286, 13737, 3063, 243, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1380, -3319, -3319, -3319, -3319, -3319, 1507, 1310, 229, 1821, 1704, 19318, -3319, 1252, -3319, -163, -3319, -3319, 1638, -3319, -3319, 36417, 28152, 19318, -3319, -3319, -3319, 17097, -3319, -3319, 1868, -3319, 1373, -3319, 19318, 1411, -3319, 1598, 1586, 43, 1503, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1515, 675, -3319, -3319, -3319, 1877, -3319, 1610, -6, 1546, -3319, 1511, 567, -6, 28703, 1841, 789, -3319, 227, -3319, 1913, -3319, -3319, 1619, -3319, -3319, 1620, 1621, 1813, 1607, -3319, -3319, 293, -3319, 656, -3319, 1063, 1841, -6, 789, -3319, 1837, 1949, 394, -114, -3319, 1070, -3319, -3319, 2011, -3319, -3319, -3319, -3319, -3319, -3319, 1613, -3319, -3319, -3319, 1524, -3319, 1763, 1623, -3319, -3319, 674, -3319, 1527, 707, -3319, 903, 29254, -3319, -3319, -3319, 1988, 1412, 1529, -3319, -3319, -3319, 2092, -3319, -3319, 1550, 2026, 2026, 2026, 2117, -3319, -3319, -3319, -3319, -3319, 1700, 1581, -3319, 1257, 19318, 524, -3319, 33111, 19318, -3319, 156, 10882, -3319, -3319, 1846, 177, 162, -3319, 2071, 1734, -3319, -3319, -3319, -3319, 1975, -3319, -3319, 2092, 2032, 2026, 1930, 1559, -3319, -3319, -3319, 1363, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1257, -3319, 19318, -3319, 19318, -3319, 1560, -3319, 1557, -3319, -3319, 1564, -3319, -3319, -3319, -3319, 19318, 1296, -3319, -3319, 568, 1995, -3319, -3319, 1567, 116, 19318, 1565, -3319, -3319, -3319, -3319, -3319, -3319, 2091, -3319, -3319, -3319, 1594, 1574, -3319, -3319, -3319, -3319, -3319, -3319, 1666, -3319, -3319, -3319, 1578, -3319, 1578, -3319, -3319, 1578, -3319, -3319, 1578, 604, 3158, -3319, -3319, 36417, -3319, 36968, -3319, 17097, -108, 10882, 10882, 305, 2082, 2137, 2137, 2137, -3319, 1604, 10882, 10882, -3319, -3319, 10882, 10882, 10882, 306, 1582, -3319, -3319, 8598, -3319, 1583, 10882, 10882, 1667, 10882, 1380, 10882, 20426, 921, 3063, -3319, 310, 2033, 10882, 10882, 10882, -3319, 10882, -3319, -3319, 2145, -3319, 20426, 1269, 10882, 10882, 1323, 10882, 10882, -3319, -3319, -3319, -3319, 8598, -3319, 10882, 10882, 10882, -3319, 13737, 10882, 10882, 10882, 10882, 10882, 10882, 2137, 2137, 10882, 10882, 1360, 8598, -3319, 10882, 1380, 784, 784, 10882, 1380, 6885, 10882, -3319, -3319, -3319, 1587, -3319, -3319, -3319, 20426, 2137, 2137, 10882, 10882, 2082, 2082, 2082, -3319, 8027, 1186, 1588, 10882, 21534, 1585, 10882, -3319, -3319, -3319, 13737, -3319, -3319, 1131, -3319, -3319, -3319, 11453, 13737, 1593, 13737, 13737, 1920, 13737, 852, 13737, 13737, 13737, 13737, 13737, 13737, 13737, 13737, 13737, 13737, 13737, 2082, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1600, -3319, 30907, 13737, -3319, -3319, 36417, -3319, 1891, -3319, -3319, 1919, -3319, 1893, 151, 1596, -3319, 19318, -3319, -3319, -3319, 1815, 1242, 30907, -3319, -3319, 119, -3319, 1671, 1599, 1673, 1601, -3319, 1675, 19318, 19318, -3319, -3319, -3319, -3319, 42, 198, 1603, 1006, -3319, 36417, -3319, 1368, -3319, -3319, -3319, 1606, -3319, 10882, -3319, 1608, -3319, 1047, 1956, -3319, -108, 10882, -3319, -3319, 1612, 1363, 36417, 36417, 36417, 19318, 36417, 19318, -3319, 750, 750, -3319, 1009, -3319, -3319, -3319, -3319, -6, 36417, 36417, -6, 28152, -3319, -3319, -3319, 2009, 789, 36417, -6, -3319, -3319, 789, -3319, -3319, -3319, 19318, -3319, -3319, 789, -3319, -3319, 789, 789, -6, -6, 1656, -3319, -3319, 1611, -3319, 1656, 1738, -137, 163, 1827, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 90, -3319, -3319, -3319, -3319, -3319, 128, -3319, -3319, -3319, 1687, -3319, 30907, 1117, -76, -3319, 1117, 790, -108, -3319, -3319, -3319, -3319, 2294, 1853, 803, 19318, -3319, 162, -108, 19318, -3319, -3319, -3319, -3319, -3319, -3319, 1617, -3319, 1622, 1616, -3319, 2046, 2047, 2048, 2050, 2053, 2054, 2056, 2058, 2060, 2062, 2063, 2064, 2065, 2067, 2068, 2070, 1644, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1692, -3319, -3319, -3319, -3319, 980, -3319, -3319, -3319, 137, -3319, 1669, 1693, 2178, 28152, 36417, 36417, 36417, 2055, -3319, -3319, -153, 1894, 1560, -3319, 278, 36417, 2057, 23744, 121, 10882, -3319, 568, -3319, -3319, -3319, -3319, 402, 28152, -3319, -3319, -3319, 116, 30907, 1660, -3319, -3319, 1859, 1367, 19318, -3319, 36417, -3319, -3319, -3319, -3319, 17651, 17651, -3319, 17651, -3319, -3319, 164, 187, 1547, 1684, -3319, -3319, -3319, 1668, 1670, -3319, 2137, 1672, -3319, 1674, 1676, 1677, 10882, 212, 2222, 1678, -167, 1679, 1680, 1688, 1007, -3319, 1690, 1694, -3319, 1691, -3319, 1695, 1696, 1698, 1699, 1701, 1689, -3319, 1702, 2098, 1703, -3319, -3319, -3319, -3319, 1706, -3319, -3319, 1708, 1709, 1711, 1712, 1714, 1715, 1705, 1717, -3319, 2137, 1716, 1719, 1720, 2137, 1721, 1722, 1724, 1725, 1730, 1732, 1733, 1737, 1740, 1741, 1743, 190, 1744, 1747, 1748, 1751, 1752, 1745, 1754, 1755, 1756, 200, 2137, 1758, 1759, 1196, 1760, 1761, 1764, 9169, 9740, 10311, 64, 1765, -3319, 1767, -3319, 1689, 1768, 1770, 1205, 1775, -3319, 921, -3319, -3319, -3319, 1718, 1174, -3319, 1810, 36417, -3319, 1303, 1779, -3319, -3319, -3319, -3319, -3319, 794, -3319, 1710, -3319, 1735, 101, 8027, 166, 1736, 13737, 1260, 13737, 1742, 13737, 13737, 1284, 1184, 1184, 154, 3063, 154, 3063, 1286, 1286, 1286, 1286, 1286, 2082, 10882, -3319, 2082, 1777, 417, -3319, -3319, 2120, 19318, -3319, 635, 19318, 162, 1766, 1766, 170, -3319, -3319, 1781, -3319, 10882, -108, -3319, 36417, 28152, 28152, 19318, 19318, 260, -3319, 1000, -3319, -108, 2083, 17651, 17651, 17651, -3319, -3319, -3319, -3319, -3319, 1056, -3319, -3319, -3319, 1772, -3319, -3319, -3319, -3319, -3319, 33662, 96, -3319, -3319, -108, 2158, -3319, -3319, 1782, 36417, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 533, -3319, -3319, -3319, -3319, -3319, -3319, 1910, -6, -3319, -3319, -6, 789, 19318, -6, -6, -3319, -3319, 1192, -3319, 1070, -3319, -3319, -3319, -3319, 36417, 1299, 1924, 1786, -3319, -3319, 19318, -3319, 1788, -3319, 2191, 2315, 1841, -3319, -3319, -3319, 402, 402, -3319, -108, 1904, 1905, 1907, 1909, 1911, 1945, -3319, -3319, -108, -108, -3319, -3319, -3319, 778, -108, -108, -108, -108, 741, -108, -108, 1262, -3319, -3319, -3319, 169, -3319, 907, -3319, 1133, 2301, 2017, 402, 402, 2301, 402, 2021, 2022, 402, 402, 1879, 2260, 402, 2155, 1900, 1347, 2157, 402, -3319, 1902, 2266, 402, 402, 402, 402, 2301, 2034, 2340, 402, -3319, 402, 2035, 2039, 161, 2038, 2040, 402, 932, 36417, 402, 402, 402, -3319, -3319, 2943, -3319, -3319, -3319, -3319, -3319, -3319, 482, 18208, -3319, -3319, 372, -3319, 1998, -3319, -3319, -3319, -3319, -3319, -3319, 34213, -3319, 10882, 741, -108, -108, 949, -108, 741, -108, -108, -108, -108, -108, 741, 741, -108, -108, 741, 1846, -3319, -3319, -3319, 144, -3319, 385, 30907, 2146, -3319, -66, -3319, -3319, -3319, 347, 36417, 2864, 424, 424, -3319, 19318, 1866, 1684, 23744, -3319, -137, -3319, 1822, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 30907, -3319, -3319, -3319, 1565, 2150, -3319, 1829, -3319, -3319, 1264, -3319, 1830, -3319, 1832, 1912, 1914, 1915, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1841, 1000, 12024, -3319, 1833, -3319, 10882, -3319, -3319, -3319, 1921, 10882, 10882, 2268, 228, -3319, 29805, -3319, -3319, -3319, 10882, 29805, 228, -3319, -3319, 1839, -3319, 2201, 2201, -3319, -3319, -3319, 36417, -3319, 10882, -3319, 10882, -3319, -3319, 10882, 10882, 10882, -3319, -3319, 13737, 20426, 1847, -3319, -3319, -3319, 1848, -3319, 10882, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 10882, -3319, 10882, -3319, 10882, 10882, 10882, -3319, -3319, -3319, -3319, 12595, 10882, 10882, 1849, -3319, -3319, -3319, 10882, 10882, 10882, -3319, 10882, 2248, 10882, 2250, 10882, 2251, 10882, -3319, 10882, -3319, -3319, -3319, -3319, 10882, -3319, -3319, -3319, 1854, 1855, -3319, 1851, 1852, 1856, 30907, 10882, -3319, -3319, -3319, 10882, -3319, -3319, 10882, -3319, -3319, -3319, -3319, 921, 13737, 1266, 1861, 13737, -3319, 1736, 125, 8027, 166, 1736, -3319, -3319, -3319, 1864, -3319, -3319, 1867, 36417, 1951, 1869, -3319, -3319, 1886, 2195, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1970, 1766, 36417, -3319, -3319, -3319, 1947, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 251, -3319, -3319, 1878, 1878, 15987, -3319, -3319, -3319, -3319, 2109, 2276, 2277, 2278, 903, -3319, 41, -3319, 142, 2235, 1841, -3319, 2281, 31458, 24295, -3319, 1884, 2234, 1889, 402, 26499, 732, 22087, 27050, -3319, -3319, 949, -3319, 36, -3319, 1009, 1009, 1916, -3319, -3319, 1684, 789, -3319, -3319, -3319, 1896, -3319, -3319, -137, 2244, 2245, -3319, 2131, 837, 2131, -137, -137, 20426, -137, 2376, -3319, 741, 2185, -3319, -3319, -3319, 30356, 27601, -3319, -3319, -3319, 2381, -3319, 2382, 819, -3319, -3319, 402, 529, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 790, 402, 402, 140, -3319, -3319, -3319, -3319, -3319, -3319, 103, -3319, -3319, -3319, -3319, -3319, 20980, 156, 1141, 156, -3319, 183, 220, 20980, -3319, -3319, 20980, 1141, 949, 741, 20980, 741, 34764, 1141, -108, -108, 1783, 402, 741, -3319, -3319, 2252, 36417, 2255, 20980, 20980, -3319, 30907, -3319, 402, 1103, 741, 949, 949, 20980, 1141, 20426, 838, 1605, -108, 1141, -3319, -3319, -3319, -3319, 19318, 1141, 1141, 1453, -3319, -3319, -3319, 741, 30907, 1917, -3319, 5151, -3319, -3319, -3319, 15433, 36417, 314, 440, -3319, 1918, 1048, 289, 1985, 1413, 1922, -3319, 1923, -3319, 1925, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 402, 402, 402, 402, 626, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2149, 2304, -3319, 465, 2001, -3319, 2169, 1932, -3319, -3319, 73, -3319, 19318, 14879, -3319, 2135, -3319, 1865, -3319, -3319, -3319, -3319, -3319, -3319, -137, 2162, 606, 1684, 1940, 121, -3319, -3319, -3319, -3319, -3319, 36417, 1942, 24846, 28152, 28152, 28152, 1939, 10882, -3319, -3319, 2179, 10882, 1943, -3319, -3319, 10882, -3319, 2019, -3319, 1948, 1948, -3319, -3319, 1952, 1948, 2295, -3319, 2297, 1946, -3319, 1954, -3319, 1955, 1958, 1959, -3319, -3319, 3063, 3063, 1950, 1961, 1962, 2162, 1963, 1964, 1967, 240, -3319, -3319, -3319, 1968, 1969, 1971, 1972, 1973, 1976, 1977, 10882, 1978, 13, 1274, -3319, 1979, 1980, 1981, 1983, 10882, 1984, 10882, 1986, 10882, 1987, 1990, 1991, -3319, -3319, -3319, -3319, -3319, -3319, 1957, -3319, 1236, -3319, 1992, -3319, -3319, -3319, -3319, 243, 13737, 1285, 1996, -3319, -3319, 10882, 1994, -3319, 1997, -3319, -3319, -3319, -3319, 19318, 2316, -3319, -3319, 13737, 2504, -3319, -3319, 1999, 2000, -3319, -3319, 28152, -3319, 675, 20426, -3319, 2002, -3319, 2002, -122, 2004, 1288, -3319, -3319, -3319, 1982, 1503, 2383, 28152, 28152, 28152, -3319, 1684, 1684, 739, 2043, 2357, -3319, -3319, -3319, -3319, 35315, -3319, -3319, -3319, -3319, 1033, 36417, 2342, 36417, 7456, -3319, -3319, 2511, 10882, 28152, 589, 1174, 402, -3319, -3319, -3319, -3319, -3319, -3319, 1841, -3319, -3319, -3319, -3319, 2319, -3319, -6, 1192, 434, -3319, 1316, -3319, -3319, -3319, 2358, -137, 2131, 2131, 2359, 2254, 584, 2015, -3319, 402, 1299, -3319, -3319, 675, -3319, -3319, 10882, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1102, 778, -3319, -3319, 1102, 1102, 169, -3319, 907, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 10882, 2363, 2367, 156, -3319, 20980, -3319, -3319, -3319, 377, 34764, -3319, -3319, -3319, -3319, -3319, -3319, 2024, -3319, -3319, 170, -3319, -3319, 27601, -108, -3319, 20980, 2024, -3319, -3319, 174, -3319, -108, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 34764, 2027, -3319, 918, -3319, -3319, -3319, -3319, 34764, -3319, -3319, 34764, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 19318, 950, 1320, -3319, 1290, -3319, -3319, -3319, -3319, 36417, -3319, -3319, 19318, -3319, -3319, 4283, 36417, 2232, -3319, 10882, 10882, 2270, 36417, 2271, -3319, 2529, 36417, 2584, -3319, 34213, -108, 170, 1102, 1102, 385, -3319, 2036, 36417, 402, 474, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2184, -3319, -3319, -3319, -3319, 2279, -129, -3319, 19318, 2561, -3319, -3319, 1294, -3319, 4918, -3319, 2051, 1684, 2368, -3319, -3319, -3319, -3319, -3319, 522, 522, 522, 13166, -3319, 2479, -3319, 3063, -3319, -3319, 10882, 2286, -3319, 193, 2289, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2049, 2052, 2066, -3319, -3319, 2197, -3319, 10882, 10882, -3319, 796, 2069, 2074, -3319, -3319, -3319, -3319, 10882, -3319, -3319, 3063, -3319, 10882, -3319, -3319, 10882, -3319, 10882, 10882, -3319, 2072, -3319, 2073, -3319, 2076, -3319, -3319, -3319, 1503, 36417, -3319, -3319, 2077, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 756, -3319, 2388, -3319, -3319, 1736, 2385, 2061, -3319, 36417, -3319, 1515, 2080, -3319, 402, 13166, 1878, 2208, -3319, -3319, -122, 20426, 24295, -3319, 28152, 1559, 1559, 1559, 1841, 2450, 1951, 1951, -3319, 22640, -3319, -3319, 2204, -3319, -3319, 25397, -3319, 608, -3319, -3319, 13737, 1440, -3319, -3319, -3319, 30356, -3319, -3319, 402, 2086, 2093, -3319, -3319, 35866, 10882, -3319, 2492, -3319, -3319, 2094, -137, 2309, -137, -3319, 2437, 2439, -137, -3319, -3319, -3319, 20426, 1684, 13166, -3319, 315, 1515, -3319, 2095, 918, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -80, -3319, 20980, -3319, -3319, -3319, 2099, 2557, 2559, -3319, 20980, 980, 36417, -3319, 2511, -3319, -3319, -3319, -3319, 4283, -3319, 20426, -3319, -3319, -3319, -3319, 36417, -3319, 1300, -3319, 15433, -3319, -3319, -3319, 2101, 2102, 1948, -3319, -3319, -3319, -3319, -3319, 1952, 2310, -3319, 1952, 1952, -3319, -3319, -3319, -3319, -3319, 193, 286, -3319, -3319, 193, -3319, -3319, -3319, 115, 1144, 1952, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1948, 1948, -3319, -3319, -3319, 193, 2103, -3319, 1948, 841, -3319, 138, 107, 2105, 2111, 1948, 2112, 2106, -3319, -3319, 3063, 2604, -3319, -3319, 2242, -108, 2558, -3319, 1312, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 790, -3319, 1102, 465, -3319, 289, 662, -3319, 956, -3319, -3319, 2122, 2208, 2943, 209, -3319, 36417, -3319, 1009, -3319, 152, 2143, 2143, 2143, 1440, -3319, 1317, -3319, -3319, 2124, -3319, 2125, 2653, 158, -3319, 2653, 29805, -3319, 1326, -3319, -3319, -3319, 163, 2126, 2127, 2128, 2403, 2474, -3319, 2331, -3319, 2136, 2138, 2139, 2141, 2142, 2147, -3319, -3319, -3319, -3319, -3319, -3319, 2151, 31458, -3319, -3319, -3319, 2497, -3319, 2152, 1352, 2361, -3319, -3319, 1606, 20426, 13166, 2153, 2156, -3319, 707, -3319, -3319, 2144, 1559, -3319, 2678, 2538, -3319, -3319, 30907, 2159, -3319, -3319, 2431, -3319, 188, 2350, -3319, -3319, -3319, 589, 2247, 2249, 402, -3319, -108, 2287, 1786, 2507, 1053, 2206, -137, -137, 1199, 2207, 10882, 10882, 2163, -3319, 2162, -3319, -3319, 645, 1606, 10882, -3319, 170, 2361, -3319, 2166, 2170, 36417, -3319, 958, 980, 314, -3319, -3319, -3319, 841, 1141, -3319, -3319, 2024, 251, -3319, -3319, 610, 2415, 2416, -3319, 1104, -3319, 2174, 1104, 1104, -3319, 1610, -3319, 2205, 193, -3319, -3319, 2209, -3319, -3319, -3319, 1104, 2182, 193, -3319, -3319, 2421, 1104, -3319, 30907, -108, 2423, -3319, 2227, -3319, 2643, 2527, -3319, 841, -3319, 2528, 2432, -3319, 2433, -3319, -3319, 2434, -3319, 2435, 2438, 1104, 2443, -3319, 1104, 36417, -3319, -3319, -3319, -3319, -3319, -3319, 36417, -3319, 1328, -3319, -3319, 2270, -3319, -3319, -3319, 2188, 2192, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2320, 36417, -3319, 2202, 2135, -3319, 2752, 1330, 918, 2210, -3319, 2290, 2291, -3319, -3319, 2293, -3319, -3319, 91, 1473, -3319, -3319, -3319, -3319, 13166, 2546, -3319, -3319, -3319, -3319, -3319, 29805, -3319, -3319, 2653, -3319, 2448, -3319, -3319, -3319, 10882, -3319, 2484, 2622, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2213, 2215, -3319, 1332, -3319, 1301, -3319, -3319, -3319, -3319, 10882, -3319, 2162, 2717, -3319, 22640, -3319, -3319, -3319, -3319, -3319, 2218, 2219, 7456, 2773, -3319, -137, -3319, 2261, -3319, -3319, -3319, 2262, -3319, -3319, 36417, 2368, -3319, -3319, 156, 156, -3319, 645, 1301, 918, -3319, 1334, 36417, 36417, 1336, 999, 999, 999, 982, 982, -3319, -3319, -3319, -3319, -3319, 980, 2575, -3319, 799, 94, 36417, -3319, -3319, 1298, -3319, 2224, 2226, -3319, -3319, -3319, -3319, 1104, -3319, 163, -3319, -3319, -3319, -3319, -3319, 163, -3319, 2230, -3319, -3319, -3319, 1412, -3319, -3319, 2476, 2267, -3319, -3319, -3319, -3319, 2237, 2239, 2241, 2257, -3319, 2233, -3319, -3319, 2343, -3319, 41927, -3319, -3319, 984, -3319, 1413, -3319, -3319, 1157, 36417, 19318, -108, 2258, 2243, -3319, -3319, -3319, -3319, -3319, 993, 668, 36417, -3319, 2486, -3319, -3319, -3319, -3319, 117, 2478, 741, 741, 741, 741, 1473, -3319, -3319, 2292, -3319, -3319, 2259, 2263, -3319, -3319, 2337, -3319, -3319, 36417, 36417, -3319, 2361, -3319, 142, -3319, 995, 918, 10882, 1841, 694, 2579, -3319, -3319, -3319, -3319, 2560, 1223, 10882, 2256, 10882, 2269, 1339, -3319, -3319, 2655, 2655, -3319, -3319, -3319, -3319, 1344, 1348, 668, -3319, -3319, 314, -3319, 2272, -3319, -3319, -3319, 768, 768, 1350, -3319, -3319, -3319, -3319, -3319, 1355, -3319, 1362, -3319, -3319, 1412, -3319, 193, 2653, 193, 2653, 10882, 2692, 2285, 36417, 134, -3319, 43029, 43029, 36417, -3319, -3319, -3319, -3319, 4935, -3319, -3319, 124, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2264, -3319, -3319, -102, 2296, 2529, -3319, -3319, 4283, 2667, -3319, -3319, 36417, 4283, 707, 209, 2208, -3319, 402, 2489, -3319, 668, -3319, -3319, 918, 2273, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 20426, -3319, -3319, 19318, 13737, 2371, 1366, -3319, -3319, -3319, -3319, -3319, -3319, 646, 10882, -3319, -3319, -3319, 2471, 2801, 2802, 2713, 2804, 694, -3319, 514, -3319, 2709, -3319, -3319, 36417, -3319, 36417, -3319, 36417, 1161, -3319, -3319, 2467, 668, -3319, -3319, 2361, -3319, 2853, -3319, 913, -3319, -3319, 1298, 36417, 193, 163, 193, -3319, -3319, -3319, -3319, -3319, -3319, 10882, -3319, 10882, 2313, -3319, -3319, 2689, 36417, -3319, -3319, -3319, -3319, 10882, -3319, -3319, 41927, 41927, -3319, -3319, -3319, -3319, 2298, 1272, -3319, 2736, 1270, -3319, -3319, 2455, -3319, -3319, -3319, -3319, 2299, 1503, 741, 173, -3319, -3319, -3319, 2302, -3319, 402, -3319, -3319, 170, -3319, -3319, 36417, 2330, -3319, -3319, 918, 36417, -3319, 163, 163, 2820, 163, -3319, 2828, 2829, 514, -3319, 949, 10882, 1376, 1378, -3319, 2830, -3319, 2831, 2312, 2317, -3319, -3319, 1385, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 219, -3319, -3319, 2663, 2745, 10882, -3319, -3319, 39172, 2307, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 42478, 10882, 124, 707, 2825, 2550, 2832, -3319, -3319, -3319, -3319, 2770, 41927, -3319, -3319, -3319, -3319, -3319, -3319, 20426, 13166, 1783, 2326, -3319, 2371, -3319, 130, -3319, -3319, -3319, -3319, -3319, 163, -3319, 163, 163, -3319, 2880, 2325, -3319, -3319, -3319, -3319, 34213, 34213, -3319, 2353, 10882, 41927, -3319, 2764, -3319, 2702, 2418, 2796, 2656, 2334, -3319, 2335, 2789, 43029, -3319, 2581, -3319, 2582, -3319, -3319, -3319, 2784, 4283, 707, -3319, -3319, 27601, -3319, -3319, -3319, 2351, 2436, 762, 2360, -3319, -3319, -3319, 2662, -3319, 2362, 1387, -3319, 221, -3319, -3319, 39723, 2879, 36417, -3319, -3319, 32009, 40274, 2364, -3319, -3319, 10882, -3319, -3319, -3319, -3319, -3319, 2518, -3319, -3319, -3319, 2717, 13737, 287, 402, 2818, 2819, 402, 402, 402, 402, -3319, 762, -3319, 2798, 2370, 2800, -3319, -3319, 10882, -3319, 2807, 2458, -3319, 2374, -3319, 41927, -3319, -3319, 2763, 2379, 1183, -3319, 2375, -3319, 2814, 41927, -3319, -3319, 2579, 1392, -3319, -3319, 1736, -3319, 14308, -3319, -3319, -3319, -108, 402, 402, 1051, 1051, 170, 30907, 2386, -3319, 402, 10882, 2384, 2387, -3319, 741, -3319, 2904, 41927, 36417, 37519, 2790, 36417, 4283, 2792, 2793, -3319, 2564, 40825, 41927, 1270, 2762, -3319, 13737, 2395, 2396, -3319, -108, -108, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2493, -3319, 30907, -3319, -3319, -3319, -3319, 2481, -3319, 38070, -3319, 1836, -3319, -3319, 2862, 884, -3319, -3319, 2424, -3319, 41927, 2649, 2407, -3319, -3319, -3319, -3319, -3319, -3319, 1401, -3319, -3319, -3319, -3319, 41927, 41927, -3319, -3319, 25948, 10882, -3319, 2442, -3319, -3319, -3319, 4935, -3319, -3319, 2737, 16541, 2548, 30907, -3319, 2493, 38621, 41376, -3319, -3319, -3319, 23193, -3319, -3319, -3319, 2811, -3319, -3319, -3319, 1380, -3319, -3319, -3319, 30907, 1403, -3319, -3319, 20426, -3319, 762, -3319, -3319, 25948, -3319, -3319, -3319, -3319, -3319, 18762, 2302, -3319, -3319, -3319 }; /* YYPGOTO[NTERM-NUM]. */ static const short int yypgoto[] = { -3319, -3319, -3319, -3318, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1106, -3319, -3319, -3319, -3319, -3319, 1146, -1602, -3319, -3319, -3319, -3319, -3319, -3319, 6, 809, -3319, -3319, 3, -3319, -386, -3319, -3319, -3319, -2517, -521, -724, -3319, -3319, 254, -94, -3319, -3319, -3319, -3319, -3319, -3319, 2081, -865, -2766, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -391, -523, -3319, -3319, -382, -3319, -3319, -2301, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -997, -928, -3319, -3319, -3319, -3319, -1959, -368, -3319, -366, -3319, -365, -3319, -364, -3319, -361, -360, -358, -357, -3319, -356, -3319, -3319, -935, -3319, -3319, -3319, -3319, -354, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -779, -3319, -3319, -667, -3319, -3319, -776, -348, -3319, -3319, -687, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2075, -3319, -3319, -3319, -1920, -3319, -3319, -3319, -2448, 1681, -3319, -3319, -1868, -3319, -3319, -3319, -1939, -3319, -3319, -3319, -1892, 520, -3319, -3319, 879, 705, -3319, -1625, -1694, -1678, -3319, -3319, -3319, -2208, -2176, -597, 1609, -945, -2193, -3319, -3319, -3319, -3319, -3319, -3319, -495, -3319, -3319, -2241, 1682, -3319, -3319, -3319, 793, -3319, -3319, -3319, -3319, -3319, -3319, 241, -3319, -3319, 242, -1405, -3319, -3319, -3319, -3319, -3319, -3319, -616, -511, -698, -3319, -2935, -385, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -862, -825, -3319, -3319, -925, -3319, -3319, -951, -3319, -788, -2039, -3319, -3319, -3319, -3319, 1646, -1185, -3319, 2587, -3319, -458, 54, 1250, -2083, -1265, -822, -818, -2187, -3319, -3319, -3319, -254, -3319, -3319, 730, 150, 1251, -1674, 795, 859, -3319, -3319, 175, -3319, -2823, -3319, -3319, -3319, 133, -3319, 135, -3319, -3319, -3319, -1282, 105, -1461, -3319, -277, -2214, -3319, -58, -3319, -100, -3319, -509, -1865, -2108, -3319, -3319, -3319, -90, 181, 238, -3319, -2721, -2816, -3319, -3319, -507, -3319, -3319, -3319, -517, -3319, -257, -388, -3319, -3319, -901, -2006, -3319, -3319, -3319, -2317, -2159, -3319, 1664, -451, 1224, -2008, -314, -2058, -3319, -266, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1276, -922, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -2116, 196, -3319, -3319, 830, -3319, -3319, -3319, -1660, -353, -1385, -2895, -3319, -3319, -3319, -3319, -3319, -3319, 1148, -3319, -3319, 1386, 1778, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -38, 1011, -3319, -3319, -3319, -3319, -3319, -3319, -1315, 1697, -3319, -3319, -3319, -12, -3319, -3319, -3319, -3319, -3319, 1463, -3319, -3319, -3319, 2164, -3319, -3319, -3319, -3319, 642, 1052, -3319, -3319, -3319, 2198, 1010, -529, -1534, -3319, 2562, -3319, -3319, -3319, -1468, -2147, -3319, 2274, -326, -1291, 1464, -953, -2718, -3319, 55, -652, 2754, -3319, -3319, -1039, -3319, -3319, -663, -3319, -3319, -1087, -1083, 1944, 1953, 816, 817, 657, -3319, -3319, -575, -3319, -3319, -3319, -1053, -619, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 320, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -649, -3319, 1181, -3319, -927, -3319, -3319, -3319, 2030, -3319, -3319, -3319, -3319, -3319, -2037, -1706, 262, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -2043, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -1538, -3319, -1755, -333, -3319, -191, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -635, 455, -634, -1958, -1020, 869, -3319, -3319, -1181, 2078, -1782, -3319, -3319, -3319, 1091, -3319, -3319, -3319, -3319, -3319, 231, -2263, -1262, -3319, -3319, -2745, -827, -1853, -799, -3319, -2020, -174, -1585, -1600, -2071, -748, -1886, -3319, -3319, -3319, -3319, -3319, -793, -3319, -3319, -3319, -149, 1034, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -543, -414, 1341, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 2097, 1901, 1230, -3319, -3319, -2244, -3319, -3319, 1054, -3319, 79, -2055, -1574, 338, -3319, -3319, 340, -2760, -3319, -3319, -3319, -3319, -3319, -3319, 282, -850, -586, 2620, -3319, -3319, -3319, -3319, -3319, -3319, 2176, 1753, -1698, 2549, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1881, 2638, -510, -1166, -3319, -641, -3319, -3319, -782, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1723, -3319, -3319, -3319, -3319, -3319, 1926, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 369, -668, -3319, -406, -700, -3319, -488, -3319, -3319, -3319, -824, -3319, -655, -889, -1238, 17, -1712, -1327, 374, 1933, -2817, -965, -1093, -1098, -1949, 32, -3319, 2930, 49, -777, -817, -7, -2449, -115, -519, -3319, -2292, -3319, -3319, -3319, -3319, 1530, -3319, -3319, -3319, -3319, 677, -3319, -3319, -3319, 344, -3319, 104, -98, -3319, -3319, 261, -3319, 1572, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1960, 2684, 2377, -3319, 2165, -3319, -3319, -3319, -3319, -3319, -208, -3319, -39, -3319, -1951, 1790, 673, -3319, 847, -711, -1001, -3319, -210, -3319, -3319, 285, 2690, 2389, -3319, -3319, -3319, -3319, -3319, -2410, -804, -3319, -2460, -3319, -3319, -3319, -3319, -987, -3319, -3319, 2079, 159, -3319, -3319, 75, -3319, -3319, 426, -3319, -154, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319, 1241, -3319, -3319, -3319, -3319, -3319, -3319, -3319, -3319 }; /* 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 -2293 static const short int yytable[] = { 438, 1198, 948, 871, 867, 897, 554, 1406, 1407, 477, 1408, 988, 1326, 476, 1243, 1525, 482, 2058, 493, 1056, 1058, 1064, 1999, 548, 501, 495, 550, 1612, 908, 1550, 939, 940, 1680, 1360, 1549, 507, 1815, 1040, 2602, 1291, 2550, 2513, 2469, 1426, 1091, 1272, 524, 1874, 1491, 2353, 2499, 2503, 2505, 2375, 134, 480, 1093, 2191, 2378, 1569, 1266, 1716, 3044, 2846, 2633, 2806, 1577, 1272, 993, 3050, 3121, 1579, 2702, 2192, 1582, 1113, 1111, 2335, 1117, 2198, 1490, 1798, 2695, 1331, 2697, 1292, 543, 1332, 1124, 1125, 1126, 991, 2525, 2534, 2204, 2125, 2517, 2518, 2208, 3102, 2535, 1487, 2539, 1566, 2598, 2679, 881, 3398, 546, 2223, 438, 1593, 1595, 438, 553, 559, 1508, 2021, 1687, 2232, 3107, 1472, 1473, 1690, 2183, 542, 2190, 2179, 543, 1132, 1133, 1134, 970, 1693, 1694, 2582, 1029, 2680, 2966, 1029, 3173, 2435, 1492, 2579, 1719, 575, 2147, 2148, 1622, 1172, 1504, 2721, 835, 836, 3614, 2725, 2337, 2174, 3012, 2609, 2610, 1517, 1518, 1519, 2179, 1429, 2339, 569, 2481, 1029, 1524, 3013, 3145, 2141, 3308, 3613, 2095, 3218, 3236, 2240, 2515, 2755, 2206, 2207, 3014, 2209, 2686, 1160, 2212, 2213, 958, 2570, 2216, 2179, 835, 836, 3235, 2225, 886, 3240, 563, 2228, 2229, 2230, 2231, 3138, 3143, 3461, 2235, 3144, 2237, 2051, 3218, 3012, 835, 836, 2246, 1387, 2303, 2250, 2251, 2252, 3320, 1429, 2801, 2984, 3013, 1293, 3153, -2206, 644, 1196, 1254, 1021, 3172, 1990, 2275, 1328, 1865, 3014, 1024, 2285, 2571, 2488, 2699, 2566, 1328, 2291, 2292, 835, 836, 2295, 2566, 1328, 1334, 2580, -1359, 114, 3279, 2584, 1030, 2364, 2880, 1030, 131, 1120, -767, 2557, 2564, 1235, 442, 443, 3108, 2600, 2601, -485, 2052, 1166, 2988, 2571, -1607, 1224, -486, 2611, 2687, 2365, 1702, 1198, 2314, 3306, 492, 1277, -1359, 1030, 505, 648, 500, 3269, 1035, 2048, 504, 2077, -2140, 2241, 1201, 3605, 3012, 1732, 1196, 2158, 2484, 2653, 2024, 2562, 807, 2794, 1388, 1461, 1461, 3013, 1389, 533, 2643, 133, 2366, -2141, 506, 2367, 959, 1270, 1390, 1384, 3014, 2053, 580, 2368, 1198, 516, 3219, 2520, 1198, 514, 835, 3139, 1913, 515, 2158, -396, 3786, 1301, 2572, 3757, 887, 3757, 1854, 2318, 116, 1285, 1154, 2054, 1358, 3040, 2669, 1918, 943, 3787, 2870, 2871, 647, 1634, 235, 1974, 237, 3219, 649, 2158, 2319, 1855, 133, 3615, 2533, 2180, 1359, 135, 498, 1351, 2482, -567, 1422, 564, 2485, 1230, 1465, 1466, 1467, 2862, 517, 2708, 2709, 2710, 1202, 2106, 1919, -2140, 1478, 2071, 1493, -1359, 1964, 1494, 3046, 1217, 2079, 2080, 2071, 808, -1755, 566, 2180, 1121, 2315, 3343, 1712, 2055, 1302, 3410, -2141, 1462, 1477, 1715, 3347, 1703, 965, 1510, 944, 1704, 1514, 1733, 2654, 2989, 650, 489, 553, 931, 559, 2264, 2800, 2180, 1391, 3606, 2107, 1432, 2841, 1167, 2297, 3426, 1532, 1533, 2743, 604, 1537, 1296, 1423, 559, 1702, 2679, 534, 923, 2328, 3220, 3393, 3407, 642, 2977, 2978, 2644, 553, 1426, 652, 1552, 1553, -1318, 809, 2859, 543, 1203, 2888, 2850, 3109, 2179, 798, 1423, 987, 1681, 2191, 2056, 1684, 2680, 2179, 2571, 2026, 1405, 2027, 2881, 1689, 2030, 1197, 1331, 982, 983, 2192, 1332, 986, 543, 883, 990, -1318, -1755, 2879, 1695, 1696, 1430, 3616, 788, 1717, 2121, 2808, 2809, 2810, -1359, 586, 899, 1310, 1798, 2297, 3193, 1392, 1581, 2369, 2890, 553, 1255, 912, 2297, 1869, 1155, 645, 486, 960, 2573, 490, 1385, 1601, 543, 438, 2703, 2183, 2543, 543, 3062, 3581, 3448, 3112, 2190, 937, 1156, 543, 543, 2878, 3864, 2001, 949, 912, 2031, 1574, 2032, 553, 1331, 1604, 1430, 2516, 1332, 2756, 1197, 2555, 971, -567, 584, 3222, 976, 2524, 2158, 922, 2023, 981, 438, 438, 2688, 912, 438, 553, 3271, 438, 553, 543, 2559, 2560, 864, 3047, 1703, 2329, 3221, 1022, 1704, -1607, 2995, 1623, -1755, 3462, 2676, 2672, 1230, 2583, 3222, 2585, 2072, 816, 2566, 2701, 2672, 2489, 2596, 2002, 1991, 2072, 2677, 864, 924, 2339, 1034, -2206, 2595, 3983, 2873, 2608, 946, 947, 3676, 2566, 888, 2617, -1359, 3146, 2603, 3015, 1692, 1719, 2455, 2242, 1259, 1159, 3596, 968, 3598, 2869, 2632, 2370, -2206, 1614, -1607, 2108, 2158, 3617, 2563, 3237, 3174, 2303, 3377, 3170, 2057, 2158, 3556, 961, 1424, 1159, 1630, 1353, 819, 2675, 1025, 1278, -1359, 3626, 2872, -1359, 2297, 3132, 3630, 3280, 2811, 2812, 2298, 2574, -1359, -767, 3223, 3171, 1423, 583, 3015, 2561, -2140, 1424, -485, 1157, 1260, 1122, 1168, 1169, 1170, -486, 2371, -2292, 2664, 2665, 2666, 2667, 610, 1269, 2979, 3151, 3152, 1353, 3650, -2141, 2158, 612, 3652, 3155, -567, -2140, 1261, 3057, 2180, -1756, 3178, 1139, 1353, 1141, 1159, 2372, 1297, 2180, 800, 790, 3595, 1286, 3597, 1914, 114, 1685, 2469, 802, -2141, 1298, 3687, -1607, 3797, 1353, 2299, 1975, 129, 1158, 1350, 130, 2679, 2851, 2852, 1446, 2073, 3082, 2298, 543, 884, 3125, -396, 3638, 1423, 2073, 3192, 2298, 2265, 1222, 553, 543, 932, 1423, 820, 543, 1159, 1495, 1663, 3015, 1496, 2187, 543, 3092, 2680, 2882, 525, 3096, 3299, 3091, 1906, 1409, 1230, 3095, 3583, 3111, 499, -1755, 1208, 3140, 2951, 1721, -1755, 2646, 941, 491, 3559, 1353, 3824, 2158, 1227, 1870, 1783, 553, 3026, 3298, 3560, 115, 2330, 1219, 487, -1318, -1756, 3300, 2168, 1287, 441, 526, 1423, 864, 1860, -1755, 3865, 3065, 3825, 116, 3718, 1948, 2116, 794, 2391, 1952, 821, 3156, 2813, 2222, 2191, 3682, 3195, 3684, 1299, 1869, 1786, 2382, 2383, 1680, 1680, 3196, 589, 1738, 1585, 3325, 2192, 1159, 1976, 1177, 2146, 1423, 2043, 2134, 3525, 1327, 1300, 1879, 1316, 2309, 2300, 2504, 902, -1607, 444, 2169, 2119, 3157, 3737, 2120, 1873, 3158, 2123, 2124, 1812, 2855, 527, 485, 1272, 2836, 2997, 2845, 543, 117, 3000, 1356, 543, 3731, 2566, 1424, 2553, 2170, 2179, 864, 497, 2430, 1262, 2183, 2896, 2190, 1817, 3326, 864, 2298, 2837, 2168, -1756, -2264, 2616, 1423, 118, 3159, 2016, 1241, 3210, 1178, 3818, 2521, 3046, 3066, 2540, 1273, 2198, 519, 543, 569, 1415, 3826, 915, 2029, 3781, 3388, 3458, 1447, 2427, 3660, 511, 2223, 543, 3217, 2676, 1182, 1739, 2392, 1550, 2158, 2037, 3077, 543, 2473, 1798, 2168, 2887, 2038, 657, 2171, 2677, 864, 119, 2380, 3661, 1670, 2169, 1410, -2261, 1414, 3078, 3197, 1274, 1424, -566, 2299, 3428, 2387, 2044, 969, 916, 1421, 1424, 2193, 1331, 1813, 1352, 3678, 1332, 1451, 1564, 1454, 2170, 543, 2194, 3285, 3561, 2897, 2429, 3079, 1387, 2554, 3609, 3610, 3827, 1550, 2437, 2401, 2303, 2983, 2538, -2264, 2169, 2675, 1263, 3291, 3292, 2254, 2247, 1671, 2278, 3828, 3312, 3651, 1488, 2530, 3631, 646, 3203, 678, 2976, 2172, -701, 3929, 1264, 1586, 2531, 1424, 2170, 1488, 2838, 3101, 1186, 3829, 3508, 1317, 1603, 2814, 2440, 1187, 1458, 1448, 917, 678, 3584, 1587, 2171, 1404, 864, 1353, 942, 2452, 903, 2982, 2556, 1423, 795, 1621, 2117, 3027, 3311, 463, 2067, 2068, 1265, 2444, 1424, 2279, 2158, 2856, 682, 120, -566, 2017, 1288, 1551, 683, 446, 2195, 904, 2739, 822, 823, 824, 825, 826, 827, 3718, 553, 1388, 1740, 1550, 2171, 1389, 2130, 2300, 2615, 528, 828, 1741, 683, 2109, 687, 1390, 3459, 1742, 3241, 2186, -1756, 1358, 3047, 1188, 2052, 2704, 946, 947, 529, 464, 2172, 1870, 3160, 1664, 1665, 1666, 1424, 1668, 3161, 3204, 3585, 3301, 1854, 1359, 121, 3327, 3562, 1636, 2338, -1756, 1683, 518, 2180, 1723, 2045, 465, 553, 530, 1688, -566, 1606, 3508, 3508, 2668, 1724, 1855, 3586, 3947, 2193, 2280, 447, 543, 1190, 593, 3162, 2052, 2172, 553, 694, 2194, 1672, 2053, 705, 2891, 3526, 466, 2248, 1722, 543, 543, 521, 3725, 1241, 1650, 2092, 122, 864, -855, -187, 1639, 1743, -735, 694, 2187, 3679, 3460, 1588, 1648, 531, 3830, 536, -1629, 864, 2308, 2532, 537, 803, 2173, 3436, 3770, 438, 438, 438, 543, 438, 543, 3892, 2131, 594, 1675, 467, 2604, 2053, 1391, 705, 3163, 1682, 438, 2093, 553, 3893, 2281, 538, 2132, 705, 438, 448, 918, 1461, 709, 710, 951, 2130, 543, 2133, 1570, 2676, -1630, 2054, 1651, 3580, 2567, 1667, 2567, 1669, 2018, 2866, -566, 3450, 3451, 1660, 3907, 2677, 2195, 710, 705, 2130, 985, 1849, 1850, 1851, 2019, 3709, -566, 1744, 1875, 3819, 3814, 1424, 3713, 3508, 3508, 1691, 43, 705, 553, 1191, 582, 3714, 2605, 3956, 1676, 1461, 3205, 1358, 919, 1723, 920, 1193, 543, 3669, 1135, 1725, 543, 2173, 2776, 608, 1724, 3524, 2428, 2004, 1392, 2055, 2309, 712, 2675, 1359, 3164, 2134, 2734, 2735, 544, 1550, 3195, 2651, 2682, 2788, 2797, 547, 1461, 3409, 1637, 3196, 3908, -59, 1652, 595, 1640, 1814, 468, 3289, 3670, 2130, 126, 3717, 2193, -1629, 1747, 1509, 729, 2173, 804, 1715, 2197, 553, 438, 438, 438, 1816, 2130, 3318, 3508, 2434, 2131, 3509, 1888, 976, 1889, 1864, 2652, 549, 1726, 2193, 2077, 3508, 1062, 2005, 3675, 553, 2132, 2077, 2606, 3206, 553, 2056, 1619, 3508, 2131, 2078, 543, 2133, 1881, -1630, 1343, 1344, 1727, 1886, 1886, 560, 1886, 469, 729, 1513, 2132, 3318, 3313, 946, 947, 3314, 1367, 1368, 729, 1571, 3801, 2133, 2282, 449, 1304, 561, 735, 2135, 127, 3508, 116, 737, 1620, -566, 738, 55, 2092, 1402, 1063, 1653, 450, 3508, 1885, 1885, 1062, 1885, 1536, 997, 3633, 729, 2196, 2219, 1448, 1489, 1641, 737, 1212, 1728, 470, 1213, 1013, 471, 1725, -566, 3671, 3197, 571, 3055, 729, 2775, 2131, 2134, 3307, 3508, 451, 1062, -491, 452, 2219, 3508, 472, 3715, 1677, 3315, 3316, 2136, 2132, 2131, 1358, 2624, 1289, 2625, 1305, 3293, 1062, 2134, 2657, 2133, 2079, 2080, 1112, 1923, 3262, 2132, 1270, 473, 3334, 572, 3553, 3888, 1359, 2658, 575, 453, 2848, 1358, 3510, 3568, 3508, 3896, 474, 454, 2009, 998, 3909, 3523, 2626, 577, 3508, 3554, 1014, 1726, 2081, 1290, 3118, 3105, 3325, 1359, 1729, 3558, 579, 1924, 3263, 2197, 1379, 1380, 590, 2627, 2186, 3924, 1116, 3729, 946, 947, 452, 1727, 129, 3746, 3508, 130, 3508, 2087, 2088, 2089, 592, 2037, 2006, 543, 3508, 3508, 543, 2134, 2822, 2135, 1015, 2057, 3666, 605, 3667, 2628, 2187, 999, 2066, 553, 553, 543, 543, 600, 2134, 1016, 3335, 1214, 3326, 1886, 1886, 1886, 3508, 2135, 3133, 1572, 787, 3136, 3137, 1000, 643, 2010, 2042, 3508, 2011, 1208, 1728, 2104, 3969, 3970, 791, 1573, -566, 3400, 3149, 793, 2115, 3508, 3508, 2883, 1227, 2070, 3336, 876, 877, 878, 880, 2136, 1885, 1885, 1885, 1243, 2065, 2567, 3820, 3341, 3342, 3508, 3508, 946, 947, 3147, 3508, 2085, 3148, 543, 2221, 2842, 3345, 1890, 2894, 2136, 804, 1443, 3349, 3009, 1444, 2129, 2899, 1445, 2220, 2901, 646, 543, 2308, 2594, 1550, 2111, 1891, 2135, 914, 2473, 898, 2221, 924, 1272, 2681, 3365, 1162, 1163, 3367, 935, 1892, 2309, 2122, 952, 2135, 1729, 2682, 2310, 3946, 1893, 953, 3032, 1001, 2222, 957, 3765, 114, 2844, 1002, 980, 2140, 835, 836, 1164, 1165, 984, 3401, 3402, 3765, 995, 1720, 3403, 3404, 1558, 1559, 2341, 2321, 1550, 1680, 1017, 3776, 864, 2538, 1979, 1980, 2136, 892, 893, 1003, 894, 2149, 895, 1996, 1997, 1894, 1895, 1010, 1145, 1146, 2156, 2157, 1012, 2136, 2249, 1027, 2164, 2165, 2166, 2167, 1142, 2175, 2176, 2013, 2014, 1028, 1550, 1019, 2263, 2629, 3319, 2615, 2376, 1896, 602, 603, 1004, 2376, 606, 607, 2273, 1147, 609, 118, 611, 3535, 3536, 3537, 3538, 1161, 1148, 1037, 1596, 1597, 1598, 1599, 1600, 2440, 1038, 1005, 2177, 2178, 2344, 2345, 2431, 2432, 553, 2630, 835, 836, 1036, 3765, 2757, 2758, 438, 1006, 1039, 3853, 130, 543, 3043, 1171, 2336, 2777, 2778, 1149, 2803, 2804, 2903, 2904, 1041, 1897, 2993, 2904, 553, 888, 1150, 1206, 3127, 1353, 2276, 2277, 1042, 2284, 1207, 2286, 2287, 2288, 2289, 2290, 3188, 3189, 2293, 2294, 1200, 3230, 3231, 1220, 2333, 1756, 1757, 2425, 1043, 1151, 3242, 3243, 3375, 2178, 3391, 3392, 3420, 3421, 3449, 3421, 3452, 3392, 3287, 3573, 3574, 1046, 553, 1898, 3578, 3392, 1233, 553, 3579, 3392, 3589, 3590, -687, -687, 1759, 3591, 3592, 1047, 2384, 1237, 3765, -687, 3593, 3592, 1048, 1762, 3647, 3648, 3765, 3934, 1049, 1488, 2793, 1763, 1234, 3183, 3748, 3574, 3749, 3574, 1152, 1050, 3635, 1051, 994, 3754, 3421, 3838, 2663, 1550, 1052, 1765, 3900, 3901, 2797, 2186, 3765, 1053, 1243, 3950, 3951, 3967, 3968, 4000, 4001, 1328, 3620, 3962, 1766, 1590, 1591, 1054, 1592, 1594, 1540, 1541, 2835, 3911, 3911, 3453, 3454, 1057, 2376, 1059, 2507, 2512, 1060, 3069, 3070, 3002, 3003, 553, 3228, 3229, 1061, 1238, 1771, 1065, 3456, 1066, 1067, 3765, 3765, 1068, 1069, 1070, 3996, 1071, 1072, 1073, 1074, 1076, 1241, 1077, 1078, 1252, 1082, 1083, 1084, 1085, 1086, 1087, 2445, 2549, 2376, 3202, 1088, 1089, 1090, 2682, 1092, 1094, 1253, 1095, 1096, 1097, 3732, 1098, 1099, 1100, 1101, 3726, 1102, 1257, 1103, 1104, 1105, 2459, 1106, 1107, 1108, 1109, 1110, 1114, 1115, 1118, 1119, 1123, 1127, 1128, 1774, 1129, 2308, 1130, 1131, 2474, 1199, 2681, 1775, 1244, 1258, 1270, 1279, 1280, 1281, 1282, 1283, 1284, 1294, 1295, 1309, 1776, 2902, 2493, 2495, 1311, 1312, 1319, 1328, 1337, 553, 1314, 553, 553, 1335, 1365, 1366, 1367, 1368, 1369, 1370, 2341, 1371, 1372, 1373, 1374, 1375, 1376, 1377, 1340, 1378, 1341, 1345, 1348, 1349, 1396, 1397, 1398, 1401, 1403, 1404, 1416, 1551, 1418, 3244, 1420, 1427, 2341, 1428, 1436, 1433, 553, 553, 1777, 1437, 1438, 1440, 1441, 1196, 2492, 1461, 1468, 1480, 1482, 1122, 1506, 1498, 1548, 1560, 1583, 1778, 1565, 1580, 1602, 1607, 1608, 1611, 1613, 1617, 1625, 1626, 1627, 1628, 1629, 1635, 1658, 1662, 1643, 1686, 1649, 1697, 1701, 1699, 1713, 1809, 2569, 1818, 1820, 2263, 1821, 1822, 1823, 1819, 1824, 2581, 2263, 1825, 1826, 2263, 1827, 2591, 1828, 2263, 1829, 2590, 1830, 1831, 1832, 1833, 1040, 1834, 1835, 1782, 1836, 2590, 1837, 2263, 2263, 1838, 553, 1784, 1844, 2612, 1845, 1847, 1857, 2263, 2620, 1551, 1862, 1852, 1876, 1901, 2622, 2623, 1379, 1380, 543, 1877, 1904, 1905, 1916, 1907, 2008, 1909, 553, 1910, 1911, 1917, 1920, 1921, 3869, 2263, 2642, 3872, 3873, 3874, 3875, 1927, 1922, 1926, 1928, 2592, 2593, 2086, 1934, 1929, 1930, 1931, 1932, 1936, 1933, 1935, 1937, 1946, 3913, 2621, 1938, 1940, -1075, 1941, 1790, 1942, 1943, 1944, 1945, 1949, 2619, 1947, 1950, 1951, 1953, 2003, 1954, 1955, 1956, 1159, 3905, 3906, 3921, 1957, 1753, 1958, 1959, 2020, 3917, 1029, 1960, 1754, 1755, 1961, 2028, 1962, 1963, 1965, 1970, 543, 2263, 1966, 1967, 1756, 1757, 1968, 1969, 1971, 1972, 2039, 1973, 1977, 1978, 2112, 1981, 1982, 1791, 1983, 2049, 1992, 1993, 1994, 1881, 1995, 1034, 553, 553, 553, 1998, 1792, -1192, 2100, 1758, 2063, 2118, 2114, 1759, 1760, 2691, 2138, 2139, 1761, 2142, 2143, 2145, 2150, 2151, 1762, 2152, 1793, 2153, 2155, 2154, 2193, 2205, 1763, 1794, -1359, 2210, 2211, 2214, 1764, 2215, 2217, 2218, 2224, 2226, 1795, 2227, 2234, 2681, 2233, 2238, 1765, 2239, 2244, 2266, 2245, 1029, 2311, 2334, 2338, 2343, 1353, 3444, 3445, 2358, 1328, 2363, 2346, 1766, 2347, 2381, 2348, 2360, 2349, 2350, 1767, 1768, 691, 2393, 2394, 2406, 2411, 1769, 2413, 2415, 2420, 2421, -1359, 2422, 2423, 1770, 1030, 2433, 2424, -793, 2439, 1771, 2698, -1245, 2446, 2450, 2448, 2451, 543, 1550, 2453, 2460, 2476, 2464, 2477, 2478, 2479, 2093, 3470, 2092, 553, 2497, -1359, 1551, 3470, 657, 2496, 1772, 2788, -1359, 3544, 2498, 2519, 2522, 2526, 2527, -1359, 553, 553, 553, 2528, -1359, 2544, 2551, 2552, 2597, 2376, 2042, 2599, 2656, 2821, 2670, 2634, 2671, 2683, 1783, 2823, 2660, 2825, 2662, 2650, -1359, 2663, 1773, 553, 1774, 2684, 2685, 1715, -1359, 1863, 3238, 2706, 1775, 2711, 2718, 2713, -1359, 2726, 2716, 2727, -1359, 2728, 2719, 2785, 1030, 1776, 2722, -1359, 3312, 2729, 2730, 2038, -1359, 2731, 2732, 678, 2736, 2737, 2772, 2740, 2741, -1359, 2742, 2746, 2747, 2820, 2748, 2749, -1359, 2750, -1359, 2751, 2752, 2754, 2759, 2789, 2760, 2761, 2762, 2764, 2807, 2766, 2768, 2805, -1359, 2769, 2770, 2774, 2967, -1359, 2781, 2779, 2782, 2818, 2791, 2263, 2792, 1777, 2799, 2802, 2590, 2819, 2832, -1359, 2824, 2843, 682, 2849, 2853, -1359, 2854, 2857, 683, 553, 1778, 2876, 2263, -1359, 1779, 2877, 2886, -1359, 2962, 2895, 2969, -1359, 2965, 2968, 2973, 2985, 2980, 2590, -403, 2998, 3008, 2987, -1359, 3011, 687, 2590, 3018, -1359, 2590, -1359, 3019, 2996, 3049, 3020, 3022, 3029, -1359, 1212, -1359, 543, 1780, 3052, 1550, 2077, 3067, 1781, 3087, 3021, 2905, 3075, 3028, 543, 1782, 3037, 3038, 2961, 2889, 3039, 3042, 1783, 1784, 438, 3056, 3090, 2892, 2971, 3083, -1359, 2273, 1064, 1113, 1117, 3093, 3084, 3094, 3088, 2981, 3106, 3114, 3113, 3115, 3130, 3131, 3154, 3134, 3176, 3722, 1785, 694, 2264, 2906, 3177, 3179, 3182, 3184, 3186, -1359, 543, 3173, 1786, 1787, 1788, 1789, 3209, 3226, 3233, 3234, 3245, 3246, -1359, 3247, 3248, 3473, 3074, 3249, 3683, 3250, 3251, -1359, 3252, 3253, 1790, 3254, 3255, 3260, 2975, 3264, -1359, 3256, 2549, -1359, 2822, 3258, 3261, 3270, 3272, 2991, 3273, 3231, 3278, 3281, 3277, 3288, 3297, 705, 3283, 3309, 3284, -1279, -1284, 3310, 3863, 3332, 3333, 3340, 3352, -1359, 3170, 3348, 709, 710, 3344, 3346, 3355, 3356, 3357, 3359, -1359, 3360, 3378, 3361, 3362, 3363, 1791, 3379, 3364, 3382, 3041, 3739, 3740, 3366, 3742, 3389, 3387, 3408, 3411, 1792, 3414, 3395, 3396, 3394, 3397, 3413, 3416, 3863, 3418, 3429, 2459, -1359, 3432, 3433, 3435, 3457, 3438, 3440, 3466, 1793, 3467, 3474, 2474, 3064, 3472, 553, 1794, 3475, 3243, 3480, -1359, 3476, -1359, 3477, 553, 3478, 3532, 1795, 3519, 3534, 2445, 3540, -1359, 3863, 3543, 3565, 3567, 3594, 3575, 3570, 553, 3479, 3518, 3541, 3600, 1243, -270, 3542, 2104, -1359, 3627, -1359, 3572, 3636, 3653, 3582, 3619, 3639, 3645, -1359, 3622, 3655, 3656, 3657, 3658, 1551, 3664, 3790, 2646, 3791, 3792, -1359, -1359, 3677, 3687, 3690, 3716, 3723, -1359, 3735, 3741, 1550, 3712, 3724, 2263, -793, 3989, 3728, 3743, 3744, 3750, 3751, 2263, 3760, 2590, 3752, 3761, 3879, 3766, 3771, 3753, 3772, 3775, 1551, 1756, 1757, 3773, 1550, 2590, -1359, 3784, 3793, 2263, 3794, 3797, 3802, 2376, 3804, 1550, 3806, -1359, -1359, 3805, 3989, 729, 3810, 3809, -2061, 3313, 3812, 3817, 3314, 3815, 3816, 3822, -687, -687, 1759, -1359, 3823, -1359, 3836, 735, 3835, -687, 3843, 3837, 737, 1762, 3857, 738, 3870, 3871, 3878, -1431, 3854, 1763, 3883, 3885, 3887, -1359, -1359, 3886, 3889, 3890, 3895, 3894, -1359, 3919, 3915, 3923, 3276, 3920, 3927, 1765, 3930, 3931, 3932, 3936, 3939, 3940, 3943, 3879, 1756, 1757, 3949, 3954, 3961, 1328, 3963, 3964, 1766, 3981, 3984, 3990, 3997, 3621, 2342, 2296, 3315, 3316, 3191, 2558, 3194, 3216, 3512, 3624, 3774, 3898, 1339, 3520, 3629, 3514, 4004, -687, -687, 1759, 3957, 3491, 1771, 3492, 3494, 3495, -687, 553, 3497, 3498, 1762, 3499, 3500, 3501, 3971, 3502, 3185, 3840, 1763, 3758, 3841, 3505, 3769, 1752, 1400, 3632, 1796, 2618, 3051, 1868, 3734, 3644, 3054, 3785, 3551, 2493, 1765, 3938, 3903, 4003, 2549, 3994, 3877, 1841, 591, 3211, 2253, 1551, 3720, 3447, 1328, 2696, 3128, 1766, 2647, 2260, 2575, 3117, 3141, 3468, 3142, 3321, 553, 3180, 3358, 3350, 1774, 3120, 3081, 3674, 3680, 3465, 3588, 1856, 1775, 3637, 3531, 2332, 3471, 2257, 3119, 1771, 2637, 2127, 1700, 2461, 3324, 1776, 2784, 2069, 1839, 2492, 2449, 896, 1357, 3552, 1324, 3259, 2480, 3045, 2322, 1584, 1248, 2379, 3216, 2091, 1505, 3089, 3322, 833, 3577, 3446, 1589, 615, 616, 3795, 2974, 3796, 2438, 794, 834, 2376, 3443, 3912, 3123, 3948, 3431, 2487, 1631, 1479, 1457, 2355, 2467, 3268, 3286, 3060, 3059, 3100, 4002, 1777, 3780, 885, 835, 836, 977, 1774, 1413, 1674, 553, 870, 3048, 3859, 837, 1775, 838, 3659, 1778, 3899, 1633, 1878, 3074, 1173, 1174, 1175, 1176, 1177, 1776, 1861, 839, 616, 840, 841, 3745, 3368, 3354, 4005, 3063, 2101, 1647, 842, 3372, 2840, 3085, 2047, 3282, 3434, 617, 815, 1236, 3533, 2705, 1450, 1848, 3539, 817, 1638, 0, 3257, 0, 3386, 0, 0, 0, 3998, 1240, 3351, 0, 0, 1782, 0, 0, 0, 1556, 0, 618, 0, 1784, 0, 1777, 3782, 0, 0, 0, 0, 0, -1607, 843, 619, 0, 553, 844, 1178, 0, 845, 0, 1778, 0, 0, 0, 0, 756, 617, 0, 0, 0, 0, 0, 0, 0, 620, 0, 621, 0, 0, 1179, 1180, 1181, 1182, 846, 0, 847, 622, 0, 0, 0, 848, 0, 849, 553, 618, 0, 0, 0, 0, 0, 0, 3834, 1790, 0, 0, 0, 623, 619, 0, 0, 0, 0, 1782, 3442, 850, 851, 0, 0, 0, 852, 1784, 0, 0, 0, 0, 3216, 3216, 0, 0, 620, 624, 621, 0, 0, 0, 853, 0, 625, 0, 0, 0, 622, 0, 3464, 0, 3834, 3720, 0, 0, 0, 0, 0, 0, 0, 1791, 0, 854, 0, 0, 0, 0, 623, 0, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 626, 1183, 978, 1184, 1185, 1186, 0, 1790, 0, 855, 0, 624, 1187, 1793, 0, 0, 0, 0, 625, 0, 1794, 0, 3515, 543, 0, 0, 0, 3978, 0, 0, 0, 1795, 0, 0, 3216, 0, 0, 0, 0, 0, 0, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 857, 0, 0, 0, 626, 0, 0, 0, 1791, 3548, 3550, 3516, 0, 1044, 0, 0, 784, 0, 3978, 858, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 3517, 2323, 0, 0, 1188, 0, 0, 0, 0, 0, 0, 0, 1793, 859, 1075, 0, 0, 0, 0, 1794, 0, 0, 0, 0, 860, 861, 0, 0, 0, 0, 1795, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 627, 0, 0, 0, 3604, 0, 0, 0, 0, 3611, 3834, 1189, 1190, 0, 0, 0, 0, 628, 0, 0, 0, 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, 630, 0, 1137, 0, 0, 0, 0, 0, 0, 3386, 0, 0, 0, 862, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 627, 863, 784, 0, 0, 0, 1551, 0, 0, 543, 0, 0, 632, 633, 0, 0, 0, 628, 0, 0, 0, 0, 0, 629, -2087, 0, 0, 0, 864, 0, 0, 630, 0, 0, 0, 0, 3442, 0, 3442, 0, 3668, 0, 0, 865, 0, 0, 0, 0, 3643, 0, 0, 0, 634, 0, 631, 0, 3681, 0, 0, 784, 0, 0, 0, 0, 784, 0, 0, 632, 633, 0, 0, 0, 0, 3691, 0, 0, 0, 0, 635, 0, 0, 1191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1192, 1193, 784, 0, 0, 0, 0, -2087, 636, 0, 637, 0, 0, 866, 0, 634, 0, 0, 784, 0, 0, 0, 3548, 0, 0, 0, 0, 3738, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 635, 0, 0, 0, 0, 0, 0, 2376, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 784, 784, 784, 636, 0, 637, 0, 0, 0, 0, 1364, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1551, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2273, 2273, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3914, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1459, 1460, 0, 0, 0, 3845, 0, 0, 3851, 1470, 1471, 2341, 0, 1474, 1475, 1476, 0, 0, 0, 0, 1481, 0, 0, 1483, 1484, 0, 1485, 0, 1486, 0, 0, 0, 0, 0, 0, 1500, 1501, 1502, 0, 1503, 0, 0, 0, 0, 0, 0, 1511, 1512, 0, 1515, 1516, 0, 0, 0, 0, 1520, 0, 1521, 1522, 1523, 3993, 0, 1526, 1527, 1528, 1529, 1530, 1531, 0, 0, 1534, 1535, 0, 1538, 784, 1539, 0, 553, 0, 1542, 3999, 1546, 1547, 0, 0, 0, 0, 0, 0, 3925, 0, 0, 3928, 1554, 1555, 0, 0, 0, 0, 1137, 0, 0, 1561, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 553, 0, 0, 0, 0, 0, 0, 0, 3904, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3979, 0, 0, 0, 0, 0, 0, 0, 3941, 3942, 0, 1551, 0, 553, 0, 0, 0, 0, 0, 0, 0, 784, 784, 0, 0, 0, 0, 0, 0, 0, 784, 784, 0, 553, 784, 784, 784, 1551, 0, 0, 0, 784, 3979, 0, 784, 784, 0, 784, 1551, 784, 0, 0, 0, 0, 0, 1646, 784, 784, 784, 0, 784, 0, 0, 1661, 0, 0, 0, 784, 784, 0, 784, 784, 0, 0, 0, 0, 784, 0, 784, 784, 784, 0, 784, 784, 784, 784, 784, 784, 784, 0, 0, 784, 784, 0, 784, 0, 784, 0, 0, 0, 784, 0, 784, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 784, 0, 0, 0, 0, 784, 0, 0, 784, 0, 0, 784, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 784, 784, 0, 784, 784, 0, 784, 0, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 784, 0, 0, 1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 4, 0, 0, 0, 5, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 0, 0, 8, 0, 0, 0, 9, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1866, 0, 12, 784, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 17, 18, 0, 0, 0, 0, 1912, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1985, 1987, 1989, 0, 0, 25, 0, 26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2907, 2908, 0, 27, 0, 0, 2909, 0, 2910, 2911, 2912, 0, 0, 0, 0, 0, 0, 0, 0, 2022, 28, 0, 0, 0, 29, 2913, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 2033, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2064, 0, 0, 2914, 0, 0, 2915, 0, 0, 0, 0, 0, 0, 0, 2916, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 2917, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2918, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 2919, 0, 2920, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 2921, 2922, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 784, 784, 0, 0, 0, 0, 0, 0, 34, 0, 0, 35, 0, 36, 0, 0, 37, 0, 0, 38, 0, 39, 0, 0, 0, 2923, 40, 0, 41, 0, 0, 0, 0, 0, 0, 42, 784, 0, 0, 784, 43, 784, 0, 784, 784, 0, 0, 0, 44, 0, 0, 2924, 0, 45, 0, 0, 0, 46, 784, 0, 2925, 2926, 0, 2927, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 47, 0, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0, 2928, 2929, 2930, 0, 0, 0, 0, 0, 2274, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2931, 2932, 2933, 0, 0, 0, 2934, 0, 0, 2935, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 50, 2936, 2937, 0, 51, 0, 0, 52, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2938, 2939, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2357, 55, 0, 0, 2359, 2940, 0, 0, 0, 2361, 2362, 0, 0, 0, 0, 0, 0, 0, 2377, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 813, 616, 2385, 0, 2386, 0, 0, 2388, 2389, 2390, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2395, 0, 2941, 0, 0, 0, 2942, 0, 2396, 0, 2397, 0, 2398, 2399, 2400, 0, 2943, 0, 0, 2403, 2404, 2405, 0, 0, 0, 0, 2407, 2408, 2409, 0, 2410, 0, 2412, 0, 2414, 0, 2416, 0, 2417, 0, 0, 0, 784, 2418, 0, 0, 0, 0, 0, 0, 0, 0, 0, 617, 2426, 0, 0, 0, 0, 0, 0, 0, 2944, 0, 0, 2945, 0, 0, 2946, 2947, 2948, 2949, 0, 0, 2436, 0, 0, 0, 0, 0, 0, 618, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 619, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2950, 2951, 0, 0, 0, 620, 0, 621, 0, 0, 0, 0, 0, 0, 0, 784, 0, 622, 0, 784, 0, 2952, 0, 0, 784, 784, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 623, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 784, 0, 0, 784, 784, 784, 0, 0, 784, 0, 0, 0, 624, 0, 0, 0, 784, 0, 0, 625, 0, 0, 0, 0, 784, 0, 784, 0, 784, 784, 784, 0, 0, 0, 0, 784, 784, 784, 0, 0, 0, 0, 784, 784, 784, 0, 784, 0, 784, 0, 784, 0, 784, 0, 784, 0, 626, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 784, 1756, 1757, 784, 0, 0, 1, 2, 0, 784, 0, 0, 784, 0, 0, 0, 784, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, 5, 0, 0, 0, 0, 0, 0, 1759, 0, 0, 0, 0, 0, 6, 7, 0, 0, 0, 1762, 0, 8, 0, 0, 0, 9, 10, 1763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 11, 0, 0, 0, 0, 0, 0, 1765, 0, 0, 0, 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, 1328, 0, 0, 1766, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 627, 0, 0, 14, 15, 16, 0, 0, 0, 0, 0, 0, 0, 1771, 0, 17, 18, 628, 0, 0, 0, 0, 0, 629, 0, 0, 0, 0, 0, 0, 0, 630, 0, 0, 0, 0, 0, 0, 0, 0, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 631, 21, 0, 0, 0, 0, 0, 2712, 0, 0, 0, 2715, 0, 632, 633, 2717, 22, 0, 0, 0, 0, 23, 0, 1774, 24, 0, 0, 0, 0, 0, 0, 1775, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1776, 0, 0, 25, 0, 26, 0, 0, 0, 634, 0, 0, 0, 2753, 2635, 0, 0, 0, 0, 27, 0, 1754, 2763, 0, 2765, 0, 2767, 0, 0, 0, 0, 0, 0, 1756, 1757, 635, 28, 0, 0, 0, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2780, 1777, 0, 0, 0, 0, 636, 0, 637, 0, 0, 1758, 0, 0, 0, 1759, 0, 0, 1778, 0, 0, 0, 0, 0, 0, 0, 1762, 0, 0, 0, 0, 0, 0, 0, 1763, 0, 0, 0, 0, 0, 1764, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1765, 0, 0, 0, 0, 0, 0, 2830, 0, 0, 0, 2834, 0, 0, 1328, 0, 0, 1766, 1782, 0, 0, 0, 0, 30, 1767, 0, 1784, 0, 0, 0, 0, 2636, 0, 0, 0, 0, 784, 0, 0, 1770, 784, 0, 31, 0, 784, 1771, 0, 0, 0, 0, 0, 0, 32, 2863, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1772, 0, 0, 0, 0, 0, 0, 0, 2875, 34, 0, 0, 35, 0, 36, 784, 1790, 37, 0, 0, 38, 0, 39, 0, 784, 0, 784, 40, 784, 41, 0, 0, 0, 0, 0, 0, 42, 0, 1774, 0, 0, 43, 0, 0, 0, 0, 1775, 0, 784, 44, 0, 0, 0, 784, 45, 0, 0, 0, 46, 1776, 0, 0, 0, 0, 0, 784, 0, 0, 1791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47, 1792, 0, 0, 48, 0, 0, 0, 0, 0, 2963, 2964, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1793, 0, 0, 0, 0, 0, 0, 1794, 0, 0, 1777, 784, 0, 0, 0, 784, 0, 0, 1795, 0, 0, 0, 49, 0, 0, 0, 0, 1778, 0, 0, 0, 1779, 0, 0, 50, 0, 0, 0, 51, 0, 0, 52, 0, 0, 0, 0, 53, 0, 0, 0, 0, 0, 0, 0, 3010, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 54, 1781, 0, 0, 0, 3024, 3025, 0, 1782, 0, 0, 0, 784, 0, 55, 3031, 1784, 0, 0, 0, 3033, 0, 0, 3034, 0, 3035, 3036, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1787, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1790, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3086, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1791, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1792, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 784, 0, 0, 1793, 0, 0, 0, 0, 0, 0, 1794, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1795, 784, 784, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 784, 0, 0, 784, 0, 784, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3295, 3296, 0, 0, 0, 0, 0, 0, 0, 2863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3412, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2863, 784, 784, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 2830, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 3557, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3569, 0, 3571, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3599, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 0, 0, 0, 2863, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3685, 0, 3686, 784, 0, 0, 0, 0, 0, 0, 0, 0, 3694, 784, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 3506, 3506, 0, 3747, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3762, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3768, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3800, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 3506, 3506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3855, 3727, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3884, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 3506, 0, 0, 0, 0, 0, 0, 3918, 0, 0, 0, 0, 0, 3506, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 3506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 0, 0, 0, 0, 0, 3980, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 3506, 0, 3506, 0, 0, 0, 0, 0, 0, 0, 3506, 3506, 0, 0, 0, 784, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3506, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3506, 3506, 0, 0, 0, 784, 0, 0, 0, 0, 0, 136, 0, 653, 138, 139, 140, 141, 0, 0, 3506, 3506, 0, 142, 0, 3506, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 1543, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 1544, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 1545, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 2826, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 2827, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 2828, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 2829, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 1135, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 1136, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 1480, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 1984, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 1986, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 1988, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 1575, 0, 0, 0, 0, 1576, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 0, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 2356, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 2402, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 3004, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 707, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 280, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 0, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 653, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 654, 0, 144, 145, 146, 147, 148, 655, 150, 0, 151, 0, 0, 656, 152, 657, 658, 659, 153, 660, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 661, 662, 160, 0, 161, 663, 664, 163, 0, 164, 165, 166, 665, 168, 0, 666, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 667, 0, 181, 668, 669, 0, 0, 182, 670, 671, 0, 672, 673, 0, 183, 184, 185, 674, 675, 676, 0, 0, 0, 0, 677, 188, 678, 0, 0, 679, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 680, 0, 212, 213, 214, 681, 682, 215, 0, 216, 217, 218, 683, 0, 219, 0, 0, 0, 220, 221, 0, 222, 0, 223, 0, 684, 225, 685, 227, 0, 228, 0, 686, 0, 229, 230, 0, 231, 687, 0, 232, 233, 0, 0, 0, 688, 235, 236, 237, 689, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 690, 242, 243, 691, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 692, 251, 252, 0, 0, 0, 0, 0, 693, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 694, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 695, 274, 275, 276, 277, 696, 278, 279, 3902, 0, 0, 0, 281, 282, 283, 697, 285, 0, 0, 698, 287, 699, 288, 0, 289, 700, 701, 702, 703, 704, 294, 295, 296, 297, 0, 705, 298, 299, 0, 0, 300, 301, 302, 303, 706, 0, 708, 304, 305, 0, 709, 710, 0, 306, 307, 711, 0, 309, 310, 311, 0, 312, 0, 0, 0, 0, 0, 0, 0, 0, 0, 313, 314, 315, 712, 316, 317, 318, 319, 320, 713, 322, 323, 324, 714, 715, 327, 716, 0, 328, 329, 330, 0, 331, 0, 332, 333, 0, 717, 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, 718, 719, 351, 0, 352, 353, 354, 0, 355, 356, 0, 0, 720, 357, 358, 359, 360, 361, 721, 363, 364, 365, 0, 722, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 723, 724, 388, 389, 0, 390, 725, 392, 393, 394, 726, 727, 395, 396, 728, 397, 398, 0, 0, 399, 400, 0, 729, 401, 402, 0, 730, 731, 732, 733, 0, 0, 0, 0, 0, 407, 408, 409, 0, 734, 735, 736, 411, 412, 413, 737, 414, 415, 738, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 739, 424, 0, 0, 740, 741, 742, 743, 425, 0, 0, 426, 744, 0, 745, 427, 428, 429, 746, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 747, 0, 0, 0, 748, 749, 0, 0, 0, 0, 750, 751, 0, 0, 752, 753, 0, 754, 755, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 2194, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 216, 217, 218, 0, 0, 219, 0, 0, 0, 220, 221, 0, 222, 2195, 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, 1358, 0, 240, 0, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 1359, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 2692, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 2693, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, -401, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 2197, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 2259, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 2194, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 216, 217, 218, 0, 0, 219, 0, 0, 0, 220, 221, 0, 222, 2195, 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, 1358, 0, 240, 0, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 1359, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 2197, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 2259, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 2077, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 2468, 0, 142, 0, 0, 143, 755, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 0, 0, 136, 0, 137, 138, 139, 140, 141, 0, 3985, 0, 0, 0, 142, 3986, 755, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 1229, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 479, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 0, 0, 0, 136, 1884, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 479, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 2258, 0, 0, 142, 0, 0, 143, 2259, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 0, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 3986, 755, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 479, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 539, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 540, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 479, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 755, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 0, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 2259, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 1562, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 2506, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 0, 435, 136, 0, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 3071, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 0, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 3995, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 1863, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 2494, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 2707, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 3076, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 2168, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 216, 217, 218, 2169, 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, 2170, 0, 232, 233, 0, 0, 0, 234, 235, 236, 237, 0, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 2171, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 946, 947, 0, 304, 305, 0, 0, 2172, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 3972, 3956, 3973, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 2173, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 2374, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 2500, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 1869, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 1870, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 2508, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 2509, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 2374, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 2500, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 906, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 1267, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 886, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 887, 0, 232, 233, 0, 0, 0, 234, 235, 236, 237, 0, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 888, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 2374, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 2546, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 551, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 2490, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 3847, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 3848, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 216, 217, 218, 0, 0, 219, 0, 0, 0, 220, 221, 972, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 1354, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 2102, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 2103, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 2269, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 2586, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 133, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 2102, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 143, 0, 144, 145, 146, 147, 148, 149, 150, 0, 151, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 157, 158, 0, 0, 159, 0, 0, 160, 0, 161, 162, 0, 163, 0, 164, 165, 166, 167, 168, 0, 169, 170, 0, 171, 172, 173, 174, 175, 176, 177, 0, 178, 179, 0, 180, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 188, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 196, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 201, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 211, 0, 0, 212, 213, 214, 0, 0, 215, 0, 216, 1452, 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, 241, 0, 0, 0, 242, 243, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 248, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 1453, 302, 303, 0, 0, 0, 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, 0, 0, 357, 358, 359, 360, 361, 362, 363, 364, 365, 0, 366, 367, 0, 0, 0, 368, 369, 370, 371, 0, 0, 0, 372, 0, 0, 0, 373, 374, 375, 376, 0, 377, 378, 379, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 386, 387, 0, 0, 388, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 410, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 418, 419, 0, 0, 420, 0, 0, 421, 0, 422, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 432, 0, 433, 434, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, -260, -260, 200, 0, -260, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, -281, 0, 200, 0, -281, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, -281, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, -278, 0, 200, 0, -278, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, -278, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 3764, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, -283, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 3852, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 3933, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, -264, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 0, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, -245, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 3482, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 3483, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 0, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 3484, 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, 3485, 0, 238, 239, 0, 0, 240, 0, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 3486, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 3487, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, -245, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 0, 305, 0, 0, 0, 0, 306, 307, 308, 0, 309, 310, 3488, 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, 3489, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 3767, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, -245, 0, 431, 0, 0, 433, 0, 0, 136, 435, 137, 138, 139, 140, 141, 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, 144, 145, 146, 147, 148, 149, 0, 0, 0, 0, 0, 0, 152, 0, 0, 0, 153, 0, 0, 154, 155, 0, 156, 0, 0, 0, 0, 0, 159, 0, 0, 160, 0, 161, 0, 0, 0, 0, 164, 165, 0, 167, 168, 0, 169, 170, 0, 0, 172, 0, 174, 175, 176, 177, 0, 178, 179, 0, 0, 0, 181, 0, 0, 0, 0, 182, 0, 0, 0, 0, 0, 0, 183, 184, 185, 0, 0, 186, 0, 0, 0, 0, 187, 0, 0, 0, 0, 0, 189, 0, 190, 0, 0, 0, 191, 0, 192, 193, 194, 195, 0, 0, 0, 0, 0, 0, 197, 198, 199, 0, 0, 0, 200, 0, 0, 202, 0, 203, 204, 205, 0, 0, 206, 0, 207, 208, 209, 210, 0, 0, 0, 212, 213, 214, 0, 0, 215, 0, 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, 241, 0, 0, 0, 242, 0, 0, 0, 0, 244, 0, 0, 245, 246, 0, 0, 0, 247, 0, 0, 0, 249, 0, 0, 250, 0, 0, 251, 252, 0, 0, 0, 0, 0, 253, 254, 0, 255, 0, 256, 0, 257, 258, 0, 0, 0, 0, 0, 0, 0, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 0, 272, 273, 0, 274, 275, 276, 277, 0, 278, 279, 280, 0, 0, 0, 281, 282, 283, 284, 285, 0, 0, 286, 287, 0, 288, 0, 289, 0, 290, 291, 292, 293, 294, 295, 296, 297, 0, 0, 298, 299, 0, 0, 300, 301, 302, 303, 0, 0, 0, 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, 0, 0, 0, 358, 359, 360, 361, 362, 363, 0, 365, 0, 366, 0, 0, 0, 0, 368, 369, 370, 0, 0, 0, 0, 372, 0, 0, 0, 373, 0, 375, 0, 0, 377, 0, 0, 380, 0, 0, 0, 0, 0, 0, 381, 382, 0, 383, 0, 0, 384, 0, 0, 385, 0, 387, 0, 0, 0, 389, 0, 390, 391, 392, 393, 394, 0, 0, 395, 396, 0, 397, 398, 0, 0, 399, 400, 0, 0, 401, 402, 0, 403, 404, 405, 406, 0, 0, 0, 0, 0, 407, 408, 409, 0, 0, 0, 0, 411, 412, 413, 0, 414, 415, 0, 416, 417, 0, 0, 0, 0, 0, 420, 0, 0, 421, 0, 0, 0, 423, 424, 0, 0, 0, 0, 0, 0, 425, 0, 0, 426, 0, 0, 0, 427, 428, 429, 430, 0, 0, 0, 0, 431, 0, 0, 433, 0, 0, 0, 435 }; static const short int yycheck[] = { 7, 778, 577, 513, 513, 534, 121, 960, 961, 21, 963, 608, 901, 20, 818, 1098, 23, 1617, 30, 671, 672, 676, 1556, 117, 36, 32, 120, 1208, 547, 1127, 573, 574, 1270, 934, 1127, 42, 1351, 656, 2225, 866, 2148, 2112, 2081, 988, 707, 844, 53, 1432, 1068, 1902, 2105, 2106, 2107, 1918, 5, 23, 708, 1751, 1923, 1146, 842, 1323, 2780, 2523, 2251, 2475, 1153, 866, 611, 2787, 2893, 1154, 2335, 1751, 1157, 730, 728, 1859, 733, 1753, 1067, 1346, 2323, 905, 2325, 867, 93, 905, 740, 741, 742, 610, 2129, 2136, 1754, 1697, 2116, 2117, 1758, 2859, 2137, 1066, 2139, 1142, 2220, 2313, 520, 16, 115, 1769, 117, 1164, 1165, 120, 121, 122, 1081, 16, 1284, 1779, 2865, 1048, 1049, 1289, 1749, 93, 1751, 24, 135, 748, 749, 750, 590, 1299, 1300, 2206, 18, 2313, 2655, 18, 33, 16, 1069, 2201, 1329, 16, 1720, 1721, 29, 768, 1077, 2365, 56, 57, 30, 2369, 1862, 1742, 20, 2230, 2231, 1088, 1089, 1090, 24, 49, 1864, 135, 127, 18, 1097, 33, 57, 1711, 3109, 3493, 1644, 60, 20, 18, 144, 168, 1756, 1757, 46, 1759, 113, 762, 1762, 1763, 10, 2197, 1766, 24, 56, 57, 3012, 1771, 35, 3015, 125, 1775, 1776, 1777, 1778, 2926, 2927, 113, 1782, 2930, 1784, 1616, 60, 20, 56, 57, 1790, 55, 1843, 1793, 1794, 1795, 3117, 49, 2468, 2673, 33, 868, 2949, 138, 62, 65, 238, 61, 2955, 171, 1821, 109, 1419, 46, 93, 1826, 59, 2096, 2327, 2194, 109, 1832, 1833, 56, 57, 1836, 2201, 109, 906, 2204, 138, 11, 70, 2208, 142, 33, 2579, 142, 3, 35, 138, 2159, 2188, 812, 9, 10, 352, 2222, 2223, 138, 106, 123, 407, 59, 140, 800, 138, 2232, 211, 57, 423, 1064, 354, 3106, 29, 64, 171, 142, 40, 111, 35, 3057, 651, 1614, 39, 423, 138, 142, 75, 171, 20, 383, 65, 206, 168, 22, 146, 2181, 272, 2462, 154, 12, 12, 33, 158, 423, 8, 486, 96, 138, 41, 99, 148, 239, 168, 154, 46, 163, 449, 107, 1113, 440, 221, 2121, 1117, 462, 56, 57, 132, 466, 206, 138, 218, 463, 167, 132, 189, 132, 507, 8, 110, 64, 31, 189, 204, 2771, 2301, 530, 321, 235, 2559, 2560, 483, 171, 197, 171, 199, 221, 190, 206, 29, 530, 486, 255, 2135, 278, 226, 204, 92, 928, 2092, 167, 985, 128, 248, 805, 1041, 1042, 1043, 2542, 499, 2348, 2349, 2350, 171, 305, 569, 239, 1053, 154, 96, 256, 218, 99, 201, 574, 534, 535, 154, 373, 138, 132, 278, 189, 486, 3142, 1311, 253, 538, 3241, 239, 122, 122, 339, 3151, 568, 586, 1082, 391, 572, 1085, 513, 149, 568, 256, 95, 449, 218, 451, 73, 568, 278, 286, 315, 354, 994, 2507, 299, 69, 3272, 1105, 1106, 218, 466, 1109, 67, 322, 470, 423, 2673, 568, 561, 44, 317, 3215, 3231, 479, 2666, 2667, 161, 483, 1422, 485, 1128, 1129, 166, 440, 2538, 491, 256, 2594, 2530, 568, 24, 497, 322, 607, 1275, 2188, 325, 1278, 2673, 24, 59, 1583, 959, 1585, 126, 1286, 1588, 340, 1329, 602, 603, 2188, 1329, 606, 520, 521, 609, 201, 239, 2576, 1301, 1302, 405, 398, 491, 1323, 1691, 2477, 2478, 2479, 378, 455, 538, 885, 1798, 69, 2983, 374, 1156, 310, 2597, 547, 547, 549, 69, 142, 218, 378, 77, 368, 366, 204, 374, 1171, 560, 561, 2337, 2181, 2142, 565, 2803, 3455, 3306, 2879, 2188, 571, 238, 573, 574, 2574, 282, 1557, 578, 579, 1593, 1149, 1595, 583, 1399, 1197, 405, 544, 1399, 569, 340, 2158, 592, 366, 341, 471, 596, 2128, 206, 560, 1580, 601, 602, 603, 524, 605, 606, 607, 3061, 609, 610, 611, 2179, 2180, 467, 399, 568, 186, 459, 440, 572, 140, 2698, 497, 339, 524, 2313, 155, 1035, 2207, 471, 2209, 374, 497, 2576, 2334, 155, 2098, 2216, 1559, 569, 374, 2313, 467, 457, 2336, 646, 549, 2215, 3960, 2563, 2229, 318, 319, 3582, 2597, 486, 2235, 530, 537, 2227, 516, 1296, 1841, 2062, 497, 92, 559, 3477, 587, 3479, 2556, 2250, 438, 576, 1211, 140, 574, 206, 548, 570, 516, 568, 2301, 3194, 540, 509, 206, 3426, 502, 543, 559, 1228, 570, 12, 2313, 542, 463, 570, 3515, 2561, 576, 69, 2910, 3520, 510, 2481, 2482, 316, 519, 552, 576, 553, 568, 322, 454, 516, 570, 547, 543, 576, 387, 148, 486, 563, 564, 565, 576, 493, 542, 2297, 2298, 2299, 2300, 473, 843, 2668, 2944, 2945, 570, 87, 547, 206, 475, 3554, 2952, 519, 576, 174, 2797, 278, 138, 2959, 753, 570, 755, 559, 522, 357, 278, 499, 493, 3476, 463, 3478, 546, 11, 1279, 2800, 501, 576, 370, 546, 140, 546, 570, 384, 570, 479, 445, 927, 482, 2983, 2531, 2532, 174, 528, 2835, 316, 789, 522, 2900, 576, 3531, 322, 528, 2982, 316, 419, 799, 800, 801, 570, 322, 122, 805, 559, 490, 1259, 516, 493, 1749, 812, 2849, 2983, 431, 30, 2853, 166, 2849, 1462, 968, 1229, 2853, 49, 2876, 527, 333, 789, 536, 537, 1333, 547, 386, 53, 482, 135, 570, 69, 206, 801, 432, 353, 843, 41, 3101, 145, 92, 417, 793, 373, 529, 239, 201, 106, 192, 272, 71, 322, 467, 575, 576, 568, 2807, 95, 110, 3625, 1509, 328, 33, 1946, 1513, 190, 25, 128, 1769, 2563, 3591, 209, 3593, 479, 142, 393, 1929, 1930, 2116, 2117, 218, 455, 92, 31, 274, 2563, 559, 1536, 104, 1716, 322, 256, 308, 225, 901, 501, 1439, 223, 1843, 514, 168, 288, 140, 550, 163, 1687, 65, 3652, 1690, 1428, 69, 1693, 1694, 110, 330, 136, 357, 1716, 329, 2701, 2522, 928, 174, 401, 931, 932, 3644, 2876, 543, 110, 189, 24, 467, 418, 2021, 368, 2561, 19, 2563, 1353, 330, 467, 316, 354, 106, 339, 239, 109, 322, 201, 109, 157, 518, 2992, 170, 3778, 2122, 201, 2811, 2140, 171, 2635, 482, 970, 932, 972, 204, 6, 1587, 3729, 3211, 172, 368, 2012, 460, 336, 2636, 984, 2998, 2673, 196, 191, 1947, 2081, 206, 568, 378, 994, 2081, 2254, 106, 2591, 575, 35, 253, 2673, 467, 249, 1925, 485, 250, 163, 970, 569, 972, 397, 344, 218, 543, 59, 384, 3274, 1939, 378, 588, 54, 984, 543, 68, 1841, 217, 497, 109, 1841, 1031, 1140, 1033, 189, 1035, 79, 3085, 337, 114, 2020, 426, 55, 217, 3486, 3487, 277, 2138, 2028, 1969, 2668, 570, 2138, 339, 163, 2673, 482, 3093, 3094, 570, 121, 304, 106, 294, 99, 412, 1066, 223, 3521, 575, 107, 106, 2665, 325, 226, 3891, 502, 218, 234, 543, 189, 1081, 486, 2858, 293, 316, 3371, 406, 1196, 343, 2036, 300, 1036, 482, 126, 106, 321, 238, 253, 570, 467, 570, 321, 2049, 484, 2672, 570, 322, 272, 1217, 570, 308, 3113, 92, 1626, 1627, 542, 2037, 543, 163, 206, 530, 157, 368, 167, 324, 463, 1127, 163, 92, 173, 511, 2387, 451, 452, 453, 454, 455, 456, 3898, 1140, 154, 345, 2234, 253, 158, 86, 514, 2234, 363, 468, 354, 163, 1655, 189, 168, 350, 360, 3016, 1749, 547, 204, 399, 372, 106, 2339, 318, 319, 382, 148, 325, 432, 324, 1260, 1261, 1262, 543, 1264, 330, 216, 405, 529, 507, 226, 429, 568, 485, 174, 575, 576, 1277, 440, 278, 69, 552, 174, 1196, 411, 1285, 59, 1200, 3486, 3487, 570, 80, 530, 431, 3918, 68, 253, 173, 1211, 421, 201, 366, 106, 325, 1217, 253, 79, 463, 163, 309, 2601, 549, 204, 287, 1335, 1228, 1229, 357, 3634, 518, 179, 171, 480, 467, 482, 569, 1239, 443, 204, 253, 2181, 324, 439, 387, 1247, 462, 480, 0, 423, 467, 1843, 410, 138, 111, 509, 3288, 3712, 1260, 1261, 1262, 1263, 1264, 1265, 76, 207, 256, 253, 249, 161, 163, 286, 309, 427, 1276, 1277, 215, 1279, 90, 325, 363, 223, 309, 1285, 249, 319, 12, 324, 325, 579, 86, 1293, 234, 157, 2983, 423, 189, 245, 3452, 2195, 1263, 2197, 1265, 504, 197, 167, 3309, 3310, 1254, 253, 2983, 173, 325, 309, 86, 605, 1405, 1406, 1407, 520, 3616, 366, 527, 1433, 3779, 3769, 543, 50, 3615, 3616, 1293, 423, 309, 1335, 545, 451, 59, 229, 449, 325, 12, 380, 204, 377, 69, 379, 557, 1349, 182, 423, 228, 1353, 509, 2435, 470, 80, 3390, 2015, 179, 374, 253, 2301, 348, 2983, 226, 519, 308, 2382, 2383, 142, 2463, 209, 319, 2313, 2452, 2463, 142, 12, 3238, 368, 218, 325, 363, 331, 374, 12, 1349, 368, 330, 223, 86, 245, 117, 68, 568, 1341, 122, 486, 509, 256, 339, 446, 1404, 1405, 1406, 1407, 1352, 86, 3115, 3696, 2024, 207, 423, 1447, 1416, 1449, 1418, 364, 182, 297, 68, 423, 3709, 512, 245, 3579, 1428, 223, 423, 321, 469, 1433, 325, 186, 3721, 207, 431, 1439, 234, 1441, 568, 916, 917, 321, 1446, 1447, 482, 1449, 429, 486, 122, 223, 3159, 490, 318, 319, 493, 260, 261, 486, 324, 3757, 234, 509, 429, 390, 148, 504, 410, 323, 3757, 110, 509, 226, 519, 512, 568, 171, 953, 568, 428, 446, 3769, 1446, 1447, 512, 1449, 122, 116, 3523, 486, 353, 167, 482, 568, 122, 509, 240, 376, 480, 243, 413, 483, 228, 366, 339, 344, 575, 2794, 486, 2432, 207, 308, 3108, 3801, 480, 512, 482, 483, 167, 3807, 502, 245, 509, 561, 562, 468, 223, 207, 204, 72, 463, 74, 458, 330, 512, 308, 119, 234, 534, 535, 568, 530, 186, 223, 239, 527, 438, 497, 549, 3846, 226, 134, 16, 519, 234, 204, 568, 330, 3846, 3856, 542, 527, 1565, 192, 509, 568, 109, 200, 3856, 570, 483, 297, 568, 506, 2885, 2862, 274, 226, 457, 3428, 182, 570, 226, 446, 388, 389, 482, 130, 2181, 3886, 568, 3642, 318, 319, 483, 321, 479, 3664, 3886, 482, 3888, 1636, 1637, 1638, 204, 568, 428, 1610, 3896, 3897, 1613, 308, 575, 410, 527, 509, 3570, 182, 3572, 162, 2561, 250, 1625, 1626, 1627, 1628, 1629, 200, 308, 542, 522, 375, 330, 1636, 1637, 1638, 3924, 410, 2916, 504, 215, 2919, 2920, 272, 333, 338, 1610, 3935, 341, 1613, 376, 1654, 3949, 3950, 45, 520, 519, 180, 2936, 171, 1663, 3949, 3950, 2581, 1628, 1629, 558, 515, 516, 549, 518, 468, 1636, 1637, 1638, 2475, 1623, 2574, 3782, 3136, 3137, 3969, 3970, 318, 319, 537, 3974, 1634, 540, 1692, 366, 2514, 3149, 142, 2612, 468, 256, 1020, 3155, 2715, 1023, 1704, 2620, 1026, 353, 2623, 575, 1710, 2301, 2214, 2804, 1658, 161, 410, 335, 2804, 569, 366, 457, 2514, 2313, 3178, 434, 435, 3181, 568, 175, 2668, 1692, 167, 410, 457, 2673, 1844, 3917, 184, 6, 2753, 367, 2636, 399, 3696, 11, 2521, 373, 151, 1710, 56, 57, 561, 562, 330, 275, 276, 3709, 530, 65, 280, 281, 569, 570, 1872, 1852, 2857, 2998, 336, 3721, 467, 2857, 569, 570, 468, 527, 528, 403, 530, 1723, 532, 569, 570, 229, 230, 367, 142, 143, 1732, 1733, 413, 468, 1792, 330, 1738, 1739, 1740, 1741, 555, 1743, 1744, 15, 16, 570, 2895, 479, 1806, 347, 3116, 2895, 1918, 257, 464, 465, 440, 1923, 468, 469, 1818, 175, 472, 201, 474, 3401, 3402, 3403, 3404, 560, 184, 568, 1166, 1167, 1168, 1169, 1170, 2781, 568, 463, 569, 570, 569, 570, 569, 570, 1844, 385, 56, 57, 444, 3801, 569, 570, 1852, 479, 568, 3807, 482, 1857, 2778, 566, 1860, 569, 570, 219, 569, 570, 569, 570, 568, 315, 569, 570, 1872, 486, 230, 47, 569, 570, 1822, 1823, 568, 1825, 171, 1827, 1828, 1829, 1830, 1831, 569, 570, 1834, 1835, 575, 569, 570, 250, 1857, 25, 26, 2007, 568, 257, 569, 570, 569, 570, 569, 570, 569, 570, 569, 570, 569, 570, 3088, 569, 570, 568, 1918, 365, 569, 570, 47, 1923, 569, 570, 569, 570, 56, 57, 58, 569, 570, 568, 1934, 330, 3888, 65, 569, 570, 568, 69, 569, 570, 3896, 3897, 568, 1947, 2460, 77, 570, 2964, 569, 570, 569, 570, 312, 568, 3525, 568, 612, 569, 570, 569, 570, 3056, 568, 95, 569, 570, 3056, 2561, 3924, 568, 2771, 132, 133, 569, 570, 569, 570, 109, 3509, 3935, 112, 1162, 1163, 568, 1164, 1165, 1114, 1115, 2504, 3872, 3873, 3315, 3316, 568, 2106, 568, 2108, 2109, 568, 2813, 2814, 2709, 2710, 2007, 3002, 3003, 568, 418, 140, 568, 3322, 568, 568, 3969, 3970, 568, 568, 568, 3974, 568, 568, 568, 568, 568, 518, 568, 568, 147, 568, 568, 568, 568, 568, 568, 2038, 2147, 2148, 2987, 568, 568, 568, 2983, 568, 568, 431, 568, 568, 568, 3645, 568, 568, 568, 568, 3635, 568, 506, 568, 568, 568, 2063, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 204, 568, 2668, 568, 568, 2081, 568, 2673, 212, 563, 568, 239, 168, 463, 463, 463, 272, 479, 250, 139, 78, 225, 2634, 2099, 2100, 570, 332, 569, 109, 6, 2106, 477, 2108, 2109, 574, 258, 259, 260, 261, 262, 263, 2225, 265, 266, 267, 268, 269, 270, 271, 568, 273, 94, 4, 422, 542, 53, 391, 151, 95, 198, 570, 570, 2138, 575, 3022, 570, 140, 2251, 570, 47, 574, 2147, 2148, 277, 549, 570, 479, 568, 65, 2099, 12, 546, 569, 569, 486, 9, 122, 569, 569, 238, 294, 575, 568, 562, 272, 245, 272, 570, 352, 497, 570, 497, 570, 497, 570, 218, 563, 570, 168, 570, 523, 442, 570, 355, 330, 2196, 568, 570, 2194, 142, 142, 142, 569, 142, 2205, 2201, 142, 142, 2204, 142, 2211, 142, 2208, 142, 2210, 142, 142, 142, 142, 2827, 142, 142, 346, 142, 2220, 570, 2222, 2223, 525, 2225, 354, 551, 2233, 529, 45, 330, 2232, 2238, 2234, 171, 174, 570, 547, 2244, 2245, 388, 389, 2243, 378, 570, 569, 18, 569, 432, 569, 2251, 569, 569, 569, 569, 569, 3824, 2258, 2259, 3827, 3828, 3829, 3830, 563, 570, 569, 569, 2212, 2213, 180, 575, 570, 570, 569, 569, 171, 569, 569, 569, 568, 3874, 2243, 570, 569, 568, 570, 415, 570, 570, 569, 569, 569, 2237, 570, 569, 569, 569, 573, 570, 569, 569, 559, 3870, 3871, 3883, 569, 6, 569, 569, 568, 3878, 18, 569, 13, 14, 569, 568, 570, 569, 569, 569, 2322, 2323, 570, 570, 25, 26, 570, 570, 569, 569, 205, 570, 569, 569, 171, 570, 570, 467, 569, 568, 570, 569, 569, 2345, 569, 2347, 2348, 2349, 2350, 569, 480, 569, 575, 54, 568, 440, 569, 58, 59, 2322, 431, 570, 63, 570, 168, 45, 457, 457, 69, 457, 500, 457, 422, 457, 68, 353, 77, 507, 86, 353, 353, 497, 83, 118, 224, 480, 224, 480, 518, 118, 45, 2983, 353, 353, 95, 351, 353, 394, 353, 18, 249, 530, 575, 248, 570, 3301, 3302, 569, 109, 136, 575, 112, 575, 569, 497, 489, 497, 497, 119, 120, 214, 569, 569, 569, 171, 126, 171, 171, 569, 569, 138, 575, 575, 134, 142, 569, 575, 138, 569, 140, 570, 569, 486, 552, 570, 245, 2448, 3540, 473, 497, 336, 568, 171, 171, 171, 215, 3340, 171, 2460, 220, 168, 2463, 3346, 35, 575, 166, 3544, 86, 3416, 575, 549, 570, 223, 223, 182, 2477, 2478, 2479, 342, 187, 290, 95, 95, 226, 2594, 2448, 226, 497, 2490, 335, 568, 182, 486, 353, 2496, 568, 2498, 569, 575, 207, 570, 202, 2504, 204, 330, 568, 339, 215, 563, 3013, 563, 212, 568, 489, 330, 223, 216, 569, 216, 138, 569, 568, 201, 142, 225, 568, 234, 99, 569, 569, 575, 239, 569, 569, 106, 569, 569, 575, 570, 570, 248, 569, 569, 569, 2490, 569, 569, 166, 570, 168, 569, 569, 569, 569, 45, 570, 570, 569, 569, 171, 569, 569, 575, 182, 569, 569, 569, 2656, 187, 570, 569, 569, 524, 569, 2576, 570, 277, 570, 569, 2581, 218, 65, 201, 236, 260, 157, 223, 223, 207, 330, 570, 163, 2594, 294, 226, 2597, 215, 298, 226, 570, 308, 364, 570, 69, 223, 330, 330, 18, 419, 568, 2612, 45, 239, 129, 330, 234, 325, 189, 2620, 325, 239, 2623, 330, 569, 568, 232, 569, 425, 549, 248, 240, 339, 2634, 334, 568, 3728, 423, 182, 339, 142, 569, 2643, 433, 569, 2646, 346, 569, 569, 2650, 2595, 569, 569, 353, 354, 2656, 570, 342, 2603, 2660, 568, 368, 2663, 3312, 3313, 3314, 223, 568, 223, 569, 2671, 570, 109, 568, 109, 568, 568, 568, 362, 568, 3627, 381, 253, 73, 2646, 568, 568, 575, 440, 125, 308, 2692, 33, 393, 394, 395, 396, 569, 549, 569, 569, 569, 569, 410, 570, 296, 3352, 2816, 228, 3592, 373, 569, 330, 569, 569, 415, 569, 569, 215, 2664, 353, 339, 569, 2832, 431, 575, 569, 569, 569, 45, 2692, 187, 570, 296, 378, 570, 223, 568, 309, 486, 568, 486, 530, 530, 568, 3822, 325, 325, 568, 320, 368, 540, 325, 324, 325, 540, 568, 524, 109, 226, 226, 468, 324, 569, 325, 325, 325, 467, 570, 325, 444, 2772, 3655, 3656, 325, 3658, 18, 569, 226, 325, 480, 153, 486, 486, 568, 486, 296, 568, 3865, 568, 67, 2792, 410, 569, 569, 16, 215, 530, 530, 569, 500, 569, 320, 2804, 2805, 569, 2807, 507, 535, 570, 461, 518, 569, 431, 569, 2816, 569, 325, 518, 570, 336, 2822, 524, 530, 3901, 482, 241, 261, 3474, 168, 568, 2832, 569, 569, 569, 137, 3634, 546, 569, 2840, 547, 168, 549, 568, 349, 368, 568, 577, 569, 472, 468, 549, 45, 45, 135, 45, 2857, 142, 3741, 386, 3743, 3744, 569, 570, 5, 546, 171, 125, 407, 576, 534, 45, 3964, 569, 569, 2876, 576, 3964, 570, 45, 45, 45, 45, 2884, 215, 2886, 568, 136, 3835, 576, 59, 568, 336, 117, 2895, 25, 26, 59, 3990, 2900, 518, 569, 16, 2904, 573, 546, 136, 3016, 200, 4001, 108, 529, 530, 489, 4001, 486, 576, 255, 577, 490, 125, 131, 493, 336, 336, 568, 56, 57, 58, 547, 488, 549, 264, 504, 568, 65, 51, 569, 509, 69, 416, 512, 118, 118, 140, 569, 576, 77, 142, 136, 570, 569, 570, 489, 185, 570, 136, 576, 576, 569, 568, 51, 3071, 570, 168, 95, 168, 168, 398, 201, 569, 569, 473, 3920, 25, 26, 489, 109, 548, 109, 325, 568, 112, 535, 241, 431, 169, 3510, 1876, 1837, 561, 562, 2980, 2178, 2985, 2996, 3376, 3512, 3716, 3858, 913, 3386, 3519, 3379, 3995, 56, 57, 58, 3930, 3371, 140, 3371, 3371, 3371, 65, 3016, 3371, 3371, 69, 3371, 3371, 3371, 3951, 3371, 2969, 3798, 77, 3688, 3798, 3371, 3711, 1344, 951, 3522, 1346, 2236, 2789, 1422, 3648, 3544, 2792, 3733, 3421, 3044, 95, 3901, 3865, 3992, 3157, 3968, 3832, 1399, 459, 2993, 1798, 3056, 3625, 3305, 109, 2323, 2904, 112, 2261, 1806, 2199, 2884, 2927, 3338, 2927, 3121, 3071, 2960, 3166, 3157, 204, 2888, 2832, 3578, 3589, 3330, 3462, 1411, 212, 3528, 3392, 1855, 3346, 1805, 2886, 140, 2254, 1699, 1308, 2076, 3126, 225, 2448, 1628, 1395, 3044, 2042, 533, 932, 3423, 900, 3044, 2090, 2781, 238, 1159, 830, 1924, 3113, 1643, 1078, 2847, 3122, 23, 3445, 3304, 1161, 12, 13, 3752, 2663, 3753, 2029, 33, 34, 3238, 3298, 3873, 2895, 3920, 3277, 2095, 1229, 1053, 1035, 1903, 2080, 3056, 3087, 2799, 2798, 2857, 3990, 277, 3728, 523, 56, 57, 597, 204, 972, 1268, 3157, 513, 2783, 3821, 66, 212, 68, 3563, 294, 3859, 1234, 1438, 3277, 100, 101, 102, 103, 104, 225, 1416, 82, 13, 84, 85, 3662, 3182, 3159, 4001, 2804, 1649, 1247, 93, 3189, 2506, 2840, 1613, 3082, 3285, 85, 505, 813, 3399, 2345, 1028, 1404, 3405, 506, 1237, -1, 3040, -1, 3208, -1, -1, -1, 3982, 817, 3158, -1, -1, 346, -1, -1, -1, 1135, -1, 113, -1, 354, -1, 277, 3730, -1, -1, -1, -1, -1, 139, 140, 126, -1, 3238, 144, 170, -1, 147, -1, 294, -1, -1, -1, -1, 488, 85, -1, -1, -1, -1, -1, -1, -1, 148, -1, 150, -1, -1, 193, 194, 195, 196, 172, -1, 174, 160, -1, -1, -1, 179, -1, 181, 3277, 113, -1, -1, -1, -1, -1, -1, 3788, 415, -1, -1, -1, 180, 126, -1, -1, -1, -1, 346, 3297, 203, 204, -1, -1, -1, 208, 354, -1, -1, -1, -1, 3309, 3310, -1, -1, 148, 204, 150, -1, -1, -1, 224, -1, 211, -1, -1, -1, 160, -1, 3327, -1, 3832, 3898, -1, -1, -1, -1, -1, -1, -1, 467, -1, 245, -1, -1, -1, -1, 180, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, 248, 289, 599, 291, 292, 293, -1, 415, -1, 272, -1, 204, 300, 500, -1, -1, -1, -1, 211, -1, 507, -1, 3380, 3381, -1, -1, -1, 3953, -1, -1, -1, 518, -1, -1, 3392, -1, -1, -1, -1, -1, -1, 304, -1, -1, -1, -1, -1, -1, -1, -1, -1, 314, -1, -1, -1, 248, -1, -1, -1, 467, 3418, 3419, 3381, -1, 661, -1, -1, 488, -1, 3995, 333, -1, 480, -1, -1, -1, -1, -1, -1, -1, 3382, 568, -1, -1, 372, -1, -1, -1, -1, -1, -1, -1, 500, 356, 691, -1, -1, -1, -1, 507, -1, -1, -1, -1, 367, 368, -1, -1, -1, -1, 518, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 369, -1, -1, -1, 3483, -1, -1, -1, -1, 3488, 3992, 420, 421, -1, -1, -1, -1, 386, -1, -1, -1, -1, -1, 392, -1, -1, -1, -1, -1, -1, -1, 400, -1, 751, -1, -1, -1, -1, -1, -1, 3519, -1, -1, -1, 428, -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, 369, 440, 599, -1, -1, -1, 3540, -1, -1, 3543, -1, -1, 436, 437, -1, -1, -1, 386, -1, -1, -1, -1, -1, 392, 463, -1, -1, -1, 467, -1, -1, 400, -1, -1, -1, -1, 3570, -1, 3572, -1, 3574, -1, -1, 482, -1, -1, -1, -1, 3543, -1, -1, -1, 476, -1, 423, -1, 3590, -1, -1, 656, -1, -1, -1, -1, 661, -1, -1, 436, 437, -1, -1, -1, -1, 3607, -1, -1, -1, -1, 502, -1, -1, 545, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 556, 557, 691, -1, -1, -1, -1, 538, 524, -1, 526, -1, -1, 544, -1, 476, -1, -1, 707, -1, -1, -1, 3648, -1, -1, -1, -1, 3653, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 502, -1, -1, -1, -1, -1, -1, 3782, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 748, 749, 750, 751, 524, -1, 526, -1, -1, -1, -1, 935, -1, -1, -1, -1, -1, -1, -1, -1, 768, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3728, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3752, 3753, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3875, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3782, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1037, 1038, -1, -1, -1, 3803, -1, -1, 3806, 1046, 1047, 3917, -1, 1050, 1051, 1052, -1, -1, -1, -1, 1057, -1, -1, 1060, 1061, -1, 1063, -1, 1065, -1, -1, -1, -1, -1, -1, 1072, 1073, 1074, -1, 1076, -1, -1, -1, -1, -1, -1, 1083, 1084, -1, 1086, 1087, -1, -1, -1, -1, 1092, -1, 1094, 1095, 1096, 3966, -1, 1099, 1100, 1101, 1102, 1103, 1104, -1, -1, 1107, 1108, -1, 1110, 935, 1112, -1, 3875, -1, 1116, 3986, 1118, 1119, -1, -1, -1, -1, -1, -1, 3887, -1, -1, 3890, 1130, 1131, -1, -1, -1, -1, 1136, -1, -1, 1139, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3917, -1, -1, -1, -1, -1, -1, -1, 3869, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3953, -1, -1, -1, -1, -1, -1, -1, 3905, 3906, -1, 3964, -1, 3966, -1, -1, -1, -1, -1, -1, -1, 1037, 1038, -1, -1, -1, -1, -1, -1, -1, 1046, 1047, -1, 3986, 1050, 1051, 1052, 3990, -1, -1, -1, 1057, 3995, -1, 1060, 1061, -1, 1063, 4001, 1065, -1, -1, -1, -1, -1, 1247, 1072, 1073, 1074, -1, 1076, -1, -1, 1255, -1, -1, -1, 1083, 1084, -1, 1086, 1087, -1, -1, -1, -1, 1092, -1, 1094, 1095, 1096, -1, 1098, 1099, 1100, 1101, 1102, 1103, 1104, -1, -1, 1107, 1108, -1, 1110, -1, 1112, -1, -1, -1, 1116, -1, 1118, 1119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1130, 1131, -1, -1, -1, -1, 1136, -1, -1, 1139, -1, -1, 1142, -1, -1, -1, 1146, -1, -1, -1, -1, -1, -1, 1153, 1154, -1, 1156, 1157, -1, 1159, -1, 1161, 1162, 1163, 1164, 1165, 1166, 1167, 1168, 1169, 1170, 1171, -1, -1, 13, 14, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 28, -1, 30, -1, -1, -1, 34, -1, 1197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 47, 48, -1, -1, -1, -1, -1, 54, -1, -1, -1, 58, 59, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1420, -1, 85, 1247, -1, -1, -1, -1, -1, -1, -1, 1255, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, -1, -1, -1, 113, 114, 115, -1, -1, -1, -1, -1, -1, -1, -1, -1, 125, 126, -1, -1, -1, -1, 1468, -1, -1, -1, -1, -1, -1, 138, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 165, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 180, -1, -1, -1, -1, 185, -1, -1, 188, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1543, 1544, 1545, -1, -1, 211, -1, 213, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 32, 33, -1, 227, -1, -1, 38, -1, 40, 41, 42, -1, -1, -1, -1, -1, -1, -1, -1, 1580, 244, -1, -1, -1, 248, 57, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1420, -1, -1, -1, -1, -1, 1602, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1622, -1, -1, 96, -1, -1, 99, -1, -1, -1, -1, -1, -1, -1, 107, -1, -1, -1, -1, -1, -1, -1, 1468, -1, -1, -1, -1, -1, -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 141, 334, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 353, 162, -1, 164, -1, -1, -1, -1, -1, -1, 363, -1, -1, -1, -1, 176, 177, -1, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1543, 1544, 1545, -1, -1, -1, -1, -1, -1, 391, -1, -1, 394, -1, 396, -1, -1, 399, -1, -1, 402, -1, 404, -1, -1, -1, 216, 409, -1, 411, -1, -1, -1, -1, -1, -1, 418, 1580, -1, -1, 1583, 423, 1585, -1, 1587, 1588, -1, -1, -1, 431, -1, -1, 242, -1, 436, -1, -1, -1, 440, 1602, -1, 251, 252, -1, 254, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1622, 462, -1, -1, -1, 466, -1, -1, -1, -1, -1, -1, -1, -1, 283, 284, 285, -1, -1, -1, -1, -1, 1820, -1, -1, -1, -1, -1, -1, -1, -1, -1, 301, 302, 303, -1, -1, -1, 307, -1, -1, 310, -1, -1, 505, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 517, 326, 327, -1, 521, -1, -1, 524, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 358, 359, -1, -1, 554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1904, 568, -1, -1, 1908, 380, -1, -1, -1, 1913, 1914, -1, -1, -1, -1, -1, -1, -1, 1922, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 12, 13, 1936, -1, 1938, -1, -1, 1941, 1942, 1943, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1954, -1, 427, -1, -1, -1, 431, -1, 1962, -1, 1964, -1, 1966, 1967, 1968, -1, 441, -1, -1, 1973, 1974, 1975, -1, -1, -1, -1, 1980, 1981, 1982, -1, 1984, -1, 1986, -1, 1988, -1, 1990, -1, 1992, -1, -1, -1, 1820, 1997, -1, -1, -1, -1, -1, -1, -1, -1, -1, 85, 2008, -1, -1, -1, -1, -1, -1, -1, 487, -1, -1, 490, -1, -1, 493, 494, 495, 496, -1, -1, 2028, -1, -1, -1, -1, -1, -1, 113, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 536, 537, -1, -1, -1, 148, -1, 150, -1, -1, -1, -1, -1, -1, -1, 1904, -1, 160, -1, 1908, -1, 557, -1, -1, 1913, 1914, -1, -1, -1, -1, -1, -1, -1, 1922, -1, -1, -1, 180, -1, -1, -1, -1, -1, -1, -1, -1, -1, 1936, -1, 1938, -1, -1, 1941, 1942, 1943, -1, -1, 1946, -1, -1, -1, 204, -1, -1, -1, 1954, -1, -1, 211, -1, -1, -1, -1, 1962, -1, 1964, -1, 1966, 1967, 1968, -1, -1, -1, -1, 1973, 1974, 1975, -1, -1, -1, -1, 1980, 1981, 1982, -1, 1984, -1, 1986, -1, 1988, -1, 1990, -1, 1992, -1, 248, -1, -1, 1997, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2008, -1, -1, -1, 2012, 25, 26, 2015, -1, -1, 13, 14, -1, 2021, -1, -1, 2024, -1, -1, -1, 2028, -1, -1, -1, -1, 28, -1, -1, -1, -1, -1, 34, -1, -1, -1, -1, -1, -1, 58, -1, -1, -1, -1, -1, 47, 48, -1, -1, -1, 69, -1, 54, -1, -1, -1, 58, 59, 77, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 71, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, 85, -1, -1, -1, -1, -1, -1, 109, -1, -1, 112, -1, -1, -1, -1, -1, -1, -1, -1, -1, 105, -1, -1, -1, -1, 369, -1, -1, 113, 114, 115, -1, -1, -1, -1, -1, -1, -1, 140, -1, 125, 126, 386, -1, -1, -1, -1, -1, 392, -1, -1, -1, -1, -1, -1, -1, 400, -1, -1, -1, -1, -1, -1, -1, -1, 150, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 423, 165, -1, -1, -1, -1, -1, 2352, -1, -1, -1, 2356, -1, 436, 437, 2360, 180, -1, -1, -1, -1, 185, -1, 204, 188, -1, -1, -1, -1, -1, -1, 212, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 225, -1, -1, 211, -1, 213, -1, -1, -1, 476, -1, -1, -1, 2402, 6, -1, -1, -1, -1, 227, -1, 13, 2411, -1, 2413, -1, 2415, -1, -1, -1, -1, -1, -1, 25, 26, 502, 244, -1, -1, -1, 248, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2440, 277, -1, -1, -1, -1, 524, -1, 526, -1, -1, 54, -1, -1, -1, 58, -1, -1, 294, -1, -1, -1, -1, -1, -1, -1, 69, -1, -1, -1, -1, -1, -1, -1, 77, -1, -1, -1, -1, -1, 83, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 95, -1, -1, -1, -1, -1, -1, 2499, -1, -1, -1, 2503, -1, -1, 109, -1, -1, 112, 346, -1, -1, -1, -1, 334, 119, -1, 354, -1, -1, -1, -1, 126, -1, -1, -1, -1, 2352, -1, -1, 134, 2356, -1, 353, -1, 2360, 140, -1, -1, -1, -1, -1, -1, 363, 2545, -1, -1, -1, -1, -1, -1, 371, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 166, -1, -1, -1, -1, -1, -1, -1, 2571, 391, -1, -1, 394, -1, 396, 2402, 415, 399, -1, -1, 402, -1, 404, -1, 2411, -1, 2413, 409, 2415, 411, -1, -1, -1, -1, -1, -1, 418, -1, 204, -1, -1, 423, -1, -1, -1, -1, 212, -1, 2435, 431, -1, -1, -1, 2440, 436, -1, -1, -1, 440, 225, -1, -1, -1, -1, -1, 2452, -1, -1, 467, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 462, 480, -1, -1, 466, -1, -1, -1, -1, -1, 2653, 2654, -1, -1, -1, -1, -1, -1, -1, -1, -1, 500, -1, -1, -1, -1, -1, -1, 507, -1, -1, 277, 2499, -1, -1, -1, 2503, -1, -1, 518, -1, -1, -1, 505, -1, -1, -1, -1, 294, -1, -1, -1, 298, -1, -1, 517, -1, -1, -1, 521, -1, -1, 524, -1, -1, -1, -1, 529, -1, -1, -1, -1, -1, -1, -1, 2718, -1, -1, 2545, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 554, 339, -1, -1, -1, 2740, 2741, -1, 346, -1, -1, -1, 2571, -1, 568, 2750, 354, -1, -1, -1, 2755, -1, -1, 2758, -1, 2760, 2761, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 394, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 415, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2653, 2654, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2841, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 467, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 480, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2711, -1, -1, -1, -1, -1, -1, 2718, -1, -1, 500, -1, -1, -1, -1, -1, -1, 507, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 518, 2740, 2741, -1, -1, -1, -1, -1, -1, -1, -1, 2750, -1, -1, -1, -1, 2755, -1, -1, 2758, -1, 2760, 2761, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2798, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2827, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2841, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 2859, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3097, 3098, -1, -1, -1, -1, -1, -1, -1, 3106, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3057, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3247, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3272, 3097, 3098, -1, -1, -1, -1, -1, -1, -1, 3106, -1, -1, 3285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3231, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3247, -1, -1, -1, 3427, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3437, -1, 3439, -1, -1, -1, -1, -1, -1, -1, -1, 3272, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3285, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3371, -1, -1, -1, -1, -1, -1, 3554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3600, -1, 3602, 3427, -1, -1, -1, -1, -1, -1, -1, -1, 3612, 3437, -1, 3439, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3480, -1, -1, -1, -1, -1, 3486, 3487, -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, 3693, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3710, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3544, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3554, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3756, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3600, -1, 3602, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3612, -1, -1, 3615, 3616, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3811, 3636, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3839, -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, 3693, -1, -1, 3696, -1, -1, -1, -1, -1, -1, 3879, -1, -1, -1, -1, -1, 3709, 3710, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3721, -1, -1, -1, -1, -1, -1, -1, 3729, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3756, 3757, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3769, -1, -1, -1, -1, -1, -1, -1, -1, 3954, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3801, -1, -1, -1, -1, -1, 3807, -1, -1, -1, 3811, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3822, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3839, -1, -1, -1, -1, -1, -1, 3846, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3856, -1, -1, -1, -1, -1, -1, -1, -1, 3865, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3879, -1, -1, -1, -1, -1, -1, 3886, -1, 3888, -1, -1, -1, -1, -1, -1, -1, 3896, 3897, -1, -1, -1, 3901, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3924, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3935, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3949, 3950, -1, -1, -1, 3954, -1, -1, -1, -1, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, 3969, 3970, -1, 17, -1, 3974, 20, -1, 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, -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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, 231, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, 498, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, 330, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, 569, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, -1, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, -1, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, 153, 154, 155, 156, 157, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, 183, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, 211, 212, 213, 214, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, 234, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, 295, 296, -1, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, -1, 309, 310, 311, -1, -1, 314, 315, 316, 317, 318, -1, 320, 321, 322, -1, 324, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, 398, 399, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, 464, 465, 466, 467, -1, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, 503, 504, 505, 506, 507, 508, 509, 510, 511, 512, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, 531, 532, 533, 534, 535, -1, -1, 538, 539, -1, 541, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 561, 562, -1, -1, -1, -1, 567, 568, -1, -1, 571, 572, -1, 574, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, 204, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, 226, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, 238, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, 173, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, 204, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, 226, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, 446, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, 423, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, 569, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 5, -1, 7, 8, 9, 10, 11, -1, 569, -1, -1, -1, 17, 574, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, 215, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, -1, 5, 563, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, 575, -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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, 568, -1, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, -1, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, 574, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, -1, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 575, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 574, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, 20, 574, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, -1, 557, 5, -1, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, -1, -1, 574, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 7, 8, 9, 10, 11, -1, -1, -1, -1, -1, 17, -1, 570, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 7, 8, 9, 10, 11, 563, -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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 7, 8, 9, 10, 11, 563, -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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 7, 8, 9, 10, 11, 563, -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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 7, 8, 9, 10, 11, 563, -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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, 163, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, 253, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, 318, 319, -1, 321, 322, -1, -1, 325, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, 448, 449, 450, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, 509, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, 432, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, 189, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, 237, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, 152, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, 171, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, 366, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, 486, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, 165, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, 185, 186, -1, 188, -1, -1, 191, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, 213, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, 228, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, 321, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, 335, -1, -1, -1, -1, -1, -1, -1, -1, -1, 345, 346, 347, -1, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, -1, -1, 363, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, 377, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, 393, -1, 395, 396, 397, -1, -1, 400, -1, 402, 403, 404, -1, 406, 407, -1, -1, -1, 411, 412, 413, 414, 415, 416, 417, 418, 419, -1, 421, 422, -1, -1, -1, 426, 427, 428, 429, -1, -1, -1, 433, -1, -1, -1, 437, 438, 439, 440, -1, 442, 443, 444, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, 462, 463, -1, -1, 466, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, 505, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, 516, 517, -1, -1, 520, -1, -1, 523, -1, 525, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, 551, -1, 553, 554, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, 546, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, 546, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, 159, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, 200, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, 222, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, 233, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, 255, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, 333, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, 398, -1, 400, -1, -1, 403, -1, -1, 406, 407, 408, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, 548, -1, 550, -1, -1, 553, -1, -1, 5, 557, 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, -1, -1, -1, 153, 154, 155, -1, -1, 158, -1, 160, 161, 162, -1, -1, -1, -1, -1, -1, 169, 170, -1, 172, -1, 174, -1, 176, 177, 178, 179, -1, 181, -1, -1, -1, -1, 186, -1, -1, -1, -1, -1, 192, -1, -1, -1, 196, 197, 198, 199, -1, -1, 202, 203, -1, -1, 206, -1, 208, -1, -1, -1, 212, -1, -1, -1, -1, 217, -1, -1, 220, 221, -1, -1, -1, 225, -1, -1, -1, 229, -1, -1, 232, -1, -1, 235, 236, -1, -1, -1, -1, -1, 242, 243, -1, 245, -1, 247, -1, 249, 250, -1, -1, -1, -1, -1, -1, -1, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, -1, 272, 273, -1, 275, 276, 277, 278, -1, 280, 281, 282, -1, -1, -1, 286, 287, 288, 289, 290, -1, -1, 293, 294, -1, 296, -1, 298, -1, 300, 301, 302, 303, 304, 305, 306, 307, -1, -1, 310, 311, -1, -1, 314, 315, 316, 317, -1, -1, -1, -1, 322, -1, -1, -1, -1, 327, 328, 329, -1, 331, 332, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 346, 347, -1, -1, 350, 351, 352, -1, 354, 355, 356, 357, 358, 359, -1, -1, -1, -1, 364, 365, -1, 367, -1, 369, 370, -1, 372, 373, 374, -1, -1, -1, -1, -1, -1, 381, 382, 383, 384, 385, -1, -1, 388, 389, 390, -1, 392, -1, -1, 395, -1, 397, -1, -1, 400, -1, -1, 403, -1, -1, 406, 407, -1, -1, -1, -1, 412, 413, 414, 415, 416, 417, -1, 419, -1, 421, -1, -1, -1, -1, 426, 427, 428, -1, -1, -1, -1, 433, -1, -1, -1, 437, -1, 439, -1, -1, 442, -1, -1, 445, -1, -1, -1, -1, -1, -1, 452, 453, -1, 455, -1, -1, 458, -1, -1, 461, -1, 463, -1, -1, -1, 467, -1, 469, 470, 471, 472, 473, -1, -1, 476, 477, -1, 479, 480, -1, -1, 483, 484, -1, -1, 487, 488, -1, 490, 491, 492, 493, -1, -1, -1, -1, -1, 499, 500, 501, -1, -1, -1, -1, 506, 507, 508, -1, 510, 511, -1, 513, 514, -1, -1, -1, -1, -1, 520, -1, -1, 523, -1, -1, -1, 527, 528, -1, -1, -1, -1, -1, -1, 535, -1, -1, 538, -1, -1, -1, 542, 543, 544, 545, -1, -1, -1, -1, 550, -1, -1, 553, -1, -1, -1, 557 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const unsigned short int yystos[] = { 0, 13, 14, 28, 30, 34, 47, 48, 54, 58, 59, 71, 85, 105, 113, 114, 115, 125, 126, 138, 150, 165, 180, 185, 188, 211, 213, 227, 244, 248, 334, 353, 363, 371, 391, 394, 396, 399, 402, 404, 409, 411, 418, 423, 431, 436, 440, 462, 466, 505, 517, 521, 524, 529, 554, 568, 579, 580, 581, 582, 583, 584, 586, 591, 593, 598, 632, 766, 907, 946, 949, 957, 959, 961, 964, 969, 971, 972, 977, 980, 987, 991, 999, 1000, 1166, 1168, 1174, 1177, 1202, 1210, 1221, 1223, 1236, 1239, 1242, 1248, 1252, 1256, 1258, 1259, 1305, 1322, 1328, 1330, 1337, 1339, 1364, 1370, 1371, 1372, 1373, 1413, 1421, 1422, 11, 92, 110, 174, 201, 249, 368, 429, 480, 942, 1389, 1392, 245, 323, 979, 479, 482, 1324, 1365, 486, 1296, 204, 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, 153, 154, 155, 158, 160, 161, 162, 165, 169, 170, 172, 174, 176, 177, 178, 179, 181, 185, 186, 188, 191, 192, 196, 197, 198, 199, 202, 203, 206, 208, 212, 213, 217, 220, 221, 225, 228, 229, 232, 235, 236, 242, 243, 245, 247, 249, 250, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 272, 273, 275, 276, 277, 278, 280, 281, 282, 286, 287, 288, 289, 290, 293, 294, 296, 298, 300, 301, 302, 303, 304, 305, 306, 307, 310, 311, 314, 315, 316, 317, 321, 322, 327, 328, 329, 331, 332, 333, 335, 345, 346, 347, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 363, 364, 365, 367, 369, 370, 372, 373, 374, 377, 381, 382, 383, 384, 385, 388, 389, 390, 392, 393, 395, 396, 397, 400, 402, 403, 404, 406, 407, 411, 412, 413, 414, 415, 416, 417, 418, 419, 421, 422, 426, 427, 428, 429, 433, 437, 438, 439, 440, 442, 443, 444, 445, 452, 453, 455, 458, 461, 462, 463, 466, 467, 469, 470, 471, 472, 473, 476, 477, 479, 480, 483, 484, 487, 488, 490, 491, 492, 493, 499, 500, 501, 505, 506, 507, 508, 510, 511, 513, 514, 516, 517, 520, 523, 525, 527, 528, 535, 538, 542, 543, 544, 545, 550, 551, 553, 554, 557, 620, 1295, 1299, 1303, 1304, 272, 1324, 1324, 550, 1366, 92, 173, 249, 429, 446, 480, 483, 519, 527, 602, 603, 819, 820, 821, 894, 1211, 1167, 92, 148, 174, 204, 249, 368, 429, 480, 483, 502, 527, 542, 1173, 1299, 979, 619, 575, 1293, 1294, 1299, 592, 1175, 357, 77, 373, 1257, 95, 204, 482, 1324, 979, 767, 1299, 1253, 418, 92, 527, 1324, 979, 1178, 1249, 1324, 619, 1366, 1299, 1002, 1004, 1005, 336, 1307, 1224, 462, 466, 440, 499, 440, 482, 1222, 357, 1329, 1203, 1299, 30, 71, 136, 363, 382, 411, 462, 1415, 423, 568, 1001, 0, 138, 363, 154, 352, 1240, 1293, 1299, 142, 918, 1299, 142, 620, 182, 620, 237, 1296, 1299, 1301, 708, 709, 712, 739, 1299, 482, 148, 913, 1389, 1324, 960, 1366, 988, 989, 1293, 633, 575, 497, 962, 973, 16, 1367, 200, 822, 182, 1301, 710, 739, 619, 341, 1387, 1389, 1390, 1391, 1392, 482, 820, 204, 201, 256, 374, 1219, 1220, 1072, 1073, 200, 1172, 1172, 1172, 1299, 182, 1172, 1172, 739, 1172, 619, 1172, 1324, 587, 1243, 12, 13, 85, 113, 126, 148, 150, 160, 180, 204, 211, 248, 369, 386, 392, 400, 423, 436, 437, 476, 502, 524, 526, 1340, 1342, 1344, 1345, 1299, 333, 62, 378, 575, 1301, 111, 190, 256, 1180, 1299, 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, 151, 156, 157, 163, 176, 178, 183, 189, 196, 200, 211, 214, 234, 242, 253, 274, 279, 289, 293, 295, 299, 300, 301, 302, 303, 309, 318, 319, 320, 324, 325, 329, 348, 354, 358, 359, 361, 372, 398, 399, 410, 416, 421, 464, 465, 470, 474, 475, 478, 486, 490, 491, 492, 493, 503, 504, 505, 509, 512, 527, 531, 532, 533, 534, 539, 541, 545, 557, 561, 562, 567, 568, 571, 572, 574, 575, 1020, 1023, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1039, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1058, 1062, 1280, 1282, 1284, 1285, 1289, 1291, 1295, 1299, 1260, 215, 1293, 1323, 1324, 45, 768, 171, 33, 272, 1228, 1254, 1299, 982, 619, 981, 1324, 111, 256, 1181, 1209, 272, 373, 440, 1250, 1251, 958, 12, 1338, 1342, 497, 1367, 1003, 12, 122, 190, 451, 452, 453, 454, 455, 456, 468, 1009, 1010, 1011, 1306, 23, 34, 56, 57, 66, 68, 82, 84, 85, 93, 140, 144, 147, 172, 174, 179, 181, 203, 204, 208, 224, 245, 272, 304, 314, 333, 356, 367, 368, 428, 440, 467, 482, 544, 867, 893, 1225, 1228, 1229, 1231, 1313, 951, 952, 951, 951, 549, 950, 951, 1171, 1293, 1299, 1324, 1209, 35, 189, 486, 1281, 1297, 1414, 1414, 1414, 1414, 1414, 1004, 1001, 569, 1299, 1238, 1237, 288, 484, 511, 909, 89, 1301, 1302, 911, 714, 740, 1299, 910, 335, 6, 54, 126, 319, 377, 379, 741, 1293, 620, 457, 1393, 1394, 912, 970, 1170, 1171, 218, 570, 995, 996, 568, 634, 1299, 594, 1170, 1170, 53, 321, 321, 391, 1368, 318, 319, 1038, 1299, 713, 740, 167, 6, 1302, 1355, 1356, 399, 10, 148, 368, 502, 606, 834, 1388, 1394, 1403, 1407, 1389, 1392, 822, 1299, 171, 1212, 1216, 1217, 1299, 1219, 1020, 1074, 151, 1299, 620, 620, 330, 740, 620, 1301, 750, 1229, 620, 1302, 1354, 1170, 1172, 530, 588, 116, 192, 250, 272, 367, 373, 403, 440, 463, 479, 1244, 1245, 1324, 367, 1343, 413, 413, 483, 527, 542, 336, 1347, 479, 1349, 61, 440, 1346, 93, 542, 1348, 330, 570, 18, 142, 1122, 1123, 1331, 1299, 942, 444, 568, 568, 568, 1043, 568, 568, 568, 1020, 1079, 568, 568, 568, 568, 568, 568, 568, 568, 568, 1019, 1019, 568, 1019, 568, 568, 568, 512, 568, 1280, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 1020, 568, 568, 568, 1075, 1076, 1077, 568, 568, 568, 568, 568, 568, 568, 568, 568, 1026, 568, 1019, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 568, 1019, 568, 1280, 568, 568, 568, 1280, 568, 568, 35, 189, 486, 568, 1019, 1019, 1019, 568, 568, 568, 568, 568, 1043, 1043, 1043, 423, 568, 1020, 1382, 1299, 1063, 1299, 555, 1021, 1024, 142, 143, 175, 184, 219, 230, 257, 312, 1040, 31, 218, 238, 387, 445, 559, 1038, 560, 434, 435, 561, 562, 123, 299, 563, 564, 565, 566, 1043, 100, 101, 102, 103, 104, 170, 193, 194, 195, 196, 289, 291, 292, 293, 300, 372, 420, 421, 545, 556, 557, 1119, 1120, 65, 340, 1297, 568, 575, 75, 171, 256, 1261, 1267, 47, 171, 1293, 1325, 1326, 978, 240, 243, 375, 771, 775, 574, 585, 1296, 250, 986, 1299, 983, 1302, 984, 985, 1293, 965, 215, 1171, 1182, 1183, 47, 570, 1170, 1343, 330, 418, 1369, 1368, 518, 1374, 1375, 563, 1013, 1014, 1015, 1011, 1308, 1309, 1310, 147, 431, 238, 547, 1235, 506, 568, 92, 148, 174, 368, 482, 502, 542, 1235, 12, 830, 1301, 239, 1141, 1143, 171, 218, 1230, 1232, 64, 463, 168, 463, 463, 463, 272, 479, 64, 463, 192, 463, 463, 506, 1141, 1235, 1232, 250, 139, 67, 357, 370, 479, 501, 463, 538, 948, 390, 458, 953, 954, 947, 78, 942, 570, 332, 1417, 477, 1418, 223, 406, 1416, 569, 1375, 1377, 1378, 1379, 999, 1241, 1281, 1299, 109, 817, 818, 827, 828, 876, 1019, 574, 627, 6, 715, 627, 568, 94, 736, 736, 736, 4, 908, 914, 422, 542, 1394, 1170, 497, 570, 109, 990, 1299, 989, 204, 226, 891, 997, 635, 636, 1020, 258, 259, 260, 261, 262, 263, 265, 266, 267, 268, 269, 270, 271, 273, 388, 389, 595, 596, 597, 154, 374, 963, 55, 154, 158, 168, 286, 374, 974, 975, 976, 53, 391, 151, 601, 715, 95, 736, 198, 570, 822, 1015, 1015, 1015, 1394, 1293, 895, 896, 1216, 1293, 1299, 570, 1214, 575, 1218, 570, 1293, 750, 322, 543, 751, 752, 140, 570, 49, 405, 943, 1170, 574, 589, 590, 47, 549, 570, 1246, 479, 568, 1357, 1357, 1357, 1357, 174, 368, 482, 1341, 1345, 1299, 161, 315, 1299, 1332, 1333, 1182, 1296, 1020, 1020, 12, 122, 1068, 1124, 1068, 1068, 1068, 546, 1081, 1020, 1020, 1072, 1072, 1020, 1020, 1020, 122, 1068, 1124, 569, 1020, 569, 1020, 1020, 1020, 1020, 1289, 1299, 568, 1382, 1119, 1072, 96, 99, 490, 493, 1121, 122, 1065, 1020, 1020, 1020, 1020, 1072, 1076, 9, 1078, 1289, 122, 1068, 1020, 1020, 122, 1068, 1020, 1020, 1072, 1072, 1072, 1020, 1020, 1020, 1020, 1072, 1030, 1020, 1020, 1020, 1020, 1020, 1020, 1068, 1068, 1020, 1020, 122, 1068, 1020, 1020, 1120, 1120, 1020, 43, 231, 498, 1020, 1020, 569, 1290, 1291, 1299, 1068, 1068, 1020, 1020, 1385, 1385, 569, 570, 569, 1020, 574, 1064, 1301, 575, 1023, 1022, 1025, 1029, 157, 324, 504, 520, 1038, 12, 17, 1029, 1041, 1030, 568, 1043, 1030, 238, 1031, 31, 218, 238, 387, 1032, 1033, 1033, 1034, 1042, 1034, 1042, 1035, 1035, 1035, 1035, 1035, 1043, 562, 1301, 1043, 1049, 1299, 272, 245, 1266, 992, 272, 1123, 570, 1170, 774, 773, 352, 781, 186, 226, 1301, 29, 497, 1255, 497, 570, 497, 570, 497, 1170, 1183, 1179, 1251, 171, 570, 174, 368, 1341, 1299, 12, 122, 1381, 570, 1006, 1017, 1020, 1287, 1299, 570, 179, 245, 331, 428, 1311, 1312, 1315, 1316, 218, 1233, 1296, 1020, 563, 822, 620, 620, 620, 1293, 620, 1293, 250, 304, 463, 1227, 1227, 253, 325, 509, 1144, 1145, 1282, 1235, 1299, 620, 1235, 1302, 168, 1230, 620, 1235, 1230, 1293, 1232, 1230, 1230, 1235, 1235, 523, 955, 570, 955, 442, 423, 568, 572, 1082, 1083, 1084, 1085, 1094, 1095, 1103, 1281, 355, 1419, 339, 1137, 1143, 1380, 818, 65, 867, 1301, 69, 80, 228, 297, 321, 376, 457, 629, 631, 383, 513, 737, 738, 732, 733, 92, 191, 345, 354, 360, 443, 527, 604, 605, 1296, 724, 725, 716, 717, 724, 6, 13, 14, 25, 26, 54, 58, 59, 63, 69, 77, 83, 95, 112, 119, 120, 126, 134, 140, 166, 202, 204, 212, 225, 277, 294, 298, 334, 339, 346, 353, 354, 381, 393, 394, 395, 396, 415, 467, 480, 500, 507, 518, 764, 824, 826, 827, 828, 919, 924, 926, 929, 935, 936, 937, 1133, 330, 614, 915, 110, 217, 1293, 974, 1296, 1171, 568, 569, 570, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, 570, 525, 975, 816, 817, 728, 729, 551, 529, 711, 45, 1356, 620, 620, 620, 174, 599, 507, 530, 899, 330, 1215, 1213, 575, 1217, 171, 563, 1299, 1123, 1020, 1169, 751, 142, 432, 1193, 1194, 1302, 943, 1301, 570, 378, 1245, 1170, 1247, 1299, 1358, 1359, 563, 1293, 1299, 1353, 1353, 1353, 142, 161, 175, 184, 229, 230, 257, 315, 365, 1334, 1336, 547, 1125, 1176, 570, 569, 1068, 569, 1069, 569, 569, 569, 1020, 132, 546, 1080, 18, 569, 530, 569, 569, 569, 570, 530, 570, 1059, 569, 563, 569, 570, 570, 569, 569, 569, 575, 569, 171, 569, 570, 1061, 569, 570, 570, 570, 569, 569, 568, 570, 1068, 569, 569, 569, 1068, 569, 570, 569, 569, 569, 569, 569, 569, 569, 570, 569, 218, 569, 570, 570, 570, 570, 569, 569, 569, 570, 171, 570, 1068, 569, 569, 569, 570, 570, 570, 569, 171, 1020, 171, 1020, 171, 1020, 171, 569, 570, 569, 569, 569, 569, 570, 569, 1002, 1384, 1382, 1072, 573, 179, 245, 428, 1314, 432, 1299, 338, 341, 1036, 15, 16, 1037, 157, 324, 504, 520, 568, 16, 1020, 1382, 146, 1129, 1030, 1030, 568, 1043, 1030, 1119, 1119, 1020, 1053, 1054, 1055, 568, 575, 205, 993, 994, 1293, 256, 378, 552, 1327, 1326, 974, 568, 779, 779, 106, 163, 189, 253, 325, 509, 1148, 1151, 1152, 769, 772, 568, 1020, 1296, 1299, 1302, 1302, 985, 1293, 154, 374, 528, 966, 967, 968, 423, 431, 534, 535, 568, 812, 1184, 1187, 1296, 180, 1353, 1353, 1353, 1376, 1014, 171, 215, 1007, 1008, 1136, 1137, 1162, 1016, 575, 1309, 109, 499, 1299, 1318, 305, 354, 574, 867, 1317, 1296, 171, 1234, 569, 1299, 328, 570, 440, 1235, 1235, 1230, 1293, 1235, 1235, 597, 956, 954, 1102, 1299, 86, 207, 223, 234, 308, 410, 468, 1093, 431, 570, 1293, 1102, 570, 168, 1420, 45, 1141, 1194, 1194, 1296, 457, 457, 457, 457, 457, 422, 1296, 1296, 206, 734, 735, 742, 750, 752, 1296, 1296, 1296, 1296, 106, 163, 189, 253, 325, 509, 1147, 1296, 1296, 569, 570, 24, 278, 726, 727, 742, 743, 744, 750, 752, 718, 719, 742, 743, 744, 68, 79, 173, 353, 446, 839, 842, 843, 889, 891, 941, 941, 353, 1194, 1194, 941, 1194, 353, 353, 1194, 1194, 497, 118, 1194, 224, 480, 167, 353, 366, 891, 941, 224, 1194, 480, 118, 1194, 1194, 1194, 1194, 941, 353, 45, 1194, 765, 1194, 353, 351, 18, 142, 497, 945, 353, 353, 1194, 121, 287, 1299, 1194, 1194, 1194, 824, 570, 763, 764, 924, 568, 575, 838, 844, 1292, 1299, 73, 419, 394, 916, 1395, 366, 1115, 1116, 1117, 1299, 1020, 1147, 1296, 1296, 106, 163, 253, 325, 509, 1149, 1296, 1147, 1296, 1296, 1296, 1296, 1296, 1147, 1147, 1296, 1296, 1147, 596, 69, 316, 384, 514, 730, 731, 742, 746, 747, 748, 749, 750, 752, 1301, 249, 720, 721, 354, 486, 607, 1409, 8, 29, 706, 620, 238, 568, 754, 823, 825, 826, 44, 186, 417, 901, 901, 1293, 530, 1125, 1299, 1083, 575, 1218, 829, 1301, 590, 248, 569, 570, 575, 575, 497, 497, 497, 1335, 1126, 1142, 1143, 1184, 214, 1020, 569, 1020, 489, 1020, 1020, 136, 33, 57, 96, 99, 107, 310, 438, 493, 522, 1070, 33, 868, 1301, 1020, 868, 1070, 1072, 569, 1042, 1042, 1299, 1020, 1020, 1072, 1020, 1020, 1020, 1030, 1289, 569, 569, 1020, 1020, 1020, 1020, 1020, 1020, 1072, 214, 1020, 1020, 1020, 569, 1020, 1020, 1020, 1020, 171, 1020, 171, 1020, 171, 1020, 1020, 1020, 1386, 569, 569, 575, 575, 575, 1301, 1020, 1023, 1026, 1382, 1029, 569, 570, 569, 1043, 16, 1020, 1382, 1129, 569, 1015, 1056, 1057, 1071, 1072, 1299, 486, 1298, 570, 995, 552, 245, 1015, 473, 782, 779, 776, 777, 778, 1299, 497, 967, 813, 1185, 568, 1190, 1195, 1190, 569, 812, 1186, 1286, 1287, 1290, 1299, 1188, 336, 171, 171, 171, 1000, 127, 1083, 1163, 168, 248, 1012, 1162, 1142, 1008, 18, 1018, 1296, 1299, 563, 1299, 575, 220, 575, 1193, 109, 868, 869, 1193, 168, 1193, 574, 1301, 33, 109, 871, 872, 1301, 1149, 1226, 144, 544, 1145, 1145, 549, 1125, 1230, 570, 1097, 1102, 1082, 223, 223, 342, 1104, 223, 234, 410, 1104, 1094, 1082, 1205, 1206, 1290, 1082, 1123, 1099, 1100, 1147, 290, 1138, 109, 873, 875, 1301, 869, 95, 95, 110, 217, 1194, 570, 735, 605, 1194, 1194, 570, 727, 570, 719, 904, 1292, 891, 892, 979, 892, 59, 167, 366, 519, 841, 890, 840, 841, 904, 1292, 979, 1149, 1147, 1292, 1147, 12, 925, 933, 934, 1299, 979, 1296, 1296, 867, 1194, 1147, 226, 933, 226, 1292, 1292, 829, 1194, 161, 229, 321, 832, 1147, 1149, 1149, 1292, 979, 1134, 1135, 1290, 109, 1147, 768, 1296, 979, 1293, 979, 979, 72, 74, 109, 130, 162, 347, 385, 831, 1147, 829, 568, 6, 126, 937, 836, 837, 838, 839, 1299, 8, 161, 944, 386, 840, 881, 845, 575, 319, 364, 22, 149, 608, 497, 119, 134, 610, 568, 1397, 569, 570, 1194, 1194, 1194, 1194, 570, 731, 335, 182, 155, 722, 723, 742, 743, 744, 745, 748, 749, 750, 752, 486, 330, 568, 113, 211, 524, 707, 1408, 1293, 238, 353, 756, 763, 836, 763, 570, 825, 600, 1083, 1136, 1125, 1123, 1359, 563, 563, 1355, 1355, 1355, 568, 1020, 330, 1200, 1020, 569, 1020, 489, 568, 861, 861, 568, 856, 857, 861, 216, 216, 569, 569, 569, 569, 569, 1060, 1119, 1119, 569, 569, 1067, 1137, 570, 570, 569, 218, 1050, 1051, 569, 569, 569, 569, 570, 569, 569, 1020, 569, 168, 569, 569, 570, 569, 570, 570, 569, 1020, 569, 1020, 569, 1020, 569, 569, 569, 1383, 575, 905, 569, 1072, 1029, 569, 570, 569, 1020, 570, 569, 1262, 994, 201, 998, 787, 1030, 45, 770, 569, 570, 1302, 1009, 1191, 1192, 1290, 1196, 570, 568, 1187, 569, 569, 570, 575, 1374, 171, 1355, 1355, 1355, 1125, 1125, 128, 343, 1158, 1159, 1164, 524, 218, 1296, 1299, 575, 1299, 236, 1299, 12, 33, 109, 330, 1020, 1321, 65, 874, 1020, 1302, 329, 354, 486, 1320, 1314, 1193, 1141, 260, 1235, 597, 1377, 1098, 234, 223, 1094, 1104, 1104, 223, 330, 330, 530, 570, 1204, 1193, 1113, 1114, 1009, 1020, 1139, 1288, 197, 753, 1148, 735, 753, 753, 727, 719, 927, 1020, 226, 226, 892, 904, 896, 126, 431, 925, 938, 922, 570, 1148, 869, 1296, 904, 943, 1296, 939, 925, 570, 19, 114, 1140, 925, 930, 925, 1170, 569, 570, 1299, 1293, 32, 33, 38, 40, 41, 42, 57, 96, 99, 107, 124, 141, 162, 164, 176, 177, 216, 242, 251, 252, 254, 283, 284, 285, 301, 302, 303, 307, 310, 326, 327, 358, 359, 380, 427, 431, 441, 487, 490, 493, 494, 495, 496, 536, 537, 557, 846, 849, 850, 851, 852, 853, 854, 855, 1299, 364, 1020, 1020, 330, 614, 620, 330, 69, 615, 1299, 1398, 18, 1116, 1296, 1148, 753, 753, 731, 568, 1299, 1194, 570, 723, 419, 1410, 330, 407, 568, 621, 1293, 758, 569, 755, 825, 568, 1125, 239, 1146, 401, 1360, 1360, 1360, 109, 1020, 1198, 1199, 129, 1119, 1020, 325, 20, 33, 46, 516, 867, 877, 325, 569, 569, 569, 425, 1066, 1020, 1020, 41, 308, 569, 549, 1052, 1020, 1119, 1020, 1020, 1020, 1020, 569, 569, 569, 1374, 1299, 569, 1072, 1016, 1057, 201, 399, 1268, 232, 1016, 775, 568, 789, 778, 1013, 570, 1193, 1197, 1198, 1195, 1189, 1187, 1286, 1299, 1355, 1142, 182, 1130, 1298, 1298, 574, 1160, 1161, 1301, 433, 563, 378, 397, 426, 1319, 875, 1193, 568, 568, 1318, 1020, 142, 569, 1084, 342, 1082, 1094, 223, 223, 1082, 1094, 1087, 1086, 1088, 1206, 1125, 1199, 1111, 1112, 1013, 570, 1140, 352, 568, 928, 904, 896, 568, 109, 109, 921, 844, 974, 934, 874, 846, 920, 1135, 931, 933, 923, 569, 837, 882, 568, 568, 861, 856, 362, 847, 856, 856, 877, 57, 536, 850, 852, 877, 877, 57, 537, 537, 540, 856, 848, 861, 861, 877, 568, 861, 25, 65, 69, 109, 324, 330, 366, 427, 519, 863, 864, 865, 880, 1038, 540, 568, 877, 33, 568, 878, 568, 568, 861, 568, 857, 862, 575, 1119, 440, 1296, 125, 917, 569, 570, 1396, 604, 753, 723, 608, 209, 218, 344, 641, 642, 643, 644, 1015, 107, 216, 380, 469, 835, 622, 569, 812, 823, 760, 1268, 902, 903, 1299, 1145, 60, 221, 317, 459, 471, 553, 1351, 1352, 549, 1361, 1361, 1361, 569, 570, 1201, 569, 569, 878, 20, 516, 867, 879, 878, 868, 569, 570, 1281, 569, 569, 570, 296, 228, 373, 569, 569, 569, 569, 569, 569, 1386, 569, 1018, 215, 569, 186, 226, 353, 790, 791, 814, 1192, 1199, 569, 1377, 45, 187, 1127, 1165, 1301, 570, 296, 70, 510, 378, 1320, 486, 486, 1193, 1296, 1123, 223, 330, 1090, 1094, 1094, 330, 1092, 1020, 1020, 568, 1136, 166, 201, 529, 1106, 1107, 1110, 1101, 1288, 1148, 790, 568, 568, 902, 99, 490, 493, 561, 562, 1283, 1284, 974, 944, 863, 979, 932, 966, 274, 330, 568, 883, 885, 886, 887, 325, 325, 438, 522, 558, 858, 859, 860, 568, 858, 858, 877, 540, 858, 568, 877, 325, 858, 873, 1296, 320, 866, 1283, 524, 109, 226, 865, 226, 324, 325, 325, 325, 325, 858, 325, 858, 1299, 609, 616, 617, 1299, 1399, 1400, 569, 613, 614, 569, 570, 639, 1404, 444, 637, 638, 640, 1299, 569, 763, 18, 815, 569, 570, 1140, 568, 486, 486, 486, 16, 1350, 180, 275, 276, 280, 281, 1362, 1363, 1199, 226, 868, 878, 325, 1020, 296, 153, 1263, 568, 780, 568, 792, 569, 570, 833, 1008, 1142, 1131, 1288, 1128, 1136, 67, 1269, 1161, 569, 569, 1321, 16, 1082, 1089, 530, 1091, 530, 1118, 1299, 1146, 891, 891, 1107, 833, 1140, 569, 902, 902, 569, 1285, 1285, 940, 974, 215, 172, 350, 439, 113, 524, 884, 1299, 887, 569, 569, 860, 906, 1281, 906, 569, 1019, 320, 535, 569, 569, 569, 569, 461, 611, 51, 62, 159, 200, 222, 233, 333, 408, 618, 662, 664, 665, 666, 668, 669, 670, 671, 672, 673, 675, 683, 684, 687, 698, 1295, 1300, 1304, 423, 568, 1401, 610, 1411, 643, 1299, 1293, 1296, 569, 570, 639, 759, 757, 568, 812, 225, 549, 897, 898, 899, 900, 903, 325, 1351, 336, 1147, 1147, 1147, 1147, 1363, 524, 569, 569, 482, 1015, 783, 785, 786, 1299, 796, 1299, 791, 1012, 549, 570, 1132, 1140, 1020, 1142, 135, 145, 337, 485, 1270, 1271, 241, 1272, 261, 330, 1020, 568, 1020, 568, 569, 570, 168, 1105, 1105, 569, 569, 897, 944, 568, 49, 321, 405, 431, 888, 888, 569, 570, 569, 570, 569, 1019, 877, 878, 877, 878, 1020, 137, 612, 685, 688, 1299, 171, 315, 676, 663, 1300, 1300, 1299, 667, 581, 30, 255, 398, 548, 701, 577, 1002, 1001, 549, 1402, 615, 628, 846, 168, 623, 640, 846, 1377, 760, 812, 761, 1194, 349, 900, 1140, 569, 1207, 1208, 1290, 1293, 787, 472, 788, 569, 570, 793, 87, 412, 1288, 368, 1153, 45, 45, 135, 45, 1271, 460, 485, 1273, 1274, 142, 1096, 1118, 1118, 1299, 182, 223, 339, 1109, 1108, 881, 897, 790, 5, 109, 324, 885, 1299, 877, 1281, 877, 1020, 1020, 546, 690, 694, 171, 1299, 678, 679, 1020, 702, 646, 661, 662, 664, 666, 668, 670, 671, 672, 673, 675, 683, 698, 646, 703, 699, 569, 50, 59, 245, 125, 117, 629, 630, 1038, 1412, 1015, 407, 569, 1374, 1147, 1295, 570, 1193, 1264, 1016, 1148, 784, 786, 534, 797, 1140, 1299, 1281, 1281, 45, 1281, 45, 45, 1274, 1149, 1020, 569, 569, 45, 45, 568, 568, 569, 686, 695, 132, 694, 697, 215, 136, 1020, 647, 136, 661, 576, 523, 1020, 701, 1377, 59, 336, 59, 616, 117, 661, 1405, 624, 762, 1208, 1199, 867, 870, 569, 788, 218, 235, 794, 1154, 1281, 1281, 1281, 16, 573, 1115, 1117, 546, 689, 691, 1020, 646, 136, 674, 200, 489, 108, 645, 648, 255, 576, 705, 125, 700, 1300, 336, 336, 131, 846, 1377, 869, 1265, 568, 488, 69, 95, 204, 277, 294, 316, 480, 809, 810, 811, 1229, 568, 264, 569, 569, 692, 691, 697, 696, 51, 677, 1299, 680, 81, 152, 653, 659, 1299, 136, 661, 576, 1020, 704, 416, 625, 1269, 801, 802, 803, 1030, 282, 568, 798, 799, 800, 1194, 118, 118, 1194, 1194, 1194, 1194, 795, 811, 140, 1015, 1155, 1156, 1157, 142, 1020, 136, 489, 570, 646, 185, 570, 649, 76, 90, 576, 136, 646, 1406, 628, 1272, 569, 570, 282, 803, 1296, 1194, 1194, 253, 325, 509, 1150, 1151, 1150, 1148, 1301, 568, 804, 1194, 1020, 569, 570, 1147, 693, 51, 646, 1299, 681, 168, 1299, 846, 168, 168, 398, 136, 661, 626, 201, 1275, 802, 569, 569, 1296, 1296, 473, 805, 806, 829, 1016, 1157, 489, 132, 133, 682, 650, 109, 660, 449, 656, 1147, 651, 652, 548, 661, 325, 568, 1276, 807, 569, 570, 646, 646, 678, 448, 450, 654, 655, 656, 658, 1038, 1299, 1020, 535, 657, 581, 241, 569, 574, 1277, 1278, 1290, 431, 1279, 808, 1301, 806, 570, 661, 169, 1297, 1301, 569, 570, 1207, 809, 655, 1278 }; #if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) # define YYSIZE_T __SIZE_TYPE__ #endif #if ! defined (YYSIZE_T) && defined (size_t) # define YYSIZE_T size_t #endif #if ! defined (YYSIZE_T) # if defined (__STDC__) || defined (__cplusplus) # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # endif #endif #if ! defined (YYSIZE_T) # define YYSIZE_T unsigned int #endif #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; \ goto yybackup; \ } \ else \ { \ yyerror ("syntax error: cannot back up");\ YYERROR; \ } \ while (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 (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 (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 /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yysymprint (stderr, \ Type, Value); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yy_stack_print (short int *bottom, short int *top) #else static void yy_stack_print (bottom, top) short int *bottom; short int *top; #endif { YYFPRINTF (stderr, "Stack now"); for (/* Nothing. */; 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 (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yy_reduce_print (int yyrule) #else static void yy_reduce_print (yyrule) int yyrule; #endif { int yyi; unsigned int yylno = yyrline[yyrule]; YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", yyrule - 1, yylno); /* Print the symbols being reduced, and their result. */ for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (Rule); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !YYDEBUG */ # define YYDPRINTF(Args) # define 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 SIZE_MAX < 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. */ static YYSIZE_T # if defined (__STDC__) || defined (__cplusplus) yystrlen (const char *yystr) # else yystrlen (yystr) const char *yystr; # endif { register const char *yys = yystr; while (*yys++ != '\0') continue; return yys - yystr - 1; } # 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. */ static char * # if defined (__STDC__) || defined (__cplusplus) yystpcpy (char *yydest, const char *yysrc) # else yystpcpy (yydest, yysrc) char *yydest; const char *yysrc; # endif { register char *yyd = yydest; register const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif #endif /* !YYERROR_VERBOSE */ #if YYDEBUG /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) static void yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) #else static void yysymprint (yyoutput, yytype, yyvaluep) FILE *yyoutput; int yytype; YYSTYPE *yyvaluep; #endif { /* Pacify ``unused variable'' warnings. */ (void) yyvaluep; if (yytype < YYNTOKENS) YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); else YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif switch (yytype) { default: break; } YYFPRINTF (yyoutput, ")"); } #endif /* ! YYDEBUG */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ #if defined (__STDC__) || defined (__cplusplus) 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 { /* Pacify ``unused variable'' warnings. */ (void) 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 (__cplusplus) int yyparse (void *YYPARSE_PARAM) # else int yyparse (YYPARSE_PARAM) void *YYPARSE_PARAM; # endif #else /* ! YYPARSE_PARAM */ #if defined (__STDC__) || defined (__cplusplus) 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; register int yystate; register 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; /* 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. */ short int yyssa[YYINITDEPTH]; short int *yyss = yyssa; register short int *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs = yyvsa; register YYSTYPE *yyvsp; #define YYPOPSTACK (yyvsp--, yyssp--) YYSIZE_T yystacksize = YYINITDEPTH; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; /* When reducing, the number of symbols on the RHS of the reduced rule. */ int yylen; 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; yyvsp[0] = yylval; 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; short int *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 ("parser stack overflow", &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyoverflowlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyoverflowlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { short int *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyoverflowlab; 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. */ /* yyresume: */ /* 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; /* Shift the look-ahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the token being shifted unless it is eof. */ if (yychar != YYEOF) yychar = YYEMPTY; *++yyvsp = yylval; /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; yystate = yyn; 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 1290 "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 1303 "sql_yacc.yy" {} break; case 57: #line 1367 "sql_yacc.yy" { THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_DEALLOCATE_PREPARE; lex->prepared_stmt_name= (yyvsp[0].lex_str); } break; case 60: #line 1382 "sql_yacc.yy" { THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_PREPARE; lex->prepared_stmt_name= (yyvsp[-2].lex_str); } break; case 61: #line 1391 "sql_yacc.yy" { THD *thd= YYTHD; LEX *lex= thd->lex; lex->prepared_stmt_code= (yyvsp[0].lex_str); lex->prepared_stmt_code_is_varref= FALSE; } break; case 62: #line 1398 "sql_yacc.yy" { THD *thd= YYTHD; LEX *lex= thd->lex; lex->prepared_stmt_code= (yyvsp[0].lex_str); lex->prepared_stmt_code_is_varref= TRUE; } break; case 63: #line 1407 "sql_yacc.yy" { THD *thd= YYTHD; LEX *lex= thd->lex; lex->sql_command= SQLCOM_EXECUTE; lex->prepared_stmt_name= (yyvsp[0].lex_str); } break; case 64: #line 1414 "sql_yacc.yy" {} break; case 69: #line 1428 "sql_yacc.yy" { LEX *lex=Lex; LEX_STRING *lexstr= (LEX_STRING*)sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING)); if (!lexstr || lex->prepared_stmt_params.push_back(lexstr)) MYSQL_YYABORT; } break; case 70: #line 1440 "sql_yacc.yy" { if (Lex->sphead) { my_error(ER_SP_BADSTATEMENT, MYF(0), "HELP"); MYSQL_YYABORT; } } break; case 71: #line 1448 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_HELP; lex->help_arg= (yyvsp[0].lex_str).str; } break; case 72: #line 1458 "sql_yacc.yy" { LEX *lex = Lex; lex->sql_command = SQLCOM_CHANGE_MASTER; bzero((char*) &lex->mi, sizeof(lex->mi)); } break; case 73: #line 1464 "sql_yacc.yy" {} break; case 76: #line 1473 "sql_yacc.yy" { Lex->mi.host = (yyvsp[0].lex_str).str; } break; case 77: #line 1478 "sql_yacc.yy" { Lex->mi.user = (yyvsp[0].lex_str).str; } break; case 78: #line 1483 "sql_yacc.yy" { Lex->mi.password = (yyvsp[0].lex_str).str; } break; case 79: #line 1488 "sql_yacc.yy" { Lex->mi.port = (yyvsp[0].ulong_num); } break; case 80: #line 1493 "sql_yacc.yy" { Lex->mi.connect_retry = (yyvsp[0].ulong_num); } break; case 81: #line 1497 "sql_yacc.yy" { Lex->mi.ssl= (yyvsp[0].ulong_num) ? LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE; } break; case 82: #line 1502 "sql_yacc.yy" { Lex->mi.ssl_ca= (yyvsp[0].lex_str).str; } break; case 83: #line 1506 "sql_yacc.yy" { Lex->mi.ssl_capath= (yyvsp[0].lex_str).str; } break; case 84: #line 1510 "sql_yacc.yy" { Lex->mi.ssl_cert= (yyvsp[0].lex_str).str; } break; case 85: #line 1514 "sql_yacc.yy" { Lex->mi.ssl_cipher= (yyvsp[0].lex_str).str; } break; case 86: #line 1518 "sql_yacc.yy" { Lex->mi.ssl_key= (yyvsp[0].lex_str).str; } break; case 87: #line 1522 "sql_yacc.yy" { Lex->mi.ssl_verify_server_cert= (yyvsp[0].ulong_num) ? LEX_MASTER_INFO::SSL_ENABLE : LEX_MASTER_INFO::SSL_DISABLE; } break; case 89: #line 1532 "sql_yacc.yy" { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } break; case 90: #line 1536 "sql_yacc.yy" { Lex->mi.pos = (yyvsp[0].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 1552 "sql_yacc.yy" { Lex->mi.relay_log_name = (yyvsp[0].lex_str).str; } break; case 92: #line 1556 "sql_yacc.yy" { Lex->mi.relay_log_pos = (yyvsp[0].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 1567 "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[0].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[-3].num) | (yyvsp[-1].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 1586 "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[-2].table)->table.str); } } break; case 95: #line 1601 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_CREATE_INDEX; if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[0].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 1614 "sql_yacc.yy" { LEX *lex=Lex; Key *key; if ((yyvsp[-10].key_type) != Key::FULLTEXT && lex->key_create_info.parser_name.str) { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } key= new Key((yyvsp[-10].key_type), (yyvsp[-8].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 1628 "sql_yacc.yy" { Lex->create_info.default_table_charset= NULL; Lex->create_info.used_fields= 0; } break; case 98: #line 1633 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command=SQLCOM_CREATE_DB; lex->name= (yyvsp[-2].lex_str); lex->create_info.options=(yyvsp[-3].num); } break; case 99: #line 1640 "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 1646 "sql_yacc.yy" {} break; case 101: #line 1648 "sql_yacc.yy" { Lex->sql_command = SQLCOM_CREATE_USER; } break; case 102: #line 1652 "sql_yacc.yy" { Lex->alter_tablespace_info->ts_cmd_type= CREATE_LOGFILE_GROUP; } break; case 103: #line 1656 "sql_yacc.yy" { Lex->alter_tablespace_info->ts_cmd_type= CREATE_TABLESPACE; } break; case 104: #line 1660 "sql_yacc.yy" { Lex->sql_command= SQLCOM_CREATE_SERVER; } break; case 105: #line 1666 "sql_yacc.yy" { Lex->server_options.server_name= (yyvsp[-8].lex_str).str; Lex->server_options.server_name_length= (yyvsp[-8].lex_str).length; Lex->server_options.scheme= (yyvsp[-4].lex_str).str; } break; case 108: #line 1680 "sql_yacc.yy" { Lex->server_options.username= (yyvsp[0].lex_str).str; } break; case 109: #line 1685 "sql_yacc.yy" { Lex->server_options.host= (yyvsp[0].lex_str).str; } break; case 110: #line 1690 "sql_yacc.yy" { Lex->server_options.db= (yyvsp[0].lex_str).str; } break; case 111: #line 1695 "sql_yacc.yy" { Lex->server_options.owner= (yyvsp[0].lex_str).str; } break; case 112: #line 1700 "sql_yacc.yy" { Lex->server_options.password= (yyvsp[0].lex_str).str; } break; case 113: #line 1705 "sql_yacc.yy" { Lex->server_options.socket= (yyvsp[0].lex_str).str; } break; case 114: #line 1710 "sql_yacc.yy" { Lex->server_options.port= (yyvsp[0].ulong_num); } break; case 115: #line 1721 "sql_yacc.yy" { THD *thd= YYTHD; LEX *lex=Lex; lex->create_info.options= (yyvsp[-1].num); if (!(lex->event_parse_data= Event_parse_data::new_instance(thd))) MYSQL_YYABORT; lex->event_parse_data->identifier= (yyvsp[0].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 1747 "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[-8].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 1766 "sql_yacc.yy" { Lex->event_parse_data->item_expression= (yyvsp[-1].item); Lex->event_parse_data->interval= (yyvsp[0].interval); } break; case 119: #line 1773 "sql_yacc.yy" { Lex->event_parse_data->item_execute_at= (yyvsp[0].item); } break; case 120: #line 1778 "sql_yacc.yy" { (yyval.num)= 0; } break; case 121: #line 1780 "sql_yacc.yy" { Lex->event_parse_data->status= Event_basic::ENABLED; (yyval.num)= 1; } break; case 122: #line 1785 "sql_yacc.yy" { Lex->event_parse_data->status= Event_basic::SLAVESIDE_DISABLED; (yyval.num)= 1; } break; case 123: #line 1790 "sql_yacc.yy" { Lex->event_parse_data->status= Event_basic::DISABLED; (yyval.num)= 1; } break; case 124: #line 1797 "sql_yacc.yy" { Lex->event_parse_data->item_starts= new Item_func_now_local(); } break; case 125: #line 1801 "sql_yacc.yy" { Lex->event_parse_data->item_starts= (yyvsp[0].item); } break; case 127: #line 1808 "sql_yacc.yy" { Lex->event_parse_data->item_ends= (yyvsp[0].item); } break; case 128: #line 1813 "sql_yacc.yy" { (yyval.num)= 0; } break; case 130: #line 1819 "sql_yacc.yy" { Lex->event_parse_data->on_completion= Event_basic::ON_COMPLETION_PRESERVE; (yyval.num)= 1; } break; case 131: #line 1825 "sql_yacc.yy" { Lex->event_parse_data->on_completion= Event_basic::ON_COMPLETION_DROP; (yyval.num)= 1; } break; case 132: #line 1832 "sql_yacc.yy" { (yyval.num)= 0; } break; case 133: #line 1834 "sql_yacc.yy" { Lex->comment= Lex->event_parse_data->comment= (yyvsp[0].lex_str); (yyval.num)= 1; } break; case 134: #line 1841 "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 1884 "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 1915 "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 1930 "sql_yacc.yy" { if (!(yyvsp[-2].lex_str).str || check_db_name(&(yyvsp[-2].lex_str))) { my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[-2].lex_str).str); MYSQL_YYABORT; } if (check_routine_name(&(yyvsp[0].lex_str))) { MYSQL_YYABORT; } (yyval.spname)= new sp_name((yyvsp[-2].lex_str), (yyvsp[0].lex_str), true); (yyval.spname)->init_qname(YYTHD); } break; case 149: #line 1944 "sql_yacc.yy" { THD *thd= YYTHD; LEX *lex= thd->lex; LEX_STRING db; if (check_routine_name(&(yyvsp[0].lex_str))) { MYSQL_YYABORT; } if (lex->copy_db_to(&db.str, &db.length)) MYSQL_YYABORT; (yyval.spname)= new sp_name(db, (yyvsp[0].lex_str), false); if ((yyval.spname)) (yyval.spname)->init_qname(thd); } break; case 150: #line 1962 "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].num); lex->udf.dl=(yyvsp[0].lex_str).str; } break; case 151: #line 1988 "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 2031 "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 2039 "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 2047 "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[0].num) == MYSQL_TYPE_STRING || (yyvsp[0].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[0].num), &sp->m_return_field_def)) MYSQL_YYABORT; bzero((char *)&lex->sp_chistics, sizeof(st_sp_chistics)); } break; case 155: #line 2070 "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 2079 "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[-10].ulong_num); sp->restore_thd_mem_root(thd); } break; case 157: #line 2136 "sql_yacc.yy" {} break; case 158: #line 2137 "sql_yacc.yy" {} break; case 159: #line 2141 "sql_yacc.yy" {} break; case 160: #line 2142 "sql_yacc.yy" {} break; case 161: #line 2148 "sql_yacc.yy" { Lex->sp_chistics.comment= (yyvsp[0].lex_str); } break; case 162: #line 2150 "sql_yacc.yy" { /* Just parse it, we only have one language for now. */ } break; case 163: #line 2152 "sql_yacc.yy" { Lex->sp_chistics.daccess= SP_NO_SQL; } break; case 164: #line 2154 "sql_yacc.yy" { Lex->sp_chistics.daccess= SP_CONTAINS_SQL; } break; case 165: #line 2156 "sql_yacc.yy" { Lex->sp_chistics.daccess= SP_READS_SQL_DATA; } break; case 166: #line 2158 "sql_yacc.yy" { Lex->sp_chistics.daccess= SP_MODIFIES_SQL_DATA; } break; case 167: #line 2160 "sql_yacc.yy" { } break; case 168: #line 2165 "sql_yacc.yy" { } break; case 169: #line 2166 "sql_yacc.yy" { Lex->sp_chistics.detistic= TRUE; } break; case 170: #line 2167 "sql_yacc.yy" { Lex->sp_chistics.detistic= FALSE; } break; case 171: #line 2172 "sql_yacc.yy" { Lex->sp_chistics.suid= SP_IS_SUID; } break; case 172: #line 2176 "sql_yacc.yy" { Lex->sp_chistics.suid= SP_IS_NOT_SUID; } break; case 173: #line 2183 "sql_yacc.yy" { LEX *lex = Lex; lex->sql_command= SQLCOM_CALL; lex->spname= (yyvsp[0].spname); lex->value_list.empty(); sp_add_used_routine(lex, YYTHD, (yyvsp[0].spname), TYPE_ENUM_PROCEDURE); } break; case 174: #line 2191 "sql_yacc.yy" {} break; case 179: #line 2207 "sql_yacc.yy" { Lex->value_list.push_back((yyvsp[0].item)); } break; case 180: #line 2211 "sql_yacc.yy" { Lex->value_list.push_back((yyvsp[0].item)); } break; case 185: #line 2229 "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 2249 "sql_yacc.yy" { LEX *lex= Lex; sp_pcontext *spc= lex->spcont; if (spc->find_variable(&(yyvsp[-2].lex_str), TRUE)) { my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[-2].lex_str).str); MYSQL_YYABORT; } sp_variable_t *spvar= spc->push_variable(&(yyvsp[-2].lex_str), (enum enum_field_types)(yyvsp[0].num), sp_param_in); if (lex->sphead->fill_field_definition(YYTHD, lex, (enum enum_field_types) (yyvsp[0].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 2286 "sql_yacc.yy" { LEX *lex= Lex; sp_pcontext *spc= lex->spcont; if (spc->find_variable(&(yyvsp[-1].lex_str), TRUE)) { my_error(ER_SP_DUP_PARAM, MYF(0), (yyvsp[-1].lex_str).str); MYSQL_YYABORT; } sp_variable_t *spvar= spc->push_variable(&(yyvsp[-1].lex_str), (enum enum_field_types)(yyvsp[0].num), (sp_param_mode_t)(yyvsp[-3].num)); if (lex->sphead->fill_field_definition(YYTHD, lex, (enum enum_field_types) (yyvsp[0].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 2311 "sql_yacc.yy" { (yyval.num)= sp_param_in; } break; case 193: #line 2312 "sql_yacc.yy" { (yyval.num)= sp_param_in; } break; case 194: #line 2313 "sql_yacc.yy" { (yyval.num)= sp_param_out; } break; case 195: #line 2314 "sql_yacc.yy" { (yyval.num)= sp_param_inout; } break; case 196: #line 2318 "sql_yacc.yy" {} break; case 198: #line 2323 "sql_yacc.yy" {} break; case 200: #line 2329 "sql_yacc.yy" { (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; } break; case 201: #line 2333 "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[-1].spblock).vars || (yyvsp[-1].spblock).conds) && ((yyvsp[-2].spblock).curs || (yyvsp[-2].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[-1].spblock).curs && (yyvsp[-2].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[-2].spblock).vars + (yyvsp[-1].spblock).vars; (yyval.spblock).conds= (yyvsp[-2].spblock).conds + (yyvsp[-1].spblock).conds; (yyval.spblock).hndlrs= (yyvsp[-2].spblock).hndlrs + (yyvsp[-1].spblock).hndlrs; (yyval.spblock).curs= (yyvsp[-2].spblock).curs + (yyvsp[-1].spblock).curs; } break; case 202: #line 2359 "sql_yacc.yy" { LEX *lex= Lex; lex->sphead->reset_lex(YYTHD); lex->spcont->declare_var_boundary((yyvsp[0].num)); } break; case 203: #line 2367 "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[-1].num); Item *dflt_value_item= (yyvsp[0].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[-3].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[-3].num); (yyval.spblock).conds= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; } break; case 204: #line 2415 "sql_yacc.yy" { LEX *lex= Lex; sp_pcontext *spc= lex->spcont; if (spc->find_cond(&(yyvsp[-3].lex_str), TRUE)) { my_error(ER_SP_DUP_COND, MYF(0), (yyvsp[-3].lex_str).str); MYSQL_YYABORT; } YYTHD->lex->spcont->push_cond(&(yyvsp[-3].lex_str), (yyvsp[0].spcondtype)); (yyval.spblock).vars= (yyval.spblock).hndlrs= (yyval.spblock).curs= 0; (yyval.spblock).conds= 1; } break; case 205: #line 2429 "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].num), ctx->current_var_count()); sp->add_instr(i); sp->push_backpatch(i, ctx->push_label((char *)"", 0)); } break; case 206: #line 2444 "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[-5].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[-1].num); lex->spcont->add_handlers((yyvsp[-1].num)); } break; case 207: #line 2473 "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[-3].lex_str), &offp, TRUE)) { my_error(ER_SP_DUP_CURS, MYF(0), (yyvsp[-3].lex_str).str); delete (yyvsp[0].lex); MYSQL_YYABORT; } i= new sp_instr_cpush(sp->instructions(), ctx, (yyvsp[0].lex), ctx->current_cursor_count()); sp->add_instr(i); ctx->push_cursor(&(yyvsp[-3].lex_str)); (yyval.spblock).vars= (yyval.spblock).conds= (yyval.spblock).hndlrs= 0; (yyval.spblock).curs= 1; } break; case 208: #line 2496 "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 2507 "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 2530 "sql_yacc.yy" { (yyval.num)= SP_HANDLER_EXIT; } break; case 211: #line 2531 "sql_yacc.yy" { (yyval.num)= SP_HANDLER_CONTINUE; } break; case 212: #line 2537 "sql_yacc.yy" { (yyval.num)= 1; } break; case 213: #line 2539 "sql_yacc.yy" { (yyval.num)+= 1; } break; case 214: #line 2544 "sql_yacc.yy" { LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *ctx= lex->spcont->parent_context(); if (ctx->find_handler((yyvsp[0].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[0].spcondtype)); ctx->push_handler((yyvsp[0].spcondtype)); } } break; case 215: #line 2567 "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[0].ulong_num); } break; case 216: #line 2573 "sql_yacc.yy" { /* SQLSTATE */ if (!sp_cond_check(&(yyvsp[0].lex_str))) { my_error(ER_SP_BAD_SQLSTATE, MYF(0), (yyvsp[0].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[0].lex_str).str, 5); (yyval.spcondtype)->sqlstate[5]= '\0'; } break; case 217: #line 2587 "sql_yacc.yy" {} break; case 218: #line 2588 "sql_yacc.yy" {} break; case 219: #line 2593 "sql_yacc.yy" { (yyval.spcondtype)= (yyvsp[0].spcondtype); } break; case 220: #line 2597 "sql_yacc.yy" { (yyval.spcondtype)= Lex->spcont->find_cond(&(yyvsp[0].lex_str)); if ((yyval.spcondtype) == NULL) { my_error(ER_SP_COND_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } } break; case 221: #line 2606 "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 2611 "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 2616 "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 2624 "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[0].lex_str), TRUE)) { my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } spc->push_variable(&(yyvsp[0].lex_str), (enum_field_types)0, sp_param_in); (yyval.num)= 1; } break; case 225: #line 2639 "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[0].lex_str), TRUE)) { my_error(ER_SP_DUP_VAR, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } spc->push_variable(&(yyvsp[0].lex_str), (enum_field_types)0, sp_param_in); (yyval.num)= (yyvsp[-2].num) + 1; } break; case 226: #line 2656 "sql_yacc.yy" { (yyval.item) = NULL; } break; case 227: #line 2657 "sql_yacc.yy" { (yyval.item) = (yyvsp[0].item); } break; case 239: #line 2675 "sql_yacc.yy" { Lex->sphead->new_cont_backpatch(NULL); } break; case 240: #line 2677 "sql_yacc.yy" { Lex->sphead->do_cont_backpatch(); } break; case 241: #line 2681 "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 2690 "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 2734 "sql_yacc.yy" { Lex->sphead->reset_lex(YYTHD); } break; case 244: #line 2736 "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[0].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 2759 "sql_yacc.yy" { /* Unlabeled controls get a secret label. */ LEX *lex= Lex; lex->spcont->push_label((char *)"", lex->sphead->instructions()); } break; case 246: #line 2765 "sql_yacc.yy" { LEX *lex= Lex; lex->sphead->backpatch(lex->spcont->pop_label()); } break; case 247: #line 2774 "sql_yacc.yy" { LEX *lex= Lex; sp_head *sp = lex->sphead; sp_pcontext *ctx= lex->spcont; sp_label_t *lab= ctx->find_label((yyvsp[0].lex_str).str); if (! lab) { my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "LEAVE", (yyvsp[0].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 2806 "sql_yacc.yy" { LEX *lex= Lex; sp_head *sp= lex->sphead; sp_pcontext *ctx= lex->spcont; sp_label_t *lab= ctx->find_label((yyvsp[0].lex_str).str); if (! lab || lab->type != SP_LAB_ITER) { my_error(ER_SP_LILABEL_MISMATCH, MYF(0), "ITERATE", (yyvsp[0].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 2837 "sql_yacc.yy" { LEX *lex= Lex; sp_head *sp= lex->sphead; uint offset; sp_instr_copen *i; if (! lex->spcont->find_cursor(&(yyvsp[0].lex_str), &offset)) { my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } i= new sp_instr_copen(sp->instructions(), lex->spcont, offset); sp->add_instr(i); } break; case 250: #line 2855 "sql_yacc.yy" { LEX *lex= Lex; sp_head *sp= lex->sphead; uint offset; sp_instr_cfetch *i; if (! lex->spcont->find_cursor(&(yyvsp[-1].lex_str), &offset)) { my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[-1].lex_str).str); MYSQL_YYABORT; } i= new sp_instr_cfetch(sp->instructions(), lex->spcont, offset); sp->add_instr(i); } break; case 251: #line 2870 "sql_yacc.yy" { } break; case 252: #line 2875 "sql_yacc.yy" { LEX *lex= Lex; sp_head *sp= lex->sphead; uint offset; sp_instr_cclose *i; if (! lex->spcont->find_cursor(&(yyvsp[0].lex_str), &offset)) { my_error(ER_SP_CURSOR_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } i= new sp_instr_cclose(sp->instructions(), lex->spcont, offset); sp->add_instr(i); } break; case 256: #line 2899 "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[0].lex_str)))) { my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].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 2920 "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[0].lex_str)))) { my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].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 2942 "sql_yacc.yy" { Lex->sphead->reset_lex(YYTHD); } break; case 259: #line 2944 "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[-1].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 2958 "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 2969 "sql_yacc.yy" { LEX *lex= Lex; lex->sphead->backpatch(lex->spcont->pop_label()); } break; case 267: #line 2989 "sql_yacc.yy" { LEX *lex= Lex; case_stmt_action_case(lex); lex->sphead->reset_lex(YYTHD); /* For expr $3 */ } break; case 268: #line 2995 "sql_yacc.yy" { LEX *lex= Lex; if (case_stmt_action_expr(lex, (yyvsp[0].item))) MYSQL_YYABORT; lex->sphead->restore_lex(YYTHD); /* For expr $3 */ } break; case 269: #line 3006 "sql_yacc.yy" { LEX *lex= Lex; case_stmt_action_end_case(lex, true); } break; case 270: #line 3014 "sql_yacc.yy" { LEX *lex= Lex; case_stmt_action_case(lex); } break; case 271: #line 3022 "sql_yacc.yy" { LEX *lex= Lex; case_stmt_action_end_case(lex, false); } break; case 276: #line 3040 "sql_yacc.yy" { Lex->sphead->reset_lex(YYTHD); /* For expr $3 */ } break; case 277: #line 3044 "sql_yacc.yy" { /* Simple case: = */ LEX *lex= Lex; case_stmt_action_when(lex, (yyvsp[0].item), true); lex->sphead->restore_lex(YYTHD); /* For expr $3 */ } break; case 278: #line 3053 "sql_yacc.yy" { LEX *lex= Lex; case_stmt_action_then(lex); } break; case 279: #line 3061 "sql_yacc.yy" { Lex->sphead->reset_lex(YYTHD); /* For expr $3 */ } break; case 280: #line 3065 "sql_yacc.yy" { LEX *lex= Lex; case_stmt_action_when(lex, (yyvsp[0].item), false); lex->sphead->restore_lex(YYTHD); /* For expr $3 */ } break; case 281: #line 3072 "sql_yacc.yy" { LEX *lex= Lex; case_stmt_action_then(lex); } break; case 282: #line 3080 "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 3093 "sql_yacc.yy" { LEX *lex= Lex; sp_pcontext *ctx= lex->spcont; sp_label_t *lab= ctx->find_label((yyvsp[-1].lex_str).str); if (lab) { my_error(ER_SP_LABEL_REDEFINE, MYF(0), (yyvsp[-1].lex_str).str); MYSQL_YYABORT; } else { lab= lex->spcont->push_label((yyvsp[-1].lex_str).str, lex->sphead->instructions()); lab->type= SP_LAB_ITER; } } break; case 285: #line 3111 "sql_yacc.yy" { LEX *lex= Lex; if ((yyvsp[0].lex_str).str) { sp_label_t *lab= lex->spcont->find_label((yyvsp[0].lex_str).str); if (!lab || my_strcasecmp(system_charset_info, (yyvsp[0].lex_str).str, lab->name) != 0) { my_error(ER_SP_LABEL_MISMATCH, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } } lex->sphead->backpatch(lex->spcont->pop_label()); } break; case 286: #line 3130 "sql_yacc.yy" { (yyval.lex_str)= null_lex_str; } break; case 287: #line 3131 "sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].lex_str); } break; case 288: #line 3136 "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 3148 "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[-2].spblock).hndlrs) sp->add_instr(new sp_instr_hpop(sp->instructions(), ctx, (yyvsp[-2].spblock).hndlrs)); if ((yyvsp[-2].spblock).curs) sp->add_instr(new sp_instr_cpop(sp->instructions(), ctx, (yyvsp[-2].spblock).curs)); lex->spcont= ctx->pop_context(); } break; case 290: #line 3164 "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 3173 "sql_yacc.yy" { Lex->sphead->reset_lex(YYTHD); } break; case 292: #line 3175 "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[-1].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 3189 "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 3199 "sql_yacc.yy" { Lex->sphead->reset_lex(YYTHD); } break; case 295: #line 3201 "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[-2].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 3217 "sql_yacc.yy" { Lex->trg_chistics.action_time= TRG_ACTION_BEFORE; } break; case 297: #line 3219 "sql_yacc.yy" { Lex->trg_chistics.action_time= TRG_ACTION_AFTER; } break; case 298: #line 3224 "sql_yacc.yy" { Lex->trg_chistics.event= TRG_EVENT_INSERT; } break; case 299: #line 3226 "sql_yacc.yy" { Lex->trg_chistics.event= TRG_EVENT_UPDATE; } break; case 300: #line 3228 "sql_yacc.yy" { Lex->trg_chistics.event= TRG_EVENT_DELETE; } break; case 304: #line 3262 "sql_yacc.yy" {} break; case 305: #line 3264 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].lex_str).str; } break; case 306: #line 3273 "sql_yacc.yy" { Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_ADD_FILE; } break; case 307: #line 3280 "sql_yacc.yy" { Lex->alter_tablespace_info->ts_alter_tablespace_type= ALTER_TABLESPACE_DROP_FILE; } break; case 312: #line 3302 "sql_yacc.yy" {} break; case 320: #line 3319 "sql_yacc.yy" {} break; case 333: #line 3341 "sql_yacc.yy" {} break; case 343: #line 3360 "sql_yacc.yy" {} break; case 355: #line 3381 "sql_yacc.yy" {} break; case 363: #line 3400 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->data_file_name= (yyvsp[0].lex_str).str; } break; case 364: #line 3407 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->undo_file_name= (yyvsp[0].lex_str).str; } break; case 365: #line 3414 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->redo_file_name= (yyvsp[0].lex_str).str; } break; case 366: #line 3421 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info= new st_alter_tablespace(); lex->alter_tablespace_info->tablespace_name= (yyvsp[0].lex_str).str; lex->sql_command= SQLCOM_ALTER_TABLESPACE; } break; case 367: #line 3430 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info= new st_alter_tablespace(); lex->alter_tablespace_info->logfile_group_name= (yyvsp[0].lex_str).str; lex->sql_command= SQLCOM_ALTER_TABLESPACE; } break; case 368: #line 3439 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_READ_ONLY; } break; case 369: #line 3444 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_READ_WRITE; } break; case 370: #line 3449 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_access_mode= TS_NOT_ACCESSIBLE; } break; case 371: #line 3456 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->initial_size= (yyvsp[0].ulonglong_number); } break; case 372: #line 3463 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->autoextend_size= (yyvsp[0].ulonglong_number); } break; case 373: #line 3470 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->max_size= (yyvsp[0].ulonglong_number); } break; case 374: #line 3477 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->extent_size= (yyvsp[0].ulonglong_number); } break; case 375: #line 3484 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->undo_buffer_size= (yyvsp[0].ulonglong_number); } break; case 376: #line 3491 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->redo_buffer_size= (yyvsp[0].ulonglong_number); } break; case 377: #line 3498 "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[0].ulong_num); } break; case 378: #line 3510 "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[0].lex_str).str; } break; case 379: #line 3522 "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[0].db_type); } break; case 382: #line 3540 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->wait_until_completed= TRUE; } break; case 383: #line 3545 "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 3556 "sql_yacc.yy" { (yyval.ulonglong_number)= (yyvsp[0].ulong_num);} break; case 385: #line 3558 "sql_yacc.yy" { ulonglong number; uint text_shift_number= 0; longlong prefix_number; char *start_ptr= (yyvsp[0].lex_str).str; uint str_len= (yyvsp[0].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 3608 "sql_yacc.yy" {} break; case 387: #line 3610 "sql_yacc.yy" {} break; case 388: #line 3611 "sql_yacc.yy" {} break; case 389: #line 3613 "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[0].table), NULL, 0, TL_READ)) MYSQL_YYABORT; } break; case 390: #line 3622 "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[-1].table), NULL, 0, TL_READ)) MYSQL_YYABORT; } break; case 391: #line 3634 "sql_yacc.yy" {} break; case 392: #line 3635 "sql_yacc.yy" {} break; case 393: #line 3636 "sql_yacc.yy" {} break; case 394: #line 3638 "sql_yacc.yy" { Select->set_braces(1);} break; case 395: #line 3638 "sql_yacc.yy" {} break; case 396: #line 3642 "sql_yacc.yy" {} break; case 397: #line 3644 "sql_yacc.yy" { Select->set_braces(0);} break; case 398: #line 3644 "sql_yacc.yy" {} break; case 399: #line 3646 "sql_yacc.yy" { Select->set_braces(1);} break; case 400: #line 3646 "sql_yacc.yy" {} break; case 401: #line 3674 "sql_yacc.yy" {} break; case 403: #line 3680 "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 3712 "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 3724 "sql_yacc.yy" {} break; case 407: #line 3728 "sql_yacc.yy" {} break; case 408: #line 3728 "sql_yacc.yy" {} break; case 410: #line 3733 "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 3739 "sql_yacc.yy" { Lex->part_info->part_type= HASH_PARTITION; } break; case 412: #line 3740 "sql_yacc.yy" {} break; case 413: #line 3742 "sql_yacc.yy" { Lex->part_info->part_type= RANGE_PARTITION; } break; case 414: #line 3743 "sql_yacc.yy" {} break; case 415: #line 3745 "sql_yacc.yy" { Lex->part_info->part_type= LIST_PARTITION; } break; case 416: #line 3746 "sql_yacc.yy" {} break; case 417: #line 3750 "sql_yacc.yy" {} break; case 418: #line 3752 "sql_yacc.yy" { Lex->part_info->linear_hash_ind= TRUE;} break; case 419: #line 3756 "sql_yacc.yy" {} break; case 420: #line 3757 "sql_yacc.yy" {} break; case 421: #line 3761 "sql_yacc.yy" {} break; case 422: #line 3762 "sql_yacc.yy" {} break; case 423: #line 3767 "sql_yacc.yy" { if (Lex->part_info->part_field_list.push_back((yyvsp[0].lex_str).str)) { mem_alloc_error(1); MYSQL_YYABORT; } } break; case 424: #line 3778 "sql_yacc.yy" { LEX *lex= Lex; uint expr_len= (uint)((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)) - 1; lex->part_info->list_of_part_fields= FALSE; lex->part_info->part_expr= (yyvsp[-2].item); lex->part_info->part_func_string= (char* ) sql_memdup((yyvsp[-3].simple_string)+1, expr_len); lex->part_info->part_func_len= expr_len; } break; case 425: #line 3790 "sql_yacc.yy" { LEX *lex= Lex; uint expr_len= (uint)((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)) - 1; lex->part_info->list_of_subpart_fields= FALSE; lex->part_info->subpart_expr= (yyvsp[-2].item); lex->part_info->subpart_func_string= (char* ) sql_memdup((yyvsp[-3].simple_string)+1, expr_len); lex->part_info->subpart_func_len= expr_len; } break; case 426: #line 3802 "sql_yacc.yy" {} break; case 427: #line 3804 "sql_yacc.yy" { uint no_parts= (yyvsp[0].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 3819 "sql_yacc.yy" {} break; case 429: #line 3821 "sql_yacc.yy" { Lex->part_info->subpart_type= HASH_PARTITION; } break; case 430: #line 3822 "sql_yacc.yy" {} break; case 431: #line 3825 "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 3830 "sql_yacc.yy" {} break; case 433: #line 3834 "sql_yacc.yy" {} break; case 434: #line 3835 "sql_yacc.yy" {} break; case 435: #line 3840 "sql_yacc.yy" { if (Lex->part_info->subpart_field_list.push_back((yyvsp[0].lex_str).str)) { mem_alloc_error(1); MYSQL_YYABORT; } } break; case 436: #line 3851 "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[0].item); } break; case 437: #line 3866 "sql_yacc.yy" {} break; case 438: #line 3868 "sql_yacc.yy" { uint no_parts= (yyvsp[0].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 3883 "sql_yacc.yy" {} break; case 440: #line 3885 "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 3907 "sql_yacc.yy" {} break; case 442: #line 3908 "sql_yacc.yy" {} break; case 443: #line 3913 "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 3929 "sql_yacc.yy" {} break; case 445: #line 3930 "sql_yacc.yy" {} break; case 446: #line 3931 "sql_yacc.yy" {} break; case 447: #line 3932 "sql_yacc.yy" {} break; case 448: #line 3937 "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[0].lex_str).str; } break; case 449: #line 3947 "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 3968 "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 3983 "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 4001 "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 4013 "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 4034 "sql_yacc.yy" { partition_info *part_info= Lex->part_info; if (!((yyvsp[-1].p_elem_value)->unsigned_flag)) part_info->curr_part_elem->signed_flag= TRUE; part_info->curr_part_elem->range_value= (yyvsp[-1].p_elem_value)->value; } break; case 457: #line 4043 "sql_yacc.yy" {} break; case 458: #line 4044 "sql_yacc.yy" {} break; case 459: #line 4049 "sql_yacc.yy" { part_elem_value *value_ptr= (yyvsp[0].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 4066 "sql_yacc.yy" { Item *part_expr= (yyvsp[0].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 4124 "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 4133 "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 4159 "sql_yacc.yy" {} break; case 464: #line 4160 "sql_yacc.yy" {} break; case 465: #line 4165 "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 4181 "sql_yacc.yy" {} break; case 467: #line 4186 "sql_yacc.yy" { Lex->part_info->curr_part_elem->partition_name= (yyvsp[0].lex_str).str; } break; case 468: #line 4190 "sql_yacc.yy" {} break; case 469: #line 4191 "sql_yacc.yy" {} break; case 470: #line 4195 "sql_yacc.yy" {} break; case 471: #line 4196 "sql_yacc.yy" {} break; case 472: #line 4201 "sql_yacc.yy" { Lex->part_info->curr_part_elem->tablespace_name= (yyvsp[0].lex_str).str; } break; case 473: #line 4203 "sql_yacc.yy" { LEX *lex= Lex; lex->part_info->curr_part_elem->engine_type= (yyvsp[0].db_type); lex->part_info->default_engine_type= (yyvsp[0].db_type); } break; case 474: #line 4209 "sql_yacc.yy" { Lex->part_info->curr_part_elem->nodegroup_id= (uint16) (yyvsp[0].ulong_num); } break; case 475: #line 4211 "sql_yacc.yy" { Lex->part_info->curr_part_elem->part_max_rows= (ha_rows) (yyvsp[0].ulonglong_number); } break; case 476: #line 4213 "sql_yacc.yy" { Lex->part_info->curr_part_elem->part_min_rows= (ha_rows) (yyvsp[0].ulonglong_number); } break; case 477: #line 4215 "sql_yacc.yy" { Lex->part_info->curr_part_elem->data_file_name= (yyvsp[0].lex_str).str; } break; case 478: #line 4217 "sql_yacc.yy" { Lex->part_info->curr_part_elem->index_file_name= (yyvsp[0].lex_str).str; } break; case 479: #line 4219 "sql_yacc.yy" { Lex->part_info->curr_part_elem->part_comment= (yyvsp[0].lex_str).str; } break; case 480: #line 4228 "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 4244 "sql_yacc.yy" { Select->parsing_place= NO_MATTER; } break; case 482: #line 4248 "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 4258 "sql_yacc.yy" {} break; case 484: #line 4259 "sql_yacc.yy" {} break; case 485: #line 4262 "sql_yacc.yy" {} break; case 486: #line 4263 "sql_yacc.yy" {} break; case 487: #line 4266 "sql_yacc.yy" {} break; case 488: #line 4267 "sql_yacc.yy" {} break; case 489: #line 4270 "sql_yacc.yy" {} break; case 490: #line 4271 "sql_yacc.yy" {} break; case 491: #line 4274 "sql_yacc.yy" { (yyval.num)= 0; } break; case 492: #line 4275 "sql_yacc.yy" { (yyval.num)= (yyvsp[0].num);} break; case 493: #line 4278 "sql_yacc.yy" { (yyval.num)=(yyvsp[0].num); } break; case 494: #line 4279 "sql_yacc.yy" { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); } break; case 495: #line 4282 "sql_yacc.yy" { (yyval.num)=HA_LEX_CREATE_TMP_TABLE; } break; case 496: #line 4285 "sql_yacc.yy" { (yyval.num)= 0; } break; case 497: #line 4286 "sql_yacc.yy" { (yyval.num)=HA_LEX_CREATE_IF_NOT_EXISTS; } break; case 505: #line 4302 "sql_yacc.yy" { Lex->create_info.db_type= (yyvsp[0].db_type); Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; } break; case 506: #line 4304 "sql_yacc.yy" { Lex->create_info.db_type= (yyvsp[0].db_type); WARN_DEPRECATED(yythd, "5.2", "TYPE=storage_engine", "'ENGINE=storage_engine'"); Lex->create_info.used_fields|= HA_CREATE_USED_ENGINE; } break; case 507: #line 4310 "sql_yacc.yy" { Lex->create_info.max_rows= (yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_MAX_ROWS;} break; case 508: #line 4311 "sql_yacc.yy" { Lex->create_info.min_rows= (yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_MIN_ROWS;} break; case 509: #line 4312 "sql_yacc.yy" { Lex->create_info.avg_row_length=(yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_AVG_ROW_LENGTH;} break; case 510: #line 4313 "sql_yacc.yy" { Lex->create_info.password=(yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_PASSWORD; } break; case 511: #line 4314 "sql_yacc.yy" { Lex->create_info.comment=(yyvsp[0].lex_str); Lex->create_info.used_fields|= HA_CREATE_USED_COMMENT; } break; case 512: #line 4315 "sql_yacc.yy" { Lex->create_info.auto_increment_value=(yyvsp[0].ulonglong_number); Lex->create_info.used_fields|= HA_CREATE_USED_AUTO;} break; case 513: #line 4317 "sql_yacc.yy" { switch((yyvsp[0].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 514: #line 4332 "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 515: #line 4337 "sql_yacc.yy" { Lex->create_info.table_options|= (yyvsp[0].ulong_num) ? HA_OPTION_CHECKSUM : HA_OPTION_NO_CHECKSUM; Lex->create_info.used_fields|= HA_CREATE_USED_CHECKSUM; } break; case 516: #line 4338 "sql_yacc.yy" { Lex->create_info.table_options|= (yyvsp[0].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 517: #line 4339 "sql_yacc.yy" { Lex->create_info.row_type= (yyvsp[0].row_type); Lex->create_info.used_fields|= HA_CREATE_USED_ROW_FORMAT; } break; case 518: #line 4341 "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 521: #line 4357 "sql_yacc.yy" { Lex->create_info.merge_insert_method= (yyvsp[0].ulong_num); Lex->create_info.used_fields|= HA_CREATE_USED_INSERT_METHOD;} break; case 522: #line 4358 "sql_yacc.yy" { Lex->create_info.data_file_name= (yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_DATADIR; } break; case 523: #line 4359 "sql_yacc.yy" { Lex->create_info.index_file_name= (yyvsp[0].lex_str).str; Lex->create_info.used_fields|= HA_CREATE_USED_INDEXDIR; } break; case 524: #line 4360 "sql_yacc.yy" {Lex->create_info.tablespace= (yyvsp[0].lex_str).str;} break; case 525: #line 4361 "sql_yacc.yy" {Lex->create_info.storage_media= HA_SM_DISK;} break; case 526: #line 4362 "sql_yacc.yy" {Lex->create_info.storage_media= HA_SM_MEMORY;} break; case 527: #line 4363 "sql_yacc.yy" { Lex->create_info.connect_string.str= (yyvsp[0].lex_str).str; Lex->create_info.connect_string.length= (yyvsp[0].lex_str).length; Lex->create_info.used_fields|= HA_CREATE_USED_CONNECTION; } break; case 528: #line 4365 "sql_yacc.yy" { Lex->create_info.used_fields|= HA_CREATE_USED_KEY_BLOCK_SIZE; Lex->create_info.key_block_size= (yyvsp[0].ulong_num); } break; case 529: #line 4370 "sql_yacc.yy" { Lex->create_info.used_fields|= HA_CREATE_USED_TRANSACTIONAL; Lex->create_info.transactional= ((yyvsp[0].ulong_num) != 0 ? HA_CHOICE_YES : HA_CHOICE_NO); } break; case 530: #line 4379 "sql_yacc.yy" { HA_CREATE_INFO *cinfo= &Lex->create_info; if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) && cinfo->default_table_charset && (yyvsp[0].charset) && !my_charset_same(cinfo->default_table_charset,(yyvsp[0].charset))) { my_error(ER_CONFLICTING_DECLARATIONS, MYF(0), "CHARACTER SET ", cinfo->default_table_charset->csname, "CHARACTER SET ", (yyvsp[0].charset)->csname); MYSQL_YYABORT; } Lex->create_info.default_table_charset= (yyvsp[0].charset); Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET; } break; case 531: #line 4396 "sql_yacc.yy" { HA_CREATE_INFO *cinfo= &Lex->create_info; if ((cinfo->used_fields & HA_CREATE_USED_DEFAULT_CHARSET) && cinfo->default_table_charset && (yyvsp[0].charset) && !my_charset_same(cinfo->default_table_charset,(yyvsp[0].charset))) { my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), (yyvsp[0].charset)->name, cinfo->default_table_charset->csname); MYSQL_YYABORT; } Lex->create_info.default_table_charset= (yyvsp[0].charset); Lex->create_info.used_fields|= HA_CREATE_USED_DEFAULT_CHARSET; } break; case 532: #line 4412 "sql_yacc.yy" { plugin_ref plugin= ha_resolve_by_name(YYTHD, &(yyvsp[0].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[0].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[0].lex_str).str); } } break; case 533: #line 4435 "sql_yacc.yy" { plugin_ref plugin; if ((plugin= ha_resolve_by_name(YYTHD, &(yyvsp[0].lex_str)))) (yyval.db_type)= plugin_data(plugin, handlerton*); else { my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } } break; case 534: #line 4448 "sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_DEFAULT; } break; case 535: #line 4449 "sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_FIXED; } break; case 536: #line 4450 "sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_DYNAMIC; } break; case 537: #line 4451 "sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_COMPRESSED; } break; case 538: #line 4452 "sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_REDUNDANT; } break; case 539: #line 4453 "sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_COMPACT; } break; case 540: #line 4454 "sql_yacc.yy" { (yyval.row_type)= ROW_TYPE_PAGE; } break; case 541: #line 4457 "sql_yacc.yy" { (yyval.ulong_num)= MERGE_INSERT_DISABLED; } break; case 542: #line 4458 "sql_yacc.yy" { (yyval.ulong_num)= MERGE_INSERT_TO_FIRST; } break; case 543: #line 4459 "sql_yacc.yy" { (yyval.ulong_num)= MERGE_INSERT_TO_LAST; } break; case 544: #line 4462 "sql_yacc.yy" {} break; case 546: #line 4466 "sql_yacc.yy" { (yyval.udf_type) = UDFTYPE_FUNCTION; } break; case 547: #line 4467 "sql_yacc.yy" { (yyval.udf_type) = UDFTYPE_AGGREGATE; } break; case 548: #line 4470 "sql_yacc.yy" {(yyval.num) = (int) STRING_RESULT; } break; case 549: #line 4471 "sql_yacc.yy" {(yyval.num) = (int) REAL_RESULT; } break; case 550: #line 4472 "sql_yacc.yy" {(yyval.num) = (int) DECIMAL_RESULT; } break; case 551: #line 4473 "sql_yacc.yy" {(yyval.num) = (int) INT_RESULT; } break; case 557: #line 4488 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ } break; case 558: #line 4495 "sql_yacc.yy" { LEX *lex=Lex; if ((yyvsp[-6].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[-6].key_type), (yyvsp[-5].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 559: #line 4509 "sql_yacc.yy" { LEX *lex=Lex; const char *key_name= (yyvsp[-5].simple_string) ? (yyvsp[-5].simple_string) : (yyvsp[-7].simple_string); Key *key= new Key((yyvsp[-6].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 560: #line 4518 "sql_yacc.yy" { LEX *lex=Lex; const char *key_name= (yyvsp[-4].simple_string) ? (yyvsp[-4].simple_string) : (yyvsp[-7].simple_string); Key *key= new Foreign_key(key_name, lex->col_list, (yyvsp[0].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 561: #line 4537 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ } break; case 562: #line 4541 "sql_yacc.yy" { Lex->col_list.empty(); /* Alloced by sql_alloc */ } break; case 566: #line 4556 "sql_yacc.yy" { (yyval.simple_string)=(char*) 0; } break; case 567: #line 4557 "sql_yacc.yy" { (yyval.simple_string)= (yyvsp[0].simple_string); } break; case 568: #line 4561 "sql_yacc.yy" { (yyval.simple_string)=(yyvsp[0].simple_string); } break; case 569: #line 4566 "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; } break; case 570: #line 4574 "sql_yacc.yy" { LEX *lex=Lex; if (add_field_to_list(lex->thd, &(yyvsp[-3].lex_str), (enum enum_field_types) (yyvsp[-1].num), lex->length,lex->dec,lex->type, lex->default_value, lex->on_update_value, &lex->comment, lex->change,&lex->interval_list,lex->charset, lex->uint_geom_type)) MYSQL_YYABORT; } break; case 571: #line 4586 "sql_yacc.yy" { (yyval.num)=(yyvsp[-2].num); } break; case 572: #line 4587 "sql_yacc.yy" { (yyval.num)=(yyvsp[-2].num); } break; case 573: #line 4588 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_FLOAT; } break; case 574: #line 4589 "sql_yacc.yy" { Lex->length= (char*) "1"; (yyval.num)=MYSQL_TYPE_BIT; } break; case 575: #line 4591 "sql_yacc.yy" { Lex->length= (yyvsp[-1].lex_str).str; (yyval.num)=MYSQL_TYPE_BIT; } break; case 576: #line 4593 "sql_yacc.yy" { Lex->length=(char*) "1"; (yyval.num)=MYSQL_TYPE_TINY; } break; case 577: #line 4595 "sql_yacc.yy" { Lex->length=(char*) "1"; (yyval.num)=MYSQL_TYPE_TINY; } break; case 578: #line 4597 "sql_yacc.yy" { Lex->length=(yyvsp[-2].lex_str).str; (yyval.num)=MYSQL_TYPE_STRING; } break; case 579: #line 4599 "sql_yacc.yy" { Lex->length=(char*) "1"; (yyval.num)=MYSQL_TYPE_STRING; } break; case 580: #line 4601 "sql_yacc.yy" { Lex->length=(yyvsp[-2].lex_str).str; (yyval.num)=MYSQL_TYPE_STRING; Lex->charset=national_charset_info; } break; case 581: #line 4604 "sql_yacc.yy" { Lex->length=(char*) "1"; (yyval.num)=MYSQL_TYPE_STRING; Lex->charset=national_charset_info; } break; case 582: #line 4607 "sql_yacc.yy" { Lex->length=(yyvsp[-1].lex_str).str; Lex->charset=&my_charset_bin; (yyval.num)=MYSQL_TYPE_STRING; } break; case 583: #line 4610 "sql_yacc.yy" { Lex->length= (char*) "1"; Lex->charset=&my_charset_bin; (yyval.num)=MYSQL_TYPE_STRING; } break; case 584: #line 4613 "sql_yacc.yy" { Lex->length=(yyvsp[-2].lex_str).str; (yyval.num)= MYSQL_TYPE_VARCHAR; } break; case 585: #line 4615 "sql_yacc.yy" { Lex->length=(yyvsp[-2].lex_str).str; (yyval.num)= MYSQL_TYPE_VARCHAR; Lex->charset=national_charset_info; } break; case 586: #line 4618 "sql_yacc.yy" { Lex->length=(yyvsp[-1].lex_str).str; Lex->charset=&my_charset_bin; (yyval.num)= MYSQL_TYPE_VARCHAR; } break; case 587: #line 4621 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_YEAR; } break; case 588: #line 4622 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_DATE; } break; case 589: #line 4623 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_TIME; } break; case 590: #line 4625 "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 591: #line 4637 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_DATETIME; } break; case 592: #line 4638 "sql_yacc.yy" { Lex->charset=&my_charset_bin; (yyval.num)=MYSQL_TYPE_TINY_BLOB; } break; case 593: #line 4640 "sql_yacc.yy" { Lex->charset=&my_charset_bin; (yyval.num)=MYSQL_TYPE_BLOB; } break; case 594: #line 4643 "sql_yacc.yy" { #ifdef HAVE_SPATIAL Lex->charset=&my_charset_bin; Lex->uint_geom_type= (uint)(yyvsp[0].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 595: #line 4654 "sql_yacc.yy" { Lex->charset=&my_charset_bin; (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; } break; case 596: #line 4656 "sql_yacc.yy" { Lex->charset=&my_charset_bin; (yyval.num)=MYSQL_TYPE_LONG_BLOB; } break; case 597: #line 4658 "sql_yacc.yy" { Lex->charset=&my_charset_bin; (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; } break; case 598: #line 4660 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; } break; case 599: #line 4661 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_TINY_BLOB; } break; case 600: #line 4662 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_BLOB; } break; case 601: #line 4663 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; } break; case 602: #line 4664 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_LONG_BLOB; } break; case 603: #line 4666 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;} break; case 604: #line 4668 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;} break; case 605: #line 4670 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_NEWDECIMAL;} break; case 606: #line 4671 "sql_yacc.yy" {Lex->interval_list.empty();} break; case 607: #line 4672 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_ENUM; } break; case 608: #line 4673 "sql_yacc.yy" { Lex->interval_list.empty();} break; case 609: #line 4674 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_SET; } break; case 610: #line 4675 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_MEDIUM_BLOB; } break; case 611: #line 4677 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_LONGLONG; Lex->type|= (AUTO_INCREMENT_FLAG | NOT_NULL_FLAG | UNSIGNED_FLAG | UNIQUE_FLAG); } break; case 612: #line 4685 "sql_yacc.yy" { (yyval.num)= Field::GEOM_GEOMETRY; } break; case 613: #line 4686 "sql_yacc.yy" { (yyval.num)= Field::GEOM_GEOMETRYCOLLECTION; } break; case 614: #line 4687 "sql_yacc.yy" { Lex->length= (char*)"21"; (yyval.num)= Field::GEOM_POINT; } break; case 615: #line 4690 "sql_yacc.yy" { (yyval.num)= Field::GEOM_MULTIPOINT; } break; case 616: #line 4691 "sql_yacc.yy" { (yyval.num)= Field::GEOM_LINESTRING; } break; case 617: #line 4692 "sql_yacc.yy" { (yyval.num)= Field::GEOM_MULTILINESTRING; } break; case 618: #line 4693 "sql_yacc.yy" { (yyval.num)= Field::GEOM_POLYGON; } break; case 619: #line 4694 "sql_yacc.yy" { (yyval.num)= Field::GEOM_MULTIPOLYGON; } break; case 620: #line 4698 "sql_yacc.yy" {} break; case 621: #line 4702 "sql_yacc.yy" {} break; case 622: #line 4703 "sql_yacc.yy" {} break; case 623: #line 4707 "sql_yacc.yy" {} break; case 624: #line 4708 "sql_yacc.yy" {} break; case 625: #line 4712 "sql_yacc.yy" {} break; case 626: #line 4713 "sql_yacc.yy" {} break; case 627: #line 4714 "sql_yacc.yy" {} break; case 628: #line 4715 "sql_yacc.yy" {} break; case 629: #line 4716 "sql_yacc.yy" {} break; case 630: #line 4720 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_LONG; } break; case 631: #line 4721 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_TINY; } break; case 632: #line 4722 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_SHORT; } break; case 633: #line 4723 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_INT24; } break; case 634: #line 4724 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_LONGLONG; } break; case 635: #line 4727 "sql_yacc.yy" { (yyval.num)= YYTHD->variables.sql_mode & MODE_REAL_AS_FLOAT ? MYSQL_TYPE_FLOAT : MYSQL_TYPE_DOUBLE; } break; case 636: #line 4729 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_DOUBLE; } break; case 637: #line 4730 "sql_yacc.yy" { (yyval.num)=MYSQL_TYPE_DOUBLE; } break; case 638: #line 4734 "sql_yacc.yy" { Lex->dec=Lex->length= (char*)0; } break; case 639: #line 4735 "sql_yacc.yy" { Lex->length=(yyvsp[-1].lex_str).str; Lex->dec= (char*)0; } break; case 640: #line 4736 "sql_yacc.yy" {} break; case 641: #line 4740 "sql_yacc.yy" { LEX *lex=Lex; lex->length=(yyvsp[-3].lex_str).str; lex->dec=(yyvsp[-1].lex_str).str; } break; case 642: #line 4746 "sql_yacc.yy" {} break; case 643: #line 4747 "sql_yacc.yy" {} break; case 644: #line 4750 "sql_yacc.yy" {} break; case 645: #line 4751 "sql_yacc.yy" {} break; case 646: #line 4754 "sql_yacc.yy" {} break; case 647: #line 4755 "sql_yacc.yy" { Lex->type|= UNSIGNED_FLAG;} break; case 648: #line 4756 "sql_yacc.yy" { Lex->type|= UNSIGNED_FLAG | ZEROFILL_FLAG; } break; case 649: #line 4759 "sql_yacc.yy" { Lex->length=(char*) 0; } break; case 650: #line 4760 "sql_yacc.yy" { Lex->length= (yyvsp[-1].lex_str).str; } break; case 651: #line 4763 "sql_yacc.yy" {} break; case 652: #line 4764 "sql_yacc.yy" {} break; case 653: #line 4767 "sql_yacc.yy" {} break; case 654: #line 4768 "sql_yacc.yy" {} break; case 655: #line 4771 "sql_yacc.yy" {} break; case 657: #line 4775 "sql_yacc.yy" { Lex->type&= ~ NOT_NULL_FLAG; } break; case 658: #line 4776 "sql_yacc.yy" { Lex->type|= NOT_NULL_FLAG; } break; case 659: #line 4777 "sql_yacc.yy" { Lex->default_value=(yyvsp[0].item); } break; case 660: #line 4779 "sql_yacc.yy" { Lex->on_update_value= new Item_func_now_local(); } break; case 661: #line 4780 "sql_yacc.yy" { Lex->type|= AUTO_INCREMENT_FLAG | NOT_NULL_FLAG; } break; case 662: #line 4782 "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 663: #line 4788 "sql_yacc.yy" { LEX *lex=Lex; lex->type|= PRI_KEY_FLAG | NOT_NULL_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } break; case 664: #line 4794 "sql_yacc.yy" { LEX *lex=Lex; lex->type|= UNIQUE_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } break; case 665: #line 4800 "sql_yacc.yy" { LEX *lex=Lex; lex->type|= UNIQUE_KEY_FLAG; lex->alter_info.flags|= ALTER_ADD_INDEX; } break; case 666: #line 4805 "sql_yacc.yy" { Lex->comment= (yyvsp[0].lex_str); } break; case 667: #line 4807 "sql_yacc.yy" { if (Lex->charset && !my_charset_same(Lex->charset,(yyvsp[0].charset))) { my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), (yyvsp[0].charset)->name,Lex->charset->csname); MYSQL_YYABORT; } else { Lex->charset=(yyvsp[0].charset); } } break; case 668: #line 4822 "sql_yacc.yy" { (yyval.item)= new Item_func_now_local(); } break; case 669: #line 4823 "sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } break; case 670: #line 4827 "sql_yacc.yy" {} break; case 671: #line 4828 "sql_yacc.yy" {} break; case 672: #line 4833 "sql_yacc.yy" { if (!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str,MY_CS_PRIMARY,MYF(0)))) { my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } } break; case 673: #line 4840 "sql_yacc.yy" { (yyval.charset)= &my_charset_bin; } break; case 674: #line 4844 "sql_yacc.yy" { (yyval.charset)=(yyvsp[0].charset); } break; case 675: #line 4845 "sql_yacc.yy" { (yyval.charset)=NULL; } break; case 676: #line 4848 "sql_yacc.yy" { (yyval.charset)= NULL; } break; case 677: #line 4849 "sql_yacc.yy" { (yyval.charset)= (yyvsp[0].charset); } break; case 678: #line 4854 "sql_yacc.yy" { if (!((yyval.charset)=get_charset_by_csname((yyvsp[0].lex_str).str,MY_CS_PRIMARY,MYF(0))) && !((yyval.charset)=get_old_charset_by_name((yyvsp[0].lex_str).str))) { my_error(ER_UNKNOWN_CHARACTER_SET, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } } break; case 679: #line 4862 "sql_yacc.yy" { (yyval.charset)= &my_charset_bin; } break; case 680: #line 4866 "sql_yacc.yy" { (yyval.charset)=(yyvsp[0].charset); } break; case 681: #line 4867 "sql_yacc.yy" { (yyval.charset)=NULL; } break; case 682: #line 4871 "sql_yacc.yy" { if (!((yyval.charset)=get_charset_by_name((yyvsp[0].lex_str).str,MYF(0)))) { my_error(ER_UNKNOWN_COLLATION, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } } break; case 683: #line 4880 "sql_yacc.yy" { (yyval.charset)=NULL; } break; case 684: #line 4881 "sql_yacc.yy" { (yyval.charset)=(yyvsp[0].charset); } break; case 685: #line 4885 "sql_yacc.yy" { (yyval.charset)=(yyvsp[0].charset); } break; case 686: #line 4886 "sql_yacc.yy" { (yyval.charset)=NULL; } break; case 687: #line 4889 "sql_yacc.yy" {} break; case 688: #line 4890 "sql_yacc.yy" {} break; case 689: #line 4893 "sql_yacc.yy" { Lex->charset=NULL; } break; case 690: #line 4894 "sql_yacc.yy" { Lex->charset=&my_charset_latin1; } break; case 691: #line 4895 "sql_yacc.yy" { Lex->charset=&my_charset_bin; } break; case 692: #line 4897 "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 693: #line 4905 "sql_yacc.yy" { Lex->charset=(yyvsp[-1].charset); } break; case 694: #line 4906 "sql_yacc.yy" { Lex->type|= BINCMP_FLAG; } break; case 695: #line 4909 "sql_yacc.yy" { } break; case 696: #line 4910 "sql_yacc.yy" { Lex->type|= BINCMP_FLAG; } break; case 697: #line 4913 "sql_yacc.yy" { Lex->charset= NULL; } break; case 698: #line 4914 "sql_yacc.yy" { Lex->charset=&my_charset_latin1; } break; case 699: #line 4916 "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 4924 "sql_yacc.yy" { Lex->charset=(yyvsp[0].charset); } break; case 703: #line 4933 "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 704: #line 4939 "sql_yacc.yy" { (yyval.table)=(yyvsp[-2].table); } break; case 705: #line 4944 "sql_yacc.yy" {} break; case 706: #line 4945 "sql_yacc.yy" {} break; case 707: #line 4948 "sql_yacc.yy" { Lex->ref_list.push_back(new Key_part_spec((yyvsp[0].lex_str).str)); } break; case 708: #line 4949 "sql_yacc.yy" { Lex->ref_list.push_back(new Key_part_spec((yyvsp[0].lex_str).str)); } break; case 709: #line 4953 "sql_yacc.yy" {} break; case 710: #line 4954 "sql_yacc.yy" {} break; case 711: #line 4957 "sql_yacc.yy" {} break; case 712: #line 4958 "sql_yacc.yy" {} break; case 713: #line 4961 "sql_yacc.yy" { Lex->fk_delete_opt= (yyvsp[0].num); } break; case 714: #line 4962 "sql_yacc.yy" { Lex->fk_update_opt= (yyvsp[0].num); } break; case 715: #line 4963 "sql_yacc.yy" { Lex->fk_match_option= Foreign_key::FK_MATCH_FULL; } break; case 716: #line 4964 "sql_yacc.yy" { Lex->fk_match_option= Foreign_key::FK_MATCH_PARTIAL; } break; case 717: #line 4965 "sql_yacc.yy" { Lex->fk_match_option= Foreign_key::FK_MATCH_SIMPLE; } break; case 718: #line 4968 "sql_yacc.yy" { (yyval.num)= (int) Foreign_key::FK_OPTION_RESTRICT; } break; case 719: #line 4969 "sql_yacc.yy" { (yyval.num)= (int) Foreign_key::FK_OPTION_CASCADE; } break; case 720: #line 4970 "sql_yacc.yy" { (yyval.num)= (int) Foreign_key::FK_OPTION_SET_NULL; } break; case 721: #line 4971 "sql_yacc.yy" { (yyval.num)= (int) Foreign_key::FK_OPTION_NO_ACTION; } break; case 722: #line 4972 "sql_yacc.yy" { (yyval.num)= (int) Foreign_key::FK_OPTION_DEFAULT; } break; case 723: #line 4975 "sql_yacc.yy" { (yyval.key_type)= Key::MULTIPLE; } break; case 724: #line 4976 "sql_yacc.yy" { (yyval.key_type)= Key::FULLTEXT; } break; case 725: #line 4978 "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 726: #line 4989 "sql_yacc.yy" { (yyval.key_type)= Key::PRIMARY; } break; case 727: #line 4990 "sql_yacc.yy" { (yyval.key_type)= Key::UNIQUE; } break; case 728: #line 4993 "sql_yacc.yy" {} break; case 729: #line 4994 "sql_yacc.yy" {} break; case 730: #line 4997 "sql_yacc.yy" {} break; case 732: #line 5002 "sql_yacc.yy" {} break; case 733: #line 5003 "sql_yacc.yy" {} break; case 734: #line 5004 "sql_yacc.yy" {} break; case 735: #line 5007 "sql_yacc.yy" { (yyval.key_type)= Key::MULTIPLE; } break; case 736: #line 5008 "sql_yacc.yy" { (yyval.key_type)= Key::UNIQUE; } break; case 737: #line 5009 "sql_yacc.yy" { (yyval.key_type)= Key::FULLTEXT;} break; case 738: #line 5011 "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 739: #line 5023 "sql_yacc.yy" { Lex->key_create_info= default_key_create_info; } break; case 742: #line 5040 "sql_yacc.yy" {} break; case 746: #line 5050 "sql_yacc.yy" { Lex->key_create_info.algorithm= (yyvsp[0].key_alg); } break; case 747: #line 5051 "sql_yacc.yy" { Lex->key_create_info.algorithm= (yyvsp[0].key_alg); } break; case 749: #line 5057 "sql_yacc.yy" { Lex->key_create_info.block_size= (yyvsp[0].ulong_num); } break; case 750: #line 5059 "sql_yacc.yy" { if (plugin_is_ready(&(yyvsp[0].lex_str), MYSQL_FTPARSER_PLUGIN)) Lex->key_create_info.parser_name= (yyvsp[0].lex_str); else { my_error(ER_FUNCTION_NOT_DEFINED, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } } break; case 751: #line 5072 "sql_yacc.yy" { (yyval.key_alg)= HA_KEY_ALG_BTREE; } break; case 752: #line 5074 "sql_yacc.yy" { (yyval.key_alg)= HA_KEY_ALG_RTREE; } break; case 753: #line 5077 "sql_yacc.yy" { (yyval.key_alg)= HA_KEY_ALG_HASH; } break; case 754: #line 5080 "sql_yacc.yy" { Lex->col_list.push_back((yyvsp[-1].key_part)); } break; case 755: #line 5081 "sql_yacc.yy" { Lex->col_list.push_back((yyvsp[-1].key_part)); } break; case 756: #line 5084 "sql_yacc.yy" { (yyval.key_part)=new Key_part_spec((yyvsp[0].lex_str).str); } break; case 757: #line 5086 "sql_yacc.yy" { int key_part_len= atoi((yyvsp[-1].lex_str).str); if (!key_part_len) { my_error(ER_KEY_PART_0, MYF(0), (yyvsp[-3].lex_str).str); } (yyval.key_part)=new Key_part_spec((yyvsp[-3].lex_str).str,(uint) key_part_len); } break; case 758: #line 5096 "sql_yacc.yy" { (yyval.simple_string)=(char*) 0; } break; case 759: #line 5097 "sql_yacc.yy" { (yyval.simple_string)=(yyvsp[0].lex_str).str; } break; case 760: #line 5100 "sql_yacc.yy" { (yyval.lex_str)= null_lex_str; } break; case 761: #line 5101 "sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].lex_str); } break; case 762: #line 5104 "sql_yacc.yy" { Lex->interval_list.push_back((yyvsp[0].string)); } break; case 763: #line 5105 "sql_yacc.yy" { Lex->interval_list.push_back((yyvsp[0].string)); } break; case 764: #line 5113 "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[0].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.storage_media= HA_SM_DEFAULT; } break; case 765: #line 5137 "sql_yacc.yy" {} break; case 766: #line 5139 "sql_yacc.yy" { Lex->create_info.default_table_charset= NULL; Lex->create_info.used_fields= 0; } break; case 767: #line 5144 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command=SQLCOM_ALTER_DB; lex->name= (yyvsp[-2].lex_str); if (lex->name.str == NULL && lex->copy_db_to(&lex->name.str, &lex->name.length)) MYSQL_YYABORT; } break; case 768: #line 5153 "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 769: #line 5164 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_ALTER_PROCEDURE; lex->spname= (yyvsp[-2].spname); } break; case 770: #line 5171 "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 771: #line 5182 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_ALTER_FUNCTION; lex->spname= (yyvsp[-2].spname); } break; case 772: #line 5189 "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 773: #line 5200 "sql_yacc.yy" {} break; case 774: #line 5207 "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 775: #line 5219 "sql_yacc.yy" {} break; case 776: #line 5225 "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[0].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 777: #line 5253 "sql_yacc.yy" { /* $1 - ALTER $2 - definer $3 - EVENT_SYM $4 - sp_name $5 - the block above */ YYTHD->client_capabilities |= (yyvsp[-5].ulong_num); if (!((yyvsp[-4].num) || (yyvsp[-3].num) || (yyvsp[-2].num) || (yyvsp[-1].num) || (yyvsp[0].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 778: #line 5275 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_TABLESPACE; } break; case 779: #line 5280 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_LOGFILE_GROUP; } break; case 780: #line 5285 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= CHANGE_FILE_TABLESPACE; } break; case 781: #line 5290 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= ALTER_ACCESS_MODE_TABLESPACE; } break; case 782: #line 5295 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_ALTER_SERVER; lex->server_options.server_name= (yyvsp[-4].lex_str).str; lex->server_options.server_name_length= (yyvsp[-4].lex_str).length; } break; case 783: #line 5303 "sql_yacc.yy" { (yyval.num)= 0;} break; case 784: #line 5304 "sql_yacc.yy" { (yyval.num)= 1; } break; case 785: #line 5305 "sql_yacc.yy" { (yyval.num)= 1; } break; case 786: #line 5306 "sql_yacc.yy" { (yyval.num)= 1; } break; case 787: #line 5309 "sql_yacc.yy" { (yyval.num)= 0;} break; case 788: #line 5311 "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[0].spname); (yyval.num)= 1; } break; case 789: #line 5321 "sql_yacc.yy" { (yyval.num)= 0;} break; case 790: #line 5322 "sql_yacc.yy" { (yyval.num)= 1; } break; case 791: #line 5326 "sql_yacc.yy" { (yyval.lex_str).str= 0; (yyval.lex_str).length= 0; } break; case 792: #line 5327 "sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].lex_str); } break; case 794: #line 5330 "sql_yacc.yy" { Lex->alter_info.tablespace_op= DISCARD_TABLESPACE; } break; case 795: #line 5331 "sql_yacc.yy" { Lex->alter_info.tablespace_op= IMPORT_TABLESPACE; } break; case 801: #line 5348 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_DROP_PARTITION; } break; case 802: #line 5353 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_info.flags|= ALTER_REBUILD_PARTITION; lex->no_write_to_binlog= (yyvsp[-1].num); } break; case 803: #line 5360 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_info.flags|= ALTER_OPTIMIZE_PARTITION; lex->no_write_to_binlog= (yyvsp[-1].num); lex->check_opt.init(); } break; case 805: #line 5369 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_info.flags|= ALTER_ANALYZE_PARTITION; lex->no_write_to_binlog= (yyvsp[-1].num); lex->check_opt.init(); } break; case 807: #line 5377 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_info.flags|= ALTER_CHECK_PARTITION; lex->check_opt.init(); } break; case 809: #line 5385 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_info.flags|= ALTER_REPAIR_PARTITION; lex->no_write_to_binlog= (yyvsp[-1].num); lex->check_opt.init(); } break; case 811: #line 5393 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_info.flags|= ALTER_COALESCE_PARTITION; lex->no_write_to_binlog= (yyvsp[-1].num); lex->alter_info.no_parts= (yyvsp[0].ulong_num); } break; case 813: #line 5404 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_REMOVE_PARTITIONING; } break; case 814: #line 5411 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_ALL_PARTITION; } break; case 816: #line 5419 "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[0].num); } break; case 817: #line 5431 "sql_yacc.yy" {} break; case 819: #line 5436 "sql_yacc.yy" { LEX *lex= Lex; lex->part_info->no_parts= lex->part_info->partitions.elements; } break; case 820: #line 5441 "sql_yacc.yy" { LEX *lex= Lex; lex->part_info->no_parts= (yyvsp[0].ulong_num); } break; case 821: #line 5449 "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[0].num); } break; case 823: #line 5464 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_TABLE_REORG; } break; case 824: #line 5469 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_REORGANIZE_PARTITION; } break; case 825: #line 5473 "sql_yacc.yy" { LEX *lex= Lex; lex->part_info->no_parts= lex->part_info->partitions.elements; } break; case 826: #line 5480 "sql_yacc.yy" {} break; case 827: #line 5481 "sql_yacc.yy" {} break; case 828: #line 5486 "sql_yacc.yy" { if (Lex->alter_info.partition_names.push_back((yyvsp[0].lex_str).str)) { mem_alloc_error(1); MYSQL_YYABORT; } } break; case 831: #line 5506 "sql_yacc.yy" { LEX *lex=Lex; lex->change=0; lex->alter_info.flags|= ALTER_ADD_COLUMN; } break; case 832: #line 5513 "sql_yacc.yy" { } break; case 833: #line 5515 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_ADD_INDEX; } break; case 834: #line 5519 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_ADD_COLUMN | ALTER_ADD_INDEX; } break; case 835: #line 5523 "sql_yacc.yy" { LEX *lex=Lex; lex->change= (yyvsp[0].lex_str).str; lex->alter_info.flags|= ALTER_CHANGE_COLUMN; } break; case 837: #line 5530 "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; } break; case 838: #line 5539 "sql_yacc.yy" { LEX *lex=Lex; if (add_field_to_list(lex->thd,&(yyvsp[-3].lex_str), (enum enum_field_types) (yyvsp[-1].num), lex->length,lex->dec,lex->type, lex->default_value, lex->on_update_value, &lex->comment, (yyvsp[-3].lex_str).str, &lex->interval_list, lex->charset, lex->uint_geom_type)) MYSQL_YYABORT; } break; case 840: #line 5552 "sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::COLUMN, (yyvsp[-1].lex_str).str)); lex->alter_info.flags|= ALTER_DROP_COLUMN; } break; case 841: #line 5559 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_DROP_INDEX | ALTER_FOREIGN_KEY; } break; case 842: #line 5563 "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 843: #line 5570 "sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.drop_list.push_back(new Alter_drop(Alter_drop::KEY, (yyvsp[0].lex_str).str)); lex->alter_info.flags|= ALTER_DROP_INDEX; } break; case 844: #line 5577 "sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.keys_onoff= DISABLE; lex->alter_info.flags|= ALTER_KEYS_ONOFF; } break; case 845: #line 5583 "sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.keys_onoff= ENABLE; lex->alter_info.flags|= ALTER_KEYS_ONOFF; } break; case 846: #line 5589 "sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.alter_list.push_back(new Alter_column((yyvsp[-3].lex_str).str,(yyvsp[0].item))); lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT; } break; case 847: #line 5595 "sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.alter_list.push_back(new Alter_column((yyvsp[-2].lex_str).str, (Item*) 0)); lex->alter_info.flags|= ALTER_CHANGE_COLUMN_DEFAULT; } break; case 848: #line 5602 "sql_yacc.yy" { LEX *lex=Lex; size_t dummy; lex->select_lex.db=(yyvsp[0].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[0].table)->table.str,(yyvsp[0].table)->table.length) || (yyvsp[0].table)->db.str && check_db_name(&(yyvsp[0].table)->db)) { my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[0].table)->table.str); MYSQL_YYABORT; } lex->name= (yyvsp[0].table)->table; lex->alter_info.flags|= ALTER_RENAME; } break; case 849: #line 5621 "sql_yacc.yy" { if (!(yyvsp[-1].charset)) { THD *thd= YYTHD; (yyvsp[-1].charset)= thd->variables.collation_database; } (yyvsp[0].charset)= (yyvsp[0].charset) ? (yyvsp[0].charset) : (yyvsp[-1].charset); if (!my_charset_same((yyvsp[-1].charset),(yyvsp[0].charset))) { my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), (yyvsp[0].charset)->name, (yyvsp[-1].charset)->csname); MYSQL_YYABORT; } LEX *lex= Lex; lex->create_info.table_charset= lex->create_info.default_table_charset= (yyvsp[0].charset); lex->create_info.used_fields|= (HA_CREATE_USED_CHARSET | HA_CREATE_USED_DEFAULT_CHARSET); lex->alter_info.flags|= ALTER_CONVERT; } break; case 850: #line 5642 "sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.flags|= ALTER_OPTIONS; } break; case 851: #line 5647 "sql_yacc.yy" { Lex->alter_info.flags|= ALTER_FORCE; } break; case 852: #line 5651 "sql_yacc.yy" { LEX *lex=Lex; lex->alter_info.flags|= ALTER_ORDER; } break; case 853: #line 5657 "sql_yacc.yy" {} break; case 854: #line 5658 "sql_yacc.yy" {} break; case 855: #line 5661 "sql_yacc.yy" { Lex->ignore= 0;} break; case 856: #line 5662 "sql_yacc.yy" { Lex->ignore= 1;} break; case 857: #line 5666 "sql_yacc.yy" { Lex->drop_mode= DROP_DEFAULT; } break; case 858: #line 5667 "sql_yacc.yy" { Lex->drop_mode= DROP_RESTRICT; } break; case 859: #line 5668 "sql_yacc.yy" { Lex->drop_mode= DROP_CASCADE; } break; case 860: #line 5672 "sql_yacc.yy" {} break; case 861: #line 5673 "sql_yacc.yy" { store_position_for_column((yyvsp[0].lex_str).str); } break; case 862: #line 5674 "sql_yacc.yy" { store_position_for_column(first_keyword); } break; case 863: #line 5677 "sql_yacc.yy" {} break; case 864: #line 5678 "sql_yacc.yy" {} break; case 865: #line 5679 "sql_yacc.yy" {} break; case 866: #line 5680 "sql_yacc.yy" {} break; case 867: #line 5688 "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 868: #line 5697 "sql_yacc.yy" {} break; case 869: #line 5699 "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 870: #line 5706 "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 871: #line 5714 "sql_yacc.yy" {} break; case 872: #line 5716 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_SLAVE_STOP; lex->type = 0; } break; case 873: #line 5726 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_BEGIN; lex->start_transaction_opt= (yyvsp[0].num); } break; case 874: #line 5734 "sql_yacc.yy" { (yyval.num) = 0; } break; case 875: #line 5736 "sql_yacc.yy" { (yyval.num)= MYSQL_START_TRANS_OPT_WITH_CONS_SNAPSHOT; } break; case 876: #line 5742 "sql_yacc.yy" { Lex->slave_thd_opt= 0; } break; case 877: #line 5744 "sql_yacc.yy" {} break; case 880: #line 5753 "sql_yacc.yy" {} break; case 881: #line 5754 "sql_yacc.yy" { Lex->slave_thd_opt|=SLAVE_SQL; } break; case 882: #line 5755 "sql_yacc.yy" { Lex->slave_thd_opt|=SLAVE_IO; } break; case 883: #line 5759 "sql_yacc.yy" {} break; case 884: #line 5761 "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 887: #line 5783 "sql_yacc.yy" { Lex->sql_command = SQLCOM_RESTORE_TABLE; } break; case 888: #line 5787 "sql_yacc.yy" { Lex->backup_dir = (yyvsp[0].lex_str).str; } break; case 889: #line 5793 "sql_yacc.yy" { Lex->sql_command = SQLCOM_BACKUP_TABLE; } break; case 890: #line 5797 "sql_yacc.yy" { Lex->backup_dir = (yyvsp[0].lex_str).str; } break; case 891: #line 5803 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_CHECKSUM; } break; case 892: #line 5808 "sql_yacc.yy" {} break; case 893: #line 5812 "sql_yacc.yy" { Lex->check_opt.flags= 0; } break; case 894: #line 5813 "sql_yacc.yy" { Lex->check_opt.flags= T_QUICK; } break; case 895: #line 5814 "sql_yacc.yy" { Lex->check_opt.flags= T_EXTEND; } break; case 896: #line 5819 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_REPAIR; lex->no_write_to_binlog= (yyvsp[-1].num); lex->check_opt.init(); } break; case 897: #line 5826 "sql_yacc.yy" {} break; case 898: #line 5830 "sql_yacc.yy" { Lex->check_opt.flags = T_MEDIUM; } break; case 899: #line 5831 "sql_yacc.yy" {} break; case 900: #line 5834 "sql_yacc.yy" {} break; case 901: #line 5835 "sql_yacc.yy" {} break; case 902: #line 5838 "sql_yacc.yy" { Lex->check_opt.flags|= T_QUICK; } break; case 903: #line 5839 "sql_yacc.yy" { Lex->check_opt.flags|= T_EXTEND; } break; case 904: #line 5840 "sql_yacc.yy" { Lex->check_opt.sql_flags|= TT_USEFRM; } break; case 905: #line 5844 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_ANALYZE; lex->no_write_to_binlog= (yyvsp[-1].num); lex->check_opt.init(); } break; case 906: #line 5851 "sql_yacc.yy" {} break; case 907: #line 5856 "sql_yacc.yy" { Lex->sql_command = SQLCOM_BINLOG_BASE64_EVENT; Lex->comment= (yyvsp[0].lex_str); } break; case 908: #line 5864 "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 909: #line 5876 "sql_yacc.yy" {} break; case 910: #line 5880 "sql_yacc.yy" { Lex->check_opt.flags = T_MEDIUM; } break; case 911: #line 5881 "sql_yacc.yy" {} break; case 912: #line 5884 "sql_yacc.yy" {} break; case 913: #line 5885 "sql_yacc.yy" {} break; case 914: #line 5888 "sql_yacc.yy" { Lex->check_opt.flags|= T_QUICK; } break; case 915: #line 5889 "sql_yacc.yy" { Lex->check_opt.flags|= T_FAST; } break; case 916: #line 5890 "sql_yacc.yy" { Lex->check_opt.flags|= T_MEDIUM; } break; case 917: #line 5891 "sql_yacc.yy" { Lex->check_opt.flags|= T_EXTEND; } break; case 918: #line 5892 "sql_yacc.yy" { Lex->check_opt.flags|= T_CHECK_ONLY_CHANGED; } break; case 919: #line 5893 "sql_yacc.yy" { Lex->check_opt.sql_flags|= TT_FOR_UPGRADE; } break; case 920: #line 5897 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_OPTIMIZE; lex->no_write_to_binlog= (yyvsp[-1].num); lex->check_opt.init(); } break; case 921: #line 5904 "sql_yacc.yy" {} break; case 922: #line 5908 "sql_yacc.yy" { (yyval.num)= 0; } break; case 923: #line 5909 "sql_yacc.yy" { (yyval.num)= 1; } break; case 924: #line 5910 "sql_yacc.yy" { (yyval.num)= 1; } break; case 925: #line 5915 "sql_yacc.yy" { Lex->sql_command= SQLCOM_RENAME_TABLE; } break; case 926: #line 5919 "sql_yacc.yy" {} break; case 927: #line 5921 "sql_yacc.yy" { Lex->db_list.empty(); Lex->sql_command= SQLCOM_RENAME_DB; } break; case 928: #line 5926 "sql_yacc.yy" {} break; case 929: #line 5928 "sql_yacc.yy" { Lex->sql_command = SQLCOM_RENAME_USER; } break; case 930: #line 5935 "sql_yacc.yy" { if (Lex->users_list.push_back((yyvsp[-2].lex_user)) || Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT; } break; case 931: #line 5940 "sql_yacc.yy" { if (Lex->users_list.push_back((yyvsp[-2].lex_user)) || Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT; } break; case 934: #line 5952 "sql_yacc.yy" { LEX *lex=Lex; SELECT_LEX *sl= lex->current_select; if (!sl->add_table_to_list(lex->thd, (yyvsp[-2].table),NULL,TL_OPTION_UPDATING, TL_IGNORE) || !sl->add_table_to_list(lex->thd, (yyvsp[0].table),NULL,TL_OPTION_UPDATING, TL_IGNORE)) MYSQL_YYABORT; } break; case 935: #line 5964 "sql_yacc.yy" { LEX *lex=Lex; if (lex->db_list.push_back((LEX_STRING*) sql_memdup(&(yyvsp[-2].lex_str), sizeof(LEX_STRING))) || lex->db_list.push_back((LEX_STRING*) sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING)))) MYSQL_YYABORT; } break; case 936: #line 5975 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_ASSIGN_TO_KEYCACHE; lex->ident= (yyvsp[0].lex_str); } break; case 939: #line 5988 "sql_yacc.yy" { if (!Select->add_table_to_list(YYTHD, (yyvsp[-1].table), NULL, 0, TL_READ, Select->pop_index_hints())) MYSQL_YYABORT; } break; case 940: #line 5996 "sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].lex_str); } break; case 941: #line 5997 "sql_yacc.yy" { (yyval.lex_str) = default_key_cache_base; } break; case 942: #line 6002 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command=SQLCOM_PRELOAD_KEYS; } break; case 943: #line 6007 "sql_yacc.yy" {} break; case 946: #line 6016 "sql_yacc.yy" { if (!Select->add_table_to_list(YYTHD, (yyvsp[-2].table), NULL, (yyvsp[0].num), TL_READ, Select->pop_index_hints())) MYSQL_YYABORT; } break; case 947: #line 6024 "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 949: #line 6035 "sql_yacc.yy" { } break; case 951: #line 6041 "sql_yacc.yy" { (yyval.num)= 0; } break; case 952: #line 6042 "sql_yacc.yy" { (yyval.num)= TL_OPTION_IGNORE_LEAVES; } break; case 953: #line 6052 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SELECT; } break; case 956: #line 6066 "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 958: #line 6091 "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 960: #line 6110 "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 961: #line 6118 "sql_yacc.yy" { Select->parsing_place= NO_MATTER; } break; case 963: #line 6124 "sql_yacc.yy" {} break; case 968: #line 6133 "sql_yacc.yy" { Select->context.table_list= Select->context.first_name_resolution_table= (TABLE_LIST *) Select->table_list.first; } break; case 971: #line 6148 "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 974: #line 6162 "sql_yacc.yy" { Select->options|= SELECT_STRAIGHT_JOIN; } break; case 975: #line 6164 "sql_yacc.yy" { if (check_simple_select()) MYSQL_YYABORT; Lex->lock_option= TL_READ_HIGH_PRIORITY; } break; case 976: #line 6169 "sql_yacc.yy" { Select->options|= SELECT_DISTINCT; } break; case 977: #line 6170 "sql_yacc.yy" { Select->options|= SELECT_SMALL_RESULT; } break; case 978: #line 6171 "sql_yacc.yy" { Select->options|= SELECT_BIG_RESULT; } break; case 979: #line 6173 "sql_yacc.yy" { if (check_simple_select()) MYSQL_YYABORT; Select->options|= OPTION_BUFFER_RESULT; } break; case 980: #line 6179 "sql_yacc.yy" { if (check_simple_select()) MYSQL_YYABORT; Select->options|= OPTION_FOUND_ROWS; } break; case 981: #line 6185 "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 982: #line 6191 "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 983: #line 6204 "sql_yacc.yy" { Select->options|= SELECT_ALL; } break; case 985: #line 6210 "sql_yacc.yy" { LEX *lex=Lex; lex->current_select->set_lock_for_tables(TL_WRITE); lex->safe_to_cache_query=0; } break; case 986: #line 6216 "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 989: #line 6228 "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 990: #line 6241 "sql_yacc.yy" { THD *thd= YYTHD; DBUG_ASSERT((yyvsp[-3].simple_string) < (yyvsp[-1].simple_string)); if (add_item_to_list(thd, (yyvsp[-2].item))) MYSQL_YYABORT; if ((yyvsp[0].lex_str).str) { (yyvsp[-2].item)->is_autogenerated_name= FALSE; (yyvsp[-2].item)->set_name((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info); } else if (!(yyvsp[-2].item)->name) { (yyvsp[-2].item)->set_name((yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), thd->charset()); } } break; case 991: #line 6260 "sql_yacc.yy" { THD *thd= YYTHD; Lex_input_stream *lip= thd->m_lip; (yyval.simple_string)= (char*) lip->get_cpp_tok_start(); } break; case 992: #line 6267 "sql_yacc.yy" { THD *thd= YYTHD; Lex_input_stream *lip= thd->m_lip; (yyval.simple_string)= (char*) lip->get_cpp_tok_end(); } break; case 993: #line 6274 "sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } break; case 994: #line 6275 "sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } break; case 995: #line 6278 "sql_yacc.yy" { (yyval.lex_str)=null_lex_str;} break; case 996: #line 6279 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } break; case 997: #line 6280 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } break; case 998: #line 6281 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } break; case 999: #line 6282 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } break; case 1000: #line 6286 "sql_yacc.yy" {} break; case 1001: #line 6287 "sql_yacc.yy" {} break; case 1002: #line 6291 "sql_yacc.yy" { Select->expr_list.push_front(new List); } break; case 1003: #line 6293 "sql_yacc.yy" { List *list= Select->expr_list.pop(); if (list->elements) { list->push_front((yyvsp[-2].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[-2].item); delete list; } break; case 1005: #line 6311 "sql_yacc.yy" { Select->expr_list.head()->push_back((yyvsp[0].item)); } break; case 1006: #line 6315 "sql_yacc.yy" { (yyval.item)= new Item_cond_xor((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1007: #line 6316 "sql_yacc.yy" { Select->expr_list.push_front(new List); } break; case 1008: #line 6318 "sql_yacc.yy" { List *list= Select->expr_list.pop(); if (list->elements) { list->push_front((yyvsp[-2].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[-2].item); delete list; } break; case 1010: #line 6336 "sql_yacc.yy" { Select->expr_list.head()->push_back((yyvsp[0].item)); } break; case 1011: #line 6340 "sql_yacc.yy" { (yyval.item)= negate_expression(YYTHD, (yyvsp[0].item)); } break; case 1013: #line 6345 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_istrue((yyvsp[-2].item)); } break; case 1014: #line 6347 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_isnottrue((yyvsp[-3].item)); } break; case 1015: #line 6349 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_isfalse((yyvsp[-2].item)); } break; case 1016: #line 6351 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_isnotfalse((yyvsp[-3].item)); } break; case 1017: #line 6352 "sql_yacc.yy" { (yyval.item)= new Item_func_isnull((yyvsp[-2].item)); } break; case 1018: #line 6353 "sql_yacc.yy" { (yyval.item)= new Item_func_isnotnull((yyvsp[-3].item)); } break; case 1020: #line 6358 "sql_yacc.yy" { (yyval.item)= new Item_func_isnull((yyvsp[-2].item)); } break; case 1021: #line 6359 "sql_yacc.yy" { (yyval.item)= new Item_func_isnotnull((yyvsp[-3].item)); } break; case 1022: #line 6360 "sql_yacc.yy" { (yyval.item)= new Item_func_equal((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1023: #line 6362 "sql_yacc.yy" { (yyval.item)= (*(yyvsp[-1].boolfunc2creator))(0)->create((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1024: #line 6364 "sql_yacc.yy" { (yyval.item)= all_any_subquery_creator((yyvsp[-5].item), (yyvsp[-4].boolfunc2creator), (yyvsp[-3].num), (yyvsp[-1].select_lex)); } break; case 1026: #line 6369 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_in_subselect((yyvsp[-4].item), (yyvsp[-1].select_lex)); } break; case 1027: #line 6373 "sql_yacc.yy" { THD *thd= YYTHD; Item *item= new (thd->mem_root) Item_in_subselect((yyvsp[-5].item), (yyvsp[-1].select_lex)); (yyval.item)= negate_expression(thd, item); } break; case 1028: #line 6379 "sql_yacc.yy" { (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[-4].item), true, (yyvsp[-1].item)); } break; case 1029: #line 6383 "sql_yacc.yy" { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); (yyvsp[-1].item_list)->push_front((yyvsp[-6].item)); (yyval.item)= new (YYTHD->mem_root) Item_func_in(*(yyvsp[-1].item_list)); } break; case 1030: #line 6389 "sql_yacc.yy" { (yyval.item)= handle_sql2003_note184_exception(YYTHD, (yyvsp[-5].item), false, (yyvsp[-1].item)); } break; case 1031: #line 6393 "sql_yacc.yy" { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); (yyvsp[-1].item_list)->push_front((yyvsp[-7].item)); Item_func_in *item = new (YYTHD->mem_root) Item_func_in(*(yyvsp[-1].item_list)); item->negate(); (yyval.item)= item; } break; case 1032: #line 6401 "sql_yacc.yy" { (yyval.item)= new Item_func_between((yyvsp[-4].item),(yyvsp[-2].item),(yyvsp[0].item)); } break; case 1033: #line 6403 "sql_yacc.yy" { Item_func_between *item= new Item_func_between((yyvsp[-5].item),(yyvsp[-2].item),(yyvsp[0].item)); item->negate(); (yyval.item)= item; } break; case 1034: #line 6409 "sql_yacc.yy" { (yyval.item)= new Item_func_eq(new Item_func_soundex((yyvsp[-3].item)), new Item_func_soundex((yyvsp[0].item))); } break; case 1035: #line 6412 "sql_yacc.yy" { (yyval.item)= new Item_func_like((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[0].item),Lex->escape_used); } break; case 1036: #line 6414 "sql_yacc.yy" { (yyval.item)= new Item_func_not(new Item_func_like((yyvsp[-4].item),(yyvsp[-1].item),(yyvsp[0].item), Lex->escape_used)); } break; case 1037: #line 6415 "sql_yacc.yy" { (yyval.item)= new Item_func_regex((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1038: #line 6417 "sql_yacc.yy" { (yyval.item)= negate_expression(YYTHD, new Item_func_regex((yyvsp[-3].item),(yyvsp[0].item))); } break; case 1040: #line 6421 "sql_yacc.yy" { (yyval.item)= new Item_func_bit_or((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1042: #line 6425 "sql_yacc.yy" { (yyval.item)= new Item_func_bit_and((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1044: #line 6430 "sql_yacc.yy" { (yyval.item)= new Item_func_shift_left((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1045: #line 6432 "sql_yacc.yy" { (yyval.item)= new Item_func_shift_right((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1047: #line 6436 "sql_yacc.yy" { (yyval.item)= new Item_func_plus((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1048: #line 6437 "sql_yacc.yy" { (yyval.item)= new Item_func_minus((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1049: #line 6439 "sql_yacc.yy" { (yyval.item)= new Item_date_add_interval((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[0].interval),0); } break; case 1050: #line 6441 "sql_yacc.yy" { (yyval.item)= new Item_date_add_interval((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[0].interval),1); } break; case 1052: #line 6445 "sql_yacc.yy" { (yyval.item)= new Item_func_mul((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1053: #line 6446 "sql_yacc.yy" { (yyval.item)= new Item_func_div((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1054: #line 6447 "sql_yacc.yy" { (yyval.item)= new Item_func_mod((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1055: #line 6448 "sql_yacc.yy" { (yyval.item)= new Item_func_int_div((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1056: #line 6449 "sql_yacc.yy" { (yyval.item)= new Item_func_mod((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1058: #line 6453 "sql_yacc.yy" { (yyval.item)= new Item_func_bit_xor((yyvsp[-2].item),(yyvsp[0].item)); } break; case 1068: #line 6461 "sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_eq_creator; } break; case 1069: #line 6462 "sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_ge_creator; } break; case 1070: #line 6463 "sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_gt_creator; } break; case 1071: #line 6464 "sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_le_creator; } break; case 1072: #line 6465 "sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_lt_creator; } break; case 1073: #line 6466 "sql_yacc.yy" { (yyval.boolfunc2creator) = &comp_ne_creator; } break; case 1074: #line 6469 "sql_yacc.yy" { (yyval.num) = 1; } break; case 1075: #line 6470 "sql_yacc.yy" { (yyval.num) = 0; } break; case 1076: #line 6474 "sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } break; case 1082: #line 6484 "sql_yacc.yy" { THD *thd= YYTHD; Item *i1= new (thd->mem_root) Item_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset()); (yyval.item)= new (thd->mem_root) Item_func_set_collation((yyvsp[-2].item), i1); } break; case 1087: #line 6496 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_concat((yyvsp[-2].item), (yyvsp[0].item)); } break; case 1088: #line 6497 "sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } break; case 1089: #line 6499 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_neg((yyvsp[0].item)); } break; case 1090: #line 6501 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_bit_neg((yyvsp[0].item)); } break; case 1091: #line 6503 "sql_yacc.yy" { (yyval.item)= negate_expression(YYTHD, (yyvsp[0].item)); } break; case 1092: #line 6505 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_singlerow_subselect((yyvsp[-1].select_lex)); } break; case 1093: #line 6508 "sql_yacc.yy" { (yyval.item)= (yyvsp[-1].item); } break; case 1094: #line 6510 "sql_yacc.yy" { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[-1].item_list)); } break; case 1095: #line 6515 "sql_yacc.yy" { (yyvsp[-1].item_list)->push_front((yyvsp[-3].item)); (yyval.item)= new (YYTHD->mem_root) Item_row(*(yyvsp[-1].item_list)); } break; case 1096: #line 6520 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_exists_subselect((yyvsp[-1].select_lex)); } break; case 1097: #line 6523 "sql_yacc.yy" { (yyval.item)= (yyvsp[-1].item); } break; case 1098: #line 6525 "sql_yacc.yy" { (yyvsp[-5].item_list)->push_front((yyvsp[-2].item)); Item_func_match *i1= new (YYTHD->mem_root) Item_func_match(*(yyvsp[-5].item_list), (yyvsp[-1].num)); Select->add_ftfunc_to_list(i1); (yyval.item)= i1; } break; case 1099: #line 6532 "sql_yacc.yy" { (yyval.item)= create_func_cast(YYTHD, (yyvsp[0].item), ITEM_CAST_CHAR, NULL, NULL, &my_charset_bin); } break; case 1100: #line 6537 "sql_yacc.yy" { LEX *lex= Lex; (yyval.item)= create_func_cast(YYTHD, (yyvsp[-3].item), (yyvsp[-1].cast_type), lex->length, lex->dec, lex->charset); if (!(yyval.item)) MYSQL_YYABORT; } break; case 1101: #line 6545 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_case(* (yyvsp[-2].item_list), (yyvsp[-3].item), (yyvsp[-1].item) ); } break; case 1102: #line 6547 "sql_yacc.yy" { (yyval.item)= create_func_cast(YYTHD, (yyvsp[-3].item), (yyvsp[-1].cast_type), Lex->length, Lex->dec, Lex->charset); if (!(yyval.item)) MYSQL_YYABORT; } break; case 1103: #line 6554 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_conv_charset((yyvsp[-3].item),(yyvsp[-1].charset)); } break; case 1104: #line 6556 "sql_yacc.yy" { if ((yyvsp[-1].item)->is_splocal()) { Item_splocal *il= static_cast((yyvsp[-1].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[-1].item)); } break; case 1105: #line 6568 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_insert_value(Lex->current_context(), (yyvsp[-1].item)); } break; case 1106: #line 6572 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[0].item),(yyvsp[-3].item),(yyvsp[-2].interval),0); } break; case 1107: #line 6574 "sql_yacc.yy" { if ((yyvsp[0].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[0].item)); } break; case 1108: #line 6592 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[-1].item_list)); } break; case 1109: #line 6594 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_char(*(yyvsp[-3].item_list), (yyvsp[-1].charset)); } break; case 1110: #line 6596 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_current_user(Lex->current_context()); Lex->safe_to_cache_query= 0; } break; case 1111: #line 6601 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_typecast((yyvsp[-1].item)); } break; case 1112: #line 6603 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_dayofmonth((yyvsp[-1].item)); } break; case 1113: #line 6605 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_hour((yyvsp[-1].item)); } break; case 1114: #line 6607 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_insert((yyvsp[-7].item),(yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1115: #line 6609 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_left((yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1116: #line 6611 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_minute((yyvsp[-1].item)); } break; case 1117: #line 6613 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_month((yyvsp[-1].item)); } break; case 1118: #line 6615 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_right((yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1119: #line 6617 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_second((yyvsp[-1].item)); } break; case 1120: #line 6619 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_time_typecast((yyvsp[-1].item)); } break; case 1121: #line 6621 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_datetime_typecast((yyvsp[-1].item)); } break; case 1122: #line 6623 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_add_time((yyvsp[-3].item), (yyvsp[-1].item), 1, 0); } break; case 1123: #line 6625 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[-1].item)); } break; case 1124: #line 6627 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[-1].item),(yyvsp[-3].item)); } break; case 1125: #line 6629 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[-1].item),(yyvsp[-3].item)); } break; case 1126: #line 6631 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[-1].item),(yyvsp[-3].item)); } break; case 1127: #line 6633 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_ltrim((yyvsp[-1].item)); } break; case 1128: #line 6635 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_rtrim((yyvsp[-1].item)); } break; case 1129: #line 6637 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[-1].item)); } break; case 1130: #line 6639 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_trim((yyvsp[-1].item),(yyvsp[-3].item)); } break; case 1131: #line 6641 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_user(); Lex->safe_to_cache_query=0; } break; case 1132: #line 6646 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_year((yyvsp[-1].item)); } break; case 1133: #line 6663 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-3].item), (yyvsp[-1].item), INTERVAL_DAY, 0); } break; case 1134: #line 6668 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 0); } break; case 1135: #line 6670 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_local(); Lex->safe_to_cache_query=0; } break; case 1136: #line 6675 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local(); Lex->safe_to_cache_query=0; } break; case 1137: #line 6680 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_local((yyvsp[-1].item)); Lex->safe_to_cache_query=0; } break; case 1138: #line 6685 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-4].item),(yyvsp[-2].item),(yyvsp[-1].interval),0); } break; case 1139: #line 6687 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-4].item),(yyvsp[-2].item),(yyvsp[-1].interval),1); } break; case 1140: #line 6689 "sql_yacc.yy" { (yyval.item)=new (YYTHD->mem_root) Item_extract( (yyvsp[-3].interval), (yyvsp[-1].item)); } break; case 1141: #line 6691 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_get_format((yyvsp[-3].date_time_type), (yyvsp[-1].item)); } break; case 1142: #line 6693 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_now_local(); Lex->safe_to_cache_query=0; } break; case 1143: #line 6698 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[-1].item)); Lex->safe_to_cache_query=0; } break; case 1144: #line 6703 "sql_yacc.yy" { (yyval.item) = new (YYTHD->mem_root) Item_func_locate((yyvsp[-1].item),(yyvsp[-3].item)); } break; case 1145: #line 6705 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-3].item), (yyvsp[-1].item), INTERVAL_DAY, 1); } break; case 1146: #line 6710 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-5].item), (yyvsp[-2].item), (yyvsp[-1].interval), 1); } break; case 1147: #line 6712 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1148: #line 6714 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1149: #line 6716 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1150: #line 6718 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_substr((yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1151: #line 6720 "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 1152: #line 6728 "sql_yacc.yy" { if (global_system_variables.sysdate_is_now == 0) (yyval.item)= new (YYTHD->mem_root) Item_func_sysdate_local((yyvsp[-1].item)); else (yyval.item)= new (YYTHD->mem_root) Item_func_now_local((yyvsp[-1].item)); Lex->safe_to_cache_query=0; } break; case 1153: #line 6736 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_date_add_interval((yyvsp[-1].item),(yyvsp[-3].item),(yyvsp[-5].interval_time_st),0); } break; case 1154: #line 6738 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_timestamp_diff((yyvsp[-3].item),(yyvsp[-1].item),(yyvsp[-5].interval_time_st)); } break; case 1155: #line 6740 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_curdate_utc(); Lex->safe_to_cache_query=0; } break; case 1156: #line 6745 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_curtime_utc(); Lex->safe_to_cache_query=0; } break; case 1157: #line 6750 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_now_utc(); Lex->safe_to_cache_query=0; } break; case 1158: #line 6763 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_ascii((yyvsp[-1].item)); } break; case 1159: #line 6765 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_charset((yyvsp[-1].item)); } break; case 1160: #line 6767 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_coalesce(* (yyvsp[-1].item_list)); } break; case 1161: #line 6769 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_collation((yyvsp[-1].item)); } break; case 1162: #line 6771 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_database(); Lex->safe_to_cache_query=0; } break; case 1163: #line 6776 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_if((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1164: #line 6778 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_microsecond((yyvsp[-1].item)); } break; case 1165: #line 6780 "sql_yacc.yy" { (yyval.item) = new (YYTHD->mem_root) Item_func_mod( (yyvsp[-3].item), (yyvsp[-1].item)); } break; case 1166: #line 6782 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_old_password((yyvsp[-1].item)); } break; case 1167: #line 6784 "sql_yacc.yy" { THD *thd= YYTHD; Item* i1; if (thd->variables.old_passwords) i1= new (thd->mem_root) Item_func_old_password((yyvsp[-1].item)); else i1= new (thd->mem_root) Item_func_password((yyvsp[-1].item)); (yyval.item)= i1; } break; case 1168: #line 6794 "sql_yacc.yy" { (yyval.item) = new (YYTHD->mem_root) Item_func_quarter((yyvsp[-1].item)); } break; case 1169: #line 6796 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_repeat((yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1170: #line 6798 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_replace((yyvsp[-5].item),(yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1171: #line 6800 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_round((yyvsp[-3].item),(yyvsp[-1].item),1); } break; case 1172: #line 6802 "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[-1].item), i1); } break; case 1173: #line 6811 "sql_yacc.yy" { (yyval.item)= new (YYTHD->mem_root) Item_func_week((yyvsp[-3].item),(yyvsp[-1].item)); } break; case 1174: #line 6813 "sql_yacc.yy" { #ifdef HAVE_SPATIAL (yyval.item)= (yyvsp[0].item); #else my_error(ER_FEATURE_DISABLED, MYF(0), sym_group_geom.name, sym_group_geom.needed_define); MYSQL_YYABORT; #endif } break; case 1175: #line 6826 "sql_yacc.yy" { (yyval.item)= GEOM_NEW(YYTHD, Item_func_spatial_rel((yyvsp[-3].item), (yyvsp[-1].item), Item_func::SP_CONTAINS_FUNC)); } break; case 1176: #line 6832 "sql_yacc.yy" { (yyval.item)= GEOM_NEW(YYTHD, Item_func_spatial_collection(* (yyvsp[-1].item_list), Geometry::wkb_geometrycollection, Geometry::wkb_point)); } break; case 1177: #line 6839 "sql_yacc.yy" { (yyval.item)= GEOM_NEW(YYTHD, Item_func_spatial_collection(* (yyvsp[-1].item_list), Geometry::wkb_linestring, Geometry::wkb_point)); } break; case 1178: #line 6846 "sql_yacc.yy" { (yyval.item)= GEOM_NEW(YYTHD, Item_func_spatial_collection(* (yyvsp[-1].item_list), Geometry::wkb_multilinestring, Geometry::wkb_linestring)); } break; case 1179: #line 6853 "sql_yacc.yy" { (yyval.item)= GEOM_NEW(YYTHD, Item_func_spatial_collection(* (yyvsp[-1].item_list), Geometry::wkb_multipoint, Geometry::wkb_point)); } break; case 1180: #line 6860 "sql_yacc.yy" { (yyval.item)= GEOM_NEW(YYTHD, Item_func_spatial_collection(* (yyvsp[-1].item_list), Geometry::wkb_multipolygon, Geometry::wkb_polygon)); } break; case 1181: #line 6867 "sql_yacc.yy" { (yyval.item)= GEOM_NEW(YYTHD, Item_func_point((yyvsp[-3].item),(yyvsp[-1].item))); } break; case 1182: #line 6869 "sql_yacc.yy" { (yyval.item)= GEOM_NEW(YYTHD, Item_func_spatial_collection(* (yyvsp[-1].item_list), Geometry::wkb_polygon, Geometry::wkb_linestring)); } break; case 1183: #line 6888 "sql_yacc.yy" { #ifdef HAVE_DLOPEN udf_func *udf= 0; LEX *lex= Lex; if (using_udf_functions && (udf= find_udf((yyvsp[-1].lex_str).str, (yyvsp[-1].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 1184: #line 6907 "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 database) This will be revised with WL#2128 (SQL PATH) */ builder= find_native_function_builder(thd, (yyvsp[-4].lex_str)); if (builder) { item= builder->create(thd, (yyvsp[-4].lex_str), (yyvsp[-1].item_list)); } else { #ifdef HAVE_DLOPEN /* Retrieving the result of find_udf */ udf_func *udf= (yyvsp[-2].udf); if (udf) { if (udf->type == UDFTYPE_AGGREGATE) { Select->in_sum_expr--; } item= Create_udf_func::s_singleton.create(thd, udf, (yyvsp[-1].item_list)); } else #endif { builder= find_qualified_function_builder(thd); DBUG_ASSERT(builder); item= builder->create(thd, (yyvsp[-4].lex_str), (yyvsp[-1].item_list)); } } if (! ((yyval.item)= item)) { MYSQL_YYABORT; } } break; case 1185: #line 6956 "sql_yacc.yy" { THD *thd= YYTHD; Create_qfunc *builder; Item *item= NULL; /* The following in practice calls: Create_sp_func::create() 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[-5].lex_str), (yyvsp[-3].lex_str), true, (yyvsp[-1].item_list)); if (! ((yyval.item)= item)) { MYSQL_YYABORT; } } break; case 1186: #line 6988 "sql_yacc.yy" { (yyval.num)= (yyvsp[-1].num) | (yyvsp[0].num); } break; case 1187: #line 6990 "sql_yacc.yy" { (yyval.num)= FT_BOOL; } break; case 1188: #line 6994 "sql_yacc.yy" { (yyval.num)= FT_NL; } break; case 1189: #line 6995 "sql_yacc.yy" { (yyval.num)= FT_NL; } break; case 1190: #line 6999 "sql_yacc.yy" { (yyval.num)= 0; } break; case 1191: #line 7000 "sql_yacc.yy" { (yyval.num)= FT_EXPAND; } break; case 1192: #line 7004 "sql_yacc.yy" { (yyval.item_list)= NULL; } break; case 1193: #line 7005 "sql_yacc.yy" { (yyval.item_list)= (yyvsp[0].item_list);} break; case 1194: #line 7009 "sql_yacc.yy" { Select->expr_list.push_front(new List); } break; case 1195: #line 7011 "sql_yacc.yy" { (yyval.item_list)= Select->expr_list.pop(); } break; case 1196: #line 7016 "sql_yacc.yy" { Select->expr_list.head()->push_back((yyvsp[0].item)); } break; case 1197: #line 7020 "sql_yacc.yy" { Select->expr_list.head()->push_back((yyvsp[0].item)); } break; case 1198: #line 7027 "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[0].lex_str).str) { (yyvsp[-2].item)->is_autogenerated_name= FALSE; (yyvsp[-2].item)->set_name((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info); } else (yyvsp[-2].item)->set_name((yyvsp[-3].simple_string), (uint) ((yyvsp[-1].simple_string) - (yyvsp[-3].simple_string)), YYTHD->charset()); (yyval.item)= (yyvsp[-2].item); } break; case 1199: #line 7047 "sql_yacc.yy" { (yyval.item)=new Item_sum_avg((yyvsp[-1].item)); } break; case 1200: #line 7049 "sql_yacc.yy" { (yyval.item)=new Item_sum_avg_distinct((yyvsp[-1].item)); } break; case 1201: #line 7051 "sql_yacc.yy" { (yyval.item)=new Item_sum_and((yyvsp[-1].item)); } break; case 1202: #line 7053 "sql_yacc.yy" { (yyval.item)=new Item_sum_or((yyvsp[-1].item)); } break; case 1203: #line 7055 "sql_yacc.yy" { (yyval.item)=new Item_sum_xor((yyvsp[-1].item)); } break; case 1204: #line 7057 "sql_yacc.yy" { (yyval.item)=new Item_sum_count(new Item_int((int32) 0L,1)); } break; case 1205: #line 7059 "sql_yacc.yy" { (yyval.item)=new Item_sum_count((yyvsp[-1].item)); } break; case 1206: #line 7061 "sql_yacc.yy" { Select->in_sum_expr++; } break; case 1207: #line 7063 "sql_yacc.yy" { Select->in_sum_expr--; } break; case 1208: #line 7065 "sql_yacc.yy" { (yyval.item)=new Item_sum_count_distinct(* (yyvsp[-2].item_list)); } break; case 1209: #line 7067 "sql_yacc.yy" { (yyval.item)=new Item_sum_min((yyvsp[-1].item)); } break; case 1210: #line 7074 "sql_yacc.yy" { (yyval.item)=new Item_sum_min((yyvsp[-1].item)); } break; case 1211: #line 7076 "sql_yacc.yy" { (yyval.item)=new Item_sum_max((yyvsp[-1].item)); } break; case 1212: #line 7078 "sql_yacc.yy" { (yyval.item)=new Item_sum_max((yyvsp[-1].item)); } break; case 1213: #line 7080 "sql_yacc.yy" { (yyval.item)=new Item_sum_std((yyvsp[-1].item), 0); } break; case 1214: #line 7082 "sql_yacc.yy" { (yyval.item)=new Item_sum_variance((yyvsp[-1].item), 0); } break; case 1215: #line 7084 "sql_yacc.yy" { (yyval.item)=new Item_sum_std((yyvsp[-1].item), 1); } break; case 1216: #line 7086 "sql_yacc.yy" { (yyval.item)=new Item_sum_variance((yyvsp[-1].item), 1); } break; case 1217: #line 7088 "sql_yacc.yy" { (yyval.item)=new Item_sum_sum((yyvsp[-1].item)); } break; case 1218: #line 7090 "sql_yacc.yy" { (yyval.item)=new Item_sum_sum_distinct((yyvsp[-1].item)); } break; case 1219: #line 7092 "sql_yacc.yy" { Select->in_sum_expr++; } break; case 1220: #line 7096 "sql_yacc.yy" { SELECT_LEX *sel= Select; sel->in_sum_expr--; (yyval.item)=new Item_func_group_concat(Lex->current_context(), (yyvsp[-5].num), (yyvsp[-3].item_list), sel->gorder_list, (yyvsp[-1].string)); (yyvsp[-3].item_list)->empty(); } break; case 1221: #line 7106 "sql_yacc.yy" { if (! Lex->parsing_options.allows_variable) { my_error(ER_VIEW_SELECT_VARIABLE, MYF(0)); MYSQL_YYABORT; } } break; case 1222: #line 7114 "sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } break; case 1223: #line 7121 "sql_yacc.yy" { (yyval.item)= new Item_func_set_user_var((yyvsp[-2].lex_str), (yyvsp[0].item)); LEX *lex= Lex; lex->uncacheable(UNCACHEABLE_RAND); } break; case 1224: #line 7127 "sql_yacc.yy" { (yyval.item)= new Item_func_get_user_var((yyvsp[0].lex_str)); LEX *lex= Lex; lex->uncacheable(UNCACHEABLE_RAND); } break; case 1225: #line 7133 "sql_yacc.yy" { if ((yyvsp[-1].lex_str).str && (yyvsp[0].lex_str).str && check_reserved_words(&(yyvsp[-1].lex_str))) { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } if (!((yyval.item)= get_system_var(YYTHD, (yyvsp[-2].var_type), (yyvsp[-1].lex_str), (yyvsp[0].lex_str)))) MYSQL_YYABORT; } break; case 1226: #line 7145 "sql_yacc.yy" { (yyval.num) = 0; } break; case 1227: #line 7146 "sql_yacc.yy" { (yyval.num) = 1; } break; case 1228: #line 7150 "sql_yacc.yy" { (yyval.string)= new (YYTHD->mem_root) String(",", 1, &my_charset_latin1); } break; case 1229: #line 7153 "sql_yacc.yy" { (yyval.string) = (yyvsp[0].string); } break; case 1230: #line 7158 "sql_yacc.yy" { Select->gorder_list = NULL; } break; case 1231: #line 7162 "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 1232: #line 7173 "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 1233: #line 7182 "sql_yacc.yy" { Select->in_sum_expr--; (yyval.item)= (yyvsp[0].item); } break; case 1234: #line 7188 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= &my_charset_bin; Lex->dec= 0; } break; case 1235: #line 7189 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->dec= 0; } break; case 1236: #line 7190 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_CHAR; Lex->charset= national_charset_info; Lex->dec=0; } break; case 1237: #line 7191 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } break; case 1238: #line 7192 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_SIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } break; case 1239: #line 7193 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } break; case 1240: #line 7194 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_UNSIGNED_INT; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } break; case 1241: #line 7195 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_DATE; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } break; case 1242: #line 7196 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_TIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } break; case 1243: #line 7197 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_DATETIME; Lex->charset= NULL; Lex->dec=Lex->length= (char*)0; } break; case 1244: #line 7198 "sql_yacc.yy" { (yyval.cast_type)=ITEM_CAST_DECIMAL; Lex->charset= NULL; } break; case 1245: #line 7202 "sql_yacc.yy" { (yyval.item_list)= NULL; } break; case 1246: #line 7203 "sql_yacc.yy" { (yyval.item_list)= (yyvsp[0].item_list);} break; case 1247: #line 7207 "sql_yacc.yy" { Select->expr_list.push_front(new List); } break; case 1248: #line 7209 "sql_yacc.yy" { (yyval.item_list)= Select->expr_list.pop(); } break; case 1249: #line 7212 "sql_yacc.yy" { Select->expr_list.head()->push_back((yyvsp[0].item)); } break; case 1250: #line 7213 "sql_yacc.yy" { Select->expr_list.head()->push_back((yyvsp[0].item)); } break; case 1251: #line 7216 "sql_yacc.yy" { (yyval.item_list)= (yyvsp[0].item_list); } break; case 1252: #line 7217 "sql_yacc.yy" { (yyval.item_list)= (yyvsp[-1].item_list); } break; case 1253: #line 7220 "sql_yacc.yy" { Select->expr_list.push_front(new List); } break; case 1254: #line 7222 "sql_yacc.yy" { (yyval.item_list)= Select->expr_list.pop(); } break; case 1255: #line 7225 "sql_yacc.yy" { Select->expr_list.head()->push_back((yyvsp[0].item)); } break; case 1256: #line 7226 "sql_yacc.yy" { Select->expr_list.head()->push_back((yyvsp[0].item)); } break; case 1257: #line 7229 "sql_yacc.yy" { (yyval.item)= NULL; } break; case 1258: #line 7230 "sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } break; case 1259: #line 7233 "sql_yacc.yy" { (yyval.item)= NULL; } break; case 1260: #line 7234 "sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } break; case 1261: #line 7238 "sql_yacc.yy" { (yyval.item_list)= new List; (yyval.item_list)->push_back((yyvsp[-2].item)); (yyval.item_list)->push_back((yyvsp[0].item)); } break; case 1262: #line 7244 "sql_yacc.yy" { (yyvsp[-4].item_list)->push_back((yyvsp[-2].item)); (yyvsp[-4].item_list)->push_back((yyvsp[0].item)); (yyval.item_list)= (yyvsp[-4].item_list); } break; case 1263: #line 7253 "sql_yacc.yy" { (yyval.table_list)=(yyvsp[0].table_list); } break; case 1264: #line 7255 "sql_yacc.yy" { LEX *lex= Lex; if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd))) MYSQL_YYABORT; } break; case 1265: #line 7263 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyval.table_list)=(yyvsp[0].table_list)); } break; case 1266: #line 7268 "sql_yacc.yy" { (yyval.table_list)=(yyvsp[0].table_list); } break; case 1267: #line 7270 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); } break; case 1268: #line 7290 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); } break; case 1269: #line 7292 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-2].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); (yyvsp[0].table_list)->straight=1; } break; case 1270: #line 7295 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ if (push_new_name_resolution_context(YYTHD, (yyvsp[-3].table_list), (yyvsp[-1].table_list))) MYSQL_YYABORT; Select->parsing_place= IN_ON; } break; case 1271: #line 7303 "sql_yacc.yy" { add_join_on((yyvsp[-3].table_list),(yyvsp[0].item)); Lex->pop_context(); Select->parsing_place= NO_MATTER; } break; case 1272: #line 7310 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ if (push_new_name_resolution_context(YYTHD, (yyvsp[-3].table_list), (yyvsp[-1].table_list))) MYSQL_YYABORT; Select->parsing_place= IN_ON; } break; case 1273: #line 7318 "sql_yacc.yy" { (yyvsp[-3].table_list)->straight=1; add_join_on((yyvsp[-3].table_list),(yyvsp[0].item)); Lex->pop_context(); Select->parsing_place= NO_MATTER; } break; case 1274: #line 7326 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && (yyvsp[-1].table_list)); } break; case 1275: #line 7330 "sql_yacc.yy" { add_join_natural((yyvsp[-7].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); (yyval.table_list)=(yyvsp[-5].table_list); } break; case 1276: #line 7332 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-3].table_list) && ((yyval.table_list)=(yyvsp[0].table_list))); add_join_natural((yyvsp[-3].table_list),(yyvsp[0].table_list),NULL,Select); } break; case 1277: #line 7340 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ if (push_new_name_resolution_context(YYTHD, (yyvsp[-5].table_list), (yyvsp[-1].table_list))) MYSQL_YYABORT; Select->parsing_place= IN_ON; } break; case 1278: #line 7348 "sql_yacc.yy" { add_join_on((yyvsp[-3].table_list),(yyvsp[0].item)); Lex->pop_context(); (yyvsp[-3].table_list)->outer_join|=JOIN_TYPE_LEFT; (yyval.table_list)=(yyvsp[-3].table_list); Select->parsing_place= NO_MATTER; } break; case 1279: #line 7356 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); } break; case 1280: #line 7360 "sql_yacc.yy" { add_join_natural((yyvsp[-9].table_list),(yyvsp[-5].table_list),(yyvsp[-1].string_list),Select); (yyvsp[-5].table_list)->outer_join|=JOIN_TYPE_LEFT; (yyval.table_list)=(yyvsp[-5].table_list); } break; case 1281: #line 7366 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list)); add_join_natural((yyvsp[-5].table_list),(yyvsp[0].table_list),NULL,Select); (yyvsp[0].table_list)->outer_join|=JOIN_TYPE_LEFT; (yyval.table_list)=(yyvsp[0].table_list); } break; case 1282: #line 7376 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[-1].table_list)); /* Change the current name resolution context to a local context. */ if (push_new_name_resolution_context(YYTHD, (yyvsp[-5].table_list), (yyvsp[-1].table_list))) MYSQL_YYABORT; Select->parsing_place= IN_ON; } break; case 1283: #line 7384 "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[0].item)); Lex->pop_context(); Select->parsing_place= NO_MATTER; } break; case 1284: #line 7393 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-4].table_list) && (yyvsp[0].table_list)); } break; case 1285: #line 7397 "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].table_list),(yyvsp[-1].string_list),Select); } break; case 1286: #line 7404 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-5].table_list) && (yyvsp[0].table_list)); add_join_natural((yyvsp[0].table_list),(yyvsp[-5].table_list),NULL,Select); LEX *lex= Lex; if (!((yyval.table_list)= lex->current_select->convert_right_join())) MYSQL_YYABORT; } break; case 1287: #line 7413 "sql_yacc.yy" {} break; case 1288: #line 7414 "sql_yacc.yy" {} break; case 1289: #line 7415 "sql_yacc.yy" {} break; case 1290: #line 7420 "sql_yacc.yy" { SELECT_LEX *sel= Select; sel->table_join_options= 0; } break; case 1291: #line 7425 "sql_yacc.yy" { if (!((yyval.table_list)= Select->add_table_to_list(YYTHD, (yyvsp[-2].table), (yyvsp[-1].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 1292: #line 7435 "sql_yacc.yy" { /* Change the current name resolution context to a local context. */ if (push_new_name_resolution_context(YYTHD, (yyvsp[-5].table_list), (yyvsp[-1].table_list))) MYSQL_YYABORT; } break; case 1293: #line 7442 "sql_yacc.yy" { LEX *lex= Lex; MYSQL_YYABORT_UNLESS((yyvsp[-8].table_list) && (yyvsp[-4].table_list)); add_join_on((yyvsp[-4].table_list),(yyvsp[-1].item)); Lex->pop_context(); (yyvsp[-4].table_list)->outer_join|=JOIN_TYPE_LEFT; (yyval.table_list)=(yyvsp[-4].table_list); if (!((yyval.table_list)= lex->current_select->nest_last_join(lex->thd))) MYSQL_YYABORT; } break; case 1294: #line 7453 "sql_yacc.yy" { LEX *lex= Lex; SELECT_LEX *sel= lex->current_select; if ((yyvsp[-2].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[-1].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 1295: #line 7475 "sql_yacc.yy" { /* Use $2 instead of Lex->current_select as derived table will alter value of Lex->current_select. */ if (!((yyvsp[-3].table_list) || (yyvsp[0].lex_str_ptr)) && (yyvsp[-4].select_lex)->embedding && !(yyvsp[-4].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].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[0].lex_str_ptr), 0, TL_READ))) MYSQL_YYABORT; sel->add_joined_table((yyval.table_list)); lex->pop_context(); } else if ((yyvsp[-2].num) || (yyvsp[0].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].table_list); } break; case 1296: #line 7521 "sql_yacc.yy" { LEX *lex= Lex; if ((yyvsp[0].select_lex)->init_nested_join(lex->thd)) MYSQL_YYABORT; } break; case 1297: #line 7527 "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[-2].select_lex)->end_nested_join(lex->thd)) && (yyvsp[0].table_list)) MYSQL_YYABORT; if (!(yyvsp[0].table_list) && (yyval.table_list)) { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } } break; case 1298: #line 7543 "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 1299: #line 7560 "sql_yacc.yy" { Select->parsing_place= NO_MATTER; } break; case 1301: #line 7567 "sql_yacc.yy" { (yyval.select_lex)= Select; } break; case 1302: #line 7572 "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 1303: #line 7597 "sql_yacc.yy" {} break; case 1304: #line 7598 "sql_yacc.yy" {} break; case 1305: #line 7602 "sql_yacc.yy" { (yyval.num)= global_system_variables.old_mode ? INDEX_HINT_MASK_JOIN : INDEX_HINT_MASK_ALL; } break; case 1306: #line 7606 "sql_yacc.yy" { (yyval.num)= INDEX_HINT_MASK_JOIN; } break; case 1307: #line 7607 "sql_yacc.yy" { (yyval.num)= INDEX_HINT_MASK_ORDER; } break; case 1308: #line 7608 "sql_yacc.yy" { (yyval.num)= INDEX_HINT_MASK_GROUP; } break; case 1309: #line 7612 "sql_yacc.yy" { (yyval.index_hint)= INDEX_HINT_FORCE; } break; case 1310: #line 7613 "sql_yacc.yy" { (yyval.index_hint)= INDEX_HINT_IGNORE; } break; case 1311: #line 7618 "sql_yacc.yy" { Select->set_index_hint_type((yyvsp[-2].index_hint), (yyvsp[0].num)); } break; case 1313: #line 7623 "sql_yacc.yy" { Select->set_index_hint_type(INDEX_HINT_USE, (yyvsp[0].num)); } break; case 1318: #line 7636 "sql_yacc.yy" { Select->alloc_index_hints(YYTHD); } break; case 1320: #line 7640 "sql_yacc.yy" { Select->clear_index_hints(); } break; case 1322: #line 7645 "sql_yacc.yy" { Select->add_index_hint(YYTHD, NULL, 0); } break; case 1323: #line 7646 "sql_yacc.yy" {} break; case 1324: #line 7650 "sql_yacc.yy" { Select->add_index_hint(YYTHD, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); } break; case 1325: #line 7652 "sql_yacc.yy" { Select->add_index_hint(YYTHD, (char *)"PRIMARY", 7); } break; case 1328: #line 7664 "sql_yacc.yy" { if (!((yyval.string_list)= new List)) MYSQL_YYABORT; (yyval.string_list)->push_back(new (YYTHD->mem_root) String((const char *) (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info)); } break; case 1329: #line 7672 "sql_yacc.yy" { (yyvsp[-2].string_list)->push_back(new (YYTHD->mem_root) String((const char *) (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info)); (yyval.string_list)= (yyvsp[-2].string_list); } break; case 1330: #line 7680 "sql_yacc.yy" {} break; case 1331: #line 7681 "sql_yacc.yy" { (yyval.interval)=INTERVAL_DAY_HOUR; } break; case 1332: #line 7682 "sql_yacc.yy" { (yyval.interval)=INTERVAL_DAY_MICROSECOND; } break; case 1333: #line 7683 "sql_yacc.yy" { (yyval.interval)=INTERVAL_DAY_MINUTE; } break; case 1334: #line 7684 "sql_yacc.yy" { (yyval.interval)=INTERVAL_DAY_SECOND; } break; case 1335: #line 7685 "sql_yacc.yy" { (yyval.interval)=INTERVAL_HOUR_MICROSECOND; } break; case 1336: #line 7686 "sql_yacc.yy" { (yyval.interval)=INTERVAL_HOUR_MINUTE; } break; case 1337: #line 7687 "sql_yacc.yy" { (yyval.interval)=INTERVAL_HOUR_SECOND; } break; case 1338: #line 7688 "sql_yacc.yy" { (yyval.interval)=INTERVAL_MICROSECOND; } break; case 1339: #line 7689 "sql_yacc.yy" { (yyval.interval)=INTERVAL_MINUTE_MICROSECOND; } break; case 1340: #line 7690 "sql_yacc.yy" { (yyval.interval)=INTERVAL_MINUTE_SECOND; } break; case 1341: #line 7691 "sql_yacc.yy" { (yyval.interval)=INTERVAL_SECOND_MICROSECOND; } break; case 1342: #line 7692 "sql_yacc.yy" { (yyval.interval)=INTERVAL_YEAR_MONTH; } break; case 1343: #line 7695 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_DAY; } break; case 1344: #line 7696 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_WEEK; } break; case 1345: #line 7697 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_HOUR; } break; case 1346: #line 7698 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_MICROSECOND; } break; case 1347: #line 7699 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_MINUTE; } break; case 1348: #line 7700 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_MONTH; } break; case 1349: #line 7701 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_QUARTER; } break; case 1350: #line 7702 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_SECOND; } break; case 1351: #line 7703 "sql_yacc.yy" { (yyval.interval_time_st)=INTERVAL_YEAR; } break; case 1352: #line 7707 "sql_yacc.yy" {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATE;} break; case 1353: #line 7708 "sql_yacc.yy" {(yyval.date_time_type)=MYSQL_TIMESTAMP_TIME;} break; case 1354: #line 7709 "sql_yacc.yy" {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} break; case 1355: #line 7710 "sql_yacc.yy" {(yyval.date_time_type)=MYSQL_TIMESTAMP_DATETIME;} break; case 1359: #line 7719 "sql_yacc.yy" { (yyval.lex_str_ptr)=0; } break; case 1360: #line 7721 "sql_yacc.yy" { (yyval.lex_str_ptr)= (LEX_STRING*) sql_memdup(&(yyvsp[0].lex_str),sizeof(LEX_STRING)); } break; case 1363: #line 7729 "sql_yacc.yy" { Select->where= 0; } break; case 1364: #line 7731 "sql_yacc.yy" { Select->parsing_place= IN_WHERE; } break; case 1365: #line 7735 "sql_yacc.yy" { SELECT_LEX *select= Select; select->where= (yyvsp[0].item); select->parsing_place= NO_MATTER; if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); } break; case 1367: #line 7747 "sql_yacc.yy" { Select->parsing_place= IN_HAVING; } break; case 1368: #line 7751 "sql_yacc.yy" { SELECT_LEX *sel= Select; sel->having= (yyvsp[0].item); sel->parsing_place= NO_MATTER; if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); } break; case 1369: #line 7762 "sql_yacc.yy" { Lex->escape_used= TRUE; (yyval.item)= (yyvsp[0].item); } break; case 1370: #line 7767 "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 1373: #line 7786 "sql_yacc.yy" { if (add_group_to_list(YYTHD, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } break; case 1374: #line 7788 "sql_yacc.yy" { if (add_group_to_list(YYTHD, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } break; case 1375: #line 7791 "sql_yacc.yy" {} break; case 1376: #line 7793 "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 1377: #line 7806 "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 1381: #line 7833 "sql_yacc.yy" { THD *thd= YYTHD; bool ascending= ((yyvsp[0].num) == 1) ? true : false; if (add_order_to_list(thd, (yyvsp[-1].item), ascending)) MYSQL_YYABORT; } break; case 1384: #line 7851 "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 1386: #line 7883 "sql_yacc.yy" { if (add_order_to_list(YYTHD, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } break; case 1387: #line 7885 "sql_yacc.yy" { if (add_order_to_list(YYTHD, (yyvsp[-1].item),(bool) (yyvsp[0].num))) MYSQL_YYABORT; } break; case 1388: #line 7888 "sql_yacc.yy" { (yyval.num) = 1; } break; case 1389: #line 7889 "sql_yacc.yy" { (yyval.num) =1; } break; case 1390: #line 7890 "sql_yacc.yy" { (yyval.num) =0; } break; case 1391: #line 7895 "sql_yacc.yy" { LEX *lex= Lex; SELECT_LEX *sel= lex->current_select; sel->offset_limit= 0; sel->select_limit= 0; } break; case 1392: #line 7901 "sql_yacc.yy" {} break; case 1393: #line 7905 "sql_yacc.yy" {} break; case 1394: #line 7906 "sql_yacc.yy" {} break; case 1395: #line 7910 "sql_yacc.yy" {} break; case 1396: #line 7915 "sql_yacc.yy" { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= 0; sel->explicit_limit= 1; } break; case 1397: #line 7922 "sql_yacc.yy" { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->offset_limit= (yyvsp[-2].item); sel->explicit_limit= 1; } break; case 1398: #line 7929 "sql_yacc.yy" { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[-2].item); sel->offset_limit= (yyvsp[0].item); sel->explicit_limit= 1; } break; case 1399: #line 7938 "sql_yacc.yy" { ((Item_param *) (yyvsp[0].item))->set_strict_type(INT_RESULT); } break; case 1400: #line 7941 "sql_yacc.yy" { (yyval.item)= new Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); } break; case 1401: #line 7942 "sql_yacc.yy" { (yyval.item)= new Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); } break; case 1402: #line 7943 "sql_yacc.yy" { (yyval.item)= new Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); } break; case 1403: #line 7948 "sql_yacc.yy" { LEX *lex=Lex; lex->current_select->select_limit= 0; } break; case 1404: #line 7953 "sql_yacc.yy" { SELECT_LEX *sel= Select; sel->select_limit= (yyvsp[0].item); sel->explicit_limit= 1; } break; case 1405: #line 7960 "sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1406: #line 7961 "sql_yacc.yy" { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } break; case 1407: #line 7962 "sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1408: #line 7963 "sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1409: #line 7964 "sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1410: #line 7965 "sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1411: #line 7969 "sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1412: #line 7970 "sql_yacc.yy" { (yyval.ulong_num)= (ulong) strtol((yyvsp[0].lex_str).str, (char**) 0, 16); } break; case 1413: #line 7971 "sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1414: #line 7972 "sql_yacc.yy" { int error; (yyval.ulong_num)= (ulong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1415: #line 7973 "sql_yacc.yy" { MYSQL_YYABORT; } break; case 1416: #line 7977 "sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1417: #line 7978 "sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1418: #line 7979 "sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1419: #line 7980 "sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1420: #line 7981 "sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1421: #line 7985 "sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1422: #line 7986 "sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1423: #line 7987 "sql_yacc.yy" { int error; (yyval.ulonglong_number)= (ulonglong) my_strtoll10((yyvsp[0].lex_str).str, (char**) 0, &error); } break; case 1424: #line 7988 "sql_yacc.yy" { MYSQL_YYABORT; } break; case 1425: #line 7993 "sql_yacc.yy" { my_parse_error(ER(ER_ONLY_INTEGERS_ALLOWED)); } break; case 1429: #line 8004 "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[0].lex_str).str))) MYSQL_YYABORT; Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); } break; case 1431: #line 8032 "sql_yacc.yy" {} break; case 1432: #line 8033 "sql_yacc.yy" {} break; case 1435: #line 8041 "sql_yacc.yy" { THD *thd= YYTHD; if (add_proc_to_list(thd, (yyvsp[-1].item))) MYSQL_YYABORT; if (!(yyvsp[-1].item)->name) (yyvsp[-1].item)->set_name((yyvsp[-2].simple_string), (uint) ((yyvsp[0].simple_string) - (yyvsp[-2].simple_string)), thd->charset()); } break; case 1436: #line 8053 "sql_yacc.yy" { LEX *lex=Lex; if (!lex->describe && (!(lex->result= new select_dumpvar()))) MYSQL_YYABORT; } break; case 1437: #line 8059 "sql_yacc.yy" {} break; case 1439: #line 8064 "sql_yacc.yy" {} break; case 1440: #line 8069 "sql_yacc.yy" { LEX *lex=Lex; if (lex->result) ((select_dumpvar *)lex->result)->var_list.push_back( new my_var((yyvsp[0].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 1441: #line 8081 "sql_yacc.yy" { LEX *lex=Lex; sp_variable_t *t; if (!lex->spcont || !(t=lex->spcont->find_variable(&(yyvsp[0].lex_str)))) { my_error(ER_SP_UNDECLARED_VAR, MYF(0), (yyvsp[0].lex_str).str); MYSQL_YYABORT; } if (lex->result) { my_var *var; ((select_dumpvar *)lex->result)-> var_list.push_back(var= new my_var((yyvsp[0].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 1442: #line 8113 "sql_yacc.yy" { if (! Lex->parsing_options.allows_select_into) { my_error(ER_VIEW_SELECT_CLAUSE, MYF(0), "INTO"); MYSQL_YYABORT; } } break; case 1444: #line 8125 "sql_yacc.yy" { LEX *lex= Lex; lex->uncacheable(UNCACHEABLE_SIDEEFFECT); if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str, 0)) || !(lex->result= new select_export(lex->exchange))) MYSQL_YYABORT; } break; case 1446: #line 8134 "sql_yacc.yy" { LEX *lex=Lex; if (!lex->describe) { lex->uncacheable(UNCACHEABLE_SIDEEFFECT); if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str,1))) MYSQL_YYABORT; if (!(lex->result= new select_dump(lex->exchange))) MYSQL_YYABORT; } } break; case 1447: #line 8146 "sql_yacc.yy" { Lex->uncacheable(UNCACHEABLE_SIDEEFFECT); } break; case 1448: #line 8156 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_DO; mysql_init_select(lex); } break; case 1449: #line 8162 "sql_yacc.yy" { Lex->insert_list= (yyvsp[0].item_list); } break; case 1450: #line 8173 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_DROP_TABLE; lex->drop_temporary= (yyvsp[-4].num); lex->drop_if_exists= (yyvsp[-2].num); } break; case 1451: #line 8179 "sql_yacc.yy" {} break; case 1452: #line 8180 "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].lex_str).str)); if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[-1].table), NULL, TL_OPTION_UPDATING)) MYSQL_YYABORT; } break; case 1453: #line 8192 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_DROP_DB; lex->drop_if_exists=(yyvsp[-1].num); lex->name= (yyvsp[0].lex_str); } break; case 1454: #line 8199 "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[-1].num); lex->spname= (yyvsp[0].spname); } break; case 1455: #line 8211 "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[-1].num); lex->spname= (yyvsp[0].spname); } break; case 1456: #line 8223 "sql_yacc.yy" { Lex->sql_command = SQLCOM_DROP_USER; } break; case 1457: #line 8227 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_DROP_VIEW; lex->drop_if_exists= (yyvsp[-2].num); } break; case 1458: #line 8233 "sql_yacc.yy" { Lex->drop_if_exists= (yyvsp[-1].num); Lex->spname= (yyvsp[0].spname); Lex->sql_command = SQLCOM_DROP_EVENT; } break; case 1459: #line 8239 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_DROP_TRIGGER; lex->drop_if_exists= (yyvsp[-1].num); lex->spname= (yyvsp[0].spname); } break; case 1460: #line 8246 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= DROP_TABLESPACE; } break; case 1461: #line 8251 "sql_yacc.yy" { LEX *lex= Lex; lex->alter_tablespace_info->ts_cmd_type= DROP_LOGFILE_GROUP; } break; case 1462: #line 8256 "sql_yacc.yy" { Lex->sql_command = SQLCOM_DROP_SERVER; Lex->drop_if_exists= (yyvsp[-1].num); Lex->server_options.server_name= (yyvsp[0].lex_str).str; Lex->server_options.server_name_length= (yyvsp[0].lex_str).length; } break; case 1465: #line 8270 "sql_yacc.yy" { if (!Select->add_table_to_list(YYTHD, (yyvsp[0].table), NULL, TL_OPTION_UPDATING)) MYSQL_YYABORT; } break; case 1466: #line 8277 "sql_yacc.yy" { (yyval.num)= 0; } break; case 1467: #line 8278 "sql_yacc.yy" { (yyval.num)= 1; } break; case 1468: #line 8282 "sql_yacc.yy" { (yyval.num)= 0; } break; case 1469: #line 8283 "sql_yacc.yy" { (yyval.num)= 1; } break; case 1470: #line 8291 "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 1471: #line 8300 "sql_yacc.yy" { Select->set_lock_for_tables((yyvsp[-2].lock_type)); Lex->current_select= &Lex->select_lex; } break; case 1472: #line 8305 "sql_yacc.yy" {} break; case 1473: #line 8310 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_REPLACE; lex->duplicates= DUP_REPLACE; mysql_init_select(lex); } break; case 1474: #line 8317 "sql_yacc.yy" { Select->set_lock_for_tables((yyvsp[-1].lock_type)); Lex->current_select= &Lex->select_lex; } break; case 1475: #line 8322 "sql_yacc.yy" {} break; case 1476: #line 8327 "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 1477: #line 8339 "sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } break; case 1478: #line 8340 "sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_DELAYED; } break; case 1479: #line 8341 "sql_yacc.yy" { (yyval.lock_type)= TL_WRITE; } break; case 1480: #line 8345 "sql_yacc.yy" { (yyval.lock_type)= (yyvsp[0].lock_type); } break; case 1481: #line 8346 "sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_DELAYED; } break; case 1482: #line 8349 "sql_yacc.yy" {} break; case 1483: #line 8350 "sql_yacc.yy" {} break; case 1484: #line 8354 "sql_yacc.yy" { LEX *lex=Lex; lex->field_list.empty(); lex->many_values.empty(); lex->insert_list=0; } break; case 1485: #line 8362 "sql_yacc.yy" {} break; case 1486: #line 8363 "sql_yacc.yy" {} break; case 1487: #line 8364 "sql_yacc.yy" {} break; case 1488: #line 8366 "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 1490: #line 8375 "sql_yacc.yy" { Lex->field_list.push_back((yyvsp[0].item)); } break; case 1491: #line 8376 "sql_yacc.yy" { Lex->field_list.push_back((yyvsp[0].item)); } break; case 1492: #line 8379 "sql_yacc.yy" {} break; case 1493: #line 8380 "sql_yacc.yy" {} break; case 1494: #line 8381 "sql_yacc.yy" { Select->set_braces(0);} break; case 1495: #line 8381 "sql_yacc.yy" {} break; case 1496: #line 8382 "sql_yacc.yy" { Select->set_braces(1);} break; case 1497: #line 8382 "sql_yacc.yy" {} break; case 1502: #line 8396 "sql_yacc.yy" { LEX *lex=Lex; if (lex->field_list.push_back((yyvsp[-2].item)) || lex->insert_list->push_back((yyvsp[0].item))) MYSQL_YYABORT; } break; case 1503: #line 8403 "sql_yacc.yy" {} break; case 1504: #line 8404 "sql_yacc.yy" {} break; case 1505: #line 8408 "sql_yacc.yy" {} break; case 1506: #line 8409 "sql_yacc.yy" {} break; case 1507: #line 8414 "sql_yacc.yy" { if (!(Lex->insert_list = new List_item)) MYSQL_YYABORT; } break; case 1508: #line 8419 "sql_yacc.yy" { LEX *lex=Lex; if (lex->many_values.push_back(lex->insert_list)) MYSQL_YYABORT; } break; case 1509: #line 8426 "sql_yacc.yy" {} break; case 1511: #line 8431 "sql_yacc.yy" { if (Lex->insert_list->push_back((yyvsp[0].item))) MYSQL_YYABORT; } break; case 1512: #line 8436 "sql_yacc.yy" { if (Lex->insert_list->push_back((yyvsp[0].item))) MYSQL_YYABORT; } break; case 1513: #line 8443 "sql_yacc.yy" { (yyval.item)= (yyvsp[0].item);} break; case 1514: #line 8444 "sql_yacc.yy" {(yyval.item)= new Item_default_value(Lex->current_context()); } break; case 1516: #line 8449 "sql_yacc.yy" { Lex->duplicates= DUP_UPDATE; } break; case 1518: #line 8457 "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 1519: #line 8466 "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[-4].lock_type)); } break; case 1520: #line 8484 "sql_yacc.yy" {} break; case 1523: #line 8493 "sql_yacc.yy" { if (add_item_to_list(YYTHD, (yyvsp[-2].item)) || add_value_to_list(YYTHD, (yyvsp[0].item))) MYSQL_YYABORT; } break; case 1526: #line 8504 "sql_yacc.yy" { LEX *lex= Lex; if (lex->update_list.push_back((yyvsp[-2].item)) || lex->value_list.push_back((yyvsp[0].item))) MYSQL_YYABORT; } break; case 1527: #line 8512 "sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_DEFAULT; } break; case 1528: #line 8513 "sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } break; case 1529: #line 8519 "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 1530: #line 8527 "sql_yacc.yy" {} break; case 1531: #line 8532 "sql_yacc.yy" { if (!Select->add_table_to_list(YYTHD, (yyvsp[0].table), NULL, TL_OPTION_UPDATING, Lex->lock_option)) MYSQL_YYABORT; } break; case 1532: #line 8538 "sql_yacc.yy" {} break; case 1533: #line 8540 "sql_yacc.yy" { mysql_init_multi_delete(Lex); } break; case 1534: #line 8542 "sql_yacc.yy" { if (multi_delete_set_locks_and_link_aux_tables(Lex)) MYSQL_YYABORT; } break; case 1535: #line 8547 "sql_yacc.yy" { mysql_init_multi_delete(Lex); } break; case 1536: #line 8549 "sql_yacc.yy" { if (multi_delete_set_locks_and_link_aux_tables(Lex)) MYSQL_YYABORT; } break; case 1537: #line 8556 "sql_yacc.yy" {} break; case 1538: #line 8557 "sql_yacc.yy" {} break; case 1539: #line 8561 "sql_yacc.yy" { if (!Select->add_table_to_list(YYTHD, new Table_ident((yyvsp[-2].lex_str)), (yyvsp[0].lex_str_ptr), TL_OPTION_UPDATING | TL_OPTION_ALIAS, Lex->lock_option)) MYSQL_YYABORT; } break; case 1540: #line 8568 "sql_yacc.yy" { if (!Select->add_table_to_list(YYTHD, new Table_ident(YYTHD, (yyvsp[-4].lex_str), (yyvsp[-2].lex_str), 0), (yyvsp[0].lex_str_ptr), TL_OPTION_UPDATING | TL_OPTION_ALIAS, Lex->lock_option)) MYSQL_YYABORT; } break; case 1541: #line 8580 "sql_yacc.yy" {} break; case 1542: #line 8581 "sql_yacc.yy" {} break; case 1543: #line 8585 "sql_yacc.yy" {} break; case 1544: #line 8586 "sql_yacc.yy" {} break; case 1545: #line 8589 "sql_yacc.yy" { Select->options|= OPTION_QUICK; } break; case 1546: #line 8590 "sql_yacc.yy" { Lex->lock_option= TL_WRITE_LOW_PRIORITY; } break; case 1547: #line 8591 "sql_yacc.yy" { Lex->ignore= 1; } break; case 1548: #line 8595 "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 1551: #line 8611 "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 1552: #line 8620 "sql_yacc.yy" {} break; case 1553: #line 8625 "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 1554: #line 8632 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLES; lex->select_lex.db= (yyvsp[-1].simple_string); if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLE_NAMES)) MYSQL_YYABORT; } break; case 1555: #line 8640 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TRIGGERS; lex->select_lex.db= (yyvsp[-1].simple_string); if (prepare_schema_table(YYTHD, lex, 0, SCH_TRIGGERS)) MYSQL_YYABORT; } break; case 1556: #line 8648 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_EVENTS; lex->select_lex.db= (yyvsp[-1].simple_string); if (prepare_schema_table(YYTHD, lex, 0, SCH_EVENTS)) MYSQL_YYABORT; } break; case 1557: #line 8656 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_TABLE_STATUS; lex->select_lex.db= (yyvsp[-1].simple_string); if (prepare_schema_table(YYTHD, lex, 0, SCH_TABLES)) MYSQL_YYABORT; } break; case 1558: #line 8664 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_OPEN_TABLES; lex->select_lex.db= (yyvsp[-1].simple_string); if (prepare_schema_table(YYTHD, lex, 0, SCH_OPEN_TABLES)) MYSQL_YYABORT; } break; case 1559: #line 8672 "sql_yacc.yy" { LEX *lex= Lex; WARN_DEPRECATED(yythd, "5.2", "SHOW PLUGIN", "'SHOW PLUGINS'"); lex->sql_command= SQLCOM_SHOW_PLUGINS; if (prepare_schema_table(YYTHD, lex, 0, SCH_PLUGINS)) MYSQL_YYABORT; } break; case 1560: #line 8680 "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 1561: #line 8687 "sql_yacc.yy" { Lex->create_info.db_type= (yyvsp[-1].db_type); } break; case 1562: #line 8689 "sql_yacc.yy" { Lex->create_info.db_type= NULL; } break; case 1563: #line 8691 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_FIELDS; if ((yyvsp[-1].simple_string)) (yyvsp[-2].table)->change_db((yyvsp[-1].simple_string)); if (prepare_schema_table(YYTHD, lex, (yyvsp[-2].table), SCH_COLUMNS)) MYSQL_YYABORT; } break; case 1564: #line 8703 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_NEW_MASTER; Lex->mi.log_file_name = (yyvsp[-8].lex_str).str; Lex->mi.pos = (yyvsp[-4].ulonglong_number); Lex->mi.server_id = (yyvsp[0].ulong_num); } break; case 1565: #line 8710 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_BINLOGS; } break; case 1566: #line 8714 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_SLAVE_HOSTS; } break; case 1567: #line 8718 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_BINLOG_EVENTS; } break; case 1569: #line 8723 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_KEYS; if ((yyvsp[-1].simple_string)) (yyvsp[-2].table)->change_db((yyvsp[-1].simple_string)); if (prepare_schema_table(YYTHD, lex, (yyvsp[-2].table), SCH_STATISTICS)) MYSQL_YYABORT; } break; case 1570: #line 8732 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_COLUMN_TYPES; } break; case 1571: #line 8737 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_STORAGE_ENGINES; WARN_DEPRECATED(yythd, "5.2", "SHOW TABLE TYPES", "'SHOW [STORAGE] ENGINES'"); if (prepare_schema_table(YYTHD, lex, 0, SCH_ENGINES)) MYSQL_YYABORT; } break; case 1572: #line 8745 "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 1573: #line 8752 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_AUTHORS; } break; case 1574: #line 8757 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_CONTRIBUTORS; } break; case 1575: #line 8762 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_PRIVILEGES; } break; case 1576: #line 8767 "sql_yacc.yy" { (void) create_select_for_variable("warning_count"); } break; case 1577: #line 8769 "sql_yacc.yy" { (void) create_select_for_variable("error_count"); } break; case 1578: #line 8771 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_WARNS;} break; case 1579: #line 8773 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_ERRORS;} break; case 1580: #line 8775 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_STATUS; lex->option_type= (yyvsp[-2].var_type); if (prepare_schema_table(YYTHD, lex, 0, SCH_STATUS)) MYSQL_YYABORT; } break; case 1581: #line 8783 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_ENGINE_STATUS; if (!(lex->create_info.db_type= ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB))) { my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB"); MYSQL_YYABORT; } WARN_DEPRECATED(yythd, "5.2", "SHOW INNODB STATUS", "'SHOW ENGINE INNODB STATUS'"); } break; case 1582: #line 8795 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_ENGINE_MUTEX; if (!(lex->create_info.db_type= ha_resolve_by_legacy_type(YYTHD, DB_TYPE_INNODB))) { my_error(ER_UNKNOWN_STORAGE_ENGINE, MYF(0), "InnoDB"); MYSQL_YYABORT; } WARN_DEPRECATED(yythd, "5.2", "SHOW MUTEX STATUS", "'SHOW ENGINE INNODB MUTEX'"); } break; case 1583: #line 8807 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_PROCESSLIST;} break; case 1584: #line 8809 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_VARIABLES; lex->option_type= (yyvsp[-2].var_type); if (prepare_schema_table(YYTHD, lex, 0, SCH_VARIABLES)) MYSQL_YYABORT; } break; case 1585: #line 8817 "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 1586: #line 8824 "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 1587: #line 8831 "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 1588: #line 8841 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SHOW_GRANTS; lex->grant_user=(yyvsp[0].lex_user); lex->grant_user->password=null_lex_str; } break; case 1589: #line 8848 "sql_yacc.yy" { Lex->sql_command=SQLCOM_SHOW_CREATE_DB; Lex->create_info.options=(yyvsp[-1].num); Lex->name= (yyvsp[0].lex_str); } break; case 1590: #line 8854 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[0].table), NULL,0)) MYSQL_YYABORT; lex->only_view= 0; lex->create_info.storage_media= HA_SM_DEFAULT; } break; case 1591: #line 8863 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE; if (!lex->select_lex.add_table_to_list(YYTHD, (yyvsp[0].table), NULL, 0)) MYSQL_YYABORT; lex->only_view= 1; } break; case 1592: #line 8871 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_MASTER_STAT; } break; case 1593: #line 8875 "sql_yacc.yy" { Lex->sql_command = SQLCOM_SHOW_SLAVE_STAT; } break; case 1594: #line 8879 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_PROC; lex->spname= (yyvsp[0].spname); } break; case 1595: #line 8886 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command = SQLCOM_SHOW_CREATE_FUNC; lex->spname= (yyvsp[0].spname); } break; case 1596: #line 8893 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_SHOW_CREATE_TRIGGER; lex->spname= (yyvsp[0].spname); } break; case 1597: #line 8899 "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 1598: #line 8908 "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 1599: #line 8917 "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[0].spname); #endif } break; case 1600: #line 8927 "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[0].spname); #endif } break; case 1601: #line 8937 "sql_yacc.yy" { Lex->spname= (yyvsp[0].spname); Lex->sql_command = SQLCOM_SHOW_CREATE_EVENT; } break; case 1602: #line 8945 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_ENGINE_STATUS; } break; case 1603: #line 8947 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_ENGINE_MUTEX; } break; case 1604: #line 8949 "sql_yacc.yy" { Lex->sql_command= SQLCOM_SHOW_ENGINE_LOGS; } break; case 1609: #line 8960 "sql_yacc.yy" { (yyval.simple_string)= 0; } break; case 1610: #line 8961 "sql_yacc.yy" { (yyval.simple_string)= (yyvsp[0].lex_str).str; } break; case 1611: #line 8964 "sql_yacc.yy" { Lex->verbose=0; } break; case 1612: #line 8965 "sql_yacc.yy" { Lex->verbose=1; } break; case 1615: #line 8972 "sql_yacc.yy" { Lex->mi.log_file_name = 0; } break; case 1616: #line 8973 "sql_yacc.yy" { Lex->mi.log_file_name = (yyvsp[0].lex_str).str; } break; case 1617: #line 8976 "sql_yacc.yy" { Lex->mi.pos = 4; /* skip magic number */ } break; case 1618: #line 8977 "sql_yacc.yy" { Lex->mi.pos = (yyvsp[0].ulonglong_number); } break; case 1620: #line 8982 "sql_yacc.yy" { Lex->wild= new (YYTHD->mem_root) String((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, system_charset_info); } break; case 1621: #line 8985 "sql_yacc.yy" { Select->where= (yyvsp[0].item); if ((yyvsp[0].item)) (yyvsp[0].item)->top_level_item(); } break; case 1622: #line 8996 "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[0].table), SCH_COLUMNS)) MYSQL_YYABORT; } break; case 1623: #line 9007 "sql_yacc.yy" {} break; case 1624: #line 9009 "sql_yacc.yy" { Lex->describe|= DESCRIBE_NORMAL; } break; case 1625: #line 9011 "sql_yacc.yy" { LEX *lex=Lex; lex->select_lex.options|= SELECT_DESCRIBE; } break; case 1628: #line 9022 "sql_yacc.yy" {} break; case 1629: #line 9023 "sql_yacc.yy" { Lex->describe|= DESCRIBE_EXTENDED; } break; case 1630: #line 9024 "sql_yacc.yy" { Lex->describe|= DESCRIBE_PARTITIONS; } break; case 1631: #line 9029 "sql_yacc.yy" {} break; case 1632: #line 9030 "sql_yacc.yy" { Lex->wild= (yyvsp[0].string); } break; case 1633: #line 9032 "sql_yacc.yy" { Lex->wild= new (YYTHD->mem_root) String((const char*) (yyvsp[0].lex_str).str,(yyvsp[0].lex_str).length,system_charset_info); } break; case 1634: #line 9039 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_FLUSH; lex->type= 0; lex->no_write_to_binlog= (yyvsp[0].num); } break; case 1635: #line 9046 "sql_yacc.yy" {} break; case 1638: #line 9054 "sql_yacc.yy" { Lex->type|= REFRESH_TABLES; } break; case 1639: #line 9054 "sql_yacc.yy" {} break; case 1640: #line 9055 "sql_yacc.yy" { Lex->type|= REFRESH_TABLES | REFRESH_READ_LOCK; } break; case 1641: #line 9056 "sql_yacc.yy" { Lex->type|= REFRESH_QUERY_CACHE_FREE; } break; case 1642: #line 9057 "sql_yacc.yy" { Lex->type|= REFRESH_HOSTS; } break; case 1643: #line 9058 "sql_yacc.yy" { Lex->type|= REFRESH_GRANT; } break; case 1644: #line 9059 "sql_yacc.yy" { Lex->type|= REFRESH_LOG; } break; case 1645: #line 9060 "sql_yacc.yy" { Lex->type|= REFRESH_STATUS; } break; case 1646: #line 9061 "sql_yacc.yy" { Lex->type|= REFRESH_SLAVE; } break; case 1647: #line 9062 "sql_yacc.yy" { Lex->type|= REFRESH_MASTER; } break; case 1648: #line 9063 "sql_yacc.yy" { Lex->type|= REFRESH_DES_KEY_FILE; } break; case 1649: #line 9064 "sql_yacc.yy" { Lex->type|= REFRESH_USER_RESOURCES; } break; case 1650: #line 9067 "sql_yacc.yy" {;} break; case 1651: #line 9068 "sql_yacc.yy" {;} break; case 1652: #line 9072 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_RESET; lex->type=0; } break; case 1653: #line 9076 "sql_yacc.yy" {} break; case 1656: #line 9084 "sql_yacc.yy" { Lex->type|= REFRESH_SLAVE; } break; case 1657: #line 9085 "sql_yacc.yy" { Lex->type|= REFRESH_MASTER; } break; case 1658: #line 9086 "sql_yacc.yy" { Lex->type|= REFRESH_QUERY_CACHE;} break; case 1659: #line 9090 "sql_yacc.yy" { LEX *lex=Lex; lex->type=0; lex->sql_command = SQLCOM_PURGE; } break; case 1660: #line 9095 "sql_yacc.yy" {} break; case 1662: #line 9104 "sql_yacc.yy" { Lex->to_log = (yyvsp[0].lex_str).str; } break; case 1663: #line 9108 "sql_yacc.yy" { LEX *lex= Lex; lex->value_list.empty(); lex->value_list.push_front((yyvsp[0].item)); lex->sql_command= SQLCOM_PURGE_BEFORE; } break; case 1664: #line 9120 "sql_yacc.yy" { LEX *lex=Lex; lex->value_list.empty(); lex->value_list.push_front((yyvsp[0].item)); lex->sql_command= SQLCOM_KILL; } break; case 1665: #line 9128 "sql_yacc.yy" { Lex->type= 0; } break; case 1666: #line 9129 "sql_yacc.yy" { Lex->type= 0; } break; case 1667: #line 9130 "sql_yacc.yy" { Lex->type= ONLY_KILL_QUERY; } break; case 1668: #line 9136 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command=SQLCOM_CHANGE_DB; lex->select_lex.db= (yyvsp[0].lex_str).str; } break; case 1669: #line 9145 "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), "LOAD DATA"); MYSQL_YYABORT; } lex->fname_start= lip->get_ptr(); } break; case 1670: #line 9158 "sql_yacc.yy" {} break; case 1671: #line 9161 "sql_yacc.yy" { LEX *lex=Lex; WARN_DEPRECATED(yythd, "5.2", "LOAD TABLE FROM MASTER", "MySQL Administrator (mysqldump, mysql)"); if (lex->sphead) { my_error(ER_SP_BADSTATEMENT, MYF(0), "LOAD TABLE"); MYSQL_YYABORT; } lex->sql_command = SQLCOM_LOAD_MASTER_TABLE; if (!Select->add_table_to_list(YYTHD, (yyvsp[-2].table), NULL, TL_OPTION_UPDATING)) MYSQL_YYABORT; } break; case 1672: #line 9177 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_LOAD; lex->lock_option= (yyvsp[-3].lock_type); lex->local_file= (yyvsp[-2].num); lex->duplicates= DUP_ERROR; lex->ignore= 0; if (!(lex->exchange= new sql_exchange((yyvsp[0].lex_str).str, 0))) MYSQL_YYABORT; } break; case 1673: #line 9188 "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 1674: #line 9195 "sql_yacc.yy" { LEX *lex=Lex; if (!Select->add_table_to_list(YYTHD, (yyvsp[0].table), NULL, TL_OPTION_UPDATING, lex->lock_option)) MYSQL_YYABORT; lex->field_list.empty(); lex->update_list.empty(); lex->value_list.empty(); } break; case 1675: #line 9205 "sql_yacc.yy" { Lex->exchange->cs= (yyvsp[0].charset); } break; case 1676: #line 9208 "sql_yacc.yy" {} break; case 1677: #line 9211 "sql_yacc.yy" { Lex->sql_command = SQLCOM_LOAD_MASTER_DATA; WARN_DEPRECATED(yythd, "5.2", "LOAD DATA FROM MASTER", "mysqldump or future " "BACKUP/RESTORE DATABASE facility"); } break; case 1678: #line 9219 "sql_yacc.yy" { (yyval.num)=0;} break; case 1679: #line 9220 "sql_yacc.yy" { (yyval.num)=1;} break; case 1680: #line 9223 "sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_DEFAULT; } break; case 1681: #line 9225 "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 1682: #line 9236 "sql_yacc.yy" { (yyval.lock_type)= TL_WRITE_LOW_PRIORITY; } break; case 1683: #line 9240 "sql_yacc.yy" { Lex->duplicates=DUP_ERROR; } break; case 1684: #line 9241 "sql_yacc.yy" { Lex->duplicates=DUP_REPLACE; } break; case 1685: #line 9242 "sql_yacc.yy" { Lex->ignore= 1; } break; case 1690: #line 9254 "sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->field_term= (yyvsp[0].string); } break; case 1691: #line 9259 "sql_yacc.yy" { LEX *lex= Lex; DBUG_ASSERT(lex->exchange != 0); lex->exchange->enclosed= (yyvsp[0].string); lex->exchange->opt_enclosed= 1; } break; case 1692: #line 9266 "sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->enclosed= (yyvsp[0].string); } break; case 1693: #line 9271 "sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->escaped= (yyvsp[0].string); } break; case 1698: #line 9286 "sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->line_term= (yyvsp[0].string); } break; case 1699: #line 9291 "sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->line_start= (yyvsp[0].string); } break; case 1701: #line 9299 "sql_yacc.yy" { DBUG_ASSERT(Lex->exchange != 0); Lex->exchange->skip_lines= atol((yyvsp[-1].lex_str).str); } break; case 1702: #line 9305 "sql_yacc.yy" { } break; case 1703: #line 9306 "sql_yacc.yy" { } break; case 1704: #line 9307 "sql_yacc.yy" { } break; case 1705: #line 9311 "sql_yacc.yy" { Lex->field_list.push_back((yyvsp[0].item)); } break; case 1706: #line 9313 "sql_yacc.yy" { Lex->field_list.push_back((yyvsp[0].item)); } break; case 1707: #line 9317 "sql_yacc.yy" {(yyval.item)= (yyvsp[0].item);} break; case 1708: #line 9319 "sql_yacc.yy" { (yyval.item)= new Item_user_var_as_out_param((yyvsp[0].lex_str)); } break; case 1709: #line 9323 "sql_yacc.yy" { } break; case 1710: #line 9324 "sql_yacc.yy" { } break; case 1711: #line 9331 "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[0].lex_str); else thd->convert_string(&tmp, cs_con, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, cs_cli); (yyval.item)= new Item_string(tmp.str, tmp.length, cs_con, DERIVATION_COERCIBLE, repertoire); } break; case 1712: #line 9349 "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[0].lex_str).str, (yyvsp[0].lex_str).length, national_charset_info, DERIVATION_COERCIBLE, repertoire); } break; case 1713: #line 9357 "sql_yacc.yy" { (yyval.item)= new Item_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, (yyvsp[-1].charset)); ((Item_string*) (yyval.item))->set_repertoire_from_value(); } break; case 1714: #line 9362 "sql_yacc.yy" { Item_string* item= (Item_string*) (yyvsp[-1].item); item->append((yyvsp[0].lex_str).str, (yyvsp[0].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[0].lex_str).str, (yyvsp[0].lex_str).length); } } break; case 1715: #line 9381 "sql_yacc.yy" { (yyval.string)= new (YYTHD->mem_root) String((yyvsp[0].lex_str).str,(yyvsp[0].lex_str).length,YYTHD->variables.collation_connection); } break; case 1716: #line 9383 "sql_yacc.yy" { Item *tmp= new Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].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 1717: #line 9394 "sql_yacc.yy" { Item *tmp= new Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].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 1718: #line 9407 "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 1719: #line 9427 "sql_yacc.yy" { (yyval.item) = (yyvsp[0].item); } break; case 1720: #line 9428 "sql_yacc.yy" { (yyval.item) = (yyvsp[0].item_num); } break; case 1721: #line 9430 "sql_yacc.yy" { (yyvsp[0].item_num)->max_length++; (yyval.item)= (yyvsp[0].item_num)->neg(); } break; case 1722: #line 9438 "sql_yacc.yy" { (yyval.item) = (yyvsp[0].item); } break; case 1723: #line 9439 "sql_yacc.yy" { (yyval.item) = (yyvsp[0].item_num); } break; case 1724: #line 9441 "sql_yacc.yy" { (yyval.item) = new Item_null(); YYTHD->m_lip->next_state=MY_LEX_OPERATOR_OR_IDENT; } break; case 1725: #line 9445 "sql_yacc.yy" { (yyval.item)= new Item_int((char*) "FALSE",0,1); } break; case 1726: #line 9446 "sql_yacc.yy" { (yyval.item)= new Item_int((char*) "TRUE",1,1); } break; case 1727: #line 9447 "sql_yacc.yy" { (yyval.item) = new Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length);} break; case 1728: #line 9448 "sql_yacc.yy" { (yyval.item)= new Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); } break; case 1729: #line 9450 "sql_yacc.yy" { Item *tmp= new Item_hex_string((yyvsp[0].lex_str).str, (yyvsp[0].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].charset)); if ((yyval.item)) ((Item_string *) (yyval.item))->set_repertoire_from_value(); } break; case 1730: #line 9466 "sql_yacc.yy" { Item *tmp= new Item_bin_string((yyvsp[0].lex_str).str, (yyvsp[0].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 1731: #line 9479 "sql_yacc.yy" { (yyval.item) = (yyvsp[0].item); } break; case 1732: #line 9480 "sql_yacc.yy" { (yyval.item) = (yyvsp[0].item); } break; case 1733: #line 9481 "sql_yacc.yy" { (yyval.item) = (yyvsp[0].item); } break; case 1734: #line 9484 "sql_yacc.yy" { int error; (yyval.item_num) = new Item_int((yyvsp[0].lex_str).str, (longlong) my_strtoll10((yyvsp[0].lex_str).str, NULL, &error), (yyvsp[0].lex_str).length); } break; case 1735: #line 9485 "sql_yacc.yy" { int error; (yyval.item_num) = new Item_int((yyvsp[0].lex_str).str, (longlong) my_strtoll10((yyvsp[0].lex_str).str, NULL, &error), (yyvsp[0].lex_str).length); } break; case 1736: #line 9486 "sql_yacc.yy" { (yyval.item_num) = new Item_uint((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); } break; case 1737: #line 9488 "sql_yacc.yy" { (yyval.item_num)= new Item_decimal((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, YYTHD->charset()); if (YYTHD->net.report_error) { MYSQL_YYABORT; } } break; case 1738: #line 9496 "sql_yacc.yy" { (yyval.item_num) = new Item_float((yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (YYTHD->net.report_error) { MYSQL_YYABORT; } } break; case 1739: #line 9510 "sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } break; case 1740: #line 9511 "sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } break; case 1741: #line 9515 "sql_yacc.yy" { SELECT_LEX *sel= Select; (yyval.item) = new Item_field(Lex->current_context(), NullS, (yyvsp[-2].lex_str).str, "*"); sel->with_wild++; } break; case 1742: #line 9521 "sql_yacc.yy" { SELECT_LEX *sel= Select; (yyval.item) = new Item_field(Lex->current_context(), (YYTHD->client_capabilities & CLIENT_NO_SCHEMA ? NullS : (yyvsp[-4].lex_str).str), (yyvsp[-2].lex_str).str,"*"); sel->with_wild++; } break; case 1743: #line 9531 "sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } break; case 1744: #line 9535 "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[0].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[0].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[0].lex_str).str) : (Item*) new Item_ref(Lex->current_context(), NullS, NullS, (yyvsp[0].lex_str).str); } } break; case 1745: #line 9571 "sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } break; case 1746: #line 9576 "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[0].lex_str).str) : (Item*) new Item_ref(Lex->current_context(), NullS, NullS, (yyvsp[0].lex_str).str); } break; case 1747: #line 9583 "sql_yacc.yy" { (yyval.item)= (yyvsp[0].item); } break; case 1748: #line 9588 "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[-2].lex_str).str, "NEW") || !my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "OLD"))) { Item_trigger_field *trg_fld; bool new_row= ((yyvsp[-2].lex_str).str[0]=='N' || (yyvsp[-2].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[0].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[-2].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].lex_str).str, (yyvsp[0].lex_str).str) : (Item*) new Item_ref(Lex->current_context(), NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); } } break; case 1749: #line 9657 "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].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].lex_str).str, (yyvsp[0].lex_str).str) : (Item*) new Item_ref(Lex->current_context(), NullS, (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); } break; case 1750: #line 9672 "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].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[-4].lex_str).str), (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str) : (Item*) new Item_ref(Lex->current_context(), (YYTHD->client_capabilities & CLIENT_NO_SCHEMA ? NullS : (yyvsp[-4].lex_str).str), (yyvsp[-2].lex_str).str, (yyvsp[0].lex_str).str); } break; case 1751: #line 9695 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str);} break; case 1752: #line 9697 "sql_yacc.yy" { TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first; if (my_strcasecmp(table_alias_charset, (yyvsp[-4].lex_str).str, table->db)) { my_error(ER_WRONG_DB_NAME, MYF(0), (yyvsp[-4].lex_str).str); MYSQL_YYABORT; } if (my_strcasecmp(table_alias_charset, (yyvsp[-2].lex_str).str, table->table_name)) { my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].lex_str).str); MYSQL_YYABORT; } (yyval.lex_str)=(yyvsp[0].lex_str); } break; case 1753: #line 9713 "sql_yacc.yy" { TABLE_LIST *table= (TABLE_LIST*) Select->table_list.first; if (my_strcasecmp(table_alias_charset, (yyvsp[-2].lex_str).str, table->alias)) { my_error(ER_WRONG_TABLE_NAME, MYF(0), (yyvsp[-2].lex_str).str); MYSQL_YYABORT; } (yyval.lex_str)=(yyvsp[0].lex_str); } break; case 1754: #line 9722 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str);} break; case 1755: #line 9725 "sql_yacc.yy" { (yyval.table)=new Table_ident((yyvsp[0].lex_str)); } break; case 1756: #line 9726 "sql_yacc.yy" { (yyval.table)=new Table_ident(YYTHD, (yyvsp[-2].lex_str),(yyvsp[0].lex_str),0);} break; case 1757: #line 9727 "sql_yacc.yy" { (yyval.table)=new Table_ident((yyvsp[0].lex_str));} break; case 1758: #line 9731 "sql_yacc.yy" { LEX_STRING db={(char*) any_db,3}; (yyval.table)=new Table_ident(YYTHD, db,(yyvsp[0].lex_str),0); } break; case 1759: #line 9735 "sql_yacc.yy" { (yyval.lex_str)= (yyvsp[0].lex_str); } break; case 1760: #line 9737 "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[0].lex_str).str, (yyvsp[0].lex_str).str+(yyvsp[0].lex_str).length, (yyvsp[0].lex_str).length, &dummy_error); if (wlen < (yyvsp[0].lex_str).length) { my_error(ER_INVALID_CHARACTER_STRING, MYF(0), cs->csname, (yyvsp[0].lex_str).str + wlen); MYSQL_YYABORT; } (yyval.lex_str)= (yyvsp[0].lex_str); } else thd->convert_string(&(yyval.lex_str), system_charset_info, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset()); } break; case 1761: #line 9763 "sql_yacc.yy" { THD *thd= YYTHD; if (thd->charset_is_system_charset) (yyval.lex_str)= (yyvsp[0].lex_str); else thd->convert_string(&(yyval.lex_str), system_charset_info, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset()); } break; case 1762: #line 9776 "sql_yacc.yy" { THD *thd= YYTHD; if (thd->charset_is_collation_connection) (yyval.lex_str)= (yyvsp[0].lex_str); else thd->convert_string(&(yyval.lex_str), thd->variables.collation_connection, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset()); } break; case 1763: #line 9790 "sql_yacc.yy" { THD *thd= YYTHD; if (thd->charset_is_character_set_filesystem) (yyval.lex_str)= (yyvsp[0].lex_str); else thd->convert_string(&(yyval.lex_str), thd->variables.character_set_filesystem, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length, thd->charset()); } break; case 1764: #line 9802 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } break; case 1765: #line 9804 "sql_yacc.yy" { THD *thd= YYTHD; (yyval.lex_str).str= thd->strmake("read_only",9); (yyval.lex_str).length= 9; } break; case 1766: #line 9810 "sql_yacc.yy" { THD *thd= YYTHD; (yyval.lex_str).str= thd->strmake((yyvsp[0].symbol).str, (yyvsp[0].symbol).length); (yyval.lex_str).length= (yyvsp[0].symbol).length; } break; case 1767: #line 9818 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str); } break; case 1768: #line 9820 "sql_yacc.yy" { THD *thd= YYTHD; (yyval.lex_str).str= thd->strmake((yyvsp[0].symbol).str, (yyvsp[0].symbol).length); (yyval.lex_str).length= (yyvsp[0].symbol).length; } break; case 1769: #line 9828 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str);} break; case 1770: #line 9829 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str);} break; case 1771: #line 9830 "sql_yacc.yy" { (yyval.lex_str)=(yyvsp[0].lex_str);} break; case 1772: #line 9834 "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[0].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 1773: #line 9848 "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[-2].lex_str); (yyval.lex_user)->host=(yyvsp[0].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 1774: #line 9862 "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 1775: #line 9875 "sql_yacc.yy" {} break; case 1776: #line 9876 "sql_yacc.yy" {} break; case 1777: #line 9877 "sql_yacc.yy" {} break; case 1778: #line 9878 "sql_yacc.yy" {} break; case 1779: #line 9879 "sql_yacc.yy" {} break; case 1780: #line 9880 "sql_yacc.yy" {} break; case 1781: #line 9881 "sql_yacc.yy" {} break; case 1782: #line 9882 "sql_yacc.yy" {} break; case 1783: #line 9883 "sql_yacc.yy" {} break; case 1784: #line 9884 "sql_yacc.yy" {} break; case 1785: #line 9885 "sql_yacc.yy" {} break; case 1786: #line 9886 "sql_yacc.yy" {} break; case 1787: #line 9887 "sql_yacc.yy" {} break; case 1788: #line 9888 "sql_yacc.yy" {} break; case 1789: #line 9889 "sql_yacc.yy" {} break; case 1790: #line 9890 "sql_yacc.yy" {} break; case 1791: #line 9891 "sql_yacc.yy" {} break; case 1792: #line 9892 "sql_yacc.yy" {} break; case 1793: #line 9893 "sql_yacc.yy" {} break; case 1794: #line 9894 "sql_yacc.yy" {} break; case 1795: #line 9895 "sql_yacc.yy" {} break; case 1796: #line 9896 "sql_yacc.yy" {} break; case 1797: #line 9897 "sql_yacc.yy" {} break; case 1798: #line 9898 "sql_yacc.yy" {} break; case 1799: #line 9899 "sql_yacc.yy" {} break; case 1800: #line 9900 "sql_yacc.yy" {} break; case 1801: #line 9901 "sql_yacc.yy" {} break; case 1802: #line 9902 "sql_yacc.yy" {} break; case 1803: #line 9903 "sql_yacc.yy" {} break; case 1804: #line 9904 "sql_yacc.yy" {} break; case 1805: #line 9905 "sql_yacc.yy" {} break; case 1806: #line 9906 "sql_yacc.yy" {} break; case 1807: #line 9907 "sql_yacc.yy" {} break; case 1808: #line 9908 "sql_yacc.yy" {} break; case 1809: #line 9909 "sql_yacc.yy" {} break; case 1810: #line 9910 "sql_yacc.yy" {} break; case 1811: #line 9911 "sql_yacc.yy" {} break; case 1812: #line 9912 "sql_yacc.yy" {} break; case 1813: #line 9913 "sql_yacc.yy" {} break; case 1814: #line 9914 "sql_yacc.yy" {} break; case 1815: #line 9915 "sql_yacc.yy" {} break; case 1816: #line 9916 "sql_yacc.yy" {} break; case 1817: #line 9917 "sql_yacc.yy" {} break; case 1818: #line 9918 "sql_yacc.yy" {} break; case 1819: #line 9919 "sql_yacc.yy" {} break; case 1820: #line 9920 "sql_yacc.yy" {} break; case 1821: #line 9921 "sql_yacc.yy" {} break; case 1822: #line 9922 "sql_yacc.yy" {} break; case 1823: #line 9923 "sql_yacc.yy" {} break; case 1824: #line 9924 "sql_yacc.yy" {} break; case 1825: #line 9934 "sql_yacc.yy" {} break; case 1826: #line 9935 "sql_yacc.yy" {} break; case 1827: #line 9936 "sql_yacc.yy" {} break; case 1828: #line 9937 "sql_yacc.yy" {} break; case 1829: #line 9938 "sql_yacc.yy" {} break; case 1830: #line 9939 "sql_yacc.yy" {} break; case 1831: #line 9940 "sql_yacc.yy" {} break; case 1832: #line 9941 "sql_yacc.yy" {} break; case 1833: #line 9942 "sql_yacc.yy" {} break; case 1834: #line 9943 "sql_yacc.yy" {} break; case 1835: #line 9944 "sql_yacc.yy" {} break; case 1836: #line 9945 "sql_yacc.yy" {} break; case 1837: #line 9946 "sql_yacc.yy" {} break; case 1838: #line 9947 "sql_yacc.yy" {} break; case 1839: #line 9948 "sql_yacc.yy" {} break; case 1840: #line 9949 "sql_yacc.yy" {} break; case 1841: #line 9950 "sql_yacc.yy" {} break; case 1842: #line 9951 "sql_yacc.yy" {} break; case 1843: #line 9952 "sql_yacc.yy" {} break; case 1844: #line 9953 "sql_yacc.yy" {} break; case 1845: #line 9954 "sql_yacc.yy" {} break; case 1846: #line 9955 "sql_yacc.yy" {} break; case 1847: #line 9956 "sql_yacc.yy" {} break; case 1848: #line 9957 "sql_yacc.yy" {} break; case 1849: #line 9958 "sql_yacc.yy" {} break; case 1850: #line 9959 "sql_yacc.yy" {} break; case 1851: #line 9960 "sql_yacc.yy" {} break; case 1852: #line 9961 "sql_yacc.yy" {} break; case 1853: #line 9962 "sql_yacc.yy" {} break; case 1854: #line 9963 "sql_yacc.yy" {} break; case 1855: #line 9964 "sql_yacc.yy" {} break; case 1856: #line 9965 "sql_yacc.yy" {} break; case 1857: #line 9966 "sql_yacc.yy" {} break; case 1858: #line 9967 "sql_yacc.yy" {} break; case 1859: #line 9968 "sql_yacc.yy" {} break; case 1860: #line 9969 "sql_yacc.yy" {} break; case 1861: #line 9970 "sql_yacc.yy" {} break; case 1862: #line 9971 "sql_yacc.yy" {} break; case 1863: #line 9972 "sql_yacc.yy" {} break; case 1864: #line 9973 "sql_yacc.yy" {} break; case 1865: #line 9974 "sql_yacc.yy" {} break; case 1866: #line 9975 "sql_yacc.yy" {} break; case 1867: #line 9976 "sql_yacc.yy" {} break; case 1868: #line 9977 "sql_yacc.yy" {} break; case 1869: #line 9978 "sql_yacc.yy" {} break; case 1870: #line 9979 "sql_yacc.yy" {} break; case 1871: #line 9980 "sql_yacc.yy" {} break; case 1872: #line 9981 "sql_yacc.yy" {} break; case 1873: #line 9982 "sql_yacc.yy" {} break; case 1874: #line 9983 "sql_yacc.yy" {} break; case 1875: #line 9984 "sql_yacc.yy" {} break; case 1876: #line 9985 "sql_yacc.yy" {} break; case 1877: #line 9986 "sql_yacc.yy" {} break; case 1878: #line 9987 "sql_yacc.yy" {} break; case 1879: #line 9988 "sql_yacc.yy" {} break; case 1880: #line 9989 "sql_yacc.yy" {} break; case 1881: #line 9990 "sql_yacc.yy" {} break; case 1882: #line 9991 "sql_yacc.yy" {} break; case 1883: #line 9992 "sql_yacc.yy" {} break; case 1884: #line 9993 "sql_yacc.yy" {} break; case 1885: #line 9994 "sql_yacc.yy" {} break; case 1886: #line 9995 "sql_yacc.yy" {} break; case 1887: #line 9996 "sql_yacc.yy" {} break; case 1888: #line 9997 "sql_yacc.yy" {} break; case 1889: #line 9998 "sql_yacc.yy" {} break; case 1890: #line 9999 "sql_yacc.yy" {} break; case 1891: #line 10000 "sql_yacc.yy" {} break; case 1892: #line 10001 "sql_yacc.yy" {} break; case 1893: #line 10002 "sql_yacc.yy" {} break; case 1894: #line 10003 "sql_yacc.yy" {} break; case 1895: #line 10004 "sql_yacc.yy" {} break; case 1896: #line 10005 "sql_yacc.yy" {} break; case 1897: #line 10006 "sql_yacc.yy" {} break; case 1898: #line 10007 "sql_yacc.yy" {} break; case 1899: #line 10008 "sql_yacc.yy" {} break; case 1900: #line 10009 "sql_yacc.yy" {} break; case 1901: #line 10010 "sql_yacc.yy" {} break; case 1902: #line 10011 "sql_yacc.yy" {} break; case 1903: #line 10012 "sql_yacc.yy" {} break; case 1904: #line 10013 "sql_yacc.yy" {} break; case 1905: #line 10014 "sql_yacc.yy" {} break; case 1906: #line 10015 "sql_yacc.yy" {} break; case 1907: #line 10016 "sql_yacc.yy" {} break; case 1908: #line 10017 "sql_yacc.yy" {} break; case 1909: #line 10018 "sql_yacc.yy" {} break; case 1910: #line 10019 "sql_yacc.yy" {} break; case 1911: #line 10020 "sql_yacc.yy" {} break; case 1912: #line 10021 "sql_yacc.yy" {} break; case 1913: #line 10022 "sql_yacc.yy" {} break; case 1914: #line 10023 "sql_yacc.yy" {} break; case 1915: #line 10024 "sql_yacc.yy" {} break; case 1916: #line 10025 "sql_yacc.yy" {} break; case 1917: #line 10026 "sql_yacc.yy" {} break; case 1918: #line 10027 "sql_yacc.yy" {} break; case 1919: #line 10028 "sql_yacc.yy" {} break; case 1920: #line 10029 "sql_yacc.yy" {} break; case 1921: #line 10030 "sql_yacc.yy" {} break; case 1922: #line 10031 "sql_yacc.yy" {} break; case 1923: #line 10032 "sql_yacc.yy" {} break; case 1924: #line 10033 "sql_yacc.yy" {} break; case 1925: #line 10034 "sql_yacc.yy" {} break; case 1926: #line 10035 "sql_yacc.yy" {} break; case 1927: #line 10036 "sql_yacc.yy" {} break; case 1928: #line 10037 "sql_yacc.yy" {} break; case 1929: #line 10038 "sql_yacc.yy" {} break; case 1930: #line 10039 "sql_yacc.yy" {} break; case 1931: #line 10040 "sql_yacc.yy" {} break; case 1932: #line 10041 "sql_yacc.yy" {} break; case 1933: #line 10042 "sql_yacc.yy" {} break; case 1934: #line 10043 "sql_yacc.yy" {} break; case 1935: #line 10044 "sql_yacc.yy" {} break; case 1936: #line 10045 "sql_yacc.yy" {} break; case 1937: #line 10046 "sql_yacc.yy" {} break; case 1938: #line 10047 "sql_yacc.yy" {} break; case 1939: #line 10048 "sql_yacc.yy" {} break; case 1940: #line 10049 "sql_yacc.yy" {} break; case 1941: #line 10050 "sql_yacc.yy" {} break; case 1942: #line 10051 "sql_yacc.yy" {} break; case 1943: #line 10052 "sql_yacc.yy" {} break; case 1944: #line 10053 "sql_yacc.yy" {} break; case 1945: #line 10054 "sql_yacc.yy" {} break; case 1946: #line 10055 "sql_yacc.yy" {} break; case 1947: #line 10056 "sql_yacc.yy" {} break; case 1948: #line 10057 "sql_yacc.yy" {} break; case 1949: #line 10058 "sql_yacc.yy" {} break; case 1950: #line 10059 "sql_yacc.yy" {} break; case 1951: #line 10060 "sql_yacc.yy" {} break; case 1952: #line 10061 "sql_yacc.yy" {} break; case 1953: #line 10062 "sql_yacc.yy" {} break; case 1954: #line 10063 "sql_yacc.yy" {} break; case 1955: #line 10064 "sql_yacc.yy" {} break; case 1956: #line 10065 "sql_yacc.yy" {} break; case 1957: #line 10066 "sql_yacc.yy" {} break; case 1958: #line 10067 "sql_yacc.yy" {} break; case 1959: #line 10068 "sql_yacc.yy" {} break; case 1960: #line 10069 "sql_yacc.yy" {} break; case 1961: #line 10070 "sql_yacc.yy" {} break; case 1962: #line 10071 "sql_yacc.yy" {} break; case 1963: #line 10072 "sql_yacc.yy" {} break; case 1964: #line 10073 "sql_yacc.yy" {} break; case 1965: #line 10074 "sql_yacc.yy" {} break; case 1966: #line 10075 "sql_yacc.yy" {} break; case 1967: #line 10076 "sql_yacc.yy" {} break; case 1968: #line 10077 "sql_yacc.yy" {} break; case 1969: #line 10078 "sql_yacc.yy" {} break; case 1970: #line 10079 "sql_yacc.yy" {} break; case 1971: #line 10080 "sql_yacc.yy" {} break; case 1972: #line 10081 "sql_yacc.yy" {} break; case 1973: #line 10082 "sql_yacc.yy" {} break; case 1974: #line 10083 "sql_yacc.yy" {} break; case 1975: #line 10084 "sql_yacc.yy" {} break; case 1976: #line 10085 "sql_yacc.yy" {} break; case 1977: #line 10086 "sql_yacc.yy" {} break; case 1978: #line 10087 "sql_yacc.yy" {} break; case 1979: #line 10088 "sql_yacc.yy" {} break; case 1980: #line 10089 "sql_yacc.yy" {} break; case 1981: #line 10090 "sql_yacc.yy" {} break; case 1982: #line 10091 "sql_yacc.yy" {} break; case 1983: #line 10092 "sql_yacc.yy" {} break; case 1984: #line 10093 "sql_yacc.yy" {} break; case 1985: #line 10094 "sql_yacc.yy" {} break; case 1986: #line 10095 "sql_yacc.yy" {} break; case 1987: #line 10096 "sql_yacc.yy" {} break; case 1988: #line 10097 "sql_yacc.yy" {} break; case 1989: #line 10098 "sql_yacc.yy" {} break; case 1990: #line 10099 "sql_yacc.yy" {} break; case 1991: #line 10100 "sql_yacc.yy" {} break; case 1992: #line 10101 "sql_yacc.yy" {} break; case 1993: #line 10102 "sql_yacc.yy" {} break; case 1994: #line 10103 "sql_yacc.yy" {} break; case 1995: #line 10104 "sql_yacc.yy" {} break; case 1996: #line 10105 "sql_yacc.yy" {} break; case 1997: #line 10106 "sql_yacc.yy" {} break; case 1998: #line 10107 "sql_yacc.yy" {} break; case 1999: #line 10108 "sql_yacc.yy" {} break; case 2000: #line 10109 "sql_yacc.yy" {} break; case 2001: #line 10110 "sql_yacc.yy" {} break; case 2002: #line 10111 "sql_yacc.yy" {} break; case 2003: #line 10112 "sql_yacc.yy" {} break; case 2004: #line 10113 "sql_yacc.yy" {} break; case 2005: #line 10114 "sql_yacc.yy" {} break; case 2006: #line 10115 "sql_yacc.yy" {} break; case 2007: #line 10116 "sql_yacc.yy" {} break; case 2008: #line 10117 "sql_yacc.yy" {} break; case 2009: #line 10118 "sql_yacc.yy" {} break; case 2010: #line 10119 "sql_yacc.yy" {} break; case 2011: #line 10120 "sql_yacc.yy" {} break; case 2012: #line 10121 "sql_yacc.yy" {} break; case 2013: #line 10122 "sql_yacc.yy" {} break; case 2014: #line 10123 "sql_yacc.yy" {} break; case 2015: #line 10124 "sql_yacc.yy" {} break; case 2016: #line 10125 "sql_yacc.yy" {} break; case 2017: #line 10126 "sql_yacc.yy" {} break; case 2018: #line 10127 "sql_yacc.yy" {} break; case 2019: #line 10128 "sql_yacc.yy" {} break; case 2020: #line 10129 "sql_yacc.yy" {} break; case 2021: #line 10130 "sql_yacc.yy" {} break; case 2022: #line 10131 "sql_yacc.yy" {} break; case 2023: #line 10132 "sql_yacc.yy" {} break; case 2024: #line 10133 "sql_yacc.yy" {} break; case 2025: #line 10134 "sql_yacc.yy" {} break; case 2026: #line 10135 "sql_yacc.yy" {} break; case 2027: #line 10136 "sql_yacc.yy" {} break; case 2028: #line 10137 "sql_yacc.yy" {} break; case 2029: #line 10138 "sql_yacc.yy" {} break; case 2030: #line 10139 "sql_yacc.yy" {} break; case 2031: #line 10140 "sql_yacc.yy" {} break; case 2032: #line 10141 "sql_yacc.yy" {} break; case 2033: #line 10142 "sql_yacc.yy" {} break; case 2034: #line 10143 "sql_yacc.yy" {} break; case 2035: #line 10144 "sql_yacc.yy" {} break; case 2036: #line 10145 "sql_yacc.yy" {} break; case 2037: #line 10146 "sql_yacc.yy" {} break; case 2038: #line 10147 "sql_yacc.yy" {} break; case 2039: #line 10148 "sql_yacc.yy" {} break; case 2040: #line 10149 "sql_yacc.yy" {} break; case 2041: #line 10150 "sql_yacc.yy" {} break; case 2042: #line 10151 "sql_yacc.yy" {} break; case 2043: #line 10152 "sql_yacc.yy" {} break; case 2044: #line 10153 "sql_yacc.yy" {} break; case 2045: #line 10154 "sql_yacc.yy" {} break; case 2046: #line 10155 "sql_yacc.yy" {} break; case 2047: #line 10156 "sql_yacc.yy" {} break; case 2048: #line 10157 "sql_yacc.yy" {} break; case 2049: #line 10158 "sql_yacc.yy" {} break; case 2050: #line 10159 "sql_yacc.yy" {} break; case 2051: #line 10160 "sql_yacc.yy" {} break; case 2052: #line 10161 "sql_yacc.yy" {} break; case 2053: #line 10162 "sql_yacc.yy" {} break; case 2054: #line 10163 "sql_yacc.yy" {} break; case 2055: #line 10164 "sql_yacc.yy" {} break; case 2056: #line 10165 "sql_yacc.yy" {} break; case 2057: #line 10166 "sql_yacc.yy" {} break; case 2058: #line 10167 "sql_yacc.yy" {} break; case 2059: #line 10168 "sql_yacc.yy" {} break; case 2060: #line 10169 "sql_yacc.yy" {} break; case 2061: #line 10170 "sql_yacc.yy" {} break; case 2062: #line 10171 "sql_yacc.yy" {} break; case 2063: #line 10172 "sql_yacc.yy" {} break; case 2064: #line 10173 "sql_yacc.yy" {} break; case 2065: #line 10174 "sql_yacc.yy" {} break; case 2066: #line 10175 "sql_yacc.yy" {} break; case 2067: #line 10176 "sql_yacc.yy" {} break; case 2068: #line 10177 "sql_yacc.yy" {} break; case 2069: #line 10178 "sql_yacc.yy" {} break; case 2070: #line 10179 "sql_yacc.yy" {} break; case 2071: #line 10180 "sql_yacc.yy" {} break; case 2072: #line 10181 "sql_yacc.yy" {} break; case 2073: #line 10188 "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 2074: #line 10197 "sql_yacc.yy" {} break; case 2075: #line 10201 "sql_yacc.yy" {} break; case 2076: #line 10202 "sql_yacc.yy" {} break; case 2079: #line 10209 "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 2080: #line 10239 "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 2081: #line 10287 "sql_yacc.yy" {} break; case 2082: #line 10288 "sql_yacc.yy" { (yyval.var_type)=OPT_GLOBAL; } break; case 2083: #line 10289 "sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } break; case 2084: #line 10290 "sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } break; case 2085: #line 10294 "sql_yacc.yy" { (yyval.num)= OPT_DEFAULT; } break; case 2086: #line 10295 "sql_yacc.yy" { Lex->one_shot_set= 1; (yyval.num)= OPT_SESSION; } break; case 2087: #line 10299 "sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } break; case 2088: #line 10300 "sql_yacc.yy" { (yyval.var_type)=OPT_GLOBAL; } break; case 2089: #line 10301 "sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } break; case 2090: #line 10302 "sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } break; case 2091: #line 10306 "sql_yacc.yy" { (yyval.var_type)=OPT_DEFAULT; } break; case 2092: #line 10307 "sql_yacc.yy" { (yyval.var_type)=OPT_GLOBAL; } break; case 2093: #line 10308 "sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } break; case 2094: #line 10309 "sql_yacc.yy" { (yyval.var_type)=OPT_SESSION; } break; case 2097: #line 10318 "sql_yacc.yy" { LEX *lex=Lex; if ((yyvsp[-2].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[-3].var_type)) { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } if ((yyvsp[0].item)) it= (yyvsp[0].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].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].variable).var) { /* System variable */ if ((yyvsp[-3].var_type)) lex->option_type= (yyvsp[-3].var_type); lex->var_list.push_back(new set_var(lex->option_type, (yyvsp[-2].variable).var, &(yyvsp[-2].variable).base_name, (yyvsp[0].item))); } else { /* An SP local variable */ sp_pcontext *ctx= lex->spcont; sp_variable_t *spv; sp_instr_set *sp_set; Item *it; if ((yyvsp[-3].var_type)) { my_parse_error(ER(ER_SYNTAX_ERROR)); MYSQL_YYABORT; } spv= ctx->find_variable(&(yyvsp[-2].variable).base_name); if ((yyvsp[0].item)) it= (yyvsp[0].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 2098: #line 10399 "sql_yacc.yy" { LEX *lex=Lex; lex->option_type= (yyvsp[-4].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[0].tx_isolation)))); } break; case 2099: #line 10411 "sql_yacc.yy" { Lex->var_list.push_back(new set_var_user(new Item_func_set_user_var((yyvsp[-2].lex_str),(yyvsp[0].item)))); } break; case 2100: #line 10415 "sql_yacc.yy" { LEX *lex=Lex; lex->var_list.push_back(new set_var((yyvsp[-3].var_type), (yyvsp[-2].variable).var, &(yyvsp[-2].variable).base_name, (yyvsp[0].item))); } break; case 2101: #line 10420 "sql_yacc.yy" { THD *thd= YYTHD; LEX *lex= thd->lex; (yyvsp[0].charset)= (yyvsp[0].charset) ? (yyvsp[0].charset): global_system_variables.character_set_client; lex->var_list.push_back(new set_var_collation_client((yyvsp[0].charset),thd->variables.collation_database,(yyvsp[0].charset))); } break; case 2102: #line 10427 "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 2103: #line 10442 "sql_yacc.yy" { LEX *lex= Lex; (yyvsp[-1].charset)= (yyvsp[-1].charset) ? (yyvsp[-1].charset) : global_system_variables.character_set_client; (yyvsp[0].charset)= (yyvsp[0].charset) ? (yyvsp[0].charset) : (yyvsp[-1].charset); if (!my_charset_same((yyvsp[-1].charset),(yyvsp[0].charset))) { my_error(ER_COLLATION_CHARSET_MISMATCH, MYF(0), (yyvsp[0].charset)->name, (yyvsp[-1].charset)->csname); MYSQL_YYABORT; } lex->var_list.push_back(new set_var_collation_client((yyvsp[0].charset),(yyvsp[0].charset),(yyvsp[0].charset))); } break; case 2104: #line 10455 "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[0].simple_string))); } break; case 2105: #line 10476 "sql_yacc.yy" { Lex->var_list.push_back(new set_var_password((yyvsp[-2].lex_user),(yyvsp[0].simple_string))); } break; case 2106: #line 10483 "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[0].lex_str)))) { /* Not an SP local variable */ sys_var *tmp=find_sys_var(thd, (yyvsp[0].lex_str).str, (yyvsp[0].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[0].lex_str); } } break; case 2107: #line 10515 "sql_yacc.yy" { LEX *lex= Lex; if (check_reserved_words(&(yyvsp[-2].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[-2].lex_str).str, "NEW") || !my_strcasecmp(system_charset_info, (yyvsp[-2].lex_str).str, "OLD"))) { if ((yyvsp[-2].lex_str).str[0]=='O' || (yyvsp[-2].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[0].lex_str); } else { sys_var *tmp=find_sys_var(YYTHD, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (!tmp) MYSQL_YYABORT; if (!tmp->is_struct()) my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[0].lex_str).str); (yyval.variable).var= tmp; (yyval.variable).base_name= (yyvsp[-2].lex_str); } } break; case 2108: #line 10558 "sql_yacc.yy" { sys_var *tmp=find_sys_var(YYTHD, (yyvsp[0].lex_str).str, (yyvsp[0].lex_str).length); if (!tmp) MYSQL_YYABORT; if (!tmp->is_struct()) my_error(ER_VARIABLE_IS_NOT_STRUCT, MYF(0), (yyvsp[0].lex_str).str); (yyval.variable).var= tmp; (yyval.variable).base_name.str= (char*) "default"; (yyval.variable).base_name.length= 7; } break; case 2109: #line 10571 "sql_yacc.yy" { (yyval.tx_isolation)= ISO_READ_UNCOMMITTED; } break; case 2110: #line 10572 "sql_yacc.yy" { (yyval.tx_isolation)= ISO_READ_COMMITTED; } break; case 2111: #line 10573 "sql_yacc.yy" { (yyval.tx_isolation)= ISO_REPEATABLE_READ; } break; case 2112: #line 10574 "sql_yacc.yy" { (yyval.tx_isolation)= ISO_SERIALIZABLE; } break; case 2113: #line 10578 "sql_yacc.yy" { (yyval.simple_string)=(yyvsp[0].lex_str).str;} break; case 2114: #line 10580 "sql_yacc.yy" { (yyval.simple_string)= (yyvsp[-1].lex_str).length ? YYTHD->variables.old_passwords ? Item_func_old_password::alloc(YYTHD, (yyvsp[-1].lex_str).str) : Item_func_password::alloc(YYTHD, (yyvsp[-1].lex_str).str) : (yyvsp[-1].lex_str).str; } break; case 2115: #line 10587 "sql_yacc.yy" { (yyval.simple_string)= (yyvsp[-1].lex_str).length ? Item_func_old_password::alloc(YYTHD, (yyvsp[-1].lex_str).str) : (yyvsp[-1].lex_str).str; } break; case 2116: #line 10595 "sql_yacc.yy" { (yyval.item)=(yyvsp[0].item); } break; case 2117: #line 10596 "sql_yacc.yy" { (yyval.item)=0; } break; case 2118: #line 10597 "sql_yacc.yy" { (yyval.item)=new Item_string("ON", 2, system_charset_info); } break; case 2119: #line 10598 "sql_yacc.yy" { (yyval.item)=new Item_string("ALL", 3, system_charset_info); } break; case 2120: #line 10599 "sql_yacc.yy" { (yyval.item)=new Item_string("binary", 6, system_charset_info); } break; case 2121: #line 10607 "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 2122: #line 10618 "sql_yacc.yy" {} break; case 2127: #line 10631 "sql_yacc.yy" { if (!Select->add_table_to_list(YYTHD, (yyvsp[-2].table), (yyvsp[-1].lex_str_ptr), 0, (thr_lock_type) (yyvsp[0].num))) MYSQL_YYABORT; } break; case 2128: #line 10638 "sql_yacc.yy" { (yyval.num)=TL_READ_NO_INSERT; } break; case 2129: #line 10639 "sql_yacc.yy" { (yyval.num)=TL_WRITE_DEFAULT; } break; case 2130: #line 10640 "sql_yacc.yy" { (yyval.num)=TL_WRITE_LOW_PRIORITY; } break; case 2131: #line 10641 "sql_yacc.yy" { (yyval.num)= TL_READ; } break; case 2132: #line 10646 "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 2133: #line 10657 "sql_yacc.yy" {} break; case 2134: #line 10667 "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].table), (yyvsp[0].lex_str_ptr), 0)) MYSQL_YYABORT; } break; case 2135: #line 10679 "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[-1].table), 0, 0)) MYSQL_YYABORT; } break; case 2136: #line 10691 "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[-1].table), 0, 0)) MYSQL_YYABORT; } break; case 2137: #line 10707 "sql_yacc.yy" { Lex->expr_allows_subselect= TRUE; } break; case 2138: #line 10713 "sql_yacc.yy" { Lex->ident= null_lex_str; } break; case 2139: #line 10714 "sql_yacc.yy" { Lex->ident= (yyvsp[-1].lex_str); } break; case 2140: #line 10718 "sql_yacc.yy" { Lex->ha_read_mode = RFIRST; } break; case 2141: #line 10719 "sql_yacc.yy" { Lex->ha_read_mode = RNEXT; } break; case 2142: #line 10723 "sql_yacc.yy" { Lex->ha_read_mode = RFIRST; } break; case 2143: #line 10724 "sql_yacc.yy" { Lex->ha_read_mode = RNEXT; } break; case 2144: #line 10725 "sql_yacc.yy" { Lex->ha_read_mode = RPREV; } break; case 2145: #line 10726 "sql_yacc.yy" { Lex->ha_read_mode = RLAST; } break; case 2146: #line 10728 "sql_yacc.yy" { LEX *lex=Lex; lex->ha_read_mode = RKEY; lex->ha_rkey_mode=(yyvsp[0].ha_rkey_mode); if (!(lex->insert_list = new List_item)) MYSQL_YYABORT; } break; case 2147: #line 10734 "sql_yacc.yy" { } break; case 2148: #line 10738 "sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_KEY_EXACT; } break; case 2149: #line 10739 "sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_NEXT; } break; case 2150: #line 10740 "sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_KEY_OR_PREV; } break; case 2151: #line 10741 "sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_AFTER_KEY; } break; case 2152: #line 10742 "sql_yacc.yy" { (yyval.ha_rkey_mode)=HA_READ_BEFORE_KEY; } break; case 2153: #line 10749 "sql_yacc.yy" {} break; case 2154: #line 10754 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_REVOKE; lex->type= 0; } break; case 2155: #line 10761 "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 2156: #line 10774 "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 2157: #line 10786 "sql_yacc.yy" { Lex->sql_command = SQLCOM_REVOKE_ALL; } break; case 2158: #line 10793 "sql_yacc.yy" {} break; case 2159: #line 10799 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_GRANT; lex->type= 0; } break; case 2160: #line 10807 "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 2161: #line 10820 "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 2164: #line 10837 "sql_yacc.yy" { } break; case 2165: #line 10839 "sql_yacc.yy" { Lex->all_privileges= 1; Lex->grant= GLOBAL_ACLS; } break; case 2170: #line 10855 "sql_yacc.yy" { Lex->which_columns = SELECT_ACL;} break; case 2171: #line 10855 "sql_yacc.yy" {} break; case 2172: #line 10856 "sql_yacc.yy" { Lex->which_columns = INSERT_ACL;} break; case 2173: #line 10856 "sql_yacc.yy" {} break; case 2174: #line 10857 "sql_yacc.yy" { Lex->which_columns = UPDATE_ACL; } break; case 2175: #line 10857 "sql_yacc.yy" {} break; case 2176: #line 10858 "sql_yacc.yy" { Lex->which_columns = REFERENCES_ACL;} break; case 2177: #line 10858 "sql_yacc.yy" {} break; case 2178: #line 10859 "sql_yacc.yy" { Lex->grant |= DELETE_ACL;} break; case 2179: #line 10860 "sql_yacc.yy" {} break; case 2180: #line 10861 "sql_yacc.yy" { Lex->grant |= INDEX_ACL;} break; case 2181: #line 10862 "sql_yacc.yy" { Lex->grant |= ALTER_ACL;} break; case 2182: #line 10863 "sql_yacc.yy" { Lex->grant |= CREATE_ACL;} break; case 2183: #line 10864 "sql_yacc.yy" { Lex->grant |= DROP_ACL;} break; case 2184: #line 10865 "sql_yacc.yy" { Lex->grant |= EXECUTE_ACL;} break; case 2185: #line 10866 "sql_yacc.yy" { Lex->grant |= RELOAD_ACL;} break; case 2186: #line 10867 "sql_yacc.yy" { Lex->grant |= SHUTDOWN_ACL;} break; case 2187: #line 10868 "sql_yacc.yy" { Lex->grant |= PROCESS_ACL;} break; case 2188: #line 10869 "sql_yacc.yy" { Lex->grant |= FILE_ACL;} break; case 2189: #line 10870 "sql_yacc.yy" { Lex->grant |= GRANT_ACL;} break; case 2190: #line 10871 "sql_yacc.yy" { Lex->grant |= SHOW_DB_ACL;} break; case 2191: #line 10872 "sql_yacc.yy" { Lex->grant |= SUPER_ACL;} break; case 2192: #line 10873 "sql_yacc.yy" { Lex->grant |= CREATE_TMP_ACL;} break; case 2193: #line 10874 "sql_yacc.yy" { Lex->grant |= LOCK_TABLES_ACL; } break; case 2194: #line 10875 "sql_yacc.yy" { Lex->grant |= REPL_SLAVE_ACL; } break; case 2195: #line 10876 "sql_yacc.yy" { Lex->grant |= REPL_CLIENT_ACL; } break; case 2196: #line 10877 "sql_yacc.yy" { Lex->grant |= CREATE_VIEW_ACL; } break; case 2197: #line 10878 "sql_yacc.yy" { Lex->grant |= SHOW_VIEW_ACL; } break; case 2198: #line 10879 "sql_yacc.yy" { Lex->grant |= CREATE_PROC_ACL; } break; case 2199: #line 10880 "sql_yacc.yy" { Lex->grant |= ALTER_PROC_ACL; } break; case 2200: #line 10881 "sql_yacc.yy" { Lex->grant |= CREATE_USER_ACL; } break; case 2201: #line 10882 "sql_yacc.yy" { Lex->grant |= EVENT_ACL;} break; case 2202: #line 10883 "sql_yacc.yy" { Lex->grant |= TRIGGER_ACL; } break; case 2203: #line 10888 "sql_yacc.yy" {} break; case 2204: #line 10889 "sql_yacc.yy" {} break; case 2207: #line 10899 "sql_yacc.yy" { LEX *lex=Lex; if (lex->x509_subject) { my_error(ER_DUP_ARGUMENT, MYF(0), "SUBJECT"); MYSQL_YYABORT; } lex->x509_subject=(yyvsp[0].lex_str).str; } break; case 2208: #line 10909 "sql_yacc.yy" { LEX *lex=Lex; if (lex->x509_issuer) { my_error(ER_DUP_ARGUMENT, MYF(0), "ISSUER"); MYSQL_YYABORT; } lex->x509_issuer=(yyvsp[0].lex_str).str; } break; case 2209: #line 10919 "sql_yacc.yy" { LEX *lex=Lex; if (lex->ssl_cipher) { my_error(ER_DUP_ARGUMENT, MYF(0), "CIPHER"); MYSQL_YYABORT; } lex->ssl_cipher=(yyvsp[0].lex_str).str; } break; case 2210: #line 10932 "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 2211: #line 10947 "sql_yacc.yy" { LEX *lex= Lex; lex->current_select->db = (yyvsp[-2].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 2212: #line 10960 "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 2213: #line 10973 "sql_yacc.yy" { LEX *lex=Lex; if (!lex->current_select->add_table_to_list(lex->thd, (yyvsp[0].table),NULL, TL_OPTION_UPDATING)) MYSQL_YYABORT; if (lex->grant == GLOBAL_ACLS) lex->grant = TABLE_ACLS & ~GRANT_ACL; } break; case 2214: #line 10985 "sql_yacc.yy" { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT;} break; case 2215: #line 10987 "sql_yacc.yy" { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT; } break; case 2216: #line 10995 "sql_yacc.yy" { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT;} break; case 2217: #line 10997 "sql_yacc.yy" { if (Lex->users_list.push_back((yyvsp[0].lex_user))) MYSQL_YYABORT; } break; case 2218: #line 11006 "sql_yacc.yy" { (yyval.lex_user)=(yyvsp[-3].lex_user); (yyvsp[-3].lex_user)->password=(yyvsp[0].lex_str); if ((yyvsp[0].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[0].lex_str).str); (yyvsp[-3].lex_user)->password.str= buff; (yyvsp[-3].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[0].lex_str).str); (yyvsp[-3].lex_user)->password.str= buff; (yyvsp[-3].lex_user)->password.length= SCRAMBLED_PASSWORD_CHAR_LENGTH; } } } break; case 2219: #line 11031 "sql_yacc.yy" { (yyval.lex_user)= (yyvsp[-4].lex_user); (yyvsp[-4].lex_user)->password= (yyvsp[0].lex_str); } break; case 2220: #line 11033 "sql_yacc.yy" { (yyval.lex_user)= (yyvsp[0].lex_user); (yyvsp[0].lex_user)->password= null_lex_str; } break; case 2221: #line 11039 "sql_yacc.yy" { LEX *lex=Lex; lex->grant |= lex->which_columns; } break; case 2225: #line 11051 "sql_yacc.yy" { String *new_str = new (YYTHD->mem_root) String((const char*) (yyvsp[0].lex_str).str,(yyvsp[0].lex_str).length,system_charset_info); List_iterator 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 2227: #line 11073 "sql_yacc.yy" { Lex->ssl_type=SSL_TYPE_SPECIFIED; } break; case 2228: #line 11077 "sql_yacc.yy" { Lex->ssl_type=SSL_TYPE_ANY; } break; case 2229: #line 11081 "sql_yacc.yy" { Lex->ssl_type=SSL_TYPE_X509; } break; case 2230: #line 11085 "sql_yacc.yy" { Lex->ssl_type=SSL_TYPE_NONE; } break; case 2231: #line 11091 "sql_yacc.yy" {} break; case 2233: #line 11095 "sql_yacc.yy" {} break; case 2234: #line 11096 "sql_yacc.yy" {} break; case 2235: #line 11100 "sql_yacc.yy" { Lex->grant |= GRANT_ACL;} break; case 2236: #line 11102 "sql_yacc.yy" { LEX *lex=Lex; lex->mqh.questions=(yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::QUERIES_PER_HOUR; } break; case 2237: #line 11108 "sql_yacc.yy" { LEX *lex=Lex; lex->mqh.updates=(yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::UPDATES_PER_HOUR; } break; case 2238: #line 11114 "sql_yacc.yy" { LEX *lex=Lex; lex->mqh.conn_per_hour= (yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::CONNECTIONS_PER_HOUR; } break; case 2239: #line 11120 "sql_yacc.yy" { LEX *lex=Lex; lex->mqh.user_conn= (yyvsp[0].ulong_num); lex->mqh.specified_limits|= USER_RESOURCES::USER_CONNECTIONS; } break; case 2240: #line 11129 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command = SQLCOM_BEGIN; lex->start_transaction_opt= 0; } break; case 2241: #line 11134 "sql_yacc.yy" {} break; case 2242: #line 11138 "sql_yacc.yy" {} break; case 2243: #line 11139 "sql_yacc.yy" {} break; case 2244: #line 11143 "sql_yacc.yy" { (yyval.num)= (YYTHD->variables.completion_type == 1); } break; case 2245: #line 11144 "sql_yacc.yy" { (yyval.num)=0; } break; case 2246: #line 11145 "sql_yacc.yy" { (yyval.num)=1; } break; case 2247: #line 11149 "sql_yacc.yy" { (yyval.num)= (YYTHD->variables.completion_type == 2); } break; case 2248: #line 11150 "sql_yacc.yy" { (yyval.num)=1; } break; case 2249: #line 11151 "sql_yacc.yy" { (yyval.num)=0; } break; case 2250: #line 11155 "sql_yacc.yy" {} break; case 2251: #line 11156 "sql_yacc.yy" {} break; case 2252: #line 11161 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_COMMIT; lex->tx_chain= (yyvsp[-1].num); lex->tx_release= (yyvsp[0].num); } break; case 2253: #line 11171 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK; lex->tx_chain= (yyvsp[-1].num); lex->tx_release= (yyvsp[0].num); } break; case 2254: #line 11179 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_ROLLBACK_TO_SAVEPOINT; lex->ident= (yyvsp[0].lex_str); } break; case 2255: #line 11188 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_SAVEPOINT; lex->ident= (yyvsp[0].lex_str); } break; case 2256: #line 11197 "sql_yacc.yy" { LEX *lex=Lex; lex->sql_command= SQLCOM_RELEASE_SAVEPOINT; lex->ident= (yyvsp[0].lex_str); } break; case 2257: #line 11210 "sql_yacc.yy" {} break; case 2259: #line 11216 "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[0].num)) /* UNION DISTINCT - remember position */ lex->current_select->master_unit()->union_distinct= lex->current_select; } break; case 2260: #line 11240 "sql_yacc.yy" { /* Remove from the name resolution context stack the context of the last select in the union. */ Lex->pop_context(); } break; case 2261: #line 11250 "sql_yacc.yy" { (yyval.num)= 0; } break; case 2262: #line 11251 "sql_yacc.yy" { (yyval.num)= 1; } break; case 2263: #line 11252 "sql_yacc.yy" { (yyval.num)= 1; } break; case 2264: #line 11256 "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 2265: #line 11272 "sql_yacc.yy" { THD *thd= YYTHD; thd->lex->current_select->no_table_names_allowed= 0; thd->where= ""; } break; case 2268: #line 11285 "sql_yacc.yy" { (yyval.num)=1; } break; case 2269: #line 11286 "sql_yacc.yy" { (yyval.num)=1; } break; case 2270: #line 11287 "sql_yacc.yy" { (yyval.num)=0; } break; case 2271: #line 11292 "sql_yacc.yy" { (yyval.select_lex)= (yyvsp[-1].select_lex); } break; case 2272: #line 11296 "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 it((yyvsp[-1].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 2273: #line 11312 "sql_yacc.yy" { (yyval.select_lex)= (yyvsp[-4].select_lex); } break; case 2274: #line 11316 "sql_yacc.yy" { (yyval.select_lex)= Lex->current_select->master_unit()->first_select(); } break; case 2275: #line 11321 "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 2276: #line 11341 "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 2277: #line 11364 "sql_yacc.yy" {} break; case 2278: #line 11366 "sql_yacc.yy" {} break; case 2279: #line 11371 "sql_yacc.yy" {} break; case 2280: #line 11373 "sql_yacc.yy" {} break; case 2281: #line 11375 "sql_yacc.yy" {} break; case 2282: #line 11377 "sql_yacc.yy" {} break; case 2283: #line 11388 "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 2284: #line 11399 "sql_yacc.yy" { YYTHD->lex->definer= get_current_user(YYTHD, (yyvsp[0].lex_user)); } break; case 2285: #line 11412 "sql_yacc.yy" {} break; case 2286: #line 11414 "sql_yacc.yy" {} break; case 2287: #line 11416 "sql_yacc.yy" {} break; case 2288: #line 11421 "sql_yacc.yy" { Lex->create_view_mode= VIEW_CREATE_OR_REPLACE; } break; case 2289: #line 11426 "sql_yacc.yy" { Lex->create_view_algorithm= VIEW_ALGORITHM_UNDEFINED; } break; case 2290: #line 11428 "sql_yacc.yy" { Lex->create_view_algorithm= VIEW_ALGORITHM_MERGE; } break; case 2291: #line 11430 "sql_yacc.yy" { Lex->create_view_algorithm= VIEW_ALGORITHM_TMPTABLE; } break; case 2292: #line 11435 "sql_yacc.yy" { Lex->create_view_suid= VIEW_SUID_DEFAULT; } break; case 2293: #line 11437 "sql_yacc.yy" { Lex->create_view_suid= VIEW_SUID_DEFINER; } break; case 2294: #line 11439 "sql_yacc.yy" { Lex->create_view_suid= VIEW_SUID_INVOKER; } break; case 2295: #line 11444 "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[0].table), NULL, TL_OPTION_UPDATING)) MYSQL_YYABORT; } break; case 2296: #line 11453 "sql_yacc.yy" { THD *thd= YYTHD; Lex_input_stream *lip= thd->m_lip; lip->body_utf8_start(thd, lip->get_cpp_ptr()); } break; case 2297: #line 11460 "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 2298: #line 11477 "sql_yacc.yy" {} break; case 2300: #line 11483 "sql_yacc.yy" { Lex->view_list.push_back((LEX_STRING*) sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING))); } break; case 2301: #line 11488 "sql_yacc.yy" { Lex->view_list.push_back((LEX_STRING*) sql_memdup(&(yyvsp[0].lex_str), sizeof(LEX_STRING))); } break; case 2302: #line 11495 "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 2303: #line 11506 "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 2306: #line 11525 "sql_yacc.yy" { Lex->create_view_check= VIEW_CHECK_NONE; } break; case 2307: #line 11527 "sql_yacc.yy" { Lex->create_view_check= VIEW_CHECK_CASCADED; } break; case 2308: #line 11529 "sql_yacc.yy" { Lex->create_view_check= VIEW_CHECK_CASCADED; } break; case 2309: #line 11531 "sql_yacc.yy" { Lex->create_view_check= VIEW_CHECK_LOCAL; } break; case 2310: #line 11548 "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 2311: #line 11557 "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 2312: #line 11565 "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[-11].spname)); lex->stmt_definition_begin= (yyvsp[-12].simple_string); lex->ident.str= (yyvsp[-7].simple_string); lex->ident.length= (yyvsp[-3].simple_string) - (yyvsp[-7].simple_string); lex->sphead= sp; lex->spname= (yyvsp[-11].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 2313: #line 11602 "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[-1].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[-7].table), (LEX_STRING*) 0, TL_OPTION_UPDATING, TL_IGNORE)) MYSQL_YYABORT; } break; case 2314: #line 11637 "sql_yacc.yy" { LEX *lex=Lex; lex->udf.type= (yyvsp[-3].udf_type); lex->stmt_definition_begin= (yyvsp[-2].simple_string); lex->spname= (yyvsp[0].spname); } break; case 2315: #line 11644 "sql_yacc.yy" {} break; case 2316: #line 11646 "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[-1].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[0].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 2317: #line 11675 "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 2318: #line 11687 "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 2319: #line 11696 "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 2320: #line 11705 "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[-8].ulong_num); sp->restore_thd_mem_root(YYTHD); } break; case 2321: #line 11724 "sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_START; } break; case 2322: #line 11728 "sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_END; } break; case 2323: #line 11732 "sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_PREPARE; } break; case 2324: #line 11736 "sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_COMMIT; } break; case 2325: #line 11740 "sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_ROLLBACK; } break; case 2326: #line 11744 "sql_yacc.yy" { Lex->sql_command = SQLCOM_XA_RECOVER; } break; case 2327: #line 11750 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[0].string)->length() <= MAXGTRIDSIZE); if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set(1L, (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length(), 0, 0); } break; case 2328: #line 11757 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-2].string)->length() <= MAXGTRIDSIZE && (yyvsp[0].string)->length() <= MAXBQUALSIZE); if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set(1L, (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length(), (yyvsp[0].string)->ptr(), (yyvsp[0].string)->length()); } break; case 2329: #line 11764 "sql_yacc.yy" { MYSQL_YYABORT_UNLESS((yyvsp[-4].string)->length() <= MAXGTRIDSIZE && (yyvsp[-2].string)->length() <= MAXBQUALSIZE); if (!(Lex->xid=(XID *)YYTHD->alloc(sizeof(XID)))) MYSQL_YYABORT; Lex->xid->set((yyvsp[0].ulong_num), (yyvsp[-4].string)->ptr(), (yyvsp[-4].string)->length(), (yyvsp[-2].string)->ptr(), (yyvsp[-2].string)->length()); } break; case 2330: #line 11772 "sql_yacc.yy" {} break; case 2331: #line 11773 "sql_yacc.yy" {} break; case 2332: #line 11777 "sql_yacc.yy" { Lex->xa_opt=XA_NONE; } break; case 2333: #line 11778 "sql_yacc.yy" { Lex->xa_opt=XA_JOIN; } break; case 2334: #line 11779 "sql_yacc.yy" { Lex->xa_opt=XA_RESUME; } break; case 2335: #line 11783 "sql_yacc.yy" { Lex->xa_opt=XA_NONE; } break; case 2336: #line 11784 "sql_yacc.yy" { Lex->xa_opt=XA_ONE_PHASE; } break; case 2337: #line 11788 "sql_yacc.yy" { Lex->xa_opt=XA_NONE; } break; case 2338: #line 11789 "sql_yacc.yy" { Lex->xa_opt=XA_SUSPEND; } break; case 2340: #line 11794 "sql_yacc.yy" { } break; case 2341: #line 11795 "sql_yacc.yy" { Lex->xa_opt=XA_FOR_MIGRATE; } break; case 2342: #line 11800 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_INSTALL_PLUGIN; lex->comment= (yyvsp[-2].lex_str); lex->ident= (yyvsp[0].lex_str); } break; case 2343: #line 11809 "sql_yacc.yy" { LEX *lex= Lex; lex->sql_command= SQLCOM_UNINSTALL_PLUGIN; lex->comment= (yyvsp[0].lex_str); } break; } /* Line 1037 of yacc.c. */ #line 29737 "sql_yacc.cc" yyvsp -= yylen; yyssp -= yylen; 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 yyn = yypact[yystate]; if (YYPACT_NINF < yyn && yyn < YYLAST) { YYSIZE_T yysize = 0; int yytype = YYTRANSLATE (yychar); const char* yyprefix; char *yymsg; int yyx; /* 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; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yycount = 0; yyprefix = ", expecting "; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { yysize += yystrlen (yyprefix) + yystrlen (yytname [yyx]); yycount += 1; if (yycount == 5) { yysize = 0; break; } } yysize += (sizeof ("syntax error, unexpected ") + yystrlen (yytname[yytype])); yymsg = (char *) YYSTACK_ALLOC (yysize); if (yymsg != 0) { char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); yyp = yystpcpy (yyp, yytname[yytype]); if (yycount < 5) { yyprefix = ", expecting "; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) { yyp = yystpcpy (yyp, yyprefix); yyp = yystpcpy (yyp, yytname[yyx]); yyprefix = " or "; } } yyerror (yymsg); YYSTACK_FREE (yymsg); } else yyerror ("syntax error; also virtual memory exhausted"); } else #endif /* YYERROR_VERBOSE */ yyerror ("syntax error"); } if (yyerrstatus == 3) { /* If just tried and failed to reuse look-ahead token after an error, discard it. */ if (yychar <= YYEOF) { /* If at end of input, pop the error token, then the rest of the stack, then return failure. */ if (yychar == YYEOF) for (;;) { YYPOPSTACK; if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", yystos[*yyssp], yyvsp); } } 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: #ifdef __GNUC__ /* Pacify GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (0) goto yyerrorlab; #endif yyvsp -= yylen; yyssp -= yylen; 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; 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: yydestruct ("Error: discarding lookahead", yytoken, &yylval); yychar = YYEMPTY; yyresult = 1; goto yyreturn; #ifndef yyoverflow /*----------------------------------------------. | yyoverflowlab -- parser overflow comes here. | `----------------------------------------------*/ yyoverflowlab: yyerror ("parser stack overflow"); yyresult = 2; /* Fall through. */ #endif yyreturn: #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif return yyresult; }