diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 1994ce365c3..071d8072f3e 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -1568,6 +1568,9 @@ type DDL struct { // ProcedureSpec is set for CREATE PROCEDURE operations ProcedureSpec *ProcedureSpec + + // Temporary is set for CREATE TEMPORARY TABLE operations. + Temporary bool } // ColumnOrder is used in some DDL statements to specify or change the order of a column in a schema. @@ -1602,6 +1605,7 @@ const ( SpatialStr = "spatial" FulltextStr = "fulltext" SetStr = "set" + TemporaryStr = "temporary" ) // Format formats the node. @@ -1648,12 +1652,18 @@ func (node *DDL) Format(buf *TrackedBuffer) { if node.IfNotExists { notExists = " if not exists" } + + temporary := "" + if node.Temporary { + temporary = " " + TemporaryStr + } + if node.OptLike != nil { - buf.Myprintf("%s table%s %v %v", node.Action, notExists, node.Table, node.OptLike) + buf.Myprintf("%s%s table%s %v %v", node.Action, temporary, notExists, node.Table, node.OptLike) } else if node.TableSpec != nil { - buf.Myprintf("%s table%s %v %v", node.Action, notExists, node.Table, node.TableSpec) + buf.Myprintf("%s%s table%s %v %v", node.Action, temporary, notExists, node.Table, node.TableSpec) } else { - buf.Myprintf("%s table%s %v", node.Action, notExists, node.Table) + buf.Myprintf("%s%s table%s %v", node.Action, temporary, notExists, node.Table) } } case DropStr: diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index f4244d81595..8ea2a88a1fb 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1247,6 +1247,12 @@ var ( }, { input: "create table a (b1 bool not null primary key, b2 boolean not null)", output: "create table a (\n\tb1 bool not null primary key,\n\tb2 boolean not null\n)", + }, { + input: "create temporary table a (b1 bool not null primary key, b2 boolean not null)", + output: "create temporary table a (\n\tb1 bool not null primary key,\n\tb2 boolean not null\n)", + }, { + input: "create temporary table if not exists a (\n\t`a` int\n)", + output: "create temporary table if not exists a (\n\ta int\n)", }, { input: "create index a on b (id)", output: "alter table b add index a (id)", diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 0642ddcb592..35d346d0d35 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -320,242 +320,243 @@ const READS = 57520 const MODIFIES = 57521 const SQL = 57522 const SECURITY = 57523 -const CLASS_ORIGIN = 57524 -const SUBCLASS_ORIGIN = 57525 -const MESSAGE_TEXT = 57526 -const MYSQL_ERRNO = 57527 -const CONSTRAINT_CATALOG = 57528 -const CONSTRAINT_SCHEMA = 57529 -const CONSTRAINT_NAME = 57530 -const CATALOG_NAME = 57531 -const SCHEMA_NAME = 57532 -const TABLE_NAME = 57533 -const COLUMN_NAME = 57534 -const CURSOR_NAME = 57535 -const SIGNAL = 57536 -const RESIGNAL = 57537 -const SQLSTATE = 57538 -const DECLARE = 57539 -const CONDITION = 57540 -const CURSOR = 57541 -const CONTINUE = 57542 -const EXIT = 57543 -const UNDO = 57544 -const HANDLER = 57545 -const FOUND = 57546 -const SQLWARNING = 57547 -const SQLEXCEPTION = 57548 -const BEGIN = 57549 -const START = 57550 -const TRANSACTION = 57551 -const COMMIT = 57552 -const ROLLBACK = 57553 -const SAVEPOINT = 57554 -const WORK = 57555 -const RELEASE = 57556 -const BIT = 57557 -const TINYINT = 57558 -const SMALLINT = 57559 -const MEDIUMINT = 57560 -const INT = 57561 -const INTEGER = 57562 -const BIGINT = 57563 -const INTNUM = 57564 -const REAL = 57565 -const DOUBLE = 57566 -const FLOAT_TYPE = 57567 -const DECIMAL = 57568 -const NUMERIC = 57569 -const DEC = 57570 -const FIXED = 57571 -const PRECISION = 57572 -const TIME = 57573 -const TIMESTAMP = 57574 -const DATETIME = 57575 -const YEAR = 57576 -const CHAR = 57577 -const VARCHAR = 57578 -const BOOL = 57579 -const CHARACTER = 57580 -const VARBINARY = 57581 -const NCHAR = 57582 -const NVARCHAR = 57583 -const NATIONAL = 57584 -const VARYING = 57585 -const TEXT = 57586 -const TINYTEXT = 57587 -const MEDIUMTEXT = 57588 -const LONGTEXT = 57589 -const LONG = 57590 -const BLOB = 57591 -const TINYBLOB = 57592 -const MEDIUMBLOB = 57593 -const LONGBLOB = 57594 -const JSON = 57595 -const ENUM = 57596 -const GEOMETRY = 57597 -const POINT = 57598 -const LINESTRING = 57599 -const POLYGON = 57600 -const GEOMETRYCOLLECTION = 57601 -const MULTIPOINT = 57602 -const MULTILINESTRING = 57603 -const MULTIPOLYGON = 57604 -const NULLX = 57605 -const AUTO_INCREMENT = 57606 -const APPROXNUM = 57607 -const SIGNED = 57608 -const UNSIGNED = 57609 -const ZEROFILL = 57610 -const LOCAL = 57611 -const COLLATION = 57612 -const DATABASES = 57613 -const SCHEMAS = 57614 -const TABLES = 57615 -const FULL = 57616 -const PROCESSLIST = 57617 -const COLUMNS = 57618 -const FIELDS = 57619 -const ENGINES = 57620 -const PLUGINS = 57621 -const NAMES = 57622 -const CHARSET = 57623 -const GLOBAL = 57624 -const SESSION = 57625 -const ISOLATION = 57626 -const LEVEL = 57627 -const READ = 57628 -const WRITE = 57629 -const ONLY = 57630 -const REPEATABLE = 57631 -const COMMITTED = 57632 -const UNCOMMITTED = 57633 -const SERIALIZABLE = 57634 -const CURRENT_TIMESTAMP = 57635 -const DATABASE = 57636 -const CURRENT_DATE = 57637 -const CURRENT_USER = 57638 -const CURRENT_TIME = 57639 -const LOCALTIME = 57640 -const LOCALTIMESTAMP = 57641 -const UTC_DATE = 57642 -const UTC_TIME = 57643 -const UTC_TIMESTAMP = 57644 -const REPLACE = 57645 -const CONVERT = 57646 -const CAST = 57647 -const SUBSTR = 57648 -const SUBSTRING = 57649 -const GROUP_CONCAT = 57650 -const SEPARATOR = 57651 -const TIMESTAMPADD = 57652 -const TIMESTAMPDIFF = 57653 -const OVER = 57654 -const WINDOW = 57655 -const GROUPING = 57656 -const GROUPS = 57657 -const AVG = 57658 -const BIT_AND = 57659 -const BIT_OR = 57660 -const BIT_XOR = 57661 -const COUNT = 57662 -const JSON_ARRAYAGG = 57663 -const JSON_OBJECTAGG = 57664 -const MAX = 57665 -const MIN = 57666 -const STDDEV_POP = 57667 -const STDDEV = 57668 -const STD = 57669 -const STDDEV_SAMP = 57670 -const SUM = 57671 -const VAR_POP = 57672 -const VARIANCE = 57673 -const VAR_SAMP = 57674 -const CUME_DIST = 57675 -const DENSE_RANK = 57676 -const FIRST_VALUE = 57677 -const LAG = 57678 -const LAST_VALUE = 57679 -const LEAD = 57680 -const NTH_VALUE = 57681 -const NTILE = 57682 -const ROW_NUMBER = 57683 -const PERCENT_RANK = 57684 -const RANK = 57685 -const MATCH = 57686 -const AGAINST = 57687 -const BOOLEAN = 57688 -const LANGUAGE = 57689 -const WITH = 57690 -const QUERY = 57691 -const EXPANSION = 57692 -const UNUSED = 57693 -const ARRAY = 57694 -const DESCRIPTION = 57695 -const EMPTY = 57696 -const EXCEPT = 57697 -const JSON_TABLE = 57698 -const LATERAL = 57699 -const MEMBER = 57700 -const RECURSIVE = 57701 -const ACTIVE = 57702 -const ADMIN = 57703 -const BUCKETS = 57704 -const CLONE = 57705 -const COMPONENT = 57706 -const DEFINITION = 57707 -const ENFORCED = 57708 -const EXCLUDE = 57709 -const FOLLOWING = 57710 -const GEOMCOLLECTION = 57711 -const GET_MASTER_PUBLIC_KEY = 57712 -const HISTOGRAM = 57713 -const HISTORY = 57714 -const INACTIVE = 57715 -const INVISIBLE = 57716 -const LOCKED = 57717 -const MASTER_COMPRESSION_ALGORITHMS = 57718 -const MASTER_PUBLIC_KEY_PATH = 57719 -const MASTER_TLS_CIPHERSUITES = 57720 -const MASTER_ZSTD_COMPRESSION_LEVEL = 57721 -const NESTED = 57722 -const NETWORK_NAMESPACE = 57723 -const NOWAIT = 57724 -const NULLS = 57725 -const OJ = 57726 -const OLD = 57727 -const OPTIONAL = 57728 -const ORDINALITY = 57729 -const ORGANIZATION = 57730 -const OTHERS = 57731 -const PATH = 57732 -const PERSIST = 57733 -const PERSIST_ONLY = 57734 -const PRECEDING = 57735 -const PRIVILEGE_CHECKS_USER = 57736 -const PROCESS = 57737 -const RANDOM = 57738 -const REFERENCE = 57739 -const REQUIRE_ROW_FORMAT = 57740 -const RESOURCE = 57741 -const RESPECT = 57742 -const RESTART = 57743 -const RETAIN = 57744 -const REUSE = 57745 -const ROLE = 57746 -const SECONDARY = 57747 -const SECONDARY_ENGINE = 57748 -const SECONDARY_LOAD = 57749 -const SECONDARY_UNLOAD = 57750 -const SKIP = 57751 -const SRID = 57752 -const THREAD_PRIORITY = 57753 -const TIES = 57754 -const UNBOUNDED = 57755 -const VCPU = 57756 -const VISIBLE = 57757 -const SYSTEM = 57758 -const INFILE = 57759 +const TEMPORARY = 57524 +const CLASS_ORIGIN = 57525 +const SUBCLASS_ORIGIN = 57526 +const MESSAGE_TEXT = 57527 +const MYSQL_ERRNO = 57528 +const CONSTRAINT_CATALOG = 57529 +const CONSTRAINT_SCHEMA = 57530 +const CONSTRAINT_NAME = 57531 +const CATALOG_NAME = 57532 +const SCHEMA_NAME = 57533 +const TABLE_NAME = 57534 +const COLUMN_NAME = 57535 +const CURSOR_NAME = 57536 +const SIGNAL = 57537 +const RESIGNAL = 57538 +const SQLSTATE = 57539 +const DECLARE = 57540 +const CONDITION = 57541 +const CURSOR = 57542 +const CONTINUE = 57543 +const EXIT = 57544 +const UNDO = 57545 +const HANDLER = 57546 +const FOUND = 57547 +const SQLWARNING = 57548 +const SQLEXCEPTION = 57549 +const BEGIN = 57550 +const START = 57551 +const TRANSACTION = 57552 +const COMMIT = 57553 +const ROLLBACK = 57554 +const SAVEPOINT = 57555 +const WORK = 57556 +const RELEASE = 57557 +const BIT = 57558 +const TINYINT = 57559 +const SMALLINT = 57560 +const MEDIUMINT = 57561 +const INT = 57562 +const INTEGER = 57563 +const BIGINT = 57564 +const INTNUM = 57565 +const REAL = 57566 +const DOUBLE = 57567 +const FLOAT_TYPE = 57568 +const DECIMAL = 57569 +const NUMERIC = 57570 +const DEC = 57571 +const FIXED = 57572 +const PRECISION = 57573 +const TIME = 57574 +const TIMESTAMP = 57575 +const DATETIME = 57576 +const YEAR = 57577 +const CHAR = 57578 +const VARCHAR = 57579 +const BOOL = 57580 +const CHARACTER = 57581 +const VARBINARY = 57582 +const NCHAR = 57583 +const NVARCHAR = 57584 +const NATIONAL = 57585 +const VARYING = 57586 +const TEXT = 57587 +const TINYTEXT = 57588 +const MEDIUMTEXT = 57589 +const LONGTEXT = 57590 +const LONG = 57591 +const BLOB = 57592 +const TINYBLOB = 57593 +const MEDIUMBLOB = 57594 +const LONGBLOB = 57595 +const JSON = 57596 +const ENUM = 57597 +const GEOMETRY = 57598 +const POINT = 57599 +const LINESTRING = 57600 +const POLYGON = 57601 +const GEOMETRYCOLLECTION = 57602 +const MULTIPOINT = 57603 +const MULTILINESTRING = 57604 +const MULTIPOLYGON = 57605 +const NULLX = 57606 +const AUTO_INCREMENT = 57607 +const APPROXNUM = 57608 +const SIGNED = 57609 +const UNSIGNED = 57610 +const ZEROFILL = 57611 +const LOCAL = 57612 +const COLLATION = 57613 +const DATABASES = 57614 +const SCHEMAS = 57615 +const TABLES = 57616 +const FULL = 57617 +const PROCESSLIST = 57618 +const COLUMNS = 57619 +const FIELDS = 57620 +const ENGINES = 57621 +const PLUGINS = 57622 +const NAMES = 57623 +const CHARSET = 57624 +const GLOBAL = 57625 +const SESSION = 57626 +const ISOLATION = 57627 +const LEVEL = 57628 +const READ = 57629 +const WRITE = 57630 +const ONLY = 57631 +const REPEATABLE = 57632 +const COMMITTED = 57633 +const UNCOMMITTED = 57634 +const SERIALIZABLE = 57635 +const CURRENT_TIMESTAMP = 57636 +const DATABASE = 57637 +const CURRENT_DATE = 57638 +const CURRENT_USER = 57639 +const CURRENT_TIME = 57640 +const LOCALTIME = 57641 +const LOCALTIMESTAMP = 57642 +const UTC_DATE = 57643 +const UTC_TIME = 57644 +const UTC_TIMESTAMP = 57645 +const REPLACE = 57646 +const CONVERT = 57647 +const CAST = 57648 +const SUBSTR = 57649 +const SUBSTRING = 57650 +const GROUP_CONCAT = 57651 +const SEPARATOR = 57652 +const TIMESTAMPADD = 57653 +const TIMESTAMPDIFF = 57654 +const OVER = 57655 +const WINDOW = 57656 +const GROUPING = 57657 +const GROUPS = 57658 +const AVG = 57659 +const BIT_AND = 57660 +const BIT_OR = 57661 +const BIT_XOR = 57662 +const COUNT = 57663 +const JSON_ARRAYAGG = 57664 +const JSON_OBJECTAGG = 57665 +const MAX = 57666 +const MIN = 57667 +const STDDEV_POP = 57668 +const STDDEV = 57669 +const STD = 57670 +const STDDEV_SAMP = 57671 +const SUM = 57672 +const VAR_POP = 57673 +const VARIANCE = 57674 +const VAR_SAMP = 57675 +const CUME_DIST = 57676 +const DENSE_RANK = 57677 +const FIRST_VALUE = 57678 +const LAG = 57679 +const LAST_VALUE = 57680 +const LEAD = 57681 +const NTH_VALUE = 57682 +const NTILE = 57683 +const ROW_NUMBER = 57684 +const PERCENT_RANK = 57685 +const RANK = 57686 +const MATCH = 57687 +const AGAINST = 57688 +const BOOLEAN = 57689 +const LANGUAGE = 57690 +const WITH = 57691 +const QUERY = 57692 +const EXPANSION = 57693 +const UNUSED = 57694 +const ARRAY = 57695 +const DESCRIPTION = 57696 +const EMPTY = 57697 +const EXCEPT = 57698 +const JSON_TABLE = 57699 +const LATERAL = 57700 +const MEMBER = 57701 +const RECURSIVE = 57702 +const ACTIVE = 57703 +const ADMIN = 57704 +const BUCKETS = 57705 +const CLONE = 57706 +const COMPONENT = 57707 +const DEFINITION = 57708 +const ENFORCED = 57709 +const EXCLUDE = 57710 +const FOLLOWING = 57711 +const GEOMCOLLECTION = 57712 +const GET_MASTER_PUBLIC_KEY = 57713 +const HISTOGRAM = 57714 +const HISTORY = 57715 +const INACTIVE = 57716 +const INVISIBLE = 57717 +const LOCKED = 57718 +const MASTER_COMPRESSION_ALGORITHMS = 57719 +const MASTER_PUBLIC_KEY_PATH = 57720 +const MASTER_TLS_CIPHERSUITES = 57721 +const MASTER_ZSTD_COMPRESSION_LEVEL = 57722 +const NESTED = 57723 +const NETWORK_NAMESPACE = 57724 +const NOWAIT = 57725 +const NULLS = 57726 +const OJ = 57727 +const OLD = 57728 +const OPTIONAL = 57729 +const ORDINALITY = 57730 +const ORGANIZATION = 57731 +const OTHERS = 57732 +const PATH = 57733 +const PERSIST = 57734 +const PERSIST_ONLY = 57735 +const PRECEDING = 57736 +const PRIVILEGE_CHECKS_USER = 57737 +const PROCESS = 57738 +const RANDOM = 57739 +const REFERENCE = 57740 +const REQUIRE_ROW_FORMAT = 57741 +const RESOURCE = 57742 +const RESPECT = 57743 +const RESTART = 57744 +const RETAIN = 57745 +const REUSE = 57746 +const ROLE = 57747 +const SECONDARY = 57748 +const SECONDARY_ENGINE = 57749 +const SECONDARY_LOAD = 57750 +const SECONDARY_UNLOAD = 57751 +const SKIP = 57752 +const SRID = 57753 +const THREAD_PRIORITY = 57754 +const TIES = 57755 +const UNBOUNDED = 57756 +const VCPU = 57757 +const VISIBLE = 57758 +const SYSTEM = 57759 +const INFILE = 57760 var yyToknames = [...]string{ "$end", @@ -756,6 +757,7 @@ var yyToknames = [...]string{ "MODIFIES", "SQL", "SECURITY", + "TEMPORARY", "CLASS_ORIGIN", "SUBCLASS_ORIGIN", "MESSAGE_TEXT", @@ -1009,51 +1011,52 @@ var yyExca = [...]int{ 5, 47, -2, 835, -1, 39, - 141, 918, + 140, 894, + 141, 920, -2, 116, -1, 46, 180, 492, 181, 492, -2, 482, -1, 53, - 1, 1324, - 435, 1324, + 1, 1327, + 436, 1327, -2, 518, - -1, 431, - 127, 928, - -2, 922, - -1, 432, - 127, 929, - -2, 923, - -1, 533, - 97, 1147, - 127, 1147, + -1, 433, + 127, 930, + -2, 924, + -1, 434, + 127, 931, + -2, 925, + -1, 535, + 97, 1149, + 127, 1149, -2, 878, - -1, 534, - 97, 1248, - 127, 1248, + -1, 536, + 97, 1250, + 127, 1250, -2, 879, - -1, 539, - 97, 1167, - 127, 1167, + -1, 541, + 97, 1169, + 127, 1169, -2, 880, - -1, 540, - 97, 1206, - 127, 1206, + -1, 542, + 97, 1208, + 127, 1208, -2, 881, - -1, 541, - 97, 1207, - 127, 1207, + -1, 543, + 97, 1209, + 127, 1209, -2, 882, - -1, 542, - 97, 1102, - 127, 1102, - -2, 886, -1, 544, - 97, 1185, - 127, 1185, + 97, 1104, + 127, 1104, + -2, 886, + -1, 546, + 97, 1187, + 127, 1187, -2, 888, - -1, 976, + -1, 978, 1, 572, 5, 572, 12, 572, @@ -1075,34 +1078,34 @@ var yyExca = [...]int{ 67, 572, 69, 572, 70, 572, - 435, 572, + 436, 572, -2, 602, - -1, 980, + -1, 982, 67, 64, 69, 64, -2, 68, - -1, 1170, - 127, 931, - -2, 927, - -1, 1333, + -1, 1172, + 127, 933, + -2, 929, + -1, 1335, 68, 353, - -2, 1068, - -1, 1336, + -2, 1070, + -1, 1338, 68, 349, 71, 349, - -2, 1003, - -1, 1337, + -2, 1005, + -1, 1339, 68, 350, 71, 350, - -2, 1013, - -1, 1420, + -2, 1015, + -1, 1423, 68, 427, 71, 427, -2, 393, - -1, 1465, + -1, 1468, 5, 48, -2, 668, - -1, 1781, + -1, 1784, 1, 623, 5, 623, 12, 623, @@ -1124,2593 +1127,2638 @@ var yyExca = [...]int{ 67, 623, 69, 623, 70, 623, - 435, 623, + 436, 623, -2, 602, - -1, 1905, + -1, 1908, 5, 48, -2, 853, - -1, 2040, - 41, 938, - -2, 936, - -1, 2148, + -1, 2043, + 41, 940, + -2, 938, + -1, 2151, 5, 48, -2, 856, } const yyPrivate = 57344 -const yyLast = 25527 +const yyLast = 25979 var yyAct = [...]int{ - 465, 76, 429, 2249, 2295, 2270, 2260, 2165, 1380, 2261, - 2164, 2251, 2086, 7, 2054, 2151, 2085, 6, 2084, 5, - 2087, 8, 2137, 2131, 1794, 2014, 2040, 2191, 1915, 1009, - 1978, 1775, 1378, 80, 1284, 1290, 1692, 436, 1557, 1529, - 1682, 1755, 423, 1960, 1942, 1582, 464, 1148, 1338, 1288, - 416, 1795, 1756, 2152, 741, 1844, 901, 449, 1330, 1691, - 1530, 1636, 1282, 553, 1311, 1752, 358, 99, 1418, 718, - 1761, 364, 367, 1370, 1767, 1449, 1140, 76, 1319, 976, - 555, 1208, 1089, 1405, 731, 1320, 1703, 1659, 1195, 1234, - 1366, 1354, 1658, 535, 991, 1156, 1273, 1326, 1619, 383, - 1266, 550, 2083, 3, 1172, 1109, 810, 385, 419, 434, - 1334, 1229, 1226, 770, 438, 549, 990, 527, 851, 531, - 532, 359, 360, 382, 696, 363, 538, 982, 769, 972, - 2317, 918, 2313, 2303, 2285, 973, 524, 2283, 2265, 2244, - 2199, 79, 1131, 842, 1825, 1936, 65, 2276, 1943, 82, - 2184, 2259, 2145, 2232, 2183, 2144, 1945, 1720, 917, 1495, - 2064, 866, 865, 875, 876, 868, 869, 870, 871, 872, - 873, 874, 867, 32, 1890, 877, 551, 32, 32, 415, - 695, 32, 723, 84, 85, 86, 87, 88, 478, 1789, - 484, 486, 485, 482, 483, 481, 480, 479, 1790, 1791, - 743, 1524, 1308, 1309, 1566, 487, 488, 1565, 1307, 1737, - 1567, 32, 362, 68, 35, 36, 361, 788, 1525, 1999, - 1602, 698, 1286, 701, 992, 1948, 993, 744, 745, 1340, - 1355, 1342, 109, 105, 106, 77, 107, 373, 1342, 77, - 77, 1881, 1879, 77, 68, 35, 36, 1367, 1118, 1985, - 722, 726, 1346, 1348, 728, 1347, 1360, 352, 1355, 380, - 1704, 1946, 1947, 1949, 1950, 1951, 37, 752, 2274, 111, - 110, 2196, 2037, 77, 2194, 2195, 2246, 365, 2036, 2035, - 2034, 2033, 2031, 1210, 2032, 2116, 2117, 724, 727, 2081, - 725, 2188, 2189, 2153, 1431, 1594, 101, 1917, 2231, 1549, - 738, 739, 1706, 740, 1387, 737, 736, 2258, 1430, 2079, - 1599, 1598, 746, 2132, 747, 744, 745, 772, 773, 774, - 775, 776, 777, 778, 779, 780, 781, 782, 783, 1386, - 700, 699, 1595, 730, 730, 1008, 1685, 1736, 94, 1798, - 1267, 1637, 355, 353, 1008, 730, 1600, 368, 1592, 1664, - 1435, 1961, 1962, 2309, 1593, 76, 76, 1849, 2318, 1429, - 2315, 1008, 2304, 2286, 1007, 697, 2015, 757, 425, 706, - 2119, 759, 81, 758, 379, 1576, 793, 1638, 356, 2017, - 1708, 378, 1065, 379, 801, 1712, 1971, 1707, 369, 1705, - 1641, 96, 98, 1079, 1710, 93, 1293, 1295, 754, 1070, - 1556, 103, 102, 1555, 108, 1554, 1119, 1709, 693, 1654, - 1427, 1421, 1422, 1597, 1420, 366, 1423, 1424, 2065, 366, - 1711, 1713, 721, 1609, 1970, 753, 1369, 729, 762, 763, - 1345, 886, 1944, 1355, 888, 2299, 101, 2255, 1008, 1824, - 2250, 100, 891, 892, 893, 894, 895, 896, 897, 898, - 2016, 1433, 1436, 1580, 2253, 2143, 1008, 756, 760, 797, - 2240, 1639, 1640, 1008, 899, 327, 903, 904, 905, 906, - 907, 908, 909, 910, 911, 912, 913, 1294, 916, 919, - 919, 919, 925, 919, 919, 925, 919, 925, 934, 935, + 467, 76, 431, 2252, 2298, 2168, 2273, 2264, 2263, 2154, + 2254, 2089, 7, 2057, 1918, 2194, 1382, 2088, 6, 2087, + 5, 2090, 8, 2134, 1981, 2017, 2140, 2043, 1778, 80, + 733, 2167, 1797, 1560, 1532, 1011, 438, 1286, 1685, 387, + 1758, 1695, 466, 425, 1585, 1340, 1380, 1798, 1963, 1945, + 1292, 1150, 2155, 1290, 385, 903, 418, 1759, 1694, 743, + 451, 1639, 980, 1332, 1284, 1847, 1533, 1755, 99, 1322, + 366, 369, 1372, 1452, 1421, 1321, 1740, 76, 1764, 978, + 1336, 555, 1770, 1091, 1210, 1142, 1197, 1662, 360, 1706, + 1236, 557, 1328, 537, 1368, 1408, 1661, 1158, 1739, 1622, + 975, 1275, 1268, 1111, 1228, 993, 1174, 114, 812, 552, + 421, 772, 436, 551, 992, 853, 359, 974, 533, 529, + 534, 384, 553, 984, 2320, 540, 919, 2316, 771, 2306, + 2288, 2286, 2268, 2247, 920, 2202, 79, 526, 1133, 1828, + 1939, 1946, 2279, 361, 362, 720, 65, 365, 2187, 1948, + 528, 2262, 2148, 549, 2235, 2186, 696, 82, 2147, 1723, + 1498, 1893, 697, 1231, 1793, 1794, 1310, 1311, 706, 32, + 440, 994, 1356, 995, 1792, 1569, 715, 1313, 1568, 1309, + 745, 1570, 364, 698, 363, 32, 2086, 3, 32, 790, + 731, 84, 85, 86, 87, 88, 1605, 32, 110, 106, + 107, 1342, 108, 844, 2067, 868, 867, 877, 878, 870, + 871, 872, 873, 874, 875, 876, 869, 725, 1951, 879, + 32, 1527, 68, 35, 36, 1988, 2002, 746, 747, 1288, + 1344, 77, 1344, 1357, 1707, 112, 111, 1362, 1528, 1357, + 68, 35, 36, 1348, 1350, 1884, 1349, 77, 1369, 1882, + 77, 375, 354, 382, 1949, 1950, 1952, 1953, 1954, 77, + 1120, 2277, 37, 417, 2199, 754, 480, 2249, 486, 488, + 487, 484, 485, 483, 482, 481, 1709, 370, 2197, 2198, + 700, 2040, 77, 489, 490, 724, 728, 1597, 2258, 730, + 2039, 2253, 1640, 748, 367, 749, 746, 747, 1434, 2038, + 2037, 2036, 1602, 1601, 2034, 2256, 2035, 2119, 2120, 2191, + 2192, 2156, 1433, 1920, 1552, 2084, 1389, 742, 371, 740, + 741, 739, 726, 729, 1598, 727, 2261, 738, 1641, 702, + 701, 2234, 2135, 1688, 2082, 732, 732, 1269, 1603, 355, + 1595, 1388, 1010, 357, 1964, 1965, 1596, 732, 1010, 1852, + 1010, 1579, 1801, 1009, 1438, 1711, 2312, 76, 76, 1667, + 1715, 1067, 1710, 1432, 1708, 2321, 2318, 2122, 759, 1713, + 81, 109, 2307, 2289, 761, 699, 760, 708, 795, 358, + 2018, 380, 1712, 381, 1295, 1297, 803, 381, 1974, 1644, + 1081, 1072, 717, 2020, 756, 1714, 1716, 1559, 1558, 1875, + 1557, 695, 1657, 799, 2302, 1600, 703, 368, 329, 1973, + 1357, 105, 1642, 1643, 1430, 1424, 1425, 1305, 1423, 1121, + 1426, 1427, 1868, 1612, 755, 1347, 1947, 1573, 1371, 1479, + 1010, 368, 1010, 888, 1476, 1827, 890, 368, 1565, 1977, + 2255, 2257, 1010, 800, 893, 894, 895, 896, 897, 898, + 899, 900, 764, 765, 102, 1436, 1439, 2243, 723, 2146, + 814, 368, 1583, 2068, 2019, 1296, 901, 857, 905, 906, + 907, 908, 909, 910, 911, 912, 913, 914, 915, 1471, + 918, 921, 921, 921, 927, 921, 921, 927, 921, 927, 936, 937, 938, 939, 940, 941, 942, 943, 944, 945, 946, 947, 948, 949, 950, 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, - 966, 967, 792, 977, 790, 69, 812, 802, 104, 1895, - 366, 1679, 75, 855, 1428, 1580, 75, 75, 889, 890, - 75, 103, 102, 1872, 1974, 1969, 1865, 1596, 887, 1579, - 1570, 1562, 1468, 1580, 1454, 1439, 69, 971, 1146, 2297, - 1426, 1583, 2298, 95, 2296, 1003, 988, 857, 900, 538, - 75, 714, 867, 1312, 538, 877, 1814, 1476, 877, 366, - 1580, 1473, 1580, 1303, 1110, 1396, 1143, 850, 2252, 2254, - 875, 876, 868, 869, 870, 871, 872, 873, 874, 867, - 1432, 1227, 877, 868, 869, 870, 871, 872, 873, 874, - 867, 921, 923, 877, 927, 929, 1066, 932, 870, 871, - 872, 873, 874, 867, 1341, 995, 877, 734, 1815, 720, - 996, 1579, 1722, 705, 748, 1149, 1150, 979, 920, 922, - 924, 926, 928, 930, 931, 933, 1975, 1434, 1683, 1579, - 1765, 1006, 1678, 986, 1126, 1001, 1675, 849, 848, 761, - 981, 702, 347, 866, 865, 875, 876, 868, 869, 870, - 871, 872, 873, 874, 867, 850, 1579, 877, 1579, 91, - 1111, 1397, 1666, 1664, 1666, 1664, 2302, 1672, 1179, 1008, - 1671, 1674, 1668, 1665, 889, 890, 849, 848, 889, 890, - 344, 807, 811, 1177, 1178, 1176, 2192, 1667, 2216, 1667, - 2215, 1471, 858, 1470, 850, 848, 90, 730, 2289, 2271, - 2288, 1406, 719, 735, 730, 730, 730, 750, 849, 848, - 849, 848, 850, 1072, 2241, 2306, 803, 2310, 1802, 730, - 730, 708, 709, 710, 711, 712, 850, 845, 850, 902, - 849, 848, 328, 1116, 77, 849, 848, 2243, 2167, 331, - 915, 732, 2193, 1227, 1175, 1484, 2149, 377, 850, 340, - 345, 346, 751, 850, 866, 865, 875, 876, 868, 869, - 870, 871, 872, 873, 874, 867, 1935, 1093, 877, 1934, - 2311, 849, 848, 1624, 76, 1091, 1196, 2192, 1197, 730, - 1622, 1139, 1451, 1452, 1453, 337, 1105, 1106, 338, 850, - 1603, 343, 2228, 2227, 952, 953, 954, 955, 956, 940, - 941, 942, 957, 958, 943, 944, 945, 951, 959, 946, - 947, 948, 949, 950, 962, 961, 960, 963, 964, 966, - 965, 967, 1080, 1129, 2201, 1472, 1096, 1097, 1113, 1114, - 1162, 1164, 1165, 521, 522, 1568, 1163, 1569, 2173, 767, - 1151, 2078, 1171, 1145, 1153, 1180, 1181, 1182, 1183, 1184, + 966, 967, 968, 969, 794, 979, 734, 1898, 2300, 75, + 1972, 2301, 1682, 2299, 792, 69, 102, 753, 1583, 1431, + 1599, 1978, 1457, 758, 762, 75, 891, 892, 75, 891, + 892, 891, 892, 69, 1583, 1442, 1148, 75, 1582, 104, + 103, 1005, 973, 1583, 1586, 1429, 990, 859, 716, 1817, + 540, 869, 1314, 879, 879, 540, 1145, 852, 94, 1686, + 75, 804, 1583, 1112, 1399, 1768, 972, 736, 982, 1229, + 1212, 774, 775, 776, 777, 778, 779, 780, 781, 782, + 783, 784, 785, 1128, 1003, 1435, 889, 850, 922, 924, + 926, 928, 930, 932, 933, 935, 923, 925, 722, 929, + 931, 1818, 934, 1181, 852, 851, 850, 997, 1628, 750, + 91, 96, 998, 763, 1582, 93, 1068, 704, 1179, 1180, + 1178, 104, 103, 852, 851, 850, 2292, 2274, 2291, 1725, + 1582, 988, 1437, 1681, 902, 1074, 2195, 1678, 2219, 1582, + 2218, 1008, 852, 983, 1805, 1669, 1667, 90, 847, 1229, + 1675, 1487, 1285, 1674, 1677, 427, 851, 850, 1582, 1113, + 1400, 100, 2195, 737, 1669, 1667, 2305, 2244, 2170, 1010, + 1670, 101, 1671, 1668, 852, 981, 868, 867, 877, 878, + 870, 871, 872, 873, 874, 875, 876, 869, 2231, 1670, + 879, 721, 2152, 1295, 1297, 77, 2313, 851, 850, 732, + 1938, 1147, 752, 2230, 2309, 1177, 732, 732, 732, 872, + 873, 874, 875, 876, 869, 852, 805, 879, 1454, 1455, + 1456, 732, 732, 867, 877, 878, 870, 871, 872, 873, + 874, 875, 876, 869, 1409, 1118, 879, 868, 867, 877, + 878, 870, 871, 872, 873, 874, 875, 876, 869, 2314, + 528, 879, 1146, 1086, 868, 867, 877, 878, 870, 871, + 872, 873, 874, 875, 876, 869, 1937, 1627, 879, 851, + 850, 1103, 1104, 1105, 1296, 1198, 76, 1199, 1106, 1625, + 1606, 732, 379, 1141, 95, 2204, 2176, 852, 1093, 1164, + 1166, 1167, 2081, 2033, 2217, 1165, 954, 955, 956, 957, + 958, 942, 943, 944, 959, 960, 945, 946, 947, 953, + 961, 948, 949, 950, 951, 952, 964, 963, 962, 965, + 966, 968, 967, 969, 1131, 1082, 1995, 1935, 1115, 1116, + 1810, 877, 878, 870, 871, 872, 873, 874, 875, 876, + 869, 769, 1137, 879, 1173, 1095, 1153, 1182, 1183, 1184, 1185, 1186, 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, - 1138, 766, 2030, 1992, 329, 849, 848, 1154, 1932, 76, - 1155, 1807, 1724, 1121, 1122, 2214, 1133, 1124, 1620, 1132, - 1413, 1123, 1094, 850, 903, 2006, 2233, 1173, 849, 848, - 1926, 2230, 803, 1127, 1144, 979, 342, 332, 333, 1625, - 350, 2213, 1230, 1137, 334, 336, 850, 330, 349, 348, - 1843, 849, 848, 1845, 2076, 849, 848, 2048, 1170, 1583, - 1168, 2044, 1169, 1845, 1134, 2178, 803, 1216, 1219, 850, - 1926, 2175, 2043, 850, 1228, 1926, 2080, 2006, 2072, 1558, - 855, 2006, 2020, 454, 453, 456, 457, 458, 459, 2006, - 803, 1166, 455, 460, 1967, 1174, 2006, 2005, 1287, 1926, - 1925, 1908, 803, 977, 1438, 803, 2024, 977, 1867, 1558, - 1860, 900, 1856, 1853, 1852, 1850, 1835, 1834, 1833, 1199, - 1200, 1822, 1821, 2023, 1095, 1648, 1206, 1818, 1819, 1818, - 1817, 1830, 1203, 1205, 1466, 803, 1270, 1298, 1213, 1647, - 1407, 1300, 1270, 803, 1240, 1394, 1242, 538, 1204, 1410, - 1764, 1393, 1115, 1198, 1275, 1278, 1279, 1280, 1276, 1120, - 1277, 1281, 1117, 1202, 1768, 1769, 1868, 1088, 1204, 803, - 81, 1087, 1238, 1239, 1086, 1085, 1077, 1224, 1075, 1245, - 1246, 1247, 1248, 1074, 1073, 1071, 1005, 1004, 984, 1091, - 902, 1066, 730, 789, 730, 716, 372, 370, 1292, 1753, - 900, 1296, 1764, 984, 1170, 2042, 1317, 1808, 1316, 1321, - 551, 1558, 979, 81, 2180, 1249, 1250, 979, 1903, 1831, - 1254, 979, 1820, 1257, 1204, 1301, 1269, 1327, 1262, 1305, - 1304, 1310, 1297, 1283, 983, 1777, 1656, 1356, 1357, 1358, - 1359, 1324, 1571, 1306, 985, 1466, 987, 1489, 1488, 1376, - 1125, 1392, 1159, 1160, 983, 1372, 1373, 1374, 1375, 985, - 76, 983, 1147, 1868, 1092, 1270, 1078, 1466, 1764, 989, - 1368, 1098, 1099, 1100, 1293, 1295, 1275, 1278, 1279, 1280, - 1276, 799, 1277, 1281, 77, 800, 1107, 1108, 794, 2186, - 1455, 2176, 1776, 2046, 1937, 1342, 1913, 1371, 1801, 1398, - 1457, 1458, 1459, 1367, 1404, 1768, 1769, 902, 1575, 1388, - 1362, 1214, 1215, 1361, 1067, 786, 1379, 2280, 866, 865, - 875, 876, 868, 869, 870, 871, 872, 873, 874, 867, - 77, 2278, 877, 2262, 1829, 1771, 1753, 1626, 1082, 1541, - 1539, 2210, 1450, 1173, 1542, 1540, 1136, 1170, 1774, 1317, - 77, 1169, 1773, 1538, 1537, 1294, 1409, 2182, 1543, 1408, - 1279, 1280, 900, 1416, 1689, 1415, 420, 421, 1440, 843, - 844, 1157, 1437, 2208, 1443, 812, 1448, 1447, 1997, 1585, - 1855, 1806, 1805, 1577, 1460, 2121, 2124, 1527, 1528, 2041, - 2172, 977, 977, 977, 977, 977, 1414, 2171, 841, 2200, - 2039, 1456, 2115, 2114, 371, 1315, 1651, 805, 1287, 1613, - 1550, 1174, 1463, 1002, 784, 768, 765, 764, 977, 806, - 717, 2223, 2052, 2051, 1901, 1149, 1150, 1531, 1976, 1412, - 1462, 1383, 1081, 1686, 843, 844, 2203, 1629, 1465, 1467, - 1403, 1283, 1069, 1446, 1469, 795, 796, 2222, 1553, 2221, - 1475, 1445, 1559, 1478, 1479, 1480, 2220, 1560, 1483, 1561, - 1486, 2027, 1487, 538, 417, 1490, 1491, 2202, 1492, 1493, - 2169, 1377, 1497, 1498, 1499, 1500, 1501, 2125, 2056, 1996, - 418, 81, 2055, 1508, 1509, 1510, 1979, 1512, 1513, 1526, - 1515, 1516, 1517, 1518, 1558, 1520, 1521, 1522, 1544, 1477, - 1584, 76, 1545, 2282, 2281, 979, 979, 979, 979, 979, - 1206, 1552, 730, 1066, 730, 730, 1546, 1547, 1474, 995, - 1532, 1563, 979, 1535, 1321, 1572, 1112, 1533, 1534, 1652, - 1536, 846, 979, 2281, 432, 1631, 1632, 1633, 2282, 1612, - 2069, 1614, 1615, 1616, 1617, 1804, 1574, 1142, 1441, 1442, - 374, 811, 376, 83, 1646, 1604, 1605, 2097, 49, 2099, - 19, 52, 1611, 1578, 1581, 2098, 18, 78, 1494, 1496, - 2100, 20, 1618, 2101, 21, 1502, 1503, 1504, 1505, 116, - 1623, 1621, 116, 1, 1698, 2096, 15, 2170, 116, 2095, - 14, 2120, 1650, 2089, 10, 2122, 1716, 1717, 2038, 1718, - 1719, 2108, 30, 1628, 2107, 29, 1657, 1956, 1464, 1941, - 116, 1725, 1726, 2106, 28, 1940, 1728, 2104, 25, 1382, - 1635, 1384, 116, 2103, 24, 116, 558, 1649, 116, 1670, - 1655, 1485, 1653, 1634, 1669, 1721, 1680, 1681, 1662, 116, - 1684, 558, 1663, 2105, 26, 785, 1758, 116, 76, 2094, - 13, 1660, 1673, 1677, 2091, 12, 1130, 1893, 1661, 1694, - 1425, 1696, 2090, 11, 2130, 1695, 2088, 9, 1700, 1170, - 1779, 1702, 1328, 1169, 1781, 1783, 1784, 1785, 1318, 1715, - 1714, 548, 1531, 89, 1754, 1395, 733, 1965, 1763, 335, - 1325, 1590, 1757, 2123, 787, 1699, 866, 865, 875, 876, - 868, 869, 870, 871, 872, 873, 874, 867, 1782, 1589, - 877, 1786, 1586, 1601, 1339, 1588, 1778, 1803, 1788, 1587, - 2118, 1591, 1013, 1011, 1760, 1012, 1010, 1015, 1014, 339, - 1772, 997, 2159, 847, 97, 53, 1968, 1676, 1734, 1735, - 1419, 1780, 92, 1740, 1799, 1235, 1743, 1800, 742, 341, - 1759, 1748, 885, 1444, 1564, 1797, 536, 1827, 1828, 537, - 1376, 1343, 1344, 529, 1349, 1350, 1351, 1352, 1353, 804, - 1792, 2187, 809, 2133, 1838, 1694, 1321, 1482, 1321, 1793, - 914, 1225, 1363, 1364, 1365, 437, 1548, 1832, 2136, 1809, - 1810, 1161, 452, 451, 450, 447, 1813, 448, 1402, 1152, - 1887, 1523, 859, 1816, 1823, 435, 427, 1139, 975, 968, - 1411, 1274, 1272, 1271, 1083, 525, 1770, 1766, 1811, 1285, - 1871, 974, 381, 66, 749, 354, 1847, 1729, 1730, 1731, - 1732, 1733, 1889, 2063, 34, 375, 422, 27, 17, 1837, - 755, 1888, 22, 16, 1417, 1842, 1846, 703, 38, 1848, - 1866, 1841, 1066, 41, 40, 1869, 1859, 1851, 1630, 1385, - 2158, 2248, 116, 771, 2269, 1839, 2190, 558, 558, 2102, - 2109, 2093, 2092, 2235, 23, 2234, 4, 791, 67, 558, - 31, 2, 1894, 0, 0, 0, 1864, 0, 1723, 866, - 865, 875, 876, 868, 869, 870, 871, 872, 873, 874, - 867, 0, 1877, 877, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 116, 0, 0, 0, 1909, 0, 0, - 0, 979, 1531, 0, 0, 0, 0, 1870, 0, 0, - 0, 0, 1921, 1922, 1923, 1873, 0, 1919, 0, 1642, - 1902, 1644, 1645, 0, 0, 1910, 1882, 1883, 0, 76, - 1928, 0, 0, 0, 463, 0, 0, 1924, 0, 0, - 854, 0, 1787, 0, 1920, 0, 0, 1738, 1739, 0, - 1741, 1742, 0, 1744, 1745, 1746, 1747, 0, 1749, 1750, - 1751, 0, 1929, 1953, 1954, 1955, 0, 0, 977, 0, - 1904, 1905, 1906, 1907, 0, 1963, 1930, 1321, 1572, 0, - 1964, 0, 0, 0, 0, 0, 0, 1986, 1987, 1988, - 1989, 1990, 1918, 1952, 1957, 1993, 1994, 0, 0, 1959, - 0, 1958, 1980, 1972, 1758, 1981, 1982, 2001, 1797, 1931, - 0, 1933, 0, 1376, 0, 0, 1973, 0, 1779, 0, - 0, 0, 0, 545, 0, 0, 554, 0, 0, 0, - 0, 1938, 0, 0, 0, 0, 116, 116, 116, 0, - 0, 707, 2004, 0, 0, 0, 0, 2026, 0, 2028, - 1757, 0, 558, 0, 0, 0, 1998, 1694, 0, 1966, - 2003, 0, 2025, 0, 2007, 0, 1861, 1984, 2008, 0, - 1606, 1607, 1608, 1610, 0, 2019, 425, 2053, 2018, 2013, - 0, 0, 979, 0, 0, 0, 2029, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2021, 0, 2022, 0, - 1758, 1991, 76, 0, 0, 0, 1995, 0, 1891, 2000, - 0, 2047, 2045, 0, 0, 0, 0, 2050, 1292, 2057, - 2009, 0, 0, 0, 2058, 0, 0, 0, 0, 76, - 0, 0, 0, 2010, 2011, 2012, 2082, 0, 0, 2075, - 0, 2070, 902, 977, 0, 2074, 1757, 0, 0, 1911, - 0, 0, 1912, 2068, 2129, 1914, 0, 2077, 0, 0, - 0, 0, 0, 902, 0, 0, 0, 0, 0, 0, - 0, 2127, 1896, 1897, 0, 0, 0, 2126, 1898, 0, - 2128, 1899, 0, 0, 0, 0, 1900, 0, 2140, 0, - 0, 2154, 0, 0, 0, 2141, 0, 0, 2059, 2060, - 2061, 2062, 2146, 0, 2071, 2066, 2067, 1531, 558, 2147, - 0, 0, 0, 0, 76, 0, 116, 0, 0, 0, - 116, 0, 0, 116, 0, 0, 0, 0, 0, 116, - 0, 558, 0, 0, 0, 0, 0, 0, 558, 558, - 558, 116, 116, 116, 0, 0, 0, 2168, 116, 0, - 2166, 0, 0, 558, 558, 2181, 0, 979, 0, 0, - 0, 0, 0, 2135, 2139, 2174, 0, 554, 554, 0, - 0, 0, 0, 0, 0, 2142, 0, 0, 2075, 554, - 0, 0, 0, 2148, 0, 0, 0, 0, 0, 2197, - 0, 2205, 0, 0, 76, 0, 2212, 2163, 0, 0, - 76, 2206, 2207, 2209, 2219, 2204, 0, 2226, 0, 0, - 0, 0, 116, 558, 116, 2211, 558, 76, 2217, 2229, - 0, 0, 76, 0, 0, 2239, 2256, 2242, 0, 2238, - 0, 2237, 2245, 2236, 1812, 0, 0, 0, 0, 0, - 0, 76, 2177, 2263, 76, 76, 2257, 0, 0, 76, - 0, 2264, 2226, 0, 2266, 0, 2272, 0, 2185, 2275, - 0, 116, 0, 0, 0, 425, 76, 854, 2279, 76, - 2277, 0, 0, 2226, 0, 2290, 0, 2292, 2293, 2287, - 902, 0, 0, 2224, 76, 0, 76, 2300, 2139, 0, - 76, 2226, 0, 2226, 0, 0, 0, 0, 0, 0, - 2305, 0, 0, 0, 76, 0, 0, 76, 0, 0, - 0, 2226, 1892, 558, 76, 0, 0, 2314, 76, 0, - 0, 2226, 0, 0, 2247, 2226, 0, 0, 0, 1874, - 1875, 0, 1876, 0, 0, 1878, 978, 1880, 0, 2134, - 2138, 0, 0, 0, 0, 0, 0, 0, 0, 558, - 558, 866, 865, 875, 876, 868, 869, 870, 871, 872, - 873, 874, 867, 1886, 0, 877, 545, 0, 0, 0, - 0, 545, 998, 0, 0, 0, 0, 0, 0, 0, - 0, 113, 0, 0, 116, 0, 0, 0, 0, 0, - 357, 0, 116, 116, 2155, 2156, 0, 116, 116, 0, - 0, 116, 116, 116, 0, 2307, 2308, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, - 558, 1927, 0, 0, 526, 0, 0, 547, 0, 0, - 694, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 704, 0, 0, 0, 0, 0, 0, 0, 713, - 1885, 0, 866, 865, 875, 876, 868, 869, 870, 871, - 872, 873, 874, 867, 2138, 0, 877, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2218, 0, 0, 0, - 0, 0, 0, 0, 0, 116, 558, 0, 558, 861, - 0, 864, 0, 116, 116, 0, 0, 116, 878, 879, - 880, 881, 882, 883, 884, 0, 862, 863, 860, 866, - 865, 875, 876, 868, 869, 870, 871, 872, 873, 874, - 867, 0, 0, 877, 0, 116, 116, 116, 1068, 0, - 1207, 1212, 0, 0, 0, 1218, 1221, 1222, 1223, 866, - 865, 875, 876, 868, 869, 870, 871, 872, 873, 874, - 867, 554, 0, 877, 1884, 2291, 0, 0, 554, 554, - 554, 0, 1233, 0, 1236, 1237, 0, 0, 0, 1241, - 0, 1243, 1244, 554, 554, 0, 0, 0, 0, 1251, - 1252, 1253, 0, 1255, 1256, 0, 1258, 1259, 1260, 1261, - 0, 1263, 1264, 1265, 0, 0, 0, 32, 33, 68, - 35, 36, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 61, 0, 0, 0, 0, 0, 74, 0, 0, - 0, 37, 56, 57, 0, 0, 0, 0, 62, 0, - 0, 0, 0, 554, 0, 0, 1141, 0, 0, 0, - 0, 0, 0, 866, 865, 875, 876, 868, 869, 870, - 871, 872, 873, 874, 867, 47, 0, 877, 0, 77, - 0, 0, 0, 0, 715, 866, 865, 875, 876, 868, - 869, 870, 871, 872, 873, 874, 867, 0, 0, 877, - 0, 0, 0, 0, 0, 116, 116, 116, 116, 116, - 0, 0, 554, 0, 0, 0, 0, 116, 0, 0, - 0, 0, 116, 0, 0, 0, 116, 0, 0, 0, - 0, 0, 116, 0, 1697, 798, 0, 0, 0, 0, - 0, 39, 70, 43, 42, 45, 0, 58, 0, 0, - 0, 0, 0, 1201, 558, 866, 865, 875, 876, 868, - 869, 870, 871, 872, 873, 874, 867, 0, 0, 877, - 1461, 545, 0, 46, 73, 72, 0, 0, 54, 55, - 44, 0, 0, 0, 0, 0, 0, 0, 0, 1231, - 1232, 866, 865, 875, 876, 868, 869, 870, 871, 872, - 873, 874, 867, 0, 0, 877, 0, 0, 0, 0, - 0, 0, 0, 0, 558, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 0, 0, 558, 116, 558, 558, - 0, 0, 0, 0, 0, 48, 71, 0, 50, 51, - 63, 0, 64, 0, 545, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 554, 554, - 554, 0, 0, 0, 0, 0, 808, 0, 0, 0, - 1481, 0, 0, 558, 558, 0, 0, 0, 970, 116, - 980, 0, 0, 0, 0, 0, 0, 0, 0, 558, - 0, 0, 0, 0, 0, 1506, 1507, 0, 0, 0, - 1511, 0, 0, 1514, 0, 0, 0, 0, 1519, 0, - 0, 114, 0, 0, 351, 0, 0, 0, 0, 0, - 114, 0, 0, 0, 0, 0, 554, 0, 554, 0, - 558, 69, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 384, 0, 0, 0, 0, 0, 0, 0, - 0, 426, 0, 0, 528, 546, 0, 114, 0, 0, - 114, 0, 558, 558, 0, 0, 0, 0, 0, 0, - 32, 114, 68, 35, 36, 0, 75, 0, 0, 114, - 0, 0, 0, 0, 61, 558, 0, 0, 0, 0, - 74, 0, 0, 0, 37, 0, 0, 0, 0, 0, - 0, 554, 0, 0, 0, 558, 558, 0, 558, 0, - 558, 865, 875, 876, 868, 869, 870, 871, 872, 873, - 874, 867, 0, 0, 877, 0, 0, 0, 0, 0, - 0, 0, 77, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2110, 0, 0, 1076, 0, - 2316, 116, 526, 0, 0, 1084, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, - 0, 0, 0, 1101, 1102, 1103, 0, 0, 0, 116, - 1104, 0, 0, 0, 39, 70, 43, 42, 45, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 558, 0, - 2111, 116, 558, 0, 0, 0, 0, 0, 0, 558, - 558, 0, 0, 0, 545, 0, 46, 73, 72, 0, - 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1135, 0, 0, 0, 0, 0, - 545, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 554, 59, 60, 0, 2112, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2113, 71, - 0, 50, 51, 63, 114, 64, 0, 0, 0, 0, - 0, 0, 0, 1158, 0, 0, 0, 0, 0, 0, - 0, 558, 0, 0, 0, 0, 0, 0, 558, 558, - 558, 0, 0, 0, 0, 0, 0, 558, 0, 0, - 0, 0, 0, 0, 1627, 0, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 114, 554, 0, 554, 554, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, + 1195, 1196, 1140, 768, 1107, 1108, 1623, 1078, 523, 524, + 1171, 76, 1416, 1475, 857, 1123, 1124, 1125, 1571, 1126, + 1572, 1096, 1155, 1134, 707, 1175, 905, 1098, 1099, 1094, + 1474, 1160, 1473, 2009, 2236, 1129, 1100, 1101, 1102, 1896, + 2216, 1929, 2233, 1139, 1232, 1156, 2181, 805, 1157, 851, + 850, 1109, 1110, 2079, 870, 871, 872, 873, 874, 875, + 876, 869, 1846, 1170, 879, 1848, 2051, 852, 1218, 1221, + 1586, 1172, 2047, 1895, 1136, 1230, 851, 850, 868, 867, + 877, 878, 870, 871, 872, 873, 874, 875, 876, 869, + 1168, 1848, 879, 981, 852, 1929, 2178, 805, 1151, 1152, + 1289, 1970, 1135, 1929, 2083, 979, 2009, 2075, 2046, 979, + 1863, 1138, 868, 867, 877, 878, 870, 871, 872, 873, + 874, 875, 876, 869, 1201, 1202, 879, 2009, 2023, 2027, + 809, 813, 1859, 710, 711, 712, 713, 714, 2009, 805, + 2026, 860, 1300, 851, 850, 1856, 1302, 1833, 540, 1242, + 2246, 1244, 1855, 1176, 1270, 1294, 1318, 1323, 553, 851, + 850, 852, 851, 850, 851, 850, 2009, 2008, 1301, 2196, + 1853, 1727, 1929, 1928, 1911, 805, 1811, 852, 904, 1838, + 852, 1837, 852, 1441, 805, 1271, 1205, 1207, 1836, 917, + 1870, 1561, 1215, 1651, 732, 1650, 732, 902, 1825, 1824, + 1821, 1822, 1093, 1821, 1820, 1298, 1469, 805, 77, 1319, + 1410, 1068, 1208, 1272, 805, 1206, 1413, 1172, 1397, 1396, + 1200, 1343, 1206, 805, 1272, 1204, 1240, 1241, 1122, 1303, + 1307, 1312, 1306, 1247, 1248, 1249, 1250, 1329, 1119, 1226, + 1890, 1326, 456, 455, 458, 459, 460, 461, 1871, 1090, + 986, 457, 462, 1089, 1088, 1383, 1374, 1375, 1376, 1377, + 1087, 1391, 76, 1392, 1393, 1079, 1077, 1394, 1076, 1378, + 981, 1075, 1073, 1007, 1006, 981, 1370, 1251, 1252, 981, + 791, 718, 1256, 374, 372, 1259, 902, 1299, 81, 985, + 1264, 2045, 1458, 1767, 2183, 1756, 1561, 1404, 1767, 1171, + 986, 1906, 1460, 1461, 1462, 1561, 987, 1834, 989, 814, + 81, 1823, 1780, 1659, 1574, 1308, 1469, 1492, 1491, 1127, + 1358, 1359, 1360, 1361, 1395, 985, 1149, 1080, 991, 868, + 867, 877, 878, 870, 871, 872, 873, 874, 875, 876, + 869, 1175, 1206, 879, 1277, 1280, 1281, 1282, 1278, 1871, + 1279, 1283, 1319, 1272, 1771, 1772, 987, 802, 985, 1411, + 1172, 1412, 1767, 801, 1469, 796, 2189, 1419, 1277, 1280, + 1281, 1282, 1278, 2179, 1279, 1283, 1779, 1401, 1446, 2049, + 2283, 1940, 1407, 1344, 1384, 1916, 1386, 1373, 1804, 1530, + 1531, 1771, 1772, 979, 979, 979, 979, 979, 1463, 1369, + 1578, 1390, 77, 1364, 1363, 1459, 1069, 788, 1381, 2281, + 1289, 2265, 1553, 1832, 1774, 1466, 1756, 1629, 1084, 1418, + 979, 1453, 1777, 1776, 1544, 1542, 1440, 77, 1534, 1545, + 1543, 1541, 1546, 1097, 1281, 1282, 1540, 1497, 1499, 422, + 423, 2213, 2185, 1692, 1505, 1506, 1507, 1508, 902, 1443, + 845, 846, 1486, 1159, 1563, 2211, 1564, 1562, 1417, 1548, + 1451, 1117, 1450, 2000, 540, 1556, 1588, 1858, 1555, 1176, + 1809, 1808, 1323, 1580, 2124, 2127, 2175, 2174, 2044, 843, + 2203, 2042, 2118, 2117, 1465, 373, 1654, 1616, 807, 1004, + 786, 770, 1468, 1470, 1536, 1537, 767, 1539, 1472, 904, + 808, 1587, 766, 76, 1478, 1547, 719, 1481, 1482, 1483, + 1535, 1575, 2226, 1538, 1489, 732, 1490, 732, 732, 1493, + 1494, 997, 1495, 1496, 2055, 2054, 1500, 1501, 1502, 1503, + 1504, 1904, 1655, 1068, 1566, 1581, 1584, 1511, 1512, 1513, + 1979, 1515, 1516, 1415, 1518, 1519, 1520, 1521, 1385, 1523, + 1524, 1525, 1649, 1151, 1152, 1083, 1577, 1689, 845, 846, + 2225, 1161, 1162, 981, 981, 981, 981, 981, 1632, 1406, + 1549, 1550, 1285, 1071, 1449, 1529, 797, 798, 1646, 2224, + 981, 2223, 1448, 2030, 1624, 419, 1626, 1701, 2206, 2205, + 981, 2172, 2128, 2059, 1237, 1999, 1208, 420, 81, 1719, + 1720, 2058, 1721, 1722, 1982, 1561, 2285, 2284, 1697, 1634, + 1635, 1636, 2285, 1480, 1728, 1729, 904, 1477, 1114, 1731, + 1216, 1217, 1171, 848, 1663, 1676, 1680, 2284, 1652, 2072, + 1693, 1660, 1673, 1807, 1724, 1658, 1665, 1656, 1607, 1608, + 1144, 1672, 376, 1683, 1684, 1614, 378, 1687, 83, 1761, + 52, 76, 78, 1666, 1615, 1621, 1617, 1618, 1619, 1620, + 2100, 49, 2102, 19, 2101, 18, 2103, 20, 1, 1698, + 2173, 1653, 2123, 1782, 1703, 1705, 1699, 1784, 1786, 1787, + 1788, 1717, 1757, 1172, 1534, 1718, 1766, 2104, 21, 1631, + 2125, 1760, 2099, 15, 2098, 14, 2041, 1732, 1733, 1734, + 1735, 1736, 2092, 10, 1959, 1645, 1944, 1647, 1648, 1943, + 1789, 2111, 30, 1638, 1317, 1781, 1791, 2110, 29, 1637, + 1806, 2109, 28, 787, 1697, 1323, 1785, 1323, 434, 2107, + 25, 1741, 1742, 1132, 1744, 1745, 1763, 1747, 1748, 1749, + 1750, 1775, 1752, 1753, 1754, 1664, 1802, 2106, 24, 1803, + 1702, 1428, 1783, 2108, 26, 2097, 13, 2094, 12, 2093, + 11, 2091, 9, 1800, 2133, 1330, 1796, 1320, 1830, 1831, + 1795, 550, 89, 117, 1398, 735, 117, 1841, 1968, 337, + 1379, 1378, 117, 1327, 1593, 2126, 789, 1592, 1589, 1604, + 1341, 1591, 1590, 1737, 1738, 2121, 1835, 1594, 1743, 1015, + 1013, 1746, 1014, 1012, 117, 1017, 1751, 1016, 341, 999, + 1141, 2162, 1829, 849, 97, 53, 117, 1971, 1679, 117, + 560, 1422, 117, 1874, 92, 98, 744, 1839, 1850, 343, + 887, 1447, 1567, 538, 117, 539, 560, 1762, 1889, 531, + 1843, 806, 117, 2190, 1891, 811, 2136, 1485, 1869, 916, + 1227, 439, 1844, 1851, 1845, 1551, 2139, 1444, 1445, 1872, + 813, 1163, 1860, 454, 453, 452, 449, 450, 1405, 1862, + 1154, 1849, 1526, 1068, 861, 1826, 437, 429, 977, 970, + 1414, 1897, 1854, 1276, 1274, 1273, 1085, 527, 1773, 1867, + 1769, 1287, 976, 383, 66, 465, 751, 356, 1892, 2066, + 34, 377, 1814, 424, 1880, 1812, 1813, 27, 17, 757, + 22, 16, 1816, 1420, 705, 38, 1912, 1467, 1840, 1819, + 41, 1924, 1925, 1926, 1534, 40, 1633, 868, 867, 877, + 878, 870, 871, 872, 873, 874, 875, 876, 869, 1931, + 1488, 879, 1387, 2161, 2251, 1905, 1323, 773, 2272, 1842, + 2193, 2105, 76, 2112, 1913, 1922, 1899, 1900, 2096, 2095, + 2238, 23, 1901, 2237, 4, 1902, 1927, 793, 67, 1923, + 1903, 31, 2, 0, 0, 0, 0, 0, 0, 0, + 981, 0, 1873, 0, 547, 1575, 0, 556, 1932, 0, + 1876, 979, 1956, 1957, 1958, 0, 0, 0, 0, 0, + 0, 1885, 1886, 709, 1966, 0, 0, 0, 0, 0, + 1989, 1990, 1991, 1992, 1993, 1942, 1955, 1967, 1996, 1997, + 0, 0, 1960, 1961, 0, 0, 1697, 1761, 1983, 0, + 2004, 1975, 1962, 1984, 1985, 0, 1800, 0, 0, 0, + 0, 1782, 0, 0, 0, 1907, 1908, 1909, 1910, 1976, + 0, 2007, 1969, 0, 1378, 0, 0, 0, 117, 0, + 0, 0, 0, 560, 560, 0, 0, 1921, 0, 1760, + 0, 0, 0, 0, 0, 560, 0, 0, 2029, 0, + 2031, 0, 0, 2010, 2001, 0, 0, 0, 0, 2006, + 0, 0, 0, 2028, 0, 2011, 1294, 2021, 2012, 0, + 2056, 2016, 2022, 0, 0, 0, 0, 0, 0, 117, + 0, 0, 1933, 1934, 2032, 1936, 0, 0, 0, 0, + 0, 0, 0, 1761, 0, 76, 0, 0, 0, 0, + 0, 0, 2048, 2050, 0, 0, 0, 2060, 1941, 0, + 0, 0, 0, 0, 0, 2053, 0, 0, 2061, 0, + 0, 0, 76, 0, 0, 0, 856, 2085, 0, 0, + 0, 981, 2078, 2073, 0, 1760, 979, 0, 0, 0, + 0, 1987, 0, 0, 0, 2071, 1994, 2132, 2080, 0, + 0, 1998, 0, 2077, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1888, 0, 0, 1726, 0, + 0, 0, 2130, 2129, 0, 2143, 0, 0, 2013, 2014, + 2015, 0, 0, 0, 0, 0, 2003, 2131, 2138, 2142, + 0, 2149, 2157, 2144, 0, 0, 0, 2150, 0, 1534, + 556, 556, 2024, 0, 2025, 0, 0, 76, 0, 0, + 1345, 1346, 556, 1351, 1352, 1353, 1354, 1355, 0, 0, + 0, 0, 117, 117, 117, 0, 0, 0, 0, 0, + 0, 1365, 1366, 1367, 0, 2153, 2166, 0, 560, 0, + 2169, 2171, 1790, 2062, 2063, 2064, 2065, 2184, 0, 0, + 2069, 2070, 0, 2177, 868, 867, 877, 878, 870, 871, + 872, 873, 874, 875, 876, 869, 0, 0, 879, 0, + 0, 2078, 0, 0, 0, 0, 0, 0, 2208, 0, + 0, 2074, 0, 0, 0, 0, 0, 76, 2200, 0, + 0, 0, 2207, 76, 2214, 2210, 0, 2215, 2229, 2220, + 2212, 0, 2209, 0, 0, 0, 981, 0, 0, 0, + 76, 2232, 0, 2142, 0, 76, 0, 2242, 2222, 2259, + 2145, 0, 2227, 2241, 2248, 2240, 0, 2239, 2151, 0, + 0, 0, 0, 2260, 76, 0, 0, 76, 76, 0, + 0, 2245, 76, 2229, 2266, 0, 0, 2275, 0, 0, + 0, 0, 2278, 0, 0, 0, 0, 0, 0, 76, + 0, 2280, 76, 2282, 2229, 2267, 1864, 0, 2269, 2293, + 2295, 2296, 0, 0, 0, 0, 427, 76, 0, 76, + 2303, 0, 2229, 76, 2229, 0, 0, 2180, 0, 0, + 0, 1887, 0, 2290, 560, 0, 0, 76, 0, 547, + 76, 0, 2229, 2188, 547, 1000, 117, 76, 1894, 117, + 0, 76, 2229, 0, 2308, 117, 2229, 560, 0, 0, + 0, 0, 0, 0, 560, 560, 560, 117, 117, 117, + 0, 2317, 0, 0, 117, 0, 0, 0, 0, 560, + 560, 0, 904, 0, 0, 0, 0, 0, 0, 1914, + 0, 0, 1915, 0, 0, 1917, 0, 0, 0, 0, + 0, 0, 0, 904, 0, 0, 0, 0, 0, 0, + 0, 1209, 1214, 0, 0, 0, 1220, 1223, 1224, 1225, + 868, 867, 877, 878, 870, 871, 872, 873, 874, 875, + 876, 869, 0, 0, 879, 0, 0, 0, 117, 560, + 117, 2250, 560, 1235, 0, 1238, 1239, 0, 0, 0, + 1243, 0, 1245, 1246, 0, 0, 0, 0, 0, 0, + 1253, 1254, 1255, 0, 1257, 1258, 0, 1260, 1261, 1262, + 1263, 0, 1265, 1266, 1267, 0, 0, 0, 0, 1609, + 1610, 1611, 1613, 1700, 0, 0, 0, 117, 0, 0, + 2310, 2311, 0, 856, 0, 0, 0, 0, 0, 0, + 0, 1070, 0, 0, 868, 867, 877, 878, 870, 871, + 872, 873, 874, 875, 876, 869, 0, 0, 879, 0, + 0, 0, 0, 0, 556, 0, 0, 0, 0, 0, + 0, 556, 556, 556, 0, 0, 0, 0, 0, 560, + 863, 0, 866, 0, 0, 0, 556, 556, 0, 880, + 881, 882, 883, 884, 885, 886, 1464, 864, 865, 862, + 868, 867, 877, 878, 870, 871, 872, 873, 874, 875, + 876, 869, 0, 0, 879, 560, 560, 868, 867, 877, + 878, 870, 871, 872, 873, 874, 875, 876, 869, 0, + 0, 879, 0, 868, 867, 877, 878, 870, 871, 872, + 873, 874, 875, 876, 869, 427, 556, 879, 0, 1143, + 117, 0, 0, 0, 0, 0, 0, 0, 117, 117, + 904, 0, 0, 117, 117, 0, 0, 117, 117, 117, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 560, 560, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 556, 0, 0, 32, 33, + 68, 35, 36, 0, 0, 0, 0, 0, 0, 2137, + 2141, 0, 61, 0, 0, 0, 0, 0, 74, 0, + 0, 0, 37, 56, 57, 0, 0, 0, 0, 62, + 0, 0, 0, 0, 0, 0, 1203, 0, 0, 0, + 0, 117, 560, 0, 560, 0, 0, 117, 0, 117, + 117, 0, 0, 117, 547, 0, 47, 0, 0, 0, + 77, 1484, 0, 0, 2158, 2159, 0, 0, 0, 0, + 0, 0, 1233, 1234, 1815, 0, 0, 0, 0, 0, + 0, 117, 117, 117, 0, 0, 1509, 1510, 0, 0, + 0, 1514, 0, 0, 1517, 0, 0, 0, 0, 1522, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 39, 70, 43, 42, 45, 547, 58, 0, + 0, 0, 0, 0, 2141, 0, 0, 0, 0, 0, + 0, 556, 556, 556, 0, 0, 2221, 0, 0, 0, + 0, 0, 0, 0, 46, 73, 72, 0, 0, 54, + 55, 44, 0, 0, 0, 0, 0, 0, 0, 1877, + 1878, 0, 1879, 0, 0, 1881, 0, 1883, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 60, 0, 0, 0, 556, + 0, 556, 0, 0, 0, 0, 0, 48, 71, 0, + 50, 51, 63, 0, 64, 2294, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 117, 117, 117, 117, 117, 0, 0, 0, 0, + 0, 0, 0, 117, 810, 0, 0, 0, 117, 0, + 0, 1930, 117, 0, 0, 0, 0, 0, 117, 0, + 0, 0, 32, 0, 68, 35, 36, 0, 0, 0, + 0, 0, 0, 0, 556, 0, 61, 0, 0, 0, + 560, 0, 74, 0, 0, 349, 37, 0, 0, 115, + 0, 0, 353, 0, 0, 0, 0, 0, 115, 0, + 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 386, 0, 0, 346, 77, 0, 0, 0, 0, 428, + 0, 0, 530, 548, 0, 115, 0, 0, 115, 0, + 560, 0, 0, 0, 0, 0, 0, 2113, 75, 0, + 115, 0, 2319, 560, 117, 560, 560, 0, 115, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 39, 70, 43, 42, + 45, 0, 342, 347, 348, 0, 0, 547, 0, 0, + 560, 560, 2114, 0, 0, 0, 117, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 560, 0, 46, 73, + 72, 0, 0, 0, 0, 44, 0, 0, 339, 0, + 0, 340, 0, 547, 345, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 560, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 59, 60, + 0, 2115, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2116, 71, 0, 50, 51, 63, 0, 64, 560, + 560, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1630, 331, 0, + 0, 0, 560, 0, 0, 0, 0, 0, 0, 0, + 556, 0, 556, 556, 0, 0, 0, 0, 0, 0, + 0, 0, 560, 560, 0, 560, 0, 560, 0, 0, + 344, 334, 335, 0, 352, 0, 0, 0, 336, 338, + 0, 332, 351, 350, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1690, 1691, 0, + 0, 0, 0, 0, 115, 0, 0, 69, 0, 0, + 0, 0, 0, 556, 0, 0, 0, 0, 117, 0, + 0, 0, 0, 0, 0, 0, 0, 556, 0, 0, + 0, 0, 0, 117, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 117, 0, 0, 0, + 0, 0, 75, 0, 1730, 115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 560, 0, 0, 117, 560, + 0, 0, 0, 0, 0, 0, 560, 560, 0, 0, + 0, 0, 0, 547, 0, 0, 1143, 1765, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1765, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 556, + 556, 0, 556, 0, 1799, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 1687, 1688, 0, 0, 0, 0, 0, - 558, 0, 116, 0, 0, 0, 0, 558, 0, 554, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 554, 0, 0, 1268, 0, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1299, 0, 0, 558, 0, 0, 0, 0, 558, 0, - 1727, 0, 0, 116, 0, 116, 0, 0, 0, 0, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 558, 0, 0, 0, 0, 0, 0, 545, - 0, 0, 1141, 1762, 0, 0, 0, 0, 114, 114, - 114, 0, 0, 0, 0, 0, 0, 0, 546, 0, - 0, 0, 0, 546, 0, 1762, 558, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 554, 554, 1381, 554, 0, - 1796, 0, 0, 0, 0, 1389, 1390, 0, 0, 1391, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1401, - 0, 0, 0, 0, 0, 0, 0, 116, 0, 0, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 116, 0, 0, 32, 0, 68, - 35, 36, 0, 0, 0, 0, 0, 0, 1854, 0, - 0, 61, 1858, 0, 0, 0, 0, 74, 0, 1862, - 1863, 37, 0, 0, 0, 0, 0, 558, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 558, 114, 0, - 0, 0, 114, 0, 0, 114, 0, 0, 0, 77, - 0, 1090, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 114, 114, 114, 0, 0, 0, 0, - 114, 0, 2110, 0, 0, 2268, 2271, 2267, 0, 0, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 545, - 0, 558, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1916, 0, 558, 0, 0, 0, 0, 1916, 1916, - 1916, 39, 70, 43, 42, 45, 0, 554, 0, 0, - 0, 0, 0, 0, 0, 0, 1916, 2111, 0, 0, - 0, 0, 0, 0, 114, 0, 384, 0, 0, 0, - 0, 0, 0, 46, 73, 72, 0, 0, 0, 0, - 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 114, 0, 0, 0, 0, 0, 0, - 1977, 0, 59, 60, 1090, 2112, 0, 554, 0, 0, - 0, 0, 0, 0, 0, 2113, 71, 0, 50, 51, - 63, 0, 64, 0, 0, 0, 0, 0, 0, 1643, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2002, 0, 0, 0, 0, 1916, 0, - 0, 1211, 1211, 0, 0, 0, 1211, 1211, 1211, 1211, - 0, 1796, 0, 546, 0, 0, 0, 0, 0, 0, - 0, 0, 1796, 0, 0, 0, 0, 0, 0, 0, - 0, 1690, 0, 1211, 1211, 1211, 1211, 0, 0, 1211, - 1211, 1211, 1211, 1211, 0, 0, 0, 0, 0, 0, - 1211, 1211, 1211, 0, 1211, 1211, 2049, 1211, 1211, 1211, - 1211, 69, 1211, 1211, 1211, 0, 114, 0, 0, 0, - 0, 0, 0, 0, 114, 384, 0, 0, 0, 114, - 114, 0, 0, 114, 1302, 1090, 546, 0, 0, 0, - 0, 2073, 0, 0, 0, 0, 0, 0, 0, 0, - 1090, 0, 0, 0, 0, 0, 75, 0, 0, 0, 32, 0, 68, 35, 36, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 61, 0, 0, 0, 0, 0, - 74, 1796, 0, 0, 37, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 61, 0, 0, 0, 560, 0, + 74, 0, 0, 0, 37, 560, 560, 560, 0, 0, + 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, + 0, 0, 0, 560, 0, 0, 0, 0, 115, 115, + 115, 0, 0, 0, 0, 0, 0, 0, 548, 0, + 0, 0, 77, 548, 0, 0, 0, 0, 0, 0, + 0, 117, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1857, 0, 0, 2113, 1861, 0, 2271, 2274, + 2270, 0, 0, 1865, 1866, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 560, 0, 117, + 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 39, 70, 43, 42, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 545, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 0, 0, - 0, 0, 77, 0, 0, 114, 114, 0, 0, 114, + 2114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 560, 0, 0, 0, 0, 560, 46, 73, 72, 0, + 117, 0, 117, 44, 0, 0, 0, 0, 560, 0, + 0, 0, 0, 547, 0, 0, 0, 0, 0, 560, + 0, 0, 0, 0, 0, 1919, 0, 0, 0, 0, + 0, 0, 1919, 1919, 1919, 0, 0, 0, 0, 0, + 0, 556, 0, 0, 0, 0, 59, 60, 0, 2115, + 1919, 0, 0, 560, 0, 0, 0, 0, 0, 2116, + 71, 0, 50, 51, 63, 0, 64, 0, 0, 0, + 0, 0, 115, 0, 0, 115, 0, 0, 0, 0, + 0, 1092, 0, 0, 0, 0, 0, 0, 560, 0, + 0, 0, 0, 115, 115, 115, 0, 0, 0, 0, + 115, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1980, 0, 0, 0, 0, 0, + 0, 556, 0, 0, 117, 0, 0, 0, 560, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 69, 0, 2005, 0, 0, + 0, 117, 1919, 0, 115, 0, 386, 0, 0, 0, + 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1799, 0, 0, 0, + 0, 0, 0, 0, 560, 0, 0, 0, 0, 0, + 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 115, 560, 0, 0, 0, 0, 0, + 2052, 0, 0, 0, 1092, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2076, 0, 0, 560, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 560, 0, + 0, 1213, 1213, 0, 0, 0, 1213, 1213, 1213, 1213, + 560, 0, 0, 548, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1799, 0, 0, 0, 0, + 0, 0, 0, 1213, 1213, 1213, 1213, 0, 0, 1213, + 1213, 1213, 1213, 1213, 0, 0, 0, 0, 547, 0, + 1213, 1213, 1213, 0, 1213, 1213, 0, 1213, 1213, 1213, + 1213, 0, 1213, 1213, 1213, 0, 115, 0, 0, 0, + 0, 0, 0, 0, 115, 386, 0, 0, 0, 115, + 115, 0, 0, 115, 1304, 1092, 548, 0, 0, 0, + 0, 556, 0, 0, 0, 0, 0, 0, 0, 0, + 1092, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2182, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 32, 1799, 68, 35, 36, 0, + 0, 0, 0, 0, 0, 1919, 0, 115, 61, 0, + 0, 0, 0, 115, 74, 115, 115, 556, 37, 115, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1037, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1402, 1403, 115, + 0, 0, 0, 0, 0, 0, 77, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2201, 0, 0, 0, 0, 0, 0, 0, 2113, + 0, 0, 0, 1092, 2315, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 39, 70, + 43, 42, 45, 0, 0, 1024, 0, 0, 0, 0, + 0, 0, 0, 0, 2114, 0, 0, 0, 0, 1213, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 46, 73, 72, 0, 0, 0, 0, 44, 0, 0, + 0, 1213, 0, 0, 0, 0, 0, 1038, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1213, 1213, 0, 0, + 0, 1213, 0, 0, 1213, 0, 0, 0, 0, 1213, + 59, 60, 0, 2115, 1037, 0, 548, 115, 115, 115, + 115, 115, 0, 2116, 71, 0, 50, 51, 63, 386, + 64, 0, 0, 0, 115, 0, 0, 0, 386, 0, + 0, 0, 0, 0, 115, 1051, 1054, 1055, 1056, 1057, + 1058, 1059, 548, 1060, 1061, 1062, 1063, 1064, 1065, 1066, + 0, 1039, 1040, 1041, 1042, 1018, 1022, 1052, 1019, 1025, + 1021, 1023, 1020, 0, 1026, 1027, 1028, 1029, 1030, 1031, + 1032, 1033, 1034, 1035, 1036, 1043, 1044, 1045, 1046, 1047, + 1048, 1049, 1050, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1024, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 69, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 115, 0, 0, 0, 0, 0, 0, 0, 0, 1038, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 75, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1053, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2110, 0, 554, 0, 0, - 2312, 0, 0, 0, 0, 0, 0, 1399, 1400, 114, - 0, 0, 0, 1826, 0, 1035, 0, 2179, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1836, 0, - 0, 0, 0, 0, 39, 70, 43, 42, 45, 0, - 0, 1840, 0, 1090, 0, 0, 0, 0, 0, 0, - 2111, 0, 0, 0, 2198, 0, 0, 0, 0, 0, - 0, 1796, 0, 1857, 0, 0, 46, 73, 72, 0, - 0, 1916, 1035, 44, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 554, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1211, - 0, 0, 0, 0, 0, 0, 0, 0, 1022, 0, - 0, 0, 0, 0, 0, 59, 60, 0, 2112, 0, - 0, 1211, 0, 0, 0, 0, 0, 0, 2113, 71, - 0, 50, 51, 63, 0, 64, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1211, 1211, 0, 0, - 1036, 1211, 0, 0, 1211, 0, 0, 0, 0, 1211, - 0, 0, 0, 0, 0, 1022, 546, 114, 114, 114, - 114, 114, 0, 0, 0, 0, 0, 0, 0, 384, - 0, 0, 0, 0, 114, 0, 0, 0, 384, 0, - 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, - 0, 0, 546, 0, 0, 0, 0, 1036, 0, 0, - 0, 0, 0, 0, 0, 0, 1939, 1049, 1052, 1053, - 1054, 1055, 1056, 1057, 69, 1058, 1059, 1060, 1061, 1062, - 1063, 1064, 0, 1037, 1038, 1039, 1040, 1016, 1020, 1050, - 1017, 1023, 1019, 1021, 1018, 0, 1024, 1025, 1026, 1027, - 1028, 1029, 1030, 1031, 1032, 1033, 1034, 1041, 1042, 1043, - 1044, 1045, 1046, 1047, 1048, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 1049, 1052, 1053, 1054, 1055, 1056, - 1057, 0, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 114, - 1037, 1038, 1039, 1040, 1016, 1020, 1050, 1017, 1023, 1019, - 1021, 1018, 0, 1024, 1025, 1026, 1027, 1028, 1029, 1030, - 1031, 1032, 1033, 1034, 1041, 1042, 1043, 1044, 1045, 1046, - 1047, 1048, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 0, 0, 0, 0, 0, 0, 1051, 0, - 0, 0, 1211, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1211, 0, 1090, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1051, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 546, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 293, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 227, 0, 0, 0, 2150, 852, 0, 0, - 0, 0, 161, 0, 0, 0, 0, 191, 0, 0, - 152, 199, 197, 0, 0, 0, 233, 291, 0, 0, - 0, 0, 194, 0, 0, 314, 282, 212, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 853, 0, 856, 0, 0, - 0, 0, 0, 114, 142, 0, 0, 0, 0, 0, - 849, 848, 0, 0, 0, 0, 0, 0, 114, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 850, 0, - 0, 114, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 114, 0, 121, 0, 0, 0, 0, - 171, 213, 132, 0, 0, 0, 184, 320, 0, 426, - 0, 247, 0, 287, 174, 192, 136, 118, 130, 146, - 173, 223, 256, 266, 0, 0, 0, 0, 0, 153, - 0, 259, 231, 309, 0, 0, 237, 258, 195, 298, - 249, 307, 308, 175, 292, 317, 322, 279, 162, 0, - 122, 0, 244, 157, 188, 0, 0, 0, 150, 0, - 0, 0, 278, 137, 294, 211, 217, 147, 149, 148, - 131, 273, 296, 141, 151, 283, 262, 288, 156, 0, - 0, 546, 0, 0, 0, 0, 0, 0, 123, 290, - 306, 143, 270, 271, 323, 257, 125, 304, 286, 209, - 185, 186, 124, 0, 254, 160, 170, 155, 226, 0, - 169, 246, 301, 302, 154, 325, 133, 316, 127, 134, - 315, 220, 0, 219, 318, 297, 305, 210, 203, 0, - 126, 303, 208, 202, 190, 165, 177, 242, 198, 243, - 178, 215, 214, 216, 0, 0, 114, 284, 312, 326, - 200, 139, 0, 272, 295, 0, 0, 140, 168, 164, - 241, 218, 135, 180, 281, 189, 196, 253, 324, 230, - 260, 144, 311, 280, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 114, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 387, 388, 389, - 390, 391, 395, 396, 400, 401, 409, 408, 407, 410, - 411, 413, 412, 414, 392, 393, 394, 397, 398, 399, - 402, 403, 406, 404, 405, 0, 117, 128, 193, 0, - 251, 167, 313, 0, 159, 384, 0, 384, 0, 0, - 0, 119, 120, 129, 138, 145, 158, 163, 166, 172, - 176, 179, 181, 182, 183, 187, 201, 204, 205, 206, - 207, 221, 222, 224, 225, 228, 229, 232, 234, 235, - 236, 238, 239, 240, 245, 248, 250, 252, 255, 261, - 263, 264, 265, 267, 268, 269, 274, 275, 276, 277, - 285, 289, 299, 300, 310, 319, 321, 0, 426, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 676, 656, 293, 614, 679, 586, 603, - 690, 604, 607, 645, 572, 626, 227, 601, 573, 0, - 590, 563, 597, 564, 587, 616, 161, 585, 658, 629, - 678, 191, 641, 0, 152, 199, 197, 0, 0, 114, - 233, 291, 677, 622, 0, 685, 194, 0, 638, 314, - 282, 212, 0, 0, 618, 665, 624, 654, 613, 647, - 579, 637, 680, 602, 643, 681, 546, 0, 0, 2157, - 0, 0, 0, 0, 0, 0, 114, 0, 142, 0, - 640, 675, 599, 642, 644, 561, 639, 0, 567, 574, - 689, 671, 593, 594, 595, 0, 0, 0, 0, 0, - 0, 0, 617, 625, 651, 610, 0, 0, 0, 0, - 0, 0, 0, 0, 591, 0, 635, 0, 0, 0, - 575, 568, 0, 0, 615, 0, 0, 0, 578, 121, - 592, 652, 0, 559, 171, 213, 132, 655, 670, 612, - 184, 320, 674, 609, 608, 247, 0, 287, 174, 192, - 136, 118, 130, 146, 173, 223, 256, 266, 600, 560, - 659, 588, 598, 153, 596, 259, 231, 309, 0, 632, - 237, 258, 195, 298, 249, 307, 308, 175, 292, 317, - 322, 279, 162, 0, 122, 0, 244, 157, 188, 611, - 646, 589, 150, 649, 636, 664, 278, 137, 294, 211, - 217, 147, 149, 148, 131, 273, 296, 141, 151, 283, - 262, 288, 156, 0, 0, 2160, 2161, 2162, 0, 0, - 0, 0, 123, 290, 306, 143, 270, 271, 323, 257, - 125, 304, 286, 209, 185, 186, 124, 0, 254, 160, - 170, 155, 226, 0, 169, 246, 301, 302, 154, 325, - 133, 316, 127, 134, 315, 220, 0, 219, 318, 297, - 305, 210, 203, 0, 126, 303, 208, 202, 190, 165, - 177, 242, 198, 243, 178, 215, 214, 216, 0, 565, - 0, 284, 312, 326, 200, 139, 584, 272, 295, 0, - 0, 140, 168, 164, 241, 218, 135, 180, 281, 189, - 196, 253, 324, 230, 260, 144, 311, 280, 582, 583, - 580, 0, 581, 627, 628, 682, 683, 684, 653, 576, - 0, 666, 667, 0, 657, 672, 673, 648, 691, 605, - 606, 566, 569, 570, 571, 577, 619, 620, 631, 634, - 662, 661, 660, 663, 668, 687, 686, 688, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, - 117, 128, 193, 692, 251, 167, 313, 562, 159, 0, - 0, 621, 623, 633, 650, 119, 120, 129, 138, 145, - 158, 163, 166, 172, 176, 179, 181, 182, 183, 187, - 201, 204, 205, 206, 207, 221, 222, 224, 225, 228, - 229, 232, 234, 235, 236, 238, 239, 240, 245, 248, - 250, 252, 255, 261, 263, 264, 265, 267, 268, 269, - 274, 275, 276, 277, 285, 289, 299, 300, 310, 319, - 321, 669, 676, 656, 293, 614, 679, 586, 603, 690, - 604, 607, 645, 572, 626, 227, 601, 573, 0, 590, - 563, 597, 564, 587, 616, 161, 585, 658, 629, 678, - 191, 641, 0, 152, 199, 197, 0, 0, 0, 233, - 291, 677, 622, 0, 685, 194, 0, 638, 314, 282, - 212, 0, 0, 618, 665, 624, 654, 613, 647, 579, - 637, 680, 602, 643, 681, 0, 0, 0, 557, 0, - 1322, 1323, 0, 0, 0, 0, 0, 142, 0, 640, - 675, 599, 642, 644, 561, 639, 0, 567, 574, 689, - 671, 593, 594, 595, 1573, 0, 0, 0, 0, 0, - 0, 617, 625, 651, 610, 0, 0, 0, 0, 0, - 0, 0, 0, 591, 0, 635, 0, 0, 0, 575, - 568, 0, 0, 615, 0, 0, 0, 578, 121, 592, - 652, 0, 559, 171, 213, 132, 655, 670, 612, 184, - 320, 674, 609, 608, 247, 0, 287, 174, 192, 136, - 118, 130, 146, 173, 223, 256, 266, 600, 560, 659, - 588, 598, 153, 596, 259, 231, 309, 0, 632, 237, - 258, 195, 298, 249, 307, 308, 175, 292, 317, 322, - 279, 162, 0, 122, 0, 244, 157, 188, 611, 646, - 589, 150, 649, 636, 664, 278, 137, 294, 211, 217, - 147, 149, 148, 131, 273, 296, 141, 151, 283, 262, - 288, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 290, 306, 143, 270, 271, 323, 257, 125, - 304, 286, 209, 185, 186, 124, 0, 254, 160, 170, - 155, 226, 0, 169, 246, 301, 302, 154, 325, 133, - 316, 127, 134, 315, 220, 0, 219, 318, 297, 305, - 210, 203, 0, 126, 303, 208, 202, 190, 165, 177, - 242, 198, 243, 178, 215, 214, 216, 0, 565, 0, - 284, 312, 326, 200, 139, 584, 272, 295, 0, 0, - 140, 168, 164, 241, 218, 135, 180, 281, 189, 196, - 253, 324, 230, 260, 144, 311, 280, 582, 583, 580, - 0, 581, 627, 628, 682, 683, 684, 653, 576, 0, - 666, 667, 0, 657, 672, 673, 648, 691, 605, 606, - 566, 569, 570, 571, 577, 619, 620, 631, 634, 662, - 661, 660, 663, 668, 687, 686, 688, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 630, 117, - 128, 193, 692, 251, 167, 313, 562, 159, 0, 0, - 621, 623, 633, 650, 119, 120, 129, 138, 145, 158, - 163, 166, 172, 176, 179, 181, 182, 183, 187, 201, - 204, 205, 206, 207, 221, 222, 224, 225, 228, 229, - 232, 234, 235, 236, 238, 239, 240, 245, 248, 250, - 252, 255, 261, 263, 264, 265, 267, 268, 269, 274, - 275, 276, 277, 285, 289, 299, 300, 310, 319, 321, - 669, 676, 656, 293, 614, 679, 586, 603, 690, 604, - 607, 645, 572, 626, 227, 601, 573, 0, 590, 563, - 597, 564, 587, 616, 161, 585, 658, 629, 678, 191, - 641, 0, 152, 199, 197, 0, 0, 0, 233, 291, - 677, 622, 0, 685, 194, 0, 638, 314, 282, 212, - 0, 0, 618, 665, 624, 654, 613, 647, 579, 637, - 680, 602, 643, 681, 0, 0, 0, 557, 0, 1322, - 1323, 0, 0, 0, 0, 0, 142, 0, 640, 675, - 599, 642, 644, 561, 639, 0, 567, 574, 689, 671, - 593, 594, 595, 0, 0, 0, 0, 0, 0, 0, - 617, 625, 651, 610, 0, 0, 0, 0, 0, 0, - 0, 0, 591, 0, 635, 0, 0, 0, 575, 568, - 0, 0, 615, 0, 0, 0, 578, 121, 592, 652, - 0, 559, 171, 213, 132, 655, 670, 612, 184, 320, - 674, 609, 608, 247, 0, 287, 174, 192, 136, 118, - 130, 146, 173, 223, 256, 266, 600, 560, 659, 588, - 598, 153, 596, 259, 231, 309, 0, 632, 237, 258, - 195, 298, 249, 307, 308, 175, 292, 317, 322, 279, - 162, 0, 122, 0, 244, 157, 188, 611, 646, 589, - 150, 649, 636, 664, 278, 137, 294, 211, 217, 147, - 149, 148, 131, 273, 296, 141, 151, 283, 262, 288, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 123, 290, 306, 143, 270, 271, 323, 257, 125, 304, - 286, 209, 185, 186, 124, 0, 254, 160, 170, 155, - 226, 0, 169, 246, 301, 302, 154, 325, 133, 316, - 127, 134, 315, 220, 0, 219, 318, 297, 305, 210, - 203, 0, 126, 303, 208, 202, 190, 165, 177, 242, - 198, 243, 178, 215, 214, 216, 0, 565, 0, 284, - 312, 326, 200, 139, 584, 272, 295, 0, 0, 140, - 168, 164, 241, 218, 135, 180, 281, 189, 196, 253, - 324, 230, 260, 144, 311, 280, 582, 583, 580, 0, - 581, 627, 628, 682, 683, 684, 653, 576, 0, 666, - 667, 0, 657, 672, 673, 648, 691, 605, 606, 566, - 569, 570, 571, 577, 619, 620, 631, 634, 662, 661, - 660, 663, 668, 687, 686, 688, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 630, 117, 128, - 193, 692, 251, 167, 313, 562, 159, 0, 0, 621, - 623, 633, 650, 119, 120, 129, 138, 145, 158, 163, - 166, 172, 176, 179, 181, 182, 183, 187, 201, 204, - 205, 206, 207, 221, 222, 224, 225, 228, 229, 232, - 234, 235, 236, 238, 239, 240, 245, 248, 250, 252, - 255, 261, 263, 264, 265, 267, 268, 269, 274, 275, - 276, 277, 285, 289, 299, 300, 310, 319, 321, 669, - 676, 656, 293, 614, 679, 586, 603, 690, 604, 607, - 645, 572, 626, 227, 601, 573, 0, 590, 563, 597, - 564, 587, 616, 161, 585, 658, 629, 678, 191, 641, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 677, - 622, 0, 685, 194, 0, 638, 314, 282, 212, 0, - 0, 618, 665, 624, 654, 613, 647, 579, 637, 680, - 602, 643, 681, 0, 0, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 142, 0, 640, 675, 599, - 642, 644, 561, 639, 0, 567, 574, 689, 671, 593, - 594, 595, 0, 0, 0, 0, 0, 0, 0, 617, - 625, 651, 610, 0, 0, 0, 0, 0, 0, 1983, - 0, 591, 0, 635, 0, 0, 0, 575, 568, 0, - 0, 615, 0, 0, 0, 578, 121, 592, 652, 0, - 559, 171, 213, 132, 655, 670, 612, 184, 320, 674, - 609, 608, 247, 0, 287, 174, 192, 136, 118, 130, - 146, 173, 223, 256, 266, 600, 560, 659, 588, 598, - 153, 596, 259, 231, 309, 0, 632, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 611, 646, 589, 150, - 649, 636, 664, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 134, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 565, 0, 284, 312, - 326, 200, 139, 584, 272, 295, 0, 0, 140, 168, - 164, 241, 218, 135, 180, 281, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 582, 583, 580, 0, 581, - 627, 628, 682, 683, 684, 653, 576, 0, 666, 667, - 0, 657, 672, 673, 648, 691, 605, 606, 566, 569, - 570, 571, 577, 619, 620, 631, 634, 662, 661, 660, - 663, 668, 687, 686, 688, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 630, 117, 128, 193, - 692, 251, 167, 313, 562, 159, 0, 0, 621, 623, - 633, 650, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 239, 240, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 669, 676, - 656, 293, 614, 679, 586, 603, 690, 604, 607, 645, - 572, 626, 227, 601, 573, 0, 590, 563, 597, 564, - 587, 616, 161, 585, 658, 629, 678, 191, 641, 0, - 152, 199, 197, 0, 0, 0, 233, 291, 677, 622, - 0, 685, 194, 0, 638, 314, 282, 212, 0, 0, - 618, 665, 624, 654, 613, 647, 579, 637, 680, 602, - 643, 681, 0, 0, 0, 431, 0, 0, 0, 0, - 0, 0, 0, 0, 142, 0, 640, 675, 599, 642, - 644, 561, 639, 0, 567, 574, 689, 671, 593, 594, - 595, 0, 0, 0, 0, 0, 0, 0, 617, 625, - 651, 610, 0, 0, 0, 0, 0, 0, 1701, 0, - 591, 0, 635, 0, 0, 0, 575, 568, 0, 0, - 615, 0, 0, 0, 578, 121, 592, 652, 0, 559, - 171, 213, 132, 655, 670, 612, 184, 320, 674, 609, - 608, 247, 0, 287, 174, 192, 136, 118, 130, 146, - 173, 223, 256, 266, 600, 560, 659, 588, 598, 153, - 596, 259, 231, 309, 0, 632, 237, 258, 195, 298, - 249, 307, 308, 175, 292, 317, 322, 279, 162, 0, - 122, 0, 244, 157, 188, 611, 646, 589, 150, 649, - 636, 664, 278, 137, 294, 211, 217, 147, 149, 148, - 131, 273, 296, 141, 151, 283, 262, 288, 156, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 123, 290, - 306, 143, 270, 271, 323, 257, 125, 304, 286, 209, - 185, 186, 124, 0, 254, 160, 170, 155, 226, 0, - 169, 246, 301, 302, 154, 325, 133, 316, 127, 134, - 315, 220, 0, 219, 318, 297, 305, 210, 203, 0, - 126, 303, 208, 202, 190, 165, 177, 242, 198, 243, - 178, 215, 214, 216, 0, 565, 0, 284, 312, 326, - 200, 139, 584, 272, 295, 0, 0, 140, 168, 164, - 241, 218, 135, 180, 281, 189, 196, 253, 324, 230, - 260, 144, 311, 280, 582, 583, 580, 0, 581, 627, - 628, 682, 683, 684, 653, 576, 0, 666, 667, 0, - 657, 672, 673, 648, 691, 605, 606, 566, 569, 570, - 571, 577, 619, 620, 631, 634, 662, 661, 660, 663, - 668, 687, 686, 688, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 630, 117, 128, 193, 692, - 251, 167, 313, 562, 159, 0, 0, 621, 623, 633, - 650, 119, 120, 129, 138, 145, 158, 163, 166, 172, - 176, 179, 181, 182, 183, 187, 201, 204, 205, 206, - 207, 221, 222, 224, 225, 228, 229, 232, 234, 235, - 236, 238, 239, 240, 245, 248, 250, 252, 255, 261, - 263, 264, 265, 267, 268, 269, 274, 275, 276, 277, - 285, 289, 299, 300, 310, 319, 321, 669, 676, 656, - 293, 614, 679, 586, 603, 690, 604, 607, 645, 572, - 626, 227, 601, 573, 0, 590, 563, 597, 564, 587, - 616, 161, 585, 658, 629, 678, 191, 641, 0, 152, - 199, 197, 0, 0, 0, 233, 291, 677, 622, 0, - 685, 194, 0, 638, 314, 282, 212, 0, 0, 618, - 665, 624, 654, 613, 647, 579, 637, 680, 602, 643, - 681, 0, 0, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 142, 0, 640, 675, 599, 642, 644, - 561, 639, 0, 567, 574, 689, 671, 593, 594, 595, - 0, 0, 0, 0, 0, 0, 0, 617, 625, 651, - 610, 0, 0, 0, 0, 0, 0, 1693, 0, 591, - 0, 635, 0, 0, 0, 575, 568, 0, 0, 615, - 0, 0, 0, 578, 121, 592, 652, 0, 559, 171, - 213, 132, 655, 670, 612, 184, 320, 674, 609, 608, - 247, 0, 287, 174, 192, 136, 118, 130, 146, 173, - 223, 256, 266, 600, 560, 659, 588, 598, 153, 596, - 259, 231, 309, 0, 632, 237, 258, 195, 298, 249, - 307, 308, 175, 292, 317, 322, 279, 162, 0, 122, - 0, 244, 157, 188, 611, 646, 589, 150, 649, 636, - 664, 278, 137, 294, 211, 217, 147, 149, 148, 131, - 273, 296, 141, 151, 283, 262, 288, 156, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 290, 306, - 143, 270, 271, 323, 257, 125, 304, 286, 209, 185, - 186, 124, 0, 254, 160, 170, 155, 226, 0, 169, - 246, 301, 302, 154, 325, 133, 316, 127, 134, 315, - 220, 0, 219, 318, 297, 305, 210, 203, 0, 126, - 303, 208, 202, 190, 165, 177, 242, 198, 243, 178, - 215, 214, 216, 0, 565, 0, 284, 312, 326, 200, - 139, 584, 272, 295, 0, 0, 140, 168, 164, 241, - 218, 135, 180, 281, 189, 196, 253, 324, 230, 260, - 144, 311, 280, 582, 583, 580, 0, 581, 627, 628, - 682, 683, 684, 653, 576, 0, 666, 667, 0, 657, - 672, 673, 648, 691, 605, 606, 566, 569, 570, 571, - 577, 619, 620, 631, 634, 662, 661, 660, 663, 668, - 687, 686, 688, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 630, 117, 128, 193, 692, 251, - 167, 313, 562, 159, 0, 0, 621, 623, 633, 650, - 119, 120, 129, 138, 145, 158, 163, 166, 172, 176, - 179, 181, 182, 183, 187, 201, 204, 205, 206, 207, - 221, 222, 224, 225, 228, 229, 232, 234, 235, 236, - 238, 239, 240, 245, 248, 250, 252, 255, 261, 263, - 264, 265, 267, 268, 269, 274, 275, 276, 277, 285, - 289, 299, 300, 310, 319, 321, 669, 676, 656, 293, - 614, 679, 586, 603, 690, 604, 607, 645, 572, 626, - 227, 601, 573, 0, 590, 563, 597, 564, 587, 616, - 161, 585, 658, 629, 678, 191, 641, 0, 152, 199, - 197, 0, 0, 0, 233, 291, 677, 622, 0, 685, - 194, 0, 638, 314, 282, 212, 0, 0, 618, 665, - 624, 654, 613, 647, 579, 637, 680, 602, 643, 681, - 77, 0, 0, 557, 0, 0, 0, 0, 0, 0, - 0, 0, 142, 0, 640, 675, 599, 642, 644, 561, - 639, 0, 567, 574, 689, 671, 593, 594, 595, 0, - 0, 0, 0, 0, 0, 0, 617, 625, 651, 610, - 0, 0, 0, 0, 0, 0, 0, 0, 591, 0, - 635, 0, 0, 0, 575, 568, 0, 0, 615, 0, - 0, 0, 578, 121, 592, 652, 0, 559, 171, 213, - 132, 655, 670, 612, 184, 320, 674, 609, 608, 247, - 0, 287, 174, 192, 136, 118, 130, 146, 173, 223, - 256, 266, 600, 560, 659, 588, 598, 153, 596, 259, - 231, 309, 0, 632, 237, 258, 195, 298, 249, 307, - 308, 175, 292, 317, 322, 279, 162, 0, 122, 0, - 244, 157, 188, 611, 646, 589, 150, 649, 636, 664, - 278, 137, 294, 211, 217, 147, 149, 148, 131, 273, - 296, 141, 151, 283, 262, 288, 156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 123, 290, 306, 143, - 270, 271, 323, 257, 125, 304, 286, 209, 185, 186, - 124, 0, 254, 160, 170, 155, 226, 0, 169, 246, - 301, 302, 154, 325, 133, 316, 127, 134, 315, 220, - 0, 219, 318, 297, 305, 210, 203, 0, 126, 303, - 208, 202, 190, 165, 177, 242, 198, 243, 178, 215, - 214, 216, 0, 565, 0, 284, 312, 326, 200, 139, - 584, 272, 295, 0, 0, 140, 168, 164, 241, 218, - 135, 180, 281, 189, 196, 253, 324, 230, 260, 144, - 311, 280, 582, 583, 580, 0, 581, 627, 628, 682, - 683, 684, 653, 576, 0, 666, 667, 0, 657, 672, - 673, 648, 691, 605, 606, 566, 569, 570, 571, 577, - 619, 620, 631, 634, 662, 661, 660, 663, 668, 687, - 686, 688, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 630, 117, 128, 193, 692, 251, 167, - 313, 562, 159, 0, 0, 621, 623, 633, 650, 119, - 120, 129, 138, 145, 158, 163, 166, 172, 176, 179, - 181, 182, 183, 187, 201, 204, 205, 206, 207, 221, - 222, 224, 225, 228, 229, 232, 234, 235, 236, 238, - 239, 240, 245, 248, 250, 252, 255, 261, 263, 264, - 265, 267, 268, 269, 274, 275, 276, 277, 285, 289, - 299, 300, 310, 319, 321, 669, 676, 656, 293, 614, - 679, 586, 603, 690, 604, 607, 645, 572, 626, 227, - 601, 573, 0, 590, 563, 597, 564, 587, 616, 161, - 585, 658, 629, 678, 191, 641, 0, 152, 199, 197, - 0, 0, 0, 233, 291, 677, 622, 0, 685, 194, - 0, 638, 314, 282, 212, 0, 0, 618, 665, 624, - 654, 613, 647, 579, 637, 680, 602, 643, 681, 0, 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 0, 640, 675, 599, 642, 644, 561, 639, - 0, 567, 574, 689, 671, 593, 594, 595, 0, 0, - 0, 0, 0, 0, 0, 617, 625, 651, 610, 0, - 0, 0, 0, 0, 0, 1303, 0, 591, 0, 635, - 0, 0, 0, 575, 568, 0, 0, 615, 0, 0, - 0, 578, 121, 592, 652, 0, 559, 171, 213, 132, - 655, 670, 612, 184, 320, 674, 609, 608, 247, 0, - 287, 174, 192, 136, 118, 130, 146, 173, 223, 256, - 266, 600, 560, 659, 588, 598, 153, 596, 259, 231, - 309, 0, 632, 237, 258, 195, 298, 249, 307, 308, - 175, 292, 317, 322, 279, 162, 0, 122, 0, 244, - 157, 188, 611, 646, 589, 150, 649, 636, 664, 278, - 137, 294, 211, 217, 147, 149, 148, 131, 273, 296, - 141, 151, 283, 262, 288, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 290, 306, 143, 270, - 271, 323, 257, 125, 304, 286, 209, 185, 186, 124, - 0, 254, 160, 170, 155, 226, 0, 169, 246, 301, - 302, 154, 325, 133, 316, 127, 134, 315, 220, 0, - 219, 318, 297, 305, 210, 203, 0, 126, 303, 208, - 202, 190, 165, 177, 242, 198, 243, 178, 215, 214, - 216, 0, 565, 0, 284, 312, 326, 200, 139, 584, - 272, 295, 0, 0, 140, 168, 164, 241, 218, 135, - 180, 281, 189, 196, 253, 324, 230, 260, 144, 311, - 280, 582, 583, 580, 0, 581, 627, 628, 682, 683, - 684, 653, 576, 0, 666, 667, 0, 657, 672, 673, - 648, 691, 605, 606, 566, 569, 570, 571, 577, 619, - 620, 631, 634, 662, 661, 660, 663, 668, 687, 686, - 688, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 630, 117, 128, 193, 692, 251, 167, 313, - 562, 159, 0, 0, 621, 623, 633, 650, 119, 120, - 129, 138, 145, 158, 163, 166, 172, 176, 179, 181, - 182, 183, 187, 201, 204, 205, 206, 207, 221, 222, - 224, 225, 228, 229, 232, 234, 235, 236, 238, 239, - 240, 245, 248, 250, 252, 255, 261, 263, 264, 265, - 267, 268, 269, 274, 275, 276, 277, 285, 289, 299, - 300, 310, 319, 321, 669, 676, 656, 293, 614, 679, - 586, 603, 690, 604, 607, 645, 572, 626, 227, 601, - 573, 0, 590, 563, 597, 564, 587, 616, 161, 585, - 658, 629, 678, 191, 641, 0, 152, 199, 197, 0, - 0, 0, 233, 291, 677, 622, 0, 685, 194, 0, - 638, 314, 282, 212, 0, 0, 618, 665, 624, 654, - 613, 647, 579, 637, 680, 602, 643, 681, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 0, - 142, 0, 640, 675, 599, 642, 644, 561, 639, 0, - 567, 574, 689, 671, 593, 594, 595, 0, 0, 0, - 0, 0, 0, 0, 617, 625, 651, 610, 0, 0, - 0, 0, 0, 0, 1167, 0, 591, 0, 635, 0, - 0, 0, 575, 568, 0, 0, 615, 0, 0, 0, - 578, 121, 592, 652, 0, 559, 171, 213, 132, 655, - 670, 612, 184, 320, 674, 609, 608, 247, 0, 287, - 174, 192, 136, 118, 130, 146, 173, 223, 256, 266, - 600, 560, 659, 588, 598, 153, 596, 259, 231, 309, - 0, 632, 237, 258, 195, 298, 249, 307, 308, 175, - 292, 317, 322, 279, 162, 0, 122, 0, 244, 157, - 188, 611, 646, 589, 150, 649, 636, 664, 278, 137, - 294, 211, 217, 147, 149, 148, 131, 273, 296, 141, - 151, 283, 262, 288, 156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 123, 290, 306, 143, 270, 271, - 323, 257, 125, 304, 286, 209, 185, 186, 124, 0, - 254, 160, 170, 155, 226, 0, 169, 246, 301, 302, - 154, 325, 133, 316, 127, 134, 315, 220, 0, 219, - 318, 297, 305, 210, 203, 0, 126, 303, 208, 202, - 190, 165, 177, 242, 198, 243, 178, 215, 214, 216, - 0, 565, 0, 284, 312, 326, 200, 139, 584, 272, - 295, 0, 0, 140, 168, 164, 241, 218, 135, 180, - 281, 189, 196, 253, 324, 230, 260, 144, 311, 280, - 582, 583, 580, 0, 581, 627, 628, 682, 683, 684, - 653, 576, 0, 666, 667, 0, 657, 672, 673, 648, - 691, 605, 606, 566, 569, 570, 571, 577, 619, 620, - 631, 634, 662, 661, 660, 663, 668, 687, 686, 688, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 630, 117, 128, 193, 692, 251, 167, 313, 562, - 159, 0, 0, 621, 623, 633, 650, 119, 120, 129, - 138, 145, 158, 163, 166, 172, 176, 179, 181, 182, - 183, 187, 201, 204, 205, 206, 207, 221, 222, 224, - 225, 228, 229, 232, 234, 235, 236, 238, 239, 240, - 245, 248, 250, 252, 255, 261, 263, 264, 265, 267, - 268, 269, 274, 275, 276, 277, 285, 289, 299, 300, - 310, 319, 321, 669, 676, 656, 293, 614, 679, 586, - 603, 690, 604, 607, 645, 572, 626, 227, 601, 573, - 0, 590, 563, 597, 564, 587, 616, 161, 585, 658, - 629, 678, 191, 641, 0, 152, 199, 197, 0, 0, - 0, 233, 291, 677, 622, 0, 685, 194, 0, 638, - 314, 282, 212, 0, 0, 618, 665, 624, 654, 613, - 647, 579, 637, 680, 602, 643, 681, 0, 0, 0, - 557, 0, 0, 0, 0, 0, 0, 0, 0, 142, - 0, 640, 675, 599, 642, 644, 561, 639, 0, 567, - 574, 689, 671, 593, 594, 595, 0, 0, 0, 0, - 0, 0, 0, 617, 625, 651, 610, 0, 0, 0, - 0, 0, 0, 0, 0, 591, 0, 635, 0, 0, - 0, 575, 568, 0, 0, 615, 0, 0, 0, 578, - 121, 592, 652, 0, 559, 171, 213, 132, 655, 670, - 612, 184, 320, 674, 609, 608, 247, 0, 287, 174, - 192, 136, 118, 130, 146, 173, 223, 256, 266, 600, - 560, 659, 588, 598, 153, 596, 259, 231, 309, 0, - 632, 237, 258, 195, 298, 249, 307, 308, 175, 292, - 317, 322, 279, 162, 0, 122, 0, 244, 157, 188, - 611, 646, 589, 150, 649, 636, 664, 278, 137, 294, - 211, 217, 147, 149, 148, 131, 273, 296, 141, 151, - 283, 262, 288, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 290, 306, 143, 270, 271, 323, - 257, 125, 304, 286, 209, 185, 186, 124, 0, 254, - 160, 170, 155, 226, 0, 169, 246, 301, 302, 154, - 325, 133, 316, 127, 134, 315, 220, 0, 219, 318, - 297, 305, 210, 203, 0, 126, 303, 208, 202, 190, - 165, 177, 242, 198, 243, 178, 215, 214, 216, 0, - 565, 0, 284, 312, 326, 200, 139, 584, 272, 295, - 0, 0, 140, 168, 164, 241, 218, 135, 180, 281, - 189, 196, 253, 324, 230, 260, 144, 311, 280, 582, - 583, 580, 0, 581, 627, 628, 682, 683, 684, 653, - 576, 0, 666, 667, 0, 657, 672, 673, 648, 691, - 605, 606, 566, 569, 570, 571, 577, 619, 620, 631, - 634, 662, 661, 660, 663, 668, 687, 686, 688, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 630, 117, 128, 193, 692, 251, 167, 313, 562, 159, - 0, 0, 621, 623, 633, 650, 119, 120, 129, 138, - 145, 158, 163, 166, 172, 176, 179, 181, 182, 183, - 187, 201, 204, 205, 206, 207, 221, 222, 224, 225, - 228, 229, 232, 234, 235, 236, 238, 239, 240, 245, - 248, 250, 252, 255, 261, 263, 264, 265, 267, 268, - 269, 274, 275, 276, 277, 285, 289, 299, 300, 310, - 319, 321, 669, 676, 656, 293, 614, 679, 586, 603, - 690, 604, 607, 645, 572, 626, 227, 601, 573, 0, - 590, 563, 597, 564, 587, 616, 161, 585, 658, 629, - 678, 191, 641, 0, 152, 199, 197, 0, 0, 0, - 233, 291, 677, 622, 0, 685, 194, 0, 638, 314, - 282, 212, 0, 0, 618, 665, 624, 654, 613, 647, - 579, 637, 680, 602, 643, 681, 0, 0, 0, 431, - 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, - 640, 675, 599, 642, 644, 561, 639, 0, 567, 574, - 689, 671, 593, 594, 595, 0, 0, 0, 0, 0, - 0, 0, 617, 625, 651, 610, 0, 0, 0, 0, - 0, 0, 0, 0, 591, 0, 635, 0, 0, 0, - 575, 568, 0, 0, 615, 0, 0, 0, 578, 121, - 592, 652, 0, 559, 171, 213, 132, 655, 670, 612, - 184, 320, 674, 609, 608, 247, 0, 287, 174, 192, - 136, 118, 130, 146, 173, 223, 256, 266, 600, 560, - 659, 588, 598, 153, 596, 259, 231, 309, 0, 632, - 237, 258, 195, 298, 249, 307, 308, 175, 292, 317, - 322, 279, 162, 0, 122, 0, 244, 157, 188, 611, - 646, 589, 150, 649, 636, 664, 278, 137, 294, 211, - 217, 147, 149, 148, 131, 273, 296, 141, 151, 283, - 262, 288, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 123, 290, 306, 143, 270, 271, 323, 257, - 125, 304, 286, 209, 185, 186, 124, 0, 254, 160, - 170, 155, 226, 0, 169, 246, 301, 302, 154, 325, - 133, 316, 127, 134, 315, 220, 0, 219, 318, 297, - 305, 210, 203, 0, 126, 303, 208, 202, 190, 165, - 177, 242, 198, 243, 178, 215, 214, 216, 0, 565, - 0, 284, 312, 326, 200, 139, 584, 272, 295, 0, - 0, 140, 168, 164, 241, 218, 135, 180, 281, 189, - 196, 253, 324, 230, 260, 144, 311, 280, 582, 583, - 580, 0, 581, 627, 628, 682, 683, 684, 653, 576, - 0, 666, 667, 0, 657, 672, 673, 648, 691, 605, - 606, 566, 569, 570, 571, 577, 619, 620, 631, 634, - 662, 661, 660, 663, 668, 687, 686, 688, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 630, - 117, 128, 193, 692, 251, 167, 313, 562, 159, 0, - 0, 621, 623, 633, 650, 119, 120, 129, 138, 145, - 158, 163, 166, 172, 176, 179, 181, 182, 183, 187, - 201, 204, 205, 206, 207, 221, 222, 224, 225, 228, - 229, 232, 234, 235, 236, 238, 239, 240, 245, 248, - 250, 252, 255, 261, 263, 264, 265, 267, 268, 269, - 274, 275, 276, 277, 285, 289, 299, 300, 310, 319, - 321, 669, 676, 656, 293, 614, 679, 586, 603, 690, - 604, 607, 645, 572, 626, 227, 601, 573, 0, 590, - 563, 597, 564, 587, 616, 161, 585, 658, 629, 678, - 191, 641, 0, 152, 199, 197, 0, 0, 0, 233, - 291, 1333, 1337, 0, 685, 194, 0, 638, 314, 282, - 212, 0, 0, 618, 665, 624, 654, 613, 647, 579, - 637, 680, 602, 643, 681, 0, 0, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 142, 0, 640, - 675, 599, 642, 644, 561, 639, 0, 567, 574, 689, - 671, 593, 594, 595, 0, 0, 0, 0, 0, 0, - 0, 617, 625, 651, 610, 0, 0, 0, 0, 0, - 0, 0, 0, 591, 0, 635, 0, 0, 0, 575, - 568, 0, 0, 615, 0, 0, 0, 578, 121, 592, - 652, 0, 559, 171, 213, 132, 655, 670, 1336, 184, - 320, 674, 609, 608, 1331, 0, 1332, 174, 192, 556, - 118, 130, 1329, 1335, 223, 256, 266, 600, 560, 659, - 588, 598, 153, 596, 259, 231, 309, 0, 632, 237, - 258, 195, 298, 249, 307, 308, 175, 292, 317, 322, - 279, 162, 0, 122, 0, 244, 157, 188, 611, 646, - 589, 150, 649, 636, 664, 278, 137, 294, 211, 217, - 147, 149, 148, 131, 273, 296, 141, 151, 283, 262, - 288, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 290, 306, 143, 270, 271, 323, 257, 125, - 304, 286, 209, 185, 186, 124, 0, 254, 160, 170, - 155, 226, 0, 169, 246, 301, 302, 154, 325, 133, - 316, 127, 134, 315, 220, 0, 219, 318, 297, 305, - 210, 203, 0, 126, 303, 208, 202, 190, 165, 177, - 242, 198, 243, 178, 215, 214, 216, 0, 565, 0, - 284, 312, 326, 200, 139, 584, 272, 295, 0, 0, - 140, 168, 164, 241, 218, 135, 180, 281, 189, 196, - 253, 324, 230, 260, 144, 311, 280, 582, 583, 580, - 0, 581, 627, 628, 682, 683, 684, 653, 576, 0, - 666, 667, 0, 657, 672, 673, 648, 691, 605, 606, - 566, 569, 570, 571, 577, 619, 620, 631, 634, 662, - 661, 660, 663, 668, 687, 686, 688, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 630, 117, - 128, 193, 692, 251, 167, 313, 562, 159, 0, 0, - 621, 623, 633, 650, 119, 120, 129, 138, 145, 158, - 163, 166, 172, 176, 179, 181, 182, 183, 187, 201, - 204, 205, 206, 207, 221, 222, 224, 225, 228, 229, - 232, 234, 235, 236, 238, 239, 240, 245, 248, 250, - 252, 255, 261, 263, 264, 265, 267, 268, 269, 274, - 275, 276, 277, 285, 289, 299, 300, 310, 319, 321, - 669, 676, 656, 293, 614, 679, 586, 603, 690, 604, - 607, 645, 572, 626, 227, 601, 573, 0, 590, 563, - 597, 564, 587, 616, 161, 585, 658, 629, 678, 191, - 641, 0, 152, 199, 197, 0, 0, 0, 233, 291, - 677, 622, 0, 685, 194, 0, 638, 314, 282, 212, - 0, 0, 618, 665, 624, 654, 613, 647, 579, 637, - 680, 602, 643, 681, 0, 0, 0, 115, 0, 0, - 0, 0, 0, 0, 0, 0, 142, 0, 640, 675, - 599, 642, 644, 561, 639, 0, 567, 574, 689, 671, - 593, 594, 595, 0, 0, 0, 0, 0, 0, 0, - 617, 625, 651, 610, 0, 0, 0, 0, 0, 0, - 0, 0, 591, 0, 635, 0, 0, 0, 575, 568, - 0, 0, 615, 0, 0, 0, 578, 121, 592, 652, - 0, 559, 171, 213, 132, 655, 670, 612, 184, 320, - 674, 609, 608, 247, 0, 287, 174, 192, 136, 118, - 130, 146, 173, 223, 256, 266, 600, 560, 659, 588, - 598, 153, 596, 259, 231, 309, 0, 632, 237, 258, - 195, 298, 249, 307, 308, 175, 292, 317, 322, 279, - 162, 0, 122, 0, 244, 157, 188, 611, 646, 589, - 150, 649, 636, 664, 278, 137, 294, 211, 217, 147, - 149, 148, 131, 273, 296, 141, 151, 283, 262, 288, - 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 123, 290, 306, 143, 270, 271, 323, 257, 125, 304, - 286, 209, 185, 186, 124, 0, 254, 160, 170, 155, - 226, 0, 169, 246, 301, 302, 154, 325, 133, 316, - 127, 134, 315, 220, 0, 219, 318, 297, 305, 210, - 203, 0, 126, 303, 208, 202, 190, 165, 177, 242, - 198, 243, 178, 215, 214, 216, 0, 565, 0, 284, - 312, 326, 200, 139, 584, 272, 295, 0, 0, 140, - 168, 164, 241, 218, 135, 180, 281, 189, 196, 253, - 324, 230, 260, 144, 311, 280, 582, 583, 580, 0, - 581, 627, 628, 682, 683, 684, 653, 576, 0, 666, - 667, 0, 657, 672, 673, 648, 691, 605, 606, 566, - 569, 570, 571, 577, 619, 620, 631, 634, 662, 661, - 660, 663, 668, 687, 686, 688, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 630, 117, 128, - 193, 692, 251, 167, 313, 562, 159, 0, 0, 621, - 623, 633, 650, 119, 120, 129, 138, 145, 158, 163, - 166, 172, 176, 179, 181, 182, 183, 187, 201, 204, - 205, 206, 207, 221, 222, 224, 225, 228, 229, 232, - 234, 235, 236, 238, 239, 240, 245, 248, 250, 252, - 255, 261, 263, 264, 265, 267, 268, 269, 274, 275, - 276, 277, 285, 289, 299, 300, 310, 319, 321, 669, - 676, 656, 293, 614, 679, 586, 603, 690, 604, 607, - 645, 572, 626, 227, 601, 573, 0, 590, 563, 597, - 564, 587, 616, 161, 585, 658, 629, 678, 191, 641, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 677, - 622, 0, 685, 194, 0, 638, 314, 282, 212, 0, - 0, 618, 665, 624, 654, 613, 647, 579, 637, 680, - 602, 643, 681, 0, 0, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 142, 0, 640, 675, 599, - 642, 644, 561, 639, 0, 567, 574, 689, 671, 593, - 594, 595, 0, 0, 0, 0, 0, 0, 0, 617, - 625, 651, 610, 0, 0, 0, 0, 0, 0, 0, - 0, 591, 0, 635, 0, 0, 0, 575, 568, 0, - 0, 615, 0, 0, 0, 578, 121, 592, 652, 0, - 559, 171, 213, 132, 655, 670, 612, 184, 320, 674, - 609, 608, 247, 0, 287, 174, 192, 556, 118, 130, - 552, 173, 223, 256, 266, 600, 560, 659, 588, 598, - 153, 596, 259, 231, 309, 0, 632, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 611, 646, 589, 150, - 649, 636, 664, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 134, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 565, 0, 284, 312, - 326, 200, 139, 584, 272, 295, 0, 0, 140, 168, - 164, 241, 218, 135, 180, 281, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 582, 583, 580, 0, 581, - 627, 628, 682, 683, 684, 653, 576, 0, 666, 667, - 0, 657, 672, 673, 648, 691, 605, 606, 566, 569, - 570, 571, 577, 619, 620, 631, 634, 662, 661, 660, - 663, 668, 687, 686, 688, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 630, 117, 128, 193, - 692, 251, 167, 313, 562, 159, 0, 0, 621, 623, - 633, 650, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 239, 240, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 669, 293, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 227, 0, 0, 0, 0, 0, 433, 0, 0, 0, - 161, 430, 0, 0, 0, 191, 0, 0, 152, 199, - 197, 0, 0, 0, 233, 291, 0, 0, 0, 477, - 194, 0, 0, 314, 282, 212, 0, 0, 0, 0, - 466, 467, 0, 0, 0, 0, 0, 0, 1313, 0, - 77, 0, 0, 431, 454, 453, 456, 457, 458, 459, - 0, 0, 142, 455, 460, 461, 462, 1314, 0, 0, - 428, 445, 0, 476, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 442, 443, 0, 0, 0, 0, - 491, 0, 444, 0, 0, 439, 440, 441, 446, 0, - 0, 0, 0, 121, 0, 0, 0, 0, 171, 213, - 132, 468, 0, 0, 184, 320, 0, 0, 489, 247, - 0, 287, 174, 192, 136, 118, 130, 146, 173, 223, - 256, 266, 474, 0, 0, 0, 0, 153, 0, 259, - 231, 309, 0, 0, 237, 258, 195, 298, 249, 307, - 308, 175, 292, 317, 322, 279, 162, 0, 122, 0, - 244, 157, 188, 0, 0, 0, 150, 0, 0, 0, - 278, 137, 294, 211, 217, 147, 149, 148, 131, 273, - 296, 141, 151, 283, 262, 288, 156, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 123, 290, 306, 143, - 270, 271, 323, 257, 125, 304, 286, 209, 185, 186, - 124, 0, 254, 160, 170, 155, 226, 0, 169, 246, - 301, 302, 154, 325, 133, 316, 127, 134, 315, 220, - 0, 219, 318, 297, 305, 210, 203, 0, 126, 303, - 208, 202, 190, 165, 177, 242, 198, 243, 178, 215, - 214, 216, 0, 0, 0, 284, 312, 326, 200, 139, - 0, 272, 295, 0, 0, 140, 168, 164, 241, 218, - 135, 180, 281, 189, 196, 253, 324, 230, 260, 144, - 311, 280, 478, 490, 484, 486, 485, 482, 483, 481, - 480, 479, 492, 469, 470, 471, 472, 475, 0, 487, - 488, 0, 0, 0, 0, 505, 506, 507, 508, 509, - 510, 511, 504, 512, 513, 514, 515, 516, 517, 518, - 519, 520, 493, 494, 495, 496, 497, 498, 499, 500, - 503, 501, 502, 473, 117, 128, 193, 0, 251, 167, - 313, 0, 159, 0, 0, 0, 0, 0, 0, 119, - 120, 129, 138, 145, 158, 163, 166, 172, 176, 179, - 181, 182, 183, 187, 201, 204, 205, 206, 207, 221, - 222, 224, 225, 228, 229, 232, 234, 235, 236, 238, - 239, 240, 245, 248, 250, 252, 255, 261, 263, 264, - 265, 267, 268, 269, 274, 275, 276, 277, 285, 289, - 299, 300, 310, 319, 321, 32, 293, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 0, 0, 0, 433, 0, 0, 0, 161, 430, 0, - 0, 0, 191, 0, 0, 152, 199, 197, 0, 0, - 0, 233, 291, 0, 0, 0, 477, 194, 0, 0, - 314, 282, 212, 0, 0, 0, 0, 466, 467, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, - 431, 454, 453, 456, 457, 458, 459, 0, 0, 142, - 455, 460, 461, 462, 0, 0, 0, 428, 445, 0, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 442, 443, 0, 0, 0, 0, 491, 0, 444, - 0, 0, 439, 440, 441, 446, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 171, 213, 132, 468, 0, - 0, 184, 320, 0, 0, 489, 247, 0, 287, 174, - 192, 136, 118, 130, 146, 173, 223, 256, 266, 474, - 0, 0, 0, 0, 153, 0, 259, 231, 309, 0, - 0, 237, 258, 195, 298, 249, 307, 308, 175, 292, - 317, 322, 279, 162, 0, 122, 0, 244, 157, 188, - 0, 0, 0, 150, 0, 0, 0, 278, 137, 294, - 211, 217, 147, 149, 148, 131, 273, 296, 141, 151, - 283, 262, 288, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 290, 306, 143, 270, 271, 323, - 257, 125, 304, 286, 209, 185, 186, 124, 0, 254, - 160, 170, 155, 226, 0, 169, 246, 301, 302, 154, - 325, 133, 316, 127, 134, 315, 220, 0, 219, 318, - 297, 305, 210, 203, 0, 126, 303, 208, 202, 190, - 165, 177, 242, 198, 243, 178, 215, 214, 216, 0, - 0, 0, 284, 312, 326, 200, 139, 0, 272, 295, - 0, 0, 140, 168, 164, 241, 218, 135, 180, 281, - 189, 196, 253, 324, 230, 260, 144, 311, 280, 478, - 490, 484, 486, 485, 482, 483, 481, 480, 479, 492, - 469, 470, 471, 472, 475, 0, 487, 488, 0, 0, - 0, 0, 505, 506, 507, 508, 509, 510, 511, 504, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 493, - 494, 495, 496, 497, 498, 499, 500, 503, 501, 502, - 473, 117, 128, 193, 75, 251, 167, 313, 0, 159, - 0, 0, 0, 0, 0, 0, 119, 120, 129, 138, - 145, 158, 163, 166, 172, 176, 179, 181, 182, 183, - 187, 201, 204, 205, 206, 207, 221, 222, 224, 225, - 228, 229, 232, 234, 235, 236, 238, 239, 240, 245, - 248, 250, 252, 255, 261, 263, 264, 265, 267, 268, - 269, 274, 275, 276, 277, 285, 289, 299, 300, 310, - 319, 321, 293, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 227, 0, 0, 0, 0, 0, 433, - 0, 0, 0, 161, 430, 0, 0, 0, 191, 0, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 0, - 0, 0, 477, 194, 0, 0, 314, 282, 212, 0, - 0, 0, 0, 466, 467, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 0, 0, 431, 454, 453, 456, - 457, 458, 459, 0, 0, 142, 455, 460, 461, 462, - 0, 0, 0, 428, 445, 0, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 443, 424, - 0, 0, 0, 491, 0, 444, 0, 0, 439, 440, - 441, 446, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 171, 213, 132, 468, 0, 0, 184, 320, 0, - 0, 489, 247, 0, 287, 174, 192, 136, 118, 130, - 146, 173, 223, 256, 266, 474, 0, 0, 0, 0, - 153, 0, 259, 231, 309, 0, 0, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 0, 0, 0, 150, - 0, 0, 0, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 134, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 0, 0, 284, 312, - 326, 200, 139, 0, 272, 295, 0, 0, 140, 168, - 164, 241, 218, 135, 180, 281, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 478, 490, 484, 486, 485, - 482, 483, 481, 480, 479, 492, 469, 470, 471, 472, - 475, 0, 487, 488, 0, 0, 0, 0, 505, 506, - 507, 508, 509, 510, 511, 504, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 493, 494, 495, 496, 497, - 498, 499, 500, 503, 501, 502, 473, 117, 128, 193, - 0, 251, 167, 313, 0, 159, 0, 0, 0, 0, - 0, 0, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 239, 240, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 293, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 0, 433, 0, 0, 0, 161, - 430, 0, 0, 0, 191, 0, 0, 152, 199, 197, - 0, 0, 0, 233, 291, 0, 0, 0, 477, 194, - 0, 0, 314, 282, 212, 0, 0, 0, 0, 466, - 467, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 803, 431, 454, 453, 456, 457, 458, 459, 0, - 0, 142, 455, 460, 461, 462, 0, 0, 0, 428, - 445, 0, 476, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 442, 443, 0, 0, 0, 0, 491, - 0, 444, 0, 0, 439, 440, 441, 446, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 171, 213, 132, - 468, 0, 0, 184, 320, 0, 0, 489, 247, 0, - 287, 174, 192, 136, 118, 130, 146, 173, 223, 256, - 266, 474, 0, 0, 0, 0, 153, 0, 259, 231, - 309, 0, 0, 237, 258, 195, 298, 249, 307, 308, - 175, 292, 317, 322, 279, 162, 0, 122, 0, 244, - 157, 188, 0, 0, 0, 150, 0, 0, 0, 278, - 137, 294, 211, 217, 147, 149, 148, 131, 273, 296, - 141, 151, 283, 262, 288, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 290, 306, 143, 270, - 271, 323, 257, 125, 304, 286, 209, 185, 186, 124, - 0, 254, 160, 170, 155, 226, 0, 169, 246, 301, - 302, 154, 325, 133, 316, 127, 134, 315, 220, 0, - 219, 318, 297, 305, 210, 203, 0, 126, 303, 208, - 202, 190, 165, 177, 242, 198, 243, 178, 215, 214, - 216, 0, 0, 0, 284, 312, 326, 200, 139, 0, - 272, 295, 0, 0, 140, 168, 164, 241, 218, 135, - 180, 281, 189, 196, 253, 324, 230, 260, 144, 311, - 280, 478, 490, 484, 486, 485, 482, 483, 481, 480, - 479, 492, 469, 470, 471, 472, 475, 0, 487, 488, - 0, 0, 0, 0, 505, 506, 507, 508, 509, 510, - 511, 504, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 493, 494, 495, 496, 497, 498, 499, 500, 503, - 501, 502, 473, 117, 128, 193, 0, 251, 167, 313, - 0, 159, 0, 0, 0, 0, 0, 0, 119, 120, - 129, 138, 145, 158, 163, 166, 172, 176, 179, 181, - 182, 183, 187, 201, 204, 205, 206, 207, 221, 222, - 224, 225, 228, 229, 232, 234, 235, 236, 238, 239, - 240, 245, 248, 250, 252, 255, 261, 263, 264, 265, - 267, 268, 269, 274, 275, 276, 277, 285, 289, 299, - 300, 310, 319, 321, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 0, 433, 0, 0, 0, 161, 430, 0, 0, 0, - 191, 0, 0, 152, 199, 197, 0, 0, 0, 233, - 291, 0, 0, 0, 477, 194, 0, 0, 314, 282, - 212, 0, 0, 0, 0, 466, 467, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 0, 431, 454, - 453, 456, 457, 458, 459, 0, 0, 142, 455, 460, - 461, 462, 0, 0, 0, 428, 445, 0, 476, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 443, 1209, 0, 0, 0, 491, 0, 444, 0, 0, - 439, 440, 441, 446, 0, 0, 0, 0, 121, 0, - 0, 0, 0, 171, 213, 132, 468, 0, 0, 184, - 320, 0, 0, 489, 247, 0, 287, 174, 192, 136, - 118, 130, 146, 173, 223, 256, 266, 474, 0, 0, - 0, 0, 153, 0, 259, 231, 309, 0, 0, 237, - 258, 195, 298, 249, 307, 308, 175, 292, 317, 322, - 279, 162, 0, 122, 0, 244, 157, 188, 0, 0, - 0, 150, 0, 0, 0, 278, 137, 294, 211, 217, - 147, 149, 148, 131, 273, 296, 141, 151, 283, 262, - 288, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 290, 306, 143, 270, 271, 323, 257, 125, - 304, 286, 209, 185, 186, 124, 0, 254, 160, 170, - 155, 226, 0, 169, 246, 301, 302, 154, 325, 133, - 316, 127, 134, 315, 220, 0, 219, 318, 297, 305, - 210, 203, 0, 126, 303, 208, 202, 190, 165, 177, - 242, 198, 243, 178, 215, 214, 216, 0, 0, 0, - 284, 312, 326, 200, 139, 0, 272, 295, 0, 0, - 140, 168, 164, 241, 218, 135, 180, 281, 189, 196, - 253, 324, 230, 260, 144, 311, 280, 478, 490, 484, - 486, 485, 482, 483, 481, 480, 479, 492, 469, 470, - 471, 472, 475, 0, 487, 488, 0, 0, 0, 0, - 505, 506, 507, 508, 509, 510, 511, 504, 512, 513, - 514, 515, 516, 517, 518, 519, 520, 493, 494, 495, - 496, 497, 498, 499, 500, 503, 501, 502, 473, 117, - 128, 193, 0, 251, 167, 313, 0, 159, 0, 0, - 0, 0, 0, 0, 119, 120, 129, 138, 145, 158, - 163, 166, 172, 176, 179, 181, 182, 183, 187, 201, - 204, 205, 206, 207, 221, 222, 224, 225, 228, 229, - 232, 234, 235, 236, 238, 239, 240, 245, 248, 250, - 252, 255, 261, 263, 264, 265, 267, 268, 269, 274, - 275, 276, 277, 285, 289, 299, 300, 310, 319, 321, - 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 227, 0, 0, 0, 0, 0, 433, 0, 0, - 0, 161, 430, 0, 0, 0, 191, 0, 0, 152, - 199, 197, 0, 0, 0, 233, 291, 0, 0, 0, - 477, 194, 0, 0, 314, 282, 212, 0, 0, 0, - 0, 466, 467, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 431, 454, 1220, 456, 457, 458, - 459, 0, 0, 142, 455, 460, 461, 462, 0, 0, - 0, 428, 445, 0, 476, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 443, 1209, 0, 0, - 0, 491, 0, 444, 0, 0, 439, 440, 441, 446, - 0, 0, 0, 0, 121, 0, 0, 0, 0, 171, - 213, 132, 468, 0, 0, 184, 320, 0, 0, 489, - 247, 0, 287, 174, 192, 136, 118, 130, 146, 173, - 223, 256, 266, 474, 0, 0, 0, 0, 153, 0, - 259, 231, 309, 0, 0, 237, 258, 195, 298, 249, - 307, 308, 175, 292, 317, 322, 279, 162, 0, 122, - 0, 244, 157, 188, 0, 0, 0, 150, 0, 0, - 0, 278, 137, 294, 211, 217, 147, 149, 148, 131, - 273, 296, 141, 151, 283, 262, 288, 156, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 290, 306, - 143, 270, 271, 323, 257, 125, 304, 286, 209, 185, - 186, 124, 0, 254, 160, 170, 155, 226, 0, 169, - 246, 301, 302, 154, 325, 133, 316, 127, 134, 315, - 220, 0, 219, 318, 297, 305, 210, 203, 0, 126, - 303, 208, 202, 190, 165, 177, 242, 198, 243, 178, - 215, 214, 216, 0, 0, 0, 284, 312, 326, 200, - 139, 0, 272, 295, 0, 0, 140, 168, 164, 241, - 218, 135, 180, 281, 189, 196, 253, 324, 230, 260, - 144, 311, 280, 478, 490, 484, 486, 485, 482, 483, - 481, 480, 479, 492, 469, 470, 471, 472, 475, 0, - 487, 488, 0, 0, 0, 0, 505, 506, 507, 508, - 509, 510, 511, 504, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 493, 494, 495, 496, 497, 498, 499, - 500, 503, 501, 502, 473, 117, 128, 193, 0, 251, - 167, 313, 0, 159, 0, 0, 0, 0, 0, 0, - 119, 120, 129, 138, 145, 158, 163, 166, 172, 176, - 179, 181, 182, 183, 187, 201, 204, 205, 206, 207, - 221, 222, 224, 225, 228, 229, 232, 234, 235, 236, - 238, 239, 240, 245, 248, 250, 252, 255, 261, 263, - 264, 265, 267, 268, 269, 274, 275, 276, 277, 285, - 289, 299, 300, 310, 319, 321, 293, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 0, 0, 0, 433, 0, 0, 0, 161, 430, 0, - 0, 0, 191, 0, 0, 152, 199, 197, 0, 0, - 0, 233, 291, 0, 0, 0, 477, 194, 0, 0, - 314, 282, 212, 0, 0, 0, 0, 466, 467, 0, + 0, 0, 0, 1213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1213, 0, 1092, 1051, 1054, 1055, + 1056, 1057, 1058, 1059, 0, 1060, 1061, 1062, 1063, 1064, + 1065, 1066, 0, 1039, 1040, 1041, 1042, 1018, 1022, 1052, + 1019, 1025, 1021, 1023, 1020, 0, 1026, 1027, 1028, 1029, + 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1043, 1044, 1045, + 1046, 1047, 1048, 1049, 1050, 0, 0, 0, 0, 0, + 0, 32, 548, 68, 35, 36, 0, 0, 0, 32, + 0, 68, 35, 36, 0, 61, 0, 0, 0, 0, + 0, 74, 0, 61, 0, 37, 0, 0, 0, 74, + 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 77, 0, 0, 0, 0, 0, 0, + 0, 77, 0, 0, 0, 0, 0, 0, 1053, 0, + 0, 0, 0, 0, 0, 0, 2113, 0, 0, 0, + 0, 2304, 0, 0, 2113, 0, 0, 0, 0, 2287, + 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 115, + 0, 0, 0, 0, 0, 39, 70, 43, 42, 45, + 0, 0, 115, 39, 70, 43, 42, 45, 0, 0, + 0, 2114, 0, 0, 0, 0, 0, 0, 0, 2114, + 0, 0, 0, 0, 115, 0, 0, 46, 73, 72, + 0, 0, 0, 0, 44, 46, 73, 72, 0, 0, + 428, 0, 44, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 59, 60, 0, + 2115, 0, 0, 0, 0, 59, 60, 0, 2115, 0, + 2116, 71, 0, 50, 51, 63, 0, 64, 2116, 71, + 0, 50, 51, 63, 0, 64, 0, 0, 0, 0, + 0, 0, 548, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 115, 0, 0, + 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, + 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 115, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 75, 0, 0, 0, 0, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 386, 0, 386, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 428, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 115, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 548, 0, 0, + 2160, 0, 0, 0, 0, 0, 0, 115, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 2163, 2164, 2165, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 559, 0, 1324, 1325, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 1576, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 559, 0, 1324, 1325, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 559, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 1986, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 433, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 1704, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 559, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 1696, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 77, 0, 0, + 559, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 1305, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 433, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 1169, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 559, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 433, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 1335, 1339, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 559, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 1338, 185, 322, 676, 611, 610, 1333, 0, 1334, 175, + 193, 558, 119, 131, 1331, 1337, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 678, 658, 294, 616, 681, 588, + 605, 692, 606, 609, 647, 574, 628, 228, 603, 575, + 0, 592, 565, 599, 566, 589, 618, 162, 587, 660, + 631, 680, 192, 643, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 679, 624, 0, 687, 195, 0, 640, + 316, 283, 213, 0, 0, 620, 667, 626, 656, 615, + 649, 581, 639, 682, 604, 645, 683, 0, 0, 0, + 559, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 642, 677, 601, 644, 646, 563, 641, 0, 569, + 576, 691, 673, 595, 596, 597, 0, 0, 0, 0, + 0, 0, 0, 619, 627, 653, 612, 0, 0, 0, + 0, 0, 0, 0, 0, 593, 0, 637, 0, 0, + 0, 577, 570, 0, 0, 617, 0, 0, 0, 580, + 122, 594, 654, 0, 561, 172, 214, 133, 657, 672, + 614, 185, 322, 676, 611, 610, 248, 0, 288, 175, + 193, 558, 119, 131, 554, 174, 224, 257, 267, 602, + 562, 661, 590, 600, 154, 598, 260, 232, 311, 0, + 634, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 613, 648, 591, 151, 651, 638, 666, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 567, 0, 285, 314, 328, 201, 140, 586, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 584, 585, 582, 0, 583, 629, 630, 684, 685, 686, + 655, 578, 0, 668, 669, 0, 659, 674, 675, 650, + 693, 607, 608, 568, 571, 572, 573, 579, 621, 622, + 633, 636, 664, 663, 662, 665, 670, 689, 688, 690, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 632, 118, 129, 194, 694, 252, 168, 315, 564, + 160, 0, 0, 623, 625, 635, 652, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 671, 294, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 435, 0, 0, 0, 162, 432, 0, 0, 0, + 192, 0, 0, 153, 200, 198, 0, 0, 0, 234, + 292, 0, 0, 0, 479, 195, 0, 0, 316, 283, + 213, 0, 0, 0, 0, 468, 469, 0, 0, 0, + 0, 0, 0, 1315, 0, 77, 0, 0, 433, 456, + 455, 458, 459, 460, 461, 0, 0, 143, 457, 462, + 463, 464, 1316, 0, 0, 430, 447, 0, 478, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, + 445, 0, 0, 0, 0, 493, 0, 446, 0, 0, + 441, 442, 443, 448, 0, 0, 0, 0, 122, 0, + 0, 0, 0, 172, 214, 133, 470, 0, 0, 185, + 322, 0, 0, 491, 248, 0, 288, 175, 193, 137, + 119, 131, 147, 174, 224, 257, 267, 476, 0, 0, + 0, 0, 154, 0, 260, 232, 311, 0, 0, 238, + 259, 196, 300, 250, 309, 310, 176, 293, 319, 324, + 280, 163, 0, 123, 0, 245, 158, 189, 0, 0, + 0, 151, 0, 0, 0, 279, 298, 138, 295, 212, + 218, 148, 150, 149, 132, 274, 297, 142, 152, 284, + 263, 289, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 291, 308, 144, 271, 272, 325, 258, + 126, 306, 287, 210, 186, 187, 125, 0, 255, 161, + 171, 156, 227, 0, 170, 247, 303, 304, 155, 327, + 134, 318, 128, 135, 317, 221, 0, 220, 320, 299, + 307, 211, 204, 0, 127, 305, 209, 203, 191, 166, + 178, 243, 199, 244, 179, 216, 215, 217, 0, 0, + 0, 285, 314, 328, 201, 140, 0, 273, 296, 0, + 0, 141, 169, 165, 242, 219, 136, 181, 282, 190, + 197, 254, 326, 231, 261, 145, 313, 281, 480, 492, + 486, 488, 487, 484, 485, 483, 482, 481, 494, 471, + 472, 473, 474, 477, 0, 489, 490, 0, 0, 0, + 0, 507, 508, 509, 510, 511, 512, 513, 506, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 495, 496, + 497, 498, 499, 500, 501, 502, 505, 503, 504, 475, + 118, 129, 194, 0, 252, 168, 315, 0, 160, 0, + 0, 0, 0, 0, 0, 120, 121, 130, 139, 146, + 159, 164, 167, 173, 177, 180, 182, 183, 184, 188, + 202, 205, 206, 207, 208, 222, 223, 225, 226, 229, + 230, 233, 235, 236, 237, 239, 240, 241, 246, 249, + 251, 253, 256, 262, 264, 265, 266, 268, 269, 270, + 275, 276, 277, 278, 286, 290, 301, 302, 312, 321, + 323, 32, 294, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 0, 0, 0, 435, + 0, 0, 0, 162, 432, 0, 0, 0, 192, 0, + 0, 153, 200, 198, 0, 0, 0, 234, 292, 0, + 0, 0, 479, 195, 0, 0, 316, 283, 213, 0, + 0, 0, 0, 468, 469, 0, 0, 0, 0, 0, + 0, 0, 0, 77, 0, 0, 433, 456, 455, 458, + 459, 460, 461, 0, 0, 143, 457, 462, 463, 464, + 0, 0, 0, 430, 447, 0, 478, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 444, 445, 0, + 0, 0, 0, 493, 0, 446, 0, 0, 441, 442, + 443, 448, 0, 0, 0, 0, 122, 0, 0, 0, + 0, 172, 214, 133, 470, 0, 0, 185, 322, 0, + 0, 491, 248, 0, 288, 175, 193, 137, 119, 131, + 147, 174, 224, 257, 267, 476, 0, 0, 0, 0, + 154, 0, 260, 232, 311, 0, 0, 238, 259, 196, + 300, 250, 309, 310, 176, 293, 319, 324, 280, 163, + 0, 123, 0, 245, 158, 189, 0, 0, 0, 151, + 0, 0, 0, 279, 298, 138, 295, 212, 218, 148, + 150, 149, 132, 274, 297, 142, 152, 284, 263, 289, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 124, 291, 308, 144, 271, 272, 325, 258, 126, 306, + 287, 210, 186, 187, 125, 0, 255, 161, 171, 156, + 227, 0, 170, 247, 303, 304, 155, 327, 134, 318, + 128, 135, 317, 221, 0, 220, 320, 299, 307, 211, + 204, 0, 127, 305, 209, 203, 191, 166, 178, 243, + 199, 244, 179, 216, 215, 217, 0, 0, 0, 285, + 314, 328, 201, 140, 0, 273, 296, 0, 0, 141, + 169, 165, 242, 219, 136, 181, 282, 190, 197, 254, + 326, 231, 261, 145, 313, 281, 480, 492, 486, 488, + 487, 484, 485, 483, 482, 481, 494, 471, 472, 473, + 474, 477, 0, 489, 490, 0, 0, 0, 0, 507, + 508, 509, 510, 511, 512, 513, 506, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 495, 496, 497, 498, + 499, 500, 501, 502, 505, 503, 504, 475, 118, 129, + 194, 75, 252, 168, 315, 0, 160, 0, 0, 0, + 0, 0, 0, 120, 121, 130, 139, 146, 159, 164, + 167, 173, 177, 180, 182, 183, 184, 188, 202, 205, + 206, 207, 208, 222, 223, 225, 226, 229, 230, 233, + 235, 236, 237, 239, 240, 241, 246, 249, 251, 253, + 256, 262, 264, 265, 266, 268, 269, 270, 275, 276, + 277, 278, 286, 290, 301, 302, 312, 321, 323, 294, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 435, 0, 0, 0, + 162, 432, 0, 0, 0, 192, 0, 0, 153, 200, + 198, 0, 0, 0, 234, 292, 0, 0, 0, 479, + 195, 0, 0, 316, 283, 213, 0, 0, 0, 0, + 468, 469, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 0, 433, 456, 455, 458, 459, 460, 461, + 0, 0, 143, 457, 462, 463, 464, 0, 0, 0, + 430, 447, 0, 478, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 444, 445, 426, 0, 0, 0, + 493, 0, 446, 0, 0, 441, 442, 443, 448, 0, + 0, 0, 0, 122, 0, 0, 0, 0, 172, 214, + 133, 470, 0, 0, 185, 322, 0, 0, 491, 248, + 0, 288, 175, 193, 137, 119, 131, 147, 174, 224, + 257, 267, 476, 0, 0, 0, 0, 154, 0, 260, + 232, 311, 0, 0, 238, 259, 196, 300, 250, 309, + 310, 176, 293, 319, 324, 280, 163, 0, 123, 0, + 245, 158, 189, 0, 0, 0, 151, 0, 0, 0, + 279, 298, 138, 295, 212, 218, 148, 150, 149, 132, + 274, 297, 142, 152, 284, 263, 289, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 124, 291, 308, + 144, 271, 272, 325, 258, 126, 306, 287, 210, 186, + 187, 125, 0, 255, 161, 171, 156, 227, 0, 170, + 247, 303, 304, 155, 327, 134, 318, 128, 135, 317, + 221, 0, 220, 320, 299, 307, 211, 204, 0, 127, + 305, 209, 203, 191, 166, 178, 243, 199, 244, 179, + 216, 215, 217, 0, 0, 0, 285, 314, 328, 201, + 140, 0, 273, 296, 0, 0, 141, 169, 165, 242, + 219, 136, 181, 282, 190, 197, 254, 326, 231, 261, + 145, 313, 281, 480, 492, 486, 488, 487, 484, 485, + 483, 482, 481, 494, 471, 472, 473, 474, 477, 0, + 489, 490, 0, 0, 0, 0, 507, 508, 509, 510, + 511, 512, 513, 506, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 495, 496, 497, 498, 499, 500, 501, + 502, 505, 503, 504, 475, 118, 129, 194, 0, 252, + 168, 315, 0, 160, 0, 0, 0, 0, 0, 0, + 120, 121, 130, 139, 146, 159, 164, 167, 173, 177, + 180, 182, 183, 184, 188, 202, 205, 206, 207, 208, + 222, 223, 225, 226, 229, 230, 233, 235, 236, 237, + 239, 240, 241, 246, 249, 251, 253, 256, 262, 264, + 265, 266, 268, 269, 270, 275, 276, 277, 278, 286, + 290, 301, 302, 312, 321, 323, 294, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 435, 0, 0, 0, 162, 432, 0, + 0, 0, 192, 0, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 0, 0, 0, 479, 195, 0, 0, + 316, 283, 213, 0, 0, 0, 0, 468, 469, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 0, 805, + 433, 456, 455, 458, 459, 460, 461, 0, 0, 143, + 457, 462, 463, 464, 0, 0, 0, 430, 447, 0, + 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 444, 445, 0, 0, 0, 0, 493, 0, 446, + 0, 0, 441, 442, 443, 448, 0, 0, 0, 0, + 122, 0, 0, 0, 0, 172, 214, 133, 470, 0, + 0, 185, 322, 0, 0, 491, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 476, + 0, 0, 0, 0, 154, 0, 260, 232, 311, 0, + 0, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 0, 0, 0, 151, 0, 0, 0, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 0, 0, 285, 314, 328, 201, 140, 0, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 480, 492, 486, 488, 487, 484, 485, 483, 482, 481, + 494, 471, 472, 473, 474, 477, 0, 489, 490, 0, + 0, 0, 0, 507, 508, 509, 510, 511, 512, 513, + 506, 514, 515, 516, 517, 518, 519, 520, 521, 522, + 495, 496, 497, 498, 499, 500, 501, 502, 505, 503, + 504, 475, 118, 129, 194, 0, 252, 168, 315, 0, + 160, 0, 0, 0, 0, 0, 0, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 294, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 435, 0, 0, 0, 162, 432, 0, 0, 0, 192, + 0, 0, 153, 200, 198, 0, 0, 0, 234, 292, + 0, 0, 0, 479, 195, 0, 0, 316, 283, 213, + 0, 0, 0, 0, 468, 469, 0, 0, 0, 0, + 0, 0, 0, 0, 77, 0, 0, 433, 456, 455, + 458, 459, 460, 461, 0, 0, 143, 457, 462, 463, + 464, 0, 0, 0, 430, 447, 0, 478, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 444, 445, + 1211, 0, 0, 0, 493, 0, 446, 0, 0, 441, + 442, 443, 448, 0, 0, 0, 0, 122, 0, 0, + 0, 0, 172, 214, 133, 470, 0, 0, 185, 322, + 0, 0, 491, 248, 0, 288, 175, 193, 137, 119, + 131, 147, 174, 224, 257, 267, 476, 0, 0, 0, + 0, 154, 0, 260, 232, 311, 0, 0, 238, 259, + 196, 300, 250, 309, 310, 176, 293, 319, 324, 280, + 163, 0, 123, 0, 245, 158, 189, 0, 0, 0, + 151, 0, 0, 0, 279, 298, 138, 295, 212, 218, + 148, 150, 149, 132, 274, 297, 142, 152, 284, 263, + 289, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 124, 291, 308, 144, 271, 272, 325, 258, 126, + 306, 287, 210, 186, 187, 125, 0, 255, 161, 171, + 156, 227, 0, 170, 247, 303, 304, 155, 327, 134, + 318, 128, 135, 317, 221, 0, 220, 320, 299, 307, + 211, 204, 0, 127, 305, 209, 203, 191, 166, 178, + 243, 199, 244, 179, 216, 215, 217, 0, 0, 0, + 285, 314, 328, 201, 140, 0, 273, 296, 0, 0, + 141, 169, 165, 242, 219, 136, 181, 282, 190, 197, + 254, 326, 231, 261, 145, 313, 281, 480, 492, 486, + 488, 487, 484, 485, 483, 482, 481, 494, 471, 472, + 473, 474, 477, 0, 489, 490, 0, 0, 0, 0, + 507, 508, 509, 510, 511, 512, 513, 506, 514, 515, + 516, 517, 518, 519, 520, 521, 522, 495, 496, 497, + 498, 499, 500, 501, 502, 505, 503, 504, 475, 118, + 129, 194, 0, 252, 168, 315, 0, 160, 0, 0, + 0, 0, 0, 0, 120, 121, 130, 139, 146, 159, + 164, 167, 173, 177, 180, 182, 183, 184, 188, 202, + 205, 206, 207, 208, 222, 223, 225, 226, 229, 230, + 233, 235, 236, 237, 239, 240, 241, 246, 249, 251, + 253, 256, 262, 264, 265, 266, 268, 269, 270, 275, + 276, 277, 278, 286, 290, 301, 302, 312, 321, 323, + 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 0, 0, 0, 435, 0, 0, + 0, 162, 432, 0, 0, 0, 192, 0, 0, 153, + 200, 198, 0, 0, 0, 234, 292, 0, 0, 0, + 479, 195, 0, 0, 316, 283, 213, 0, 0, 0, + 0, 468, 469, 0, 0, 0, 0, 0, 0, 0, + 0, 77, 0, 0, 433, 456, 1222, 458, 459, 460, + 461, 0, 0, 143, 457, 462, 463, 464, 0, 0, + 0, 430, 447, 0, 478, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 444, 445, 1211, 0, 0, + 0, 493, 0, 446, 0, 0, 441, 442, 443, 448, + 0, 0, 0, 0, 122, 0, 0, 0, 0, 172, + 214, 133, 470, 0, 0, 185, 322, 0, 0, 491, + 248, 0, 288, 175, 193, 137, 119, 131, 147, 174, + 224, 257, 267, 476, 0, 0, 0, 0, 154, 0, + 260, 232, 311, 0, 0, 238, 259, 196, 300, 250, + 309, 310, 176, 293, 319, 324, 280, 163, 0, 123, + 0, 245, 158, 189, 0, 0, 0, 151, 0, 0, + 0, 279, 298, 138, 295, 212, 218, 148, 150, 149, + 132, 274, 297, 142, 152, 284, 263, 289, 157, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 124, 291, + 308, 144, 271, 272, 325, 258, 126, 306, 287, 210, + 186, 187, 125, 0, 255, 161, 171, 156, 227, 0, + 170, 247, 303, 304, 155, 327, 134, 318, 128, 135, + 317, 221, 0, 220, 320, 299, 307, 211, 204, 0, + 127, 305, 209, 203, 191, 166, 178, 243, 199, 244, + 179, 216, 215, 217, 0, 0, 0, 285, 314, 328, + 201, 140, 0, 273, 296, 0, 0, 141, 169, 165, + 242, 219, 136, 181, 282, 190, 197, 254, 326, 231, + 261, 145, 313, 281, 480, 492, 486, 488, 487, 484, + 485, 483, 482, 481, 494, 471, 472, 473, 474, 477, + 0, 489, 490, 0, 0, 0, 0, 507, 508, 509, + 510, 511, 512, 513, 506, 514, 515, 516, 517, 518, + 519, 520, 521, 522, 495, 496, 497, 498, 499, 500, + 501, 502, 505, 503, 504, 475, 118, 129, 194, 0, + 252, 168, 315, 0, 160, 0, 0, 0, 0, 0, + 0, 120, 121, 130, 139, 146, 159, 164, 167, 173, + 177, 180, 182, 183, 184, 188, 202, 205, 206, 207, + 208, 222, 223, 225, 226, 229, 230, 233, 235, 236, + 237, 239, 240, 241, 246, 249, 251, 253, 256, 262, + 264, 265, 266, 268, 269, 270, 275, 276, 277, 278, + 286, 290, 301, 302, 312, 321, 323, 294, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 435, 0, 0, 0, 162, 432, + 0, 0, 0, 192, 0, 0, 153, 200, 198, 0, + 0, 0, 234, 292, 0, 0, 0, 479, 195, 0, + 0, 316, 283, 213, 0, 0, 0, 0, 468, 469, + 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, + 0, 433, 456, 1219, 458, 459, 460, 461, 0, 0, + 143, 457, 462, 463, 464, 0, 0, 0, 430, 447, + 0, 478, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 444, 445, 1211, 0, 0, 0, 493, 0, + 446, 0, 0, 441, 442, 443, 448, 0, 0, 0, + 0, 122, 0, 0, 0, 0, 172, 214, 133, 470, + 0, 0, 185, 322, 0, 0, 491, 248, 0, 288, + 175, 193, 137, 119, 131, 147, 174, 224, 257, 267, + 476, 0, 0, 0, 0, 154, 0, 260, 232, 311, + 0, 0, 238, 259, 196, 300, 250, 309, 310, 176, + 293, 319, 324, 280, 163, 0, 123, 0, 245, 158, + 189, 0, 0, 0, 151, 0, 0, 0, 279, 298, + 138, 295, 212, 218, 148, 150, 149, 132, 274, 297, + 142, 152, 284, 263, 289, 157, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 124, 291, 308, 144, 271, + 272, 325, 258, 126, 306, 287, 210, 186, 187, 125, + 0, 255, 161, 171, 156, 227, 0, 170, 247, 303, + 304, 155, 327, 134, 318, 128, 135, 317, 221, 0, + 220, 320, 299, 307, 211, 204, 0, 127, 305, 209, + 203, 191, 166, 178, 243, 199, 244, 179, 216, 215, + 217, 0, 0, 0, 285, 314, 328, 201, 140, 0, + 273, 296, 0, 0, 141, 169, 165, 242, 219, 136, + 181, 282, 190, 197, 254, 326, 231, 261, 145, 313, + 281, 480, 492, 486, 488, 487, 484, 485, 483, 482, + 481, 494, 471, 472, 473, 474, 477, 0, 489, 490, + 0, 0, 0, 0, 507, 508, 509, 510, 511, 512, + 513, 506, 514, 515, 516, 517, 518, 519, 520, 521, + 522, 495, 496, 497, 498, 499, 500, 501, 502, 505, + 503, 504, 475, 118, 129, 194, 0, 252, 168, 315, + 0, 160, 0, 0, 0, 0, 0, 0, 120, 121, + 130, 139, 146, 159, 164, 167, 173, 177, 180, 182, + 183, 184, 188, 202, 205, 206, 207, 208, 222, 223, + 225, 226, 229, 230, 233, 235, 236, 237, 239, 240, + 241, 246, 249, 251, 253, 256, 262, 264, 265, 266, + 268, 269, 270, 275, 276, 277, 278, 286, 290, 301, + 302, 312, 321, 323, 294, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 435, 0, 0, 0, 162, 432, 0, 0, 0, + 192, 0, 0, 153, 200, 198, 0, 0, 0, 234, + 292, 0, 0, 0, 479, 195, 0, 0, 316, 283, + 213, 0, 0, 0, 0, 468, 469, 0, 0, 0, + 0, 0, 0, 0, 0, 77, 0, 1130, 433, 456, + 455, 458, 459, 460, 461, 0, 0, 143, 457, 462, + 463, 464, 0, 0, 0, 430, 447, 0, 478, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 444, + 445, 0, 0, 0, 0, 493, 0, 446, 0, 0, + 441, 442, 443, 448, 0, 0, 0, 0, 122, 0, + 0, 0, 0, 172, 214, 133, 470, 0, 0, 185, + 322, 0, 0, 491, 248, 0, 288, 175, 193, 137, + 119, 131, 147, 174, 224, 257, 267, 476, 0, 0, + 0, 0, 154, 0, 260, 232, 311, 0, 0, 238, + 259, 196, 300, 250, 309, 310, 176, 293, 319, 324, + 280, 163, 0, 123, 0, 245, 158, 189, 0, 0, + 0, 151, 0, 0, 0, 279, 298, 138, 295, 212, + 218, 148, 150, 149, 132, 274, 297, 142, 152, 284, + 263, 289, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 291, 308, 144, 271, 272, 325, 258, + 126, 306, 287, 210, 186, 187, 125, 0, 255, 161, + 171, 156, 227, 0, 170, 247, 303, 304, 155, 327, + 134, 318, 128, 135, 317, 221, 0, 220, 320, 299, + 307, 211, 204, 0, 127, 305, 209, 203, 191, 166, + 178, 243, 199, 244, 179, 216, 215, 217, 0, 0, + 0, 285, 314, 328, 201, 140, 0, 273, 296, 0, + 0, 141, 169, 165, 242, 219, 136, 181, 282, 190, + 197, 254, 326, 231, 261, 145, 313, 281, 480, 492, + 486, 488, 487, 484, 485, 483, 482, 481, 494, 471, + 472, 473, 474, 477, 0, 489, 490, 0, 0, 0, + 0, 507, 508, 509, 510, 511, 512, 513, 506, 514, + 515, 516, 517, 518, 519, 520, 521, 522, 495, 496, + 497, 498, 499, 500, 501, 502, 505, 503, 504, 475, + 118, 129, 194, 0, 252, 168, 315, 0, 160, 0, + 0, 0, 0, 0, 0, 120, 121, 130, 139, 146, + 159, 164, 167, 173, 177, 180, 182, 183, 184, 188, + 202, 205, 206, 207, 208, 222, 223, 225, 226, 229, + 230, 233, 235, 236, 237, 239, 240, 241, 246, 249, + 251, 253, 256, 262, 264, 265, 266, 268, 269, 270, + 275, 276, 277, 278, 286, 290, 301, 302, 312, 321, + 323, 294, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 435, 0, + 0, 0, 162, 432, 0, 0, 0, 192, 0, 0, + 153, 200, 198, 0, 0, 0, 234, 292, 0, 0, + 0, 479, 195, 0, 0, 316, 283, 213, 0, 0, + 0, 0, 468, 469, 0, 0, 0, 0, 0, 0, + 0, 0, 77, 0, 0, 433, 456, 455, 458, 459, + 460, 461, 0, 0, 143, 457, 462, 463, 464, 0, + 0, 0, 430, 447, 0, 478, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 444, 445, 0, 0, + 0, 0, 493, 0, 446, 0, 0, 441, 442, 443, + 448, 0, 0, 0, 0, 122, 0, 0, 0, 0, + 172, 214, 133, 470, 0, 0, 185, 322, 0, 0, + 491, 248, 0, 288, 175, 193, 137, 119, 131, 147, + 174, 224, 257, 267, 476, 0, 0, 0, 0, 154, + 0, 260, 232, 311, 0, 0, 238, 259, 196, 300, + 250, 309, 310, 176, 293, 319, 324, 280, 163, 0, + 123, 0, 245, 158, 189, 0, 0, 0, 151, 0, + 0, 0, 279, 298, 138, 295, 212, 218, 148, 150, + 149, 132, 274, 297, 142, 152, 284, 263, 289, 157, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 291, 308, 144, 271, 272, 325, 258, 126, 306, 287, + 210, 186, 187, 125, 0, 255, 161, 171, 156, 227, + 0, 170, 247, 303, 304, 155, 327, 134, 318, 128, + 135, 317, 221, 0, 220, 320, 299, 307, 211, 204, + 0, 127, 305, 209, 203, 191, 166, 178, 243, 199, + 244, 179, 216, 215, 217, 0, 0, 0, 285, 314, + 328, 201, 140, 0, 273, 296, 0, 0, 141, 169, + 165, 242, 219, 136, 181, 282, 190, 197, 254, 326, + 231, 261, 145, 313, 281, 480, 492, 486, 488, 487, + 484, 485, 483, 482, 481, 494, 471, 472, 473, 474, + 477, 0, 489, 490, 0, 0, 0, 0, 507, 508, + 509, 510, 511, 512, 513, 506, 514, 515, 516, 517, + 518, 519, 520, 521, 522, 495, 496, 497, 498, 499, + 500, 501, 502, 505, 503, 504, 475, 118, 129, 194, + 0, 252, 168, 315, 0, 160, 0, 0, 0, 0, + 0, 0, 120, 121, 130, 139, 146, 159, 164, 167, + 173, 177, 180, 182, 183, 184, 188, 202, 205, 206, + 207, 208, 222, 223, 225, 226, 229, 230, 233, 235, + 236, 237, 239, 240, 241, 246, 249, 251, 253, 256, + 262, 264, 265, 266, 268, 269, 270, 275, 276, 277, + 278, 286, 290, 301, 302, 312, 321, 323, 294, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 435, 0, 0, 0, 162, + 432, 0, 0, 0, 192, 0, 0, 153, 200, 198, + 0, 0, 0, 234, 292, 0, 0, 0, 479, 195, + 0, 0, 316, 283, 213, 0, 0, 0, 0, 468, + 469, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 0, 433, 456, 455, 458, 459, 460, 461, 0, + 0, 143, 457, 462, 463, 464, 0, 0, 0, 430, + 447, 0, 478, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 444, 445, 0, 0, 0, 0, 493, + 0, 446, 0, 0, 441, 442, 443, 448, 0, 0, + 0, 0, 122, 0, 0, 0, 0, 172, 214, 133, + 470, 0, 0, 185, 322, 0, 0, 491, 248, 0, + 288, 175, 193, 137, 119, 131, 147, 174, 224, 257, + 267, 476, 0, 0, 0, 0, 154, 0, 260, 232, + 311, 0, 0, 238, 259, 196, 300, 250, 309, 310, + 176, 293, 319, 324, 280, 163, 0, 123, 0, 245, + 158, 189, 0, 0, 0, 151, 0, 0, 0, 279, + 298, 138, 295, 212, 218, 148, 150, 149, 132, 274, + 297, 142, 152, 284, 263, 289, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 124, 291, 308, 144, + 271, 272, 325, 258, 126, 306, 287, 210, 186, 187, + 125, 0, 255, 161, 171, 156, 227, 0, 170, 247, + 303, 304, 155, 327, 134, 318, 128, 135, 317, 221, + 0, 220, 320, 299, 307, 211, 204, 0, 127, 305, + 209, 203, 191, 166, 178, 243, 199, 244, 179, 216, + 215, 217, 0, 0, 0, 285, 314, 328, 201, 140, + 0, 273, 296, 0, 0, 141, 169, 165, 242, 219, + 136, 181, 282, 190, 197, 254, 326, 231, 261, 145, + 313, 281, 480, 492, 486, 488, 487, 484, 485, 483, + 482, 481, 494, 471, 472, 473, 474, 477, 0, 489, + 490, 0, 0, 0, 0, 815, 816, 817, 818, 819, + 823, 824, 828, 829, 837, 836, 835, 838, 839, 841, + 840, 842, 820, 821, 822, 825, 826, 827, 830, 831, + 834, 832, 833, 475, 118, 129, 194, 0, 252, 168, + 315, 0, 160, 0, 0, 0, 0, 0, 0, 120, + 121, 130, 139, 146, 159, 164, 167, 173, 177, 180, + 182, 183, 184, 188, 202, 205, 206, 207, 208, 222, + 223, 225, 226, 229, 230, 233, 235, 236, 237, 239, + 240, 241, 246, 249, 251, 253, 256, 262, 264, 265, + 266, 268, 269, 270, 275, 276, 277, 278, 286, 290, + 301, 302, 312, 321, 323, 294, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, + 0, 192, 0, 0, 153, 200, 198, 0, 0, 0, + 234, 292, 0, 0, 0, 479, 195, 0, 0, 316, + 283, 213, 0, 0, 0, 0, 468, 469, 0, 0, + 0, 0, 0, 0, 0, 0, 77, 0, 0, 433, + 456, 455, 458, 459, 460, 461, 0, 0, 143, 457, + 462, 463, 464, 0, 0, 0, 0, 447, 0, 478, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 444, 445, 0, 0, 0, 0, 493, 0, 446, 0, + 0, 441, 442, 443, 448, 0, 0, 0, 0, 122, + 0, 0, 0, 0, 172, 214, 133, 470, 0, 0, + 185, 322, 0, 0, 491, 248, 0, 288, 175, 193, + 137, 119, 131, 147, 174, 224, 257, 267, 476, 0, + 0, 0, 0, 154, 0, 260, 232, 311, 0, 2297, + 238, 259, 196, 300, 250, 309, 310, 176, 293, 319, + 324, 280, 163, 0, 123, 0, 245, 158, 189, 0, + 0, 0, 151, 0, 0, 0, 279, 298, 138, 295, + 212, 218, 148, 150, 149, 132, 274, 297, 142, 152, + 284, 263, 289, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 124, 291, 308, 144, 271, 272, 325, + 258, 126, 306, 287, 210, 186, 187, 125, 0, 255, + 161, 171, 156, 227, 0, 170, 247, 303, 304, 155, + 327, 134, 318, 128, 135, 317, 221, 0, 220, 320, + 299, 307, 211, 204, 0, 127, 305, 209, 203, 191, + 166, 178, 243, 199, 244, 179, 216, 215, 217, 0, + 0, 0, 285, 314, 328, 201, 140, 0, 273, 296, + 0, 0, 141, 169, 165, 242, 219, 136, 181, 282, + 190, 197, 254, 326, 231, 261, 145, 313, 281, 480, + 492, 486, 488, 487, 484, 485, 483, 482, 481, 494, + 471, 472, 473, 474, 477, 0, 489, 490, 0, 0, + 0, 0, 507, 508, 509, 510, 511, 512, 513, 506, + 514, 515, 516, 517, 518, 519, 520, 521, 522, 495, + 496, 497, 498, 499, 500, 501, 502, 505, 503, 504, + 475, 118, 129, 194, 0, 252, 168, 315, 0, 160, + 0, 0, 0, 0, 0, 0, 120, 121, 130, 139, + 146, 159, 164, 167, 173, 177, 180, 182, 183, 184, + 188, 202, 205, 206, 207, 208, 222, 223, 225, 226, + 229, 230, 233, 235, 236, 237, 239, 240, 241, 246, + 249, 251, 253, 256, 262, 264, 265, 266, 268, 269, + 270, 275, 276, 277, 278, 286, 290, 301, 302, 312, + 321, 323, 294, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 162, 0, 0, 0, 0, 192, 0, + 0, 153, 200, 198, 0, 0, 0, 234, 292, 0, + 0, 0, 479, 195, 0, 0, 316, 283, 213, 0, + 0, 0, 0, 468, 469, 0, 0, 0, 0, 0, + 0, 0, 0, 77, 0, 805, 433, 456, 455, 458, + 459, 460, 461, 0, 0, 143, 457, 462, 463, 464, + 0, 0, 0, 0, 447, 0, 478, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 444, 445, 0, + 0, 0, 0, 493, 0, 446, 0, 0, 441, 442, + 443, 448, 0, 0, 0, 0, 122, 0, 0, 0, + 0, 172, 214, 133, 470, 0, 0, 185, 322, 0, + 0, 491, 248, 0, 288, 175, 193, 137, 119, 131, + 147, 174, 224, 257, 267, 476, 0, 0, 0, 0, + 154, 0, 260, 232, 311, 0, 0, 238, 259, 196, + 300, 250, 309, 310, 176, 293, 319, 324, 280, 163, + 0, 123, 0, 245, 158, 189, 0, 0, 0, 151, + 0, 0, 0, 279, 298, 138, 295, 212, 218, 148, + 150, 149, 132, 274, 297, 142, 152, 284, 263, 289, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 124, 291, 308, 144, 271, 272, 325, 258, 126, 306, + 287, 210, 186, 187, 125, 0, 255, 161, 171, 156, + 227, 0, 170, 247, 303, 304, 155, 327, 134, 318, + 128, 135, 317, 221, 0, 220, 320, 299, 307, 211, + 204, 0, 127, 305, 209, 203, 191, 166, 178, 243, + 199, 244, 179, 216, 215, 217, 0, 0, 0, 285, + 314, 328, 201, 140, 0, 273, 296, 0, 0, 141, + 169, 165, 242, 219, 136, 181, 282, 190, 197, 254, + 326, 231, 261, 145, 313, 281, 480, 492, 486, 488, + 487, 484, 485, 483, 482, 481, 494, 471, 472, 473, + 474, 477, 0, 489, 490, 0, 0, 0, 0, 507, + 508, 509, 510, 511, 512, 513, 506, 514, 515, 516, + 517, 518, 519, 520, 521, 522, 495, 496, 497, 498, + 499, 500, 501, 502, 505, 503, 504, 475, 118, 129, + 194, 0, 252, 168, 315, 0, 160, 0, 0, 0, + 0, 0, 0, 120, 121, 130, 139, 146, 159, 164, + 167, 173, 177, 180, 182, 183, 184, 188, 202, 205, + 206, 207, 208, 222, 223, 225, 226, 229, 230, 233, + 235, 236, 237, 239, 240, 241, 246, 249, 251, 253, + 256, 262, 264, 265, 266, 268, 269, 270, 275, 276, + 277, 278, 286, 290, 301, 302, 312, 321, 323, 294, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 162, 0, 0, 0, 0, 192, 0, 0, 153, 200, + 198, 0, 0, 0, 234, 292, 0, 0, 0, 479, + 195, 0, 0, 316, 283, 213, 0, 0, 0, 0, + 468, 469, 0, 0, 0, 0, 0, 0, 0, 0, + 77, 0, 0, 433, 456, 455, 458, 459, 460, 461, + 0, 0, 143, 457, 462, 463, 464, 0, 0, 0, + 0, 447, 0, 478, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 444, 445, 0, 0, 0, 0, + 493, 0, 446, 0, 0, 441, 442, 443, 448, 0, + 0, 0, 0, 122, 0, 0, 0, 0, 172, 214, + 133, 470, 0, 0, 185, 322, 0, 0, 491, 248, + 0, 288, 175, 193, 137, 119, 131, 147, 174, 224, + 257, 267, 476, 0, 0, 0, 0, 154, 0, 260, + 232, 311, 0, 0, 238, 259, 196, 300, 250, 309, + 310, 176, 293, 319, 324, 280, 163, 0, 123, 0, + 245, 158, 189, 0, 0, 0, 151, 0, 0, 0, + 279, 298, 138, 295, 212, 218, 148, 150, 149, 132, + 274, 297, 142, 152, 284, 263, 289, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 124, 291, 308, + 144, 271, 272, 325, 258, 126, 306, 287, 210, 186, + 187, 125, 0, 255, 161, 171, 156, 227, 0, 170, + 247, 303, 304, 155, 327, 134, 318, 128, 135, 317, + 221, 0, 220, 320, 299, 307, 211, 204, 0, 127, + 305, 209, 203, 191, 166, 178, 243, 199, 244, 179, + 216, 215, 217, 0, 0, 0, 285, 314, 328, 201, + 140, 0, 273, 296, 0, 0, 141, 169, 165, 242, + 219, 136, 181, 282, 190, 197, 254, 326, 231, 261, + 145, 313, 281, 480, 492, 486, 488, 487, 484, 485, + 483, 482, 481, 494, 471, 472, 473, 474, 477, 0, + 489, 490, 0, 0, 0, 0, 507, 508, 509, 510, + 511, 512, 513, 506, 514, 515, 516, 517, 518, 519, + 520, 521, 522, 495, 496, 497, 498, 499, 500, 501, + 502, 505, 503, 504, 475, 118, 129, 194, 0, 252, + 168, 315, 0, 160, 0, 0, 0, 0, 0, 0, + 120, 121, 130, 139, 146, 159, 164, 167, 173, 177, + 180, 182, 183, 184, 188, 202, 205, 206, 207, 208, + 222, 223, 225, 226, 229, 230, 233, 235, 236, 237, + 239, 240, 241, 246, 249, 251, 253, 256, 262, 264, + 265, 266, 268, 269, 270, 275, 276, 277, 278, 286, + 290, 301, 302, 312, 321, 323, 294, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 1293, 0, 0, 0, 0, 162, 0, 0, + 0, 0, 192, 0, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 0, 0, 0, 0, 195, 0, 0, + 316, 283, 213, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1295, 1297, 0, 0, 0, 0, 0, + 116, 0, 388, 0, 0, 0, 0, 0, 0, 143, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 122, 0, 0, 0, 0, 172, 214, 133, 0, 0, + 0, 185, 322, 0, 1296, 0, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 0, + 0, 0, 0, 0, 154, 0, 260, 232, 311, 0, + 0, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 0, 0, 0, 151, 0, 0, 0, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 0, 0, 285, 314, 328, 201, 140, 0, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 389, 390, 391, 392, 393, 397, 398, + 402, 403, 411, 410, 409, 412, 413, 415, 414, 416, + 394, 395, 396, 399, 400, 401, 404, 405, 408, 406, + 407, 0, 118, 129, 194, 0, 252, 168, 315, 0, + 160, 0, 0, 0, 0, 0, 0, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 294, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 1293, + 0, 0, 0, 0, 162, 0, 0, 0, 0, 192, + 0, 0, 153, 200, 198, 0, 0, 0, 234, 292, + 0, 0, 0, 0, 195, 0, 0, 316, 283, 213, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1295, 1297, 0, 0, 0, 0, 0, 116, 0, 388, + 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, + 0, 0, 172, 214, 133, 0, 0, 0, 185, 322, + 0, 1296, 0, 248, 0, 288, 175, 193, 137, 119, + 131, 147, 174, 224, 257, 267, 0, 0, 0, 0, + 0, 154, 0, 260, 232, 311, 0, 0, 1291, 259, + 196, 300, 250, 309, 310, 176, 293, 319, 324, 280, + 163, 0, 123, 0, 245, 158, 189, 0, 0, 0, + 151, 0, 0, 0, 279, 298, 138, 295, 212, 218, + 148, 150, 149, 132, 274, 297, 142, 152, 284, 263, + 289, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 124, 291, 308, 144, 271, 272, 325, 258, 126, + 306, 287, 210, 186, 187, 125, 0, 255, 161, 171, + 156, 227, 0, 170, 247, 303, 304, 155, 327, 134, + 318, 128, 135, 317, 221, 0, 220, 320, 299, 307, + 211, 204, 0, 127, 305, 209, 203, 191, 166, 178, + 243, 199, 244, 179, 216, 215, 217, 0, 0, 0, + 285, 314, 328, 201, 140, 0, 273, 296, 0, 0, + 141, 169, 165, 242, 219, 136, 181, 282, 190, 197, + 254, 326, 231, 261, 145, 313, 281, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 389, 390, 391, 392, 393, 397, 398, 402, 403, 411, + 410, 409, 412, 413, 415, 414, 416, 394, 395, 396, + 399, 400, 401, 404, 405, 408, 406, 407, 0, 118, + 129, 194, 0, 252, 168, 315, 0, 160, 0, 0, + 0, 0, 0, 0, 120, 121, 130, 139, 146, 159, + 164, 167, 173, 177, 180, 182, 183, 184, 188, 202, + 205, 206, 207, 208, 222, 223, 225, 226, 229, 230, + 233, 235, 236, 237, 239, 240, 241, 246, 249, 251, + 253, 256, 262, 264, 265, 266, 268, 269, 270, 275, + 276, 277, 278, 286, 290, 301, 302, 312, 321, 323, + 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 0, 0, 854, 0, 0, 0, + 0, 162, 0, 0, 0, 0, 192, 0, 0, 153, + 200, 198, 0, 0, 0, 234, 292, 0, 0, 0, + 0, 195, 0, 0, 316, 283, 213, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 855, 0, 858, 0, 0, 0, + 0, 0, 0, 143, 0, 0, 0, 0, 0, 851, + 850, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 852, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 122, 0, 0, 0, 0, 172, + 214, 133, 0, 0, 0, 185, 322, 0, 0, 0, + 248, 0, 288, 175, 193, 137, 119, 131, 147, 174, + 224, 257, 267, 0, 0, 0, 0, 0, 154, 0, + 260, 232, 311, 0, 0, 238, 259, 196, 300, 250, + 309, 310, 176, 293, 319, 324, 280, 163, 0, 123, + 0, 245, 158, 189, 0, 0, 0, 151, 0, 0, + 0, 279, 298, 138, 295, 212, 218, 148, 150, 149, + 132, 274, 297, 142, 152, 284, 263, 289, 157, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 124, 291, + 308, 144, 271, 272, 325, 258, 126, 306, 287, 210, + 186, 187, 125, 0, 255, 161, 171, 156, 227, 0, + 170, 247, 303, 304, 155, 327, 134, 318, 128, 135, + 317, 221, 0, 220, 320, 299, 307, 211, 204, 0, + 127, 305, 209, 203, 191, 166, 178, 243, 199, 244, + 179, 216, 215, 217, 0, 0, 0, 285, 314, 328, + 201, 140, 0, 273, 296, 0, 0, 141, 169, 165, + 242, 219, 136, 181, 282, 190, 197, 254, 326, 231, + 261, 145, 313, 281, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 389, 390, 391, + 392, 393, 397, 398, 402, 403, 411, 410, 409, 412, + 413, 415, 414, 416, 394, 395, 396, 399, 400, 401, + 404, 405, 408, 406, 407, 0, 118, 129, 194, 0, + 252, 168, 315, 0, 160, 0, 0, 0, 0, 0, + 0, 120, 121, 130, 139, 146, 159, 164, 167, 173, + 177, 180, 182, 183, 184, 188, 202, 205, 206, 207, + 208, 222, 223, 225, 226, 229, 230, 233, 235, 236, + 237, 239, 240, 241, 246, 249, 251, 253, 256, 262, + 264, 265, 266, 268, 269, 270, 275, 276, 277, 278, + 286, 290, 301, 302, 312, 321, 323, 294, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, + 0, 0, 0, 192, 1554, 0, 153, 200, 198, 0, + 0, 0, 234, 292, 0, 0, 0, 0, 195, 0, + 0, 316, 283, 213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 116, 0, 388, 0, 0, 0, 0, 0, 0, + 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 122, 0, 0, 0, 0, 172, 214, 133, 0, + 0, 0, 185, 322, 0, 0, 0, 248, 0, 288, + 175, 193, 137, 119, 131, 147, 174, 224, 257, 267, + 0, 0, 0, 0, 0, 154, 0, 260, 232, 311, + 0, 0, 238, 259, 196, 300, 250, 309, 310, 176, + 293, 319, 324, 280, 163, 0, 123, 0, 245, 158, + 189, 0, 0, 0, 151, 0, 0, 0, 279, 298, + 138, 295, 212, 218, 148, 150, 149, 132, 274, 297, + 142, 152, 284, 263, 289, 157, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 124, 291, 308, 144, 271, + 272, 325, 258, 126, 306, 287, 210, 186, 187, 125, + 0, 255, 161, 171, 156, 227, 0, 170, 247, 303, + 304, 155, 327, 134, 318, 128, 135, 317, 221, 0, + 220, 320, 299, 307, 211, 204, 0, 127, 305, 209, + 203, 191, 166, 178, 243, 199, 244, 179, 216, 215, + 217, 0, 0, 0, 285, 314, 328, 201, 140, 0, + 273, 296, 0, 0, 141, 169, 165, 242, 219, 136, + 181, 282, 190, 197, 254, 326, 231, 261, 145, 313, + 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 389, 390, 391, 392, 393, 397, + 398, 402, 403, 411, 410, 409, 412, 413, 415, 414, + 416, 394, 395, 396, 399, 400, 401, 404, 405, 408, + 406, 407, 0, 118, 129, 194, 0, 252, 168, 315, + 0, 160, 0, 0, 0, 0, 0, 0, 120, 121, + 130, 139, 146, 159, 164, 167, 173, 177, 180, 182, + 183, 184, 188, 202, 205, 206, 207, 208, 222, 223, + 225, 226, 229, 230, 233, 235, 236, 237, 239, 240, + 241, 246, 249, 251, 253, 256, 262, 264, 265, 266, + 268, 269, 270, 275, 276, 277, 278, 286, 290, 301, + 302, 312, 321, 323, 294, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, + 192, 0, 0, 153, 200, 198, 0, 0, 0, 234, + 292, 0, 0, 0, 0, 195, 0, 0, 316, 283, + 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 116, 0, + 388, 0, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, + 0, 0, 0, 172, 214, 133, 0, 0, 0, 185, + 322, 0, 0, 0, 248, 0, 288, 175, 193, 137, + 119, 131, 147, 174, 224, 257, 267, 0, 0, 0, + 0, 0, 154, 0, 260, 232, 311, 0, 0, 238, + 259, 196, 300, 250, 309, 310, 176, 293, 319, 324, + 280, 163, 0, 123, 0, 245, 158, 189, 0, 0, + 0, 151, 0, 0, 0, 279, 298, 138, 295, 212, + 218, 148, 150, 149, 132, 274, 297, 142, 152, 284, + 263, 289, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 291, 308, 144, 271, 272, 325, 258, + 126, 306, 287, 210, 186, 187, 125, 0, 255, 161, + 171, 156, 227, 0, 170, 247, 303, 304, 155, 327, + 134, 318, 128, 135, 317, 221, 0, 220, 320, 299, + 307, 211, 204, 0, 127, 305, 209, 203, 191, 166, + 178, 243, 199, 244, 179, 216, 215, 217, 0, 0, + 0, 285, 314, 328, 201, 140, 0, 273, 296, 0, + 0, 141, 169, 165, 242, 219, 136, 181, 282, 190, + 197, 254, 326, 231, 261, 145, 313, 281, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 389, 390, 391, 392, 393, 397, 398, 402, 403, + 411, 410, 409, 412, 413, 415, 414, 416, 394, 395, + 396, 399, 400, 401, 404, 405, 408, 406, 407, 0, + 118, 129, 194, 0, 252, 168, 315, 0, 160, 0, + 0, 0, 0, 0, 0, 120, 121, 130, 139, 146, + 159, 164, 167, 173, 177, 180, 182, 183, 184, 188, + 202, 205, 206, 207, 208, 222, 223, 225, 226, 229, + 230, 233, 235, 236, 237, 239, 240, 241, 246, 249, + 251, 253, 256, 262, 264, 265, 266, 268, 269, 270, + 275, 276, 277, 278, 286, 290, 301, 302, 312, 321, + 323, 294, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 162, 0, 0, 0, 0, 192, 0, 0, + 153, 200, 198, 0, 0, 0, 234, 292, 0, 0, + 0, 0, 195, 0, 0, 316, 283, 213, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 855, 0, 858, 0, 0, + 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, + 172, 214, 133, 0, 0, 0, 185, 322, 0, 0, + 0, 248, 0, 288, 175, 193, 137, 119, 131, 147, + 174, 224, 257, 267, 0, 0, 0, 0, 0, 154, + 0, 260, 232, 311, 0, 0, 238, 259, 196, 300, + 250, 309, 310, 176, 293, 319, 324, 280, 163, 0, + 123, 0, 245, 158, 189, 0, 0, 0, 151, 0, + 0, 0, 279, 298, 138, 295, 212, 218, 148, 150, + 149, 132, 274, 297, 142, 152, 284, 263, 289, 157, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 291, 308, 144, 271, 272, 325, 258, 126, 306, 287, + 210, 186, 187, 125, 0, 255, 161, 171, 156, 227, + 0, 170, 247, 303, 304, 155, 327, 134, 318, 128, + 135, 317, 221, 0, 220, 320, 299, 307, 211, 204, + 0, 127, 305, 209, 203, 191, 166, 178, 243, 199, + 244, 179, 216, 215, 217, 0, 0, 0, 285, 314, + 328, 201, 140, 0, 273, 296, 0, 0, 141, 169, + 165, 242, 219, 136, 181, 282, 190, 197, 254, 326, + 231, 261, 145, 313, 281, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 389, 390, + 391, 392, 393, 397, 398, 402, 403, 411, 410, 409, + 412, 413, 415, 414, 416, 394, 395, 396, 399, 400, + 401, 404, 405, 408, 406, 407, 0, 118, 129, 194, + 0, 252, 168, 315, 0, 160, 0, 0, 0, 0, + 0, 0, 120, 121, 130, 139, 146, 159, 164, 167, + 173, 177, 180, 182, 183, 184, 188, 202, 205, 206, + 207, 208, 222, 223, 225, 226, 229, 230, 233, 235, + 236, 237, 239, 240, 241, 246, 249, 251, 253, 256, + 262, 264, 265, 266, 268, 269, 270, 275, 276, 277, + 278, 286, 290, 301, 302, 312, 321, 323, 294, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, + 0, 0, 0, 0, 192, 0, 0, 153, 200, 198, + 0, 0, 0, 234, 292, 0, 0, 0, 0, 195, + 0, 0, 316, 283, 213, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 559, 0, 0, 0, 0, 0, 0, 0, + 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 868, + 867, 877, 878, 870, 871, 872, 873, 874, 875, 876, + 869, 0, 0, 879, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 0, 0, 0, 0, 172, 214, 133, + 0, 0, 0, 185, 322, 0, 0, 0, 248, 0, + 288, 175, 193, 137, 119, 131, 147, 174, 224, 257, + 267, 0, 0, 0, 0, 0, 154, 0, 260, 232, + 311, 0, 0, 238, 259, 196, 300, 250, 309, 310, + 176, 293, 319, 324, 280, 163, 0, 123, 0, 245, + 158, 189, 0, 0, 0, 151, 0, 0, 0, 279, + 298, 138, 295, 212, 218, 148, 150, 149, 132, 274, + 297, 142, 152, 284, 263, 289, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 124, 291, 308, 144, + 271, 272, 325, 258, 126, 306, 287, 210, 186, 187, + 125, 0, 255, 161, 171, 156, 227, 0, 170, 247, + 303, 304, 155, 327, 134, 318, 128, 135, 317, 221, + 0, 220, 320, 299, 307, 211, 204, 0, 127, 305, + 209, 203, 191, 166, 178, 243, 199, 244, 179, 216, + 215, 217, 0, 0, 0, 285, 314, 328, 201, 140, + 0, 273, 296, 0, 0, 141, 169, 165, 242, 219, + 136, 181, 282, 190, 197, 254, 326, 231, 261, 145, + 313, 281, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 129, 194, 0, 252, 168, + 315, 0, 160, 0, 0, 0, 0, 0, 0, 120, + 121, 130, 139, 146, 159, 164, 167, 173, 177, 180, + 182, 183, 184, 188, 202, 205, 206, 207, 208, 222, + 223, 225, 226, 229, 230, 233, 235, 236, 237, 239, + 240, 241, 246, 249, 251, 253, 256, 262, 264, 265, + 266, 268, 269, 270, 275, 276, 277, 278, 286, 290, + 301, 302, 312, 321, 323, 32, 294, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, + 0, 0, 192, 0, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 0, 0, 0, 1288, 195, 0, 0, + 316, 283, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, 0, 0, - 431, 454, 1217, 456, 457, 458, 459, 0, 0, 142, - 455, 460, 461, 462, 0, 0, 0, 428, 445, 0, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 442, 443, 1209, 0, 0, 0, 491, 0, 444, - 0, 0, 439, 440, 441, 446, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 171, 213, 132, 468, 0, - 0, 184, 320, 0, 0, 489, 247, 0, 287, 174, - 192, 136, 118, 130, 146, 173, 223, 256, 266, 474, - 0, 0, 0, 0, 153, 0, 259, 231, 309, 0, - 0, 237, 258, 195, 298, 249, 307, 308, 175, 292, - 317, 322, 279, 162, 0, 122, 0, 244, 157, 188, - 0, 0, 0, 150, 0, 0, 0, 278, 137, 294, - 211, 217, 147, 149, 148, 131, 273, 296, 141, 151, - 283, 262, 288, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 290, 306, 143, 270, 271, 323, - 257, 125, 304, 286, 209, 185, 186, 124, 0, 254, - 160, 170, 155, 226, 0, 169, 246, 301, 302, 154, - 325, 133, 316, 127, 134, 315, 220, 0, 219, 318, - 297, 305, 210, 203, 0, 126, 303, 208, 202, 190, - 165, 177, 242, 198, 243, 178, 215, 214, 216, 0, - 0, 0, 284, 312, 326, 200, 139, 0, 272, 295, - 0, 0, 140, 168, 164, 241, 218, 135, 180, 281, - 189, 196, 253, 324, 230, 260, 144, 311, 280, 478, - 490, 484, 486, 485, 482, 483, 481, 480, 479, 492, - 469, 470, 471, 472, 475, 0, 487, 488, 0, 0, - 0, 0, 505, 506, 507, 508, 509, 510, 511, 504, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 493, - 494, 495, 496, 497, 498, 499, 500, 503, 501, 502, - 473, 117, 128, 193, 0, 251, 167, 313, 0, 159, - 0, 0, 0, 0, 0, 0, 119, 120, 129, 138, - 145, 158, 163, 166, 172, 176, 179, 181, 182, 183, - 187, 201, 204, 205, 206, 207, 221, 222, 224, 225, - 228, 229, 232, 234, 235, 236, 238, 239, 240, 245, - 248, 250, 252, 255, 261, 263, 264, 265, 267, 268, - 269, 274, 275, 276, 277, 285, 289, 299, 300, 310, - 319, 321, 293, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 227, 0, 0, 0, 0, 0, 433, - 0, 0, 0, 161, 430, 0, 0, 0, 191, 0, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 0, - 0, 0, 477, 194, 0, 0, 314, 282, 212, 0, - 0, 0, 0, 466, 467, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 0, 1128, 431, 454, 453, 456, - 457, 458, 459, 0, 0, 142, 455, 460, 461, 462, - 0, 0, 0, 428, 445, 0, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 443, 0, - 0, 0, 0, 491, 0, 444, 0, 0, 439, 440, - 441, 446, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 171, 213, 132, 468, 0, 0, 184, 320, 0, - 0, 489, 247, 0, 287, 174, 192, 136, 118, 130, - 146, 173, 223, 256, 266, 474, 0, 0, 0, 0, - 153, 0, 259, 231, 309, 0, 0, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 0, 0, 0, 150, - 0, 0, 0, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 134, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 0, 0, 284, 312, - 326, 200, 139, 0, 272, 295, 0, 0, 140, 168, - 164, 241, 218, 135, 180, 281, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 478, 490, 484, 486, 485, - 482, 483, 481, 480, 479, 492, 469, 470, 471, 472, - 475, 0, 487, 488, 0, 0, 0, 0, 505, 506, - 507, 508, 509, 510, 511, 504, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 493, 494, 495, 496, 497, - 498, 499, 500, 503, 501, 502, 473, 117, 128, 193, - 0, 251, 167, 313, 0, 159, 0, 0, 0, 0, - 0, 0, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 239, 240, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 293, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 0, 433, 0, 0, 0, 161, - 430, 0, 0, 0, 191, 0, 0, 152, 199, 197, - 0, 0, 0, 233, 291, 0, 0, 0, 477, 194, - 0, 0, 314, 282, 212, 0, 0, 0, 0, 466, - 467, 0, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 0, 431, 454, 453, 456, 457, 458, 459, 0, - 0, 142, 455, 460, 461, 462, 0, 0, 0, 428, - 445, 0, 476, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 442, 443, 0, 0, 0, 0, 491, - 0, 444, 0, 0, 439, 440, 441, 446, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 171, 213, 132, - 468, 0, 0, 184, 320, 0, 0, 489, 247, 0, - 287, 174, 192, 136, 118, 130, 146, 173, 223, 256, - 266, 474, 0, 0, 0, 0, 153, 0, 259, 231, - 309, 0, 0, 237, 258, 195, 298, 249, 307, 308, - 175, 292, 317, 322, 279, 162, 0, 122, 0, 244, - 157, 188, 0, 0, 0, 150, 0, 0, 0, 278, - 137, 294, 211, 217, 147, 149, 148, 131, 273, 296, - 141, 151, 283, 262, 288, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 290, 306, 143, 270, - 271, 323, 257, 125, 304, 286, 209, 185, 186, 124, - 0, 254, 160, 170, 155, 226, 0, 169, 246, 301, - 302, 154, 325, 133, 316, 127, 134, 315, 220, 0, - 219, 318, 297, 305, 210, 203, 0, 126, 303, 208, - 202, 190, 165, 177, 242, 198, 243, 178, 215, 214, - 216, 0, 0, 0, 284, 312, 326, 200, 139, 0, - 272, 295, 0, 0, 140, 168, 164, 241, 218, 135, - 180, 281, 189, 196, 253, 324, 230, 260, 144, 311, - 280, 478, 490, 484, 486, 485, 482, 483, 481, 480, - 479, 492, 469, 470, 471, 472, 475, 0, 487, 488, - 0, 0, 0, 0, 505, 506, 507, 508, 509, 510, - 511, 504, 512, 513, 514, 515, 516, 517, 518, 519, - 520, 493, 494, 495, 496, 497, 498, 499, 500, 503, - 501, 502, 473, 117, 128, 193, 0, 251, 167, 313, - 0, 159, 0, 0, 0, 0, 0, 0, 119, 120, - 129, 138, 145, 158, 163, 166, 172, 176, 179, 181, - 182, 183, 187, 201, 204, 205, 206, 207, 221, 222, - 224, 225, 228, 229, 232, 234, 235, 236, 238, 239, - 240, 245, 248, 250, 252, 255, 261, 263, 264, 265, - 267, 268, 269, 274, 275, 276, 277, 285, 289, 299, - 300, 310, 319, 321, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 0, 433, 0, 0, 0, 161, 430, 0, 0, 0, - 191, 0, 0, 152, 199, 197, 0, 0, 0, 233, - 291, 0, 0, 0, 477, 194, 0, 0, 314, 282, - 212, 0, 0, 0, 0, 466, 467, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 0, 431, 454, - 453, 456, 457, 458, 459, 0, 0, 142, 455, 460, - 461, 462, 0, 0, 0, 428, 445, 0, 476, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 442, - 443, 0, 0, 0, 0, 491, 0, 444, 0, 0, - 439, 440, 441, 446, 0, 0, 0, 0, 121, 0, - 0, 0, 0, 171, 213, 132, 468, 0, 0, 184, - 320, 0, 0, 489, 247, 0, 287, 174, 192, 136, - 118, 130, 146, 173, 223, 256, 266, 474, 0, 0, - 0, 0, 153, 0, 259, 231, 309, 0, 0, 237, - 258, 195, 298, 249, 307, 308, 175, 292, 317, 322, - 279, 162, 0, 122, 0, 244, 157, 188, 0, 0, - 0, 150, 0, 0, 0, 278, 137, 294, 211, 217, - 147, 149, 148, 131, 273, 296, 141, 151, 283, 262, - 288, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 290, 306, 143, 270, 271, 323, 257, 125, - 304, 286, 209, 185, 186, 124, 0, 254, 160, 170, - 155, 226, 0, 169, 246, 301, 302, 154, 325, 133, - 316, 127, 134, 315, 220, 0, 219, 318, 297, 305, - 210, 203, 0, 126, 303, 208, 202, 190, 165, 177, - 242, 198, 243, 178, 215, 214, 216, 0, 0, 0, - 284, 312, 326, 200, 139, 0, 272, 295, 0, 0, - 140, 168, 164, 241, 218, 135, 180, 281, 189, 196, - 253, 324, 230, 260, 144, 311, 280, 478, 490, 484, - 486, 485, 482, 483, 481, 480, 479, 492, 469, 470, - 471, 472, 475, 0, 487, 488, 0, 0, 0, 0, - 813, 814, 815, 816, 817, 821, 822, 826, 827, 835, - 834, 833, 836, 837, 839, 838, 840, 818, 819, 820, - 823, 824, 825, 828, 829, 832, 830, 831, 473, 117, - 128, 193, 0, 251, 167, 313, 0, 159, 0, 0, - 0, 0, 0, 0, 119, 120, 129, 138, 145, 158, - 163, 166, 172, 176, 179, 181, 182, 183, 187, 201, - 204, 205, 206, 207, 221, 222, 224, 225, 228, 229, - 232, 234, 235, 236, 238, 239, 240, 245, 248, 250, - 252, 255, 261, 263, 264, 265, 267, 268, 269, 274, - 275, 276, 277, 285, 289, 299, 300, 310, 319, 321, - 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 0, 0, 0, 191, 0, 0, 152, - 199, 197, 0, 0, 0, 233, 291, 0, 0, 0, - 477, 194, 0, 0, 314, 282, 212, 0, 0, 0, - 0, 466, 467, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 431, 454, 453, 456, 457, 458, - 459, 0, 0, 142, 455, 460, 461, 462, 0, 0, - 0, 0, 445, 0, 476, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 442, 443, 0, 0, 0, - 0, 491, 0, 444, 0, 0, 439, 440, 441, 446, - 0, 0, 0, 0, 121, 0, 0, 0, 0, 171, - 213, 132, 468, 0, 0, 184, 320, 0, 0, 489, - 247, 0, 287, 174, 192, 136, 118, 130, 146, 173, - 223, 256, 266, 474, 0, 0, 0, 0, 153, 0, - 259, 231, 309, 0, 2294, 237, 258, 195, 298, 249, - 307, 308, 175, 292, 317, 322, 279, 162, 0, 122, - 0, 244, 157, 188, 0, 0, 0, 150, 0, 0, - 0, 278, 137, 294, 211, 217, 147, 149, 148, 131, - 273, 296, 141, 151, 283, 262, 288, 156, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 290, 306, - 143, 270, 271, 323, 257, 125, 304, 286, 209, 185, - 186, 124, 0, 254, 160, 170, 155, 226, 0, 169, - 246, 301, 302, 154, 325, 133, 316, 127, 134, 315, - 220, 0, 219, 318, 297, 305, 210, 203, 0, 126, - 303, 208, 202, 190, 165, 177, 242, 198, 243, 178, - 215, 214, 216, 0, 0, 0, 284, 312, 326, 200, - 139, 0, 272, 295, 0, 0, 140, 168, 164, 241, - 218, 135, 180, 281, 189, 196, 253, 324, 230, 260, - 144, 311, 280, 478, 490, 484, 486, 485, 482, 483, - 481, 480, 479, 492, 469, 470, 471, 472, 475, 0, - 487, 488, 0, 0, 0, 0, 505, 506, 507, 508, - 509, 510, 511, 504, 512, 513, 514, 515, 516, 517, - 518, 519, 520, 493, 494, 495, 496, 497, 498, 499, - 500, 503, 501, 502, 473, 117, 128, 193, 0, 251, - 167, 313, 0, 159, 0, 0, 0, 0, 0, 0, - 119, 120, 129, 138, 145, 158, 163, 166, 172, 176, - 179, 181, 182, 183, 187, 201, 204, 205, 206, 207, - 221, 222, 224, 225, 228, 229, 232, 234, 235, 236, - 238, 239, 240, 245, 248, 250, 252, 255, 261, 263, - 264, 265, 267, 268, 269, 274, 275, 276, 277, 285, - 289, 299, 300, 310, 319, 321, 293, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, - 0, 0, 191, 0, 0, 152, 199, 197, 0, 0, - 0, 233, 291, 0, 0, 0, 477, 194, 0, 0, - 314, 282, 212, 0, 0, 0, 0, 466, 467, 0, - 0, 0, 0, 0, 0, 0, 0, 77, 0, 803, - 431, 454, 453, 456, 457, 458, 459, 0, 0, 142, - 455, 460, 461, 462, 0, 0, 0, 0, 445, 0, - 476, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 442, 443, 0, 0, 0, 0, 491, 0, 444, - 0, 0, 439, 440, 441, 446, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 171, 213, 132, 468, 0, - 0, 184, 320, 0, 0, 489, 247, 0, 287, 174, - 192, 136, 118, 130, 146, 173, 223, 256, 266, 474, - 0, 0, 0, 0, 153, 0, 259, 231, 309, 0, - 0, 237, 258, 195, 298, 249, 307, 308, 175, 292, - 317, 322, 279, 162, 0, 122, 0, 244, 157, 188, - 0, 0, 0, 150, 0, 0, 0, 278, 137, 294, - 211, 217, 147, 149, 148, 131, 273, 296, 141, 151, - 283, 262, 288, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 290, 306, 143, 270, 271, 323, - 257, 125, 304, 286, 209, 185, 186, 124, 0, 254, - 160, 170, 155, 226, 0, 169, 246, 301, 302, 154, - 325, 133, 316, 127, 134, 315, 220, 0, 219, 318, - 297, 305, 210, 203, 0, 126, 303, 208, 202, 190, - 165, 177, 242, 198, 243, 178, 215, 214, 216, 0, - 0, 0, 284, 312, 326, 200, 139, 0, 272, 295, - 0, 0, 140, 168, 164, 241, 218, 135, 180, 281, - 189, 196, 253, 324, 230, 260, 144, 311, 280, 478, - 490, 484, 486, 485, 482, 483, 481, 480, 479, 492, - 469, 470, 471, 472, 475, 0, 487, 488, 0, 0, - 0, 0, 505, 506, 507, 508, 509, 510, 511, 504, - 512, 513, 514, 515, 516, 517, 518, 519, 520, 493, - 494, 495, 496, 497, 498, 499, 500, 503, 501, 502, - 473, 117, 128, 193, 0, 251, 167, 313, 0, 159, - 0, 0, 0, 0, 0, 0, 119, 120, 129, 138, - 145, 158, 163, 166, 172, 176, 179, 181, 182, 183, - 187, 201, 204, 205, 206, 207, 221, 222, 224, 225, - 228, 229, 232, 234, 235, 236, 238, 239, 240, 245, - 248, 250, 252, 255, 261, 263, 264, 265, 267, 268, - 269, 274, 275, 276, 277, 285, 289, 299, 300, 310, - 319, 321, 293, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 191, 0, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 0, - 0, 0, 477, 194, 0, 0, 314, 282, 212, 0, - 0, 0, 0, 466, 467, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 0, 0, 431, 454, 453, 456, - 457, 458, 459, 0, 0, 142, 455, 460, 461, 462, - 0, 0, 0, 0, 445, 0, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 442, 443, 0, - 0, 0, 0, 491, 0, 444, 0, 0, 439, 440, - 441, 446, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 171, 213, 132, 468, 0, 0, 184, 320, 0, - 0, 489, 247, 0, 287, 174, 192, 136, 118, 130, - 146, 173, 223, 256, 266, 474, 0, 0, 0, 0, - 153, 0, 259, 231, 309, 0, 0, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 0, 0, 0, 150, - 0, 0, 0, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 134, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 0, 0, 284, 312, - 326, 200, 139, 0, 272, 295, 0, 0, 140, 168, - 164, 241, 218, 135, 180, 281, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 478, 490, 484, 486, 485, - 482, 483, 481, 480, 479, 492, 469, 470, 471, 472, - 475, 0, 487, 488, 0, 0, 0, 0, 505, 506, - 507, 508, 509, 510, 511, 504, 512, 513, 514, 515, - 516, 517, 518, 519, 520, 493, 494, 495, 496, 497, - 498, 499, 500, 503, 501, 502, 473, 117, 128, 193, - 0, 251, 167, 313, 0, 159, 0, 0, 0, 0, - 0, 0, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 239, 240, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 293, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 1291, 0, 0, 0, 0, 161, - 0, 0, 0, 0, 191, 0, 0, 152, 199, 197, - 0, 0, 0, 233, 291, 0, 0, 0, 0, 194, - 0, 0, 314, 282, 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1293, 1295, 0, 0, 0, - 0, 0, 115, 0, 386, 0, 0, 0, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 171, 213, 132, - 0, 0, 0, 184, 320, 0, 1294, 0, 247, 0, - 287, 174, 192, 136, 118, 130, 146, 173, 223, 256, - 266, 0, 0, 0, 0, 0, 153, 0, 259, 231, - 309, 0, 0, 237, 258, 195, 298, 249, 307, 308, - 175, 292, 317, 322, 279, 162, 0, 122, 0, 244, - 157, 188, 0, 0, 0, 150, 0, 0, 0, 278, - 137, 294, 211, 217, 147, 149, 148, 131, 273, 296, - 141, 151, 283, 262, 288, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 290, 306, 143, 270, - 271, 323, 257, 125, 304, 286, 209, 185, 186, 124, - 0, 254, 160, 170, 155, 226, 0, 169, 246, 301, - 302, 154, 325, 133, 316, 127, 134, 315, 220, 0, - 219, 318, 297, 305, 210, 203, 0, 126, 303, 208, - 202, 190, 165, 177, 242, 198, 243, 178, 215, 214, - 216, 0, 0, 0, 284, 312, 326, 200, 139, 0, - 272, 295, 0, 0, 140, 168, 164, 241, 218, 135, - 180, 281, 189, 196, 253, 324, 230, 260, 144, 311, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 387, 388, 389, 390, 391, 395, - 396, 400, 401, 409, 408, 407, 410, 411, 413, 412, - 414, 392, 393, 394, 397, 398, 399, 402, 403, 406, - 404, 405, 0, 117, 128, 193, 0, 251, 167, 313, - 0, 159, 0, 0, 0, 0, 0, 0, 119, 120, - 129, 138, 145, 158, 163, 166, 172, 176, 179, 181, - 182, 183, 187, 201, 204, 205, 206, 207, 221, 222, - 224, 225, 228, 229, 232, 234, 235, 236, 238, 239, - 240, 245, 248, 250, 252, 255, 261, 263, 264, 265, - 267, 268, 269, 274, 275, 276, 277, 285, 289, 299, - 300, 310, 319, 321, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 1291, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 191, 0, 0, 152, 199, 197, 0, 0, 0, 233, - 291, 0, 0, 0, 0, 194, 0, 0, 314, 282, - 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1293, 1295, 0, 0, 0, 0, 0, 115, 0, - 386, 0, 0, 0, 0, 0, 0, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, - 0, 0, 0, 171, 213, 132, 0, 0, 0, 184, - 320, 0, 1294, 0, 247, 0, 287, 174, 192, 136, - 118, 130, 146, 173, 223, 256, 266, 0, 0, 0, - 0, 0, 153, 0, 259, 231, 309, 0, 0, 1289, - 258, 195, 298, 249, 307, 308, 175, 292, 317, 322, - 279, 162, 0, 122, 0, 244, 157, 188, 0, 0, - 0, 150, 0, 0, 0, 278, 137, 294, 211, 217, - 147, 149, 148, 131, 273, 296, 141, 151, 283, 262, - 288, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 290, 306, 143, 270, 271, 323, 257, 125, - 304, 286, 209, 185, 186, 124, 0, 254, 160, 170, - 155, 226, 0, 169, 246, 301, 302, 154, 325, 133, - 316, 127, 134, 315, 220, 0, 219, 318, 297, 305, - 210, 203, 0, 126, 303, 208, 202, 190, 165, 177, - 242, 198, 243, 178, 215, 214, 216, 0, 0, 0, - 284, 312, 326, 200, 139, 0, 272, 295, 0, 0, - 140, 168, 164, 241, 218, 135, 180, 281, 189, 196, - 253, 324, 230, 260, 144, 311, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 387, 388, 389, 390, 391, 395, 396, 400, 401, 409, - 408, 407, 410, 411, 413, 412, 414, 392, 393, 394, - 397, 398, 399, 402, 403, 406, 404, 405, 0, 117, - 128, 193, 0, 251, 167, 313, 0, 159, 0, 0, - 0, 0, 0, 0, 119, 120, 129, 138, 145, 158, - 163, 166, 172, 176, 179, 181, 182, 183, 187, 201, - 204, 205, 206, 207, 221, 222, 224, 225, 228, 229, - 232, 234, 235, 236, 238, 239, 240, 245, 248, 250, - 252, 255, 261, 263, 264, 265, 267, 268, 269, 274, - 275, 276, 277, 285, 289, 299, 300, 310, 319, 321, - 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 0, 0, 0, 191, 1551, 0, 152, - 199, 197, 0, 0, 0, 233, 291, 0, 0, 0, - 0, 194, 0, 0, 314, 282, 212, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 115, 0, 386, 0, 0, 0, - 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 0, 0, 0, 0, 171, - 213, 132, 0, 0, 0, 184, 320, 0, 0, 0, - 247, 0, 287, 174, 192, 136, 118, 130, 146, 173, - 223, 256, 266, 0, 0, 0, 0, 0, 153, 0, - 259, 231, 309, 0, 0, 237, 258, 195, 298, 249, - 307, 308, 175, 292, 317, 322, 279, 162, 0, 122, - 0, 244, 157, 188, 0, 0, 0, 150, 0, 0, - 0, 278, 137, 294, 211, 217, 147, 149, 148, 131, - 273, 296, 141, 151, 283, 262, 288, 156, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 290, 306, - 143, 270, 271, 323, 257, 125, 304, 286, 209, 185, - 186, 124, 0, 254, 160, 170, 155, 226, 0, 169, - 246, 301, 302, 154, 325, 133, 316, 127, 134, 315, - 220, 0, 219, 318, 297, 305, 210, 203, 0, 126, - 303, 208, 202, 190, 165, 177, 242, 198, 243, 178, - 215, 214, 216, 0, 0, 0, 284, 312, 326, 200, - 139, 0, 272, 295, 0, 0, 140, 168, 164, 241, - 218, 135, 180, 281, 189, 196, 253, 324, 230, 260, - 144, 311, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 387, 388, 389, 390, - 391, 395, 396, 400, 401, 409, 408, 407, 410, 411, - 413, 412, 414, 392, 393, 394, 397, 398, 399, 402, - 403, 406, 404, 405, 0, 117, 128, 193, 0, 251, - 167, 313, 0, 159, 0, 0, 0, 0, 0, 0, - 119, 120, 129, 138, 145, 158, 163, 166, 172, 176, - 179, 181, 182, 183, 187, 201, 204, 205, 206, 207, - 221, 222, 224, 225, 228, 229, 232, 234, 235, 236, - 238, 239, 240, 245, 248, 250, 252, 255, 261, 263, - 264, 265, 267, 268, 269, 274, 275, 276, 277, 285, - 289, 299, 300, 310, 319, 321, 293, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, - 0, 0, 191, 0, 0, 152, 199, 197, 0, 0, - 0, 233, 291, 0, 0, 0, 0, 194, 0, 0, - 314, 282, 212, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 115, 0, 386, 0, 0, 0, 0, 0, 0, 142, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 171, 213, 132, 0, 0, - 0, 184, 320, 0, 0, 0, 247, 0, 287, 174, - 192, 136, 118, 130, 146, 173, 223, 256, 266, 0, - 0, 0, 0, 0, 153, 0, 259, 231, 309, 0, - 0, 237, 258, 195, 298, 249, 307, 308, 175, 292, - 317, 322, 279, 162, 0, 122, 0, 244, 157, 188, - 0, 0, 0, 150, 0, 0, 0, 278, 137, 294, - 211, 217, 147, 149, 148, 131, 273, 296, 141, 151, - 283, 262, 288, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 290, 306, 143, 270, 271, 323, - 257, 125, 304, 286, 209, 185, 186, 124, 0, 254, - 160, 170, 155, 226, 0, 169, 246, 301, 302, 154, - 325, 133, 316, 127, 134, 315, 220, 0, 219, 318, - 297, 305, 210, 203, 0, 126, 303, 208, 202, 190, - 165, 177, 242, 198, 243, 178, 215, 214, 216, 0, - 0, 0, 284, 312, 326, 200, 139, 0, 272, 295, - 0, 0, 140, 168, 164, 241, 218, 135, 180, 281, - 189, 196, 253, 324, 230, 260, 144, 311, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 387, 388, 389, 390, 391, 395, 396, 400, - 401, 409, 408, 407, 410, 411, 413, 412, 414, 392, - 393, 394, 397, 398, 399, 402, 403, 406, 404, 405, - 0, 117, 128, 193, 0, 251, 167, 313, 0, 159, - 0, 0, 0, 0, 0, 0, 119, 120, 129, 138, - 145, 158, 163, 166, 172, 176, 179, 181, 182, 183, - 187, 201, 204, 205, 206, 207, 221, 222, 224, 225, - 228, 229, 232, 234, 235, 236, 238, 239, 240, 245, - 248, 250, 252, 255, 261, 263, 264, 265, 267, 268, - 269, 274, 275, 276, 277, 285, 289, 299, 300, 310, - 319, 321, 293, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 191, 0, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 0, - 0, 0, 0, 194, 0, 0, 314, 282, 212, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 853, 0, 856, 0, - 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 171, 213, 132, 0, 0, 0, 184, 320, 0, - 0, 0, 247, 0, 287, 174, 192, 136, 118, 130, - 146, 173, 223, 256, 266, 0, 0, 0, 0, 0, - 153, 0, 259, 231, 309, 0, 0, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 0, 0, 0, 150, - 0, 0, 0, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 134, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 0, 0, 284, 312, - 326, 200, 139, 0, 272, 295, 0, 0, 140, 168, - 164, 241, 218, 135, 180, 281, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 387, 388, - 389, 390, 391, 395, 396, 400, 401, 409, 408, 407, - 410, 411, 413, 412, 414, 392, 393, 394, 397, 398, - 399, 402, 403, 406, 404, 405, 0, 117, 128, 193, - 0, 251, 167, 313, 0, 159, 0, 0, 0, 0, - 0, 0, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 239, 240, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 293, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 0, 0, 0, 0, 191, 0, 0, 152, 199, 197, - 0, 0, 0, 233, 291, 0, 0, 0, 0, 194, - 0, 0, 314, 282, 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 866, - 865, 875, 876, 868, 869, 870, 871, 872, 873, 874, - 867, 0, 0, 877, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 171, 213, 132, - 0, 0, 0, 184, 320, 0, 0, 0, 247, 0, - 287, 174, 192, 136, 118, 130, 146, 173, 223, 256, - 266, 0, 0, 0, 0, 0, 153, 0, 259, 231, - 309, 0, 0, 237, 258, 195, 298, 249, 307, 308, - 175, 292, 317, 322, 279, 162, 0, 122, 0, 244, - 157, 188, 0, 0, 0, 150, 0, 0, 0, 278, - 137, 294, 211, 217, 147, 149, 148, 131, 273, 296, - 141, 151, 283, 262, 288, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 290, 306, 143, 270, - 271, 323, 257, 125, 304, 286, 209, 185, 186, 124, - 0, 254, 160, 170, 155, 226, 0, 169, 246, 301, - 302, 154, 325, 133, 316, 127, 134, 315, 220, 0, - 219, 318, 297, 305, 210, 203, 0, 126, 303, 208, - 202, 190, 165, 177, 242, 198, 243, 178, 215, 214, - 216, 0, 0, 0, 284, 312, 326, 200, 139, 0, - 272, 295, 0, 0, 140, 168, 164, 241, 218, 135, - 180, 281, 189, 196, 253, 324, 230, 260, 144, 311, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 117, 128, 193, 0, 251, 167, 313, - 0, 159, 0, 0, 0, 0, 0, 0, 119, 120, - 129, 138, 145, 158, 163, 166, 172, 176, 179, 181, - 182, 183, 187, 201, 204, 205, 206, 207, 221, 222, - 224, 225, 228, 229, 232, 234, 235, 236, 238, 239, - 240, 245, 248, 250, 252, 255, 261, 263, 264, 265, - 267, 268, 269, 274, 275, 276, 277, 285, 289, 299, - 300, 310, 319, 321, 32, 293, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 161, 0, 0, 0, - 0, 191, 0, 0, 152, 199, 197, 0, 0, 0, - 233, 291, 0, 0, 0, 1286, 194, 0, 0, 314, - 282, 212, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 0, 0, 115, - 0, 0, 0, 0, 0, 0, 0, 0, 142, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 121, - 0, 0, 0, 0, 171, 213, 132, 0, 0, 0, - 184, 320, 0, 0, 0, 247, 0, 287, 174, 192, - 136, 118, 130, 146, 173, 223, 256, 266, 0, 0, - 0, 0, 0, 153, 0, 259, 231, 309, 0, 0, - 237, 258, 195, 298, 249, 307, 308, 175, 292, 317, - 322, 279, 162, 0, 122, 0, 244, 157, 188, 0, - 0, 0, 150, 0, 0, 0, 278, 137, 294, 211, - 217, 147, 149, 148, 131, 273, 296, 141, 151, 283, - 262, 288, 156, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 123, 290, 306, 143, 270, 271, 323, 257, - 125, 304, 286, 209, 185, 186, 124, 0, 254, 160, - 170, 155, 226, 0, 169, 246, 301, 302, 154, 325, - 133, 316, 127, 134, 315, 220, 0, 219, 318, 297, - 305, 210, 203, 0, 126, 303, 208, 202, 190, 165, - 177, 242, 198, 243, 178, 215, 214, 216, 0, 0, - 0, 284, 312, 326, 200, 139, 0, 272, 295, 0, - 0, 140, 168, 164, 241, 218, 135, 180, 281, 189, - 196, 253, 324, 230, 260, 144, 311, 280, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 117, 128, 193, 75, 251, 167, 313, 0, 159, 0, - 0, 0, 0, 0, 0, 119, 120, 129, 138, 145, - 158, 163, 166, 172, 176, 179, 181, 182, 183, 187, - 201, 204, 205, 206, 207, 221, 222, 224, 225, 228, - 229, 232, 234, 235, 236, 238, 239, 240, 245, 248, - 250, 252, 255, 261, 263, 264, 265, 267, 268, 269, - 274, 275, 276, 277, 285, 289, 299, 300, 310, 319, - 321, 32, 293, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 191, 0, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 0, - 0, 0, 0, 194, 0, 0, 314, 282, 212, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 77, 0, 0, 557, 0, 0, 0, - 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 171, 213, 132, 0, 0, 0, 184, 320, 0, - 0, 0, 247, 0, 287, 174, 192, 136, 118, 130, - 146, 173, 223, 256, 266, 0, 0, 0, 0, 0, - 153, 0, 259, 231, 309, 0, 0, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 0, 0, 0, 150, - 0, 0, 0, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 134, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 0, 0, 284, 312, - 326, 200, 139, 0, 272, 295, 0, 0, 140, 168, - 164, 241, 218, 135, 180, 281, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 117, 128, 193, - 75, 251, 167, 313, 0, 159, 0, 0, 0, 0, - 0, 0, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 239, 240, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 293, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 1000, 0, 0, 0, 191, 0, 0, 152, 199, 197, - 0, 0, 0, 233, 291, 0, 0, 0, 0, 194, - 0, 0, 314, 282, 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 557, 0, 999, 0, 0, 0, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 171, 213, 132, - 0, 0, 0, 184, 320, 0, 0, 0, 247, 0, - 287, 174, 192, 136, 118, 130, 146, 173, 223, 256, - 266, 0, 0, 0, 0, 0, 153, 0, 259, 231, - 309, 0, 0, 237, 258, 195, 298, 249, 307, 308, - 175, 292, 317, 322, 279, 162, 0, 122, 0, 244, - 157, 188, 0, 0, 0, 150, 0, 0, 0, 278, - 137, 294, 211, 217, 147, 149, 148, 131, 273, 296, - 141, 151, 283, 262, 288, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 290, 306, 143, 270, - 271, 323, 257, 125, 304, 286, 209, 185, 186, 124, - 0, 254, 160, 170, 155, 226, 0, 169, 246, 301, - 302, 154, 325, 133, 316, 127, 134, 315, 220, 0, - 219, 318, 297, 305, 210, 203, 0, 126, 303, 208, - 202, 190, 165, 177, 242, 198, 243, 178, 215, 214, - 216, 0, 0, 0, 284, 312, 326, 200, 139, 0, - 272, 295, 0, 0, 140, 168, 164, 241, 218, 135, - 180, 281, 189, 196, 253, 324, 230, 260, 144, 311, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 117, 128, 193, 0, 251, 167, 313, - 0, 159, 0, 0, 0, 0, 0, 0, 119, 120, - 129, 138, 145, 158, 163, 166, 172, 176, 179, 181, - 182, 183, 187, 201, 204, 205, 206, 207, 221, 222, - 224, 225, 228, 229, 232, 234, 235, 236, 238, 239, - 240, 245, 248, 250, 252, 255, 261, 263, 264, 265, - 267, 268, 269, 274, 275, 276, 277, 285, 289, 299, - 300, 310, 319, 321, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 191, 0, 0, 152, 199, 197, 0, 0, 0, 233, - 291, 0, 0, 0, 0, 194, 0, 0, 314, 282, - 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 77, 0, 0, 115, 0, - 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, - 0, 0, 0, 171, 213, 132, 0, 0, 0, 184, - 320, 0, 0, 0, 247, 0, 287, 174, 192, 136, - 118, 130, 146, 173, 223, 256, 266, 0, 0, 0, - 0, 0, 153, 0, 259, 231, 309, 0, 0, 237, - 258, 195, 298, 249, 307, 308, 175, 292, 317, 322, - 279, 162, 0, 122, 0, 244, 157, 188, 0, 0, - 0, 150, 0, 0, 0, 278, 137, 294, 211, 217, - 147, 149, 148, 131, 273, 296, 141, 151, 283, 262, - 288, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 290, 306, 143, 270, 271, 323, 257, 125, - 304, 286, 209, 185, 186, 124, 0, 254, 160, 170, - 155, 226, 0, 169, 246, 301, 302, 154, 325, 133, - 316, 127, 134, 315, 220, 0, 219, 318, 297, 305, - 210, 203, 0, 126, 303, 208, 202, 190, 165, 177, - 242, 198, 243, 178, 215, 214, 216, 0, 0, 0, - 284, 312, 326, 200, 139, 0, 272, 295, 0, 0, - 140, 168, 164, 241, 218, 135, 180, 281, 189, 196, - 253, 324, 230, 260, 144, 311, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, - 128, 193, 0, 251, 167, 313, 0, 159, 0, 0, - 0, 0, 0, 0, 119, 120, 129, 138, 145, 158, - 163, 166, 172, 176, 179, 181, 182, 183, 187, 201, - 204, 205, 206, 207, 221, 222, 224, 225, 228, 229, - 232, 234, 235, 236, 238, 239, 240, 245, 248, 250, - 252, 255, 261, 263, 264, 265, 267, 268, 269, 274, - 275, 276, 277, 285, 289, 299, 300, 310, 319, 321, - 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 0, 0, 0, 191, 0, 0, 152, - 199, 197, 0, 0, 0, 233, 291, 0, 0, 0, - 0, 194, 0, 0, 314, 282, 212, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 77, 0, 0, 557, 0, 0, 0, 0, 0, - 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 0, 0, 0, 0, 171, - 213, 132, 0, 0, 0, 184, 320, 0, 0, 0, - 247, 0, 287, 174, 192, 136, 118, 130, 146, 173, - 223, 256, 266, 0, 0, 0, 0, 0, 153, 0, - 259, 231, 309, 0, 0, 237, 258, 195, 298, 249, - 307, 308, 175, 292, 317, 322, 279, 162, 0, 122, - 0, 244, 157, 188, 0, 0, 0, 150, 0, 0, - 0, 278, 137, 294, 211, 217, 147, 149, 148, 131, - 273, 296, 141, 151, 283, 262, 288, 156, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 290, 306, - 143, 270, 271, 323, 257, 125, 304, 286, 209, 185, - 186, 124, 0, 254, 160, 170, 155, 226, 0, 169, - 246, 301, 302, 154, 325, 133, 316, 127, 134, 315, - 220, 0, 219, 318, 297, 305, 210, 203, 0, 126, - 303, 208, 202, 190, 165, 177, 242, 198, 243, 178, - 215, 214, 216, 0, 0, 0, 284, 312, 326, 200, - 139, 0, 272, 295, 0, 0, 140, 168, 164, 241, - 218, 135, 180, 281, 189, 196, 253, 324, 230, 260, - 144, 311, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 117, 128, 193, 0, 251, - 167, 313, 0, 159, 0, 0, 0, 0, 0, 0, - 119, 120, 129, 138, 145, 158, 163, 166, 172, 176, - 179, 181, 182, 183, 187, 201, 204, 205, 206, 207, - 221, 222, 224, 225, 228, 229, 232, 234, 235, 236, - 238, 239, 240, 245, 248, 250, 252, 255, 261, 263, - 264, 265, 267, 268, 269, 274, 275, 276, 277, 285, - 289, 299, 300, 310, 319, 321, 293, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 0, 0, 0, 0, 0, 0, 969, 161, 0, 0, - 0, 0, 191, 0, 0, 152, 199, 197, 0, 0, - 0, 233, 291, 0, 0, 0, 0, 194, 0, 0, - 314, 282, 212, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 115, 0, 0, 0, 0, 0, 0, 0, 0, 142, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 171, 213, 132, 0, 0, - 0, 184, 320, 0, 0, 0, 247, 0, 287, 174, - 192, 136, 118, 130, 146, 173, 223, 256, 266, 0, - 0, 0, 0, 0, 153, 0, 259, 231, 309, 0, - 0, 237, 258, 195, 298, 249, 307, 308, 175, 292, - 317, 322, 279, 162, 0, 122, 0, 244, 157, 188, - 0, 0, 0, 150, 0, 0, 0, 278, 137, 294, - 211, 217, 147, 149, 148, 131, 273, 296, 141, 151, - 283, 262, 288, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 290, 306, 143, 270, 271, 323, - 257, 125, 304, 286, 209, 185, 186, 124, 0, 254, - 160, 170, 155, 226, 0, 169, 246, 301, 302, 154, - 325, 133, 316, 127, 134, 315, 220, 0, 219, 318, - 297, 305, 210, 203, 0, 126, 303, 208, 202, 190, - 165, 177, 242, 198, 243, 178, 215, 214, 216, 0, - 0, 0, 284, 312, 326, 200, 139, 0, 272, 295, - 0, 0, 140, 168, 164, 241, 218, 135, 180, 281, - 189, 196, 253, 324, 230, 260, 144, 311, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 117, 128, 193, 0, 251, 167, 313, 0, 159, - 0, 0, 0, 0, 0, 0, 119, 120, 129, 138, - 145, 158, 163, 166, 172, 176, 179, 181, 182, 183, - 187, 201, 204, 205, 206, 207, 221, 222, 224, 225, - 228, 229, 232, 234, 235, 236, 238, 239, 240, 245, - 248, 250, 252, 255, 261, 263, 264, 265, 267, 268, - 269, 274, 275, 276, 277, 285, 289, 299, 300, 310, - 319, 321, 293, 0, 0, 0, 523, 0, 0, 0, - 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 191, 0, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 0, - 0, 0, 0, 194, 0, 0, 314, 282, 212, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 115, 0, 0, 0, - 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 171, 213, 132, 0, 0, 0, 184, 320, 0, - 0, 0, 247, 0, 287, 174, 192, 136, 118, 130, - 146, 173, 223, 256, 266, 0, 0, 0, 0, 0, - 153, 0, 259, 231, 309, 0, 0, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 0, 0, 0, 150, - 0, 0, 0, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 134, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 0, 0, 284, 312, - 326, 200, 139, 0, 272, 295, 0, 0, 140, 168, - 164, 241, 218, 135, 180, 281, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 117, 128, 193, - 0, 251, 167, 313, 0, 159, 0, 0, 0, 0, - 0, 0, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 239, 240, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 293, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 0, 0, 0, 0, 191, 0, 0, 152, 199, 197, - 0, 0, 0, 233, 291, 0, 0, 0, 0, 194, - 0, 0, 314, 282, 212, 0, 0, 0, 0, 0, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 122, 0, 0, 0, 0, 172, 214, 133, 0, 0, + 0, 185, 322, 0, 0, 0, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 0, + 0, 0, 0, 0, 154, 0, 260, 232, 311, 0, + 0, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 0, 0, 0, 151, 0, 0, 0, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 0, 0, 285, 314, 328, 201, 140, 0, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 118, 129, 194, 75, 252, 168, 315, 0, + 160, 0, 0, 0, 0, 0, 0, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 32, 294, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, + 192, 0, 0, 153, 200, 198, 0, 0, 0, 234, + 292, 0, 0, 0, 0, 195, 0, 0, 316, 283, + 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 77, 0, 0, 559, 0, + 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, + 0, 0, 0, 172, 214, 133, 0, 0, 0, 185, + 322, 0, 0, 0, 248, 0, 288, 175, 193, 137, + 119, 131, 147, 174, 224, 257, 267, 0, 0, 0, + 0, 0, 154, 0, 260, 232, 311, 0, 0, 238, + 259, 196, 300, 250, 309, 310, 176, 293, 319, 324, + 280, 163, 0, 123, 0, 245, 158, 189, 0, 0, + 0, 151, 0, 0, 0, 279, 298, 138, 295, 212, + 218, 148, 150, 149, 132, 274, 297, 142, 152, 284, + 263, 289, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 291, 308, 144, 271, 272, 325, 258, + 126, 306, 287, 210, 186, 187, 125, 0, 255, 161, + 171, 156, 227, 0, 170, 247, 303, 304, 155, 327, + 134, 318, 128, 135, 317, 221, 0, 220, 320, 299, + 307, 211, 204, 0, 127, 305, 209, 203, 191, 166, + 178, 243, 199, 244, 179, 216, 215, 217, 0, 0, + 0, 285, 314, 328, 201, 140, 0, 273, 296, 0, + 0, 141, 169, 165, 242, 219, 136, 181, 282, 190, + 197, 254, 326, 231, 261, 145, 313, 281, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 118, 129, 194, 75, 252, 168, 315, 0, 160, 0, + 0, 0, 0, 0, 0, 120, 121, 130, 139, 146, + 159, 164, 167, 173, 177, 180, 182, 183, 184, 188, + 202, 205, 206, 207, 208, 222, 223, 225, 226, 229, + 230, 233, 235, 236, 237, 239, 240, 241, 246, 249, + 251, 253, 256, 262, 264, 265, 266, 268, 269, 270, + 275, 276, 277, 278, 286, 290, 301, 302, 312, 321, + 323, 294, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 162, 1002, 0, 0, 0, 192, 0, 0, + 153, 200, 198, 0, 0, 0, 234, 292, 0, 0, + 0, 0, 195, 0, 0, 316, 283, 213, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 559, 0, 1001, 0, 0, + 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, + 172, 214, 133, 0, 0, 0, 185, 322, 0, 0, + 0, 248, 0, 288, 175, 193, 137, 119, 131, 147, + 174, 224, 257, 267, 0, 0, 0, 0, 0, 154, + 0, 260, 232, 311, 0, 0, 238, 259, 196, 300, + 250, 309, 310, 176, 293, 319, 324, 280, 163, 0, + 123, 0, 245, 158, 189, 0, 0, 0, 151, 0, + 0, 0, 279, 298, 138, 295, 212, 218, 148, 150, + 149, 132, 274, 297, 142, 152, 284, 263, 289, 157, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 291, 308, 144, 271, 272, 325, 258, 126, 306, 287, + 210, 186, 187, 125, 0, 255, 161, 171, 156, 227, + 0, 170, 247, 303, 304, 155, 327, 134, 318, 128, + 135, 317, 221, 0, 220, 320, 299, 307, 211, 204, + 0, 127, 305, 209, 203, 191, 166, 178, 243, 199, + 244, 179, 216, 215, 217, 0, 0, 0, 285, 314, + 328, 201, 140, 0, 273, 296, 0, 0, 141, 169, + 165, 242, 219, 136, 181, 282, 190, 197, 254, 326, + 231, 261, 145, 313, 281, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 118, 129, 194, + 0, 252, 168, 315, 0, 160, 0, 0, 0, 0, + 0, 0, 120, 121, 130, 139, 146, 159, 164, 167, + 173, 177, 180, 182, 183, 184, 188, 202, 205, 206, + 207, 208, 222, 223, 225, 226, 229, 230, 233, 235, + 236, 237, 239, 240, 241, 246, 249, 251, 253, 256, + 262, 264, 265, 266, 268, 269, 270, 275, 276, 277, + 278, 286, 290, 301, 302, 312, 321, 323, 294, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, + 0, 0, 0, 0, 192, 0, 0, 153, 200, 198, + 0, 0, 0, 234, 292, 0, 0, 0, 0, 195, + 0, 0, 316, 283, 213, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 77, + 0, 0, 116, 0, 0, 0, 0, 0, 0, 0, + 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 0, 0, 0, 0, 172, 214, 133, + 0, 0, 0, 185, 322, 0, 0, 0, 248, 0, + 288, 175, 193, 137, 119, 131, 147, 174, 224, 257, + 267, 0, 0, 0, 0, 0, 154, 0, 260, 232, + 311, 0, 0, 238, 259, 196, 300, 250, 309, 310, + 176, 293, 319, 324, 280, 163, 0, 123, 0, 245, + 158, 189, 0, 0, 0, 151, 0, 0, 0, 279, + 298, 138, 295, 212, 218, 148, 150, 149, 132, 274, + 297, 142, 152, 284, 263, 289, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 124, 291, 308, 144, + 271, 272, 325, 258, 126, 306, 287, 210, 186, 187, + 125, 0, 255, 161, 171, 156, 227, 0, 170, 247, + 303, 304, 155, 327, 134, 318, 128, 135, 317, 221, + 0, 220, 320, 299, 307, 211, 204, 0, 127, 305, + 209, 203, 191, 166, 178, 243, 199, 244, 179, 216, + 215, 217, 0, 0, 0, 285, 314, 328, 201, 140, + 0, 273, 296, 0, 0, 141, 169, 165, 242, 219, + 136, 181, 282, 190, 197, 254, 326, 231, 261, 145, + 313, 281, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 129, 194, 0, 252, 168, + 315, 0, 160, 0, 0, 0, 0, 0, 0, 120, + 121, 130, 139, 146, 159, 164, 167, 173, 177, 180, + 182, 183, 184, 188, 202, 205, 206, 207, 208, 222, + 223, 225, 226, 229, 230, 233, 235, 236, 237, 239, + 240, 241, 246, 249, 251, 253, 256, 262, 264, 265, + 266, 268, 269, 270, 275, 276, 277, 278, 286, 290, + 301, 302, 312, 321, 323, 294, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 228, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, + 0, 192, 0, 0, 153, 200, 198, 0, 0, 0, + 234, 292, 0, 0, 0, 0, 195, 0, 0, 316, + 283, 213, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 77, 0, 0, 559, + 0, 0, 0, 0, 0, 0, 0, 0, 143, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, + 0, 0, 0, 0, 172, 214, 133, 0, 0, 0, + 185, 322, 0, 0, 0, 248, 0, 288, 175, 193, + 137, 119, 131, 147, 174, 224, 257, 267, 0, 0, + 0, 0, 0, 154, 0, 260, 232, 311, 0, 0, + 238, 259, 196, 300, 250, 309, 310, 176, 293, 319, + 324, 280, 163, 0, 123, 0, 245, 158, 189, 0, + 0, 0, 151, 0, 0, 0, 279, 298, 138, 295, + 212, 218, 148, 150, 149, 132, 274, 297, 142, 152, + 284, 263, 289, 157, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 124, 291, 308, 144, 271, 272, 325, + 258, 126, 306, 287, 210, 186, 187, 125, 0, 255, + 161, 171, 156, 227, 0, 170, 247, 303, 304, 155, + 327, 134, 318, 128, 135, 317, 221, 0, 220, 320, + 299, 307, 211, 204, 0, 127, 305, 209, 203, 191, + 166, 178, 243, 199, 244, 179, 216, 215, 217, 0, + 0, 0, 285, 314, 328, 201, 140, 0, 273, 296, + 0, 0, 141, 169, 165, 242, 219, 136, 181, 282, + 190, 197, 254, 326, 231, 261, 145, 313, 281, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 118, 129, 194, 0, 252, 168, 315, 0, 160, + 0, 0, 0, 0, 0, 0, 120, 121, 130, 139, + 146, 159, 164, 167, 173, 177, 180, 182, 183, 184, + 188, 202, 205, 206, 207, 208, 222, 223, 225, 226, + 229, 230, 233, 235, 236, 237, 239, 240, 241, 246, + 249, 251, 253, 256, 262, 264, 265, 266, 268, 269, + 270, 275, 276, 277, 278, 286, 290, 301, 302, 312, + 321, 323, 294, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 228, 0, 0, 0, 0, 0, 0, + 0, 0, 971, 162, 0, 0, 0, 0, 192, 0, + 0, 153, 200, 198, 0, 0, 0, 234, 292, 0, + 0, 0, 0, 195, 0, 0, 316, 283, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 115, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 171, 213, 132, - 0, 112, 0, 184, 320, 0, 0, 0, 247, 0, - 287, 174, 192, 136, 118, 130, 146, 173, 223, 256, - 266, 0, 0, 0, 0, 0, 153, 0, 259, 231, - 309, 0, 0, 237, 258, 195, 298, 249, 307, 308, - 175, 292, 317, 322, 279, 162, 0, 122, 0, 244, - 157, 188, 0, 0, 0, 150, 0, 0, 0, 278, - 137, 294, 211, 217, 147, 149, 148, 131, 273, 296, - 141, 151, 283, 262, 288, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 290, 306, 143, 270, - 271, 323, 257, 125, 304, 286, 209, 185, 186, 124, - 0, 254, 160, 170, 155, 226, 0, 169, 246, 301, - 302, 154, 325, 133, 316, 127, 134, 315, 220, 0, - 219, 318, 297, 305, 210, 203, 0, 126, 303, 208, - 202, 190, 165, 177, 242, 198, 243, 178, 215, 214, - 216, 0, 0, 0, 284, 312, 326, 200, 139, 0, - 272, 295, 0, 0, 140, 168, 164, 241, 218, 135, - 180, 281, 189, 196, 253, 324, 230, 260, 144, 311, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 117, 128, 193, 0, 251, 167, 313, - 0, 159, 0, 0, 0, 0, 0, 0, 119, 120, - 129, 138, 145, 158, 163, 166, 172, 176, 179, 181, - 182, 183, 187, 201, 204, 205, 206, 207, 221, 222, - 224, 225, 228, 229, 232, 234, 235, 236, 238, 239, - 240, 245, 248, 250, 252, 255, 261, 263, 264, 265, - 267, 268, 269, 274, 275, 276, 277, 285, 289, 299, - 300, 310, 319, 321, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 191, 0, 0, 152, 199, 197, 0, 0, 0, 233, - 291, 0, 0, 0, 0, 194, 0, 0, 314, 282, - 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 557, 0, - 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, - 0, 0, 0, 171, 213, 132, 0, 0, 0, 184, - 320, 0, 0, 0, 247, 0, 287, 174, 192, 136, - 118, 130, 146, 173, 223, 256, 266, 0, 0, 0, - 0, 0, 153, 0, 259, 231, 309, 0, 0, 237, - 258, 195, 298, 249, 307, 308, 175, 292, 317, 322, - 279, 162, 0, 122, 0, 244, 157, 188, 0, 0, - 0, 150, 0, 0, 0, 278, 137, 294, 211, 217, - 147, 149, 148, 131, 273, 296, 141, 151, 283, 262, - 288, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 290, 306, 143, 270, 271, 323, 257, 125, - 304, 286, 209, 185, 186, 124, 0, 254, 160, 170, - 155, 226, 0, 169, 246, 301, 302, 154, 325, 133, - 316, 127, 134, 315, 220, 0, 219, 318, 297, 305, - 210, 203, 0, 126, 303, 208, 202, 190, 165, 177, - 242, 198, 243, 178, 215, 214, 216, 0, 0, 0, - 284, 312, 326, 200, 139, 0, 272, 295, 0, 0, - 140, 168, 164, 241, 218, 135, 180, 281, 189, 196, - 253, 324, 230, 260, 144, 311, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, - 128, 193, 0, 251, 167, 313, 0, 159, 0, 0, - 0, 0, 0, 0, 119, 120, 129, 138, 145, 158, - 163, 166, 172, 176, 179, 181, 182, 183, 187, 201, - 204, 205, 206, 207, 221, 222, 224, 225, 228, 229, - 232, 234, 235, 236, 238, 239, 240, 245, 248, 250, - 252, 255, 261, 263, 264, 265, 267, 268, 269, 274, - 275, 276, 277, 285, 289, 299, 300, 310, 319, 321, - 293, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 0, 0, 0, 191, 0, 0, 152, - 199, 197, 0, 0, 0, 233, 291, 0, 0, 0, - 0, 194, 0, 0, 314, 282, 212, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 116, 0, 0, 0, + 0, 0, 0, 0, 0, 143, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 122, 0, 0, 0, + 0, 172, 214, 133, 0, 0, 0, 185, 322, 0, + 0, 0, 248, 0, 288, 175, 193, 137, 119, 131, + 147, 174, 224, 257, 267, 0, 0, 0, 0, 0, + 154, 0, 260, 232, 311, 0, 0, 238, 259, 196, + 300, 250, 309, 310, 176, 293, 319, 324, 280, 163, + 0, 123, 0, 245, 158, 189, 0, 0, 0, 151, + 0, 0, 0, 279, 298, 138, 295, 212, 218, 148, + 150, 149, 132, 274, 297, 142, 152, 284, 263, 289, + 157, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 124, 291, 308, 144, 271, 272, 325, 258, 126, 306, + 287, 210, 186, 187, 125, 0, 255, 161, 171, 156, + 227, 0, 170, 247, 303, 304, 155, 327, 134, 318, + 128, 135, 317, 221, 0, 220, 320, 299, 307, 211, + 204, 0, 127, 305, 209, 203, 191, 166, 178, 243, + 199, 244, 179, 216, 215, 217, 0, 0, 0, 285, + 314, 328, 201, 140, 0, 273, 296, 0, 0, 141, + 169, 165, 242, 219, 136, 181, 282, 190, 197, 254, + 326, 231, 261, 145, 313, 281, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 118, 129, + 194, 0, 252, 168, 315, 0, 160, 0, 0, 0, + 0, 0, 0, 120, 121, 130, 139, 146, 159, 164, + 167, 173, 177, 180, 182, 183, 184, 188, 202, 205, + 206, 207, 208, 222, 223, 225, 226, 229, 230, 233, + 235, 236, 237, 239, 240, 241, 246, 249, 251, 253, + 256, 262, 264, 265, 266, 268, 269, 270, 275, 276, + 277, 278, 286, 290, 301, 302, 312, 321, 323, 294, + 0, 0, 0, 525, 0, 0, 0, 0, 0, 0, + 228, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 162, 0, 0, 0, 0, 192, 0, 0, 153, 200, + 198, 0, 0, 0, 234, 292, 0, 0, 0, 0, + 195, 0, 0, 316, 283, 213, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 116, 0, 0, 0, 0, 0, 0, + 0, 0, 143, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 122, 0, 0, 0, 0, 172, 214, + 133, 0, 0, 0, 185, 322, 0, 0, 0, 248, + 0, 288, 175, 193, 137, 119, 131, 147, 174, 224, + 257, 267, 0, 0, 0, 0, 0, 154, 0, 260, + 232, 311, 0, 0, 238, 259, 196, 300, 250, 309, + 310, 176, 293, 319, 324, 280, 163, 0, 123, 0, + 245, 158, 189, 0, 0, 0, 151, 0, 0, 0, + 279, 298, 138, 295, 212, 218, 148, 150, 149, 132, + 274, 297, 142, 152, 284, 263, 289, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 124, 291, 308, + 144, 271, 272, 325, 258, 126, 306, 287, 210, 186, + 187, 125, 0, 255, 161, 171, 156, 227, 0, 170, + 247, 303, 304, 155, 327, 134, 318, 128, 135, 317, + 221, 0, 220, 320, 299, 307, 211, 204, 0, 127, + 305, 209, 203, 191, 166, 178, 243, 199, 244, 179, + 216, 215, 217, 0, 0, 0, 285, 314, 328, 201, + 140, 0, 273, 296, 0, 0, 141, 169, 165, 242, + 219, 136, 181, 282, 190, 197, 254, 326, 231, 261, + 145, 313, 281, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 118, 129, 194, 0, 252, + 168, 315, 0, 160, 0, 0, 0, 0, 0, 0, + 120, 121, 130, 139, 146, 159, 164, 167, 173, 177, + 180, 182, 183, 184, 188, 202, 205, 206, 207, 208, + 222, 223, 225, 226, 229, 230, 233, 235, 236, 237, + 239, 240, 241, 246, 249, 251, 253, 256, 262, 264, + 265, 266, 268, 269, 270, 275, 276, 277, 278, 286, + 290, 301, 302, 312, 321, 323, 294, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, + 0, 0, 192, 0, 0, 153, 200, 198, 0, 0, + 0, 234, 292, 0, 0, 0, 0, 195, 0, 0, + 316, 283, 213, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 116, 0, 0, 0, 0, 0, 0, 0, 0, 143, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 122, 0, 0, 0, 0, 172, 214, 133, 0, 113, + 0, 185, 322, 0, 0, 0, 248, 0, 288, 175, + 193, 137, 119, 131, 147, 174, 224, 257, 267, 0, + 0, 0, 0, 0, 154, 0, 260, 232, 311, 0, + 0, 238, 259, 196, 300, 250, 309, 310, 176, 293, + 319, 324, 280, 163, 0, 123, 0, 245, 158, 189, + 0, 0, 0, 151, 0, 0, 0, 279, 298, 138, + 295, 212, 218, 148, 150, 149, 132, 274, 297, 142, + 152, 284, 263, 289, 157, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 124, 291, 308, 144, 271, 272, + 325, 258, 126, 306, 287, 210, 186, 187, 125, 0, + 255, 161, 171, 156, 227, 0, 170, 247, 303, 304, + 155, 327, 134, 318, 128, 135, 317, 221, 0, 220, + 320, 299, 307, 211, 204, 0, 127, 305, 209, 203, + 191, 166, 178, 243, 199, 244, 179, 216, 215, 217, + 0, 0, 0, 285, 314, 328, 201, 140, 0, 273, + 296, 0, 0, 141, 169, 165, 242, 219, 136, 181, + 282, 190, 197, 254, 326, 231, 261, 145, 313, 281, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 118, 129, 194, 0, 252, 168, 315, 0, + 160, 0, 0, 0, 0, 0, 0, 120, 121, 130, + 139, 146, 159, 164, 167, 173, 177, 180, 182, 183, + 184, 188, 202, 205, 206, 207, 208, 222, 223, 225, + 226, 229, 230, 233, 235, 236, 237, 239, 240, 241, + 246, 249, 251, 253, 256, 262, 264, 265, 266, 268, + 269, 270, 275, 276, 277, 278, 286, 290, 301, 302, + 312, 321, 323, 294, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 228, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 162, 0, 0, 0, 0, 192, + 0, 0, 153, 200, 198, 0, 0, 0, 234, 292, + 0, 0, 0, 0, 195, 0, 0, 316, 283, 213, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 559, 0, 0, + 0, 0, 0, 0, 0, 0, 143, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 122, 0, 0, + 0, 0, 172, 214, 133, 0, 0, 0, 185, 322, + 0, 0, 0, 248, 0, 288, 175, 193, 137, 119, + 131, 147, 174, 224, 257, 267, 0, 0, 0, 0, + 0, 154, 0, 260, 232, 311, 0, 0, 238, 259, + 196, 300, 250, 309, 310, 176, 293, 319, 324, 280, + 163, 0, 123, 0, 245, 158, 189, 0, 0, 0, + 151, 0, 0, 0, 279, 298, 138, 295, 212, 218, + 148, 150, 149, 132, 274, 297, 142, 152, 284, 263, + 289, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 124, 291, 308, 144, 271, 272, 325, 258, 126, + 306, 287, 210, 186, 187, 125, 0, 255, 161, 171, + 156, 227, 0, 170, 247, 303, 304, 155, 327, 134, + 318, 128, 135, 317, 221, 0, 220, 320, 299, 307, + 211, 204, 0, 127, 305, 209, 203, 191, 166, 178, + 243, 199, 244, 179, 216, 215, 217, 0, 0, 0, + 285, 314, 328, 201, 140, 0, 273, 296, 0, 0, + 141, 169, 165, 242, 219, 136, 181, 282, 190, 197, + 254, 326, 231, 261, 145, 313, 281, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 118, + 129, 194, 0, 252, 168, 315, 0, 160, 0, 0, + 0, 0, 0, 0, 120, 121, 130, 139, 146, 159, + 164, 167, 173, 177, 180, 182, 183, 184, 188, 202, + 205, 206, 207, 208, 222, 223, 225, 226, 229, 230, + 233, 235, 236, 237, 239, 240, 241, 246, 249, 251, + 253, 256, 262, 264, 265, 266, 268, 269, 270, 275, + 276, 277, 278, 286, 290, 301, 302, 312, 321, 323, + 294, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 228, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 162, 0, 0, 0, 0, 192, 0, 0, 153, + 200, 198, 0, 0, 0, 234, 292, 0, 0, 0, + 0, 195, 0, 0, 316, 283, 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 115, 0, 0, 0, 0, 0, - 0, 0, 0, 142, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 0, 0, 0, 0, 171, - 213, 132, 0, 0, 0, 184, 320, 0, 0, 0, - 247, 0, 287, 174, 192, 136, 118, 130, 146, 173, - 223, 256, 266, 0, 0, 0, 0, 0, 153, 0, - 259, 231, 309, 0, 0, 237, 258, 195, 298, 249, - 307, 308, 175, 292, 317, 322, 279, 162, 0, 122, - 0, 244, 157, 188, 0, 0, 0, 150, 0, 0, - 0, 278, 137, 294, 211, 217, 147, 149, 148, 131, - 273, 296, 141, 151, 283, 262, 288, 156, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 123, 290, 306, - 143, 270, 271, 323, 257, 125, 304, 286, 209, 185, - 186, 124, 0, 254, 160, 170, 155, 226, 0, 169, - 246, 301, 302, 154, 325, 133, 316, 127, 134, 315, - 220, 0, 219, 318, 297, 305, 210, 203, 0, 126, - 303, 208, 202, 190, 165, 177, 242, 198, 243, 178, - 215, 214, 216, 0, 0, 0, 284, 312, 326, 200, - 139, 0, 272, 295, 0, 0, 140, 168, 164, 241, - 218, 135, 180, 281, 189, 196, 253, 324, 230, 260, - 144, 311, 280, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 117, 128, 193, 0, 251, - 167, 313, 0, 159, 0, 0, 0, 0, 0, 0, - 119, 120, 129, 138, 145, 158, 163, 166, 172, 176, - 179, 181, 182, 183, 187, 201, 204, 205, 206, 207, - 221, 222, 224, 225, 228, 229, 232, 234, 235, 236, - 238, 239, 240, 245, 248, 250, 252, 255, 261, 263, - 264, 265, 267, 268, 269, 274, 275, 276, 277, 285, - 289, 299, 300, 310, 319, 321, 293, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 161, 0, 0, - 0, 0, 191, 0, 0, 152, 199, 197, 0, 0, - 0, 233, 291, 0, 0, 0, 0, 194, 0, 0, - 314, 282, 212, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 431, 0, 0, 0, 0, 0, 0, 0, 0, 142, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 121, 0, 0, 0, 0, 171, 213, 132, 0, 0, - 0, 184, 320, 0, 0, 0, 247, 0, 287, 174, - 192, 136, 118, 130, 146, 173, 223, 256, 266, 0, - 0, 0, 0, 0, 153, 0, 259, 231, 309, 0, - 0, 237, 258, 195, 298, 249, 307, 308, 175, 292, - 317, 322, 279, 162, 0, 122, 0, 244, 157, 188, - 0, 0, 0, 150, 0, 0, 0, 278, 137, 294, - 211, 217, 147, 149, 148, 131, 273, 296, 141, 151, - 283, 262, 288, 156, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 123, 290, 306, 143, 270, 271, 323, - 257, 125, 304, 286, 209, 185, 186, 124, 0, 254, - 160, 170, 155, 226, 0, 169, 246, 301, 302, 154, - 325, 133, 316, 127, 134, 315, 220, 0, 219, 318, - 297, 305, 210, 203, 0, 126, 303, 208, 202, 190, - 165, 177, 242, 198, 243, 178, 215, 214, 216, 0, - 0, 0, 284, 312, 326, 200, 139, 0, 272, 295, - 0, 0, 140, 168, 164, 241, 218, 135, 180, 281, - 189, 196, 253, 324, 230, 260, 144, 311, 280, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 117, 128, 193, 0, 251, 167, 313, 0, 159, - 0, 0, 0, 0, 0, 0, 119, 120, 129, 138, - 145, 158, 163, 166, 172, 176, 179, 181, 182, 183, - 187, 201, 204, 205, 206, 207, 221, 222, 224, 225, - 228, 229, 232, 234, 235, 236, 238, 239, 240, 245, - 248, 250, 252, 255, 261, 263, 264, 265, 267, 268, - 269, 274, 275, 276, 277, 285, 289, 299, 300, 310, - 319, 321, 293, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 227, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 161, 0, 0, 0, 0, 191, 0, - 0, 152, 199, 197, 0, 0, 0, 233, 291, 0, - 0, 0, 0, 194, 0, 0, 314, 282, 212, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 0, 142, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 121, 0, 0, 0, - 0, 171, 213, 132, 0, 0, 0, 184, 320, 0, - 0, 0, 247, 0, 287, 174, 192, 136, 118, 130, - 146, 173, 223, 256, 266, 0, 0, 0, 0, 0, - 153, 0, 259, 231, 309, 0, 0, 237, 258, 195, - 298, 249, 307, 308, 175, 292, 317, 322, 279, 162, - 0, 122, 0, 244, 157, 188, 0, 0, 0, 150, - 0, 0, 0, 278, 137, 294, 211, 217, 147, 149, - 148, 131, 273, 296, 141, 151, 283, 262, 288, 156, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 123, - 290, 306, 143, 270, 271, 323, 257, 125, 304, 286, - 209, 185, 186, 124, 0, 254, 160, 170, 155, 226, - 0, 169, 246, 301, 302, 154, 325, 133, 316, 127, - 543, 315, 220, 0, 219, 318, 297, 305, 210, 203, - 0, 126, 303, 208, 202, 190, 165, 177, 242, 198, - 243, 178, 215, 214, 216, 0, 0, 0, 284, 312, - 326, 539, 139, 0, 272, 295, 0, 0, 140, 168, - 164, 241, 544, 542, 533, 534, 189, 196, 253, 324, - 230, 260, 144, 311, 280, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 117, 128, 193, - 0, 251, 167, 313, 0, 159, 0, 0, 0, 0, - 0, 0, 119, 120, 129, 138, 145, 158, 163, 166, - 172, 176, 179, 181, 182, 183, 187, 201, 204, 205, - 206, 207, 221, 222, 224, 225, 228, 229, 232, 234, - 235, 236, 238, 540, 541, 245, 248, 250, 252, 255, - 261, 263, 264, 265, 267, 268, 269, 274, 275, 276, - 277, 285, 289, 299, 300, 310, 319, 321, 293, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 227, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 161, - 0, 0, 0, 0, 191, 0, 0, 152, 199, 197, - 0, 0, 0, 233, 291, 0, 0, 0, 0, 194, - 0, 0, 314, 282, 212, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 121, 0, 0, 0, 0, 171, 213, 132, - 0, 0, 0, 184, 320, 0, 0, 0, 247, 0, - 287, 174, 192, 136, 118, 130, 146, 173, 223, 256, - 266, 0, 0, 0, 0, 0, 153, 0, 259, 231, - 309, 0, 0, 237, 258, 195, 298, 249, 307, 308, - 175, 292, 317, 322, 279, 162, 0, 122, 0, 244, - 157, 188, 0, 0, 0, 150, 0, 0, 0, 278, - 137, 294, 211, 217, 147, 149, 148, 131, 273, 296, - 141, 151, 283, 262, 288, 156, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 123, 290, 994, 143, 270, - 271, 323, 257, 125, 304, 286, 209, 185, 186, 124, - 0, 254, 160, 170, 155, 226, 0, 169, 246, 301, - 302, 154, 325, 133, 316, 127, 134, 315, 220, 0, - 219, 318, 297, 305, 210, 203, 0, 126, 303, 208, - 202, 190, 165, 177, 242, 198, 243, 178, 215, 214, - 216, 0, 0, 0, 284, 312, 326, 200, 139, 0, - 272, 295, 0, 0, 140, 168, 164, 241, 218, 135, - 180, 281, 189, 196, 253, 324, 230, 260, 144, 311, - 280, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 117, 128, 193, 0, 251, 167, 313, - 0, 159, 0, 0, 0, 0, 0, 0, 119, 120, - 129, 138, 145, 158, 163, 166, 172, 176, 179, 181, - 182, 183, 187, 201, 204, 205, 206, 207, 221, 222, - 224, 225, 228, 229, 232, 234, 235, 236, 238, 239, - 240, 245, 248, 250, 252, 255, 261, 263, 264, 265, - 267, 268, 269, 274, 275, 276, 277, 285, 289, 299, - 300, 310, 319, 321, 293, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 227, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 191, 0, 0, 152, 199, 197, 0, 0, 0, 233, - 291, 0, 0, 0, 0, 194, 0, 0, 314, 282, - 212, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 0, 142, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 121, 0, - 0, 0, 0, 171, 213, 132, 0, 0, 0, 184, - 320, 0, 0, 0, 247, 0, 287, 174, 192, 136, - 118, 130, 146, 173, 223, 256, 266, 0, 0, 0, - 0, 0, 153, 0, 259, 231, 309, 0, 0, 237, - 258, 195, 298, 249, 307, 308, 175, 292, 317, 322, - 279, 162, 0, 122, 0, 244, 157, 188, 0, 0, - 0, 150, 0, 0, 0, 278, 137, 294, 211, 217, - 147, 149, 148, 131, 273, 296, 141, 151, 283, 262, - 288, 156, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 123, 290, 530, 143, 270, 271, 323, 257, 125, - 304, 286, 209, 185, 186, 124, 0, 254, 160, 170, - 155, 226, 0, 169, 246, 301, 302, 154, 325, 133, - 316, 127, 543, 315, 220, 0, 219, 318, 297, 305, - 210, 203, 0, 126, 303, 208, 202, 190, 165, 177, - 242, 198, 243, 178, 215, 214, 216, 0, 0, 0, - 284, 312, 326, 539, 139, 0, 272, 295, 0, 0, - 140, 168, 164, 241, 544, 542, 533, 534, 189, 196, - 253, 324, 230, 260, 144, 311, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, - 128, 193, 0, 251, 167, 313, 0, 159, 0, 0, - 0, 0, 0, 0, 119, 120, 129, 138, 145, 158, - 163, 166, 172, 176, 179, 181, 182, 183, 187, 201, - 204, 205, 206, 207, 221, 222, 224, 225, 228, 229, - 232, 234, 235, 236, 238, 540, 541, 245, 248, 250, - 252, 255, 261, 263, 264, 265, 267, 268, 269, 274, - 275, 276, 277, 285, 289, 299, 300, 310, 319, 321, - 32, 0, 68, 35, 36, 0, 0, 0, 32, 0, - 68, 35, 36, 0, 61, 0, 0, 0, 0, 0, - 74, 0, 61, 0, 37, 0, 0, 0, 74, 0, + 0, 0, 0, 0, 116, 0, 0, 0, 0, 0, + 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 122, 0, 0, 0, 0, 172, + 214, 133, 0, 0, 0, 185, 322, 0, 0, 0, + 248, 0, 288, 175, 193, 137, 119, 131, 147, 174, + 224, 257, 267, 0, 0, 0, 0, 0, 154, 0, + 260, 232, 311, 0, 0, 238, 259, 196, 300, 250, + 309, 310, 176, 293, 319, 324, 280, 163, 0, 123, + 0, 245, 158, 189, 0, 0, 0, 151, 0, 0, + 0, 279, 298, 138, 295, 212, 218, 148, 150, 149, + 132, 274, 297, 142, 152, 284, 263, 289, 157, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 124, 291, + 308, 144, 271, 272, 325, 258, 126, 306, 287, 210, + 186, 187, 125, 0, 255, 161, 171, 156, 227, 0, + 170, 247, 303, 304, 155, 327, 134, 318, 128, 135, + 317, 221, 0, 220, 320, 299, 307, 211, 204, 0, + 127, 305, 209, 203, 191, 166, 178, 243, 199, 244, + 179, 216, 215, 217, 0, 0, 0, 285, 314, 328, + 201, 140, 0, 273, 296, 0, 0, 141, 169, 165, + 242, 219, 136, 181, 282, 190, 197, 254, 326, 231, + 261, 145, 313, 281, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 118, 129, 194, 0, + 252, 168, 315, 0, 160, 0, 0, 0, 0, 0, + 0, 120, 121, 130, 139, 146, 159, 164, 167, 173, + 177, 180, 182, 183, 184, 188, 202, 205, 206, 207, + 208, 222, 223, 225, 226, 229, 230, 233, 235, 236, + 237, 239, 240, 241, 246, 249, 251, 253, 256, 262, + 264, 265, 266, 268, 269, 270, 275, 276, 277, 278, + 286, 290, 301, 302, 312, 321, 323, 294, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 228, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 162, 0, + 0, 0, 0, 192, 0, 0, 153, 200, 198, 0, + 0, 0, 234, 292, 0, 0, 0, 0, 195, 0, + 0, 316, 283, 213, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 433, 0, 0, 0, 0, 0, 0, 0, 0, + 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 122, 0, 0, 0, 0, 172, 214, 133, 0, + 0, 0, 185, 322, 0, 0, 0, 248, 0, 288, + 175, 193, 137, 119, 131, 147, 174, 224, 257, 267, + 0, 0, 0, 0, 0, 154, 0, 260, 232, 311, + 0, 0, 238, 259, 196, 300, 250, 309, 310, 176, + 293, 319, 324, 280, 163, 0, 123, 0, 245, 158, + 189, 0, 0, 0, 151, 0, 0, 0, 279, 298, + 138, 295, 212, 218, 148, 150, 149, 132, 274, 297, + 142, 152, 284, 263, 289, 157, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 124, 291, 308, 144, 271, + 272, 325, 258, 126, 306, 287, 210, 186, 187, 125, + 0, 255, 161, 171, 156, 227, 0, 170, 247, 303, + 304, 155, 327, 134, 318, 128, 135, 317, 221, 0, + 220, 320, 299, 307, 211, 204, 0, 127, 305, 209, + 203, 191, 166, 178, 243, 199, 244, 179, 216, 215, + 217, 0, 0, 0, 285, 314, 328, 201, 140, 0, + 273, 296, 0, 0, 141, 169, 165, 242, 219, 136, + 181, 282, 190, 197, 254, 326, 231, 261, 145, 313, + 281, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 118, 129, 194, 0, 252, 168, 315, + 0, 160, 0, 0, 0, 0, 0, 0, 120, 121, + 130, 139, 146, 159, 164, 167, 173, 177, 180, 182, + 183, 184, 188, 202, 205, 206, 207, 208, 222, 223, + 225, 226, 229, 230, 233, 235, 236, 237, 239, 240, + 241, 246, 249, 251, 253, 256, 262, 264, 265, 266, + 268, 269, 270, 275, 276, 277, 278, 286, 290, 301, + 302, 312, 321, 323, 294, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 162, 0, 0, 0, 0, + 192, 0, 0, 153, 200, 198, 0, 0, 0, 234, + 292, 0, 0, 0, 0, 195, 0, 0, 316, 283, + 213, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 433, 0, + 0, 0, 0, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 122, 0, + 0, 0, 0, 172, 214, 133, 0, 0, 0, 185, + 322, 0, 0, 0, 248, 0, 288, 175, 193, 137, + 119, 131, 147, 174, 224, 257, 267, 0, 0, 0, + 0, 0, 154, 0, 260, 232, 311, 0, 0, 238, + 259, 196, 300, 250, 309, 310, 176, 293, 319, 324, + 280, 163, 0, 123, 0, 245, 158, 189, 0, 0, + 0, 151, 0, 0, 0, 279, 298, 138, 295, 212, + 218, 148, 150, 149, 132, 274, 297, 142, 152, 284, + 263, 289, 157, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 124, 291, 308, 144, 271, 272, 325, 258, + 126, 306, 287, 210, 186, 187, 125, 0, 255, 161, + 171, 156, 227, 0, 170, 247, 303, 304, 155, 327, + 134, 318, 128, 545, 317, 221, 0, 220, 320, 299, + 307, 211, 204, 0, 127, 305, 209, 203, 191, 166, + 178, 243, 199, 244, 179, 216, 215, 217, 0, 0, + 0, 285, 314, 328, 541, 140, 0, 273, 296, 0, + 0, 141, 169, 165, 242, 546, 544, 535, 536, 190, + 197, 254, 326, 231, 261, 145, 313, 281, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 118, 129, 194, 0, 252, 168, 315, 0, 160, 0, + 0, 0, 0, 0, 0, 120, 121, 130, 139, 146, + 159, 164, 167, 173, 177, 180, 182, 183, 184, 188, + 202, 205, 206, 207, 208, 222, 223, 225, 226, 229, + 230, 233, 235, 236, 237, 239, 542, 543, 246, 249, + 251, 253, 256, 262, 264, 265, 266, 268, 269, 270, + 275, 276, 277, 278, 286, 290, 301, 302, 312, 321, + 323, 294, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 228, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 162, 0, 0, 0, 0, 192, 0, 0, + 153, 200, 198, 0, 0, 0, 234, 292, 0, 0, + 0, 0, 195, 0, 0, 316, 283, 213, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 433, 0, 0, 0, 0, + 0, 0, 0, 0, 143, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 122, 0, 0, 0, 0, + 172, 214, 133, 0, 0, 0, 185, 322, 0, 0, + 0, 248, 0, 288, 175, 193, 137, 119, 131, 147, + 174, 224, 257, 267, 0, 0, 0, 0, 0, 154, + 0, 260, 232, 311, 0, 0, 238, 259, 196, 300, + 250, 309, 310, 176, 293, 319, 324, 280, 163, 0, + 123, 0, 245, 158, 189, 0, 0, 0, 151, 0, + 0, 0, 279, 298, 138, 295, 212, 218, 148, 150, + 149, 132, 274, 297, 142, 152, 284, 263, 289, 157, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 124, + 291, 996, 144, 271, 272, 325, 258, 126, 306, 287, + 210, 186, 187, 125, 0, 255, 161, 171, 156, 227, + 0, 170, 247, 303, 304, 155, 327, 134, 318, 128, + 135, 317, 221, 0, 220, 320, 299, 307, 211, 204, + 0, 127, 305, 209, 203, 191, 166, 178, 243, 199, + 244, 179, 216, 215, 217, 0, 0, 0, 285, 314, + 328, 201, 140, 0, 273, 296, 0, 0, 141, 169, + 165, 242, 219, 136, 181, 282, 190, 197, 254, 326, + 231, 261, 145, 313, 281, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 118, 129, 194, + 0, 252, 168, 315, 0, 160, 0, 0, 0, 0, + 0, 0, 120, 121, 130, 139, 146, 159, 164, 167, + 173, 177, 180, 182, 183, 184, 188, 202, 205, 206, + 207, 208, 222, 223, 225, 226, 229, 230, 233, 235, + 236, 237, 239, 240, 241, 246, 249, 251, 253, 256, + 262, 264, 265, 266, 268, 269, 270, 275, 276, 277, + 278, 286, 290, 301, 302, 312, 321, 323, 294, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 228, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 162, + 0, 0, 0, 0, 192, 0, 0, 153, 200, 198, + 0, 0, 0, 234, 292, 0, 0, 0, 0, 195, + 0, 0, 316, 283, 213, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 433, 0, 0, 0, 0, 0, 0, 0, + 0, 143, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 122, 0, 0, 0, 0, 172, 214, 133, + 0, 0, 0, 185, 322, 0, 0, 0, 248, 0, + 288, 175, 193, 137, 119, 131, 147, 174, 224, 257, + 267, 0, 0, 0, 0, 0, 154, 0, 260, 232, + 311, 0, 0, 238, 259, 196, 300, 250, 309, 310, + 176, 293, 319, 324, 280, 163, 0, 123, 0, 245, + 158, 189, 0, 0, 0, 151, 0, 0, 0, 279, + 298, 138, 295, 212, 218, 148, 150, 149, 132, 274, + 297, 142, 152, 284, 263, 289, 157, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 124, 291, 532, 144, + 271, 272, 325, 258, 126, 306, 287, 210, 186, 187, + 125, 0, 255, 161, 171, 156, 227, 0, 170, 247, + 303, 304, 155, 327, 134, 318, 128, 545, 317, 221, + 0, 220, 320, 299, 307, 211, 204, 0, 127, 305, + 209, 203, 191, 166, 178, 243, 199, 244, 179, 216, + 215, 217, 0, 0, 0, 285, 314, 328, 541, 140, + 0, 273, 296, 0, 0, 141, 169, 165, 242, 546, + 544, 535, 536, 190, 197, 254, 326, 231, 261, 145, + 313, 281, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 118, 129, 194, 0, 252, 168, + 315, 0, 160, 0, 0, 0, 0, 0, 0, 120, + 121, 130, 139, 146, 159, 164, 167, 173, 177, 180, + 182, 183, 184, 188, 202, 205, 206, 207, 208, 222, + 223, 225, 226, 229, 230, 233, 235, 236, 237, 239, + 542, 543, 246, 249, 251, 253, 256, 262, 264, 265, + 266, 268, 269, 270, 275, 276, 277, 278, 286, 290, + 301, 302, 312, 321, 323, 32, 0, 68, 35, 36, + 0, 0, 0, 32, 0, 68, 35, 36, 0, 61, + 0, 0, 0, 0, 0, 74, 0, 61, 0, 37, + 0, 0, 0, 74, 0, 0, 0, 37, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 77, 2276, 0, + 0, 0, 0, 0, 0, 77, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2113, 0, 0, 0, 0, 0, 0, 0, 2113, 0, + 0, 0, 0, 2228, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 39, + 70, 43, 42, 45, 0, 0, 0, 39, 70, 43, + 42, 45, 0, 0, 0, 2114, 0, 0, 0, 0, + 0, 0, 0, 2114, 0, 0, 0, 0, 0, 0, + 0, 46, 73, 72, 0, 0, 0, 0, 44, 46, + 73, 72, 0, 0, 0, 0, 44, 0, 32, 0, + 68, 35, 36, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 61, 0, 0, 0, 0, 0, 74, 0, 0, 0, 37, 0, 0, 0, 0, 0, 0, 0, + 0, 59, 60, 0, 2115, 0, 0, 0, 0, 59, + 60, 0, 2115, 0, 2116, 71, 0, 50, 51, 63, + 0, 64, 2116, 71, 0, 50, 51, 63, 0, 64, + 77, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 32, 0, 68, 35, 36, 0, - 0, 0, 77, 0, 0, 0, 0, 0, 61, 0, - 77, 0, 0, 0, 74, 0, 0, 0, 37, 0, - 0, 0, 0, 0, 0, 2110, 0, 0, 0, 0, - 2301, 0, 0, 2110, 0, 0, 0, 0, 2284, 0, + 0, 0, 0, 2113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 77, 2273, 0, 0, - 0, 0, 0, 0, 39, 70, 43, 42, 45, 0, - 0, 0, 39, 70, 43, 42, 45, 0, 0, 2110, - 2111, 0, 0, 0, 0, 0, 0, 0, 2111, 0, - 0, 0, 0, 0, 0, 0, 46, 73, 72, 0, - 0, 0, 0, 44, 46, 73, 72, 0, 0, 0, - 0, 44, 0, 32, 0, 68, 35, 36, 39, 70, - 43, 42, 45, 0, 0, 0, 0, 61, 0, 0, - 0, 0, 0, 74, 2111, 0, 0, 37, 0, 0, - 0, 0, 0, 0, 0, 59, 60, 0, 2112, 0, - 46, 73, 72, 59, 60, 0, 2112, 44, 2113, 71, - 0, 50, 51, 63, 0, 64, 2113, 71, 0, 50, - 51, 63, 0, 64, 0, 77, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 32, 0, 68, - 35, 36, 0, 0, 0, 0, 0, 0, 2110, 59, - 60, 61, 2112, 2225, 0, 0, 0, 74, 0, 0, - 0, 37, 2113, 71, 0, 50, 51, 63, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 39, 70, 43, - 42, 45, 0, 0, 0, 0, 0, 0, 0, 77, - 0, 0, 0, 2111, 69, 0, 0, 0, 0, 0, - 0, 0, 69, 0, 0, 0, 0, 0, 0, 46, - 73, 72, 2110, 0, 0, 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 75, - 0, 0, 0, 0, 0, 0, 0, 75, 69, 0, - 0, 39, 70, 43, 42, 45, 0, 0, 59, 60, - 0, 2112, 0, 0, 0, 0, 0, 2111, 0, 0, - 0, 2113, 71, 0, 50, 51, 63, 0, 64, 0, - 0, 0, 0, 46, 73, 72, 0, 0, 0, 0, - 44, 0, 0, 75, 0, 0, 0, 0, 0, 0, + 0, 0, 39, 70, 43, 42, 45, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2114, 0, + 69, 0, 0, 0, 0, 0, 0, 0, 69, 0, + 0, 0, 0, 0, 46, 73, 72, 0, 0, 0, + 0, 44, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 75, 0, 0, 0, 0, + 0, 0, 0, 75, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 59, 60, 0, 2115, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2116, 71, 0, + 50, 51, 63, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 59, 60, 0, 2112, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2113, 71, 0, 50, 51, - 63, 0, 64, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 75, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, + 0, 0, 0, 0, 0, 0, 0, 0, 75, } var yyPact = [...]int{ - 2591, -1000, -294, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 2632, -1000, -300, -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, 1346, -1000, -1000, -1000, -1000, -1000, -1000, 611, 252, - -1000, -1000, 388, 93, 21931, 325, 629, 22783, -1000, -1000, - -1000, 113, 208, 22783, -1000, -1000, -74, -78, -1000, 206, - 317, 1006, 1248, 1005, 8, -1000, 1424, 1427, -1000, -1000, - 238, 33, -1000, -1000, -1000, 17669, 167, -1000, -1000, -1000, - 1327, 1344, 1192, -1000, 11705, 229, 229, 21505, 24487, -1000, - 22783, 10425, 267, 22783, -140, 219, 219, 154, 219, -1000, - 564, -1000, -1000, -1000, 22783, 223, 22357, 223, 223, 223, - 223, 223, 22783, -1000, 444, -1000, -1000, -1000, -1000, -1000, + -1000, 1463, -1000, -1000, -1000, -1000, -1000, -1000, 562, 492, + -1000, -1000, 271, 59, 22449, 268, 2902, 23303, -1000, -1000, + -1000, 108, 209, 23303, -1000, -1000, -107, -109, -1000, 223, + 247, 1093, 1329, 1092, 21, -1000, 1516, 1521, -1000, -1000, + 238, 26, -1000, -1000, -1000, 18177, 163, -1000, -1000, -1000, + 1448, 1461, 1265, -1000, 11772, 242, 242, 22022, 25011, -1000, + 23303, 10489, 260, 23303, -159, 229, 229, 153, 266, -1000, + 540, -1000, -1000, -1000, -1000, 23303, 231, 22876, 231, 231, + 231, 231, 231, 23303, -1000, 441, -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, @@ -3731,30 +3779,30 @@ 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, 22783, 1004, 1270, - 617, 111, 7422, 7422, -1000, 616, -1000, 126, 125, 120, - 123, 22, 622, -1000, 7422, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 196, 254, 205, 167, 562, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1267, 1266, 808, 1265, 118, 1264, - 1127, -69, -1000, 1002, -1000, 1162, 1304, 319, 22783, -1000, - -1000, 1092, -1000, 1142, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 23303, + 1090, 1356, 606, 146, 7479, 7479, -1000, 576, -1000, 147, + 141, 139, 137, 2, 617, -1000, 7479, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 194, 250, 214, 163, 536, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1352, 1346, 810, 1341, + 391, 1340, 1219, -98, -1000, 1089, -1000, 1239, 1435, 263, + 23303, -1000, -1000, 1174, -1000, 1214, -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, 842, 1268, 14261, 14687, 1228, - -1000, -1000, 668, 1400, -1000, 4394, 440, -1000, 14261, 2401, - 1096, -1000, -1000, 1096, -1000, -1000, 410, -1000, -1000, 15965, - 15965, 15965, 15965, 15965, 15965, 15965, 15965, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 907, 1349, 14334, + 14761, 1309, -1000, -1000, 589, 1492, -1000, 17323, 440, -1000, + 14334, 2422, 1020, -1000, -1000, 1020, -1000, -1000, 421, -1000, + -1000, 16042, 16042, 16042, 16042, 16042, 16042, 16042, 16042, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1096, -1000, 11279, 1096, 1096, 1096, 1096, - 1096, 1096, 1096, 1096, 1096, 1096, 14261, 1096, 1096, 1096, - 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, - 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, - 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, - 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, - 1096, 21079, 20227, 22783, 1072, 1057, -1000, -1000, 439, 1080, - -77, 24061, -1000, -1000, -1000, -1000, 23209, 19801, 558, -1000, - -1000, -1000, -1000, 1263, -1000, -1000, 438, -1000, 997, 209, - -1000, 3992, 311, -1000, -1000, -1000, 1126, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1020, -1000, 11345, 1020, 1020, + 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 14334, 1020, + 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 21595, 20741, 23303, 1169, 1119, -1000, -1000, + 439, 1139, -131, 24584, -1000, -1000, -1000, -1000, 23730, 20314, + 507, -1000, -1000, -1000, -1000, 1339, -1000, -1000, 434, -1000, + 1084, 198, -1000, 4134, 290, -1000, -1000, -1000, 1218, -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, @@ -3768,265 +3816,267 @@ 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, 22357, 1299, 256, 994, 645, 993, 992, - 987, 22783, 985, 1077, 249, 22783, 1288, 1152, 22783, 984, - 983, 980, 976, -1000, 9996, -1000, 7422, 617, -1000, 829, - 14261, 219, 219, 7422, 7422, 7422, 22783, 22783, 22783, -1000, - -1000, -1000, -1000, 22783, -1000, -1000, 617, 617, 7422, 7422, - 573, 1395, 573, 573, -1000, -1000, -1000, -1000, 14261, -1000, - 15965, -1000, -1000, 971, 177, -1000, -1000, -1000, -1000, -1000, - -1000, 968, -1000, -1000, 118, 118, -1000, 828, 118, 1061, - -1000, 557, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 118, -1000, 13835, -292, -1000, -1000, - 1192, -1000, -1000, 167, -1000, -1000, -1000, 22783, 7422, 17669, - 1096, 22357, -1000, -1000, -1000, 1418, 479, 845, 431, 1073, - -1000, 610, 1280, 1096, 1096, 1096, 1096, 1096, 1096, 1096, - 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, - 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, 1096, - 1096, 813, 1202, -1000, -1000, -1000, 22783, -1000, 14261, 14261, - 768, -1000, 18095, -1000, -1000, -1000, -1000, 8280, 483, 15965, - 686, 598, 15965, 15965, 15965, 15965, 15965, 15965, 15965, 15965, - 15965, 15965, 15965, 15965, 15965, 15965, 15965, 725, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 962, -1000, 167, 891, - 891, 456, 456, 456, 456, 456, 456, 456, 18521, 1293, - 842, 979, 571, 11279, 12557, 12557, 842, 14261, 14261, 13409, - 12983, 12557, 12557, 1293, 509, 571, 23209, -1000, -1000, 15539, - -1000, -1000, -1000, -1000, -1000, 842, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 22357, 22357, 12557, 12557, 12557, 12557, - 842, 842, 12557, 12557, 12557, 12557, 12557, 842, 842, 842, - 842, 1293, 1293, 12557, 12557, 12557, 1293, 12557, 12557, 1293, - 12557, 12557, 12557, 12557, 1293, 12557, 12557, 12557, 168, 22783, - -1000, 1076, 1100, -1000, -1000, -1000, 1298, 18948, 16817, -1000, - 168, 1045, 20227, 22783, -1000, -1000, 20227, 22783, 7851, 23635, - 1054, -1000, -94, -102, -77, -1000, -1000, 451, -1000, -1000, - -1000, 10852, -1000, 9138, 5706, 9567, -1000, 311, 1126, -1000, - -55, -1000, -1000, -1000, 1107, -1000, 1107, 170, 0, 1107, - 1107, 1107, 1107, 1107, -25, -25, -25, -25, 3, -1000, - -1000, -1000, -1000, -1000, 1125, 1122, -1000, 1107, 1107, 1107, + -1000, -1000, -1000, -1000, -1000, 22876, 1430, 248, 1081, 567, + 1080, 1077, 1075, 229, 1074, 1138, 246, 23303, 1411, 1232, + 23303, 1069, 1063, 1062, 1058, -1000, 10059, -1000, 7479, 606, + -1000, 828, 14334, 229, 229, 7479, 7479, 7479, 23303, 23303, + 23303, -1000, -1000, -1000, -1000, 23303, -1000, -1000, 606, 606, + 7479, 7479, 572, 1487, 572, 572, -1000, -1000, -1000, -1000, + 14334, -1000, 16042, -1000, -1000, 1047, 189, -1000, -1000, -1000, + -1000, -1000, -1000, 1037, -1000, -1000, 391, 391, -1000, 824, + 391, 1130, -1000, 506, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 391, -1000, 13907, -297, + -1000, -1000, 1265, -1000, -1000, 163, -1000, -1000, -1000, 23303, + 7479, 18177, 1020, 22876, -1000, -1000, -1000, 1511, 469, 703, + 429, 1137, -1000, 953, 1408, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, 1020, + 1020, 1020, 1020, 851, 1284, -1000, -1000, -1000, 23303, -1000, + 14334, 14334, 727, -1000, 18604, -1000, -1000, -1000, -1000, 8339, + 473, 16042, 647, 533, 16042, 16042, 16042, 16042, 16042, 16042, + 16042, 16042, 16042, 16042, 16042, 16042, 16042, 16042, 16042, 724, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1029, -1000, + 163, 1050, 1050, 451, 451, 451, 451, 451, 451, 451, + 19031, 1417, 907, 1033, 539, 11345, 12626, 12626, 907, 14334, + 14334, 13480, 13053, 12626, 12626, 1417, 497, 539, 23730, -1000, + -1000, 15615, -1000, -1000, -1000, -1000, -1000, 907, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 22876, 22876, 12626, 12626, + 12626, 12626, 907, 907, 12626, 12626, 12626, 12626, 12626, 907, + 907, 907, 907, 1417, 1417, 12626, 12626, 12626, 1417, 12626, + 12626, 1417, 12626, 12626, 12626, 12626, 1417, 12626, 12626, 12626, + 165, 23303, -1000, 1035, 1192, -1000, -1000, -1000, 1429, 19459, + 16896, -1000, 165, 1100, 20741, 23303, -1000, -1000, 20741, 23303, + 7909, 24157, 1126, -1000, -124, -139, -131, -1000, -1000, 450, + -1000, -1000, -1000, 10917, -1000, 9199, 5759, 9629, -1000, 290, + 1218, -1000, -84, -1000, -1000, -1000, 1195, -1000, 1195, 164, + -10, 1195, 1195, 1195, 1195, 1195, -23, -23, -23, -23, + -17, -1000, -1000, -1000, -1000, -1000, 1216, 1215, -1000, 1195, + 1195, 1195, -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, 1115, 179, - 1109, 1109, 1109, 1109, 1109, 192, -1000, 14261, 1129, -1000, - 22783, 7422, 1287, 7422, 143, 1121, -1000, -1000, 22783, 22783, - 1065, -1000, 22783, 1062, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 571, 960, 954, -1000, -1000, - -1000, -1000, -1000, -1000, 574, -1000, -1000, -1000, -1000, 617, - 22783, 22783, 22783, 1297, 617, 571, 555, -1000, -1000, 949, - -1000, 1061, 1061, -1000, 1061, 118, 891, 1061, -1000, 959, - 1282, 827, 1293, 842, 1192, 279, -1000, -1000, -1000, 175, - 915, 428, -1000, 1196, 14261, 14261, 9138, 14687, -1000, -1000, - -1000, -1000, 1312, -1000, 1210, 1209, 1165, -1000, -1000, 483, - 628, -1000, -1000, 720, -1000, -1000, -1000, -1000, 427, 1096, - -1000, 2557, -1000, -1000, -1000, -1000, 686, 15965, 15965, 15965, - 555, 2557, 2663, 480, 2882, 456, 504, 504, 453, 453, - 453, 453, 453, 491, 491, -1000, -1000, -1000, 842, -1000, - -1000, -1000, 12557, -1000, 14261, -1000, 842, 945, -1000, -1000, - 571, 425, 945, -1000, 644, 822, 570, 1387, 945, 566, - 1368, 945, 945, 945, 12557, 671, -1000, 14261, 842, -1000, - 666, 1059, 1058, 945, 842, 1056, 945, 945, -170, -170, - 842, 945, 842, 945, 945, -170, -170, -170, -170, 12557, - 12557, 945, 945, 945, 12557, 945, 945, 12557, 945, 945, - 945, 945, 12557, 945, 945, 945, 171, 1096, -1000, 23209, - 20227, 20227, 20227, 20227, 20227, -1000, 1178, 1177, -1000, 1164, - 1163, 1182, 17669, -1000, 953, 842, 114, 18948, -1000, 1096, - -1000, 17243, 332, 264, 262, 259, 1362, 20227, 947, -1000, - 947, -1000, 424, -1000, -1000, 23209, -77, -99, -1000, -1000, - 1054, -1000, 784, -1000, -1000, 571, -1000, 423, 1053, 5277, - -1000, -1000, -1000, -1000, 209, -1000, -1000, -1000, 1120, 304, - -1000, 1218, 408, 490, 868, 1214, -1000, -1000, 266, -65, - -1000, -1000, 736, -25, -25, 1107, 1107, 163, 1107, -1000, - -25, -1000, -1000, -1000, 451, 1259, 451, 451, 451, 451, - -25, 825, 825, -1000, -1000, -1000, -1000, 726, -1000, 1115, - -1000, 719, -1000, -1000, -1000, -1000, -1000, 849, 1151, 22357, - 167, 1294, -1000, -1000, -1000, 1407, -1000, -1000, 270, 246, - -1000, 7422, 22783, 7422, 7422, 1362, 948, 934, -1000, -1000, - -1000, 573, 617, 1252, -1000, -1000, 15965, -1000, -1000, -1000, - -1000, 168, 269, -1000, 1202, -1000, 1293, 1047, -1000, -1000, - 537, 535, 508, 201, 201, -1000, 551, 201, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 164, 1290, 22357, 22357, - 1191, 571, 571, -1000, 22783, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 6993, 12557, -1000, 555, 2557, 2627, - -1000, 15965, -1000, 842, 571, -1000, 12557, -1000, 6564, -1000, - 137, 725, 137, 15965, 15965, -1000, 15965, 15965, -1000, -205, - -1000, 1078, 536, -1000, 14261, 799, -1000, -1000, 15965, 15965, - -1000, -1000, -1000, -1000, -1000, 20653, -1000, -170, -170, -170, - -170, -170, -1000, -1000, -1000, -1000, 945, 945, -170, -170, - -170, 945, -170, -170, 945, -170, -170, -170, -170, 945, - -170, -170, -170, 1150, 23209, 1096, -1000, 19375, 22357, 1079, - -1000, 553, 1100, 1119, 1149, 978, -1000, -1000, -1000, -1000, - 1176, -1000, 1172, -1000, -1000, 1104, -1000, -1000, 1046, 1096, - 22357, 15965, 332, -1000, 1096, 1096, 1096, 1346, 14261, 947, - -1000, -1000, 469, -1000, -1000, -114, -109, -1000, -1000, -1000, - 8709, 5706, -1000, 5706, -1000, 22357, 183, -1000, 868, -1000, - -1000, 868, -1000, -1000, -1000, 1110, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 656, 15965, 1416, -1000, 1217, -1000, 1216, - 818, -1000, -1000, 1017, 451, 451, -25, -1000, -1000, 1107, - -1000, 451, -1000, 505, -1000, -1000, -1000, -1000, 451, 940, - -1000, 938, 1033, -1000, 932, 56, 22783, -1000, -1000, -1000, - 1148, -1000, -1000, -1000, 941, 1030, -1000, 3992, 927, 926, - 925, 22783, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 617, - -1000, 15965, 2557, -25, 22783, 1165, 279, -1000, 862, -1000, - 868, 392, -1000, -1000, -1000, 1214, -1000, -1000, 286, 924, - -1000, 923, 922, 22357, 1215, 921, 22783, 22357, -1000, -1000, - 872, 919, 14261, -1000, 22357, 22357, 1096, 419, -1000, -1000, - -1000, 977, 11705, -1000, -1000, 842, -1000, 15965, 2557, -1000, - -1000, -1000, 416, 842, 1107, 1107, -1000, 1107, 1109, -1000, - 1107, 5, 1107, 4, 842, 842, 2535, 2431, 2344, 1661, - 1096, -152, -1000, 571, 14261, 2243, 1468, -1000, 357, -1000, - -1000, -1000, -1000, -1000, -170, -170, -1000, -1000, -1000, -1000, - -170, -1000, -1000, -170, -1000, -1000, -1000, -1000, -170, -1000, - -1000, -1000, -1000, 1276, 1013, 1029, -1000, -1000, 12131, 842, - 915, 912, -1000, 1346, 23209, 14261, -1000, -1000, 14261, 1108, - -1000, 14261, -1000, -1000, -1000, -1000, 22357, 112, -1000, 14261, - 912, 1090, -1000, 22357, 22357, 22357, 1327, 571, -1000, -1000, - -1000, -1000, 5277, -1000, 910, -1000, 1107, -1000, 1214, -1000, - -1000, 22357, -1000, 2557, -122, -1000, -1000, -1000, -1000, -1000, - -1000, 451, -1000, -1000, -1000, -1000, -1000, -25, 815, -25, - 715, -1000, 712, -1000, -1000, -238, 1106, -1000, 167, 22783, - 68, 270, -1000, 3992, 3992, 3992, -1000, -1000, 2557, -66, - -1000, -1000, -1000, 872, 191, 3992, -1000, 1129, 408, 183, - -1000, -1000, -1000, -1000, -1000, 903, 401, -1000, 242, 191, - 872, 571, 514, 1281, -1000, 22357, 1353, 20227, -1000, -1000, - -1000, 2557, 6135, -1000, -1000, 178, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 15965, 15965, 15965, 15965, 15965, 842, - 810, 571, 15965, 15965, 842, 1343, -1000, -1000, -1000, -1000, - -1000, 1213, -1000, 1096, -1000, -1000, 172, -1000, 22357, 1327, - -1000, 571, 571, 22357, 571, 907, -1000, 1096, 16391, -1000, - 17669, 900, 900, 900, -1000, 299, 22357, 1280, 892, -1000, - -1000, 451, -1000, 451, 933, 916, -1000, 22357, -1000, 1322, - -1000, 68, -1000, 809, 85, 91, -1000, 84, 83, 82, - 81, 74, -1000, -1000, -1000, -1000, 1242, 1230, 1074, 882, - -1000, -1000, 870, -1000, 1105, 868, -1000, -1000, 866, -1000, - -1000, 22357, -1000, 191, 1274, 1273, 1096, -1000, 1348, 1342, - 947, 11705, -1000, -1000, -1000, -1000, 666, 666, 666, 666, - 53, -1000, -1000, 666, 666, -1000, 14261, 1411, -1000, 1096, - -1000, 167, -1000, -1000, 888, -1000, 22357, -1000, -1000, 332, - -1000, -1000, -1000, 299, -1000, 863, 551, 788, -1000, -1000, - 151, -1000, -1000, -1000, -1000, 886, -1000, 105, 25161, -1000, - -1000, -1000, -1000, -1000, -1000, 1247, 1246, 96, 225, 1222, - 1224, 1341, 20227, -1000, -1000, 266, 22357, 1129, -1000, -1000, - -1000, 15965, -1000, 141, -1000, 14687, 14687, 1353, -1000, -1000, - -1000, -1000, -1000, 842, 92, -214, -1000, -1000, 1035, 23209, - 1029, 842, -1000, -1000, -1000, -1000, -1000, 692, -1000, 22783, - 299, 108, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1211, 180, 1199, 1199, 1199, 1199, 1199, 190, -1000, 14334, + 1221, -1000, 23303, 7479, 1404, 7479, 155, 1213, 23303, -1000, + 23303, 23303, 1136, -1000, 23303, 1135, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 539, 1028, 1027, + -1000, -1000, -1000, -1000, -1000, -1000, 573, -1000, -1000, -1000, + -1000, 606, 23303, 23303, 23303, 1426, 606, 539, 588, -1000, + -1000, 1019, -1000, 1130, 1130, -1000, 1130, 391, 1050, 1130, + -1000, 1026, 1396, 819, 1417, 907, 1265, 283, -1000, -1000, + -1000, 182, 994, 428, -1000, 1277, 14334, 14334, 9199, 14761, + -1000, -1000, -1000, -1000, 1443, -1000, 1295, 1293, 1244, -1000, + -1000, 473, 520, -1000, -1000, 656, -1000, -1000, -1000, -1000, + 415, 1020, -1000, 2455, -1000, -1000, -1000, -1000, 647, 16042, + 16042, 16042, 588, 2455, 2439, 741, 634, 451, 615, 615, + 452, 452, 452, 452, 452, 822, 822, -1000, -1000, -1000, + 907, -1000, -1000, -1000, 12626, -1000, 14334, -1000, 907, 1017, + -1000, -1000, 539, 352, 1017, -1000, 843, 870, 423, 1486, + 1017, 418, 1482, 1017, 1017, 1017, 12626, 577, -1000, 14334, + 907, -1000, 666, 1129, 1128, 1017, 907, 1127, 1017, 1017, + -170, -170, 907, 1017, 907, 1017, 1017, -170, -170, -170, + -170, 12626, 12626, 1017, 1017, 1017, 12626, 1017, 1017, 12626, + 1017, 1017, 1017, 1017, 12626, 1017, 1017, 1017, 191, 1020, + -1000, 23730, 20741, 20741, 20741, 20741, 20741, -1000, 1260, 1255, + -1000, 1249, 1248, 1256, 18177, -1000, 1024, 907, 129, 19459, + -1000, 1020, -1000, 17750, 320, 259, 257, 256, 1473, 20741, + 1164, -1000, 1164, -1000, 311, -1000, -1000, 23730, -131, -129, + -1000, -1000, 1126, -1000, 827, -1000, -1000, 539, -1000, 300, + 1125, 5329, -1000, -1000, -1000, -1000, 198, -1000, -1000, -1000, + 1212, 280, -1000, 1308, 417, 493, 879, 1301, -1000, -1000, + 258, -90, -1000, -1000, 726, -23, -23, 1195, 1195, 162, + 1195, -1000, -23, -1000, -1000, -1000, 450, 1337, 450, 450, + 450, 450, -23, 813, 813, -1000, -1000, -1000, -1000, 725, + -1000, 1211, -1000, 713, -1000, -1000, -1000, -1000, -1000, 558, + 1231, 22876, 163, 1425, -1000, -1000, -1000, 1481, -1000, -1000, + 221, -1000, 245, -1000, 7479, 23303, 7479, 7479, 1473, 1004, + 1002, -1000, -1000, -1000, 572, 606, 1332, -1000, -1000, 16042, + -1000, -1000, -1000, -1000, 165, 262, -1000, 1284, -1000, 1417, + 1124, -1000, -1000, 537, 518, 509, 211, 211, -1000, 482, + 211, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 161, + 1414, 22876, 22876, 1270, 539, 539, -1000, 23303, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 7049, 12626, -1000, + 588, 2455, 2366, -1000, 16042, -1000, 907, 539, -1000, 12626, + -1000, 6619, -1000, 111, 724, 111, 16042, 16042, -1000, 16042, + 16042, -1000, -204, -1000, 1175, 553, -1000, 14334, 958, -1000, + -1000, 16042, 16042, -1000, -1000, -1000, -1000, -1000, 21168, -1000, + -170, -170, -170, -170, -170, -1000, -1000, -1000, -1000, 1017, + 1017, -170, -170, -170, 1017, -170, -170, 1017, -170, -170, + -170, -170, 1017, -170, -170, -170, 1230, 23730, 1020, -1000, + 19887, 22876, 1173, -1000, 488, 1192, 1205, 1228, 1168, -1000, + -1000, -1000, -1000, 1247, -1000, 1246, -1000, -1000, 1188, -1000, + -1000, 1123, 1020, 22876, 16042, 320, -1000, 1020, 1020, 1020, + 1463, 14334, 1164, -1000, -1000, 303, -1000, -1000, -130, -144, + -1000, -1000, -1000, 8769, 5759, -1000, 5759, -1000, 22876, 196, + -1000, 879, -1000, -1000, 879, -1000, -1000, -1000, 1200, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 582, 16042, 1504, -1000, + 1306, -1000, 1305, 777, -1000, -1000, 986, 450, 450, -23, + -1000, -1000, 1195, -1000, 450, -1000, 498, -1000, -1000, -1000, + -1000, 450, 1014, -1000, 1011, 1122, -1000, 1009, 51, 23303, + -1000, -1000, -1000, 1227, -1000, -1000, -1000, 957, 1118, -1000, + 4134, 997, 990, 988, 23303, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 606, -1000, 16042, 2455, -23, 23303, 1244, 283, + -1000, 874, -1000, 879, 410, -1000, -1000, -1000, 1301, -1000, + -1000, 278, 979, -1000, 961, 954, 22876, 1302, 941, 23303, + 22876, -1000, -1000, 900, 919, 14334, -1000, 22876, 22876, 1020, + 295, -1000, -1000, -1000, 1059, 11772, -1000, -1000, 907, -1000, + 16042, 2455, -1000, -1000, -1000, 272, 907, 1195, 1195, -1000, + 1195, 1199, -1000, 1195, 11, 1195, 7, 907, 907, 2282, + 2056, 1699, 1101, 1020, -166, -1000, 539, 14334, 884, 850, + -1000, 355, -1000, -1000, -1000, -1000, -1000, -170, -170, -1000, + -1000, -1000, -1000, -170, -1000, -1000, -170, -1000, -1000, -1000, + -1000, -170, -1000, -1000, -1000, -1000, 1383, 1109, 1112, -1000, + -1000, 12199, 907, 994, 985, -1000, 1463, 23730, 14334, -1000, + -1000, 14334, 1197, -1000, 14334, -1000, -1000, -1000, -1000, 22876, + 128, -1000, 14334, 985, 649, -1000, 22876, 22876, 22876, 1448, + 539, -1000, -1000, -1000, -1000, 5329, -1000, 983, -1000, 1195, + -1000, 1301, -1000, -1000, 22876, -1000, 2455, -45, -1000, -1000, + -1000, -1000, -1000, -1000, 450, -1000, -1000, -1000, -1000, -1000, + -23, 774, -23, 712, -1000, 646, -1000, -1000, -244, 1193, + -1000, 163, 23303, 61, 221, -1000, 4134, 4134, 4134, -1000, + -1000, 2455, -67, -1000, -1000, -1000, 900, 184, 4134, -1000, + 1221, 417, 196, -1000, -1000, -1000, -1000, -1000, 910, 386, + -1000, 244, 184, 900, 539, 409, 1393, -1000, 22876, 1471, + 20741, -1000, -1000, -1000, 2455, 6189, -1000, -1000, 154, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 16042, 16042, 16042, + 16042, 16042, 907, 773, 539, 16042, 16042, 907, 1459, -1000, + -1000, -1000, -1000, -1000, 1298, -1000, 1020, -1000, -1000, 179, + -1000, 22876, 1448, -1000, 539, 539, 22876, 539, 977, -1000, + 1020, 16469, -1000, 18177, 949, 949, 949, -1000, 313, 22876, + 1408, 938, -1000, -1000, 450, -1000, 450, 950, 939, -1000, + 22876, -1000, 1444, -1000, 61, -1000, 740, 107, 113, -1000, + 104, 103, 102, 93, 83, -1000, -1000, -1000, -1000, 1323, + 1319, 1160, 918, -1000, -1000, 881, -1000, 1191, 879, -1000, + -1000, 875, -1000, -1000, 22876, -1000, 184, 1376, 1375, 1020, + -1000, 1467, 1457, 1164, 11772, -1000, -1000, -1000, -1000, 666, + 666, 666, 666, 97, -1000, -1000, 666, 666, -1000, 14334, + 1500, -1000, 1020, -1000, 163, -1000, -1000, 917, -1000, 22876, + -1000, -1000, 320, -1000, -1000, -1000, 313, -1000, 862, 482, + 739, -1000, -1000, 176, -1000, -1000, -1000, -1000, 914, -1000, + 131, 25612, -1000, -1000, -1000, -1000, -1000, -1000, 1327, 1326, + 118, 222, 1311, 1313, 1456, 20741, -1000, -1000, 258, 22876, + 1221, -1000, -1000, -1000, 16042, -1000, 160, -1000, 14761, 14761, + 1471, -1000, -1000, -1000, -1000, -1000, 907, 95, -215, -1000, + -1000, 1153, 23730, 1112, 907, -1000, -1000, -1000, -1000, -1000, + 638, -1000, 23303, 313, 126, -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, - 14261, 14261, 4848, 25161, -1000, -1000, -1000, -1000, 1104, 684, - 1230, 1334, 1237, 1229, -1000, 785, 947, 881, 1103, 2557, - 876, -1000, 22357, -1000, 571, -1000, 1025, -1000, 571, -1000, - 1348, -1000, -1000, 1184, -210, -217, 842, 961, -1000, -1000, - 1101, -1000, 299, 104, -1000, 705, 669, 59, 51, 3935, - -1000, -1000, -1000, -1000, -295, -1000, -1000, 1241, -1000, 771, - -1000, 1331, 1300, -1000, 1353, 299, 22357, -1000, 141, 1206, - 14687, -1000, -1000, 1168, -1000, -1000, 22357, -1000, 850, 824, - 614, -1000, 14261, 25161, 1317, 1310, 1308, 1272, 8709, 25087, - -1000, -1000, 740, 739, 1348, -1000, 841, -1000, 124, -1000, - -212, 836, 236, -1000, -1000, 643, 25161, -1000, 664, -296, - 202, 167, 366, 15965, -1000, -1000, -1000, -1000, -1000, -1000, - 299, 132, -215, 1147, -1000, -1000, -1000, -1000, -1000, -1000, - 25161, -1000, -297, 25161, 3491, -1000, -1000, -1000, 24968, -1000, - -1000, -1000, -1000, 47, -1000, -1000, 2557, -1000, 1096, -220, - 1145, 1131, 1374, -1000, -298, 24922, -301, 217, 25161, 624, - -1000, 14261, -1000, 366, -1000, 15113, -1000, -1000, 1409, -1000, - 1403, 405, 405, 24914, 595, 25161, -1000, -302, 216, 25161, - -1000, 642, -1000, 666, 842, -1000, -1000, -1000, 200, 708, - -1000, -1000, -1000, 3854, -1000, -303, 25161, -1000, -1000, -1000, - -1000, -1000, 214, 2944, -305, -1000, 212, 25161, -1000, + -1000, -1000, -1000, 14334, 14334, 4899, 25612, -1000, -1000, -1000, + -1000, 1188, 614, 1319, 1455, 1317, 1315, -1000, 733, 1164, + 906, 1185, 2455, 857, -1000, 22876, -1000, 539, -1000, 1105, + -1000, 539, -1000, 1467, -1000, -1000, 1269, -210, -220, 907, + 1104, -1000, -1000, 1178, -1000, 313, 122, -1000, 590, 956, + 62, 43, 3962, -1000, -1000, -1000, -1000, -301, -1000, -1000, + 1322, -1000, 732, -1000, 1453, 1452, -1000, 1471, 313, 22876, + -1000, 160, 1288, 14761, -1000, -1000, 1268, -1000, -1000, 22876, + -1000, 849, 743, 564, -1000, 14334, 25612, 1442, 1440, 1421, + 1363, 8769, 25447, -1000, -1000, 650, 635, 1467, -1000, 852, + -1000, 157, -1000, -212, 844, 232, -1000, -1000, 596, 25612, + -1000, 937, -303, 193, 163, 217, 16042, -1000, -1000, -1000, + -1000, -1000, -1000, 313, 151, -216, 1225, -1000, -1000, -1000, + -1000, -1000, -1000, 25612, -1000, -304, 25612, 3364, -1000, -1000, + -1000, 25439, -1000, -1000, -1000, -1000, 39, -1000, -1000, 2455, + -1000, 1020, -226, 1223, 1194, 1477, -1000, -305, 4423, -306, + 227, 25612, 552, -1000, 14334, -1000, 217, -1000, 15188, -1000, + -1000, 1483, -1000, 1497, 374, 374, 4415, 595, 25612, -1000, + -307, 226, 25612, -1000, 631, -1000, 666, 907, -1000, -1000, + -1000, 203, 687, -1000, -1000, -1000, 3948, -1000, -309, 25612, + -1000, -1000, -1000, -1000, -1000, 220, 2906, -312, -1000, 219, + 25612, -1000, } var yyPgo = [...]int{ - 0, 1761, 102, 1760, 146, 1758, 1757, 1756, 18, 16, - 12, 20, 1755, 1546, 1542, 1534, 1529, 1754, 1523, 1753, - 7, 1752, 1751, 1503, 1750, 1749, 1497, 1493, 1484, 1481, - 10, 1746, 27, 1744, 5, 113, 128, 1743, 3, 1741, - 1740, 11, 1739, 1738, 1473, 1734, 1733, 1728, 1727, 68, - 1724, 1469, 1465, 1723, 1722, 1453, 1450, 1720, 1718, 1445, - 1439, 1437, 1717, 149, 1716, 1715, 1714, 143, 75, 108, - 1713, 1712, 1705, 83, 59, 1625, 89, 42, 81, 283, - 1704, 22, 34, 1703, 1702, 129, 135, 1701, 123, 1699, - 79, 114, 74, 1697, 1696, 136, 1695, 1694, 1693, 96, - 1692, 1691, 2336, 1690, 1689, 117, 1688, 49, 35, 38, - 1686, 1685, 1684, 1682, 1681, 109, 2, 1679, 1678, 1677, - 57, 1675, 1674, 131, 1673, 1672, 1671, 104, 56, 1668, - 41, 1666, 46, 52, 1665, 37, 1661, 112, 1660, 1657, - 30, 14, 1653, 33, 1652, 43, 1651, 106, 209, 337, - 8, 36, 47, 50, 1649, 76, 28, 31, 100, 70, - 65, 39, 1643, 116, 1639, 60, 120, 93, 94, 119, - 1636, 1634, 1633, 767, 1632, 1629, 105, 1628, 54, 69, - 633, 124, 95, 67, 1622, 1620, 1617, 1616, 62, 92, - 1615, 1614, 66, 427, 80, 1414, 107, 1834, 84, 118, - 1613, 32, 1612, 1611, 2846, 82, 99, 88, 1609, 86, - 29, 48, 1608, 1607, 1606, 1605, 1603, 1602, 624, 1601, - 1600, 1599, 1595, 91, 64, 1594, 1593, 90, 73, 1592, - 1589, 1574, 1573, 1571, 98, 55, 115, 1570, 97, 101, - 110, 1569, 1567, 1566, 1565, 45, 40, 1563, 1561, 1558, - 78, 85, 1552, 51, 24, 25, 53, 15, 58, 63, - 1544, 23, 1540, 87, 4, 6, 9, 1538, 1536, 1525, - 1513, 1500, 61, 1495, 1489, 44, 1487, 1478, 1475, 26, - 1471, 1467, 1463, 1447, 0, 111, 127, 1441, 1433, 158, + 0, 1852, 186, 1851, 146, 1848, 1847, 1844, 19, 17, + 11, 21, 1843, 1641, 1639, 1637, 1635, 1841, 1633, 1840, + 5, 1839, 1838, 1627, 1833, 1831, 1609, 1601, 1597, 1591, + 31, 1830, 15, 1828, 6, 111, 128, 1827, 3, 1824, + 1823, 10, 1822, 1806, 1582, 1805, 1800, 1795, 1794, 74, + 1793, 1574, 1572, 1791, 1790, 1567, 1546, 1789, 1788, 1544, + 1542, 1540, 1787, 157, 1783, 1781, 1780, 203, 73, 110, + 1779, 1778, 1777, 95, 58, 1474, 90, 43, 84, 590, + 1776, 26, 37, 1774, 1773, 117, 100, 1772, 121, 1771, + 79, 170, 82, 1770, 1768, 137, 1767, 1766, 1765, 101, + 1764, 1763, 62, 1760, 1759, 119, 1758, 53, 50, 33, + 1757, 1756, 1755, 1754, 1752, 112, 2, 1750, 1748, 1747, + 60, 1746, 1745, 134, 1744, 1743, 1741, 106, 55, 1736, + 40, 1735, 42, 57, 1731, 36, 1730, 104, 1729, 1727, + 24, 13, 1726, 29, 1725, 48, 1723, 108, 76, 98, + 16, 41, 51, 56, 1721, 85, 14, 28, 102, 78, + 67, 34, 1719, 114, 1715, 66, 120, 93, 105, 118, + 1713, 1712, 1711, 802, 1710, 1709, 103, 1706, 59, 145, + 904, 183, 97, 1705, 68, 1704, 1701, 1698, 1697, 64, + 96, 1695, 1694, 88, 190, 91, 1608, 39, 1775, 30, + 115, 1693, 46, 1691, 1689, 2894, 83, 54, 86, 1688, + 89, 35, 45, 1687, 1685, 1683, 1682, 1680, 1679, 1101, + 1677, 1675, 1672, 1671, 172, 177, 1670, 1669, 94, 72, + 1668, 1667, 1666, 1665, 1664, 99, 65, 113, 1663, 92, + 109, 80, 1659, 1658, 1655, 1654, 44, 38, 1652, 1651, + 1647, 75, 69, 1645, 47, 32, 25, 52, 9, 63, + 81, 1644, 23, 1631, 87, 4, 8, 7, 1625, 1613, + 1603, 1599, 1593, 61, 1589, 1586, 49, 1584, 1576, 1570, + 27, 1552, 1550, 1548, 1532, 0, 163, 123, 1530, 1528, + 126, } var yyR1 = [...]int{ - 0, 282, 283, 283, 1, 1, 1, 1, 1, 1, + 0, 283, 284, 284, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 62, 2, 2, 7, 3, 3, 3, 4, 4, 83, 84, 84, 88, 88, 5, 5, 6, 6, 8, 8, 66, 66, 9, 10, 10, 10, 10, - 286, 286, 97, 97, 95, 95, 96, 96, 158, 158, + 287, 287, 97, 97, 95, 95, 96, 96, 158, 158, 11, 11, 11, 163, 163, 168, 168, 168, 171, 171, 171, 171, 150, 151, 13, 13, 13, 13, 13, 13, - 13, 13, 13, 270, 270, 271, 271, 272, 272, 272, - 272, 273, 273, 274, 274, 275, 275, 275, 275, 275, - 275, 275, 275, 275, 275, 24, 191, 191, 42, 42, + 13, 13, 13, 271, 271, 272, 272, 273, 273, 273, + 273, 274, 274, 275, 275, 276, 276, 276, 276, 276, + 276, 276, 276, 276, 276, 24, 192, 192, 42, 42, 43, 43, 43, 146, 146, 146, 12, 12, 12, 12, 12, 19, 21, 21, 31, 31, 32, 22, 22, 22, 22, 33, 33, 34, 25, 25, 25, 25, 25, 25, 40, 40, 40, 39, 39, 38, 38, 38, 38, 38, 38, 23, 23, 23, 23, 41, 41, 36, 36, 35, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, - 37, 37, 26, 26, 26, 26, 26, 26, 18, 269, - 269, 269, 30, 30, 20, 20, 20, 20, 20, 20, + 37, 37, 26, 26, 26, 26, 26, 26, 18, 270, + 270, 270, 30, 30, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, - 20, 47, 247, 248, 248, 248, 248, 248, 248, 248, - 248, 235, 236, 211, 211, 211, 211, 211, 211, 211, - 210, 210, 210, 210, 214, 214, 212, 212, 212, 212, - 212, 212, 212, 212, 212, 213, 213, 213, 213, 213, - 213, 213, 213, 215, 215, 215, 215, 215, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 216, 216, 216, 216, 216, 216, 216, - 216, 216, 216, 217, 217, 217, 217, 217, 217, 217, - 217, 234, 234, 218, 218, 227, 227, 228, 228, 228, - 225, 225, 226, 226, 229, 229, 221, 222, 230, 223, - 223, 223, 224, 224, 224, 233, 233, 233, 233, 219, - 237, 237, 257, 257, 256, 256, 255, 255, 255, 246, - 246, 252, 252, 252, 252, 252, 241, 241, 241, 240, - 240, 242, 242, 245, 245, 254, 254, 253, 238, 238, - 258, 258, 258, 258, 258, 239, 239, 239, 259, 243, - 243, 244, 244, 244, 265, 266, 264, 264, 264, 264, - 264, 112, 112, 112, 249, 249, 249, 250, 250, 250, - 251, 251, 251, 267, 267, 44, 44, 45, 50, 50, + 20, 47, 248, 249, 249, 249, 249, 249, 249, 249, + 249, 236, 237, 212, 212, 212, 212, 212, 212, 212, + 211, 211, 211, 211, 215, 215, 213, 213, 213, 213, + 213, 213, 213, 213, 213, 214, 214, 214, 214, 214, + 214, 214, 214, 216, 216, 216, 216, 216, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 217, 217, 217, 217, 217, 217, 217, + 217, 217, 217, 218, 218, 218, 218, 218, 218, 218, + 218, 235, 235, 219, 219, 228, 228, 229, 229, 229, + 226, 226, 227, 227, 230, 230, 222, 223, 231, 224, + 224, 224, 225, 225, 225, 234, 234, 234, 234, 220, + 238, 238, 258, 258, 257, 257, 256, 256, 256, 247, + 247, 253, 253, 253, 253, 253, 242, 242, 242, 241, + 241, 243, 243, 246, 246, 255, 255, 254, 239, 239, + 259, 259, 259, 259, 259, 240, 240, 240, 260, 244, + 244, 245, 245, 245, 266, 267, 265, 265, 265, 265, + 265, 112, 112, 112, 250, 250, 250, 251, 251, 251, + 252, 252, 252, 268, 268, 44, 44, 45, 50, 50, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, 49, - 49, 49, 49, 145, 145, 145, 46, 189, 189, 263, - 263, 263, 262, 260, 260, 261, 261, 14, 48, 48, + 49, 49, 49, 145, 145, 145, 46, 190, 190, 264, + 264, 264, 263, 261, 261, 262, 262, 14, 48, 48, 15, 15, 15, 15, 15, 15, 15, 16, 16, 51, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, 80, 177, 177, 175, 175, 178, 178, 176, 176, 176, 179, - 179, 179, 208, 208, 208, 53, 53, 58, 58, 61, - 59, 60, 27, 28, 28, 28, 28, 29, 190, 190, - 56, 56, 57, 57, 57, 57, 72, 72, 287, 287, - 55, 55, 54, 54, 54, 54, 17, 288, 63, 64, + 179, 179, 209, 209, 209, 53, 53, 58, 58, 61, + 59, 60, 27, 28, 28, 28, 28, 29, 191, 191, + 56, 56, 57, 57, 57, 57, 72, 72, 288, 288, + 55, 55, 54, 54, 54, 54, 17, 289, 63, 64, 64, 65, 65, 65, 182, 182, 69, 69, 69, 67, 67, 67, 68, 68, 74, 74, 78, 78, 78, 78, - 77, 77, 77, 77, 148, 148, 148, 149, 149, 200, - 200, 200, 199, 199, 199, 199, 82, 82, 85, 85, + 77, 77, 77, 77, 148, 148, 148, 149, 149, 201, + 201, 201, 200, 200, 200, 200, 82, 82, 85, 85, 86, 86, 86, 86, 89, 131, 131, 106, 106, 107, 107, 107, 107, 107, 118, 118, 157, 157, 156, 156, 159, 159, 87, 87, 87, 87, 92, 92, 93, 93, - 94, 94, 188, 188, 206, 206, 206, 98, 98, 98, + 94, 94, 189, 189, 207, 207, 207, 98, 98, 98, 100, 99, 99, 99, 99, 101, 101, 103, 104, 104, 102, 102, 105, 108, 108, 108, 108, 109, 109, 79, 79, 79, 79, 79, 79, 79, 174, 174, 111, 111, @@ -4043,10 +4093,10 @@ var yyR1 = [...]int{ 124, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, 120, - 120, 120, 120, 289, 289, 123, 122, 122, 122, 122, - 122, 122, 70, 70, 70, 70, 70, 207, 207, 209, - 209, 209, 209, 209, 209, 209, 209, 209, 209, 209, - 209, 209, 138, 138, 71, 71, 136, 136, 137, 139, + 120, 120, 120, 290, 290, 123, 122, 122, 122, 122, + 122, 122, 70, 70, 70, 70, 70, 208, 208, 210, + 210, 210, 210, 210, 210, 210, 210, 210, 210, 210, + 210, 210, 138, 138, 71, 71, 136, 136, 137, 139, 139, 135, 135, 135, 115, 115, 115, 115, 115, 115, 115, 115, 117, 117, 117, 140, 140, 129, 129, 81, 81, 141, 141, 142, 142, 143, 143, 144, 144, 147, @@ -4054,32 +4104,14 @@ var yyR1 = [...]int{ 154, 114, 114, 114, 114, 114, 114, 155, 155, 155, 155, 160, 160, 130, 130, 133, 133, 132, 134, 161, 161, 165, 162, 162, 166, 166, 166, 166, 169, 169, - 170, 170, 170, 167, 167, 167, 164, 164, 164, 203, - 203, 203, 172, 172, 180, 180, 181, 181, 173, 173, - 220, 220, 185, 185, 185, 185, 185, 185, 185, 185, - 187, 187, 186, 186, 186, 183, 183, 183, 184, 184, - 201, 201, 197, 197, 202, 202, 198, 198, 204, 204, - 205, 205, 268, 268, 231, 231, 278, 278, 232, 232, - 279, 279, 281, 281, 276, 276, 277, 277, 280, 280, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 194, 194, 194, 194, 194, 194, - 194, 194, 194, 194, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, + 170, 170, 170, 167, 167, 167, 164, 164, 164, 204, + 204, 204, 172, 172, 183, 183, 180, 180, 181, 181, + 173, 173, 221, 221, 186, 186, 186, 186, 186, 186, + 186, 186, 188, 188, 187, 187, 187, 184, 184, 184, + 185, 185, 202, 202, 198, 198, 203, 203, 199, 199, + 205, 205, 206, 206, 269, 269, 232, 232, 279, 279, + 233, 233, 280, 280, 282, 282, 277, 277, 278, 278, + 281, 281, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, @@ -4092,13 +4124,32 @@ var yyR1 = [...]int{ 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 195, 195, 195, 195, 195, 195, - 195, 195, 195, 195, 196, 196, 196, 196, 196, 196, + 195, 195, 195, 195, 195, 195, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, + 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, 196, - 196, 196, 284, 285, 192, 193, 193, 193, + 196, 196, 196, 196, 196, 196, 196, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 197, 197, 197, 197, 197, + 197, 197, 197, 197, 197, 285, 286, 193, 194, 194, + 194, } var yyR2 = [...]int{ @@ -4124,7 +4175,7 @@ var yyR2 = [...]int{ 2, 3, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 4, 4, 1, 1, 2, 3, 4, 3, 3, + 1, 5, 4, 1, 1, 2, 3, 4, 3, 3, 3, 3, 3, 0, 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 2, 2, @@ -4191,12 +4242,13 @@ var yyR2 = [...]int{ 5, 0, 5, 1, 3, 1, 2, 3, 1, 1, 3, 3, 1, 3, 1, 2, 2, 3, 1, 1, 1, 1, 1, 3, 3, 3, 1, 2, 1, 1, - 1, 1, 1, 1, 0, 2, 0, 3, 0, 1, + 1, 1, 1, 1, 0, 1, 0, 2, 0, 3, + 0, 1, 0, 3, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, + 0, 1, 0, 2, 1, 1, 1, 3, 1, 1, + 1, 1, 1, 1, 0, 2, 0, 1, 0, 4, + 0, 1, 0, 3, 0, 3, 0, 4, 0, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, - 0, 2, 1, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 0, 2, 0, 1, 0, 4, 0, 1, - 0, 3, 0, 3, 0, 4, 0, 3, 0, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -4233,243 +4285,244 @@ 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, 1, 1, 1, - 1, 1, 1, 1, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, + 1, } var yyChk = [...]int{ - -1000, -282, -1, -2, -7, -8, -9, -10, -11, -13, + -1000, -283, -1, -2, -7, -8, -9, -10, -11, -13, -44, -14, -15, -16, -51, -52, -53, -58, -59, -60, -56, -55, -54, -17, -23, -26, -18, -62, -27, -28, -29, -3, 6, 7, -66, 9, 10, 30, -47, 130, - -45, -46, 133, 132, 169, 134, 162, 64, 224, -61, - 227, 228, -287, -190, 167, 168, 31, 32, 136, 211, - 212, 20, 37, 229, 231, -4, -83, -5, 8, 320, - 131, 225, 164, 163, 26, 365, -284, 68, -283, 435, - -143, 15, -63, -288, -63, -63, -63, -63, -63, -247, - 105, 68, -184, 143, 86, 311, 139, -191, 140, -183, - 189, 44, 150, 149, 140, 140, 141, 143, 311, 139, - 177, 176, 140, -102, -204, 71, -195, 362, 153, 377, - 378, 131, 186, 224, 238, 232, 266, 254, 363, 379, - 154, 206, 138, 252, 255, 298, 152, 199, 380, 287, - 293, 209, 80, 227, 307, 381, 155, 203, 205, 204, - 194, 210, 36, 165, 250, 243, 214, 189, 382, 370, - 241, 28, 184, 383, 295, 271, 384, 367, 294, 246, - 242, 136, 385, 156, 150, 179, 386, 272, 276, 387, - 299, 388, 389, 390, 142, 236, 237, 391, 190, 301, - 270, 33, 151, 364, 48, 174, 302, 38, 274, 37, - 286, 392, 269, 264, 393, 394, 395, 396, 268, 235, - 263, 201, 53, 137, 278, 277, 279, 202, 297, 259, - 257, 397, 398, 157, 399, 400, 244, 18, 401, 402, - 305, 168, 403, 42, 404, 405, 406, 172, 407, 408, - 409, 296, 273, 275, 188, 410, 247, 147, 411, 176, - 412, 366, 413, 303, 240, 414, 158, 231, 173, 167, - 306, 415, 212, 416, 417, 418, 159, 419, 420, 421, - 228, 229, 289, 207, 422, 423, 424, 425, 198, 183, - 309, 300, 52, 211, 283, 426, 234, 149, 213, 427, - 225, 43, 180, 7, 200, 290, 208, 261, 175, 428, - 429, 248, 249, 267, 233, 262, 226, 177, 178, 169, - 430, 308, 284, 368, 51, 256, 253, 181, 260, 431, - 143, 432, 182, 230, 304, 251, 285, 140, 123, 255, - 298, 130, 288, 289, 295, -241, 296, 176, 179, -208, - 140, -175, 287, 182, 71, 141, 142, 33, 300, 299, - 291, -204, 144, 230, -72, 134, 170, -102, -192, -192, - -192, 290, 290, -192, -41, 71, 213, -41, 30, 71, - 71, 36, 71, 229, 6, -65, 5, -173, 143, 145, - 226, -84, -88, -206, -204, -196, 73, 333, 334, 335, - 336, 337, 350, 351, 352, 338, 339, 353, 354, 355, - 340, 341, 356, 357, 359, 360, 358, 344, 343, 342, - 345, 346, 348, 347, 349, -2, -153, 17, 16, -69, - 54, 55, -64, -77, 114, -79, -204, -110, 88, -116, - 29, 71, -195, 24, -115, -111, -135, -134, -91, 123, - 124, 125, 112, 113, 120, 89, 126, -121, -119, -120, - -122, -124, -125, 73, 72, 81, 74, 75, 76, 77, - 82, 83, 84, -197, -132, -284, 58, 59, 139, 321, - 322, 323, 324, 361, 160, 325, 91, 47, 310, 319, - 318, 317, 315, 316, 312, 314, 313, 327, 328, 146, - 311, 118, 320, 350, 351, 352, 353, 354, 355, 356, - 357, 359, 360, 358, 340, 333, 334, 335, 336, 337, - 338, 339, 341, 342, 343, 344, 345, 346, 347, 348, - 349, -173, -173, 11, -95, -96, -102, -105, -204, -162, - 226, -169, -166, 299, 300, -167, -170, -164, -135, 286, - 408, 409, 298, 255, 297, -197, -204, -102, -248, -236, - -239, -198, 155, -259, -197, -194, 152, 71, -195, 135, - 161, 87, 369, 23, 25, 281, 333, 90, 123, 334, - 335, 336, 16, 20, 91, 122, 321, 337, 130, 62, - 312, 314, 310, 311, 288, 29, 10, 26, 163, 193, - 22, 116, 132, 94, 95, 96, 166, 24, 164, 84, - 160, 19, 65, 11, 13, 331, 332, 14, 146, 145, - 107, 191, 141, 60, 8, 126, 27, 104, 56, 338, - 339, 373, 45, 374, 58, 105, 17, 315, 316, 31, - 361, 340, 171, 375, 341, 118, 196, 63, 50, 88, - 82, 34, 85, 66, 86, 15, 192, 61, 329, 195, - 376, 106, 133, 320, 59, 139, 6, 326, 30, 162, - 344, 343, 342, 345, 197, 57, 323, 324, 346, 433, - 140, 93, 327, 328, 144, 83, 5, 44, 32, 9, - 64, 67, 317, 318, 319, 47, 348, 347, 349, 92, - 12, 330, 365, 141, -102, 320, -181, 146, -181, 177, - 176, -181, 97, -48, -102, -180, 146, -197, -180, -180, - -180, -180, -180, -102, 127, -102, 71, 30, -179, 105, - 12, 311, 139, 71, 176, 179, 140, 177, 143, -193, - -284, -198, -193, -243, 11, 107, 180, 180, 180, 181, - 180, -178, -177, 178, 293, 294, 290, 292, 12, -80, - 105, -193, 71, 229, 144, -57, -2, -10, -8, -9, - -2, 97, -192, -192, 30, 30, 73, 51, 30, -36, - -35, -37, 199, 200, 201, 202, 203, 204, 205, 206, - 207, 208, 209, 210, 30, -269, 68, -231, 286, 71, - -63, -6, -4, -284, 6, 21, 22, 140, -102, 69, - 23, -284, -285, 70, -154, 19, 31, -79, -204, -144, - -147, -79, -196, 333, 334, 335, 336, 337, 350, 351, - 352, 338, 339, 353, 354, 355, 340, 341, 356, 357, - 359, 360, 358, 344, 343, 342, 345, 346, 348, 347, - 349, 50, -67, 21, 22, 79, 11, -200, 87, 86, - 104, -199, 23, 71, -195, -196, 73, 127, -79, -113, - 107, 88, 105, 106, 90, 109, 108, 119, 112, 113, - 114, 115, 116, 117, 118, 110, 111, 122, 97, 98, - 99, 100, 101, 102, 103, -174, -284, -91, -284, 128, - 129, -116, -116, -116, -116, -116, -116, -116, -116, -284, - -2, -128, -79, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -138, -79, -284, -289, -123, -284, - -289, -123, -289, -123, -289, -284, -289, -123, -289, -123, - -289, -289, -123, -289, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -284, -284, - -284, -284, -284, -284, -284, -284, -284, -284, -104, 27, - -102, -82, -85, -86, -87, -106, -90, -284, -102, -91, - -102, -95, -286, 69, 11, 67, -286, 69, 127, 69, - -163, -168, 301, 303, 226, -167, -167, -203, -197, 73, - 29, 97, 30, 127, 70, 69, -239, 155, 152, -210, - -214, -216, -215, -217, -212, -213, 252, 255, 259, 257, - 253, 258, 123, 256, 261, 262, 263, 264, 265, 266, - 267, 268, 269, 270, 271, 30, 165, 248, 249, 250, - 251, 272, 273, 274, 275, 276, 277, 278, 279, 232, - 254, 363, 233, 234, 235, 236, 237, 238, 240, 241, - 242, 243, 244, 245, 246, 71, -259, 68, -197, 23, - 143, 71, 88, 71, 71, 71, -102, 71, 69, 144, - -95, 24, 66, -97, -102, 71, 71, 71, 71, -205, - -204, -194, -193, -179, 73, -79, -181, -181, -193, -193, - -193, -102, -102, -102, -102, -179, -179, -193, -193, -176, - 11, 107, 11, -176, -176, -79, -116, 71, 71, 229, - 71, -36, -36, 73, -36, 69, 97, -36, 70, -128, - -268, 434, -69, -2, -63, -102, -193, -88, -90, -284, - -155, -197, 9, 107, 69, 18, 127, 69, -152, 25, - 26, -152, -117, 51, 74, 77, -182, 49, -102, -79, - -79, -126, 82, 88, 83, 84, -199, 114, -205, -198, - -194, -116, -127, -132, -91, 78, 107, 105, 106, 90, - -116, -116, -116, -116, -116, -116, -116, -116, -116, -116, - -116, -116, -116, -116, -116, -207, 71, 73, 71, -115, - -115, -197, -67, -285, 69, -285, -2, -75, -78, 114, - -79, -204, -75, -285, -79, -79, -135, 73, -75, -135, - 73, -75, -75, -75, -67, -136, -137, 92, -135, -285, - -116, -197, -197, -75, -76, -75, -75, -75, -285, -285, - -78, -75, -78, -75, -75, -285, -285, -285, -285, -67, - -67, -75, -75, -75, -67, -75, -75, -67, -75, -75, - -75, -75, -67, -75, -75, -75, -158, 172, -102, 30, - 69, -98, -100, -99, -101, 56, 60, 62, 57, 58, - 59, 63, -188, 23, -82, -89, 47, -284, -107, 172, - -108, 23, -206, 64, 145, 65, -158, 67, -82, -102, - -82, -105, -204, 114, -166, -169, 69, 302, 304, 305, - -163, -224, 122, 66, 85, -79, -198, -205, -249, -250, - -251, -198, 73, 74, -236, -237, -238, -239, -252, 155, - -258, 147, 149, 44, -240, 156, 141, 45, -211, -225, - 284, -218, 68, -218, -218, 260, 252, 255, 253, -218, - -218, -218, -218, -218, -223, 255, -223, -223, -223, -223, - 253, 68, 68, -218, -218, -218, -227, 68, -227, 247, - -228, 68, -228, -228, -228, -228, -259, -79, -201, 67, - -150, -102, -193, 24, -193, -42, 186, 161, 68, -102, - -102, -102, 69, 71, 71, -244, 11, 107, -179, -204, - -204, -102, -118, 23, -179, -73, 166, 71, -35, -115, - 70, -103, 27, 73, -67, -285, -69, -50, -49, -185, - 135, 132, 133, 137, 138, -262, 281, 131, 255, 80, - 29, 15, 321, 172, 368, 71, 173, -285, 69, 127, - 52, -79, -79, -147, -172, 19, 11, 47, 47, -68, - 57, 82, 83, 84, 127, -284, -127, -116, -116, -116, - -73, 87, -285, -76, -79, -285, 69, -285, 127, -285, - 69, 67, 23, 11, 11, -285, 11, 11, -285, -285, - -285, -75, -139, -137, 94, -79, -285, -285, 69, 69, - -285, -285, -285, -285, -148, 329, -148, -285, -285, -285, - -285, -285, -148, -148, -148, -148, -75, -75, -285, -285, - -285, -75, -285, -285, -75, -285, -285, -285, -285, -75, - -285, -285, -285, -114, 30, 47, -2, -284, -284, -161, - -165, -135, -85, -86, -86, -85, -86, 56, 56, 56, - 61, 56, 61, 56, -99, -206, -285, -285, -131, 185, - -284, 34, -206, -108, 141, 141, 141, -109, 12, -82, - -109, -109, 127, -168, -171, 306, 303, 309, 71, 73, - 127, 69, -251, 97, -239, 68, 71, 45, -240, 141, - 45, -240, -245, 71, -245, 45, -229, -221, -222, -230, - -233, -219, 82, 88, 29, 66, 281, 147, 45, 44, - 80, -226, 285, 74, -223, -223, -218, -218, -218, 260, - -218, -223, -224, 30, -224, -224, -224, -224, -223, -234, - 73, -234, 74, -227, 74, 70, 66, -197, -2, 23, - -43, 8, 9, 10, -270, -271, -272, 71, 107, 191, - 192, 144, -193, -102, -193, -193, -109, 71, 71, -176, - -179, 34, -116, -158, 140, -182, 69, -192, -189, -263, - -240, -267, -238, -239, 148, 156, 147, 172, 155, -189, - -263, 155, 152, -240, 156, 148, -186, -240, 144, 23, - -189, -189, -246, 97, -189, 172, 23, -197, -197, 53, - -102, -74, -151, 114, -198, -76, -73, 87, -116, -285, - -78, 114, -205, -209, 123, 252, 165, 250, 243, 270, - 257, 283, 248, 284, -207, -209, -116, -116, -116, -116, - 362, -143, 96, -79, 93, -116, -116, -197, -284, -148, - -148, -148, -148, -148, -285, -285, -149, -148, -149, -149, - -285, -149, -149, -285, -149, -149, -149, -149, -285, -149, - -149, -149, -160, 66, -161, -130, -133, -132, -284, -2, - -155, -159, -197, -109, 69, 97, -93, -92, 66, 67, - -94, 66, -92, 56, 56, -157, 68, 69, -132, -284, - -159, -116, -108, -284, -284, -284, -143, -79, -109, 303, - 307, 308, -250, -251, -254, -253, -197, -258, 156, -245, - -245, 68, 82, -116, 9, 45, 45, 73, 70, -224, - -224, -223, -218, -224, 71, 123, -224, 70, 69, 70, - 69, 70, 69, -112, 383, 88, -102, -150, -150, 66, - 70, 69, -210, 71, 71, 71, -102, -179, -116, -223, - -102, -68, -49, 68, -235, 71, -192, -245, -183, 71, - 71, -192, 71, 71, -197, 45, 71, -102, -197, -235, - 71, -79, -197, -197, -90, 127, -109, 11, 69, -77, - -285, -116, 127, -285, -218, -218, -218, -228, -218, 237, - -218, 237, -285, -285, 19, 19, 19, 19, -284, -71, - 326, -79, 69, 69, -143, 172, -149, -149, -149, -149, - -149, 28, -160, 69, -285, -285, -285, -285, 69, -143, - -165, -79, -79, 68, -79, -156, -197, 185, -285, -108, - -188, -156, -156, -156, -153, 70, 69, -218, -156, -120, - -224, -223, 73, -223, 74, 74, 383, 68, -2, -102, - -273, -274, -275, 80, 364, 88, 193, 194, 157, 195, - 196, 197, -272, -210, -210, -210, -276, -178, -74, -235, - -145, 160, 161, -210, -201, -242, -240, 71, -187, 144, - 23, 144, -145, -235, 30, 132, 27, -197, -140, 13, - -82, -151, -151, 114, -223, 71, -116, -116, -116, -116, - -116, -285, 73, -116, -116, -285, 16, 45, -133, 47, - -2, -284, -197, -153, -156, 70, 69, -132, -107, -206, - -285, -285, -285, -256, -255, 67, 151, 80, -253, -152, - 70, -224, -224, 70, 70, -254, -150, 19, -150, -275, - 73, 197, 193, 197, 197, 197, 197, 198, -277, 38, - -279, 39, 11, 70, 71, -211, 68, -245, 71, -197, - -145, 29, 29, -284, -141, 14, 16, -109, -77, -285, - -285, -285, -285, -70, 107, 365, -285, -285, -128, 9, - -130, -2, 70, -197, -108, -255, 71, -246, 73, 158, - 70, 184, -20, -2, -8, -9, -10, -11, -13, -44, - -14, -15, -21, -22, -16, -51, -52, -61, -59, -60, - -56, -55, -25, -23, -26, -18, -27, -28, -29, -24, - 91, 146, 214, 224, 36, 36, 189, 190, -220, 145, - -280, 43, -278, -232, 42, 16, -82, -254, -201, -116, - -260, -261, 172, -142, -79, -196, -129, -81, -79, -196, - -140, -151, -285, 363, 63, 366, -143, -161, -285, 74, - -102, -257, -256, 185, -150, -79, -79, 71, -40, -202, - 217, 218, 219, -198, -30, -20, -157, 74, -279, 16, - -281, 40, 41, 73, -109, 70, 68, -285, 69, -197, - 69, -141, 53, 364, 367, -285, 68, -146, 187, 188, - -31, -32, 92, 93, 215, 216, 220, -210, 69, 435, - 38, 73, 16, 16, -140, -257, -254, -261, 47, -81, - 53, -156, -150, 71, 71, 96, 94, -32, -79, -30, - 19, 19, 19, 29, -198, 96, -20, 73, 73, -141, - 70, 174, 365, 70, -12, -19, -11, -8, -9, -10, - 224, 91, -30, 93, 435, -41, 74, -2, -39, -38, - 74, -41, 222, 88, 223, 71, -116, -257, 175, 366, - -265, -266, 66, -150, -30, 435, -30, 96, 94, -33, - -34, 95, -20, 69, 221, -284, 367, -266, 66, -265, - 66, 10, 9, 435, 96, 435, 146, -30, 96, 94, - -34, -79, -38, -116, 171, -264, 159, 154, 157, 30, - -264, 96, 91, 435, 146, -30, 93, -285, -285, 153, - 29, 82, 96, 435, -30, 146, 96, 435, 146, + -45, -46, 133, 132, 169, 134, 162, 64, 225, -61, + 228, 229, -288, -191, 167, 168, 31, 32, 136, 212, + 213, 20, 37, 230, 232, -4, -83, -5, 8, 321, + 131, 226, 164, 163, 26, 366, -285, 68, -284, 436, + -143, 15, -63, -289, -63, -63, -63, -63, -63, -248, + 105, 68, -185, 143, 86, 312, 139, -192, -183, -184, + 189, 199, 44, 150, 149, 140, 140, 141, 143, 312, + 139, 177, 176, 140, -102, -205, 71, -196, 363, 153, + 378, 379, 131, 186, 225, 239, 233, 267, 255, 364, + 380, 154, 207, 138, 253, 256, 299, 152, 200, 381, + 288, 294, 210, 80, 228, 308, 382, 155, 204, 206, + 205, 194, 211, 36, 165, 251, 244, 215, 189, 383, + 371, 242, 28, 184, 384, 296, 272, 385, 368, 295, + 247, 243, 136, 386, 156, 150, 179, 387, 273, 277, + 388, 300, 389, 390, 391, 142, 237, 238, 392, 190, + 302, 271, 33, 151, 365, 48, 174, 303, 38, 275, + 37, 287, 393, 270, 265, 394, 395, 396, 397, 269, + 236, 264, 202, 53, 137, 279, 278, 280, 203, 298, + 260, 258, 398, 399, 157, 400, 401, 245, 18, 402, + 403, 306, 168, 404, 42, 405, 406, 407, 172, 408, + 409, 410, 297, 274, 276, 188, 411, 248, 147, 412, + 176, 413, 367, 414, 304, 241, 415, 158, 232, 173, + 167, 307, 416, 213, 417, 418, 419, 159, 420, 421, + 422, 229, 230, 290, 208, 423, 424, 425, 426, 198, + 183, 310, 301, 52, 212, 284, 427, 235, 149, 214, + 428, 226, 43, 180, 7, 201, 291, 209, 199, 262, + 175, 429, 430, 249, 250, 268, 234, 263, 227, 177, + 178, 169, 431, 309, 285, 369, 51, 257, 254, 181, + 261, 432, 143, 433, 182, 231, 305, 252, 286, 140, + 123, 256, 299, 130, 289, 290, 296, -242, 297, 176, + 179, -209, 140, -175, 288, 182, 71, 141, 142, 33, + 301, 300, 292, -205, 144, 231, -72, 134, 170, -102, + -193, -193, -193, 291, 291, -193, -41, 71, 214, -41, + 30, 71, 71, 36, 71, 230, 6, -65, 5, -173, + 143, 145, 227, -84, -88, -207, -205, -197, 73, 334, + 335, 336, 337, 338, 351, 352, 353, 339, 340, 354, + 355, 356, 341, 342, 357, 358, 360, 361, 359, 345, + 344, 343, 346, 347, 349, 348, 350, -2, -153, 17, + 16, -69, 54, 55, -64, -77, 114, -79, -205, -110, + 88, -116, 29, 71, -196, 24, -115, -111, -135, -134, + -91, 123, 124, 125, 112, 113, 120, 89, 126, -121, + -119, -120, -122, -124, -125, 73, 72, 81, 74, 75, + 76, 77, 82, 83, 84, -198, -132, -285, 58, 59, + 139, 322, 323, 324, 325, 362, 160, 326, 91, 47, + 311, 320, 319, 318, 316, 317, 313, 315, 314, 328, + 329, 146, 312, 118, 321, 351, 352, 353, 354, 355, + 356, 357, 358, 360, 361, 359, 341, 334, 335, 336, + 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, + 348, 349, 350, -173, -173, 11, -95, -96, -102, -105, + -205, -162, 227, -169, -166, 300, 301, -167, -170, -164, + -135, 287, 409, 410, 299, 256, 298, -198, -205, -102, + -249, -237, -240, -199, 155, -260, -198, -195, 152, 71, + -196, 135, 161, 87, 370, 23, 25, 282, 334, 90, + 123, 335, 336, 337, 16, 20, 91, 122, 322, 338, + 130, 62, 313, 315, 311, 312, 289, 29, 10, 26, + 163, 193, 22, 116, 132, 94, 95, 96, 166, 24, + 164, 84, 160, 19, 65, 11, 13, 332, 333, 14, + 146, 145, 107, 191, 141, 60, 8, 126, 27, 104, + 56, 339, 340, 374, 45, 375, 58, 105, 17, 316, + 317, 31, 362, 341, 171, 376, 342, 118, 196, 63, + 50, 88, 82, 34, 85, 66, 86, 15, 192, 61, + 330, 195, 377, 106, 133, 321, 59, 139, 6, 327, + 30, 162, 345, 344, 343, 346, 197, 57, 324, 325, + 347, 434, 140, 93, 328, 329, 144, 83, 5, 44, + 32, 9, 64, 67, 318, 319, 320, 47, 349, 348, + 350, 92, 12, 331, 366, 141, -102, 321, -181, 146, + -181, 177, 176, 140, 97, -48, -102, -180, 146, -198, + -180, -180, -180, -180, -180, -102, 127, -102, 71, 30, + -179, 105, 12, 312, 139, 71, 176, 179, 140, 177, + 143, -194, -285, -199, -194, -244, 11, 107, 180, 180, + 180, 181, 180, -178, -177, 178, 294, 295, 291, 293, + 12, -80, 105, -194, 71, 230, 144, -57, -2, -10, + -8, -9, -2, 97, -193, -193, 30, 30, 73, 51, + 30, -36, -35, -37, 200, 201, 202, 203, 204, 205, + 206, 207, 208, 209, 210, 211, 30, -270, 68, -232, + 287, 71, -63, -6, -4, -285, 6, 21, 22, 140, + -102, 69, 23, -285, -286, 70, -154, 19, 31, -79, + -205, -144, -147, -79, -197, 334, 335, 336, 337, 338, + 351, 352, 353, 339, 340, 354, 355, 356, 341, 342, + 357, 358, 360, 361, 359, 345, 344, 343, 346, 347, + 349, 348, 350, 50, -67, 21, 22, 79, 11, -201, + 87, 86, 104, -200, 23, 71, -196, -197, 73, 127, + -79, -113, 107, 88, 105, 106, 90, 109, 108, 119, + 112, 113, 114, 115, 116, 117, 118, 110, 111, 122, + 97, 98, 99, 100, 101, 102, 103, -174, -285, -91, + -285, 128, 129, -116, -116, -116, -116, -116, -116, -116, + -116, -285, -2, -128, -79, -285, -285, -285, -285, -285, + -285, -285, -285, -285, -285, -285, -138, -79, -285, -290, + -123, -285, -290, -123, -290, -123, -290, -285, -290, -123, + -290, -123, -290, -290, -123, -290, -285, -285, -285, -285, + -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, + -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, + -285, -285, -285, -285, -285, -285, -285, -285, -285, -285, + -104, 27, -102, -82, -85, -86, -87, -106, -90, -285, + -102, -91, -102, -95, -287, 69, 11, 67, -287, 69, + 127, 69, -163, -168, 302, 304, 227, -167, -167, -204, + -198, 73, 29, 97, 30, 127, 70, 69, -240, 155, + 152, -211, -215, -217, -216, -218, -213, -214, 253, 256, + 260, 258, 254, 259, 123, 257, 262, 263, 264, 265, + 266, 267, 268, 269, 270, 271, 272, 30, 165, 249, + 250, 251, 252, 273, 274, 275, 276, 277, 278, 279, + 280, 233, 255, 364, 234, 235, 236, 237, 238, 239, + 241, 242, 243, 244, 245, 246, 247, 71, -260, 68, + -198, 23, 143, 71, 88, 71, 71, 71, -181, 71, + 69, 144, -95, 24, 66, -97, -102, 71, 71, 71, + 71, -206, -205, -195, -194, -179, 73, -79, -181, -181, + -194, -194, -194, -102, -102, -102, -102, -179, -179, -194, + -194, -176, 11, 107, 11, -176, -176, -79, -116, 71, + 71, 230, 71, -36, -36, 73, -36, 69, 97, -36, + 70, -128, -269, 435, -69, -2, -63, -102, -194, -88, + -90, -285, -155, -198, 9, 107, 69, 18, 127, 69, + -152, 25, 26, -152, -117, 51, 74, 77, -182, 49, + -102, -79, -79, -126, 82, 88, 83, 84, -200, 114, + -206, -199, -195, -116, -127, -132, -91, 78, 107, 105, + 106, 90, -116, -116, -116, -116, -116, -116, -116, -116, + -116, -116, -116, -116, -116, -116, -116, -208, 71, 73, + 71, -115, -115, -198, -67, -286, 69, -286, -2, -75, + -78, 114, -79, -205, -75, -286, -79, -79, -135, 73, + -75, -135, 73, -75, -75, -75, -67, -136, -137, 92, + -135, -286, -116, -198, -198, -75, -76, -75, -75, -75, + -286, -286, -78, -75, -78, -75, -75, -286, -286, -286, + -286, -67, -67, -75, -75, -75, -67, -75, -75, -67, + -75, -75, -75, -75, -67, -75, -75, -75, -158, 172, + -102, 30, 69, -98, -100, -99, -101, 56, 60, 62, + 57, 58, 59, 63, -189, 23, -82, -89, 47, -285, + -107, 172, -108, 23, -207, 64, 145, 65, -158, 67, + -82, -102, -82, -105, -205, 114, -166, -169, 69, 303, + 305, 306, -163, -225, 122, 66, 85, -79, -199, -206, + -250, -251, -252, -199, 73, 74, -237, -238, -239, -240, + -253, 155, -259, 147, 149, 44, -241, 156, 141, 45, + -212, -226, 285, -219, 68, -219, -219, 261, 253, 256, + 254, -219, -219, -219, -219, -219, -224, 256, -224, -224, + -224, -224, 254, 68, 68, -219, -219, -219, -228, 68, + -228, 248, -229, 68, -229, -229, -229, -229, -260, -79, + -202, 67, -150, -102, -194, 24, -194, -42, 186, 161, + 68, -102, -102, -102, -102, 69, 71, 71, -245, 11, + 107, -179, -205, -205, -102, -118, 23, -179, -73, 166, + 71, -35, -115, 70, -103, 27, 73, -67, -286, -69, + -50, -49, -186, 135, 132, 133, 137, 138, -263, 282, + 131, 256, 80, 29, 15, 322, 172, 369, 71, 173, + -286, 69, 127, 52, -79, -79, -147, -172, 19, 11, + 47, 47, -68, 57, 82, 83, 84, 127, -285, -127, + -116, -116, -116, -73, 87, -286, -76, -79, -286, 69, + -286, 127, -286, 69, 67, 23, 11, 11, -286, 11, + 11, -286, -286, -286, -75, -139, -137, 94, -79, -286, + -286, 69, 69, -286, -286, -286, -286, -148, 330, -148, + -286, -286, -286, -286, -286, -148, -148, -148, -148, -75, + -75, -286, -286, -286, -75, -286, -286, -75, -286, -286, + -286, -286, -75, -286, -286, -286, -114, 30, 47, -2, + -285, -285, -161, -165, -135, -85, -86, -86, -85, -86, + 56, 56, 56, 61, 56, 61, 56, -99, -207, -286, + -286, -131, 185, -285, 34, -207, -108, 141, 141, 141, + -109, 12, -82, -109, -109, 127, -168, -171, 307, 304, + 310, 71, 73, 127, 69, -252, 97, -240, 68, 71, + 45, -241, 141, 45, -241, -246, 71, -246, 45, -230, + -222, -223, -231, -234, -220, 82, 88, 29, 66, 282, + 147, 45, 44, 80, -227, 286, 74, -224, -224, -219, + -219, -219, 261, -219, -224, -225, 30, -225, -225, -225, + -225, -224, -235, 73, -235, 74, -228, 74, 70, 66, + -198, -2, 23, -43, 8, 9, 10, -271, -272, -273, + 71, 107, 191, 192, 144, -194, -102, -194, -194, -109, + 71, 71, -176, -179, 34, -116, -158, 140, -182, 69, + -193, -190, -264, -241, -268, -239, -240, 148, 156, 147, + 172, 155, -190, -264, 155, 152, -241, 156, 148, -187, + -241, 144, 23, -190, -190, -247, 97, -190, 172, 23, + -198, -198, 53, -102, -74, -151, 114, -199, -76, -73, + 87, -116, -286, -78, 114, -206, -210, 123, 253, 165, + 251, 244, 271, 258, 284, 249, 285, -208, -210, -116, + -116, -116, -116, 363, -143, 96, -79, 93, -116, -116, + -198, -285, -148, -148, -148, -148, -148, -286, -286, -149, + -148, -149, -149, -286, -149, -149, -286, -149, -149, -149, + -149, -286, -149, -149, -149, -160, 66, -161, -130, -133, + -132, -285, -2, -155, -159, -198, -109, 69, 97, -93, + -92, 66, 67, -94, 66, -92, 56, 56, -157, 68, + 69, -132, -285, -159, -116, -108, -285, -285, -285, -143, + -79, -109, 304, 308, 309, -251, -252, -255, -254, -198, + -259, 156, -246, -246, 68, 82, -116, 9, 45, 45, + 73, 70, -225, -225, -224, -219, -225, 71, 123, -225, + 70, 69, 70, 69, 70, 69, -112, 384, 88, -102, + -150, -150, 66, 70, 69, -211, 71, 71, 71, -102, + -179, -116, -224, -102, -68, -49, 68, -236, 71, -193, + -246, -184, 71, 71, -193, 71, 71, -198, 45, 71, + -102, -198, -236, 71, -79, -198, -198, -90, 127, -109, + 11, 69, -77, -286, -116, 127, -286, -219, -219, -219, + -229, -219, 238, -219, 238, -286, -286, 19, 19, 19, + 19, -285, -71, 327, -79, 69, 69, -143, 172, -149, + -149, -149, -149, -149, 28, -160, 69, -286, -286, -286, + -286, 69, -143, -165, -79, -79, 68, -79, -156, -198, + 185, -286, -108, -189, -156, -156, -156, -153, 70, 69, + -219, -156, -120, -225, -224, 73, -224, 74, 74, 384, + 68, -2, -102, -274, -275, -276, 80, 365, 88, 193, + 194, 157, 195, 196, 197, -273, -211, -211, -211, -277, + -178, -74, -236, -145, 160, 161, -211, -202, -243, -241, + 71, -188, 144, 23, 144, -145, -236, 30, 132, 27, + -198, -140, 13, -82, -151, -151, 114, -224, 71, -116, + -116, -116, -116, -116, -286, 73, -116, -116, -286, 16, + 45, -133, 47, -2, -285, -198, -153, -156, 70, 69, + -132, -107, -207, -286, -286, -286, -257, -256, 67, 151, + 80, -254, -152, 70, -225, -225, 70, 70, -255, -150, + 19, -150, -276, 73, 197, 193, 197, 197, 197, 197, + 198, -278, 38, -280, 39, 11, 70, 71, -212, 68, + -246, 71, -198, -145, 29, 29, -285, -141, 14, 16, + -109, -77, -286, -286, -286, -286, -70, 107, 366, -286, + -286, -128, 9, -130, -2, 70, -198, -108, -256, 71, + -247, 73, 158, 70, 184, -20, -2, -8, -9, -10, + -11, -13, -44, -14, -15, -21, -22, -16, -51, -52, + -61, -59, -60, -56, -55, -25, -23, -26, -18, -27, + -28, -29, -24, 91, 146, 215, 225, 36, 36, 189, + 190, -221, 145, -281, 43, -279, -233, 42, 16, -82, + -255, -202, -116, -261, -262, 172, -142, -79, -197, -129, + -81, -79, -197, -140, -151, -286, 364, 63, 367, -143, + -161, -286, 74, -102, -258, -257, 185, -150, -79, -79, + 71, -40, -203, 218, 219, 220, -199, -30, -20, -157, + 74, -280, 16, -282, 40, 41, 73, -109, 70, 68, + -286, 69, -198, 69, -141, 53, 365, 368, -286, 68, + -146, 187, 188, -31, -32, 92, 93, 216, 217, 221, + -211, 69, 436, 38, 73, 16, 16, -140, -258, -255, + -262, 47, -81, 53, -156, -150, 71, 71, 96, 94, + -32, -79, -30, 19, 19, 19, 29, -199, 96, -20, + 73, 73, -141, 70, 174, 366, 70, -12, -19, -11, + -8, -9, -10, 225, 91, -30, 93, 436, -41, 74, + -2, -39, -38, 74, -41, 223, 88, 224, 71, -116, + -258, 175, 367, -266, -267, 66, -150, -30, 436, -30, + 96, 94, -33, -34, 95, -20, 69, 222, -285, 368, + -267, 66, -266, 66, 10, 9, 436, 96, 436, 146, + -30, 96, 94, -34, -79, -38, -116, 171, -265, 159, + 154, 157, 30, -265, 96, 91, 436, 146, -30, 93, + -286, -286, 153, 29, 82, 96, 436, -30, 146, 96, + 436, 146, } var yyDef = [...]int{ @@ -4478,58 +4531,58 @@ var yyDef = [...]int{ 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, -2, 527, 527, 527, 527, 527, 527, 0, -2, 395, 396, 0, 0, 0, 0, -2, 496, 497, 498, - 500, 501, 516, -2, 1324, 1324, 0, 0, 1324, 0, + 500, 501, 516, -2, 1327, 1327, 0, 0, 1327, 0, 182, 0, 0, 0, 0, 37, 0, 0, 53, 54, - 898, 0, 519, 508, 509, 0, 0, 1322, 1, 3, - 844, 0, 536, 529, 0, 898, 898, 0, 0, 84, - 0, 0, 0, 0, 0, 896, 896, 0, 896, 919, - 0, 915, 916, 917, 0, 894, 0, 894, 894, 894, - 894, 894, 0, 448, 620, 928, 929, 1084, 1085, 1086, - 1087, 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, - 1097, 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, - 1107, 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, - 1117, 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, - 1127, 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, - 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, - 1147, 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, - 1157, 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, - 1167, 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, - 1177, 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, - 1187, 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, - 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, - 1207, 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, - 1217, 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, - 1227, 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, - 1237, 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, - 1247, 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, - 1257, 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, - 1267, 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, - 1277, 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, - 1287, 1288, 1289, 1290, 1291, 1292, 1293, 0, 0, 0, - 489, 0, 1325, 1325, 463, 0, 465, 0, 0, 0, - 0, 0, 474, 477, 1325, 346, 347, 348, 493, 494, - 483, 495, 0, 0, 0, 0, 0, 520, 521, 522, - 523, 1324, 1324, 526, 161, 163, 0, 183, 0, 186, - 189, 934, 502, 0, 527, 0, 531, 0, 0, 899, - 499, 42, 43, 0, 604, 605, 606, 1294, 1295, 1296, - 1297, 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, - 1307, 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, - 1317, 1318, 1319, 1320, 1321, 0, 848, 0, 0, 539, - 537, 538, 528, 0, 550, 559, 0, 629, 0, 634, - 636, -2, -2, 0, 677, 678, 679, 680, 681, 0, - 0, 0, 0, 0, 0, 0, 0, 705, 706, 707, - 708, 709, 710, 814, 815, 816, 817, 818, 819, 820, - 821, 638, 639, 811, 868, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 802, 0, 773, 773, - 773, 773, 773, 773, 773, 773, 773, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 64, 66, 620, 70, - 1273, 0, 872, -2, -2, 874, 0, 0, 0, -2, - -2, -2, -2, 1101, -2, 811, 0, 85, 0, 223, - 224, 0, 1113, 367, 926, 927, 1103, 922, 923, 950, - 951, 952, 953, 954, 955, 956, 957, 958, 959, 960, + 900, 0, 519, 508, 509, 0, 0, 1325, 1, 3, + 844, 0, 536, 529, 0, 900, 900, 0, 0, 84, + 0, 0, 0, 0, 0, 898, 898, 0, 0, 921, + 0, 895, 917, 918, 919, 0, 896, 0, 896, 896, + 896, 896, 896, 0, 448, 620, 930, 931, 1086, 1087, + 1088, 1089, 1090, 1091, 1092, 1093, 1094, 1095, 1096, 1097, + 1098, 1099, 1100, 1101, 1102, 1103, 1104, 1105, 1106, 1107, + 1108, 1109, 1110, 1111, 1112, 1113, 1114, 1115, 1116, 1117, + 1118, 1119, 1120, 1121, 1122, 1123, 1124, 1125, 1126, 1127, + 1128, 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, + 1138, 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1147, + 1148, 1149, 1150, 1151, 1152, 1153, 1154, 1155, 1156, 1157, + 1158, 1159, 1160, 1161, 1162, 1163, 1164, 1165, 1166, 1167, + 1168, 1169, 1170, 1171, 1172, 1173, 1174, 1175, 1176, 1177, + 1178, 1179, 1180, 1181, 1182, 1183, 1184, 1185, 1186, 1187, + 1188, 1189, 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, + 1198, 1199, 1200, 1201, 1202, 1203, 1204, 1205, 1206, 1207, + 1208, 1209, 1210, 1211, 1212, 1213, 1214, 1215, 1216, 1217, + 1218, 1219, 1220, 1221, 1222, 1223, 1224, 1225, 1226, 1227, + 1228, 1229, 1230, 1231, 1232, 1233, 1234, 1235, 1236, 1237, + 1238, 1239, 1240, 1241, 1242, 1243, 1244, 1245, 1246, 1247, + 1248, 1249, 1250, 1251, 1252, 1253, 1254, 1255, 1256, 1257, + 1258, 1259, 1260, 1261, 1262, 1263, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 1272, 1273, 1274, 1275, 1276, 1277, + 1278, 1279, 1280, 1281, 1282, 1283, 1284, 1285, 1286, 1287, + 1288, 1289, 1290, 1291, 1292, 1293, 1294, 1295, 1296, 0, + 0, 0, 489, 0, 1328, 1328, 463, 0, 465, 0, + 0, 0, 0, 0, 474, 477, 1328, 346, 347, 348, + 493, 494, 483, 495, 0, 0, 0, 0, 0, 520, + 521, 522, 523, 1327, 1327, 526, 161, 163, 0, 183, + 0, 186, 189, 936, 502, 0, 527, 0, 531, 0, + 0, 901, 499, 42, 43, 0, 604, 605, 606, 1297, + 1298, 1299, 1300, 1301, 1302, 1303, 1304, 1305, 1306, 1307, + 1308, 1309, 1310, 1311, 1312, 1313, 1314, 1315, 1316, 1317, + 1318, 1319, 1320, 1321, 1322, 1323, 1324, 0, 848, 0, + 0, 539, 537, 538, 528, 0, 550, 559, 0, 629, + 0, 634, 636, -2, -2, 0, 677, 678, 679, 680, + 681, 0, 0, 0, 0, 0, 0, 0, 0, 705, + 706, 707, 708, 709, 710, 814, 815, 816, 817, 818, + 819, 820, 821, 638, 639, 811, 868, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 802, 0, + 773, 773, 773, 773, 773, 773, 773, 773, 773, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 64, 66, + 620, 70, 1276, 0, 872, -2, -2, 874, 0, 0, + 0, -2, -2, -2, -2, 1103, -2, 811, 0, 85, + 0, 223, 224, 0, 1115, 367, 928, 929, 1105, 924, + 925, 952, 953, 954, 955, 956, 957, 958, 959, 960, 961, 962, 963, 964, 965, 966, 967, 968, 969, 970, 971, 972, 973, 974, 975, 976, 977, 978, 979, 980, 981, 982, 983, 984, 985, 986, 987, 988, 989, 990, @@ -4542,169 +4595,170 @@ var yyDef = [...]int{ 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060, 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080, - 1081, 1082, 1083, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 437, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 447, 0, 449, 1325, 489, 452, 0, - 0, 896, 896, 1325, 1325, 1325, 0, 0, 0, 461, - 1326, 1327, 462, 0, 369, 370, 489, 489, 1325, 1325, - 486, 0, 486, 486, 484, 485, 480, 481, 0, 476, - 0, 478, 503, 0, 0, 510, 512, 513, 514, 515, - 511, 0, 524, 525, 0, 0, 165, 0, 0, 185, - 167, 0, 170, 171, 172, 173, 174, 175, 176, 177, - 178, 179, 180, 181, 0, 188, 0, 932, 935, 507, - 536, 39, 49, 0, 527, 532, 533, 0, 1325, 0, - 0, 0, 48, 1323, 34, 0, 0, 845, 0, 836, - 837, 841, 841, 1294, 1295, 1296, 1297, 1298, 1299, 1300, - 1301, 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, - 1311, 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, - 1321, 0, 534, 540, 541, 530, 0, 551, 0, 0, - 0, 560, 0, 562, 563, 564, 565, 0, 632, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 656, 657, - 658, 659, 660, 661, 662, 635, 0, 649, 0, 0, - 0, 697, 698, 699, 700, 701, 702, 703, 0, 539, - 0, 0, 675, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 539, 0, 803, 0, 756, 765, 0, - 757, 766, 758, 767, 759, 0, 760, 768, 761, 769, - 762, 763, 770, 764, 0, 0, 0, 671, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 539, 539, 0, 0, 0, 539, 0, 0, 539, - 0, 0, 0, 0, 539, 0, 0, 0, 68, 0, - 619, 0, 566, 568, 569, 570, -2, 0, 623, 669, - -2, 0, 0, 0, 60, 61, 0, 0, 0, 0, - 71, 73, 0, 0, 1273, 875, 876, 322, 889, 890, - 891, 0, 887, 0, 384, 0, 225, 0, 0, 233, - 310, 241, 242, 243, 303, 245, 303, 303, 0, 303, - 303, 303, 303, 303, 319, 319, 319, 319, 319, 286, - 287, 288, 289, 290, 0, 0, 263, 303, 303, 303, - 267, 293, 294, 295, 296, 297, 298, 299, 300, 246, - 247, 248, 249, 250, 251, 252, 253, 254, 305, 305, - 307, 307, 307, 307, 307, 0, 366, 0, 920, 82, - 0, 1325, 0, 1325, 0, 0, 221, 117, 0, 0, - 440, 895, 0, 442, 62, 443, 444, 445, 446, 621, - 930, 931, 450, 451, 490, 491, 0, 0, 455, 456, - 457, 458, 459, 460, 371, 466, 467, 468, 473, 489, - 0, 0, 0, 584, 489, 475, 663, 505, 504, 0, - 517, 162, 164, 166, 184, 0, 0, 187, 190, 0, - 0, 0, 539, 0, 536, 0, 426, 44, 45, 0, - 0, 857, 849, 0, 0, 0, 0, 0, 839, 842, - 843, 840, 0, 822, 0, 0, 542, 535, 36, 630, - 631, 633, 650, 0, 652, 654, 561, 552, 0, 812, - -2, 640, 641, 665, 666, 667, 0, 0, 0, 0, - 663, 645, 0, 682, 683, 684, 685, 686, 687, 688, - 689, 690, 691, 692, 693, 696, 787, 788, 0, 694, - 695, 704, 671, 668, 0, 867, 0, 0, 673, 546, - 547, 0, 0, 743, 0, 0, 679, 814, 0, 679, - 814, 0, 0, 0, 0, 809, 806, 0, 0, 774, - 0, 0, 0, 0, 0, 672, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 618, 0, - 0, 0, 0, 0, 0, 607, 0, 0, 610, 0, - 0, 0, 0, 603, 0, 0, 0, 0, 577, 1204, - 579, 0, 623, 0, 0, 0, 627, 0, 627, 65, - 627, 67, 0, 622, 873, 0, 0, 0, 76, 77, - 72, 877, 0, 883, 884, 885, 812, 0, 222, 385, - 387, 390, 391, 392, 226, 228, 229, 230, 0, 1113, - 359, 1214, 1254, -2, 353, 1140, -2, -2, 232, 312, - 311, 244, 0, 319, 319, 303, 303, 303, 303, 272, - 319, 275, 278, 279, 322, 0, 322, 322, 322, 322, - 319, 0, 0, 264, 265, 266, 255, 0, 256, 305, - 258, 0, 259, 260, 261, 262, 365, 0, 0, 0, - 0, 0, 89, 897, 90, 0, 118, 119, 93, 0, - 438, 1325, 0, 1325, 1325, 627, 0, 0, 469, 487, - 488, 486, 489, 0, 472, 479, 0, 506, 168, 169, - 191, 68, 0, 933, 534, 50, 539, 397, 398, 1324, - -2, 427, 912, 427, 427, 416, 339, 427, 902, 903, - 904, 905, 906, 907, 908, 909, 0, 0, 0, 0, - 0, 846, 847, 838, 0, 892, 893, 823, 824, 83, - 543, 651, 653, 655, 0, 671, 642, 663, 646, 0, - 643, 0, 637, 0, 676, -2, 0, 741, 0, 742, - 0, 0, 0, 0, 0, 780, 0, 0, 781, 0, - 752, 835, 0, 807, 0, 0, 755, 775, 0, 0, - 776, 777, 778, 779, 730, 0, 731, 0, 0, 0, - 0, 0, 737, 738, 739, 740, 0, 0, 557, 557, - 557, 0, 557, 557, 0, 557, 557, 557, 557, 0, - 557, 557, 557, 861, 0, 0, 852, 0, 0, 627, - 869, 0, 567, 598, 600, 0, 595, 608, 609, 611, - 0, 613, 0, 615, 616, 586, 573, 670, 574, 0, - 0, 0, 623, 583, 0, 0, 0, 835, 0, 627, - 58, 59, 0, 74, 75, 0, 0, 81, 323, 324, - 0, 0, 388, 0, 227, 0, 0, 341, 353, 349, - 350, 353, 344, 354, 345, 0, 234, 235, 236, 237, - 238, 239, 314, 0, 0, 0, 318, 0, 326, 328, - 0, 240, 313, 0, 322, 322, 319, 270, 271, 303, - 276, 322, 280, 0, 281, 282, 283, 284, 322, 0, - 301, 0, 0, 257, 0, 381, 0, 921, 82, 82, - 0, 120, 121, 122, 0, 94, 95, 0, 0, 0, - 0, 0, 441, 63, 453, 454, 464, 372, 373, 489, - 471, 0, 664, 319, 0, 542, 0, 400, 0, 1324, - 353, 0, 417, 418, 428, 429, 430, 431, 0, 0, - 1324, 0, 0, 0, 429, 0, 0, 0, 913, 914, - 0, 0, 0, 340, 0, 0, 0, 859, 858, 850, - 35, 627, 0, 553, 813, 0, 644, 0, 647, 711, - 674, 548, 0, 0, 303, 303, 792, 303, 307, 795, - 303, 797, 303, 800, 0, 0, 0, 0, 0, 0, - 0, 804, 754, 810, 0, 0, 0, 554, 835, 732, - 733, 734, 735, 736, 557, 557, 715, 558, 716, 717, - 557, 719, 720, 557, 722, 723, 724, 725, 557, 727, - 728, 729, 51, 0, 861, 851, 863, 865, 0, 0, - 0, 0, 590, 835, 0, 0, 592, 599, 0, 0, - 593, 0, 594, 612, 614, 571, 0, 0, 575, 0, - 0, -2, 582, 0, 0, 0, 844, 628, 57, 78, - 79, 80, 386, 389, 0, 355, 303, 358, 0, 342, - 343, 0, 315, 316, 0, 325, 327, 329, 304, 268, - 269, 322, 277, 273, 320, 321, 285, 319, 0, 319, - 0, 308, 0, 368, 382, 0, 0, 87, 0, 0, - 101, 0, 97, 0, 0, 0, 439, 470, 585, 944, - 617, 83, 399, 0, 423, 0, 403, 920, 351, 394, - 404, 405, 410, 411, 412, 0, 0, 407, 0, 423, - 0, 420, 0, 0, 46, 0, 825, 0, 83, 83, - 712, 648, 0, 744, 789, 319, 793, 794, 796, 798, - 799, 801, 746, 745, 0, 0, 0, 0, 0, 0, - 0, 808, 0, 0, 0, 0, 713, 714, 718, 721, - 726, 0, 52, 0, 866, -2, 0, 69, 0, 844, - 870, 871, 596, 0, 601, 0, 588, 0, 623, 580, - 0, 0, 0, 0, 56, 331, 0, 841, 0, 317, - 274, 322, 302, 322, 0, 0, 383, 0, 82, 0, - 82, 102, 103, 0, 0, 0, 108, 0, 0, 0, - 0, 0, 96, 98, 99, 100, 946, 940, 0, 0, - 402, 424, 0, 233, 0, 353, 352, 419, 0, 910, - 911, 0, 414, 423, 0, 0, 0, 860, 831, 0, - 627, 0, 544, 549, 790, 791, 0, 0, 0, 0, - 782, 753, 805, 0, 0, 555, 0, 0, 864, 0, - 855, 0, 591, 55, 0, 587, 0, 576, 578, 623, - 624, 625, 626, 330, 334, 0, 339, 0, 356, 357, - 0, 291, 292, 306, 309, 0, 88, 0, 0, 104, - 105, 106, 107, 109, 110, 0, 0, 0, 900, 948, - -2, 0, 0, 401, 425, 231, 0, 920, 406, 413, - 415, 0, 422, 0, 40, 0, 0, 825, 83, 747, - 749, 748, 750, 0, 0, 0, 771, 772, 835, 0, - 854, 0, 597, 589, 581, 335, 336, 0, 338, 0, - 332, 0, 82, 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, - 0, 0, 0, 0, 111, 112, 113, 114, 586, 0, - 940, 0, 942, 0, 939, 0, 627, 0, 0, 421, - 0, 433, 0, 832, 833, 834, 826, 827, 829, 830, - 831, 545, 751, 0, 0, 0, 0, 862, -2, 337, - 0, 86, 333, 123, 92, 0, 0, 922, 0, 0, - 150, 151, 152, 924, 0, 192, 33, 0, 947, 0, - 945, 0, 0, 941, 825, 332, 0, 432, 0, 0, - 0, 41, 783, 0, 786, 556, 0, 82, 0, 0, - 0, 134, 0, 0, 0, 0, 0, 148, 0, 0, - 901, 949, 0, 0, 831, 408, 0, 434, 0, 828, - 784, 0, 0, 124, 125, 0, 0, 135, 0, 0, - 0, 0, 0, 0, 925, 115, 193, 943, 937, 38, - 332, 0, 0, 360, 82, 126, 127, 128, 129, 130, - 0, 132, 0, 0, 0, 144, 145, 146, 0, 153, - 155, 156, 157, 0, 159, 160, 149, 409, 0, 0, - 361, 362, 0, 91, 0, 0, 0, 0, 0, 0, - 141, 0, 147, 0, 158, 0, 785, 363, 0, 364, - 0, 0, 0, 0, 0, 136, 137, 0, 0, 0, - 142, 0, 154, 0, 0, 374, 376, 377, 0, 0, - 375, 131, 133, 0, 139, 0, 0, 435, 436, 378, - 379, 380, 0, 0, 0, 138, 0, 143, 140, + 1081, 1082, 1083, 1084, 1085, 0, 0, 0, 0, 0, + 0, 0, 0, 898, 0, 437, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 447, 0, 449, 1328, 489, + 452, 0, 0, 898, 898, 1328, 1328, 1328, 0, 0, + 0, 461, 1329, 1330, 462, 0, 369, 370, 489, 489, + 1328, 1328, 486, 0, 486, 486, 484, 485, 480, 481, + 0, 476, 0, 478, 503, 0, 0, 510, 512, 513, + 514, 515, 511, 0, 524, 525, 0, 0, 165, 0, + 0, 185, 167, 0, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 0, 188, 0, 934, + 937, 507, 536, 39, 49, 0, 527, 532, 533, 0, + 1328, 0, 0, 0, 48, 1326, 34, 0, 0, 845, + 0, 836, 837, 841, 841, 1297, 1298, 1299, 1300, 1301, + 1302, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, + 1312, 1313, 1314, 1315, 1316, 1317, 1318, 1319, 1320, 1321, + 1322, 1323, 1324, 0, 534, 540, 541, 530, 0, 551, + 0, 0, 0, 560, 0, 562, 563, 564, 565, 0, + 632, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 656, 657, 658, 659, 660, 661, 662, 635, 0, 649, + 0, 0, 0, 697, 698, 699, 700, 701, 702, 703, + 0, 539, 0, 0, 675, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 539, 0, 803, 0, 756, + 765, 0, 757, 766, 758, 767, 759, 0, 760, 768, + 761, 769, 762, 763, 770, 764, 0, 0, 0, 671, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 539, 539, 0, 0, 0, 539, 0, + 0, 539, 0, 0, 0, 0, 539, 0, 0, 0, + 68, 0, 619, 0, 566, 568, 569, 570, -2, 0, + 623, 669, -2, 0, 0, 0, 60, 61, 0, 0, + 0, 0, 71, 73, 0, 0, 1276, 875, 876, 322, + 889, 890, 891, 0, 887, 0, 384, 0, 225, 0, + 0, 233, 310, 241, 242, 243, 303, 245, 303, 303, + 0, 303, 303, 303, 303, 303, 319, 319, 319, 319, + 319, 286, 287, 288, 289, 290, 0, 0, 263, 303, + 303, 303, 267, 293, 294, 295, 296, 297, 298, 299, + 300, 246, 247, 248, 249, 250, 251, 252, 253, 254, + 305, 305, 307, 307, 307, 307, 307, 0, 366, 0, + 922, 82, 0, 1328, 0, 1328, 0, 0, 0, 117, + 0, 0, 440, 897, 0, 442, 62, 443, 444, 445, + 446, 621, 932, 933, 450, 451, 490, 491, 0, 0, + 455, 456, 457, 458, 459, 460, 371, 466, 467, 468, + 473, 489, 0, 0, 0, 584, 489, 475, 663, 505, + 504, 0, 517, 162, 164, 166, 184, 0, 0, 187, + 190, 0, 0, 0, 539, 0, 536, 0, 426, 44, + 45, 0, 0, 857, 849, 0, 0, 0, 0, 0, + 839, 842, 843, 840, 0, 822, 0, 0, 542, 535, + 36, 630, 631, 633, 650, 0, 652, 654, 561, 552, + 0, 812, -2, 640, 641, 665, 666, 667, 0, 0, + 0, 0, 663, 645, 0, 682, 683, 684, 685, 686, + 687, 688, 689, 690, 691, 692, 693, 696, 787, 788, + 0, 694, 695, 704, 671, 668, 0, 867, 0, 0, + 673, 546, 547, 0, 0, 743, 0, 0, 679, 814, + 0, 679, 814, 0, 0, 0, 0, 809, 806, 0, + 0, 774, 0, 0, 0, 0, 0, 672, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 618, 0, 0, 0, 0, 0, 0, 607, 0, 0, + 610, 0, 0, 0, 0, 603, 0, 0, 0, 0, + 577, 1206, 579, 0, 623, 0, 0, 0, 627, 0, + 627, 65, 627, 67, 0, 622, 873, 0, 0, 0, + 76, 77, 72, 877, 0, 883, 884, 885, 812, 0, + 222, 385, 387, 390, 391, 392, 226, 228, 229, 230, + 0, 1115, 359, 1216, 1256, -2, 353, 1142, -2, -2, + 232, 312, 311, 244, 0, 319, 319, 303, 303, 303, + 303, 272, 319, 275, 278, 279, 322, 0, 322, 322, + 322, 322, 319, 0, 0, 264, 265, 266, 255, 0, + 256, 305, 258, 0, 259, 260, 261, 262, 365, 0, + 0, 0, 0, 0, 89, 899, 90, 0, 118, 119, + 93, 221, 0, 438, 1328, 0, 1328, 1328, 627, 0, + 0, 469, 487, 488, 486, 489, 0, 472, 479, 0, + 506, 168, 169, 191, 68, 0, 935, 534, 50, 539, + 397, 398, 1327, -2, 427, 914, 427, 427, 416, 339, + 427, 904, 905, 906, 907, 908, 909, 910, 911, 0, + 0, 0, 0, 0, 846, 847, 838, 0, 892, 893, + 823, 824, 83, 543, 651, 653, 655, 0, 671, 642, + 663, 646, 0, 643, 0, 637, 0, 676, -2, 0, + 741, 0, 742, 0, 0, 0, 0, 0, 780, 0, + 0, 781, 0, 752, 835, 0, 807, 0, 0, 755, + 775, 0, 0, 776, 777, 778, 779, 730, 0, 731, + 0, 0, 0, 0, 0, 737, 738, 739, 740, 0, + 0, 557, 557, 557, 0, 557, 557, 0, 557, 557, + 557, 557, 0, 557, 557, 557, 861, 0, 0, 852, + 0, 0, 627, 869, 0, 567, 598, 600, 0, 595, + 608, 609, 611, 0, 613, 0, 615, 616, 586, 573, + 670, 574, 0, 0, 0, 623, 583, 0, 0, 0, + 835, 0, 627, 58, 59, 0, 74, 75, 0, 0, + 81, 323, 324, 0, 0, 388, 0, 227, 0, 0, + 341, 353, 349, 350, 353, 344, 354, 345, 0, 234, + 235, 236, 237, 238, 239, 314, 0, 0, 0, 318, + 0, 326, 328, 0, 240, 313, 0, 322, 322, 319, + 270, 271, 303, 276, 322, 280, 0, 281, 282, 283, + 284, 322, 0, 301, 0, 0, 257, 0, 381, 0, + 923, 82, 82, 0, 120, 121, 122, 0, 94, 95, + 0, 0, 0, 0, 0, 441, 63, 453, 454, 464, + 372, 373, 489, 471, 0, 664, 319, 0, 542, 0, + 400, 0, 1327, 353, 0, 417, 418, 428, 429, 430, + 431, 0, 0, 1327, 0, 0, 0, 429, 0, 0, + 0, 915, 916, 0, 0, 0, 340, 0, 0, 0, + 859, 858, 850, 35, 627, 0, 553, 813, 0, 644, + 0, 647, 711, 674, 548, 0, 0, 303, 303, 792, + 303, 307, 795, 303, 797, 303, 800, 0, 0, 0, + 0, 0, 0, 0, 804, 754, 810, 0, 0, 0, + 554, 835, 732, 733, 734, 735, 736, 557, 557, 715, + 558, 716, 717, 557, 719, 720, 557, 722, 723, 724, + 725, 557, 727, 728, 729, 51, 0, 861, 851, 863, + 865, 0, 0, 0, 0, 590, 835, 0, 0, 592, + 599, 0, 0, 593, 0, 594, 612, 614, 571, 0, + 0, 575, 0, 0, -2, 582, 0, 0, 0, 844, + 628, 57, 78, 79, 80, 386, 389, 0, 355, 303, + 358, 0, 342, 343, 0, 315, 316, 0, 325, 327, + 329, 304, 268, 269, 322, 277, 273, 320, 321, 285, + 319, 0, 319, 0, 308, 0, 368, 382, 0, 0, + 87, 0, 0, 101, 0, 97, 0, 0, 0, 439, + 470, 585, 946, 617, 83, 399, 0, 423, 0, 403, + 922, 351, 394, 404, 405, 410, 411, 412, 0, 0, + 407, 0, 423, 0, 420, 0, 0, 46, 0, 825, + 0, 83, 83, 712, 648, 0, 744, 789, 319, 793, + 794, 796, 798, 799, 801, 746, 745, 0, 0, 0, + 0, 0, 0, 0, 808, 0, 0, 0, 0, 713, + 714, 718, 721, 726, 0, 52, 0, 866, -2, 0, + 69, 0, 844, 870, 871, 596, 0, 601, 0, 588, + 0, 623, 580, 0, 0, 0, 0, 56, 331, 0, + 841, 0, 317, 274, 322, 302, 322, 0, 0, 383, + 0, 82, 0, 82, 102, 103, 0, 0, 0, 108, + 0, 0, 0, 0, 0, 96, 98, 99, 100, 948, + 942, 0, 0, 402, 424, 0, 233, 0, 353, 352, + 419, 0, 912, 913, 0, 414, 423, 0, 0, 0, + 860, 831, 0, 627, 0, 544, 549, 790, 791, 0, + 0, 0, 0, 782, 753, 805, 0, 0, 555, 0, + 0, 864, 0, 855, 0, 591, 55, 0, 587, 0, + 576, 578, 623, 624, 625, 626, 330, 334, 0, 339, + 0, 356, 357, 0, 291, 292, 306, 309, 0, 88, + 0, 0, 104, 105, 106, 107, 109, 110, 0, 0, + 0, 902, 950, -2, 0, 0, 401, 425, 231, 0, + 922, 406, 413, 415, 0, 422, 0, 40, 0, 0, + 825, 83, 747, 749, 748, 750, 0, 0, 0, 771, + 772, 835, 0, 854, 0, 597, 589, 581, 335, 336, + 0, 338, 0, 332, 0, 82, 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, 0, 0, 0, 0, 111, 112, 113, + 114, 586, 0, 942, 0, 944, 0, 941, 0, 627, + 0, 0, 421, 0, 433, 0, 832, 833, 834, 826, + 827, 829, 830, 831, 545, 751, 0, 0, 0, 0, + 862, -2, 337, 0, 86, 333, 123, 92, 0, 0, + 924, 0, 0, 150, 151, 152, 926, 0, 192, 33, + 0, 949, 0, 947, 0, 0, 943, 825, 332, 0, + 432, 0, 0, 0, 41, 783, 0, 786, 556, 0, + 82, 0, 0, 0, 134, 0, 0, 0, 0, 0, + 148, 0, 0, 903, 951, 0, 0, 831, 408, 0, + 434, 0, 828, 784, 0, 0, 124, 125, 0, 0, + 135, 0, 0, 0, 0, 0, 0, 927, 115, 193, + 945, 939, 38, 332, 0, 0, 360, 82, 126, 127, + 128, 129, 130, 0, 132, 0, 0, 0, 144, 145, + 146, 0, 153, 155, 156, 157, 0, 159, 160, 149, + 409, 0, 0, 361, 362, 0, 91, 0, 0, 0, + 0, 0, 0, 141, 0, 147, 0, 158, 0, 785, + 363, 0, 364, 0, 0, 0, 0, 0, 136, 137, + 0, 0, 0, 142, 0, 154, 0, 0, 374, 376, + 377, 0, 0, 375, 131, 133, 0, 139, 0, 0, + 435, 436, 378, 379, 380, 0, 0, 0, 138, 0, + 143, 140, } var yyTok1 = [...]int{ @@ -4713,7 +4767,7 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 89, 3, 3, 3, 117, 109, 3, 68, 70, 114, 112, 69, 113, 127, 115, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 435, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 436, 98, 97, 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, @@ -4784,7 +4838,7 @@ var yyTok3 = [...]int{ 57745, 420, 57746, 421, 57747, 422, 57748, 423, 57749, 424, 57750, 425, 57751, 426, 57752, 427, 57753, 428, 57754, 429, 57755, 430, 57756, 431, 57757, 432, 57758, 433, 57759, 434, - 0, + 57760, 435, 0, } var yyErrorMessages = [...]struct { @@ -6151,40 +6205,46 @@ yydefault: yyVAL.statement = yyDollar[1].selStmt } case 221: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:1277 { var ne bool - if yyDollar[3].byt != 0 { + if yyDollar[4].byt != 0 { ne = true } - yyVAL.ddl = &DDL{Action: CreateStr, Table: yyDollar[4].tableName, IfNotExists: ne} + + var neTemp bool + if yyDollar[2].byt != 0 { + neTemp = true + } + + yyVAL.ddl = &DDL{Action: CreateStr, Table: yyDollar[5].tableName, IfNotExists: ne, Temporary: neTemp} setDDL(yylex, yyVAL.ddl) } case 222: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1288 +//line sql.y:1294 { yyVAL.TableSpec = yyDollar[2].TableSpec yyVAL.TableSpec.Options = yyDollar[4].str } case 223: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1295 +//line sql.y:1301 { yyVAL.TableSpec = &TableSpec{} yyVAL.TableSpec.AddColumn(yyDollar[1].columnDefinition) } case 224: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1300 +//line sql.y:1306 { yyVAL.TableSpec = &TableSpec{} yyVAL.TableSpec.AddConstraint(yyDollar[1].constraintDefinition) } case 225: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1305 +//line sql.y:1311 { yyVAL.TableSpec = &TableSpec{} yyVAL.TableSpec.AddColumn(yyDollar[1].columnDefinition) @@ -6192,38 +6252,38 @@ yydefault: } case 226: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1311 +//line sql.y:1317 { yyVAL.TableSpec.AddColumn(yyDollar[3].columnDefinition) } case 227: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1315 +//line sql.y:1321 { yyVAL.TableSpec.AddColumn(yyDollar[3].columnDefinition) yyVAL.TableSpec.AddConstraint(yyDollar[4].constraintDefinition) } case 228: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1320 +//line sql.y:1326 { yyVAL.TableSpec.AddIndex(yyDollar[3].indexDefinition) } case 229: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1324 +//line sql.y:1330 { yyVAL.TableSpec.AddConstraint(yyDollar[3].constraintDefinition) } case 230: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1328 +//line sql.y:1334 { yyVAL.TableSpec.AddConstraint(yyDollar[3].constraintDefinition) } case 231: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1334 +//line sql.y:1340 { if err := yyDollar[2].columnType.merge(yyDollar[3].columnType); err != nil { yylex.Error(err.Error()) @@ -6233,7 +6293,7 @@ yydefault: } case 232: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1344 +//line sql.y:1350 { if err := yyDollar[2].columnType.merge(yyDollar[3].columnType); err != nil { yylex.Error(err.Error()) @@ -6243,13 +6303,13 @@ yydefault: } case 233: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1353 +//line sql.y:1359 { yyVAL.columnType = ColumnType{} } case 234: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1357 +//line sql.y:1363 { opt := ColumnType{NotNull: yyDollar[2].boolVal, sawnull: true} if err := yyDollar[1].columnType.merge(opt); err != nil { @@ -6260,7 +6320,7 @@ yydefault: } case 235: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1366 +//line sql.y:1372 { opt := ColumnType{Default: yyDollar[2].optVal} if err := yyDollar[1].columnType.merge(opt); err != nil { @@ -6271,7 +6331,7 @@ yydefault: } case 236: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1375 +//line sql.y:1381 { opt := ColumnType{OnUpdate: yyDollar[2].optVal} if err := yyDollar[1].columnType.merge(opt); err != nil { @@ -6282,7 +6342,7 @@ yydefault: } case 237: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1384 +//line sql.y:1390 { opt := ColumnType{Autoincrement: yyDollar[2].boolVal, sawai: true} if err := yyDollar[1].columnType.merge(opt); err != nil { @@ -6293,7 +6353,7 @@ yydefault: } case 238: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1393 +//line sql.y:1399 { opt := ColumnType{KeyOpt: yyDollar[2].colKeyOpt} if err := yyDollar[1].columnType.merge(opt); err != nil { @@ -6304,7 +6364,7 @@ yydefault: } case 239: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1402 +//line sql.y:1408 { opt := ColumnType{Comment: yyDollar[2].sqlVal} if err := yyDollar[1].columnType.merge(opt); err != nil { @@ -6315,7 +6375,7 @@ yydefault: } case 240: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1413 +//line sql.y:1419 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Unsigned = yyDollar[2].boolVal @@ -6323,74 +6383,74 @@ yydefault: } case 244: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1424 +//line sql.y:1430 { yyVAL.columnType = yyDollar[1].columnType yyVAL.columnType.Length = yyDollar[2].sqlVal } case 245: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1429 +//line sql.y:1435 { yyVAL.columnType = yyDollar[1].columnType } case 246: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1435 +//line sql.y:1441 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 247: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1439 +//line sql.y:1445 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 248: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1443 +//line sql.y:1449 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 249: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1447 +//line sql.y:1453 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 250: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1451 +//line sql.y:1457 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 251: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1455 +//line sql.y:1461 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 252: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1459 +//line sql.y:1465 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 253: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1463 +//line sql.y:1469 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 254: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1467 +//line sql.y:1473 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 255: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1473 +//line sql.y:1479 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6398,7 +6458,7 @@ yydefault: } case 256: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1479 +//line sql.y:1485 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6406,7 +6466,7 @@ yydefault: } case 257: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1485 +//line sql.y:1491 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes)} yyVAL.columnType.Length = yyDollar[3].LengthScaleOption.Length @@ -6414,7 +6474,7 @@ yydefault: } case 258: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1491 +//line sql.y:1497 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6422,7 +6482,7 @@ yydefault: } case 259: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1497 +//line sql.y:1503 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6430,7 +6490,7 @@ yydefault: } case 260: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1503 +//line sql.y:1509 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6438,7 +6498,7 @@ yydefault: } case 261: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1509 +//line sql.y:1515 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6446,7 +6506,7 @@ yydefault: } case 262: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1515 +//line sql.y:1521 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length @@ -6454,266 +6514,266 @@ yydefault: } case 263: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1523 +//line sql.y:1529 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 264: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1527 +//line sql.y:1533 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 265: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1531 +//line sql.y:1537 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 266: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1535 +//line sql.y:1541 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 267: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1539 +//line sql.y:1545 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 268: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1545 +//line sql.y:1551 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 269: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1549 +//line sql.y:1555 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 270: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1553 +//line sql.y:1559 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Length: yyDollar[3].sqlVal} } case 271: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1557 +//line sql.y:1563 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Length: yyDollar[3].sqlVal} } case 272: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1561 +//line sql.y:1567 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 273: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1565 +//line sql.y:1571 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 274: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1569 +//line sql.y:1575 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Length: yyDollar[3].sqlVal, Charset: yyDollar[4].str, Collate: yyDollar[5].str} } case 275: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1573 +//line sql.y:1579 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 276: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1577 +//line sql.y:1583 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Length: yyDollar[3].sqlVal} } case 277: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1581 +//line sql.y:1587 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Length: yyDollar[4].sqlVal} } case 278: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1585 +//line sql.y:1591 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 279: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1589 +//line sql.y:1595 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 280: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1593 +//line sql.y:1599 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 281: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1597 +//line sql.y:1603 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 282: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1601 +//line sql.y:1607 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 283: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1605 +//line sql.y:1611 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 284: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1609 +//line sql.y:1615 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), Charset: yyDollar[2].str, Collate: yyDollar[3].str} } case 285: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1613 +//line sql.y:1619 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Charset: yyDollar[3].str, Collate: yyDollar[4].str} } case 286: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1617 +//line sql.y:1623 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 287: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1621 +//line sql.y:1627 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 288: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1625 +//line sql.y:1631 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 289: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1629 +//line sql.y:1635 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 290: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1633 +//line sql.y:1639 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 291: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1637 +//line sql.y:1643 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 292: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1642 +//line sql.y:1648 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} } case 293: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1648 +//line sql.y:1654 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 294: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1652 +//line sql.y:1658 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 295: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1656 +//line sql.y:1662 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 296: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1660 +//line sql.y:1666 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 297: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1664 +//line sql.y:1670 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 298: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1668 +//line sql.y:1674 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 299: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1672 +//line sql.y:1678 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 300: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1676 +//line sql.y:1682 { yyVAL.columnType = ColumnType{Type: string(yyDollar[1].bytes)} } case 301: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1682 +//line sql.y:1688 { yyVAL.strs = make([]string, 0, 4) yyVAL.strs = append(yyVAL.strs, string(yyDollar[1].bytes)) } case 302: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1687 +//line sql.y:1693 { yyVAL.strs = append(yyDollar[1].strs, string(yyDollar[3].bytes)) } case 303: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1692 +//line sql.y:1698 { yyVAL.sqlVal = nil } case 304: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1696 +//line sql.y:1702 { yyVAL.sqlVal = NewIntVal(yyDollar[2].bytes) } case 305: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1701 +//line sql.y:1707 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 306: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1705 +//line sql.y:1711 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -6722,13 +6782,13 @@ yydefault: } case 307: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1713 +//line sql.y:1719 { yyVAL.LengthScaleOption = LengthScaleOption{} } case 308: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1717 +//line sql.y:1723 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -6736,7 +6796,7 @@ yydefault: } case 309: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1723 +//line sql.y:1729 { yyVAL.LengthScaleOption = LengthScaleOption{ Length: NewIntVal(yyDollar[2].bytes), @@ -6745,518 +6805,518 @@ yydefault: } case 310: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1731 +//line sql.y:1737 { yyVAL.boolVal = BoolVal(false) } case 311: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1735 +//line sql.y:1741 { yyVAL.boolVal = BoolVal(true) } case 312: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1740 +//line sql.y:1746 { yyVAL.boolVal = BoolVal(false) } case 313: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1744 +//line sql.y:1750 { yyVAL.boolVal = BoolVal(true) } case 314: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1751 +//line sql.y:1757 { yyVAL.boolVal = BoolVal(false) } case 315: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1755 +//line sql.y:1761 { yyVAL.boolVal = BoolVal(true) } case 316: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1761 +//line sql.y:1767 { yyVAL.optVal = yyDollar[2].expr } case 317: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1767 +//line sql.y:1773 { yyVAL.optVal = yyDollar[3].expr } case 318: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1773 +//line sql.y:1779 { yyVAL.boolVal = BoolVal(true) } case 319: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1778 +//line sql.y:1784 { yyVAL.str = "" } case 320: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1782 +//line sql.y:1788 { yyVAL.str = string(yyDollar[3].bytes) } case 321: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1786 +//line sql.y:1792 { yyVAL.str = string(yyDollar[3].bytes) } case 322: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1791 +//line sql.y:1797 { yyVAL.str = "" } case 323: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1795 +//line sql.y:1801 { yyVAL.str = string(yyDollar[2].bytes) } case 324: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1799 +//line sql.y:1805 { yyVAL.str = string(yyDollar[2].bytes) } case 325: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1805 +//line sql.y:1811 { yyVAL.colKeyOpt = colKeyPrimary } case 326: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1809 +//line sql.y:1815 { yyVAL.colKeyOpt = colKey } case 327: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1813 +//line sql.y:1819 { yyVAL.colKeyOpt = colKeyUniqueKey } case 328: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1817 +//line sql.y:1823 { yyVAL.colKeyOpt = colKeyUnique } case 329: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1823 +//line sql.y:1829 { yyVAL.sqlVal = NewStrVal(yyDollar[2].bytes) } case 330: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1829 +//line sql.y:1835 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns, Options: yyDollar[5].indexOptions} } case 331: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1833 +//line sql.y:1839 { yyVAL.indexDefinition = &IndexDefinition{Info: yyDollar[1].indexInfo, Columns: yyDollar[3].indexColumns} } case 332: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1838 +//line sql.y:1844 { yyVAL.indexOptions = nil } case 333: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1842 +//line sql.y:1848 { yyVAL.indexOptions = yyDollar[1].indexOptions } case 334: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1848 +//line sql.y:1854 { yyVAL.indexOptions = []*IndexOption{yyDollar[1].indexOption} } case 335: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1852 +//line sql.y:1858 { yyVAL.indexOptions = append(yyVAL.indexOptions, yyDollar[2].indexOption) } case 336: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1858 +//line sql.y:1864 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Using: string(yyDollar[2].bytes)} } case 337: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1862 +//line sql.y:1868 { // should not be string yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewIntVal(yyDollar[3].bytes)} } case 338: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1867 +//line sql.y:1873 { yyVAL.indexOption = &IndexOption{Name: string(yyDollar[1].bytes), Value: NewStrVal(yyDollar[2].bytes)} } case 339: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1873 +//line sql.y:1879 { yyVAL.str = "" } case 340: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1877 +//line sql.y:1883 { yyVAL.str = string(yyDollar[1].bytes) } case 341: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1883 +//line sql.y:1889 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].bytes), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} } case 342: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1887 +//line sql.y:1893 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} } case 343: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1891 +//line sql.y:1897 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Unique: true} } case 344: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1895 +//line sql.y:1901 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].bytes), Name: NewColIdent(yyDollar[2].str), Unique: true} } case 345: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1899 +//line sql.y:1905 { yyVAL.indexInfo = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} } case 346: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1905 +//line sql.y:1911 { yyVAL.str = string(yyDollar[1].bytes) } case 347: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1909 +//line sql.y:1915 { yyVAL.str = string(yyDollar[1].bytes) } case 348: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1913 +//line sql.y:1919 { yyVAL.str = string(yyDollar[1].bytes) } case 349: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1919 +//line sql.y:1925 { yyVAL.str = string(yyDollar[1].bytes) } case 350: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1923 +//line sql.y:1929 { yyVAL.str = string(yyDollar[1].bytes) } case 351: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1928 +//line sql.y:1934 { yyVAL.str = "" } case 352: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1932 +//line sql.y:1938 { yyVAL.str = yyDollar[1].str } case 353: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1937 +//line sql.y:1943 { yyVAL.str = "" } case 354: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1941 +//line sql.y:1947 { yyVAL.str = string(yyDollar[1].bytes) } case 355: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1947 +//line sql.y:1953 { yyVAL.indexColumns = []*IndexColumn{yyDollar[1].indexColumn} } case 356: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1951 +//line sql.y:1957 { yyVAL.indexColumns = append(yyVAL.indexColumns, yyDollar[3].indexColumn) } case 357: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1957 +//line sql.y:1963 { yyVAL.indexColumn = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].sqlVal, Order: yyDollar[3].str} } case 358: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1963 +//line sql.y:1969 { yyVAL.constraintDefinition = &ConstraintDefinition{Name: string(yyDollar[2].bytes), Details: yyDollar[3].constraintInfo} } case 359: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1967 +//line sql.y:1973 { yyVAL.constraintDefinition = &ConstraintDefinition{Details: yyDollar[1].constraintInfo} } case 360: yyDollar = yyS[yypt-10 : yypt+1] -//line sql.y:1973 +//line sql.y:1979 { yyVAL.constraintInfo = &ForeignKeyDefinition{Source: yyDollar[4].columns, ReferencedTable: yyDollar[7].tableName, ReferencedColumns: yyDollar[9].columns} } case 361: yyDollar = yyS[yypt-11 : yypt+1] -//line sql.y:1977 +//line sql.y:1983 { yyVAL.constraintInfo = &ForeignKeyDefinition{Source: yyDollar[4].columns, ReferencedTable: yyDollar[7].tableName, ReferencedColumns: yyDollar[9].columns, OnDelete: yyDollar[11].ReferenceAction} } case 362: yyDollar = yyS[yypt-11 : yypt+1] -//line sql.y:1981 +//line sql.y:1987 { yyVAL.constraintInfo = &ForeignKeyDefinition{Source: yyDollar[4].columns, ReferencedTable: yyDollar[7].tableName, ReferencedColumns: yyDollar[9].columns, OnUpdate: yyDollar[11].ReferenceAction} } case 363: yyDollar = yyS[yypt-12 : yypt+1] -//line sql.y:1985 +//line sql.y:1991 { yyVAL.constraintInfo = &ForeignKeyDefinition{Source: yyDollar[4].columns, ReferencedTable: yyDollar[7].tableName, ReferencedColumns: yyDollar[9].columns, OnDelete: yyDollar[11].ReferenceAction, OnUpdate: yyDollar[12].ReferenceAction} } case 364: yyDollar = yyS[yypt-12 : yypt+1] -//line sql.y:1989 +//line sql.y:1995 { yyVAL.constraintInfo = &ForeignKeyDefinition{Source: yyDollar[4].columns, ReferencedTable: yyDollar[7].tableName, ReferencedColumns: yyDollar[9].columns, OnDelete: yyDollar[12].ReferenceAction, OnUpdate: yyDollar[11].ReferenceAction} } case 365: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1995 +//line sql.y:2001 { yyVAL.constraintDefinition = &ConstraintDefinition{Name: string(yyDollar[2].bytes), Details: yyDollar[3].constraintInfo} } case 366: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1999 +//line sql.y:2005 { yyVAL.constraintDefinition = &ConstraintDefinition{Details: yyDollar[2].constraintInfo} } case 367: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2003 +//line sql.y:2009 { yyVAL.constraintDefinition = &ConstraintDefinition{Details: yyDollar[1].constraintInfo} } case 368: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2009 +//line sql.y:2015 { yyVAL.constraintInfo = &CheckConstraintDefinition{Expr: yyDollar[3].expr, Enforced: yyDollar[5].boolean} } case 369: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2015 +//line sql.y:2021 { yyVAL.str = string(yyDollar[1].bytes) } case 370: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2019 +//line sql.y:2025 { yyVAL.str = string(yyDollar[1].bytes) } case 371: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2024 +//line sql.y:2030 { yyVAL.str = "" } case 372: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2028 +//line sql.y:2034 { yyVAL.str = string(yyDollar[2].bytes) } case 373: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2032 +//line sql.y:2038 { yyVAL.str = string(yyDollar[2].bytes) } case 374: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2038 +//line sql.y:2044 { yyVAL.ReferenceAction = yyDollar[3].ReferenceAction } case 375: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2044 +//line sql.y:2050 { yyVAL.ReferenceAction = yyDollar[3].ReferenceAction } case 376: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2050 +//line sql.y:2056 { yyVAL.ReferenceAction = Restrict } case 377: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2054 +//line sql.y:2060 { yyVAL.ReferenceAction = Cascade } case 378: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2058 +//line sql.y:2064 { yyVAL.ReferenceAction = NoAction } case 379: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2062 +//line sql.y:2068 { yyVAL.ReferenceAction = SetDefault } case 380: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2066 +//line sql.y:2072 { yyVAL.ReferenceAction = SetNull } case 381: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2071 +//line sql.y:2077 { yyVAL.boolean = true } case 382: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2075 +//line sql.y:2081 { yyVAL.boolean = true } case 383: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2079 +//line sql.y:2085 { yyVAL.boolean = false } case 384: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2084 +//line sql.y:2090 { yyVAL.str = "" } case 385: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2088 +//line sql.y:2094 { yyVAL.str = " " + string(yyDollar[1].str) } case 386: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2092 +//line sql.y:2098 { yyVAL.str = string(yyDollar[1].str) + ", " + string(yyDollar[3].str) } case 387: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2100 +//line sql.y:2106 { yyVAL.str = yyDollar[1].str } case 388: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2104 +//line sql.y:2110 { yyVAL.str = yyDollar[1].str + " " + yyDollar[2].str } case 389: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2108 +//line sql.y:2114 { yyVAL.str = yyDollar[1].str + "=" + yyDollar[3].str } case 390: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2114 +//line sql.y:2120 { yyVAL.str = yyDollar[1].colIdent.String() } case 391: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2118 +//line sql.y:2124 { yyVAL.str = "'" + string(yyDollar[1].bytes) + "'" } case 392: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2122 +//line sql.y:2128 { yyVAL.str = string(yyDollar[1].bytes) } case 393: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2127 +//line sql.y:2133 { yyVAL.str = "" } case 394: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2131 +//line sql.y:2137 { yyVAL.str = string(yyDollar[2].bytes) } case 397: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2141 +//line sql.y:2147 { for i := 0; i < len(yyDollar[5].ddls); i++ { if yyDollar[5].ddls[i].Action == RenameStr { @@ -7269,25 +7329,25 @@ yydefault: } case 398: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2154 +//line sql.y:2160 { yyVAL.ddls = []*DDL{yyDollar[1].ddl} } case 399: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2158 +//line sql.y:2164 { yyVAL.ddls = append(yyVAL.ddls, yyDollar[3].ddl) } case 400: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2164 +//line sql.y:2170 { yyVAL.ddl = &DDL{Action: AlterStr} } case 401: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2168 +//line sql.y:2174 { ddl := &DDL{Action: AlterStr, ColumnAction: AddStr, TableSpec: &TableSpec{}} ddl.TableSpec.AddColumn(yyDollar[4].columnDefinition) @@ -7296,7 +7356,7 @@ yydefault: } case 402: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2175 +//line sql.y:2181 { ddl := &DDL{Action: AlterStr, ColumnAction: AddStr, TableSpec: &TableSpec{}, ColumnOrder: yyDollar[4].columnOrder} ddl.TableSpec.AddColumn(yyDollar[3].columnDefinition) @@ -7305,74 +7365,74 @@ yydefault: } case 403: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2182 +//line sql.y:2188 { yyVAL.ddl = &DDL{Action: AlterStr} } case 404: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2186 +//line sql.y:2192 { yyVAL.ddl = &DDL{Action: AlterStr, ColumnAction: DropStr, Column: NewColIdent(string(yyDollar[3].bytes))} } case 405: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2190 +//line sql.y:2196 { yyVAL.ddl = &DDL{Action: AlterStr} } case 406: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2194 +//line sql.y:2200 { yyVAL.ddl = &DDL{Action: AlterStr, ColumnAction: RenameStr, Column: NewColIdent(string(yyDollar[3].bytes)), ToColumn: NewColIdent(string(yyDollar[5].bytes))} } case 407: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2198 +//line sql.y:2204 { // Change this to a rename statement yyVAL.ddl = &DDL{Action: RenameStr, ToTables: TableNames{yyDollar[3].tableName}} } case 408: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2203 +//line sql.y:2209 { yyVAL.ddl = &DDL{Action: AlterStr, IndexSpec: &IndexSpec{Action: CreateStr, ToName: NewColIdent(yyDollar[3].str), Using: yyDollar[4].colIdent, Columns: yyDollar[6].indexColumns, Options: yyDollar[8].indexOptions}} } case 409: yyDollar = yyS[yypt-10 : yypt+1] -//line sql.y:2207 +//line sql.y:2213 { yyVAL.ddl = &DDL{Action: AlterStr, IndexSpec: &IndexSpec{Action: CreateStr, ToName: NewColIdent(yyDollar[5].str), Type: yyDollar[3].str, Using: yyDollar[6].colIdent, Columns: yyDollar[8].indexColumns, Options: yyDollar[10].indexOptions}} } case 410: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2211 +//line sql.y:2217 { yyVAL.ddl = &DDL{Action: AlterStr, ConstraintAction: DropStr, TableSpec: &TableSpec{Constraints: []*ConstraintDefinition{&ConstraintDefinition{Name: string(yyDollar[3].bytes)}}}} } case 411: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2216 +//line sql.y:2222 { yyVAL.ddl = &DDL{Action: AlterStr, ConstraintAction: DropStr, TableSpec: &TableSpec{Constraints: []*ConstraintDefinition{&ConstraintDefinition{Name: string(yyDollar[3].bytes), Details: &CheckConstraintDefinition{}}}}} } case 412: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2221 +//line sql.y:2227 { yyVAL.ddl = &DDL{Action: AlterStr, IndexSpec: &IndexSpec{Action: DropStr, ToName: yyDollar[3].colIdent}} } case 413: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2225 +//line sql.y:2231 { yyVAL.ddl = &DDL{Action: AlterStr, IndexSpec: &IndexSpec{Action: RenameStr, FromName: yyDollar[3].colIdent, ToName: yyDollar[5].colIdent}} } case 414: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2229 +//line sql.y:2235 { ddl := &DDL{Action: AlterStr, ColumnAction: ModifyStr, TableSpec: &TableSpec{}, ColumnOrder: yyDollar[4].columnOrder} ddl.TableSpec.AddColumn(yyDollar[3].columnDefinition) @@ -7381,7 +7441,7 @@ yydefault: } case 415: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2236 +//line sql.y:2242 { ddl := &DDL{Action: AlterStr, ColumnAction: ChangeStr, TableSpec: &TableSpec{}, Column: NewColIdent(string(yyDollar[3].bytes)), ColumnOrder: yyDollar[5].columnOrder} ddl.TableSpec.AddColumn(yyDollar[4].columnDefinition) @@ -7389,13 +7449,13 @@ yydefault: } case 416: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2242 +//line sql.y:2248 { yyVAL.ddl = &DDL{Action: AlterStr, PartitionSpec: yyDollar[1].partSpec} } case 417: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2246 +//line sql.y:2252 { ddl := &DDL{Action: AlterStr, ConstraintAction: AddStr, TableSpec: &TableSpec{}} ddl.TableSpec.AddConstraint(yyDollar[2].constraintDefinition) @@ -7403,7 +7463,7 @@ yydefault: } case 418: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2252 +//line sql.y:2258 { ddl := &DDL{Action: AlterStr, ConstraintAction: AddStr, TableSpec: &TableSpec{}} ddl.TableSpec.AddConstraint(yyDollar[2].constraintDefinition) @@ -7411,107 +7471,107 @@ yydefault: } case 419: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2258 +//line sql.y:2264 { yyVAL.ddl = &DDL{Action: AlterStr, ConstraintAction: DropStr, TableSpec: &TableSpec{Constraints: []*ConstraintDefinition{&ConstraintDefinition{Name: string(yyDollar[4].bytes), Details: &ForeignKeyDefinition{}}}}} } case 420: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2263 +//line sql.y:2269 { yyVAL.ddl = &DDL{Action: AlterStr, AutoIncSpec: &AutoIncSpec{Value: yyDollar[3].expr}} } case 421: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2267 +//line sql.y:2273 { yyVAL.ddl = &DDL{Action: AlterStr, DefaultSpec: &DefaultSpec{Action: SetStr, Column: yyDollar[3].colIdent, Value: yyDollar[6].expr}} } case 422: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2271 +//line sql.y:2277 { yyVAL.ddl = &DDL{Action: AlterStr, DefaultSpec: &DefaultSpec{Action: DropStr, Column: yyDollar[3].colIdent}} } case 423: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2276 +//line sql.y:2282 { yyVAL.columnOrder = nil } case 424: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2280 +//line sql.y:2286 { yyVAL.columnOrder = &ColumnOrder{First: true} } case 425: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2284 +//line sql.y:2290 { yyVAL.columnOrder = &ColumnOrder{AfterColumn: NewColIdent(string(yyDollar[2].bytes))} } case 426: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2290 +//line sql.y:2296 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName.ToViewName()} } case 427: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2296 +//line sql.y:2302 { } case 428: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2298 +//line sql.y:2304 { } case 432: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2307 +//line sql.y:2313 { yyVAL.partSpec = &PartitionSpec{Action: ReorganizeStr, Name: yyDollar[3].colIdent, Definitions: yyDollar[6].partDefs} } case 433: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2313 +//line sql.y:2319 { yyVAL.partDefs = []*PartitionDefinition{yyDollar[1].partDef} } case 434: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2317 +//line sql.y:2323 { yyVAL.partDefs = append(yyDollar[1].partDefs, yyDollar[3].partDef) } case 435: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2323 +//line sql.y:2329 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].expr} } case 436: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2327 +//line sql.y:2333 { yyVAL.partDef = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } case 437: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2333 +//line sql.y:2339 { yyVAL.statement = yyDollar[3].ddl } case 438: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2339 +//line sql.y:2345 { yyVAL.ddl = &DDL{Action: RenameStr, FromTables: TableNames{yyDollar[1].tableName}, ToTables: TableNames{yyDollar[3].tableName}} } case 439: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2343 +//line sql.y:2349 { yyVAL.ddl = yyDollar[1].ddl yyVAL.ddl.FromTables = append(yyVAL.ddl.FromTables, yyDollar[3].tableName) @@ -7519,7 +7579,7 @@ yydefault: } case 440: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2351 +//line sql.y:2357 { var exists bool if yyDollar[3].byt != 0 { @@ -7529,13 +7589,13 @@ yydefault: } case 441: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2359 +//line sql.y:2365 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName, IndexSpec: &IndexSpec{Action: DropStr, ToName: yyDollar[3].colIdent}} } case 442: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2363 +//line sql.y:2369 { var exists bool if yyDollar[3].byt != 0 { @@ -7545,7 +7605,7 @@ yydefault: } case 443: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2371 +//line sql.y:2377 { var exists bool if yyDollar[3].byt != 0 { @@ -7555,7 +7615,7 @@ yydefault: } case 444: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2379 +//line sql.y:2385 { var exists bool if yyDollar[3].byt != 0 { @@ -7565,7 +7625,7 @@ yydefault: } case 445: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2387 +//line sql.y:2393 { var exists bool if yyDollar[3].byt != 0 { @@ -7575,7 +7635,7 @@ yydefault: } case 446: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2395 +//line sql.y:2401 { var exists bool if yyDollar[3].byt != 0 { @@ -7585,152 +7645,152 @@ yydefault: } case 447: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2405 +//line sql.y:2411 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} } case 448: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2409 +//line sql.y:2415 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} } case 449: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2414 +//line sql.y:2420 { yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[3].tableName} } case 450: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2420 +//line sql.y:2426 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 451: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2425 +//line sql.y:2431 { yyVAL.statement = &Show{Type: CharsetStr, Filter: yyDollar[4].showFilter} } case 452: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2429 +//line sql.y:2435 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), Filter: yyDollar[3].showFilter} } case 453: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2433 +//line sql.y:2439 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), IfNotExists: yyDollar[4].byt == 1, Database: string(yyDollar[5].bytes)} } case 454: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2437 +//line sql.y:2443 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), IfNotExists: yyDollar[4].byt == 1, Database: string(yyDollar[5].bytes)} } case 455: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2442 +//line sql.y:2448 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 456: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2446 +//line sql.y:2452 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 457: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2450 +//line sql.y:2456 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 458: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2454 +//line sql.y:2460 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Table: yyDollar[4].tableName} } case 459: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2458 +//line sql.y:2464 { yyVAL.statement = &Show{Type: CreateTriggerStr, Table: yyDollar[4].tableName} } case 460: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2462 +//line sql.y:2468 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Table: yyDollar[4].tableName} } case 461: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2466 +//line sql.y:2472 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 462: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2470 +//line sql.y:2476 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 463: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2474 +//line sql.y:2480 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 464: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2478 +//line sql.y:2484 { yyVAL.statement = &Show{Type: IndexStr, Table: yyDollar[4].tableName, Database: yyDollar[5].str, ShowIndexFilterOpt: yyDollar[6].expr} } case 465: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2482 +//line sql.y:2488 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 466: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2486 +//line sql.y:2492 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Filter: yyDollar[4].showFilter} } case 467: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2490 +//line sql.y:2496 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Filter: yyDollar[4].showFilter} } case 468: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2494 +//line sql.y:2500 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 469: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2498 +//line sql.y:2504 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Database: yyDollar[4].str, Filter: yyDollar[5].showFilter} } case 470: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2502 +//line sql.y:2508 { showTablesOpt := &ShowTablesOpt{Full: yyDollar[2].str, DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter} yyVAL.statement = &Show{Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName} } case 471: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2507 +//line sql.y:2513 { // this is ugly, but I couldn't find a better way for now if yyDollar[3].str == "processlist" { @@ -7742,25 +7802,25 @@ yydefault: } case 472: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2517 +//line sql.y:2523 { yyVAL.statement = &Show{Type: string(yyDollar[3].bytes), ShowTablesOpt: &ShowTablesOpt{DbName: yyDollar[4].str, Filter: yyDollar[5].showFilter}} } case 473: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2521 +//line sql.y:2527 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 474: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2525 +//line sql.y:2531 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 475: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2529 +//line sql.y:2535 { // Cannot dereference $4 directly, or else the parser stackcannot be pooled. See yyParsePooled showCollationFilterOpt := yyDollar[4].expr @@ -7768,7 +7828,7 @@ yydefault: } case 476: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2535 +//line sql.y:2541 { // Cannot dereference $3 directly, or else the parser stackcannot be pooled. See yyParsePooled cmp := yyDollar[3].expr.(*ComparisonExpr) @@ -7778,378 +7838,378 @@ yydefault: } case 477: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2543 +//line sql.y:2549 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 478: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2553 +//line sql.y:2559 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 479: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2559 +//line sql.y:2565 { yyVAL.expr = &ComparisonExpr{Operator: LikeStr, Right: yyDollar[2].expr, Escape: yyDollar[3].expr} } case 480: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2565 +//line sql.y:2571 { yyVAL.str = string(yyDollar[1].bytes) } case 481: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2569 +//line sql.y:2575 { yyVAL.str = string(yyDollar[1].bytes) } case 482: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2575 +//line sql.y:2581 { yyVAL.str = "" } case 483: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2579 +//line sql.y:2585 { yyVAL.str = "full " } case 484: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2585 +//line sql.y:2591 { yyVAL.str = string(yyDollar[1].bytes) } case 485: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2589 +//line sql.y:2595 { yyVAL.str = string(yyDollar[1].bytes) } case 486: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2595 +//line sql.y:2601 { yyVAL.str = "" } case 487: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2599 +//line sql.y:2605 { yyVAL.str = yyDollar[2].tableIdent.v } case 488: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2603 +//line sql.y:2609 { yyVAL.str = yyDollar[2].tableIdent.v } case 489: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2609 +//line sql.y:2615 { yyVAL.showFilter = nil } case 490: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2613 +//line sql.y:2619 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } case 491: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2617 +//line sql.y:2623 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } case 492: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2623 +//line sql.y:2629 { yyVAL.str = "" } case 493: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2627 +//line sql.y:2633 { yyVAL.str = SessionStr } case 494: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2631 +//line sql.y:2637 { yyVAL.str = GlobalStr } case 495: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2637 +//line sql.y:2643 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } case 496: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2641 +//line sql.y:2647 { yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } case 497: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2647 +//line sql.y:2653 { yyVAL.statement = &Begin{} } case 498: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2651 +//line sql.y:2657 { yyVAL.statement = yyDollar[1].statement } case 499: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2657 +//line sql.y:2663 { yyVAL.statement = &Begin{} } case 500: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2663 +//line sql.y:2669 { yyVAL.statement = &Commit{} } case 501: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2669 +//line sql.y:2675 { yyVAL.statement = &Rollback{} } case 502: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2675 +//line sql.y:2681 { yyVAL.statement = &Savepoint{Identifier: string(yyDollar[2].bytes)} } case 503: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2681 +//line sql.y:2687 { yyVAL.statement = &RollbackSavepoint{Identifier: string(yyDollar[3].bytes)} } case 504: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2685 +//line sql.y:2691 { yyVAL.statement = &RollbackSavepoint{Identifier: string(yyDollar[4].bytes)} } case 505: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2689 +//line sql.y:2695 { yyVAL.statement = &RollbackSavepoint{Identifier: string(yyDollar[4].bytes)} } case 506: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2693 +//line sql.y:2699 { yyVAL.statement = &RollbackSavepoint{Identifier: string(yyDollar[5].bytes)} } case 507: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2699 +//line sql.y:2705 { yyVAL.statement = &ReleaseSavepoint{Identifier: string(yyDollar[3].bytes)} } case 508: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2704 +//line sql.y:2710 { } case 509: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2705 +//line sql.y:2711 { } case 510: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2709 +//line sql.y:2715 { yyVAL.statement = &Explain{ExplainFormat: yyDollar[2].str, Statement: yyDollar[3].statement} } case 511: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2713 +//line sql.y:2719 { yyVAL.statement = &Explain{Analyze: true, ExplainFormat: TreeStr, Statement: yyDollar[3].selStmt} } case 512: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2719 +//line sql.y:2725 { yyVAL.statement = yyDollar[1].selStmt } case 516: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2727 +//line sql.y:2733 { yyVAL.str = "" } case 517: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2731 +//line sql.y:2737 { yyVAL.str = string(yyDollar[3].bytes) } case 520: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2742 +//line sql.y:2748 { yyVAL.statement = &Show{Type: "columns", OnTable: yyDollar[2].tableName} } case 521: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2746 +//line sql.y:2752 { yyVAL.statement = &OtherRead{} } case 522: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2752 +//line sql.y:2758 { yyVAL.statement = &OtherAdmin{} } case 523: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2756 +//line sql.y:2762 { yyVAL.statement = &OtherAdmin{} } case 524: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2760 +//line sql.y:2766 { yyVAL.statement = &OtherAdmin{} } case 525: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2764 +//line sql.y:2770 { yyVAL.statement = &OtherAdmin{} } case 526: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2770 +//line sql.y:2776 { yyVAL.statement = &DDL{Action: FlushStr} } case 527: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2774 +//line sql.y:2780 { setAllowComments(yylex, true) } case 528: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2778 +//line sql.y:2784 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } case 529: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2784 +//line sql.y:2790 { yyVAL.bytes2 = nil } case 530: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2788 +//line sql.y:2794 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } case 531: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2794 +//line sql.y:2800 { yyVAL.str = UnionStr } case 532: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2798 +//line sql.y:2804 { yyVAL.str = UnionAllStr } case 533: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2802 +//line sql.y:2808 { yyVAL.str = UnionDistinctStr } case 534: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2807 +//line sql.y:2813 { yyVAL.byt = 0 } case 535: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2811 +//line sql.y:2817 { yyVAL.byt = 1 } case 536: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2816 +//line sql.y:2822 { yyVAL.str = "" } case 537: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2820 +//line sql.y:2826 { yyVAL.str = SQLNoCacheStr } case 538: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2824 +//line sql.y:2830 { yyVAL.str = SQLCacheStr } case 539: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2829 +//line sql.y:2835 { yyVAL.str = "" } case 540: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2833 +//line sql.y:2839 { yyVAL.str = "" } case 541: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2837 +//line sql.y:2843 { yyVAL.str = DistinctStr } case 542: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2842 +//line sql.y:2848 { yyVAL.str = "" } case 543: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2846 +//line sql.y:2852 { yyVAL.str = StraightJoinHint } case 544: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2852 +//line sql.y:2858 { if ae, ok := yyDollar[2].selectExpr.(*AliasedExpr); ok { ae.StartParsePos = yyDollar[1].int @@ -8159,7 +8219,7 @@ yydefault: } case 545: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2860 +//line sql.y:2866 { if ae, ok := yyDollar[4].selectExpr.(*AliasedExpr); ok { ae.StartParsePos = yyDollar[3].int @@ -8169,145 +8229,145 @@ yydefault: } case 546: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2871 +//line sql.y:2877 { yyVAL.selectExpr = &StarExpr{} } case 547: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2875 +//line sql.y:2881 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr} } case 548: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2879 +//line sql.y:2885 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } case 549: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2883 +//line sql.y:2889 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } case 550: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2889 +//line sql.y:2895 { yyVAL.selectExpr = &StarExpr{} } case 551: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2893 +//line sql.y:2899 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } case 552: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2897 +//line sql.y:2903 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } case 553: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2901 +//line sql.y:2907 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } case 554: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2908 +//line sql.y:2914 { yyVAL.over = &Over{WindowName: yyDollar[2].colIdent} } case 555: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2912 +//line sql.y:2918 { yyVAL.over = &Over{OrderBy: yyDollar[3].orderBy} } case 556: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2916 +//line sql.y:2922 { yyVAL.over = &Over{PartitionBy: yyDollar[5].exprs, OrderBy: yyDollar[6].orderBy} } case 557: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2921 +//line sql.y:2927 { yyVAL.over = nil } case 558: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2925 +//line sql.y:2931 { yyVAL.over = yyDollar[1].over } case 559: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2930 +//line sql.y:2936 { yyVAL.colIdent = ColIdent{} } case 560: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2934 +//line sql.y:2940 { yyVAL.colIdent = yyDollar[1].colIdent } case 561: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2938 +//line sql.y:2944 { yyVAL.colIdent = yyDollar[2].colIdent } case 562: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2944 +//line sql.y:2950 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 563: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2948 +//line sql.y:2954 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 564: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2952 +//line sql.y:2958 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 565: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2956 +//line sql.y:2962 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 566: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2962 +//line sql.y:2968 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } case 567: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2966 +//line sql.y:2972 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } case 570: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2976 +//line sql.y:2982 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } case 571: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2980 +//line sql.y:2986 { switch n := yyDollar[1].simpleTableExpr.(type) { case *Subquery: @@ -8319,7 +8379,7 @@ yydefault: } case 572: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2990 +//line sql.y:2996 { // missed alias for subquery yylex.Error("Every derived table must have its own alias") @@ -8327,38 +8387,38 @@ yydefault: } case 573: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2996 +//line sql.y:3002 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } case 574: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3002 +//line sql.y:3008 { yyVAL.simpleTableExpr = &ValuesStatement{Rows: yyDollar[2].values} } case 575: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3008 +//line sql.y:3014 { yyVAL.values = Values{yyDollar[2].valTuple} } case 576: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3012 +//line sql.y:3018 { yyVAL.values = append(yyVAL.values, yyDollar[4].valTuple) } case 577: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3018 +//line sql.y:3024 { yyVAL.aliasedTableName = yyDollar[2].aliasedTableName yyVAL.aliasedTableName.Expr = yyDollar[1].tableName } case 578: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3023 +//line sql.y:3029 { yyVAL.aliasedTableName = yyDollar[6].aliasedTableName yyVAL.aliasedTableName.Expr = yyDollar[1].tableName @@ -8366,223 +8426,223 @@ yydefault: } case 579: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3034 +//line sql.y:3040 { yyVAL.aliasedTableName = &AliasedTableExpr{Hints: yyDollar[1].indexHints} } case 580: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3038 +//line sql.y:3044 { yyVAL.aliasedTableName = &AliasedTableExpr{AsOf: &AsOf{Time: yyDollar[3].expr}, Hints: yyDollar[4].indexHints} } case 581: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3042 +//line sql.y:3048 { yyVAL.aliasedTableName = &AliasedTableExpr{AsOf: &AsOf{Time: yyDollar[3].expr}, As: yyDollar[5].tableIdent, Hints: yyDollar[6].indexHints} } case 582: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3046 +//line sql.y:3052 { yyVAL.aliasedTableName = &AliasedTableExpr{As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } case 583: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3050 +//line sql.y:3056 { yyVAL.aliasedTableName = &AliasedTableExpr{As: yyDollar[1].tableIdent, Hints: yyDollar[2].indexHints} } case 584: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3061 +//line sql.y:3067 { yyVAL.expr = nil } case 585: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3065 +//line sql.y:3071 { yyVAL.expr = yyDollar[3].expr } case 586: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3070 +//line sql.y:3076 { yyVAL.columns = nil } case 587: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3074 +//line sql.y:3080 { yyVAL.columns = yyDollar[2].columns } case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3080 +//line sql.y:3086 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 589: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3084 +//line sql.y:3090 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 590: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3090 +//line sql.y:3096 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } case 591: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3094 +//line sql.y:3100 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } case 592: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3107 +//line sql.y:3113 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 593: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3111 +//line sql.y:3117 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 594: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3115 +//line sql.y:3121 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 595: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3119 +//line sql.y:3125 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } case 596: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3125 +//line sql.y:3131 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 597: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3127 +//line sql.y:3133 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } case 598: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3131 +//line sql.y:3137 { yyVAL.joinCondition = JoinCondition{} } case 599: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3133 +//line sql.y:3139 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 600: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3137 +//line sql.y:3143 { yyVAL.joinCondition = JoinCondition{} } case 601: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3139 +//line sql.y:3145 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 602: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3142 +//line sql.y:3148 { yyVAL.empty = struct{}{} } case 603: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3144 +//line sql.y:3150 { yyVAL.empty = struct{}{} } case 605: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3149 +//line sql.y:3155 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 606: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3153 +//line sql.y:3159 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 607: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3159 +//line sql.y:3165 { yyVAL.str = JoinStr } case 608: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3163 +//line sql.y:3169 { yyVAL.str = JoinStr } case 609: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3167 +//line sql.y:3173 { yyVAL.str = JoinStr } case 610: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3173 +//line sql.y:3179 { yyVAL.str = StraightJoinStr } case 611: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3179 +//line sql.y:3185 { yyVAL.str = LeftJoinStr } case 612: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3183 +//line sql.y:3189 { yyVAL.str = LeftJoinStr } case 613: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3187 +//line sql.y:3193 { yyVAL.str = RightJoinStr } case 614: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3191 +//line sql.y:3197 { yyVAL.str = RightJoinStr } case 615: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3197 +//line sql.y:3203 { yyVAL.str = NaturalJoinStr } case 616: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3201 +//line sql.y:3207 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -8592,499 +8652,499 @@ yydefault: } case 617: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3211 +//line sql.y:3217 { yyVAL.tableName = yyDollar[3].tableName } case 618: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3217 +//line sql.y:3223 { yyVAL.tableName = yyDollar[2].tableName } case 619: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3221 +//line sql.y:3227 { yyVAL.tableName = yyDollar[1].tableName } case 620: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3227 +//line sql.y:3233 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 621: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3231 +//line sql.y:3237 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 622: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3237 +//line sql.y:3243 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 623: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3242 +//line sql.y:3248 { yyVAL.indexHints = nil } case 624: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3246 +//line sql.y:3252 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } case 625: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3250 +//line sql.y:3256 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } case 626: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3254 +//line sql.y:3260 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } case 627: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3259 +//line sql.y:3265 { yyVAL.expr = nil } case 628: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3263 +//line sql.y:3269 { yyVAL.expr = yyDollar[2].expr } case 629: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3269 +//line sql.y:3275 { yyVAL.expr = yyDollar[1].expr } case 630: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3273 +//line sql.y:3279 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 631: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3277 +//line sql.y:3283 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 632: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3281 +//line sql.y:3287 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } case 633: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3285 +//line sql.y:3291 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } case 634: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3289 +//line sql.y:3295 { yyVAL.expr = yyDollar[1].expr } case 635: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3293 +//line sql.y:3299 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } case 636: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3299 +//line sql.y:3305 { yyVAL.str = "" } case 637: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3303 +//line sql.y:3309 { yyVAL.str = string(yyDollar[2].bytes) } case 638: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3309 +//line sql.y:3315 { yyVAL.boolVal = BoolVal(true) } case 639: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3313 +//line sql.y:3319 { yyVAL.boolVal = BoolVal(false) } case 640: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3319 +//line sql.y:3325 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } case 641: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3323 +//line sql.y:3329 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } case 642: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3327 +//line sql.y:3333 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } case 643: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3331 +//line sql.y:3337 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } case 644: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3335 +//line sql.y:3341 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } case 645: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3339 +//line sql.y:3345 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } case 646: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3343 +//line sql.y:3349 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } case 647: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3347 +//line sql.y:3353 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } case 648: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3351 +//line sql.y:3357 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } case 649: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3355 +//line sql.y:3361 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 650: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3361 +//line sql.y:3367 { yyVAL.str = IsNullStr } case 651: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3365 +//line sql.y:3371 { yyVAL.str = IsNotNullStr } case 652: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3369 +//line sql.y:3375 { yyVAL.str = IsTrueStr } case 653: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3373 +//line sql.y:3379 { yyVAL.str = IsNotTrueStr } case 654: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3377 +//line sql.y:3383 { yyVAL.str = IsFalseStr } case 655: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3381 +//line sql.y:3387 { yyVAL.str = IsNotFalseStr } case 656: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3387 +//line sql.y:3393 { yyVAL.str = EqualStr } case 657: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3391 +//line sql.y:3397 { yyVAL.str = LessThanStr } case 658: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3395 +//line sql.y:3401 { yyVAL.str = GreaterThanStr } case 659: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3399 +//line sql.y:3405 { yyVAL.str = LessEqualStr } case 660: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3403 +//line sql.y:3409 { yyVAL.str = GreaterEqualStr } case 661: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3407 +//line sql.y:3413 { yyVAL.str = NotEqualStr } case 662: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3411 +//line sql.y:3417 { yyVAL.str = NullSafeEqualStr } case 663: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3416 +//line sql.y:3422 { yyVAL.expr = nil } case 664: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3420 +//line sql.y:3426 { yyVAL.expr = yyDollar[2].expr } case 665: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3426 +//line sql.y:3432 { yyVAL.colTuple = yyDollar[1].valTuple } case 666: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3430 +//line sql.y:3436 { yyVAL.colTuple = yyDollar[1].subquery } case 667: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3434 +//line sql.y:3440 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } case 668: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3440 +//line sql.y:3446 { yyVAL.subquery = &Subquery{Select: yyDollar[2].selStmt} } case 669: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3446 +//line sql.y:3452 { yyVAL.simpleTableExpr = yyDollar[1].subquery } case 670: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3450 +//line sql.y:3456 { yyVAL.simpleTableExpr = yyDollar[2].simpleTableExpr } case 671: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3456 +//line sql.y:3462 { yyVAL.selectExprs = nil } case 673: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3463 +//line sql.y:3469 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } case 674: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3467 +//line sql.y:3473 { yyVAL.selectExprs = append(yyDollar[1].selectExprs, yyDollar[3].selectExpr) } case 675: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3473 +//line sql.y:3479 { yyVAL.exprs = Exprs{yyDollar[1].expr} } case 676: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3477 +//line sql.y:3483 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 677: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3483 +//line sql.y:3489 { yyVAL.expr = yyDollar[1].expr } case 678: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3487 +//line sql.y:3493 { yyVAL.expr = yyDollar[1].boolVal } case 679: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3491 +//line sql.y:3497 { yyVAL.expr = yyDollar[1].colName } case 680: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3495 +//line sql.y:3501 { yyVAL.expr = yyDollar[1].expr } case 681: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3499 +//line sql.y:3505 { yyVAL.expr = yyDollar[1].subquery } case 682: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3503 +//line sql.y:3509 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 683: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3507 +//line sql.y:3513 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 684: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3511 +//line sql.y:3517 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 685: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3515 +//line sql.y:3521 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 686: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3519 +//line sql.y:3525 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 687: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3523 +//line sql.y:3529 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 688: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3527 +//line sql.y:3533 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 689: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3531 +//line sql.y:3537 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } case 690: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3535 +//line sql.y:3541 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 691: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3539 +//line sql.y:3545 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 692: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3543 +//line sql.y:3549 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 693: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3547 +//line sql.y:3553 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 694: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3551 +//line sql.y:3557 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 695: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3555 +//line sql.y:3561 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 696: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3559 +//line sql.y:3565 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 697: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3563 +//line sql.y:3569 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 698: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3567 +//line sql.y:3573 { yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} } case 699: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3571 +//line sql.y:3577 { yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} } case 700: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3575 +//line sql.y:3581 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { yyVAL.expr = num @@ -9094,7 +9154,7 @@ yydefault: } case 701: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3583 +//line sql.y:3589 { if num, ok := yyDollar[2].expr.(*SQLVal); ok && num.Type == IntVal { // Handle double negative @@ -9110,19 +9170,19 @@ yydefault: } case 702: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3597 +//line sql.y:3603 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } case 703: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3601 +//line sql.y:3607 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } case 704: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3605 +//line sql.y:3611 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -9132,493 +9192,493 @@ yydefault: } case 711: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3625 +//line sql.y:3631 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: yyDollar[3].str == DistinctStr, Exprs: yyDollar[4].selectExprs} } case 712: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3629 +//line sql.y:3635 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } case 713: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3639 +//line sql.y:3645 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[4].selectExprs, Distinct: yyDollar[3].str == DistinctStr, Over: yyDollar[6].over} } case 714: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3643 +//line sql.y:3649 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[4].selectExprs, Distinct: yyDollar[3].str == DistinctStr, Over: yyDollar[6].over} } case 715: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3647 +//line sql.y:3653 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 716: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3651 +//line sql.y:3657 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 717: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3655 +//line sql.y:3661 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 718: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3659 +//line sql.y:3665 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[4].selectExprs, Distinct: yyDollar[3].str == DistinctStr, Over: yyDollar[6].over} } case 719: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3663 +//line sql.y:3669 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 720: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3667 +//line sql.y:3673 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 721: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3671 +//line sql.y:3677 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[4].selectExprs, Distinct: yyDollar[3].str == DistinctStr, Over: yyDollar[6].over} } case 722: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3675 +//line sql.y:3681 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 723: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3679 +//line sql.y:3685 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 724: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3683 +//line sql.y:3689 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 725: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3687 +//line sql.y:3693 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 726: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3691 +//line sql.y:3697 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[4].selectExprs, Distinct: yyDollar[3].str == DistinctStr, Over: yyDollar[6].over} } case 727: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3695 +//line sql.y:3701 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 728: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3699 +//line sql.y:3705 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 729: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3703 +//line sql.y:3709 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 730: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3712 +//line sql.y:3718 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Over: yyDollar[4].over} } case 731: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3716 +//line sql.y:3722 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Over: yyDollar[4].over} } case 732: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3720 +//line sql.y:3726 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: SelectExprs{yyDollar[3].selectExpr}, Over: yyDollar[5].over} } case 733: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3724 +//line sql.y:3730 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 734: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3728 +//line sql.y:3734 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: SelectExprs{yyDollar[3].selectExpr}, Over: yyDollar[5].over} } case 735: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3732 +//line sql.y:3738 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 736: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3736 +//line sql.y:3742 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs, Over: yyDollar[5].over} } case 737: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3740 +//line sql.y:3746 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Over: yyDollar[4].over} } case 738: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3744 +//line sql.y:3750 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Over: yyDollar[4].over} } case 739: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3748 +//line sql.y:3754 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Over: yyDollar[4].over} } case 740: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3752 +//line sql.y:3758 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Over: yyDollar[4].over} } case 741: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3763 +//line sql.y:3769 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 742: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3767 +//line sql.y:3773 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 743: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3771 +//line sql.y:3777 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 744: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3775 +//line sql.y:3781 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 745: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3779 +//line sql.y:3785 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 746: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:3783 +//line sql.y:3789 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } case 747: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:3787 +//line sql.y:3793 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 748: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:3791 +//line sql.y:3797 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 749: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:3795 +//line sql.y:3801 { yyVAL.expr = &SubstrExpr{StrVal: NewStrVal(yyDollar[3].bytes), From: yyDollar[5].expr, To: yyDollar[7].expr} } case 750: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:3799 +//line sql.y:3805 { yyVAL.expr = &SubstrExpr{StrVal: NewStrVal(yyDollar[3].bytes), From: yyDollar[5].expr, To: yyDollar[7].expr} } case 751: yyDollar = yyS[yypt-9 : yypt+1] -//line sql.y:3803 +//line sql.y:3809 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } case 752: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3807 +//line sql.y:3813 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 753: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:3811 +//line sql.y:3817 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str} } case 754: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3815 +//line sql.y:3821 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } case 755: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3819 +//line sql.y:3825 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } case 756: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3829 +//line sql.y:3835 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 757: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3833 +//line sql.y:3839 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 758: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3837 +//line sql.y:3843 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 759: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3842 +//line sql.y:3848 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 760: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3847 +//line sql.y:3853 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 761: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3852 +//line sql.y:3858 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 762: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3858 +//line sql.y:3864 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 763: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3863 +//line sql.y:3869 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 764: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3867 +//line sql.y:3873 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes))} } case 765: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3872 +//line sql.y:3878 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Fsp: yyDollar[2].expr} } case 766: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3876 +//line sql.y:3882 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Fsp: yyDollar[2].expr} } case 767: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3880 +//line sql.y:3886 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Fsp: yyDollar[2].expr} } case 768: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3885 +//line sql.y:3891 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Fsp: yyDollar[2].expr} } case 769: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3890 +//line sql.y:3896 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Fsp: yyDollar[2].expr} } case 770: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3895 +//line sql.y:3901 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Fsp: yyDollar[2].expr} } case 771: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:3899 +//line sql.y:3905 { yyVAL.expr = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].expr, Expr2: yyDollar[7].expr} } case 772: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:3903 +//line sql.y:3909 { yyVAL.expr = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].expr, Expr2: yyDollar[7].expr} } case 775: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3914 +//line sql.y:3920 { yyVAL.expr = yyDollar[2].expr } case 776: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3924 +//line sql.y:3930 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 777: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3928 +//line sql.y:3934 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 778: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3932 +//line sql.y:3938 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 779: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3936 +//line sql.y:3942 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 780: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3940 +//line sql.y:3946 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 781: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3944 +//line sql.y:3950 { yyVAL.expr = &FuncExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Exprs: yyDollar[3].selectExprs} } case 782: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3950 +//line sql.y:3956 { yyVAL.str = "" } case 783: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3954 +//line sql.y:3960 { yyVAL.str = BooleanModeStr } case 784: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3958 +//line sql.y:3964 { yyVAL.str = NaturalLanguageModeStr } case 785: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:3962 +//line sql.y:3968 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } case 786: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3966 +//line sql.y:3972 { yyVAL.str = QueryExpansionStr } case 787: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3972 +//line sql.y:3978 { yyVAL.str = string(yyDollar[1].bytes) } case 788: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3976 +//line sql.y:3982 { yyVAL.str = string(yyDollar[1].bytes) } case 789: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3982 +//line sql.y:3988 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 790: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3986 +//line sql.y:3992 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } case 791: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3990 +//line sql.y:3996 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal, Charset: string(yyDollar[3].bytes)} } case 792: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3994 +//line sql.y:4000 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 793: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3998 +//line sql.y:4004 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 794: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4002 +//line sql.y:4008 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length @@ -9626,447 +9686,447 @@ yydefault: } case 795: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4008 +//line sql.y:4014 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 796: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4012 +//line sql.y:4018 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 797: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4016 +//line sql.y:4022 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 798: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4020 +//line sql.y:4026 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 799: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4024 +//line sql.y:4030 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].sqlVal} } case 800: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4028 +//line sql.y:4034 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 801: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4032 +//line sql.y:4038 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 802: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4037 +//line sql.y:4043 { yyVAL.expr = nil } case 803: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4041 +//line sql.y:4047 { yyVAL.expr = yyDollar[1].expr } case 804: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4046 +//line sql.y:4052 { yyVAL.str = string("") } case 805: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4050 +//line sql.y:4056 { yyVAL.str = string(yyDollar[2].bytes) } case 806: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4056 +//line sql.y:4062 { yyVAL.whens = []*When{yyDollar[1].when} } case 807: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4060 +//line sql.y:4066 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } case 808: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4066 +//line sql.y:4072 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } case 809: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4071 +//line sql.y:4077 { yyVAL.expr = nil } case 810: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4075 +//line sql.y:4081 { yyVAL.expr = yyDollar[2].expr } case 811: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4081 +//line sql.y:4087 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 812: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4085 +//line sql.y:4091 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 813: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4089 +//line sql.y:4095 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 814: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4095 +//line sql.y:4101 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 815: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4099 +//line sql.y:4105 { yyVAL.expr = NewHexVal(yyDollar[1].bytes) } case 816: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4103 +//line sql.y:4109 { yyVAL.expr = NewBitVal(yyDollar[1].bytes) } case 817: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4107 +//line sql.y:4113 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 818: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4111 +//line sql.y:4117 { yyVAL.expr = NewFloatVal(yyDollar[1].bytes) } case 819: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4115 +//line sql.y:4121 { yyVAL.expr = NewHexNum(yyDollar[1].bytes) } case 820: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4119 +//line sql.y:4125 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 821: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4123 +//line sql.y:4129 { yyVAL.expr = &NullVal{} } case 822: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4129 +//line sql.y:4135 { yyVAL.expr = NewIntVal([]byte("1")) } case 823: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4133 +//line sql.y:4139 { yyVAL.expr = NewIntVal(yyDollar[1].bytes) } case 824: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4137 +//line sql.y:4143 { yyVAL.expr = NewValArg(yyDollar[1].bytes) } case 825: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4142 +//line sql.y:4148 { yyVAL.exprs = nil } case 826: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4146 +//line sql.y:4152 { yyVAL.exprs = yyDollar[3].exprs } case 827: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4152 +//line sql.y:4158 { yyVAL.exprs = Exprs{yyDollar[1].expr} } case 828: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4156 +//line sql.y:4162 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 829: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4162 +//line sql.y:4168 { yyVAL.expr = yyDollar[1].expr } case 830: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4166 +//line sql.y:4172 { yyVAL.expr = &ColName{Name: NewColIdent(string(yyDollar[1].bytes))} } case 831: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4171 +//line sql.y:4177 { yyVAL.expr = nil } case 832: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4175 +//line sql.y:4181 { yyVAL.expr = yyDollar[2].expr } case 833: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4181 +//line sql.y:4187 { yyVAL.expr = yyDollar[1].expr } case 834: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4185 +//line sql.y:4191 { yyVAL.expr = &ColName{Name: NewColIdent(string(yyDollar[1].bytes))} } case 835: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4190 +//line sql.y:4196 { yyVAL.orderBy = nil } case 836: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4194 +//line sql.y:4200 { yyVAL.orderBy = yyDollar[3].orderBy } case 837: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4200 +//line sql.y:4206 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } case 838: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4204 +//line sql.y:4210 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } case 839: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4210 +//line sql.y:4216 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } case 840: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4214 +//line sql.y:4220 { yyVAL.order = &Order{Expr: &ColName{Name: NewColIdent(string(yyDollar[1].bytes))}, Direction: yyDollar[2].str} } case 841: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4219 +//line sql.y:4225 { yyVAL.str = AscScr } case 842: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4223 +//line sql.y:4229 { yyVAL.str = AscScr } case 843: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4227 +//line sql.y:4233 { yyVAL.str = DescScr } case 844: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4232 +//line sql.y:4238 { yyVAL.limit = nil } case 845: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4236 +//line sql.y:4242 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } case 846: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4240 +//line sql.y:4246 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } case 847: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4244 +//line sql.y:4250 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } case 848: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4249 +//line sql.y:4255 { yyVAL.str = "" } case 849: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4253 +//line sql.y:4259 { yyVAL.str = ForUpdateStr } case 850: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4257 +//line sql.y:4263 { yyVAL.str = ShareModeStr } case 851: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4270 +//line sql.y:4276 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } case 852: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4274 +//line sql.y:4280 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } case 853: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4278 +//line sql.y:4284 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Rows: yyDollar[2].selStmt} } case 854: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4283 +//line sql.y:4289 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } case 855: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4287 +//line sql.y:4293 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } case 856: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:4291 +//line sql.y:4297 { // Drop the redundant parenthesis. yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].selStmt} } case 857: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4298 +//line sql.y:4304 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 858: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4302 +//line sql.y:4308 { yyVAL.columns = Columns{yyDollar[3].colIdent} } case 859: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4306 +//line sql.y:4312 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 860: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4310 +//line sql.y:4316 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } case 861: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4315 +//line sql.y:4321 { yyVAL.assignExprs = nil } case 862: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4319 +//line sql.y:4325 { yyVAL.assignExprs = yyDollar[5].assignExprs } case 863: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4325 +//line sql.y:4331 { yyVAL.values = Values{yyDollar[1].valTuple} } case 864: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4329 +//line sql.y:4335 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } case 865: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4335 +//line sql.y:4341 { yyVAL.valTuple = yyDollar[1].valTuple } case 866: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4339 +//line sql.y:4345 { yyVAL.valTuple = ValTuple{} } case 867: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4345 +//line sql.y:4351 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } case 868: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4351 +//line sql.y:4357 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = &ParenExpr{yyDollar[1].valTuple[0]} @@ -10076,37 +10136,37 @@ yydefault: } case 869: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4361 +//line sql.y:4367 { yyVAL.assignExprs = AssignmentExprs{yyDollar[1].assignExpr} } case 870: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4365 +//line sql.y:4371 { yyVAL.assignExprs = append(yyDollar[1].assignExprs, yyDollar[3].assignExpr) } case 871: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4371 +//line sql.y:4377 { yyVAL.assignExpr = &AssignmentExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } case 872: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4377 +//line sql.y:4383 { yyVAL.setVarExprs = SetVarExprs{yyDollar[1].setVarExpr} } case 873: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4381 +//line sql.y:4387 { yyVAL.setVarExprs = append(yyDollar[1].setVarExprs, yyDollar[3].setVarExpr) } case 874: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4387 +//line sql.y:4393 { colName, scope, err := VarScopeForColName(yyDollar[1].setVarExpr.Name) if err != nil { @@ -10119,7 +10179,7 @@ yydefault: } case 875: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4398 +//line sql.y:4404 { _, scope, err := VarScopeForColName(yyDollar[2].setVarExpr.Name) if err != nil { @@ -10134,7 +10194,7 @@ yydefault: } case 876: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4411 +//line sql.y:4417 { _, scope, err := VarScopeForColName(yyDollar[2].setVarExpr.Name) if err != nil { @@ -10149,442 +10209,454 @@ yydefault: } case 877: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4424 +//line sql.y:4430 { yyVAL.setVarExpr = &SetVarExpr{Name: NewColName(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr, Scope: SetScope_Session} } case 878: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4430 +//line sql.y:4436 { yyVAL.setScope = SetScope_Global } case 879: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4434 +//line sql.y:4440 { yyVAL.setScope = SetScope_Session } case 880: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4440 +//line sql.y:4446 { yyVAL.setScope = SetScope_Session } case 881: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4444 +//line sql.y:4450 { yyVAL.setScope = SetScope_Persist } case 882: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4448 +//line sql.y:4454 { yyVAL.setScope = SetScope_PersistOnly } case 883: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4454 +//line sql.y:4460 { yyVAL.setVarExpr = &SetVarExpr{Name: yyDollar[1].colName, Expr: NewStrVal(yyDollar[3].bytes), Scope: SetScope_None} } case 884: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4458 +//line sql.y:4464 { yyVAL.setVarExpr = &SetVarExpr{Name: yyDollar[1].colName, Expr: NewStrVal(yyDollar[3].bytes), Scope: SetScope_None} } case 885: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4462 +//line sql.y:4468 { yyVAL.setVarExpr = &SetVarExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr, Scope: SetScope_None} } case 887: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4469 +//line sql.y:4475 { yyVAL.bytes = []byte("charset") } case 889: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4476 +//line sql.y:4482 { yyVAL.expr = NewStrVal([]byte(yyDollar[1].colIdent.String())) } case 890: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4480 +//line sql.y:4486 { yyVAL.expr = NewStrVal(yyDollar[1].bytes) } case 891: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4484 +//line sql.y:4490 { yyVAL.expr = &Default{} } case 894: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4493 +//line sql.y:4499 { yyVAL.byt = 0 } case 895: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4495 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4501 { yyVAL.byt = 1 } case 896: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4498 +//line sql.y:4504 { yyVAL.byt = 0 } case 897: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4500 + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4506 { yyVAL.byt = 1 } case 898: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4503 +//line sql.y:4509 { - yyVAL.str = "" + yyVAL.byt = 0 } case 899: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4505 + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4511 { - yyVAL.str = IgnoreStr + yyVAL.byt = 1 } case 900: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4508 +//line sql.y:4514 { - yyVAL.sqlVal = nil + yyVAL.str = "" } case 901: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4510 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4516 { - yyVAL.sqlVal = NewIntVal(yyDollar[2].bytes) + yyVAL.str = IgnoreStr } case 902: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4514 + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4519 { - yyVAL.empty = struct{}{} + yyVAL.sqlVal = nil } case 903: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4516 + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4521 { - yyVAL.empty = struct{}{} + yyVAL.sqlVal = NewIntVal(yyDollar[2].bytes) } case 904: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4518 +//line sql.y:4525 { yyVAL.empty = struct{}{} } case 905: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4520 +//line sql.y:4527 { yyVAL.empty = struct{}{} } case 906: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4522 +//line sql.y:4529 { yyVAL.empty = struct{}{} } case 907: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4524 +//line sql.y:4531 { yyVAL.empty = struct{}{} } case 908: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4526 +//line sql.y:4533 { yyVAL.empty = struct{}{} } case 909: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4528 +//line sql.y:4535 { yyVAL.empty = struct{}{} } case 910: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4532 +//line sql.y:4537 { yyVAL.empty = struct{}{} } case 911: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4534 +//line sql.y:4539 { yyVAL.empty = struct{}{} } case 912: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4537 + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4543 { yyVAL.empty = struct{}{} } case 913: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4539 +//line sql.y:4545 { yyVAL.empty = struct{}{} } case 914: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4541 + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4548 { yyVAL.empty = struct{}{} } case 915: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4545 +//line sql.y:4550 { - yyVAL.str = UniqueStr + yyVAL.empty = struct{}{} } case 916: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4547 +//line sql.y:4552 { - yyVAL.str = FulltextStr + yyVAL.empty = struct{}{} } case 917: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4549 +//line sql.y:4556 { - yyVAL.str = SpatialStr + yyVAL.str = UniqueStr } case 918: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4558 + { + yyVAL.str = FulltextStr + } + case 919: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4560 + { + yyVAL.str = SpatialStr + } + case 920: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4552 +//line sql.y:4563 { yyVAL.str = "" } - case 919: + case 921: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4554 +//line sql.y:4565 { yyVAL.str = yyDollar[1].str } - case 920: + case 922: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4557 +//line sql.y:4568 { yyVAL.colIdent = ColIdent{} } - case 921: + case 923: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4559 +//line sql.y:4570 { yyVAL.colIdent = yyDollar[2].colIdent } - case 922: + case 924: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4563 +//line sql.y:4574 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 923: + case 925: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4567 +//line sql.y:4578 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 924: + case 926: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4573 +//line sql.y:4584 { yyVAL.colIdents = []ColIdent{yyDollar[1].colIdent} } - case 925: + case 927: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4577 +//line sql.y:4588 { yyVAL.colIdents = append(yyVAL.colIdents, yyDollar[3].colIdent) } - case 927: + case 929: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4584 +//line sql.y:4595 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } - case 928: + case 930: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4590 +//line sql.y:4601 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 929: + case 931: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4594 +//line sql.y:4605 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 931: + case 933: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4601 +//line sql.y:4612 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } - case 932: + case 934: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4606 +//line sql.y:4617 { yyVAL.str = string("") } - case 933: + case 935: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4608 +//line sql.y:4619 { yyVAL.str = string(yyDollar[2].bytes) } - case 934: + case 936: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4611 +//line sql.y:4622 { yyVAL.boolVal = BoolVal(false) } - case 935: + case 937: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4613 +//line sql.y:4624 { yyVAL.boolVal = BoolVal(true) } - case 936: + case 938: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4616 +//line sql.y:4627 { yyVAL.EnclosedBy = nil } - case 937: + case 939: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4620 +//line sql.y:4631 { yyVAL.EnclosedBy = &EnclosedBy{Optionally: yyDollar[1].boolVal, Delim: NewStrVal(yyDollar[4].bytes)} } - case 938: + case 940: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4625 +//line sql.y:4636 { yyVAL.boolVal = BoolVal(false) } - case 939: + case 941: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4629 +//line sql.y:4640 { yyVAL.boolVal = BoolVal(true) } - case 940: + case 942: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4634 +//line sql.y:4645 { yyVAL.sqlVal = nil } - case 941: + case 943: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4638 +//line sql.y:4649 { yyVAL.sqlVal = NewStrVal(yyDollar[3].bytes) } - case 942: + case 944: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4643 +//line sql.y:4654 { yyVAL.sqlVal = nil } - case 943: + case 945: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4647 +//line sql.y:4658 { yyVAL.sqlVal = NewStrVal(yyDollar[3].bytes) } - case 944: + case 946: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4652 +//line sql.y:4663 { yyVAL.Fields = nil } - case 945: + case 947: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4656 +//line sql.y:4667 { yyVAL.Fields = &Fields{TerminatedBy: yyDollar[2].sqlVal, EnclosedBy: yyDollar[3].EnclosedBy, EscapedBy: yyDollar[4].sqlVal} } - case 946: + case 948: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4661 +//line sql.y:4672 { yyVAL.Lines = nil } - case 947: + case 949: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4665 +//line sql.y:4676 { yyVAL.Lines = &Lines{StartingBy: yyDollar[2].sqlVal, TerminatedBy: yyDollar[3].sqlVal} } - case 948: + case 950: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4670 +//line sql.y:4681 { yyVAL.sqlVal = nil } - case 949: + case 951: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4674 +//line sql.y:4685 { yyVAL.sqlVal = NewStrVal(yyDollar[3].bytes) } - case 1322: + case 1325: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5076 +//line sql.y:5088 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1323: + case 1326: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5085 +//line sql.y:5097 { decNesting(yylex) } - case 1324: + case 1327: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5090 +//line sql.y:5102 { skipToEnd(yylex) } - case 1325: + case 1328: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5095 +//line sql.y:5107 { skipToEnd(yylex) } - case 1326: + case 1329: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5099 +//line sql.y:5111 { skipToEnd(yylex) } - case 1327: + case 1330: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5103 +//line sql.y:5115 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 44db215814d..b4fc7dc1ccf 100755 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -204,7 +204,7 @@ func skipToEnd(yylex interface{}) { %token STATUS VARIABLES WARNINGS %token SEQUENCE %token EACH ROW BEFORE FOLLOWS PRECEDES DEFINER INVOKER -%token INOUT OUT DETERMINISTIC CONTAINS READS MODIFIES SQL SECURITY +%token INOUT OUT DETERMINISTIC CONTAINS READS MODIFIES SQL SECURITY TEMPORARY // SIGNAL Tokens %token CLASS_ORIGIN SUBCLASS_ORIGIN MESSAGE_TEXT MYSQL_ERRNO CONSTRAINT_CATALOG CONSTRAINT_SCHEMA @@ -347,7 +347,7 @@ func skipToEnd(yylex interface{}) { %type ignore_opt default_opt %type full_opt from_database_opt tables_or_processlist columns_or_fields %type like_or_where_opt -%type exists_opt not_exists_opt sql_calc_found_rows_opt +%type exists_opt not_exists_opt sql_calc_found_rows_opt temp_opt %type key_type key_type_opt %type non_add_drop_or_rename_operation %type to_opt to_or_as as_opt column_opt describe @@ -1273,13 +1273,19 @@ statement_list_statement: | begin_end_block create_table_prefix: - CREATE TABLE not_exists_opt table_name + CREATE temp_opt TABLE not_exists_opt table_name { var ne bool - if $3 != 0 { + if $4 != 0 { ne = true } - $$ = &DDL{Action: CreateStr, Table: $4, IfNotExists: ne} + + var neTemp bool + if $2 != 0 { + neTemp = true + } + + $$ = &DDL{Action: CreateStr, Table: $5, IfNotExists: ne, Temporary: neTemp} setDDL(yylex, $$) } @@ -4489,6 +4495,11 @@ for_from: FOR | FROM +temp_opt: + { $$ = 0 } +| TEMPORARY + { $$ = 1 } + exists_opt: { $$ = 0 } | IF EXISTS @@ -5008,6 +5019,7 @@ non_reserved_keyword: | SUBCLASS_ORIGIN | TABLES | TABLE_NAME +| TEMPORARY | TEXT | THAN | THREAD_PRIORITY diff --git a/go/vt/sqlparser/token.go b/go/vt/sqlparser/token.go index 1e8eea7970e..d31f10859aa 100644 --- a/go/vt/sqlparser/token.go +++ b/go/vt/sqlparser/token.go @@ -422,6 +422,7 @@ var keywords = map[string]int{ "table_name": TABLE_NAME, "tables": TABLES, "terminated": TERMINATED, + "temporary": TEMPORARY, "text": TEXT, "than": THAN, "then": THEN,