diff --git a/src/proxy/query.go b/src/proxy/query.go index 357aaf10..e4f08f27 100644 --- a/src/proxy/query.go +++ b/src/proxy/query.go @@ -117,7 +117,9 @@ func (spanner *Spanner) ComQuery(session *driver.Session, query string, callback if qr, err = spanner.handleShowEngines(session, query, node); err != nil { log.Error("proxy.show.engines[%s].from.session[%v].error:%+v", query, session.ID(), err) } - case sqlparser.ShowTablesStr: + case sqlparser.ShowTablesStr, sqlparser.ShowFullTablesStr: + // Support for SHOW FULL TBALES which can be parsed used by Navicat + // TODO: need to support: SHOW [FULL] TABLES [FROM db_name] [like_or_where] if qr, err = spanner.handleShowTables(session, query, node); err != nil { log.Error("proxy.show.tables[%s].from.session[%v].error:%+v", query, session.ID(), err) } diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go index e8ced637..eae76866 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/ast.go @@ -870,6 +870,7 @@ type Show struct { Database TableName From string Limit *Limit + Where *Where } // The frollowing constants represent SHOW statements. @@ -879,6 +880,7 @@ const ( ShowTablesStr = "tables" ShowColumnsStr = "columns" ShowTablesFromStr = "tables from" + ShowFullTablesStr = "full tables" ShowCreateTableStr = "create table" ShowEnginesStr = "engines" ShowStatusStr = "status" @@ -901,6 +903,14 @@ func (node *Show) Format(buf *TrackedBuffer) { buf.Myprintf("show %s %v", node.Type, node.Table) case ShowTablesFromStr: buf.Myprintf("show %s %v", node.Type, node.Database) + case ShowFullTablesStr: + buf.Myprintf("show %s", node.Type) + if node.Database.Name.String() != "" { + buf.Myprintf(" from %s", node.Database.Name.String()) + } + if node.Where != nil { + buf.Myprintf("%v", node.Where) + } case ShowBinlogEventsStr: buf.Myprintf("show %s", node.Type) if node.From != "" { diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/show_test.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/show_test.go index 7eda868a..b121a401 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/show_test.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/show_test.go @@ -34,6 +34,21 @@ func TestShow1(t *testing.T) { output: "show tables", }, + { + input: "show full tables", + output: "show full tables", + }, + + { + input: "show full tables from t1", + output: "show full tables from t1", + }, + + { + input: "show full tables where Table_type != 'VIEW'", + output: "show full tables where Table_type != 'VIEW'", + }, + { input: "show tables from t1", output: "show tables", diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go index 0fcfbcde..7d309a1a 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.go @@ -112,181 +112,182 @@ const KEY = 57369 const DEFAULT = 57370 const SET = 57371 const LOCK = 57372 -const VALUES = 57373 -const LAST_INSERT_ID = 57374 -const NEXT = 57375 -const VALUE = 57376 -const SHARE = 57377 -const MODE = 57378 -const SQL_NO_CACHE = 57379 -const SQL_CACHE = 57380 -const JOIN = 57381 -const STRAIGHT_JOIN = 57382 -const LEFT = 57383 -const RIGHT = 57384 -const INNER = 57385 -const OUTER = 57386 -const CROSS = 57387 -const NATURAL = 57388 -const USE = 57389 -const FORCE = 57390 -const ON = 57391 -const ID = 57392 -const HEX = 57393 -const STRING = 57394 -const INTEGRAL = 57395 -const FLOAT = 57396 -const HEXNUM = 57397 -const VALUE_ARG = 57398 -const LIST_ARG = 57399 -const COMMENT = 57400 -const COMMENT_KEYWORD = 57401 -const NULL = 57402 -const TRUE = 57403 -const FALSE = 57404 -const OR = 57405 -const AND = 57406 -const NOT = 57407 -const BETWEEN = 57408 -const CASE = 57409 -const WHEN = 57410 -const THEN = 57411 -const ELSE = 57412 -const END = 57413 -const LE = 57414 -const GE = 57415 -const NE = 57416 -const NULL_SAFE_EQUAL = 57417 -const IS = 57418 -const LIKE = 57419 -const REGEXP = 57420 -const IN = 57421 -const SHIFT_LEFT = 57422 -const SHIFT_RIGHT = 57423 -const DIV = 57424 -const MOD = 57425 -const UNARY = 57426 -const COLLATE = 57427 -const BINARY = 57428 -const INTERVAL = 57429 -const JSON_EXTRACT_OP = 57430 -const JSON_UNQUOTE_EXTRACT_OP = 57431 -const CREATE = 57432 -const ALTER = 57433 -const DROP = 57434 -const RENAME = 57435 -const ANALYZE = 57436 -const ADD = 57437 -const MODIFY = 57438 -const TABLE = 57439 -const INDEX = 57440 -const VIEW = 57441 -const TO = 57442 -const IGNORE = 57443 -const IF = 57444 -const UNIQUE = 57445 -const USING = 57446 -const PRIMARY = 57447 -const COLUMN = 57448 -const SHOW = 57449 -const DESCRIBE = 57450 -const EXPLAIN = 57451 -const DATE = 57452 -const ESCAPE = 57453 -const REPAIR = 57454 -const OPTIMIZE = 57455 -const TRUNCATE = 57456 -const BIT = 57457 -const TINYINT = 57458 -const SMALLINT = 57459 -const MEDIUMINT = 57460 -const INT = 57461 -const INTEGER = 57462 -const BIGINT = 57463 -const INTNUM = 57464 -const REAL = 57465 -const DOUBLE = 57466 -const FLOAT_TYPE = 57467 -const DECIMAL = 57468 -const NUMERIC = 57469 -const TIME = 57470 -const TIMESTAMP = 57471 -const DATETIME = 57472 -const YEAR = 57473 -const CHAR = 57474 -const VARCHAR = 57475 -const BOOL = 57476 -const CHARACTER = 57477 -const VARBINARY = 57478 -const NCHAR = 57479 -const CHARSET = 57480 -const TEXT = 57481 -const TINYTEXT = 57482 -const MEDIUMTEXT = 57483 -const LONGTEXT = 57484 -const BLOB = 57485 -const TINYBLOB = 57486 -const MEDIUMBLOB = 57487 -const LONGBLOB = 57488 -const JSON = 57489 -const ENUM = 57490 -const NULLX = 57491 -const AUTO_INCREMENT = 57492 -const APPROXNUM = 57493 -const SIGNED = 57494 -const UNSIGNED = 57495 -const ZEROFILL = 57496 -const DATABASES = 57497 -const TABLES = 57498 -const VITESS_KEYSPACES = 57499 -const VITESS_SHARDS = 57500 -const VSCHEMA_TABLES = 57501 -const WARNINGS = 57502 -const VARIABLES = 57503 -const EVENTS = 57504 -const BINLOG = 57505 -const GTID = 57506 -const STATUS = 57507 -const COLUMNS = 57508 -const CURRENT_TIMESTAMP = 57509 -const DATABASE = 57510 -const CURRENT_DATE = 57511 -const CURRENT_TIME = 57512 -const LOCALTIME = 57513 -const LOCALTIMESTAMP = 57514 -const UTC_DATE = 57515 -const UTC_TIME = 57516 -const UTC_TIMESTAMP = 57517 -const REPLACE = 57518 -const CONVERT = 57519 -const CAST = 57520 -const GROUP_CONCAT = 57521 -const SEPARATOR = 57522 -const MATCH = 57523 -const AGAINST = 57524 -const BOOLEAN = 57525 -const LANGUAGE = 57526 -const WITH = 57527 -const QUERY = 57528 -const EXPANSION = 57529 -const UNUSED = 57530 -const PARTITION = 57531 -const PARTITIONS = 57532 -const HASH = 57533 -const XA = 57534 -const ENGINES = 57535 -const VERSIONS = 57536 -const PROCESSLIST = 57537 -const QUERYZ = 57538 -const TXNZ = 57539 -const KILL = 57540 -const SESSION = 57541 -const ENGINE = 57542 -const BEGIN = 57543 -const START = 57544 -const TRANSACTION = 57545 -const COMMIT = 57546 -const ROLLBACK = 57547 +const FULL = 57373 +const VALUES = 57374 +const LAST_INSERT_ID = 57375 +const NEXT = 57376 +const VALUE = 57377 +const SHARE = 57378 +const MODE = 57379 +const SQL_NO_CACHE = 57380 +const SQL_CACHE = 57381 +const JOIN = 57382 +const STRAIGHT_JOIN = 57383 +const LEFT = 57384 +const RIGHT = 57385 +const INNER = 57386 +const OUTER = 57387 +const CROSS = 57388 +const NATURAL = 57389 +const USE = 57390 +const FORCE = 57391 +const ON = 57392 +const ID = 57393 +const HEX = 57394 +const STRING = 57395 +const INTEGRAL = 57396 +const FLOAT = 57397 +const HEXNUM = 57398 +const VALUE_ARG = 57399 +const LIST_ARG = 57400 +const COMMENT = 57401 +const COMMENT_KEYWORD = 57402 +const NULL = 57403 +const TRUE = 57404 +const FALSE = 57405 +const OR = 57406 +const AND = 57407 +const NOT = 57408 +const BETWEEN = 57409 +const CASE = 57410 +const WHEN = 57411 +const THEN = 57412 +const ELSE = 57413 +const END = 57414 +const LE = 57415 +const GE = 57416 +const NE = 57417 +const NULL_SAFE_EQUAL = 57418 +const IS = 57419 +const LIKE = 57420 +const REGEXP = 57421 +const IN = 57422 +const SHIFT_LEFT = 57423 +const SHIFT_RIGHT = 57424 +const DIV = 57425 +const MOD = 57426 +const UNARY = 57427 +const COLLATE = 57428 +const BINARY = 57429 +const INTERVAL = 57430 +const JSON_EXTRACT_OP = 57431 +const JSON_UNQUOTE_EXTRACT_OP = 57432 +const CREATE = 57433 +const ALTER = 57434 +const DROP = 57435 +const RENAME = 57436 +const ANALYZE = 57437 +const ADD = 57438 +const MODIFY = 57439 +const TABLE = 57440 +const INDEX = 57441 +const VIEW = 57442 +const TO = 57443 +const IGNORE = 57444 +const IF = 57445 +const UNIQUE = 57446 +const USING = 57447 +const PRIMARY = 57448 +const COLUMN = 57449 +const SHOW = 57450 +const DESCRIBE = 57451 +const EXPLAIN = 57452 +const DATE = 57453 +const ESCAPE = 57454 +const REPAIR = 57455 +const OPTIMIZE = 57456 +const TRUNCATE = 57457 +const BIT = 57458 +const TINYINT = 57459 +const SMALLINT = 57460 +const MEDIUMINT = 57461 +const INT = 57462 +const INTEGER = 57463 +const BIGINT = 57464 +const INTNUM = 57465 +const REAL = 57466 +const DOUBLE = 57467 +const FLOAT_TYPE = 57468 +const DECIMAL = 57469 +const NUMERIC = 57470 +const TIME = 57471 +const TIMESTAMP = 57472 +const DATETIME = 57473 +const YEAR = 57474 +const CHAR = 57475 +const VARCHAR = 57476 +const BOOL = 57477 +const CHARACTER = 57478 +const VARBINARY = 57479 +const NCHAR = 57480 +const CHARSET = 57481 +const TEXT = 57482 +const TINYTEXT = 57483 +const MEDIUMTEXT = 57484 +const LONGTEXT = 57485 +const BLOB = 57486 +const TINYBLOB = 57487 +const MEDIUMBLOB = 57488 +const LONGBLOB = 57489 +const JSON = 57490 +const ENUM = 57491 +const NULLX = 57492 +const AUTO_INCREMENT = 57493 +const APPROXNUM = 57494 +const SIGNED = 57495 +const UNSIGNED = 57496 +const ZEROFILL = 57497 +const DATABASES = 57498 +const TABLES = 57499 +const VITESS_KEYSPACES = 57500 +const VITESS_SHARDS = 57501 +const VSCHEMA_TABLES = 57502 +const WARNINGS = 57503 +const VARIABLES = 57504 +const EVENTS = 57505 +const BINLOG = 57506 +const GTID = 57507 +const STATUS = 57508 +const COLUMNS = 57509 +const CURRENT_TIMESTAMP = 57510 +const DATABASE = 57511 +const CURRENT_DATE = 57512 +const CURRENT_TIME = 57513 +const LOCALTIME = 57514 +const LOCALTIMESTAMP = 57515 +const UTC_DATE = 57516 +const UTC_TIME = 57517 +const UTC_TIMESTAMP = 57518 +const REPLACE = 57519 +const CONVERT = 57520 +const CAST = 57521 +const GROUP_CONCAT = 57522 +const SEPARATOR = 57523 +const MATCH = 57524 +const AGAINST = 57525 +const BOOLEAN = 57526 +const LANGUAGE = 57527 +const WITH = 57528 +const QUERY = 57529 +const EXPANSION = 57530 +const UNUSED = 57531 +const PARTITION = 57532 +const PARTITIONS = 57533 +const HASH = 57534 +const XA = 57535 +const ENGINES = 57536 +const VERSIONS = 57537 +const PROCESSLIST = 57538 +const QUERYZ = 57539 +const TXNZ = 57540 +const KILL = 57541 +const SESSION = 57542 +const ENGINE = 57543 +const BEGIN = 57544 +const START = 57545 +const TRANSACTION = 57546 +const COMMIT = 57547 +const ROLLBACK = 57548 var yyToknames = [...]string{ "$end", @@ -319,6 +320,7 @@ var yyToknames = [...]string{ "DEFAULT", "SET", "LOCK", + "FULL", "VALUES", "LAST_INSERT_ID", "NEXT", @@ -527,652 +529,648 @@ var yyExca = [...]int{ -1, 3, 5, 25, -2, 4, - -1, 350, - 104, 450, - -2, 446, - -1, 351, - 104, 451, - -2, 447, - -1, 515, - 5, 25, - -2, 403, - -1, 645, - 104, 453, + -1, 352, + 105, 453, -2, 449, - -1, 758, - 5, 26, - -2, 282, - -1, 782, - 5, 26, - -2, 404, - -1, 865, + -1, 353, + 105, 454, + -2, 450, + -1, 519, 5, 25, -2, 406, - -1, 967, + -1, 652, + 105, 456, + -2, 452, + -1, 766, + 5, 26, + -2, 285, + -1, 790, 5, 26, -2, 407, + -1, 873, + 5, 25, + -2, 409, + -1, 975, + 5, 26, + -2, 410, } -const yyNprod = 611 +const yyNprod = 615 const yyPrivate = 57344 var yyTokenNames []string var yyStates []string -const yyLast = 5978 +const yyLast = 5938 var yyAct = [...]int{ - 351, 472, 995, 640, 856, 920, 304, 518, 797, 328, - 716, 676, 567, 855, 906, 248, 677, 917, 306, 835, - 719, 628, 638, 554, 750, 62, 529, 742, 519, 673, - 267, 635, 605, 657, 84, 235, 51, 643, 540, 52, - 293, 359, 302, 563, 257, 56, 291, 240, 353, 534, - 329, 46, 584, 706, 83, 531, 265, 1007, 994, 326, - 235, 1006, 986, 1004, 993, 985, 583, 642, 848, 58, - 59, 60, 900, 235, 235, 593, 287, 61, 972, 438, - 437, 447, 448, 440, 441, 442, 443, 444, 445, 446, - 439, 586, 283, 449, 69, 70, 702, 46, 547, 801, - 582, 691, 871, 820, 555, 253, 895, 893, 471, 3, - 731, 940, 484, 236, 237, 275, 239, 730, 241, 242, - 243, 244, 245, 246, 729, 270, 22, 47, 24, 25, - 68, 878, 728, 982, 273, 66, 65, 981, 980, 73, - 72, 379, 461, 462, 42, 927, 579, 577, 573, 26, - 576, 578, 280, 299, 885, 247, 285, 286, 785, 288, - 548, 756, 707, 284, 754, 71, 391, 34, 836, 637, - 49, 396, 397, 398, 399, 400, 401, 402, 686, 403, - 404, 405, 406, 407, 392, 393, 394, 395, 377, 378, - 581, 470, 380, 838, 973, 381, 382, 383, 384, 385, - 386, 387, 388, 389, 390, 580, 64, 761, 542, 840, - 555, 844, 724, 839, 366, 837, 962, 964, 726, 984, - 842, 542, 426, 425, 879, 449, 877, 28, 29, 30, - 841, 32, 575, 424, 268, 843, 845, 810, 439, 427, - 427, 449, 929, 585, 33, 43, 36, 696, 794, 44, - 45, 31, 612, 296, 354, 574, 442, 443, 444, 445, - 446, 439, 235, 425, 449, 235, 610, 611, 609, 727, - 235, 692, 850, 235, 235, 235, 685, 762, 235, 427, - 426, 425, 235, 235, 235, 235, 811, 963, 426, 425, - 658, 355, 768, 499, 500, 852, 541, 427, 763, 658, - 357, 539, 430, 538, 46, 427, 725, 274, 723, 541, - 598, 600, 601, 48, 544, 599, 289, 409, 290, 545, - 459, 440, 441, 442, 443, 444, 445, 446, 439, 35, - 700, 449, 361, 473, 932, 37, 426, 425, 38, 39, - 482, 41, 40, 426, 425, 318, 317, 319, 320, 321, - 322, 458, 460, 427, 323, 735, 736, 737, 67, 509, - 427, 882, 356, 49, 235, 881, 872, 235, 269, 20, - 715, 501, 520, 608, 629, 714, 630, 469, 429, 277, - 474, 475, 476, 477, 478, 479, 480, 525, 483, 485, - 485, 485, 485, 485, 485, 485, 485, 493, 494, 495, - 496, 535, 503, 502, 523, 703, 556, 557, 558, 238, - 970, 235, 428, 516, 943, 880, 235, 261, 505, 733, - 569, 713, 1001, 292, 252, 521, 969, 426, 425, 595, - 596, 937, 602, 603, 268, 272, 292, 592, 802, 803, - 804, 822, 606, 819, 427, 809, 805, 799, 565, 566, - 795, 607, 486, 487, 488, 489, 490, 491, 492, 904, - 292, 463, 464, 465, 466, 467, 468, 874, 873, 509, - 791, 515, 697, 908, 911, 912, 913, 909, 473, 910, - 914, 652, 653, 977, 509, 631, 748, 292, 816, 815, - 936, 645, 813, 812, 935, 588, 589, 590, 591, 784, - 292, 354, 647, 292, 632, 633, 22, 370, 369, 530, - 276, 46, 271, 806, 674, 647, 684, 509, 646, 648, - 520, 675, 655, 777, 678, 474, 662, 22, 634, 513, - 644, 514, 660, 53, 688, 684, 780, 22, 550, 551, - 552, 553, 666, 659, 904, 683, 665, 814, 748, 684, - 49, 49, 864, 560, 561, 562, 908, 911, 912, 913, - 909, 497, 910, 914, 748, 679, 549, 46, 568, 687, - 748, 49, 509, 521, 704, 705, 682, 254, 695, 63, - 693, 49, 689, 649, 564, 604, 559, 976, 613, 614, - 615, 616, 617, 618, 619, 620, 621, 622, 623, 624, - 625, 626, 627, 674, 415, 410, 511, 979, 955, 953, - 709, 710, 711, 956, 954, 957, 978, 912, 913, 606, - 952, 49, 717, 951, 999, 680, 258, 259, 607, 992, - 734, 644, 594, 671, 360, 670, 294, 883, 708, 718, - 365, 509, 738, 793, 699, 650, 651, 358, 295, 654, - 720, 757, 447, 448, 440, 441, 442, 443, 444, 445, - 446, 439, 769, 661, 449, 663, 664, 934, 235, 933, - 732, 862, 694, 778, 570, 414, 916, 360, 745, 669, - 672, 946, 746, 473, 255, 256, 249, 668, 368, 788, - 767, 520, 250, 755, 509, 53, 758, 759, 760, 945, - 752, 764, 903, 790, 530, 779, 770, 645, 771, 772, - 773, 774, 422, 787, 282, 281, 264, 924, 423, 55, - 57, 50, 235, 786, 1, 796, 781, 782, 783, 537, - 532, 266, 536, 712, 876, 800, 543, 701, 546, 327, - 690, 533, 792, 931, 521, 698, 644, 373, 374, 372, - 376, 375, 509, 798, 789, 821, 371, 509, 807, 808, - 74, 915, 823, 919, 739, 740, 741, 824, 749, 722, - 721, 829, 851, 572, 233, 645, 830, 457, 235, 667, - 681, 861, 498, 847, 846, 509, 509, 833, 352, 944, - 678, 902, 832, 766, 828, 854, 859, 863, 481, 263, - 818, 656, 869, 853, 305, 849, 747, 597, 316, 313, - 315, 752, 263, 263, 644, 314, 644, 504, 512, 431, - 303, 297, 961, 858, 834, 765, 362, 907, 860, 905, - 857, 679, 776, 421, 866, 899, 971, 510, 870, 23, - 54, 262, 260, 19, 867, 868, 14, 13, 12, 27, - 10, 9, 8, 891, 278, 279, 901, 7, 6, 5, - 4, 235, 235, 251, 21, 2, 18, 17, 16, 15, - 11, 509, 0, 0, 678, 509, 925, 0, 0, 859, - 886, 928, 887, 930, 0, 0, 509, 0, 0, 0, - 0, 0, 865, 896, 897, 0, 0, 826, 827, 898, - 0, 0, 0, 0, 0, 235, 235, 235, 235, 0, - 948, 918, 950, 939, 0, 679, 235, 46, 947, 235, - 949, 717, 235, 859, 859, 859, 859, 965, 509, 958, - 644, 520, 966, 0, 798, 0, 0, 859, 718, 0, - 0, 0, 0, 0, 0, 644, 942, 0, 975, 974, - 473, 0, 0, 834, 0, 860, 860, 860, 860, 875, - 0, 0, 0, 0, 960, 0, 0, 0, 0, 918, - 0, 0, 0, 967, 0, 926, 0, 0, 0, 884, - 987, 988, 0, 0, 521, 0, 0, 968, 0, 0, - 509, 509, 509, 997, 998, 0, 0, 888, 889, 0, - 890, 263, 509, 892, 263, 894, 0, 0, 0, 408, - 0, 0, 263, 263, 263, 0, 0, 416, 983, 0, - 0, 263, 263, 263, 263, 0, 0, 649, 0, 0, - 0, 989, 990, 991, 0, 0, 0, 0, 0, 0, - 0, 0, 1000, 364, 1002, 1003, 367, 0, 0, 996, - 996, 996, 941, 0, 411, 412, 413, 0, 0, 0, - 0, 1005, 825, 417, 418, 419, 420, 438, 437, 447, - 448, 440, 441, 442, 443, 444, 445, 446, 439, 0, - 0, 449, 438, 437, 447, 448, 440, 441, 442, 443, - 444, 445, 446, 439, 0, 0, 449, 0, 0, 0, - 0, 0, 433, 263, 436, 522, 524, 0, 743, 0, - 450, 451, 452, 453, 454, 455, 456, 0, 434, 435, - 432, 438, 437, 447, 448, 440, 441, 442, 443, 444, - 445, 446, 439, 0, 0, 449, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 517, 0, 0, 0, 0, - 263, 0, 0, 0, 0, 263, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 206, 0, 0, 636, - 0, 301, 0, 0, 0, 188, 0, 300, 0, 0, - 337, 197, 0, 0, 212, 203, 0, 0, 0, 0, - 330, 331, 571, 0, 0, 0, 0, 587, 0, 49, - 0, 0, 350, 318, 317, 319, 320, 321, 322, 641, - 524, 183, 323, 324, 325, 641, 641, 298, 311, 641, - 336, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 641, 641, 641, 641, 0, 0, 0, - 308, 309, 639, 0, 0, 0, 348, 0, 310, 0, - 641, 307, 312, 522, 437, 447, 448, 440, 441, 442, - 443, 444, 445, 446, 439, 226, 0, 449, 346, 0, - 0, 208, 0, 0, 0, 0, 184, 0, 211, 207, - 221, 179, 219, 214, 201, 193, 194, 178, 0, 210, - 187, 192, 186, 205, 216, 217, 185, 231, 182, 225, - 181, 0, 224, 204, 0, 215, 220, 202, 199, 180, - 218, 200, 198, 195, 189, 0, 0, 0, 213, 222, - 232, 0, 0, 227, 228, 229, 0, 0, 0, 0, - 0, 0, 0, 338, 347, 344, 345, 342, 343, 341, - 340, 339, 349, 332, 333, 335, 0, 334, 177, 0, - 196, 230, 209, 191, 223, 0, 0, 744, 0, 0, - 0, 0, 0, 0, 0, 0, 190, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 641, 438, 437, 447, - 448, 440, 441, 442, 443, 444, 445, 446, 439, 0, - 0, 449, 0, 0, 0, 641, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 263, 438, 437, - 447, 448, 440, 441, 442, 443, 444, 445, 446, 439, - 0, 0, 449, 0, 522, 0, 524, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 206, - 0, 0, 0, 0, 301, 0, 0, 0, 188, 775, - 300, 0, 0, 337, 197, 0, 0, 212, 203, 0, - 0, 263, 0, 330, 331, 0, 0, 0, 0, 0, - 0, 0, 49, 0, 0, 350, 318, 317, 319, 320, - 321, 322, 0, 0, 183, 323, 324, 325, 641, 0, - 298, 311, 0, 336, 524, 641, 0, 0, 0, 0, - 0, 0, 0, 817, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 308, 309, 639, 0, 263, 0, 348, - 0, 310, 0, 0, 307, 312, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, - 0, 346, 0, 0, 208, 0, 0, 0, 0, 184, - 0, 211, 207, 221, 179, 219, 214, 201, 193, 194, - 178, 0, 210, 187, 192, 186, 205, 216, 217, 185, - 231, 182, 225, 181, 0, 224, 204, 0, 215, 220, - 202, 199, 180, 218, 200, 198, 195, 189, 0, 0, - 0, 213, 222, 232, 0, 0, 227, 228, 229, 0, - 263, 922, 0, 0, 0, 0, 338, 347, 344, 345, - 342, 343, 341, 340, 339, 349, 332, 333, 335, 0, - 334, 177, 0, 196, 230, 209, 191, 223, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 190, - 0, 0, 0, 0, 263, 263, 263, 263, 0, 0, - 0, 0, 0, 0, 0, 959, 0, 0, 263, 0, - 0, 922, 0, 0, 522, 165, 155, 127, 167, 104, - 119, 176, 120, 121, 147, 91, 135, 206, 117, 0, - 107, 86, 114, 87, 105, 129, 188, 132, 103, 157, - 138, 173, 197, 142, 0, 212, 203, 0, 0, 131, - 159, 133, 154, 126, 148, 97, 141, 168, 118, 145, - 0, 0, 0, 82, 0, 0, 0, 0, 0, 0, - 0, 0, 183, 144, 163, 116, 146, 85, 143, 0, - 89, 92, 175, 161, 110, 111, 0, 0, 0, 0, - 0, 0, 0, 130, 134, 151, 124, 0, 0, 0, - 0, 0, 0, 0, 0, 108, 0, 140, 0, 0, - 0, 95, 90, 128, 0, 0, 0, 77, 0, 109, - 152, 0, 0, 0, 160, 125, 226, 162, 123, 122, - 166, 169, 208, 0, 158, 106, 115, 184, 113, 211, - 207, 221, 179, 219, 214, 201, 193, 194, 178, 0, - 210, 187, 192, 186, 205, 216, 217, 185, 231, 182, - 225, 181, 93, 224, 204, 94, 215, 220, 202, 199, - 180, 218, 200, 198, 195, 189, 0, 88, 0, 213, - 222, 232, 102, 75, 227, 228, 229, 78, 79, 0, - 80, 0, 81, 76, 100, 101, 98, 99, 136, 137, - 170, 171, 172, 153, 96, 0, 0, 156, 139, 177, - 0, 196, 230, 209, 191, 223, 0, 0, 0, 0, - 112, 174, 150, 149, 164, 0, 0, 190, 165, 155, - 127, 167, 104, 119, 176, 120, 121, 147, 91, 135, - 206, 117, 0, 107, 86, 114, 87, 105, 129, 188, - 132, 103, 157, 138, 173, 197, 142, 0, 212, 203, - 0, 0, 131, 159, 133, 154, 126, 148, 97, 141, - 168, 118, 145, 0, 0, 0, 508, 0, 0, 0, - 0, 0, 0, 0, 0, 183, 144, 163, 116, 146, - 85, 143, 0, 89, 92, 175, 161, 110, 111, 0, - 0, 0, 0, 0, 0, 0, 130, 134, 151, 124, - 0, 0, 0, 0, 0, 0, 938, 0, 108, 0, - 140, 0, 0, 0, 95, 90, 128, 0, 0, 0, - 526, 0, 109, 152, 0, 0, 0, 160, 125, 226, - 162, 123, 122, 166, 169, 208, 0, 158, 106, 115, - 184, 113, 211, 207, 221, 179, 219, 214, 201, 193, - 194, 178, 0, 210, 187, 192, 186, 205, 216, 217, - 185, 231, 182, 225, 181, 93, 224, 204, 94, 215, - 220, 202, 199, 180, 218, 200, 198, 195, 189, 0, - 88, 0, 213, 222, 232, 102, 527, 227, 228, 229, - 0, 0, 0, 0, 0, 0, 528, 100, 101, 98, - 99, 136, 137, 170, 171, 172, 153, 96, 0, 0, - 156, 139, 177, 0, 196, 230, 209, 191, 223, 0, - 0, 0, 0, 112, 174, 150, 149, 164, 0, 0, - 190, 165, 155, 127, 167, 104, 119, 176, 120, 121, - 147, 91, 135, 206, 117, 0, 107, 86, 114, 87, - 105, 129, 188, 132, 103, 157, 138, 173, 197, 142, - 0, 212, 203, 0, 0, 131, 159, 133, 154, 126, - 148, 97, 141, 168, 118, 145, 49, 0, 0, 508, - 0, 0, 0, 0, 0, 0, 0, 0, 183, 144, - 163, 116, 146, 85, 143, 0, 89, 92, 175, 161, - 110, 111, 0, 0, 0, 0, 0, 0, 0, 130, - 134, 151, 124, 0, 0, 0, 0, 0, 0, 0, - 0, 108, 0, 140, 0, 0, 0, 95, 90, 128, - 0, 0, 0, 526, 0, 109, 152, 0, 0, 0, - 160, 125, 226, 162, 123, 122, 166, 169, 208, 0, - 158, 106, 115, 184, 113, 211, 207, 221, 179, 219, - 214, 201, 193, 194, 178, 0, 210, 187, 192, 186, - 205, 216, 217, 185, 231, 182, 225, 181, 93, 224, - 204, 94, 215, 220, 202, 199, 180, 218, 200, 198, - 195, 189, 0, 88, 0, 213, 222, 232, 102, 527, - 227, 228, 229, 0, 0, 0, 0, 0, 0, 528, - 100, 101, 98, 99, 136, 137, 170, 171, 172, 153, - 96, 0, 0, 156, 139, 177, 0, 196, 230, 209, - 191, 223, 0, 0, 0, 0, 112, 174, 150, 149, - 164, 0, 0, 190, 165, 155, 127, 167, 104, 119, - 176, 120, 121, 147, 91, 135, 206, 117, 0, 107, - 86, 114, 87, 105, 129, 188, 132, 103, 157, 138, - 173, 197, 142, 0, 212, 203, 0, 0, 131, 159, - 133, 154, 126, 148, 97, 141, 168, 118, 145, 0, - 0, 0, 350, 0, 0, 0, 0, 0, 0, 0, - 0, 183, 144, 163, 116, 146, 85, 143, 0, 89, - 92, 175, 161, 110, 111, 0, 0, 0, 0, 0, - 0, 0, 130, 134, 151, 124, 0, 0, 0, 0, - 0, 0, 831, 0, 108, 0, 140, 0, 0, 0, - 95, 90, 128, 0, 0, 0, 526, 0, 109, 152, - 0, 0, 0, 160, 125, 226, 162, 123, 122, 166, - 169, 208, 0, 158, 106, 115, 184, 113, 211, 207, - 221, 179, 219, 214, 201, 193, 194, 178, 0, 210, - 187, 192, 186, 205, 216, 217, 185, 231, 182, 225, - 181, 93, 224, 204, 94, 215, 220, 202, 199, 180, - 218, 200, 198, 195, 189, 0, 88, 0, 213, 222, - 232, 102, 527, 227, 228, 229, 0, 0, 0, 0, - 0, 0, 528, 100, 101, 98, 99, 136, 137, 170, - 171, 172, 153, 96, 0, 0, 156, 139, 177, 0, - 196, 230, 209, 191, 223, 0, 0, 0, 0, 112, - 174, 150, 149, 164, 0, 0, 190, 165, 155, 127, - 167, 104, 119, 176, 120, 121, 147, 91, 135, 206, - 117, 0, 107, 86, 114, 87, 105, 129, 188, 132, - 103, 157, 138, 173, 197, 142, 0, 212, 203, 0, - 0, 131, 159, 133, 154, 126, 148, 97, 141, 168, - 118, 145, 0, 0, 0, 508, 0, 0, 0, 0, - 0, 0, 0, 0, 183, 144, 163, 116, 146, 85, - 143, 0, 89, 92, 175, 161, 110, 111, 0, 0, - 0, 0, 0, 0, 0, 130, 134, 151, 124, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 0, 140, - 0, 0, 0, 95, 90, 128, 0, 0, 0, 526, - 0, 109, 152, 0, 0, 0, 160, 125, 226, 162, - 123, 122, 166, 169, 208, 0, 158, 106, 115, 184, - 113, 211, 207, 221, 179, 219, 214, 201, 193, 194, - 178, 0, 210, 187, 192, 186, 205, 216, 217, 185, - 231, 182, 225, 181, 93, 224, 204, 94, 215, 220, - 202, 199, 180, 218, 200, 198, 195, 189, 0, 88, - 0, 213, 222, 232, 102, 527, 227, 228, 229, 0, - 0, 0, 0, 0, 0, 528, 100, 101, 98, 99, - 136, 137, 170, 171, 172, 153, 96, 0, 0, 156, - 139, 177, 0, 196, 230, 209, 191, 223, 0, 0, - 0, 0, 112, 174, 150, 149, 164, 0, 0, 190, - 165, 155, 127, 167, 104, 119, 176, 120, 121, 147, - 91, 135, 206, 117, 0, 107, 86, 114, 87, 105, - 129, 188, 132, 103, 157, 138, 173, 197, 142, 0, - 212, 203, 0, 0, 131, 159, 133, 154, 126, 148, - 97, 141, 168, 118, 145, 0, 0, 0, 350, 0, - 0, 0, 0, 0, 0, 0, 0, 183, 144, 163, - 116, 146, 85, 143, 0, 89, 92, 175, 161, 110, - 111, 0, 0, 0, 0, 0, 0, 0, 130, 134, - 151, 124, 0, 0, 0, 0, 0, 0, 0, 0, - 108, 0, 140, 0, 0, 0, 95, 90, 128, 0, - 0, 0, 526, 0, 109, 152, 0, 0, 0, 160, - 125, 226, 162, 123, 122, 166, 169, 208, 0, 158, - 106, 115, 184, 113, 211, 207, 221, 179, 219, 214, - 201, 193, 194, 178, 0, 210, 187, 192, 186, 205, - 216, 217, 185, 231, 182, 225, 181, 93, 224, 204, - 94, 215, 220, 202, 199, 180, 218, 200, 198, 195, - 189, 0, 88, 0, 213, 222, 232, 102, 527, 227, - 228, 229, 0, 0, 0, 0, 0, 0, 528, 100, - 101, 98, 99, 136, 137, 170, 171, 172, 153, 96, - 0, 0, 156, 139, 177, 0, 196, 230, 209, 191, - 223, 0, 0, 0, 0, 112, 174, 150, 149, 164, - 0, 0, 190, 165, 155, 127, 167, 104, 119, 176, - 120, 121, 147, 91, 135, 206, 117, 0, 107, 86, - 114, 87, 105, 129, 188, 132, 103, 157, 138, 173, - 197, 142, 0, 212, 203, 0, 0, 131, 159, 133, - 154, 126, 148, 97, 141, 168, 118, 145, 0, 0, - 0, 234, 0, 0, 0, 0, 0, 0, 0, 0, - 183, 144, 163, 116, 146, 85, 143, 0, 89, 92, - 175, 161, 110, 111, 0, 0, 0, 0, 0, 0, - 0, 130, 134, 151, 124, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 0, 140, 0, 0, 0, 95, - 90, 128, 0, 0, 0, 526, 0, 109, 152, 0, - 0, 0, 160, 125, 226, 162, 123, 122, 166, 169, - 208, 0, 158, 106, 115, 184, 113, 211, 207, 221, - 179, 219, 214, 201, 193, 194, 178, 0, 210, 187, - 192, 186, 205, 216, 217, 185, 231, 182, 225, 181, - 93, 224, 204, 94, 215, 220, 202, 199, 180, 218, - 200, 198, 195, 189, 0, 88, 0, 213, 222, 232, - 102, 527, 227, 228, 229, 0, 0, 0, 0, 0, - 0, 528, 100, 101, 98, 99, 136, 137, 170, 171, - 172, 153, 96, 0, 0, 156, 139, 177, 0, 196, - 230, 209, 191, 223, 0, 0, 0, 0, 112, 174, - 150, 149, 164, 206, 0, 190, 0, 0, 301, 0, - 0, 0, 188, 0, 300, 0, 0, 337, 197, 0, - 0, 212, 203, 0, 0, 0, 0, 330, 331, 0, - 0, 0, 0, 0, 0, 0, 49, 0, 292, 350, - 318, 317, 319, 320, 321, 322, 0, 0, 183, 323, - 324, 325, 0, 0, 298, 311, 0, 336, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 308, 309, 0, - 0, 0, 0, 348, 0, 310, 0, 0, 307, 312, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 0, 0, 346, 0, 0, 208, 0, - 0, 0, 0, 184, 0, 211, 207, 221, 179, 219, - 214, 201, 193, 194, 178, 0, 210, 187, 192, 186, - 205, 216, 217, 185, 231, 182, 225, 181, 0, 224, - 204, 0, 215, 220, 202, 199, 180, 218, 200, 198, - 195, 189, 0, 0, 0, 213, 222, 232, 0, 0, - 227, 228, 229, 0, 0, 0, 0, 0, 0, 0, - 338, 347, 344, 345, 342, 343, 341, 340, 339, 349, - 332, 333, 335, 0, 334, 177, 22, 196, 230, 209, - 191, 223, 0, 0, 0, 0, 0, 206, 0, 0, - 0, 0, 301, 190, 0, 0, 188, 0, 300, 0, - 0, 337, 197, 0, 0, 212, 203, 0, 0, 0, - 0, 330, 331, 0, 0, 0, 0, 0, 0, 0, - 49, 0, 0, 350, 318, 317, 319, 320, 321, 322, - 0, 0, 183, 323, 324, 325, 0, 0, 298, 311, - 0, 336, 0, 0, 0, 0, 0, 0, 0, 0, + 353, 647, 1003, 476, 301, 928, 306, 475, 3, 522, + 914, 572, 864, 723, 683, 805, 684, 925, 843, 642, + 758, 534, 645, 750, 559, 863, 649, 635, 680, 62, + 308, 268, 713, 330, 85, 236, 612, 52, 726, 523, + 361, 545, 295, 664, 304, 249, 293, 650, 355, 51, + 331, 46, 568, 56, 248, 241, 539, 258, 328, 536, + 236, 266, 1015, 1002, 1014, 994, 1012, 1001, 993, 856, + 908, 207, 84, 236, 236, 929, 600, 58, 59, 60, + 189, 285, 61, 69, 70, 66, 65, 198, 289, 283, + 213, 204, 709, 552, 809, 698, 879, 46, 828, 560, + 903, 901, 738, 737, 644, 254, 736, 276, 235, 271, + 931, 948, 68, 735, 990, 989, 988, 184, 237, 238, + 274, 240, 73, 242, 243, 244, 245, 246, 247, 980, + 442, 441, 451, 452, 444, 445, 446, 447, 448, 449, + 450, 443, 72, 935, 453, 465, 466, 488, 893, 793, + 764, 769, 286, 886, 71, 762, 64, 281, 693, 428, + 553, 474, 287, 288, 368, 290, 430, 429, 714, 443, + 731, 227, 453, 970, 972, 453, 733, 209, 818, 431, + 547, 937, 185, 431, 212, 208, 222, 180, 220, 215, + 202, 194, 195, 179, 802, 211, 188, 193, 187, 206, + 217, 218, 186, 232, 183, 226, 182, 703, 225, 205, + 560, 216, 221, 203, 200, 181, 219, 201, 199, 196, + 190, 770, 992, 734, 214, 223, 233, 819, 699, 228, + 229, 230, 442, 441, 451, 452, 444, 445, 446, 447, + 448, 449, 450, 443, 971, 981, 453, 887, 429, 885, + 503, 504, 298, 356, 178, 547, 197, 231, 210, 192, + 224, 692, 358, 236, 431, 732, 236, 730, 858, 546, + 665, 236, 191, 751, 236, 236, 236, 619, 275, 236, + 430, 429, 269, 236, 549, 236, 236, 236, 411, 550, + 357, 617, 618, 616, 430, 429, 844, 431, 665, 771, + 776, 270, 434, 430, 429, 46, 743, 744, 745, 359, + 860, 431, 707, 940, 467, 468, 469, 470, 471, 472, + 431, 846, 291, 363, 292, 444, 445, 446, 447, 448, + 449, 450, 443, 477, 463, 453, 890, 848, 889, 852, + 486, 847, 880, 845, 546, 430, 429, 67, 850, 544, + 278, 543, 722, 462, 464, 605, 607, 608, 849, 721, + 606, 513, 431, 851, 853, 49, 236, 710, 273, 236, + 239, 636, 519, 637, 524, 615, 978, 951, 888, 473, + 741, 720, 478, 479, 480, 481, 482, 483, 484, 977, + 487, 489, 489, 489, 489, 489, 489, 489, 489, 497, + 498, 499, 500, 505, 540, 506, 262, 529, 945, 561, + 562, 563, 269, 236, 830, 520, 527, 507, 236, 509, + 827, 574, 236, 1009, 294, 49, 525, 817, 810, 811, + 812, 602, 603, 807, 609, 610, 813, 912, 294, 294, + 611, 20, 594, 620, 621, 622, 623, 624, 625, 626, + 627, 628, 629, 630, 631, 632, 633, 634, 803, 570, + 571, 446, 447, 448, 449, 450, 443, 614, 799, 453, + 613, 599, 704, 513, 638, 916, 919, 920, 921, 917, + 477, 918, 922, 659, 660, 985, 656, 277, 513, 490, + 491, 492, 493, 494, 495, 496, 253, 882, 881, 756, + 294, 944, 593, 356, 272, 596, 597, 598, 824, 823, + 639, 640, 943, 652, 814, 46, 821, 820, 669, 792, + 294, 513, 653, 655, 524, 662, 654, 682, 687, 478, + 53, 641, 691, 651, 654, 294, 667, 695, 788, 433, + 555, 556, 557, 558, 690, 912, 666, 22, 673, 681, + 672, 691, 685, 372, 371, 565, 566, 567, 451, 452, + 444, 445, 446, 447, 448, 449, 450, 443, 756, 686, + 453, 46, 694, 872, 432, 785, 525, 513, 822, 689, + 711, 712, 756, 22, 657, 658, 702, 696, 661, 430, + 429, 535, 49, 554, 716, 717, 718, 501, 573, 255, + 63, 700, 668, 725, 670, 671, 431, 22, 569, 564, + 329, 320, 319, 321, 322, 323, 324, 756, 984, 679, + 325, 681, 747, 748, 749, 417, 412, 724, 49, 963, + 517, 515, 691, 518, 964, 651, 916, 919, 920, 921, + 917, 1007, 918, 922, 49, 234, 961, 614, 513, 987, + 613, 962, 49, 746, 986, 965, 765, 920, 921, 960, + 727, 959, 259, 260, 1000, 742, 601, 777, 678, 677, + 264, 891, 362, 715, 367, 236, 801, 739, 296, 706, + 942, 941, 740, 264, 264, 753, 360, 786, 477, 754, + 297, 870, 701, 575, 796, 416, 924, 362, 524, 250, + 763, 513, 954, 766, 767, 768, 760, 775, 772, 256, + 257, 787, 370, 778, 676, 779, 780, 781, 782, 53, + 797, 251, 675, 953, 911, 535, 426, 421, 794, 236, + 284, 795, 652, 789, 790, 791, 282, 265, 932, 427, + 798, 55, 57, 50, 815, 816, 1, 804, 755, 542, + 525, 537, 651, 267, 541, 719, 834, 835, 884, 806, + 513, 808, 548, 708, 551, 513, 829, 773, 697, 538, + 831, 832, 800, 939, 705, 375, 376, 374, 859, 837, + 838, 378, 377, 841, 373, 74, 236, 923, 927, 757, + 855, 842, 729, 513, 513, 728, 577, 461, 854, 873, + 674, 652, 836, 862, 688, 871, 861, 502, 354, 952, + 840, 857, 826, 910, 774, 485, 867, 663, 760, 307, + 604, 651, 685, 651, 441, 451, 452, 444, 445, 446, + 447, 448, 449, 450, 443, 318, 868, 453, 892, 686, + 877, 315, 874, 317, 316, 508, 878, 516, 435, 305, + 299, 875, 876, 969, 866, 420, 364, 915, 869, 913, + 899, 865, 909, 784, 425, 907, 979, 514, 23, 236, + 236, 54, 261, 264, 19, 14, 264, 13, 12, 513, + 27, 410, 934, 513, 264, 264, 264, 933, 894, 418, + 895, 10, 936, 264, 513, 264, 264, 264, 938, 867, + 9, 904, 905, 8, 7, 725, 685, 906, 6, 5, + 4, 949, 252, 236, 236, 236, 236, 21, 263, 926, + 842, 2, 947, 686, 236, 46, 956, 236, 958, 724, + 236, 279, 280, 966, 656, 973, 513, 651, 955, 524, + 957, 806, 974, 867, 867, 867, 867, 18, 17, 16, + 15, 11, 651, 0, 950, 982, 477, 867, 983, 0, + 0, 0, 0, 868, 868, 868, 868, 883, 0, 0, + 0, 0, 968, 0, 0, 0, 264, 926, 526, 528, + 0, 975, 0, 0, 0, 0, 995, 996, 0, 0, + 0, 525, 0, 0, 976, 0, 0, 0, 513, 513, + 513, 1005, 1006, 0, 0, 896, 897, 0, 898, 0, + 513, 900, 0, 902, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 264, 0, 0, 991, 0, 264, 0, + 0, 0, 264, 0, 0, 22, 0, 0, 0, 997, + 998, 999, 0, 0, 0, 0, 207, 0, 0, 0, + 1008, 0, 1010, 1011, 0, 189, 1004, 1004, 1004, 0, + 0, 0, 198, 0, 0, 213, 204, 0, 1013, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 308, 309, 0, 0, 0, 0, 348, 0, 310, - 0, 0, 307, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 0, 0, 346, - 0, 0, 208, 0, 0, 0, 0, 184, 0, 211, - 207, 221, 179, 219, 214, 201, 193, 194, 178, 0, - 210, 187, 192, 186, 205, 216, 217, 185, 231, 182, - 225, 181, 0, 224, 204, 0, 215, 220, 202, 199, - 180, 218, 200, 198, 195, 189, 0, 0, 0, 213, - 222, 232, 0, 0, 227, 228, 229, 0, 0, 0, - 0, 0, 0, 0, 338, 347, 344, 345, 342, 343, - 341, 340, 339, 349, 332, 333, 335, 0, 334, 177, - 0, 196, 230, 209, 191, 223, 0, 206, 0, 0, - 0, 0, 301, 0, 0, 0, 188, 190, 300, 0, - 0, 337, 197, 0, 0, 212, 203, 0, 0, 0, - 0, 330, 331, 0, 0, 0, 0, 0, 0, 0, - 49, 0, 0, 350, 318, 317, 319, 320, 321, 322, - 0, 0, 183, 323, 324, 325, 0, 0, 298, 311, - 0, 336, 0, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 235, 648, 528, 0, 0, 0, 0, + 648, 648, 184, 0, 648, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 648, 648, + 648, 648, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 366, 0, 0, 369, 648, 0, 0, 526, 0, + 0, 0, 413, 414, 415, 0, 0, 0, 0, 0, + 0, 419, 0, 422, 423, 424, 227, 0, 0, 0, + 0, 0, 209, 0, 0, 0, 0, 185, 0, 212, + 208, 222, 180, 220, 215, 202, 194, 195, 179, 0, + 211, 188, 193, 187, 206, 217, 218, 186, 232, 183, + 226, 182, 0, 225, 205, 0, 216, 221, 203, 200, + 181, 219, 201, 199, 196, 190, 0, 0, 0, 214, + 223, 233, 0, 0, 228, 229, 230, 442, 441, 451, + 452, 444, 445, 446, 447, 448, 449, 450, 443, 0, + 0, 453, 0, 0, 521, 0, 0, 0, 0, 178, + 0, 197, 231, 210, 192, 224, 833, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, + 0, 0, 0, 0, 648, 0, 442, 441, 451, 452, + 444, 445, 446, 447, 448, 449, 450, 443, 0, 752, + 453, 576, 0, 648, 0, 0, 592, 0, 0, 0, + 595, 0, 0, 0, 0, 264, 0, 0, 0, 442, + 441, 451, 452, 444, 445, 446, 447, 448, 449, 450, + 443, 0, 526, 453, 528, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 207, 0, 0, 643, + 0, 303, 0, 0, 0, 189, 0, 302, 0, 0, + 0, 339, 198, 0, 0, 213, 204, 0, 0, 264, + 0, 332, 333, 0, 0, 0, 0, 0, 0, 0, + 49, 0, 0, 352, 320, 319, 321, 322, 323, 324, + 0, 0, 184, 325, 326, 327, 0, 648, 300, 313, + 0, 338, 0, 528, 648, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 308, 309, 0, 0, 0, 0, 348, 0, 310, - 0, 0, 307, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 0, 0, 346, - 0, 0, 208, 0, 0, 0, 0, 184, 0, 211, - 207, 221, 179, 219, 214, 201, 193, 194, 178, 0, - 210, 187, 192, 186, 205, 216, 217, 185, 231, 182, - 225, 181, 0, 224, 204, 0, 215, 220, 202, 199, - 180, 218, 200, 198, 195, 189, 0, 0, 0, 213, - 222, 232, 0, 0, 227, 228, 229, 0, 0, 0, - 0, 0, 0, 0, 338, 347, 344, 345, 342, 343, - 341, 340, 339, 349, 332, 333, 335, 206, 334, 177, - 0, 196, 230, 209, 191, 223, 188, 0, 0, 0, - 0, 337, 197, 0, 0, 212, 203, 190, 0, 0, - 0, 330, 331, 0, 0, 0, 0, 0, 0, 0, - 49, 0, 0, 350, 318, 317, 319, 320, 321, 322, - 0, 0, 183, 323, 324, 325, 0, 0, 0, 311, - 0, 336, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 310, 311, 646, 0, 0, 264, 350, 0, 312, + 0, 0, 309, 314, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 227, 0, 0, 348, + 0, 0, 209, 0, 0, 0, 0, 185, 0, 212, + 208, 222, 180, 220, 215, 202, 194, 195, 179, 0, + 211, 188, 193, 187, 206, 217, 218, 186, 232, 183, + 226, 182, 0, 225, 205, 0, 216, 221, 203, 200, + 181, 219, 201, 199, 196, 190, 0, 0, 0, 214, + 223, 233, 0, 0, 228, 229, 230, 0, 0, 264, + 930, 0, 0, 0, 340, 349, 346, 347, 344, 345, + 343, 342, 341, 351, 334, 335, 337, 0, 336, 178, + 0, 197, 231, 210, 192, 224, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 191, 0, 0, + 0, 0, 0, 264, 264, 264, 264, 0, 0, 0, + 0, 0, 0, 783, 967, 0, 0, 264, 0, 0, + 930, 0, 0, 526, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 166, 156, 128, 168, 105, 120, 177, + 121, 122, 148, 92, 136, 207, 118, 0, 108, 87, + 115, 88, 106, 130, 189, 133, 104, 158, 139, 76, + 174, 198, 143, 0, 213, 204, 0, 825, 132, 160, + 134, 155, 127, 149, 98, 142, 169, 119, 146, 0, + 0, 0, 83, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 145, 164, 117, 147, 86, 144, 0, 90, + 93, 176, 162, 111, 112, 0, 0, 0, 0, 0, + 0, 0, 131, 135, 152, 125, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 0, 141, 0, 0, 0, + 96, 91, 129, 0, 0, 0, 78, 0, 110, 153, + 0, 0, 0, 161, 126, 227, 163, 124, 123, 167, + 170, 209, 0, 159, 107, 116, 185, 114, 212, 208, + 222, 180, 220, 215, 202, 194, 195, 179, 0, 211, + 188, 193, 187, 206, 217, 218, 186, 232, 183, 226, + 182, 94, 225, 205, 95, 216, 221, 203, 200, 181, + 219, 201, 199, 196, 190, 0, 89, 0, 214, 223, + 233, 103, 75, 228, 229, 230, 79, 80, 0, 81, + 0, 82, 77, 101, 102, 99, 100, 137, 138, 171, + 172, 173, 154, 97, 0, 0, 157, 140, 178, 0, + 197, 231, 210, 192, 224, 0, 0, 0, 0, 113, + 175, 151, 150, 165, 0, 0, 191, 166, 156, 128, + 168, 105, 120, 177, 121, 122, 148, 92, 136, 207, + 118, 0, 108, 87, 115, 88, 106, 130, 189, 133, + 104, 158, 139, 531, 174, 198, 143, 0, 213, 204, + 0, 0, 132, 160, 134, 155, 127, 149, 98, 142, + 169, 119, 146, 0, 0, 0, 512, 0, 0, 0, + 0, 0, 0, 0, 0, 184, 145, 164, 117, 147, + 86, 144, 0, 90, 93, 176, 162, 111, 112, 0, + 0, 0, 0, 0, 0, 0, 131, 135, 152, 125, + 0, 0, 0, 0, 0, 0, 946, 0, 109, 0, + 141, 0, 0, 0, 96, 91, 129, 0, 0, 0, + 530, 0, 110, 153, 0, 0, 0, 161, 126, 227, + 163, 124, 123, 167, 170, 209, 0, 159, 107, 116, + 185, 114, 212, 208, 222, 180, 220, 215, 202, 194, + 195, 179, 0, 211, 188, 193, 187, 206, 217, 218, + 186, 232, 183, 226, 182, 94, 225, 205, 95, 216, + 221, 203, 200, 181, 219, 201, 199, 196, 190, 0, + 89, 0, 214, 223, 233, 103, 532, 228, 229, 230, + 0, 0, 0, 0, 0, 0, 533, 101, 102, 99, + 100, 137, 138, 171, 172, 173, 154, 97, 0, 0, + 157, 140, 178, 0, 197, 231, 210, 192, 224, 0, + 0, 0, 0, 113, 175, 151, 150, 165, 0, 0, + 191, 166, 156, 128, 168, 105, 120, 177, 121, 122, + 148, 92, 136, 207, 118, 0, 108, 87, 115, 88, + 106, 130, 189, 133, 104, 158, 139, 531, 174, 198, + 143, 0, 213, 204, 0, 0, 132, 160, 134, 155, + 127, 149, 98, 142, 169, 119, 146, 49, 0, 0, + 512, 0, 0, 0, 0, 0, 0, 0, 0, 184, + 145, 164, 117, 147, 86, 144, 0, 90, 93, 176, + 162, 111, 112, 0, 0, 0, 0, 0, 0, 0, + 131, 135, 152, 125, 0, 0, 0, 0, 0, 0, + 0, 0, 109, 0, 141, 0, 0, 0, 96, 91, + 129, 0, 0, 0, 530, 0, 110, 153, 0, 0, + 0, 161, 126, 227, 163, 124, 123, 167, 170, 209, + 0, 159, 107, 116, 185, 114, 212, 208, 222, 180, + 220, 215, 202, 194, 195, 179, 0, 211, 188, 193, + 187, 206, 217, 218, 186, 232, 183, 226, 182, 94, + 225, 205, 95, 216, 221, 203, 200, 181, 219, 201, + 199, 196, 190, 0, 89, 0, 214, 223, 233, 103, + 532, 228, 229, 230, 0, 0, 0, 0, 0, 0, + 533, 101, 102, 99, 100, 137, 138, 171, 172, 173, + 154, 97, 0, 0, 157, 140, 178, 0, 197, 231, + 210, 192, 224, 0, 0, 0, 0, 113, 175, 151, + 150, 165, 0, 0, 191, 166, 156, 128, 168, 105, + 120, 177, 121, 122, 148, 92, 136, 207, 118, 0, + 108, 87, 115, 88, 106, 130, 189, 133, 104, 158, + 139, 531, 174, 198, 143, 0, 213, 204, 0, 0, + 132, 160, 134, 155, 127, 149, 98, 142, 169, 119, + 146, 0, 0, 0, 352, 0, 0, 0, 0, 0, + 0, 0, 0, 184, 145, 164, 117, 147, 86, 144, + 0, 90, 93, 176, 162, 111, 112, 0, 0, 0, + 0, 0, 0, 0, 131, 135, 152, 125, 0, 0, + 0, 0, 0, 0, 839, 0, 109, 0, 141, 0, + 0, 0, 96, 91, 129, 0, 0, 0, 530, 0, + 110, 153, 0, 0, 0, 161, 126, 227, 163, 124, + 123, 167, 170, 209, 0, 159, 107, 116, 185, 114, + 212, 208, 222, 180, 220, 215, 202, 194, 195, 179, + 0, 211, 188, 193, 187, 206, 217, 218, 186, 232, + 183, 226, 182, 94, 225, 205, 95, 216, 221, 203, + 200, 181, 219, 201, 199, 196, 190, 0, 89, 0, + 214, 223, 233, 103, 532, 228, 229, 230, 0, 0, + 0, 0, 0, 0, 533, 101, 102, 99, 100, 137, + 138, 171, 172, 173, 154, 97, 0, 0, 157, 140, + 178, 0, 197, 231, 210, 192, 224, 0, 0, 0, + 0, 113, 175, 151, 150, 165, 0, 0, 191, 166, + 156, 128, 168, 105, 120, 177, 121, 122, 148, 92, + 136, 207, 118, 0, 108, 87, 115, 88, 106, 130, + 189, 133, 104, 158, 139, 531, 174, 198, 143, 0, + 213, 204, 0, 0, 132, 160, 134, 155, 127, 149, + 98, 142, 169, 119, 146, 0, 0, 0, 512, 0, + 0, 0, 0, 0, 0, 0, 0, 184, 145, 164, + 117, 147, 86, 144, 0, 90, 93, 176, 162, 111, + 112, 0, 0, 0, 0, 0, 0, 0, 131, 135, + 152, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 109, 0, 141, 0, 0, 0, 96, 91, 129, 0, + 0, 0, 530, 0, 110, 153, 0, 0, 0, 161, + 126, 227, 163, 124, 123, 167, 170, 209, 0, 159, + 107, 116, 185, 114, 212, 208, 222, 180, 220, 215, + 202, 194, 195, 179, 0, 211, 188, 193, 187, 206, + 217, 218, 186, 232, 183, 226, 182, 94, 225, 205, + 95, 216, 221, 203, 200, 181, 219, 201, 199, 196, + 190, 0, 89, 0, 214, 223, 233, 103, 532, 228, + 229, 230, 0, 0, 0, 0, 0, 0, 533, 101, + 102, 99, 100, 137, 138, 171, 172, 173, 154, 97, + 0, 0, 157, 140, 178, 0, 197, 231, 210, 192, + 224, 0, 0, 0, 0, 113, 175, 151, 150, 165, + 0, 0, 191, 166, 156, 128, 168, 105, 120, 177, + 121, 122, 148, 92, 136, 207, 118, 0, 108, 87, + 115, 88, 106, 130, 189, 133, 104, 158, 139, 531, + 174, 198, 143, 0, 213, 204, 0, 0, 132, 160, + 134, 155, 127, 149, 98, 142, 169, 119, 146, 0, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 0, + 0, 184, 145, 164, 117, 147, 86, 144, 0, 90, + 93, 176, 162, 111, 112, 0, 0, 0, 0, 0, + 0, 0, 131, 135, 152, 125, 0, 0, 0, 0, + 0, 0, 0, 0, 109, 0, 141, 0, 0, 0, + 96, 91, 129, 0, 0, 0, 530, 0, 110, 153, + 0, 0, 0, 161, 126, 227, 163, 124, 123, 167, + 170, 209, 0, 159, 107, 116, 185, 114, 212, 208, + 222, 180, 220, 215, 202, 194, 195, 179, 0, 211, + 188, 193, 187, 206, 217, 218, 186, 232, 183, 226, + 182, 94, 225, 205, 95, 216, 221, 203, 200, 181, + 219, 201, 199, 196, 190, 0, 89, 0, 214, 223, + 233, 103, 532, 228, 229, 230, 0, 0, 0, 0, + 0, 0, 533, 101, 102, 99, 100, 137, 138, 171, + 172, 173, 154, 97, 0, 0, 157, 140, 178, 0, + 197, 231, 210, 192, 224, 0, 0, 0, 0, 113, + 175, 151, 150, 165, 0, 0, 191, 166, 156, 128, + 168, 105, 120, 177, 121, 122, 148, 92, 136, 207, + 118, 0, 108, 87, 115, 88, 106, 130, 189, 133, + 104, 158, 139, 531, 174, 198, 143, 0, 213, 204, + 0, 0, 132, 160, 134, 155, 127, 149, 98, 142, + 169, 119, 146, 0, 0, 0, 235, 0, 0, 0, + 0, 0, 0, 0, 0, 184, 145, 164, 117, 147, + 86, 144, 0, 90, 93, 176, 162, 111, 112, 0, + 0, 0, 0, 0, 0, 0, 131, 135, 152, 125, + 0, 0, 0, 0, 0, 0, 0, 0, 109, 0, + 141, 0, 0, 0, 96, 91, 129, 0, 0, 0, + 530, 0, 110, 153, 0, 0, 0, 161, 126, 227, + 163, 124, 123, 167, 170, 209, 0, 159, 107, 116, + 185, 114, 212, 208, 222, 180, 220, 215, 202, 194, + 195, 179, 0, 211, 188, 193, 187, 206, 217, 218, + 186, 232, 183, 226, 182, 94, 225, 205, 95, 216, + 221, 203, 200, 181, 219, 201, 199, 196, 190, 0, + 89, 0, 214, 223, 233, 103, 532, 228, 229, 230, + 0, 0, 0, 0, 0, 0, 533, 101, 102, 99, + 100, 137, 138, 171, 172, 173, 154, 97, 0, 0, + 157, 140, 178, 0, 197, 231, 210, 192, 224, 0, + 0, 0, 0, 113, 175, 151, 150, 165, 207, 0, + 191, 0, 0, 303, 0, 0, 0, 189, 0, 302, + 0, 0, 0, 339, 198, 0, 0, 213, 204, 0, + 0, 0, 0, 332, 333, 0, 0, 0, 0, 0, + 0, 0, 49, 0, 0, 352, 320, 319, 321, 322, + 323, 324, 0, 0, 184, 325, 326, 327, 0, 0, + 300, 313, 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 308, 309, 0, 0, 0, 0, 348, 0, 310, - 0, 0, 307, 312, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 0, 0, 346, - 0, 0, 208, 0, 0, 0, 0, 184, 0, 211, - 207, 221, 179, 219, 214, 201, 193, 194, 178, 0, - 210, 187, 192, 186, 205, 216, 217, 185, 231, 182, - 225, 181, 0, 224, 204, 0, 215, 220, 202, 199, - 180, 218, 200, 198, 195, 189, 0, 0, 0, 213, - 222, 232, 0, 0, 227, 228, 229, 0, 0, 0, - 0, 0, 0, 0, 338, 347, 344, 345, 342, 343, - 341, 340, 339, 349, 332, 333, 335, 206, 334, 177, - 0, 196, 230, 209, 191, 223, 188, 0, 0, 0, - 0, 0, 197, 0, 0, 212, 203, 190, 0, 0, + 0, 0, 0, 310, 311, 646, 0, 0, 0, 350, + 0, 312, 0, 0, 309, 314, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 227, 0, + 0, 348, 0, 0, 209, 0, 0, 0, 0, 185, + 0, 212, 208, 222, 180, 220, 215, 202, 194, 195, + 179, 0, 211, 188, 193, 187, 206, 217, 218, 186, + 232, 183, 226, 182, 0, 225, 205, 0, 216, 221, + 203, 200, 181, 219, 201, 199, 196, 190, 0, 0, + 0, 214, 223, 233, 0, 0, 228, 229, 230, 0, + 0, 0, 0, 0, 0, 0, 340, 349, 346, 347, + 344, 345, 343, 342, 341, 351, 334, 335, 337, 0, + 336, 178, 0, 197, 231, 210, 192, 224, 0, 207, + 0, 0, 0, 0, 303, 0, 0, 0, 189, 191, + 302, 0, 0, 0, 339, 198, 0, 0, 213, 204, + 0, 0, 0, 0, 332, 333, 0, 0, 0, 0, + 0, 0, 0, 49, 0, 294, 352, 320, 319, 321, + 322, 323, 324, 0, 0, 184, 325, 326, 327, 0, + 0, 300, 313, 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 508, 0, 0, 0, 0, 0, 0, - 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 310, 311, 0, 0, 0, 0, + 350, 0, 312, 0, 0, 309, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, + 0, 0, 348, 0, 0, 209, 0, 0, 0, 0, + 185, 0, 212, 208, 222, 180, 220, 215, 202, 194, + 195, 179, 0, 211, 188, 193, 187, 206, 217, 218, + 186, 232, 183, 226, 182, 0, 225, 205, 0, 216, + 221, 203, 200, 181, 219, 201, 199, 196, 190, 0, + 0, 0, 214, 223, 233, 0, 0, 228, 229, 230, + 0, 0, 0, 0, 0, 0, 0, 340, 349, 346, + 347, 344, 345, 343, 342, 341, 351, 334, 335, 337, + 0, 336, 178, 22, 197, 231, 210, 192, 224, 0, + 0, 0, 0, 0, 207, 0, 0, 0, 0, 303, + 191, 0, 0, 189, 0, 302, 0, 0, 0, 339, + 198, 0, 0, 213, 204, 0, 0, 0, 0, 332, + 333, 0, 0, 0, 0, 0, 0, 0, 49, 0, + 0, 352, 320, 319, 321, 322, 323, 324, 0, 0, + 184, 325, 326, 327, 0, 0, 300, 313, 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 438, 437, 447, - 448, 440, 441, 442, 443, 444, 445, 446, 439, 0, - 0, 449, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, - 0, 0, 208, 0, 0, 0, 0, 184, 0, 211, - 207, 221, 179, 219, 214, 201, 193, 194, 178, 0, - 210, 187, 192, 186, 205, 216, 217, 185, 231, 182, - 225, 181, 0, 224, 204, 0, 215, 220, 202, 199, - 180, 218, 200, 198, 195, 189, 0, 0, 0, 213, - 222, 232, 0, 206, 227, 228, 229, 751, 0, 0, - 0, 0, 188, 0, 0, 0, 0, 0, 197, 0, - 0, 212, 203, 0, 0, 0, 0, 0, 0, 177, - 0, 196, 230, 209, 191, 223, 0, 0, 0, 508, - 0, 753, 0, 0, 0, 0, 0, 190, 183, 0, - 0, 0, 426, 425, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 427, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 310, + 311, 0, 0, 0, 0, 350, 0, 312, 0, 0, + 309, 314, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 227, 0, 0, 348, 0, 0, + 209, 0, 0, 0, 0, 185, 0, 212, 208, 222, + 180, 220, 215, 202, 194, 195, 179, 0, 211, 188, + 193, 187, 206, 217, 218, 186, 232, 183, 226, 182, + 0, 225, 205, 0, 216, 221, 203, 200, 181, 219, + 201, 199, 196, 190, 0, 0, 0, 214, 223, 233, + 0, 0, 228, 229, 230, 0, 0, 0, 0, 0, + 0, 0, 340, 349, 346, 347, 344, 345, 343, 342, + 341, 351, 334, 335, 337, 0, 336, 178, 0, 197, + 231, 210, 192, 224, 0, 207, 0, 0, 0, 0, + 303, 0, 0, 0, 189, 191, 302, 0, 0, 0, + 339, 198, 0, 0, 213, 204, 0, 0, 0, 0, + 332, 333, 0, 0, 0, 0, 0, 0, 0, 49, + 0, 0, 352, 320, 319, 321, 322, 323, 324, 0, + 0, 184, 325, 326, 327, 0, 0, 300, 313, 0, + 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 310, 311, 0, 0, 0, 0, 350, 0, 312, 0, + 0, 309, 314, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 227, 0, 0, 348, 0, + 0, 209, 0, 0, 0, 0, 185, 0, 212, 208, + 222, 180, 220, 215, 202, 194, 195, 179, 0, 211, + 188, 193, 187, 206, 217, 218, 186, 232, 183, 226, + 182, 0, 225, 205, 0, 216, 221, 203, 200, 181, + 219, 201, 199, 196, 190, 0, 0, 0, 214, 223, + 233, 0, 0, 228, 229, 230, 0, 0, 0, 0, + 0, 0, 0, 340, 349, 346, 347, 344, 345, 343, + 342, 341, 351, 334, 335, 337, 0, 336, 178, 207, + 197, 231, 210, 192, 224, 0, 0, 0, 189, 0, + 0, 0, 0, 0, 339, 198, 191, 0, 213, 204, + 0, 0, 0, 0, 332, 333, 0, 0, 0, 0, + 0, 0, 0, 49, 0, 0, 352, 320, 319, 321, + 322, 323, 324, 0, 0, 184, 325, 326, 327, 0, + 0, 0, 313, 0, 338, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 310, 311, 0, 0, 0, 0, + 350, 0, 312, 0, 0, 309, 314, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, + 0, 0, 348, 0, 0, 209, 0, 0, 0, 0, + 185, 0, 212, 208, 222, 180, 220, 215, 202, 194, + 195, 179, 0, 211, 188, 193, 187, 206, 217, 218, + 186, 232, 183, 226, 182, 0, 225, 205, 0, 216, + 221, 203, 200, 181, 219, 201, 199, 196, 190, 0, + 0, 0, 214, 223, 233, 0, 0, 228, 229, 230, + 0, 0, 0, 0, 0, 0, 0, 340, 349, 346, + 347, 344, 345, 343, 342, 341, 351, 334, 335, 337, + 0, 336, 178, 207, 197, 231, 210, 192, 224, 0, + 0, 0, 189, 0, 0, 0, 0, 0, 0, 198, + 191, 0, 213, 204, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 437, 0, 440, 0, 0, 0, + 512, 0, 454, 455, 456, 457, 458, 459, 460, 184, + 438, 439, 436, 442, 441, 451, 452, 444, 445, 446, + 447, 448, 449, 450, 443, 0, 0, 453, 0, 0, + 0, 0, 0, 0, 442, 441, 451, 452, 444, 445, + 446, 447, 448, 449, 450, 443, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 0, 0, 0, 0, 0, 208, 0, - 0, 0, 0, 184, 0, 211, 207, 221, 179, 219, - 214, 201, 193, 194, 178, 0, 210, 187, 192, 186, - 205, 216, 217, 185, 231, 182, 225, 181, 0, 224, - 204, 0, 215, 220, 202, 199, 180, 218, 200, 198, - 195, 189, 22, 0, 0, 213, 222, 232, 0, 0, - 227, 228, 229, 206, 0, 0, 0, 0, 0, 0, - 0, 0, 188, 0, 0, 0, 0, 0, 197, 0, - 0, 212, 203, 0, 0, 177, 0, 196, 230, 209, - 191, 223, 0, 0, 0, 0, 49, 0, 0, 234, - 0, 0, 0, 190, 0, 0, 0, 0, 183, 0, + 0, 0, 0, 227, 0, 0, 0, 0, 0, 209, + 0, 0, 0, 0, 185, 0, 212, 208, 222, 180, + 220, 215, 202, 194, 195, 179, 0, 211, 188, 193, + 187, 206, 217, 218, 186, 232, 183, 226, 182, 0, + 225, 205, 0, 216, 221, 203, 200, 181, 219, 201, + 199, 196, 190, 0, 0, 0, 214, 223, 233, 0, + 207, 228, 229, 230, 759, 0, 0, 0, 0, 189, + 0, 0, 0, 0, 0, 0, 198, 0, 0, 213, + 204, 0, 0, 0, 0, 0, 178, 0, 197, 231, + 210, 192, 224, 0, 0, 0, 0, 512, 0, 761, + 0, 0, 0, 0, 191, 0, 184, 0, 0, 0, + 430, 429, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 227, 0, 0, 0, 0, 0, 209, 0, 0, 0, + 0, 185, 0, 212, 208, 222, 180, 220, 215, 202, + 194, 195, 179, 0, 211, 188, 193, 187, 206, 217, + 218, 186, 232, 183, 226, 182, 0, 225, 205, 0, + 216, 221, 203, 200, 181, 219, 201, 199, 196, 190, + 22, 0, 0, 214, 223, 233, 0, 0, 228, 229, + 230, 207, 0, 0, 0, 0, 0, 0, 0, 0, + 189, 0, 0, 0, 0, 0, 0, 198, 381, 0, + 213, 204, 0, 178, 0, 197, 231, 210, 192, 224, + 0, 0, 0, 0, 0, 49, 0, 0, 512, 0, + 0, 191, 0, 393, 0, 0, 0, 184, 398, 399, + 400, 401, 402, 403, 404, 0, 405, 406, 407, 408, + 409, 394, 395, 396, 397, 379, 380, 0, 0, 382, + 0, 0, 383, 384, 385, 386, 387, 388, 389, 390, + 391, 392, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 227, 0, 0, 0, 0, 0, 209, 0, 0, + 0, 0, 185, 0, 212, 208, 222, 180, 220, 215, + 202, 194, 195, 179, 0, 211, 188, 193, 187, 206, + 217, 218, 186, 232, 183, 226, 182, 0, 225, 205, + 0, 216, 221, 203, 200, 181, 219, 201, 199, 196, + 190, 0, 0, 0, 214, 223, 233, 207, 0, 228, + 229, 230, 0, 0, 0, 0, 189, 0, 0, 0, + 0, 0, 0, 198, 0, 0, 213, 204, 0, 0, + 0, 0, 0, 0, 178, 0, 197, 231, 210, 192, + 224, 0, 0, 0, 512, 0, 0, 510, 0, 0, + 511, 0, 191, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 0, 0, 0, 0, 0, 208, 0, - 0, 0, 0, 184, 0, 211, 207, 221, 179, 219, - 214, 201, 193, 194, 178, 0, 210, 187, 192, 186, - 205, 216, 217, 185, 231, 182, 225, 181, 0, 224, - 204, 0, 215, 220, 202, 199, 180, 218, 200, 198, - 195, 189, 0, 0, 0, 213, 222, 232, 0, 206, - 227, 228, 229, 921, 0, 0, 0, 0, 188, 0, - 0, 0, 0, 0, 197, 0, 0, 212, 203, 0, - 0, 0, 0, 0, 0, 177, 0, 196, 230, 209, - 191, 223, 0, 0, 0, 234, 0, 923, 0, 0, - 0, 0, 0, 190, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, + 0, 0, 0, 209, 0, 0, 0, 0, 185, 0, + 212, 208, 222, 180, 220, 215, 202, 194, 195, 179, + 0, 211, 188, 193, 187, 206, 217, 218, 186, 232, + 183, 226, 182, 0, 225, 205, 0, 216, 221, 203, + 200, 181, 219, 201, 199, 196, 190, 0, 0, 0, + 214, 223, 233, 207, 0, 228, 229, 230, 0, 0, + 0, 0, 189, 0, 0, 0, 0, 0, 0, 198, + 0, 0, 213, 204, 0, 0, 0, 0, 0, 0, + 178, 0, 197, 231, 210, 192, 224, 0, 0, 0, + 235, 0, 931, 0, 0, 0, 0, 0, 191, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, - 0, 0, 0, 0, 208, 0, 0, 0, 0, 184, - 0, 211, 207, 221, 179, 219, 214, 201, 193, 194, - 178, 0, 210, 187, 192, 186, 205, 216, 217, 185, - 231, 182, 225, 181, 0, 224, 204, 0, 215, 220, - 202, 199, 180, 218, 200, 198, 195, 189, 22, 0, - 0, 213, 222, 232, 0, 0, 227, 228, 229, 206, - 0, 0, 0, 0, 0, 0, 0, 0, 188, 0, - 0, 0, 0, 0, 197, 0, 0, 212, 203, 0, - 0, 177, 0, 196, 230, 209, 191, 223, 0, 0, - 0, 0, 49, 0, 0, 508, 0, 0, 0, 190, - 0, 0, 0, 0, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, - 0, 0, 0, 0, 208, 0, 0, 0, 0, 184, - 0, 211, 207, 221, 179, 219, 214, 201, 193, 194, - 178, 0, 210, 187, 192, 186, 205, 216, 217, 185, - 231, 182, 225, 181, 0, 224, 204, 0, 215, 220, - 202, 199, 180, 218, 200, 198, 195, 189, 0, 0, - 0, 213, 222, 232, 0, 206, 227, 228, 229, 0, - 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, - 197, 0, 0, 212, 203, 0, 0, 0, 0, 0, - 0, 177, 0, 196, 230, 209, 191, 223, 0, 0, - 0, 508, 0, 0, 506, 0, 0, 507, 0, 190, - 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 227, 0, 0, 0, 0, 0, 209, + 0, 0, 0, 0, 185, 0, 212, 208, 222, 180, + 220, 215, 202, 194, 195, 179, 0, 211, 188, 193, + 187, 206, 217, 218, 186, 232, 183, 226, 182, 0, + 225, 205, 0, 216, 221, 203, 200, 181, 219, 201, + 199, 196, 190, 0, 0, 0, 214, 223, 233, 207, + 0, 228, 229, 230, 0, 0, 0, 0, 189, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 213, 204, + 0, 0, 0, 0, 0, 0, 178, 0, 197, 231, + 210, 192, 224, 49, 0, 0, 235, 0, 0, 0, + 0, 0, 0, 0, 191, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, - 208, 0, 0, 0, 0, 184, 0, 211, 207, 221, - 179, 219, 214, 201, 193, 194, 178, 0, 210, 187, - 192, 186, 205, 216, 217, 185, 231, 182, 225, 181, - 0, 224, 204, 0, 215, 220, 202, 199, 180, 218, - 200, 198, 195, 189, 0, 0, 0, 213, 222, 232, - 0, 206, 227, 228, 229, 0, 0, 0, 0, 0, - 188, 0, 0, 0, 0, 0, 197, 0, 0, 212, - 203, 0, 0, 0, 0, 0, 0, 177, 0, 196, - 230, 209, 191, 223, 0, 0, 0, 234, 0, 923, - 0, 0, 0, 0, 0, 190, 183, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, + 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, + 185, 0, 212, 208, 222, 180, 220, 215, 202, 194, + 195, 179, 0, 211, 188, 193, 187, 206, 217, 218, + 186, 232, 183, 226, 182, 0, 225, 205, 0, 216, + 221, 203, 200, 181, 219, 201, 199, 196, 190, 0, + 0, 0, 214, 223, 233, 207, 0, 228, 229, 230, + 0, 0, 0, 0, 189, 0, 0, 0, 0, 0, + 0, 198, 0, 0, 213, 204, 0, 0, 0, 0, + 0, 0, 178, 0, 197, 231, 210, 192, 224, 0, + 0, 0, 512, 0, 761, 0, 0, 0, 0, 0, + 191, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, + 0, 209, 0, 0, 0, 0, 185, 0, 212, 208, + 222, 180, 220, 215, 202, 194, 195, 179, 0, 211, + 188, 193, 187, 206, 217, 218, 186, 232, 183, 226, + 182, 0, 225, 205, 0, 216, 221, 203, 200, 181, + 219, 201, 199, 196, 190, 0, 0, 0, 214, 223, + 233, 207, 0, 228, 229, 230, 0, 0, 0, 365, + 189, 0, 0, 0, 0, 0, 0, 198, 0, 0, + 213, 204, 0, 0, 0, 0, 0, 0, 178, 0, + 197, 231, 210, 192, 224, 0, 0, 0, 235, 0, + 0, 0, 0, 0, 0, 0, 191, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 226, 0, 0, 0, 0, 0, 208, 0, 0, 0, - 0, 184, 0, 211, 207, 221, 179, 219, 214, 201, - 193, 194, 178, 0, 210, 187, 192, 186, 205, 216, - 217, 185, 231, 182, 225, 181, 0, 224, 204, 0, - 215, 220, 202, 199, 180, 218, 200, 198, 195, 189, - 0, 0, 0, 213, 222, 232, 0, 206, 227, 228, - 229, 0, 0, 0, 0, 0, 188, 0, 0, 0, - 0, 0, 197, 0, 0, 212, 203, 0, 0, 0, - 0, 0, 0, 177, 0, 196, 230, 209, 191, 223, - 49, 0, 0, 234, 0, 0, 0, 0, 0, 0, - 0, 190, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, - 0, 0, 208, 0, 0, 0, 0, 184, 0, 211, - 207, 221, 179, 219, 214, 201, 193, 194, 178, 0, - 210, 187, 192, 186, 205, 216, 217, 185, 231, 182, - 225, 181, 0, 224, 204, 0, 215, 220, 202, 199, - 180, 218, 200, 198, 195, 189, 0, 0, 0, 213, - 222, 232, 0, 206, 227, 228, 229, 0, 0, 0, - 0, 0, 188, 0, 0, 0, 0, 0, 197, 0, - 0, 212, 203, 0, 0, 0, 0, 0, 0, 177, - 0, 196, 230, 209, 191, 223, 0, 0, 0, 508, - 0, 753, 0, 0, 0, 0, 0, 190, 183, 0, + 0, 227, 0, 0, 0, 0, 0, 209, 0, 0, + 0, 0, 185, 0, 212, 208, 222, 180, 220, 215, + 202, 194, 195, 179, 0, 211, 188, 193, 187, 206, + 217, 218, 186, 232, 183, 226, 182, 0, 225, 205, + 0, 216, 221, 203, 200, 181, 219, 201, 199, 196, + 190, 0, 0, 0, 214, 223, 233, 207, 0, 228, + 229, 230, 0, 0, 0, 0, 189, 0, 0, 0, + 0, 0, 0, 198, 0, 0, 213, 204, 0, 0, + 0, 0, 0, 0, 178, 0, 197, 231, 210, 192, + 224, 0, 0, 0, 512, 0, 0, 0, 0, 0, + 0, 0, 191, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, + 0, 0, 0, 209, 0, 0, 0, 0, 185, 0, + 212, 208, 222, 180, 220, 215, 202, 194, 195, 179, + 0, 211, 188, 193, 187, 206, 217, 218, 186, 232, + 183, 226, 182, 0, 225, 205, 0, 216, 221, 203, + 200, 181, 219, 201, 199, 196, 190, 0, 0, 0, + 214, 223, 233, 207, 0, 228, 229, 230, 0, 0, + 0, 0, 189, 0, 0, 0, 0, 0, 0, 198, + 0, 0, 213, 204, 0, 0, 0, 0, 0, 0, + 178, 0, 197, 231, 210, 192, 224, 0, 0, 0, + 352, 0, 0, 0, 0, 0, 0, 0, 191, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 226, 0, 0, 0, 0, 0, 208, 0, - 0, 0, 0, 184, 0, 211, 207, 221, 179, 219, - 214, 201, 193, 194, 178, 0, 210, 187, 192, 186, - 205, 216, 217, 185, 231, 182, 225, 181, 0, 224, - 204, 0, 215, 220, 202, 199, 180, 218, 200, 198, - 195, 189, 0, 0, 0, 213, 222, 232, 0, 206, - 227, 228, 229, 0, 0, 0, 0, 363, 188, 0, - 0, 0, 0, 0, 197, 0, 0, 212, 203, 0, - 0, 0, 0, 0, 0, 177, 0, 196, 230, 209, - 191, 223, 0, 0, 0, 234, 0, 0, 0, 0, - 0, 0, 0, 190, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 226, 0, - 0, 0, 0, 0, 208, 0, 0, 0, 0, 184, - 0, 211, 207, 221, 179, 219, 214, 201, 193, 194, - 178, 0, 210, 187, 192, 186, 205, 216, 217, 185, - 231, 182, 225, 181, 0, 224, 204, 0, 215, 220, - 202, 199, 180, 218, 200, 198, 195, 189, 0, 0, - 0, 213, 222, 232, 0, 206, 227, 228, 229, 0, - 0, 0, 0, 0, 188, 0, 0, 0, 0, 0, - 197, 0, 0, 212, 203, 0, 0, 0, 0, 0, - 0, 177, 0, 196, 230, 209, 191, 223, 0, 0, - 0, 508, 0, 0, 0, 0, 0, 0, 0, 190, - 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 227, 0, 0, 0, 0, 0, 209, + 0, 0, 0, 0, 185, 0, 212, 208, 222, 180, + 220, 215, 202, 194, 195, 179, 0, 211, 188, 193, + 187, 206, 217, 218, 186, 232, 183, 226, 182, 0, + 225, 205, 0, 216, 221, 203, 200, 181, 219, 201, + 199, 196, 190, 0, 0, 0, 214, 223, 233, 207, + 0, 228, 229, 230, 0, 0, 0, 0, 189, 0, + 0, 0, 0, 0, 0, 198, 0, 0, 213, 204, + 0, 0, 0, 0, 0, 0, 178, 0, 197, 231, + 210, 192, 224, 0, 0, 0, 235, 0, 0, 0, + 0, 0, 0, 0, 191, 184, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 226, 0, 0, 0, 0, 0, - 208, 0, 0, 0, 0, 184, 0, 211, 207, 221, - 179, 219, 214, 201, 193, 194, 178, 0, 210, 187, - 192, 186, 205, 216, 217, 185, 231, 182, 225, 181, - 0, 224, 204, 0, 215, 220, 202, 199, 180, 218, - 200, 198, 195, 189, 0, 0, 0, 213, 222, 232, - 0, 206, 227, 228, 229, 0, 0, 0, 0, 0, - 188, 0, 0, 0, 0, 0, 197, 0, 0, 212, - 203, 0, 0, 0, 0, 0, 0, 177, 0, 196, - 230, 209, 191, 223, 0, 0, 0, 350, 0, 0, - 0, 0, 0, 0, 0, 190, 183, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, + 0, 0, 0, 0, 0, 209, 0, 0, 0, 0, + 185, 0, 212, 208, 222, 180, 220, 215, 202, 194, + 195, 179, 0, 211, 188, 193, 187, 206, 217, 218, + 186, 232, 183, 226, 182, 0, 225, 205, 0, 216, + 221, 203, 200, 181, 219, 201, 199, 196, 190, 0, + 589, 0, 214, 223, 233, 0, 0, 228, 229, 230, + 22, 47, 24, 25, 588, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 42, 0, + 0, 0, 178, 26, 197, 231, 210, 192, 224, 0, + 591, 0, 0, 0, 0, 0, 0, 0, 0, 587, + 191, 0, 34, 0, 0, 49, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 584, 582, 578, 0, 581, + 583, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 28, 29, 30, 0, 32, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, + 43, 36, 0, 0, 44, 45, 31, 0, 0, 586, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 585, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 226, 0, 0, 0, 0, 0, 208, 0, 0, 0, - 0, 184, 0, 211, 207, 221, 179, 219, 214, 201, - 193, 194, 178, 0, 210, 187, 192, 186, 205, 216, - 217, 185, 231, 182, 225, 181, 0, 224, 204, 0, - 215, 220, 202, 199, 180, 218, 200, 198, 195, 189, - 0, 0, 0, 213, 222, 232, 0, 206, 227, 228, - 229, 0, 0, 0, 0, 0, 188, 0, 0, 0, - 0, 0, 197, 0, 0, 212, 203, 0, 0, 0, - 0, 0, 0, 177, 0, 196, 230, 209, 191, 223, - 0, 0, 0, 234, 0, 0, 0, 0, 0, 0, - 0, 190, 183, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 226, 0, 0, 0, - 0, 0, 208, 0, 0, 0, 0, 184, 0, 211, - 207, 221, 179, 219, 214, 201, 193, 194, 178, 0, - 210, 187, 192, 186, 205, 216, 217, 185, 231, 182, - 225, 181, 0, 224, 204, 0, 215, 220, 202, 199, - 180, 218, 200, 198, 195, 189, 0, 0, 0, 213, - 222, 232, 0, 0, 227, 228, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, - 0, 196, 230, 209, 191, 223, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 190, + 0, 580, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 590, 0, 0, 0, 0, 0, 48, 0, + 0, 0, 0, 0, 579, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 35, 0, 0, 0, 0, 0, + 37, 0, 0, 38, 39, 0, 41, 40, } var yyPact = [...]int{ - 120, -1000, -187, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 5714, -1000, -175, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 681, 714, -1000, -1000, -1000, -1000, -1000, 529, 21, 12, - -20, 26, 25, 1660, 5760, -1000, -1000, 353, -1000, -173, - -1000, -1000, -1000, -1000, -1000, -1000, 531, -1000, -1000, -1000, - -1000, -1000, 670, 677, 571, 665, 589, -1000, 12, 5760, - 706, -1000, -150, 381, 6, 459, 6, 20, -1000, -4, - 457, -4, 5760, 5760, -1000, 705, 704, -22, -1000, -1000, - -103, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 705, 736, -1000, -1000, -1000, -1000, -1000, 549, -30, -7, + -32, 27, 7, 1548, 5542, -1000, -1000, 313, -1000, -166, + -1000, -1000, -1000, -1000, -1000, -1000, 577, -1000, -1000, -1000, + -1000, -1000, 683, 706, 593, 690, 624, -1000, -7, 5542, + 727, -1000, -146, 358, -11, 450, -11, 5, -1000, -13, + 433, -13, 5542, 5542, -1000, 726, -85, 720, -34, -1000, + -1000, -92, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, @@ -1188,166 +1186,167 @@ var yyPact = [...]int{ -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 384, 618, 3520, - 3520, 681, -1000, 531, -1000, -1000, -1000, 614, -1000, -1000, - 271, 5292, 611, 110, 5760, 673, 456, -1000, 39, 5760, - 249, 556, 5760, 5760, 5760, 653, 555, 5760, -1000, -1000, - -1000, 5760, 5760, 5760, 5760, -1000, -1000, 702, -1000, -1000, - -1000, -1000, -1000, -1000, 710, 147, 361, -1000, 3520, 1034, - 501, 501, -1000, -1000, 37, -1000, -1000, 3700, 3700, 3700, - 3700, 3700, 3700, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 501, 87, -1000, 3330, - 501, 501, 501, 501, 501, 501, 3520, 501, 501, 501, - 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, - -1000, -1000, 510, -1000, 270, 670, 384, 589, 4668, 566, - -1000, -1000, 500, 5760, -1000, 5604, 2938, 693, -153, -168, - 181, 251, -72, -1000, -1000, 516, -1000, 516, 516, 516, - 516, -48, -48, -48, -48, -1000, -1000, -1000, -1000, -1000, - 536, -1000, 516, 516, 516, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 534, 534, 534, 518, 518, -1000, 652, - 5760, -1000, 38, -1000, -1000, 5760, -1000, -1000, -1000, -1000, - -1000, 670, -106, -1000, 597, 3520, 3520, 247, 3520, 3520, - 157, 3700, 313, 182, 3700, 3700, 3700, 3700, 3700, 3700, - 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 3700, 321, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 432, -1000, - 531, 291, 291, 124, 124, 124, 124, 124, 3880, 1149, - 2725, 384, 451, 214, 3330, 1422, 1422, 3520, 3520, 1422, - 657, 227, 214, 5448, -1000, 384, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1422, 1422, 1422, 1422, 3520, -1000, -1000, - -1000, 618, -1000, 657, 669, -1000, 604, 602, -1000, -1000, - 1422, -1000, 554, 5604, 501, -1000, 4512, -1000, 498, -1000, - 200, -1000, 74, -1000, -1000, -1000, -1000, -1000, -1000, 681, - 3520, 501, -1000, -66, 195, -1000, -1000, 530, 645, 194, - 419, -1000, -1000, 616, -1000, 267, -75, -1000, -1000, 349, - -48, -48, -1000, -1000, 61, 609, 61, 61, 61, 366, - -1000, -1000, -1000, -1000, 319, -1000, -1000, -1000, 314, -1000, - -1000, 2086, -1000, 191, 193, 15, 1, -6, -13, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 386, 660, + 3608, 3608, 705, -1000, 577, -1000, -1000, -1000, 652, -1000, + -1000, 261, 5074, 645, 59, 5542, 697, 501, -1000, 4225, + 5542, 219, 576, 5542, 5542, 5542, 673, 575, 5542, -1000, + -1000, -1000, 5542, 717, 5542, 5542, 5542, -1000, -1000, 716, + -1000, -1000, -1000, -1000, -1000, -1000, 731, 72, 522, -1000, + 3608, 3955, 374, 374, -1000, -1000, 39, -1000, -1000, 3792, + 3792, 3792, 3792, 3792, 3792, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 374, 56, + -1000, 3417, 374, 374, 374, 374, 374, 374, 3608, 374, + 374, 374, 374, 374, 374, 374, 374, 374, 374, 374, + 374, 374, -1000, -1000, 545, -1000, 227, 683, 386, 624, + 4450, 590, -1000, -1000, 601, 5542, -1000, 5386, 2832, 714, + -150, -162, 228, 220, -78, -1000, -1000, 542, -1000, 542, + 542, 542, 542, -54, -54, -54, -54, -1000, -1000, -1000, + -1000, -1000, 558, -1000, 542, 542, 542, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 557, 557, 557, 547, 547, + -1000, 671, 5542, -1000, 5696, -1000, -1000, 5542, -1000, -1000, + 714, 5542, -1000, -1000, -1000, 683, -106, -1000, 630, 3608, + 3608, 291, 3608, 3608, 95, 3792, 314, 206, 3792, 3792, + 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, 3792, + 3792, 3792, 3792, 317, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 420, -1000, 577, 556, 556, 73, 73, 73, + 73, 73, 3976, 1299, 2618, 386, 482, 213, 3417, 3031, + 3031, 3608, 3608, 3031, 677, 197, 213, 5230, -1000, 386, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3031, 3031, 3031, + 3031, 3608, -1000, -1000, -1000, 660, -1000, 677, 704, -1000, + 637, 636, -1000, -1000, 3031, -1000, 571, 5386, 374, -1000, + 4294, -1000, 580, -1000, 184, -1000, 53, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 705, 3608, 374, -1000, -73, 151, + -1000, -1000, 550, 665, 153, 418, -1000, -1000, 651, -1000, + 248, -80, -1000, -1000, 310, -54, -54, -1000, -1000, 66, + 644, 66, 66, 66, 325, -1000, -1000, -1000, -1000, 302, + -1000, -1000, -1000, 295, -1000, -1000, 1976, -1000, 149, 146, + -5, -18, -21, -22, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 364, 594, 157, 196, -1000, -1000, 292, - -1000, -1000, 214, 214, 1321, -1000, -1000, -1000, -1000, 313, - 3700, 3700, 3700, 980, 1321, 1290, 563, 1166, 124, 163, - 163, 140, 140, 140, 140, 140, 230, 230, -1000, -1000, - -1000, 384, -1000, -1000, -1000, 384, 1422, 497, -1000, -1000, - 4036, 60, 501, 57, -1000, -1000, -1000, 3520, -1000, 384, - 435, 435, 156, 277, 435, 1422, 218, -1000, 3520, 384, - -1000, 435, 384, 435, 435, -1000, -1000, 5760, -1000, -1000, - -1000, -1000, 513, -1000, 647, 465, 485, -1000, -1000, 3136, - 384, 448, 54, 681, 5604, 3520, 2725, 670, 214, 417, - 615, 172, 397, 5448, -1000, 394, -1000, -1000, -68, 383, - -1000, -1000, -1000, 461, 61, 61, -1000, 392, 184, -1000, - -1000, -1000, 441, -1000, 496, 437, -1000, -1000, -1000, -1000, - -1000, 5760, -1000, -1000, -1000, -1000, -1000, 390, -49, 529, - 388, 381, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 980, - 1321, 995, -1000, 3700, 3700, -1000, -1000, 435, 1422, -1000, - -1000, 5136, -1000, -1000, 2299, 1422, 2512, 214, -1000, -1000, - -1000, 66, 321, 66, -131, 519, 197, -1000, 3520, 222, - -1000, -1000, -1000, -1000, -1000, -1000, 693, 4980, 644, -1000, - 501, -1000, -1000, 521, 5448, 5448, 670, -1000, 214, -1000, - -1000, 384, -1000, -53, 310, -1000, 416, -1000, 516, -1000, - 104, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 360, 309, -1000, 305, -1000, -1000, -1000, - 608, -1000, -1000, -1000, -1000, 3700, 1321, 1321, -1000, -1000, - -1000, -1000, 50, 384, -1000, 384, 516, 516, -1000, 516, - 518, -1000, 516, -30, 516, -31, 384, 384, 501, -125, - -1000, 214, 3520, 690, 493, 517, -1000, -1000, -1000, 655, - 4196, 4352, 709, -1000, 501, -1000, 531, 41, -1000, -1000, - 2086, 166, -1000, -1000, 5448, -1000, 272, 642, -1000, 640, - -1000, 442, 438, 378, 1321, 1873, -1000, -1000, -1000, 58, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 3700, 384, - 359, 214, 686, 666, 4980, 4980, 4980, 4980, -1000, 584, - 581, -1000, 570, 569, 576, 5760, -1000, 408, 4196, 169, - -1000, 4824, -1000, -1000, 5604, 485, 384, 5448, -1000, 373, - -1000, -1000, 355, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -8, -1000, -1000, -1000, 3520, 3520, 517, 538, 434, - -1000, -1000, -1000, -1000, 577, -1000, 568, -1000, -1000, -1000, - -1000, -1000, 23, 22, 18, -1000, 484, -1000, -1000, -1000, - -1000, 384, 19, -141, 214, 464, 3520, 3520, -1000, -1000, - 501, 501, 501, -1000, 593, -137, -146, 214, 214, 5448, - 5448, 5448, -1000, 588, -1000, 371, -1000, 371, 371, -139, - -1000, 5448, -1000, -1000, -142, -1000, -147, -1000, + 324, 628, 95, 180, -1000, -1000, 242, -1000, -1000, 213, + 213, 1119, -1000, -1000, -1000, -1000, 314, 3792, 3792, 3792, + 144, 1119, 1201, 468, 735, 73, 367, 367, 70, 70, + 70, 70, 70, 233, 233, -1000, -1000, -1000, 386, -1000, + -1000, -1000, 386, 3031, 530, -1000, -1000, 4133, 50, 374, + 45, -1000, -1000, -1000, 3608, -1000, 386, 447, 447, 99, + 278, 447, 3031, 225, -1000, 3608, 386, -1000, 447, 386, + 447, 447, -1000, -1000, 5542, -1000, -1000, -1000, -1000, 565, + -1000, 661, 499, 486, -1000, -1000, 3222, 386, 467, 44, + 705, 5386, 3608, 2618, 683, 213, 414, 648, 117, 404, + 5230, -1000, 379, -1000, -1000, -74, 372, -1000, -1000, -1000, + 461, 66, 66, -1000, 373, 124, -1000, -1000, -1000, 464, + -1000, 526, 456, -1000, -1000, -1000, -1000, -1000, 5542, -1000, + -1000, -1000, -1000, -1000, 366, -55, 549, 360, 358, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 144, 1119, 1168, + -1000, 3792, 3792, -1000, -1000, 447, 3031, -1000, -1000, 4918, + -1000, -1000, 2190, 3031, 2404, 213, -1000, -1000, -1000, 193, + 317, 193, -131, 516, 192, -1000, 3608, 236, -1000, -1000, + -1000, -1000, -1000, -1000, 714, 4762, 664, -1000, 374, -1000, + -1000, 541, 5230, 5230, 683, -1000, 213, -1000, -1000, 386, + -1000, -60, 285, -1000, 445, -1000, 542, -1000, 126, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 322, 281, -1000, 279, -1000, -1000, -1000, 642, -1000, + -1000, -1000, -1000, 3792, 1119, 1119, -1000, -1000, -1000, -1000, + 43, 386, -1000, 386, 542, 542, -1000, 542, 547, -1000, + 542, -37, 542, -38, 386, 386, 374, -128, -1000, 213, + 3608, 712, 493, 596, -1000, -1000, -1000, 675, 1029, 54, + 730, -1000, 374, -1000, 577, 38, -1000, -1000, 1976, 104, + -1000, -1000, 5230, -1000, 250, 654, -1000, 653, -1000, 459, + 448, 354, 1119, 1762, -1000, -1000, -1000, 57, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 3792, 386, 321, 213, + 710, 687, 4762, 4762, 4762, 4762, -1000, 621, 619, -1000, + 606, 589, 615, 5542, -1000, 385, 1029, 125, -1000, 4606, + -1000, -1000, 5386, 486, 386, 5230, -1000, 335, -1000, -1000, + 320, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 42, + -1000, -1000, -1000, 3608, 3608, 596, 568, 435, -1000, -1000, + -1000, -1000, 614, -1000, 609, -1000, -1000, -1000, -1000, -1000, + 0, -1, -2, -1000, 480, -1000, -1000, -1000, -1000, 386, + 21, -139, 213, 474, 3608, 3608, -1000, -1000, 374, 374, + 374, -1000, 627, -135, -142, 213, 213, 5230, 5230, 5230, + -1000, 604, -1000, 371, -1000, 371, 371, -137, -1000, 5230, + -1000, -1000, -140, -1000, -143, -1000, } var yyPgo = [...]int{ - 0, 870, 869, 868, 867, 866, 865, 108, 369, 864, - 863, 860, 859, 858, 857, 852, 851, 850, 849, 848, - 847, 846, 843, 45, 842, 840, 839, 41, 837, 44, - 836, 835, 833, 27, 169, 31, 22, 3, 832, 17, - 13, 4, 830, 829, 14, 827, 781, 826, 823, 822, - 2, 26, 821, 820, 819, 818, 42, 153, 817, 815, - 810, 809, 808, 807, 32, 1, 11, 9, 16, 804, - 18, 6, 801, 33, 798, 793, 791, 789, 39, 788, - 48, 782, 15, 40, 780, 29, 7, 28, 779, 358, - 777, 307, 368, 773, 770, 769, 20, 0, 59, 67, - 24, 768, 739, 37, 5, 763, 761, 77, 10, 21, - 19, 760, 756, 751, 750, 749, 748, 747, 160, 745, - 743, 23, 53, 742, 741, 740, 738, 737, 43, 12, - 736, 735, 734, 733, 30, 732, 38, 25, 731, 730, - 729, 8, 725, 724, 721, 50, 46, 720, 112, + 0, 951, 950, 949, 948, 947, 921, 7, 441, 917, + 912, 910, 909, 908, 904, 903, 900, 891, 880, 878, + 877, 875, 874, 53, 872, 871, 868, 40, 867, 57, + 866, 865, 864, 23, 104, 19, 22, 1, 863, 17, + 25, 12, 861, 859, 10, 857, 858, 856, 855, 854, + 853, 2, 21, 850, 849, 848, 847, 44, 4, 845, + 844, 843, 841, 835, 820, 36, 3, 14, 33, 16, + 819, 30, 6, 817, 43, 815, 814, 813, 809, 37, + 808, 48, 807, 45, 42, 804, 28, 9, 39, 800, + 347, 797, 278, 301, 796, 795, 792, 38, 0, 58, + 26, 20, 789, 610, 47, 5, 788, 787, 82, 13, + 27, 18, 785, 784, 782, 781, 777, 776, 775, 160, + 774, 773, 24, 32, 772, 769, 768, 764, 763, 52, + 11, 762, 761, 758, 755, 31, 754, 41, 29, 753, + 751, 749, 15, 747, 746, 743, 50, 46, 742, 147, } var yyR1 = [...]int{ - 0, 143, 144, 144, 6, 6, 6, 6, 6, 6, + 0, 144, 145, 145, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 8, 9, 9, 10, 10, 11, 11, 26, 26, 12, 13, 14, 15, 15, 15, 15, - 18, 137, 139, 124, 124, 123, 123, 125, 125, 138, - 138, 138, 134, 112, 112, 112, 115, 115, 113, 113, - 113, 113, 113, 113, 113, 114, 114, 114, 114, 114, - 116, 116, 116, 116, 116, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 133, - 133, 118, 118, 128, 128, 129, 129, 129, 126, 126, - 127, 127, 130, 130, 130, 119, 119, 119, 119, 119, - 131, 131, 121, 121, 121, 122, 122, 132, 132, 132, - 132, 132, 120, 120, 135, 140, 140, 140, 140, 136, - 136, 142, 142, 141, 16, 16, 16, 16, 16, 16, + 18, 138, 140, 125, 125, 124, 124, 126, 126, 139, + 139, 139, 135, 113, 113, 113, 116, 116, 114, 114, + 114, 114, 114, 114, 114, 115, 115, 115, 115, 115, + 117, 117, 117, 117, 117, 118, 118, 118, 118, 118, + 118, 118, 118, 118, 118, 118, 118, 118, 118, 134, + 134, 119, 119, 129, 129, 130, 130, 130, 127, 127, + 128, 128, 131, 131, 131, 120, 120, 120, 120, 120, + 132, 132, 122, 122, 122, 123, 123, 133, 133, 133, + 133, 133, 121, 121, 136, 141, 141, 141, 141, 137, + 137, 143, 143, 142, 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 1, 19, 2, 3, 4, - 5, 5, 5, 5, 111, 111, 111, 20, 20, 20, - 20, 20, 20, 20, 20, 20, 32, 32, 21, 22, - 22, 22, 22, 147, 23, 24, 24, 25, 25, 25, - 29, 29, 29, 27, 27, 28, 28, 35, 35, 34, - 34, 36, 36, 36, 36, 101, 101, 101, 100, 100, - 38, 38, 39, 39, 40, 40, 41, 41, 41, 48, - 42, 42, 42, 42, 106, 106, 105, 105, 105, 104, - 104, 43, 43, 43, 43, 44, 44, 44, 44, 45, - 45, 47, 47, 46, 46, 49, 49, 49, 49, 50, - 50, 51, 51, 37, 37, 37, 37, 37, 37, 37, - 90, 90, 53, 53, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 63, 63, 63, 63, 63, 63, - 54, 54, 54, 54, 54, 54, 54, 33, 33, 64, - 64, 64, 70, 65, 65, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 57, 57, 57, 57, 57, - 57, 57, 57, 57, 57, 61, 61, 61, 59, 59, - 59, 59, 59, 59, 59, 59, 59, 60, 60, 60, - 60, 60, 60, 60, 60, 148, 148, 62, 62, 62, - 62, 30, 30, 30, 30, 30, 109, 109, 110, 110, - 110, 110, 110, 110, 110, 110, 110, 110, 110, 110, - 110, 74, 74, 31, 31, 72, 72, 73, 75, 75, - 71, 71, 71, 56, 56, 56, 56, 56, 56, 56, - 58, 58, 58, 76, 76, 77, 77, 78, 78, 79, - 79, 80, 81, 81, 81, 82, 82, 82, 82, 83, - 83, 83, 55, 55, 55, 55, 55, 55, 84, 84, - 84, 84, 85, 85, 66, 66, 68, 68, 67, 69, - 86, 86, 87, 88, 88, 91, 91, 92, 92, 89, - 89, 93, 93, 93, 93, 93, 93, 93, 93, 93, - 93, 94, 94, 94, 95, 95, 98, 98, 99, 99, - 102, 102, 103, 103, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 96, - 96, 96, 96, 96, 96, 96, 96, 96, 96, 97, + 5, 5, 5, 5, 112, 112, 112, 20, 20, 20, + 20, 20, 20, 20, 20, 20, 20, 32, 32, 48, + 48, 21, 22, 22, 22, 22, 148, 23, 24, 24, + 25, 25, 25, 29, 29, 29, 27, 27, 28, 28, + 35, 35, 34, 34, 36, 36, 36, 36, 102, 102, + 102, 101, 101, 38, 38, 39, 39, 40, 40, 41, + 41, 41, 49, 42, 42, 42, 42, 107, 107, 106, + 106, 106, 105, 105, 43, 43, 43, 43, 44, 44, + 44, 44, 45, 45, 47, 47, 46, 46, 50, 50, + 50, 50, 51, 51, 52, 52, 37, 37, 37, 37, + 37, 37, 37, 91, 91, 54, 54, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 64, 64, 64, + 64, 64, 64, 55, 55, 55, 55, 55, 55, 55, + 33, 33, 65, 65, 65, 71, 66, 66, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 58, 58, + 58, 58, 58, 58, 58, 58, 58, 58, 62, 62, + 62, 60, 60, 60, 60, 60, 60, 60, 60, 60, + 61, 61, 61, 61, 61, 61, 61, 61, 149, 149, + 63, 63, 63, 63, 30, 30, 30, 30, 30, 110, + 110, 111, 111, 111, 111, 111, 111, 111, 111, 111, + 111, 111, 111, 111, 75, 75, 31, 31, 73, 73, + 74, 76, 76, 72, 72, 72, 57, 57, 57, 57, + 57, 57, 57, 59, 59, 59, 77, 77, 78, 78, + 79, 79, 80, 80, 81, 82, 82, 82, 83, 83, + 83, 83, 84, 84, 84, 56, 56, 56, 56, 56, + 56, 85, 85, 85, 85, 86, 86, 67, 67, 69, + 69, 68, 70, 87, 87, 88, 89, 89, 92, 92, + 93, 93, 90, 90, 94, 94, 94, 94, 94, 94, + 94, 94, 94, 94, 95, 95, 95, 96, 96, 99, + 99, 100, 100, 103, 103, 104, 104, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 145, 146, 107, 108, 108, - 108, + 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, + 97, 97, 97, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 98, + 98, 98, 98, 98, 98, 98, 98, 98, 98, 146, + 147, 108, 109, 109, 109, } var yyR2 = [...]int{ @@ -1366,36 +1365,37 @@ var yyR2 = [...]int{ 2, 1, 0, 2, 4, 2, 3, 2, 2, 1, 1, 1, 3, 2, 6, 7, 7, 7, 9, 7, 7, 7, 4, 5, 4, 3, 3, 2, 2, 3, - 2, 3, 2, 2, 1, 1, 1, 3, 5, 5, - 5, 5, 3, 3, 6, 3, 0, 3, 2, 2, - 2, 2, 2, 0, 2, 0, 2, 1, 2, 2, - 0, 1, 1, 0, 1, 0, 1, 0, 1, 1, - 3, 1, 2, 3, 5, 0, 1, 2, 1, 1, - 0, 2, 1, 3, 1, 1, 1, 3, 3, 3, - 3, 5, 5, 3, 0, 1, 0, 1, 2, 1, - 1, 1, 2, 2, 1, 2, 3, 2, 3, 2, - 2, 2, 1, 1, 3, 0, 5, 5, 5, 1, - 3, 0, 2, 1, 3, 3, 2, 3, 1, 2, - 0, 3, 1, 1, 3, 3, 4, 4, 5, 3, - 4, 5, 6, 2, 1, 2, 1, 2, 1, 2, - 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, - 1, 1, 3, 1, 3, 1, 1, 1, 1, 1, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, - 3, 1, 1, 1, 1, 4, 5, 6, 4, 4, - 6, 6, 6, 9, 7, 5, 4, 2, 2, 2, - 2, 2, 2, 2, 2, 0, 2, 4, 4, 4, - 4, 0, 3, 4, 7, 3, 1, 1, 2, 3, - 3, 1, 2, 2, 1, 2, 1, 2, 2, 1, - 2, 0, 1, 0, 2, 1, 2, 4, 0, 2, - 1, 3, 5, 1, 1, 1, 1, 1, 1, 1, - 1, 2, 2, 0, 3, 0, 2, 0, 3, 1, - 3, 2, 0, 1, 1, 0, 2, 4, 4, 0, - 2, 4, 2, 1, 3, 5, 4, 6, 1, 3, - 3, 5, 0, 5, 1, 3, 1, 2, 3, 1, - 1, 3, 3, 1, 1, 0, 2, 0, 3, 0, + 2, 3, 2, 2, 1, 1, 1, 3, 5, 6, + 5, 5, 5, 3, 3, 6, 3, 0, 3, 0, + 2, 2, 2, 2, 2, 2, 0, 2, 0, 2, + 1, 2, 2, 0, 1, 1, 0, 1, 0, 1, + 0, 1, 1, 3, 1, 2, 3, 5, 0, 1, + 2, 1, 1, 0, 2, 1, 3, 1, 1, 1, + 3, 3, 3, 3, 5, 5, 3, 0, 1, 0, + 1, 2, 1, 1, 1, 2, 2, 1, 2, 3, + 2, 3, 2, 2, 2, 1, 1, 3, 0, 5, + 5, 5, 1, 3, 0, 2, 1, 3, 3, 2, + 3, 1, 2, 0, 3, 1, 1, 3, 3, 4, + 4, 5, 3, 4, 5, 6, 2, 1, 2, 1, + 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 0, 2, 1, 1, 1, 3, 1, 3, 1, 1, + 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, + 2, 2, 2, 3, 1, 1, 1, 1, 4, 5, + 6, 4, 4, 6, 6, 6, 9, 7, 5, 4, + 2, 2, 2, 2, 2, 2, 2, 2, 0, 2, + 4, 4, 4, 4, 0, 3, 4, 7, 3, 1, + 1, 2, 3, 3, 1, 2, 2, 1, 2, 1, + 2, 2, 1, 2, 0, 1, 0, 2, 1, 2, + 4, 0, 2, 1, 3, 5, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 0, 3, 0, 2, + 0, 3, 1, 3, 2, 0, 1, 1, 0, 2, + 4, 4, 0, 2, 4, 2, 1, 3, 5, 4, + 6, 1, 3, 3, 5, 0, 5, 1, 3, 1, + 2, 3, 1, 1, 3, 3, 1, 1, 0, 2, + 0, 3, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1411,232 +1411,233 @@ var yyR2 = [...]int{ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 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, 0, 1, - 1, + 1, 0, 0, 1, 1, } var yyChk = [...]int{ - -1000, -143, -6, -7, -11, -12, -13, -14, -15, -16, + -1000, -144, -6, -7, -11, -12, -13, -14, -15, -16, -17, -1, -19, -20, -21, -2, -3, -4, -5, -22, - -8, -9, 6, -26, 8, 9, 29, -18, 107, 108, - 109, 131, 111, 124, 47, 209, 126, 215, 218, 219, - 222, 221, 24, 125, 129, 130, -145, 7, 193, 50, - -144, 223, -78, 14, -25, 5, -23, -147, -23, -23, - -23, -107, -137, 50, 185, 115, 114, -89, 118, 114, - 115, 185, 114, 114, -111, 173, 183, 107, 177, 178, - 180, 182, 53, -96, -97, 67, 21, 23, 167, 70, - 102, 15, 71, 152, 155, 101, 194, 45, 186, 187, - 184, 185, 172, 28, 9, 24, 125, 20, 95, 109, - 74, 75, 210, 128, 22, 126, 65, 18, 48, 10, - 12, 13, 119, 118, 86, 115, 43, 7, 103, 25, - 83, 39, 27, 41, 84, 16, 188, 189, 30, 198, - 97, 46, 33, 68, 63, 49, 66, 14, 44, 213, - 212, 85, 110, 193, 42, 6, 197, 29, 124, 40, - 114, 73, 117, 64, 214, 5, 120, 8, 47, 121, - 190, 191, 192, 31, 211, 72, 11, 199, 138, 132, - 160, 151, 149, 62, 127, 147, 143, 141, 26, 165, - 217, 204, 142, 136, 137, 164, 201, 32, 163, 159, - 162, 135, 158, 36, 154, 144, 17, 130, 122, 203, - 140, 129, 35, 169, 134, 156, 145, 146, 161, 133, - 157, 131, 170, 205, 153, 150, 116, 174, 175, 176, - 202, 148, 171, -102, 53, -97, -107, -107, 56, -107, - 220, -107, -107, -107, -107, -107, -107, -7, -82, 16, - 15, -10, -8, -145, 6, 19, 20, -29, 37, 38, - -24, -89, -46, -102, 10, 206, -138, -134, 53, -92, - 119, 53, -92, 114, -91, 119, 53, -91, -46, -46, - -107, 10, 10, 114, 185, -107, -107, 179, -107, -107, - -107, -146, 52, -83, 18, 30, -37, -52, 68, -57, - 28, 22, -56, -53, -71, -69, -70, 102, 91, 92, - 99, 69, 103, -61, -59, -60, -62, 55, 54, 56, - 57, 58, 59, 63, 64, 65, -98, -102, -67, -145, - 41, 42, 194, 195, 198, 196, 71, 31, 184, 192, - 191, 190, 188, 189, 186, 187, 119, 185, 97, 193, - 53, -97, -79, -80, -37, -78, -7, -23, 33, -27, - 20, 61, -47, 25, -46, 29, 104, -46, 15, 52, - 51, -112, -115, -117, -116, -113, -114, 149, 150, 102, - 153, 156, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 127, 145, 146, 147, 148, 132, 133, 134, 135, - 136, 137, 138, 140, 141, 142, 143, 144, -102, 68, - 49, -46, -46, -46, 22, 49, -102, -46, -46, -46, - -46, -32, 10, 8, 86, 67, 66, 83, 51, 17, - -37, -54, 86, 68, 84, 85, 70, 88, 87, 98, - 91, 92, 93, 94, 95, 96, 97, 89, 90, 101, - 76, 77, 78, 79, 80, 81, 82, -90, -145, -70, - -145, 105, 106, -57, -57, -57, -57, -57, -57, -145, - 104, -7, -65, -37, -145, -145, -145, -145, -145, -145, - -145, -74, -37, -145, -148, -145, -148, -148, -148, -148, - -148, -148, -148, -145, -145, -145, -145, 51, -81, 23, - 24, -82, -146, -29, -58, -98, 56, 59, 53, -97, - -28, 40, -55, 29, 31, -7, -145, -46, -86, -87, - -71, -98, -102, -103, -102, -96, 107, 173, 183, -51, - 11, 208, -139, -124, 217, -134, -135, -140, 122, 120, - -136, 115, 27, -130, 63, 68, -126, 170, -118, 50, - -118, -118, -118, -118, -121, 152, -121, -121, -121, 50, - -118, -118, -118, -128, 50, -128, -128, -129, 50, -129, - 22, -46, -93, 110, 217, 194, 112, 109, 113, 108, - 167, 152, 62, 28, 14, 205, 53, -46, -107, -107, - -107, -107, -82, 181, 35, -37, -37, -63, 63, 68, - 64, 65, -37, -37, -57, -64, -67, -70, 60, 86, - 84, 85, 70, -57, -57, -57, -57, -57, -57, -57, - -57, -57, -57, -57, -57, -57, -57, -57, -109, 53, - 55, 53, -56, -56, -98, -35, 20, -34, -36, 93, - -37, -102, -99, -103, -98, -96, -146, 51, -146, -7, - -34, -34, -37, -37, -34, -27, -72, -73, 72, -98, - -146, -34, -35, -34, -34, -80, -83, -88, 18, 10, - 31, 31, -34, -85, 49, -86, -66, -68, -67, -145, - -7, -84, -98, -51, 51, 76, 104, -78, -37, -145, - -125, 167, 76, 50, 27, -136, 53, 53, -119, 28, - 63, -127, 171, 56, -121, -121, -122, 101, 29, -122, - -122, -122, -133, 55, 56, 56, -108, -145, -99, -96, - -107, -94, -95, 117, 21, 115, 27, 76, 117, 123, - 123, 123, -107, 55, 36, 63, 64, 65, -64, -57, - -57, -57, -33, 128, 67, -146, -146, -34, 51, -101, - -100, 21, -98, 55, 104, -145, 104, -37, -146, -146, - -146, 51, 121, 21, -146, -34, -75, -73, 74, -37, - -146, -146, -146, -146, -146, -46, -38, 10, 26, -85, - 51, -146, -146, -146, 51, 104, -78, -87, -37, -99, - -82, 53, -123, 28, 76, 53, -142, -141, -98, 53, - -131, 167, 55, 56, 57, 63, 52, -122, -122, 53, - 53, 102, 52, 51, 51, 52, 51, -46, -107, 53, - 152, -137, 53, -134, -33, 67, -57, -57, -146, -36, - -100, 93, -103, -35, -99, -110, 102, 149, 127, 147, - 143, 164, 154, 169, 145, 170, -109, -110, 199, -78, - 75, -37, 73, -51, -39, -40, -41, -42, -48, -70, - -145, -46, 27, -68, 31, -7, -145, -98, -98, -82, - -146, 155, 56, 52, 51, -118, -132, 122, 27, 120, - 55, 56, 56, 29, -57, 104, -146, -146, -118, -118, - -118, -129, -118, 137, -118, 137, -146, -146, -145, -31, - 197, -37, -76, 12, 51, -43, -44, -45, 39, 43, - 45, 40, 41, 42, 46, -106, 21, -39, -145, -105, - -104, 21, -102, 55, 8, -66, -7, 104, -108, 76, - -141, -120, 62, 27, 27, 52, 52, 53, 93, -121, - 53, -57, -146, 55, -77, 13, 15, -40, -41, -40, - -41, 39, 39, 39, 44, 39, 44, 39, -44, -102, - -146, -49, 47, 118, 48, -104, -86, -146, -98, 53, - 55, -30, 86, 202, -37, -65, 49, 49, 39, 39, - 115, 115, 115, -146, 200, 46, 203, -37, -37, -145, - -145, -145, 36, 201, 204, -50, -98, -50, -50, 36, - -146, 51, -146, -146, 202, -98, 203, 204, + -8, -9, 6, -26, 8, 9, 29, -18, 108, 109, + 110, 132, 112, 125, 48, 210, 127, 216, 219, 220, + 223, 222, 24, 126, 130, 131, -146, 7, 194, 51, + -145, 224, -79, 14, -25, 5, -23, -148, -23, -23, + -23, -108, -138, 51, 186, 116, 115, -90, 119, 115, + 116, 186, 115, 115, -112, 174, 31, 184, 108, 178, + 179, 181, 183, 54, -97, -98, 68, 21, 23, 168, + 71, 103, 15, 72, 153, 156, 102, 195, 46, 187, + 188, 185, 186, 173, 28, 9, 24, 126, 20, 96, + 110, 75, 76, 211, 129, 22, 127, 66, 18, 49, + 10, 12, 13, 120, 119, 87, 116, 44, 7, 104, + 25, 84, 40, 27, 42, 85, 16, 189, 190, 30, + 199, 98, 47, 34, 69, 64, 50, 67, 14, 45, + 214, 213, 86, 111, 194, 43, 6, 198, 29, 125, + 41, 115, 74, 118, 65, 215, 5, 121, 8, 48, + 122, 191, 192, 193, 32, 212, 73, 11, 200, 139, + 133, 161, 152, 150, 63, 128, 148, 144, 142, 26, + 166, 218, 205, 143, 137, 138, 165, 202, 33, 164, + 160, 163, 136, 159, 37, 155, 145, 17, 131, 123, + 204, 141, 130, 36, 170, 135, 157, 146, 147, 162, + 134, 158, 132, 171, 206, 154, 151, 117, 175, 176, + 177, 203, 149, 172, -103, 54, -98, -108, -108, 57, + -108, 221, -108, -108, -108, -108, -108, -108, -7, -83, + 16, 15, -10, -8, -146, 6, 19, 20, -29, 38, + 39, -24, -90, -46, -103, 10, 207, -139, -135, 54, + -93, 120, 54, -93, 115, -92, 120, 54, -92, -46, + -46, -108, 10, 174, 10, 115, 186, -108, -108, 180, + -108, -108, -108, -147, 53, -84, 18, 30, -37, -53, + 69, -58, 28, 22, -57, -54, -72, -70, -71, 103, + 92, 93, 100, 70, 104, -62, -60, -61, -63, 56, + 55, 57, 58, 59, 60, 64, 65, 66, -99, -103, + -68, -146, 42, 43, 195, 196, 199, 197, 72, 32, + 185, 193, 192, 191, 189, 190, 187, 188, 120, 186, + 98, 194, 54, -98, -80, -81, -37, -79, -7, -23, + 34, -27, 20, 62, -47, 25, -46, 29, 105, -46, + 15, 53, 52, -113, -116, -118, -117, -114, -115, 150, + 151, 103, 154, 157, 158, 159, 160, 161, 162, 163, + 164, 165, 166, 128, 146, 147, 148, 149, 133, 134, + 135, 136, 137, 138, 139, 141, 142, 143, 144, 145, + -103, 69, 50, -46, -46, -46, 22, 50, -103, -46, + -48, 10, -46, -46, -46, -32, 10, 8, 87, 68, + 67, 84, 52, 17, -37, -55, 87, 69, 85, 86, + 71, 89, 88, 99, 92, 93, 94, 95, 96, 97, + 98, 90, 91, 102, 77, 78, 79, 80, 81, 82, + 83, -91, -146, -71, -146, 106, 107, -58, -58, -58, + -58, -58, -58, -146, 105, -7, -66, -37, -146, -146, + -146, -146, -146, -146, -146, -75, -37, -146, -149, -146, + -149, -149, -149, -149, -149, -149, -149, -146, -146, -146, + -146, 52, -82, 23, 24, -83, -147, -29, -59, -99, + 57, 60, 54, -98, -28, 41, -56, 29, 32, -7, + -146, -46, -87, -88, -72, -99, -103, -104, -103, -97, + 108, 31, 174, 184, -52, 11, 209, -140, -125, 218, + -135, -136, -141, 123, 121, -137, 116, 27, -131, 64, + 69, -127, 171, -119, 51, -119, -119, -119, -119, -122, + 153, -122, -122, -122, 51, -119, -119, -119, -129, 51, + -129, -129, -130, 51, -130, 22, -46, -94, 111, 218, + 195, 113, 110, 114, 109, 168, 153, 63, 28, 14, + 206, 54, -46, -108, -52, -46, -108, -108, -108, -83, + 182, 36, -37, -37, -64, 64, 69, 65, 66, -37, + -37, -58, -65, -68, -71, 61, 87, 85, 86, 71, + -58, -58, -58, -58, -58, -58, -58, -58, -58, -58, + -58, -58, -58, -58, -58, -110, 54, 56, 54, -57, + -57, -99, -35, 20, -34, -36, 94, -37, -103, -100, + -104, -99, -97, -147, 52, -147, -7, -34, -34, -37, + -37, -34, -27, -73, -74, 73, -99, -147, -34, -35, + -34, -34, -81, -84, -89, 18, 10, 32, 32, -34, + -86, 50, -87, -67, -69, -68, -146, -7, -85, -99, + -52, 52, 77, 105, -79, -37, -146, -126, 168, 77, + 51, 27, -137, 54, 54, -120, 28, 64, -128, 172, + 57, -122, -122, -123, 102, 29, -123, -123, -123, -134, + 56, 57, 57, -109, -146, -100, -97, -108, -95, -96, + 118, 21, 116, 27, 77, 118, 124, 124, 124, -108, + -108, 56, 37, 64, 65, 66, -65, -58, -58, -58, + -33, 129, 68, -147, -147, -34, 52, -102, -101, 21, + -99, 56, 105, -146, 105, -37, -147, -147, -147, 52, + 122, 21, -147, -34, -76, -74, 75, -37, -147, -147, + -147, -147, -147, -46, -38, 10, 26, -86, 52, -147, + -147, -147, 52, 105, -79, -88, -37, -100, -83, 54, + -124, 28, 77, 54, -143, -142, -99, 54, -132, 168, + 56, 57, 58, 64, 53, -123, -123, 54, 54, 103, + 53, 52, 52, 53, 52, -46, -108, 54, 153, -138, + 54, -135, -33, 68, -58, -58, -147, -36, -101, 94, + -104, -35, -100, -111, 103, 150, 128, 148, 144, 165, + 155, 170, 146, 171, -110, -111, 200, -79, 76, -37, + 74, -52, -39, -40, -41, -42, -49, -71, -146, -46, + 27, -69, 32, -7, -146, -99, -99, -83, -147, 156, + 57, 53, 52, -119, -133, 123, 27, 121, 56, 57, + 57, 29, -58, 105, -147, -147, -119, -119, -119, -130, + -119, 138, -119, 138, -147, -147, -146, -31, 198, -37, + -77, 12, 52, -43, -44, -45, 40, 44, 46, 41, + 42, 43, 47, -107, 21, -39, -146, -106, -105, 21, + -103, 56, 8, -67, -7, 105, -109, 77, -142, -121, + 63, 27, 27, 53, 53, 54, 94, -122, 54, -58, + -147, 56, -78, 13, 15, -40, -41, -40, -41, 40, + 40, 40, 45, 40, 45, 40, -44, -103, -147, -50, + 48, 119, 49, -105, -87, -147, -99, 54, 56, -30, + 87, 203, -37, -66, 50, 50, 40, 40, 116, 116, + 116, -147, 201, 47, 204, -37, -37, -146, -146, -146, + 37, 202, 205, -51, -99, -51, -51, 37, -147, 52, + -147, -147, 203, -99, 204, 205, } var yyDef = [...]int{ 0, -2, 2, -2, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 387, 0, 173, 173, 173, 173, 607, 0, 0, 429, - 0, 0, 0, 0, 0, 607, 607, 0, 607, 0, - 607, 607, 607, 607, 607, 607, 0, 31, 32, 605, - 1, 3, 395, 0, 0, 177, 180, 175, 429, 0, - 0, 35, 36, 0, 427, 0, 427, 0, 430, 425, - 0, 425, 0, 0, 607, 531, 532, 466, 607, 607, - 0, 607, 154, 155, 156, 454, 455, 456, 457, 458, - 459, 460, 461, 462, 463, 464, 465, 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, 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, 168, 450, 451, 147, 148, 607, 150, - 607, 152, 153, 169, 170, 171, 172, 25, 399, 0, - 0, 387, 27, 0, 173, 178, 179, 183, 181, 182, - 174, 0, 0, 233, 0, 0, 0, 49, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 145, 146, - 157, 0, 0, 0, 0, 162, 163, 166, 165, 149, - 151, 26, 606, 21, 0, 0, 396, 243, 0, 248, - 250, 0, 285, 286, 287, 288, 289, 0, 0, 0, - 0, 0, 0, 311, 312, 313, 314, 373, 374, 375, - 376, 377, 378, 379, 252, 253, 370, 0, 419, 0, - 0, 0, 0, 0, 0, 0, 361, 0, 335, 335, - 335, 335, 335, 335, 335, 335, 0, 0, 0, 0, - -2, -2, 388, 389, 392, 395, 25, 180, 0, 185, - 184, 176, 0, 0, 232, 0, 0, 241, 0, 43, - 0, 102, 98, 54, 55, 91, 57, 91, 91, 91, - 91, 112, 112, 112, 112, 83, 84, 85, 86, 87, - 0, 70, 91, 91, 91, 74, 58, 59, 60, 61, - 62, 63, 64, 93, 93, 93, 95, 95, 38, 0, - 0, 40, 0, 142, 426, 0, 144, 607, 607, 607, - 607, 395, 0, 400, 0, 0, 0, 0, 0, 0, - 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 390, 0, 176, 176, 176, 176, 611, 0, 0, 432, + 0, 0, 0, 0, 0, 611, 611, 0, 611, 0, + 611, 611, 611, 611, 611, 611, 0, 31, 32, 609, + 1, 3, 398, 0, 0, 180, 183, 178, 432, 0, + 0, 35, 36, 0, 430, 0, 430, 0, 433, 428, + 0, 428, 0, 0, 611, 535, 493, 536, 469, 611, + 611, 0, 611, 154, 155, 156, 457, 458, 459, 460, + 461, 462, 463, 464, 465, 466, 467, 468, 470, 471, + 472, 473, 474, 475, 476, 477, 478, 479, 480, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 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, 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, 171, 453, 454, 147, 148, 611, + 150, 611, 152, 153, 172, 173, 174, 175, 25, 402, + 0, 0, 390, 27, 0, 176, 181, 182, 186, 184, + 185, 177, 0, 0, 236, 0, 0, 0, 49, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 145, + 146, 157, 0, 169, 0, 0, 0, 163, 164, 167, + 166, 149, 151, 26, 610, 21, 0, 0, 399, 246, + 0, 251, 253, 0, 288, 289, 290, 291, 292, 0, + 0, 0, 0, 0, 0, 314, 315, 316, 317, 376, + 377, 378, 379, 380, 381, 382, 255, 256, 373, 0, + 422, 0, 0, 0, 0, 0, 0, 0, 364, 0, + 338, 338, 338, 338, 338, 338, 338, 338, 0, 0, + 0, 0, -2, -2, 391, 392, 395, 398, 25, 183, + 0, 188, 187, 179, 0, 0, 235, 0, 0, 244, + 0, 43, 0, 102, 98, 54, 55, 91, 57, 91, + 91, 91, 91, 112, 112, 112, 112, 83, 84, 85, + 86, 87, 0, 70, 91, 91, 91, 74, 58, 59, + 60, 61, 62, 63, 64, 93, 93, 93, 95, 95, + 38, 0, 0, 40, 0, 142, 429, 0, 144, 611, + 244, 0, 611, 611, 611, 398, 0, 403, 0, 0, + 0, 0, 0, 0, 249, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 270, 271, 272, 273, 274, 275, 276, 249, 0, 263, - 0, 0, 0, 305, 306, 307, 308, 309, 0, 187, - 0, 25, 0, 283, 0, 0, 0, 0, 0, 0, - 183, 0, 362, 0, 327, 0, 328, 329, 330, 331, - 332, 333, 334, 0, 187, 0, 0, 0, 391, 393, - 394, 399, 28, 183, 0, 380, 0, 0, 446, 447, - 0, 186, 412, 0, 0, -2, 0, 231, 241, 420, - 0, 370, 0, 234, 452, 453, 466, 531, 532, 387, - 0, 0, 41, 47, 0, 50, 51, 0, 0, 0, - 0, 129, 130, 105, 103, 0, 100, 99, 56, 0, - 112, 112, 77, 78, 115, 0, 115, 115, 115, 0, - 71, 72, 73, 65, 0, 66, 67, 68, 0, 69, - 428, 608, 607, 441, 0, 438, 0, 436, 0, 431, - 432, 433, 434, 435, 437, 439, 440, 143, 158, 159, - 160, 161, 607, 0, 0, 244, 245, 247, 264, 0, - 266, 268, 397, 398, 254, 255, 279, 280, 281, 0, - 0, 0, 0, 277, 259, 0, 290, 291, 292, 293, - 294, 295, 296, 297, 298, 299, 300, 301, 304, 346, - 347, 0, 302, 303, 310, 0, 0, 188, 189, 191, - 195, 0, 371, 0, 448, -2, 282, 0, 418, 25, - 0, 0, 0, 0, 0, 0, 368, 365, 0, 0, - 336, 0, 0, 0, 0, 390, 22, 0, 423, 424, - 381, 382, 200, 29, 0, 412, 402, 414, 416, 0, - 25, 0, 408, 387, 0, 0, 0, 395, 242, 0, - 45, 0, 0, 0, 125, 0, 127, 128, 110, 0, - 104, 53, 101, 0, 115, 115, 79, 0, 0, 80, - 81, 82, 0, 89, 0, 0, 39, 609, 610, 449, - 134, 0, 607, 442, 443, 444, 445, 0, 0, 0, - 0, 0, 164, 167, 401, 265, 267, 269, 256, 277, - 260, 0, 257, 0, 0, 251, 315, 0, 0, 192, - 196, 0, 198, 199, 0, 187, 0, 284, -2, 318, - 319, 0, 0, 0, 0, 387, 0, 366, 0, 0, - 326, 337, 338, 339, 340, 23, 241, 0, 0, 30, - 0, 417, -2, 0, 0, 0, 395, 421, 422, 371, - 34, 0, 42, 0, 0, 44, 0, 131, 91, 126, - 117, 111, 106, 107, 108, 109, 92, 75, 76, 116, - 113, 114, 88, 0, 0, 96, 0, 135, 136, 137, - 0, 139, 140, 141, 258, 0, 278, 261, 316, 190, - 197, 193, 0, 0, 372, 0, 91, 91, 351, 91, - 95, 354, 91, 356, 91, 359, 0, 0, 0, 363, - 325, 369, 0, 383, 201, 202, 204, 205, 206, 214, - 0, 216, 0, 415, 0, -2, 0, 410, 409, 33, - 608, 0, 48, 124, 0, 133, 122, 0, 119, 121, - 90, 0, 0, 0, 262, 0, 317, 320, 348, 112, - 352, 353, 355, 357, 358, 360, 322, 321, 0, 0, - 0, 367, 385, 0, 0, 0, 0, 0, 221, 0, - 0, 224, 0, 0, 0, 0, 215, 0, 0, 235, - 217, 0, 219, 220, 0, 405, 25, 0, 37, 0, - 132, 52, 0, 118, 120, 94, 97, 138, 194, 349, - 350, 341, 324, 364, 24, 0, 0, 203, 210, 0, - 213, 222, 223, 225, 0, 227, 0, 229, 230, 207, - 208, 209, 0, 0, 0, 218, 413, -2, 411, 46, - 123, 0, 0, 0, 386, 384, 0, 0, 226, 228, - 0, 0, 0, 323, 0, 0, 0, 211, 212, 0, - 0, 0, 342, 0, 345, 0, 239, 0, 0, 343, - 236, 0, 237, 238, 0, 240, 0, 344, + 0, 0, 0, 0, 273, 274, 275, 276, 277, 278, + 279, 252, 0, 266, 0, 0, 0, 308, 309, 310, + 311, 312, 0, 190, 0, 25, 0, 286, 0, 0, + 0, 0, 0, 0, 186, 0, 365, 0, 330, 0, + 331, 332, 333, 334, 335, 336, 337, 0, 190, 0, + 0, 0, 394, 396, 397, 402, 28, 186, 0, 383, + 0, 0, 449, 450, 0, 189, 415, 0, 0, -2, + 0, 234, 244, 423, 0, 373, 0, 237, 455, 456, + 469, 493, 535, 536, 390, 0, 0, 41, 47, 0, + 50, 51, 0, 0, 0, 0, 129, 130, 105, 103, + 0, 100, 99, 56, 0, 112, 112, 77, 78, 115, + 0, 115, 115, 115, 0, 71, 72, 73, 65, 0, + 66, 67, 68, 0, 69, 431, 612, 611, 444, 0, + 441, 0, 439, 0, 434, 435, 436, 437, 438, 440, + 442, 443, 143, 158, 611, 170, 160, 161, 162, 611, + 0, 0, 247, 248, 250, 267, 0, 269, 271, 400, + 401, 257, 258, 282, 283, 284, 0, 0, 0, 0, + 280, 262, 0, 293, 294, 295, 296, 297, 298, 299, + 300, 301, 302, 303, 304, 307, 349, 350, 0, 305, + 306, 313, 0, 0, 191, 192, 194, 198, 0, 374, + 0, 451, -2, 285, 0, 421, 25, 0, 0, 0, + 0, 0, 0, 371, 368, 0, 0, 339, 0, 0, + 0, 0, 393, 22, 0, 426, 427, 384, 385, 203, + 29, 0, 415, 405, 417, 419, 0, 25, 0, 411, + 390, 0, 0, 0, 398, 245, 0, 45, 0, 0, + 0, 125, 0, 127, 128, 110, 0, 104, 53, 101, + 0, 115, 115, 79, 0, 0, 80, 81, 82, 0, + 89, 0, 0, 39, 613, 614, 452, 134, 0, 611, + 445, 446, 447, 448, 0, 0, 0, 0, 0, 159, + 165, 168, 404, 268, 270, 272, 259, 280, 263, 0, + 260, 0, 0, 254, 318, 0, 0, 195, 199, 0, + 201, 202, 0, 190, 0, 287, -2, 321, 322, 0, + 0, 0, 0, 390, 0, 369, 0, 0, 329, 340, + 341, 342, 343, 23, 244, 0, 0, 30, 0, 420, + -2, 0, 0, 0, 398, 424, 425, 374, 34, 0, + 42, 0, 0, 44, 0, 131, 91, 126, 117, 111, + 106, 107, 108, 109, 92, 75, 76, 116, 113, 114, + 88, 0, 0, 96, 0, 135, 136, 137, 0, 139, + 140, 141, 261, 0, 281, 264, 319, 193, 200, 196, + 0, 0, 375, 0, 91, 91, 354, 91, 95, 357, + 91, 359, 91, 362, 0, 0, 0, 366, 328, 372, + 0, 386, 204, 205, 207, 208, 209, 217, 0, 219, + 0, 418, 0, -2, 0, 413, 412, 33, 612, 0, + 48, 124, 0, 133, 122, 0, 119, 121, 90, 0, + 0, 0, 265, 0, 320, 323, 351, 112, 355, 356, + 358, 360, 361, 363, 325, 324, 0, 0, 0, 370, + 388, 0, 0, 0, 0, 0, 224, 0, 0, 227, + 0, 0, 0, 0, 218, 0, 0, 238, 220, 0, + 222, 223, 0, 408, 25, 0, 37, 0, 132, 52, + 0, 118, 120, 94, 97, 138, 197, 352, 353, 344, + 327, 367, 24, 0, 0, 206, 213, 0, 216, 225, + 226, 228, 0, 230, 0, 232, 233, 210, 211, 212, + 0, 0, 0, 221, 416, -2, 414, 46, 123, 0, + 0, 0, 389, 387, 0, 0, 229, 231, 0, 0, + 0, 326, 0, 0, 0, 214, 215, 0, 0, 0, + 345, 0, 348, 0, 242, 0, 0, 346, 239, 0, + 240, 241, 0, 243, 0, 347, } var yyTok1 = [...]int{ 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 69, 3, 3, 3, 96, 88, 3, - 50, 52, 93, 91, 51, 92, 104, 94, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 223, - 77, 76, 78, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 70, 3, 3, 3, 97, 89, 3, + 51, 53, 94, 92, 52, 93, 105, 95, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 224, + 78, 77, 79, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 98, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 99, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 87, 3, 99, + 3, 3, 3, 3, 88, 3, 100, } var yyTok2 = [...]int{ @@ -1644,11 +1645,11 @@ var yyTok2 = [...]int{ 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, 53, 54, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, - 65, 66, 67, 68, 70, 71, 72, 73, 74, 75, - 79, 80, 81, 82, 83, 84, 85, 86, 89, 90, - 95, 97, 100, 101, 102, 103, 105, 106, 107, 108, + 65, 66, 67, 68, 69, 71, 72, 73, 74, 75, + 76, 80, 81, 82, 83, 84, 85, 86, 87, 90, + 91, 96, 98, 101, 102, 103, 104, 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, @@ -1660,7 +1661,7 @@ var yyTok2 = [...]int{ 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, + 219, 220, 221, 222, 223, } var yyTok3 = [...]int{ 0, @@ -2919,411 +2920,429 @@ yydefault: yyVAL.statement = &Show{Type: ShowTablesStr, Database: yyDollar[4].tableName} } case 159: - yyDollar = yyS[yypt-5 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:1012 { - yyVAL.statement = &Show{Type: ShowColumnsStr, Table: yyDollar[4].tableName} + yyVAL.statement = &Show{Type: ShowFullTablesStr, Database: yyDollar[4].tableName, Where: NewWhere(WhereStr, yyDollar[5].expr)} } case 160: yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:1016 { - yyVAL.statement = &Show{Type: ShowCreateTableStr, Table: yyDollar[4].tableName} + yyVAL.statement = &Show{Type: ShowColumnsStr, Table: yyDollar[4].tableName} } case 161: yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:1020 { - yyVAL.statement = &Show{Type: ShowCreateDatabaseStr, Database: yyDollar[4].tableName} + yyVAL.statement = &Show{Type: ShowCreateTableStr, Table: yyDollar[4].tableName} } case 162: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:1024 { - yyVAL.statement = &Show{Type: ShowWarningsStr} + yyVAL.statement = &Show{Type: ShowCreateDatabaseStr, Database: yyDollar[4].tableName} } case 163: yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1028 { - yyVAL.statement = &Show{Type: ShowVariablesStr} + yyVAL.statement = &Show{Type: ShowWarningsStr} } case 164: - yyDollar = yyS[yypt-6 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] //line sql.y:1032 { - yyVAL.statement = &Show{Type: ShowBinlogEventsStr, From: yyDollar[4].str, Limit: yyDollar[5].limit} + yyVAL.statement = &Show{Type: ShowVariablesStr} } case 165: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-6 : yypt+1] //line sql.y:1036 { - yyVAL.statement = &Show{Type: ShowStatusStr} + yyVAL.statement = &Show{Type: ShowBinlogEventsStr, From: yyDollar[4].str, Limit: yyDollar[5].limit} } case 166: + yyDollar = yyS[yypt-3 : yypt+1] + //line sql.y:1040 + { + yyVAL.statement = &Show{Type: ShowStatusStr} + } + case 167: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1041 + //line sql.y:1045 { yyVAL.str = "" } - case 167: + case 168: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1045 + //line sql.y:1049 { yyVAL.str = string(yyDollar[3].bytes) } - case 168: + case 169: + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:1054 + { + yyVAL.tableName = TableName{} + } + case 170: + yyDollar = yyS[yypt-2 : yypt+1] + //line sql.y:1058 + { + yyVAL.tableName = yyDollar[2].tableName + } + case 171: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1051 + //line sql.y:1064 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } - case 169: + case 172: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1057 + //line sql.y:1070 { yyVAL.statement = &OtherRead{} } - case 170: + case 173: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1061 + //line sql.y:1074 { yyVAL.statement = &OtherRead{} } - case 171: + case 174: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1065 + //line sql.y:1078 { yyVAL.statement = &OtherAdmin{} } - case 172: + case 175: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1069 + //line sql.y:1082 { yyVAL.statement = &OtherAdmin{} } - case 173: + case 176: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1074 + //line sql.y:1087 { setAllowComments(yylex, true) } - case 174: + case 177: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1078 + //line sql.y:1091 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } - case 175: + case 178: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1084 + //line sql.y:1097 { yyVAL.bytes2 = nil } - case 176: + case 179: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1088 + //line sql.y:1101 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } - case 177: + case 180: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1094 + //line sql.y:1107 { yyVAL.str = UnionStr } - case 178: + case 181: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1098 + //line sql.y:1111 { yyVAL.str = UnionAllStr } - case 179: + case 182: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1102 + //line sql.y:1115 { yyVAL.str = UnionDistinctStr } - case 180: + case 183: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1107 + //line sql.y:1120 { yyVAL.str = "" } - case 181: + case 184: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1111 + //line sql.y:1124 { yyVAL.str = SQLNoCacheStr } - case 182: + case 185: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1115 + //line sql.y:1128 { yyVAL.str = SQLCacheStr } - case 183: + case 186: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1120 + //line sql.y:1133 { yyVAL.str = "" } - case 184: + case 187: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1124 + //line sql.y:1137 { yyVAL.str = DistinctStr } - case 185: + case 188: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1129 + //line sql.y:1142 { yyVAL.str = "" } - case 186: + case 189: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1133 + //line sql.y:1146 { yyVAL.str = StraightJoinHint } - case 187: + case 190: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1138 + //line sql.y:1151 { yyVAL.selectExprs = nil } - case 188: + case 191: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1142 + //line sql.y:1155 { yyVAL.selectExprs = yyDollar[1].selectExprs } - case 189: + case 192: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1148 + //line sql.y:1161 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } - case 190: + case 193: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1152 + //line sql.y:1165 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } - case 191: + case 194: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1158 + //line sql.y:1171 { yyVAL.selectExpr = &StarExpr{} } - case 192: + case 195: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1162 + //line sql.y:1175 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } - case 193: + case 196: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1166 + //line sql.y:1179 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } - case 194: + case 197: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1170 + //line sql.y:1183 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } - case 195: + case 198: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1175 + //line sql.y:1188 { yyVAL.colIdent = ColIdent{} } - case 196: + case 199: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1179 + //line sql.y:1192 { yyVAL.colIdent = yyDollar[1].colIdent } - case 197: + case 200: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1183 + //line sql.y:1196 { yyVAL.colIdent = yyDollar[2].colIdent } - case 199: + case 202: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1190 + //line sql.y:1203 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 200: + case 203: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1195 + //line sql.y:1208 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } - case 201: + case 204: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1199 + //line sql.y:1212 { yyVAL.tableExprs = yyDollar[2].tableExprs } - case 202: + case 205: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1205 + //line sql.y:1218 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } - case 203: + case 206: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1209 + //line sql.y:1222 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } - case 206: + case 209: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1219 + //line sql.y:1232 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } - case 207: + case 210: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1223 + //line sql.y:1236 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } - case 208: + case 211: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1227 + //line sql.y:1240 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } - case 209: + case 212: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1233 + //line sql.y:1246 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } - case 210: + case 213: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1246 + //line sql.y:1259 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 211: + case 214: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1250 + //line sql.y:1263 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} } - case 212: + case 215: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1254 + //line sql.y:1267 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, On: yyDollar[5].expr} } - case 213: + case 216: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1258 + //line sql.y:1271 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } - case 214: + case 217: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1263 + //line sql.y:1276 { yyVAL.empty = struct{}{} } - case 215: + case 218: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1265 + //line sql.y:1278 { yyVAL.empty = struct{}{} } - case 216: + case 219: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1268 + //line sql.y:1281 { yyVAL.tableIdent = NewTableIdent("") } - case 217: + case 220: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1272 + //line sql.y:1285 { yyVAL.tableIdent = yyDollar[1].tableIdent } - case 218: + case 221: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1276 + //line sql.y:1289 { yyVAL.tableIdent = yyDollar[2].tableIdent } - case 220: + case 223: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1283 + //line sql.y:1296 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 221: + case 224: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1289 + //line sql.y:1302 { yyVAL.str = JoinStr } - case 222: + case 225: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1293 + //line sql.y:1306 { yyVAL.str = JoinStr } - case 223: + case 226: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1297 + //line sql.y:1310 { yyVAL.str = JoinStr } - case 224: + case 227: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1301 + //line sql.y:1314 { yyVAL.str = StraightJoinStr } - case 225: + case 228: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1307 + //line sql.y:1320 { yyVAL.str = LeftJoinStr } - case 226: + case 229: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1311 + //line sql.y:1324 { yyVAL.str = LeftJoinStr } - case 227: + case 230: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1315 + //line sql.y:1328 { yyVAL.str = RightJoinStr } - case 228: + case 231: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1319 + //line sql.y:1332 { yyVAL.str = RightJoinStr } - case 229: + case 232: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1325 + //line sql.y:1338 { yyVAL.str = NaturalJoinStr } - case 230: + case 233: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1329 + //line sql.y:1342 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -3331,459 +3350,459 @@ yydefault: yyVAL.str = NaturalRightJoinStr } } - case 231: + case 234: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1339 + //line sql.y:1352 { yyVAL.tableName = yyDollar[2].tableName } - case 232: + case 235: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1343 + //line sql.y:1356 { yyVAL.tableName = yyDollar[1].tableName } - case 233: + case 236: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1349 + //line sql.y:1362 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } - case 234: + case 237: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1353 + //line sql.y:1366 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } - case 235: + case 238: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1358 + //line sql.y:1371 { yyVAL.indexHints = nil } - case 236: + case 239: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1362 + //line sql.y:1375 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].colIdents} } - case 237: + case 240: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1366 + //line sql.y:1379 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].colIdents} } - case 238: + case 241: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1370 + //line sql.y:1383 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].colIdents} } - case 239: + case 242: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1376 + //line sql.y:1389 { yyVAL.colIdents = []ColIdent{yyDollar[1].colIdent} } - case 240: + case 243: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1380 + //line sql.y:1393 { yyVAL.colIdents = append(yyDollar[1].colIdents, yyDollar[3].colIdent) } - case 241: + case 244: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1385 + //line sql.y:1398 { yyVAL.expr = nil } - case 242: + case 245: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1389 + //line sql.y:1402 { yyVAL.expr = yyDollar[2].expr } - case 243: + case 246: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1395 + //line sql.y:1408 { yyVAL.expr = yyDollar[1].expr } - case 244: + case 247: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1399 + //line sql.y:1412 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 245: + case 248: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1403 + //line sql.y:1416 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } - case 246: + case 249: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1407 + //line sql.y:1420 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } - case 247: + case 250: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1411 + //line sql.y:1424 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } - case 248: + case 251: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1415 + //line sql.y:1428 { yyVAL.expr = yyDollar[1].expr } - case 249: + case 252: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1419 + //line sql.y:1432 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } - case 250: + case 253: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1425 + //line sql.y:1438 { yyVAL.str = "" } - case 251: + case 254: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1429 + //line sql.y:1442 { yyVAL.str = string(yyDollar[2].bytes) } - case 252: + case 255: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1435 + //line sql.y:1448 { yyVAL.boolVal = BoolVal(true) } - case 253: + case 256: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1439 + //line sql.y:1452 { yyVAL.boolVal = BoolVal(false) } - case 254: + case 257: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1445 + //line sql.y:1458 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } - case 255: + case 258: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1449 + //line sql.y:1462 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } - case 256: + case 259: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1453 + //line sql.y:1466 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } - case 257: + case 260: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1457 + //line sql.y:1470 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } - case 258: + case 261: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1461 + //line sql.y:1474 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } - case 259: + case 262: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1465 + //line sql.y:1478 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } - case 260: + case 263: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1469 + //line sql.y:1482 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } - case 261: + case 264: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1473 + //line sql.y:1486 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } - case 262: + case 265: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1477 + //line sql.y:1490 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } - case 263: + case 266: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1481 + //line sql.y:1494 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } - case 264: + case 267: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1487 + //line sql.y:1500 { yyVAL.str = IsNullStr } - case 265: + case 268: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1491 + //line sql.y:1504 { yyVAL.str = IsNotNullStr } - case 266: + case 269: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1495 + //line sql.y:1508 { yyVAL.str = IsTrueStr } - case 267: + case 270: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1499 + //line sql.y:1512 { yyVAL.str = IsNotTrueStr } - case 268: + case 271: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1503 + //line sql.y:1516 { yyVAL.str = IsFalseStr } - case 269: + case 272: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1507 + //line sql.y:1520 { yyVAL.str = IsNotFalseStr } - case 270: + case 273: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1513 + //line sql.y:1526 { yyVAL.str = EqualStr } - case 271: + case 274: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1517 + //line sql.y:1530 { yyVAL.str = LessThanStr } - case 272: + case 275: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1521 + //line sql.y:1534 { yyVAL.str = GreaterThanStr } - case 273: + case 276: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1525 + //line sql.y:1538 { yyVAL.str = LessEqualStr } - case 274: + case 277: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1529 + //line sql.y:1542 { yyVAL.str = GreaterEqualStr } - case 275: + case 278: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1533 + //line sql.y:1546 { yyVAL.str = NotEqualStr } - case 276: + case 279: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1537 + //line sql.y:1550 { yyVAL.str = NullSafeEqualStr } - case 277: + case 280: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1542 + //line sql.y:1555 { yyVAL.expr = nil } - case 278: + case 281: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1546 + //line sql.y:1559 { yyVAL.expr = yyDollar[2].expr } - case 279: + case 282: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1552 + //line sql.y:1565 { yyVAL.colTuple = yyDollar[1].valTuple } - case 280: + case 283: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1556 + //line sql.y:1569 { yyVAL.colTuple = yyDollar[1].subquery } - case 281: + case 284: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1560 + //line sql.y:1573 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } - case 282: + case 285: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1566 + //line sql.y:1579 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } - case 283: + case 286: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1572 + //line sql.y:1585 { yyVAL.exprs = Exprs{yyDollar[1].expr} } - case 284: + case 287: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1576 + //line sql.y:1589 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } - case 285: + case 288: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1582 + //line sql.y:1595 { yyVAL.expr = yyDollar[1].expr } - case 286: + case 289: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1586 + //line sql.y:1599 { yyVAL.expr = yyDollar[1].boolVal } - case 287: + case 290: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1590 + //line sql.y:1603 { yyVAL.expr = yyDollar[1].colName } - case 288: + case 291: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1594 + //line sql.y:1607 { yyVAL.expr = yyDollar[1].expr } - case 289: + case 292: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1598 + //line sql.y:1611 { yyVAL.expr = yyDollar[1].subquery } - case 290: + case 293: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1602 + //line sql.y:1615 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } - case 291: + case 294: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1606 + //line sql.y:1619 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } - case 292: + case 295: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1610 + //line sql.y:1623 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } - case 293: + case 296: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1614 + //line sql.y:1627 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } - case 294: + case 297: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1618 + //line sql.y:1631 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } - case 295: + case 298: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1622 + //line sql.y:1635 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } - case 296: + case 299: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1626 + //line sql.y:1639 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } - case 297: + case 300: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1630 + //line sql.y:1643 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } - case 298: + case 301: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1634 + //line sql.y:1647 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 299: + case 302: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1638 + //line sql.y:1651 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } - case 300: + case 303: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1642 + //line sql.y:1655 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } - case 301: + case 304: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1646 + //line sql.y:1659 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } - case 302: + case 305: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1650 + //line sql.y:1663 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } - case 303: + case 306: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1654 + //line sql.y:1667 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } - case 304: + case 307: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1658 + //line sql.y:1671 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } - case 305: + case 308: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1662 + //line sql.y:1675 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } - case 306: + case 309: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1666 + //line sql.y:1679 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -3791,9 +3810,9 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UPlusStr, Expr: yyDollar[2].expr} } } - case 307: + case 310: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1674 + //line sql.y:1687 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -3807,21 +3826,21 @@ yydefault: yyVAL.expr = &UnaryExpr{Operator: UMinusStr, Expr: yyDollar[2].expr} } } - case 308: + case 311: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1688 + //line sql.y:1701 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } - case 309: + case 312: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1692 + //line sql.y:1705 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } - case 310: + case 313: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1696 + //line sql.y:1709 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -3829,389 +3848,389 @@ yydefault: // will be non-trivial because of grammar conflicts. yyVAL.expr = &IntervalExpr{Expr: yyDollar[2].expr, Unit: yyDollar[3].colIdent} } - case 315: + case 318: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1714 + //line sql.y:1727 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } - case 316: + case 319: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1718 + //line sql.y:1731 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } - case 317: + case 320: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1722 + //line sql.y:1735 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } - case 318: + case 321: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1732 + //line sql.y:1745 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } - case 319: + case 322: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1736 + //line sql.y:1749 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } - case 320: + case 323: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1740 + //line sql.y:1753 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 321: + case 324: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1744 + //line sql.y:1757 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } - case 322: + case 325: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:1748 + //line sql.y:1761 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } - case 323: + case 326: yyDollar = yyS[yypt-9 : yypt+1] - //line sql.y:1752 + //line sql.y:1765 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } - case 324: + case 327: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1756 + //line sql.y:1769 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } - case 325: + case 328: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1760 + //line sql.y:1773 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } - case 326: + case 329: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1764 + //line sql.y:1777 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colIdent} } - case 327: + case 330: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1774 + //line sql.y:1787 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } - case 328: + case 331: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1778 + //line sql.y:1791 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } - case 329: + case 332: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1782 + //line sql.y:1795 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } - case 330: + case 333: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1786 + //line sql.y:1799 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } - case 331: + case 334: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1791 + //line sql.y:1804 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } - case 332: + case 335: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1796 + //line sql.y:1809 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } - case 333: + case 336: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1801 + //line sql.y:1814 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } - case 334: + case 337: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1806 + //line sql.y:1819 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } - case 337: + case 340: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1820 + //line sql.y:1833 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } - case 338: + case 341: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1824 + //line sql.y:1837 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } - case 339: + case 342: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1828 + //line sql.y:1841 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } - case 340: + case 343: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1832 + //line sql.y:1845 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } - case 341: + case 344: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1838 + //line sql.y:1851 { yyVAL.str = "" } - case 342: + case 345: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1842 + //line sql.y:1855 { yyVAL.str = BooleanModeStr } - case 343: + case 346: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1846 + //line sql.y:1859 { yyVAL.str = NaturalLanguageModeStr } - case 344: + case 347: yyDollar = yyS[yypt-7 : yypt+1] - //line sql.y:1850 + //line sql.y:1863 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } - case 345: + case 348: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1854 + //line sql.y:1867 { yyVAL.str = QueryExpansionStr } - case 346: + case 349: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1860 + //line sql.y:1873 { yyVAL.str = string(yyDollar[1].bytes) } - case 347: + case 350: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1864 + //line sql.y:1877 { yyVAL.str = string(yyDollar[1].bytes) } - case 348: + case 351: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1870 + //line sql.y:1883 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 349: + case 352: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1874 + //line sql.y:1887 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } - case 350: + case 353: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1878 + //line sql.y:1891 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal, Charset: string(yyDollar[3].bytes)} } - case 351: + case 354: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1882 + //line sql.y:1895 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 352: + case 355: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1886 + //line sql.y:1899 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 353: + case 356: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1890 + //line sql.y:1903 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length yyVAL.convertType.Scale = yyDollar[2].LengthScaleOption.Scale } - case 354: + case 357: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1896 + //line sql.y:1909 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 355: + case 358: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1900 + //line sql.y:1913 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 356: + case 359: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1904 + //line sql.y:1917 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 357: + case 360: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1908 + //line sql.y:1921 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 358: + case 361: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1912 + //line sql.y:1925 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].optVal} } - case 359: + case 362: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1916 + //line sql.y:1929 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 360: + case 363: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1920 + //line sql.y:1933 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } - case 361: + case 364: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1925 + //line sql.y:1938 { yyVAL.expr = nil } - case 362: + case 365: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1929 + //line sql.y:1942 { yyVAL.expr = yyDollar[1].expr } - case 363: + case 366: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1934 + //line sql.y:1947 { yyVAL.str = string("") } - case 364: + case 367: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1938 + //line sql.y:1951 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } - case 365: + case 368: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1944 + //line sql.y:1957 { yyVAL.whens = []*When{yyDollar[1].when} } - case 366: + case 369: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1948 + //line sql.y:1961 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } - case 367: + case 370: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:1954 + //line sql.y:1967 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } - case 368: + case 371: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:1959 + //line sql.y:1972 { yyVAL.expr = nil } - case 369: + case 372: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:1963 + //line sql.y:1976 { yyVAL.expr = yyDollar[2].expr } - case 370: + case 373: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1969 + //line sql.y:1982 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } - case 371: + case 374: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:1973 + //line sql.y:1986 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } - case 372: + case 375: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:1977 + //line sql.y:1990 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } - case 373: + case 376: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1983 + //line sql.y:1996 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } - case 374: + case 377: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1987 + //line sql.y:2000 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } - case 375: + case 378: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1991 + //line sql.y:2004 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 376: + case 379: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1995 + //line sql.y:2008 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } - case 377: + case 380: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:1999 + //line sql.y:2012 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } - case 378: + case 381: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2003 + //line sql.y:2016 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 379: + case 382: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2007 + //line sql.y:2020 { yyVAL.expr = &NullVal{} } - case 380: + case 383: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2013 + //line sql.y:2026 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -4220,239 +4239,239 @@ yydefault: } yyVAL.expr = NewIntVal([]byte("1")) } - case 381: + case 384: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2022 + //line sql.y:2035 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } - case 382: + case 385: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2026 + //line sql.y:2039 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } - case 383: + case 386: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2031 + //line sql.y:2044 { yyVAL.exprs = nil } - case 384: + case 387: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2035 + //line sql.y:2048 { yyVAL.exprs = yyDollar[3].exprs } - case 385: + case 388: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2040 + //line sql.y:2053 { yyVAL.expr = nil } - case 386: + case 389: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2044 + //line sql.y:2057 { yyVAL.expr = yyDollar[2].expr } - case 387: + case 390: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2049 + //line sql.y:2062 { yyVAL.orderBy = nil } - case 388: + case 391: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2053 + //line sql.y:2066 { yyVAL.orderBy = yyDollar[3].orderBy } - case 389: + case 392: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2059 + //line sql.y:2072 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } - case 390: + case 393: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2063 + //line sql.y:2076 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } - case 391: + case 394: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2069 + //line sql.y:2082 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } - case 392: + case 395: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2074 + //line sql.y:2087 { yyVAL.str = AscScr } - case 393: + case 396: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2078 + //line sql.y:2091 { yyVAL.str = AscScr } - case 394: + case 397: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2082 + //line sql.y:2095 { yyVAL.str = DescScr } - case 395: + case 398: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2087 + //line sql.y:2100 { yyVAL.limit = nil } - case 396: + case 399: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2091 + //line sql.y:2104 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } - case 397: + case 400: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2095 + //line sql.y:2108 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } - case 398: + case 401: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2099 + //line sql.y:2112 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } - case 399: + case 402: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2104 + //line sql.y:2117 { yyVAL.str = "" } - case 400: + case 403: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2108 + //line sql.y:2121 { yyVAL.str = ForUpdateStr } - case 401: + case 404: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2112 + //line sql.y:2125 { yyVAL.str = ShareModeStr } - case 402: + case 405: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2125 + //line sql.y:2138 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } - case 403: + case 406: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2129 + //line sql.y:2142 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } - case 404: + case 407: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2133 + //line sql.y:2146 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } - case 405: + case 408: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2138 + //line sql.y:2151 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } - case 406: + case 409: yyDollar = yyS[yypt-4 : yypt+1] - //line sql.y:2142 + //line sql.y:2155 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } - case 407: + case 410: yyDollar = yyS[yypt-6 : yypt+1] - //line sql.y:2146 + //line sql.y:2159 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } - case 408: + case 411: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2153 + //line sql.y:2166 { yyVAL.columns = Columns{yyDollar[1].colIdent} } - case 409: + case 412: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2157 + //line sql.y:2170 { yyVAL.columns = Columns{yyDollar[3].colIdent} } - case 410: + case 413: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2161 + //line sql.y:2174 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } - case 411: + case 414: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2165 + //line sql.y:2178 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } - case 412: + case 415: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2170 + //line sql.y:2183 { yyVAL.updateExprs = nil } - case 413: + case 416: yyDollar = yyS[yypt-5 : yypt+1] - //line sql.y:2174 + //line sql.y:2187 { yyVAL.updateExprs = yyDollar[5].updateExprs } - case 414: + case 417: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2180 + //line sql.y:2193 { yyVAL.values = Values{yyDollar[1].valTuple} } - case 415: + case 418: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2184 + //line sql.y:2197 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } - case 416: + case 419: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2190 + //line sql.y:2203 { yyVAL.valTuple = yyDollar[1].valTuple } - case 417: + case 420: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2194 + //line sql.y:2207 { yyVAL.valTuple = ValTuple{} } - case 418: + case 421: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2200 + //line sql.y:2213 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } - case 419: + case 422: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2206 + //line sql.y:2219 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -4460,222 +4479,222 @@ yydefault: yyVAL.expr = yyDollar[1].valTuple } } - case 420: + case 423: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2216 + //line sql.y:2229 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } - case 421: + case 424: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2220 + //line sql.y:2233 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } - case 422: + case 425: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2226 + //line sql.y:2239 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } - case 425: + case 428: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2235 + //line sql.y:2248 { yyVAL.byt = 0 } - case 426: + case 429: yyDollar = yyS[yypt-2 : yypt+1] - //line sql.y:2237 + //line sql.y:2250 { yyVAL.byt = 1 } - case 427: + case 430: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2240 + //line sql.y:2253 { yyVAL.byt = 0 } - case 428: + case 431: yyDollar = yyS[yypt-3 : yypt+1] - //line sql.y:2242 + //line sql.y:2255 { yyVAL.byt = 1 } - case 429: + case 432: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2245 + //line sql.y:2258 { yyVAL.str = "" } - case 430: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2247 - { - yyVAL.str = IgnoreStr - } - case 431: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2251 - { - yyVAL.empty = struct{}{} - } - case 432: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2253 - { - yyVAL.empty = struct{}{} - } case 433: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2255 + //line sql.y:2260 { - yyVAL.empty = struct{}{} + yyVAL.str = IgnoreStr } case 434: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2257 + //line sql.y:2264 { yyVAL.empty = struct{}{} } case 435: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2259 + //line sql.y:2266 { yyVAL.empty = struct{}{} } case 436: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2261 + //line sql.y:2268 { yyVAL.empty = struct{}{} } case 437: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2263 + //line sql.y:2270 { yyVAL.empty = struct{}{} } case 438: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2265 + //line sql.y:2272 { yyVAL.empty = struct{}{} } case 439: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2267 + //line sql.y:2274 { yyVAL.empty = struct{}{} } case 440: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2269 + //line sql.y:2276 { yyVAL.empty = struct{}{} } case 441: - yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2272 + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2278 { yyVAL.empty = struct{}{} } case 442: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2274 + //line sql.y:2280 { yyVAL.empty = struct{}{} } case 443: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2276 + //line sql.y:2282 { yyVAL.empty = struct{}{} } case 444: - yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2280 + yyDollar = yyS[yypt-0 : yypt+1] + //line sql.y:2285 { yyVAL.empty = struct{}{} } case 445: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2282 + //line sql.y:2287 { yyVAL.empty = struct{}{} } case 446: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2286 + //line sql.y:2289 { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + yyVAL.empty = struct{}{} } case 447: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2290 + //line sql.y:2293 { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + yyVAL.empty = struct{}{} + } + case 448: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2295 + { + yyVAL.empty = struct{}{} } case 449: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2297 + //line sql.y:2299 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 450: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:2303 + { + yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + } + case 452: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2310 + { + yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) + } + case 453: + yyDollar = yyS[yypt-1 : yypt+1] + //line sql.y:2316 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 451: + case 454: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2307 + //line sql.y:2320 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 453: + case 456: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2314 + //line sql.y:2327 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 605: + case 609: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2491 + //line sql.y:2505 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 606: + case 610: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2500 + //line sql.y:2514 { decNesting(yylex) } - case 607: + case 611: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2505 + //line sql.y:2519 { forceEOF(yylex) } - case 608: + case 612: yyDollar = yyS[yypt-0 : yypt+1] - //line sql.y:2510 + //line sql.y:2524 { forceEOF(yylex) } - case 609: + case 613: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2514 + //line sql.y:2528 { forceEOF(yylex) } - case 610: + case 614: yyDollar = yyS[yypt-1 : yypt+1] - //line sql.y:2518 + //line sql.y:2532 { forceEOF(yylex) } diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y index 9a1cefd4..a034b9d2 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/sql.y @@ -101,7 +101,7 @@ func forceEOF(yylex interface{}) { %token LEX_ERROR %left UNION %token SELECT INSERT UPDATE DELETE FROM WHERE GROUP HAVING ORDER BY LIMIT OFFSET FOR -%token ALL DISTINCT AS EXISTS ASC DESC INTO DUPLICATE KEY DEFAULT SET LOCK +%token ALL DISTINCT AS EXISTS ASC DESC INTO DUPLICATE KEY DEFAULT SET LOCK FULL %token VALUES LAST_INSERT_ID %token NEXT VALUE SHARE MODE %token SQL_NO_CACHE SQL_CACHE @@ -194,7 +194,7 @@ func forceEOF(yylex interface{}) { %type from_opt table_references %type table_reference table_factor join_table %type inner_join outer_join natural_join -%type table_name into_table_name +%type table_name into_table_name database_from_opt %type aliased_table_name %type index_hint_list %type index_list @@ -1004,10 +1004,14 @@ show_statement: { $$ = &Show{Type: $2} } -| SHOW TABLES FROM table_name force_eof +| SHOW TABLES FROM table_name force_eof { $$ = &Show{Type: ShowTablesStr, Database: $4} } +| SHOW FULL TABLES database_from_opt where_expression_opt force_eof + { + $$ = &Show{Type: ShowFullTablesStr, Database: $4, Where: NewWhere(WhereStr, $5)} + } | SHOW COLUMNS FROM table_name force_eof { $$ = &Show{Type: ShowColumnsStr, Table: $4} @@ -1046,6 +1050,15 @@ binlog_from_opt: $$ = string($3) } +database_from_opt: + { + $$ = TableName{} + } +| FROM table_name + { + $$ = $2 + } + use_statement: USE table_id { @@ -2361,6 +2374,7 @@ reserved_keyword: | FOR | FORCE | FROM +| FULL | GROUP | HAVING | IF diff --git a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go index 25f39611..dc3676a4 100644 --- a/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go +++ b/src/vendor/github.com/xelabs/go-mysqlstack/sqlparser/token.go @@ -155,6 +155,7 @@ var keywords = map[string]int{ "force": FORCE, "foreign": UNUSED, "from": FROM, + "full": FULL, "fulltext": UNUSED, "generated": UNUSED, "get": UNUSED,