From 37ed5e0493b7235e3ab3000da0da956bb7060cde Mon Sep 17 00:00:00 2001 From: Thirumalai-Shaktivel Date: Thu, 26 Aug 2021 18:06:01 +0530 Subject: [PATCH 01/11] Initial partition implementation Signed-off-by: Thirumalai-Shaktivel --- go/vt/sqlparser/ast.go | 31 + go/vt/sqlparser/keywords.go | 6 +- go/vt/sqlparser/parse_test.go | 3 + go/vt/sqlparser/sql.go | 12994 -------------------------------- go/vt/sqlparser/sql.y | 128 +- 5 files changed, 163 insertions(+), 12999 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index fb258916034..737402fb546 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -471,6 +471,7 @@ type ( OptLike *OptLike Comments Comments FullyParsed bool + PartitionOption *PartitionOption } // CreateView represents a CREATE VIEW query @@ -1471,6 +1472,36 @@ type PartitionDefinition struct { Maxvalue bool } +// PartitionOptions describes partitioning control (for create table statements) +type PartitionOption struct { + Linear string + HASH colIdent + isKEY bool + KeyAlgorithm string + KeyColList columns + RANGE_or_LIST string + Expr_or_Col ExprOrColumns + Expr expr + Partitions string + SubPartition *SubPartition + Definitions []*PartitionDefinition +} + +type ExprOrColumns struct { + Expr expr + ColumnList columns +} + +type SubPartition struct { + Linear string + HASH colIdent + isKEY bool + KeyAlgorithm KeyAlgorithm + KeyColList columns + Expr expr + SubPartitions string +} + // TableOptions specifies a list of table options type TableOptions []*TableOption diff --git a/go/vt/sqlparser/keywords.go b/go/vt/sqlparser/keywords.go index 9ee92336828..248f1e39a99 100644 --- a/go/vt/sqlparser/keywords.go +++ b/go/vt/sqlparser/keywords.go @@ -137,6 +137,8 @@ var keywords = []keyword{ {"convert", CONVERT}, {"copy", COPY}, {"cume_dist", UNUSED}, + {"subpartition", SUBPARTITION}, + {"subpartitions", SUBPARTITIONS}, {"substr", SUBSTR}, {"substring", SUBSTRING}, {"create", CREATE}, @@ -291,9 +293,10 @@ var keywords = []keyword{ {"level", LEVEL}, {"like", LIKE}, {"limit", LIMIT}, - {"linear", UNUSED}, + {"linear", LINEAR}, {"lines", LINES}, {"linestring", LINESTRING}, + {"list", LIST}, {"load", LOAD}, {"local", LOCAL}, {"localtime", LOCALTIME}, @@ -359,6 +362,7 @@ var keywords = []keyword{ {"pack_keys", PACK_KEYS}, {"parser", PARSER}, {"partition", PARTITION}, + {"partitions", PARTITIONS}, {"partitioning", PARTITIONING}, {"password", PASSWORD}, {"percent_rank", UNUSED}, diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 474487cc56d..440cb28ebf4 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1240,6 +1240,9 @@ var ( }, { // Tests unicode character § input: "create table invalid_enum_value_name (\n\there_be_enum enum('$§!') default null\n)", + }, { + input: "create table t (id int) partition by key (id) partitions 2", + output: "create table t (\n\tid int\n)", }, { input: "alter vschema create vindex hash_vdx using hash", }, { diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 29bf48af0b1..fdb15ddbfe3 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -44,12997 +44,3 @@ func skipToEnd(yylex yyLexer) { func bindVariable(yylex yyLexer, bvar string) { yylex.(*Tokenizer).BindVars[bvar] = struct{}{} } - -const LEX_ERROR = 57346 -const UNION = 57347 -const SELECT = 57348 -const STREAM = 57349 -const VSTREAM = 57350 -const INSERT = 57351 -const UPDATE = 57352 -const DELETE = 57353 -const FROM = 57354 -const WHERE = 57355 -const GROUP = 57356 -const HAVING = 57357 -const ORDER = 57358 -const BY = 57359 -const LIMIT = 57360 -const OFFSET = 57361 -const FOR = 57362 -const ALL = 57363 -const DISTINCT = 57364 -const AS = 57365 -const EXISTS = 57366 -const ASC = 57367 -const DESC = 57368 -const INTO = 57369 -const DUPLICATE = 57370 -const DEFAULT = 57371 -const SET = 57372 -const LOCK = 57373 -const UNLOCK = 57374 -const KEYS = 57375 -const DO = 57376 -const CALL = 57377 -const DISTINCTROW = 57378 -const PARSER = 57379 -const GENERATED = 57380 -const ALWAYS = 57381 -const OUTFILE = 57382 -const S3 = 57383 -const DATA = 57384 -const LOAD = 57385 -const LINES = 57386 -const TERMINATED = 57387 -const ESCAPED = 57388 -const ENCLOSED = 57389 -const DUMPFILE = 57390 -const CSV = 57391 -const HEADER = 57392 -const MANIFEST = 57393 -const OVERWRITE = 57394 -const STARTING = 57395 -const OPTIONALLY = 57396 -const VALUES = 57397 -const LAST_INSERT_ID = 57398 -const NEXT = 57399 -const VALUE = 57400 -const SHARE = 57401 -const MODE = 57402 -const SQL_NO_CACHE = 57403 -const SQL_CACHE = 57404 -const SQL_CALC_FOUND_ROWS = 57405 -const JOIN = 57406 -const STRAIGHT_JOIN = 57407 -const LEFT = 57408 -const RIGHT = 57409 -const INNER = 57410 -const OUTER = 57411 -const CROSS = 57412 -const NATURAL = 57413 -const USE = 57414 -const FORCE = 57415 -const ON = 57416 -const USING = 57417 -const INPLACE = 57418 -const COPY = 57419 -const ALGORITHM = 57420 -const NONE = 57421 -const SHARED = 57422 -const EXCLUSIVE = 57423 -const ID = 57424 -const AT_ID = 57425 -const AT_AT_ID = 57426 -const HEX = 57427 -const STRING = 57428 -const INTEGRAL = 57429 -const FLOAT = 57430 -const HEXNUM = 57431 -const VALUE_ARG = 57432 -const LIST_ARG = 57433 -const COMMENT = 57434 -const COMMENT_KEYWORD = 57435 -const BIT_LITERAL = 57436 -const COMPRESSION = 57437 -const NULL = 57438 -const TRUE = 57439 -const FALSE = 57440 -const OFF = 57441 -const DISCARD = 57442 -const IMPORT = 57443 -const ENABLE = 57444 -const DISABLE = 57445 -const TABLESPACE = 57446 -const VIRTUAL = 57447 -const STORED = 57448 -const LOWER_THAN_CHARSET = 57449 -const CHARSET = 57450 -const UNIQUE = 57451 -const KEY = 57452 -const OR = 57453 -const XOR = 57454 -const AND = 57455 -const NOT = 57456 -const BETWEEN = 57457 -const CASE = 57458 -const WHEN = 57459 -const THEN = 57460 -const ELSE = 57461 -const END = 57462 -const LE = 57463 -const GE = 57464 -const NE = 57465 -const NULL_SAFE_EQUAL = 57466 -const IS = 57467 -const LIKE = 57468 -const REGEXP = 57469 -const IN = 57470 -const SHIFT_LEFT = 57471 -const SHIFT_RIGHT = 57472 -const DIV = 57473 -const MOD = 57474 -const UNARY = 57475 -const COLLATE = 57476 -const BINARY = 57477 -const UNDERSCORE_BINARY = 57478 -const UNDERSCORE_UTF8MB4 = 57479 -const UNDERSCORE_UTF8 = 57480 -const UNDERSCORE_LATIN1 = 57481 -const INTERVAL = 57482 -const JSON_EXTRACT_OP = 57483 -const JSON_UNQUOTE_EXTRACT_OP = 57484 -const CREATE = 57485 -const ALTER = 57486 -const DROP = 57487 -const RENAME = 57488 -const ANALYZE = 57489 -const ADD = 57490 -const FLUSH = 57491 -const CHANGE = 57492 -const MODIFY = 57493 -const REVERT = 57494 -const SCHEMA = 57495 -const TABLE = 57496 -const INDEX = 57497 -const VIEW = 57498 -const TO = 57499 -const IGNORE = 57500 -const IF = 57501 -const PRIMARY = 57502 -const COLUMN = 57503 -const SPATIAL = 57504 -const FULLTEXT = 57505 -const KEY_BLOCK_SIZE = 57506 -const CHECK = 57507 -const INDEXES = 57508 -const ACTION = 57509 -const CASCADE = 57510 -const CONSTRAINT = 57511 -const FOREIGN = 57512 -const NO = 57513 -const REFERENCES = 57514 -const RESTRICT = 57515 -const SHOW = 57516 -const DESCRIBE = 57517 -const EXPLAIN = 57518 -const DATE = 57519 -const ESCAPE = 57520 -const REPAIR = 57521 -const OPTIMIZE = 57522 -const TRUNCATE = 57523 -const COALESCE = 57524 -const EXCHANGE = 57525 -const REBUILD = 57526 -const PARTITIONING = 57527 -const REMOVE = 57528 -const MAXVALUE = 57529 -const PARTITION = 57530 -const REORGANIZE = 57531 -const LESS = 57532 -const THAN = 57533 -const PROCEDURE = 57534 -const TRIGGER = 57535 -const VINDEX = 57536 -const VINDEXES = 57537 -const DIRECTORY = 57538 -const NAME = 57539 -const UPGRADE = 57540 -const STATUS = 57541 -const VARIABLES = 57542 -const WARNINGS = 57543 -const CASCADED = 57544 -const DEFINER = 57545 -const OPTION = 57546 -const SQL = 57547 -const UNDEFINED = 57548 -const SEQUENCE = 57549 -const MERGE = 57550 -const TEMPORARY = 57551 -const TEMPTABLE = 57552 -const INVOKER = 57553 -const SECURITY = 57554 -const FIRST = 57555 -const AFTER = 57556 -const LAST = 57557 -const VITESS_MIGRATION = 57558 -const CANCEL = 57559 -const RETRY = 57560 -const COMPLETE = 57561 -const BEGIN = 57562 -const START = 57563 -const TRANSACTION = 57564 -const COMMIT = 57565 -const ROLLBACK = 57566 -const SAVEPOINT = 57567 -const RELEASE = 57568 -const WORK = 57569 -const BIT = 57570 -const TINYINT = 57571 -const SMALLINT = 57572 -const MEDIUMINT = 57573 -const INT = 57574 -const INTEGER = 57575 -const BIGINT = 57576 -const INTNUM = 57577 -const REAL = 57578 -const DOUBLE = 57579 -const FLOAT_TYPE = 57580 -const DECIMAL = 57581 -const NUMERIC = 57582 -const TIME = 57583 -const TIMESTAMP = 57584 -const DATETIME = 57585 -const YEAR = 57586 -const CHAR = 57587 -const VARCHAR = 57588 -const BOOL = 57589 -const CHARACTER = 57590 -const VARBINARY = 57591 -const NCHAR = 57592 -const TEXT = 57593 -const TINYTEXT = 57594 -const MEDIUMTEXT = 57595 -const LONGTEXT = 57596 -const BLOB = 57597 -const TINYBLOB = 57598 -const MEDIUMBLOB = 57599 -const LONGBLOB = 57600 -const JSON = 57601 -const ENUM = 57602 -const GEOMETRY = 57603 -const POINT = 57604 -const LINESTRING = 57605 -const POLYGON = 57606 -const GEOMETRYCOLLECTION = 57607 -const MULTIPOINT = 57608 -const MULTILINESTRING = 57609 -const MULTIPOLYGON = 57610 -const NULLX = 57611 -const AUTO_INCREMENT = 57612 -const APPROXNUM = 57613 -const SIGNED = 57614 -const UNSIGNED = 57615 -const ZEROFILL = 57616 -const CODE = 57617 -const COLLATION = 57618 -const COLUMNS = 57619 -const DATABASES = 57620 -const ENGINES = 57621 -const EVENT = 57622 -const EXTENDED = 57623 -const FIELDS = 57624 -const FULL = 57625 -const FUNCTION = 57626 -const GTID_EXECUTED = 57627 -const KEYSPACES = 57628 -const OPEN = 57629 -const PLUGINS = 57630 -const PRIVILEGES = 57631 -const PROCESSLIST = 57632 -const SCHEMAS = 57633 -const TABLES = 57634 -const TRIGGERS = 57635 -const USER = 57636 -const VGTID_EXECUTED = 57637 -const VITESS_KEYSPACES = 57638 -const VITESS_METADATA = 57639 -const VITESS_MIGRATIONS = 57640 -const VITESS_SHARDS = 57641 -const VITESS_TABLETS = 57642 -const VSCHEMA = 57643 -const NAMES = 57644 -const GLOBAL = 57645 -const SESSION = 57646 -const ISOLATION = 57647 -const LEVEL = 57648 -const READ = 57649 -const WRITE = 57650 -const ONLY = 57651 -const REPEATABLE = 57652 -const COMMITTED = 57653 -const UNCOMMITTED = 57654 -const SERIALIZABLE = 57655 -const CURRENT_TIMESTAMP = 57656 -const DATABASE = 57657 -const CURRENT_DATE = 57658 -const CURRENT_TIME = 57659 -const LOCALTIME = 57660 -const LOCALTIMESTAMP = 57661 -const CURRENT_USER = 57662 -const UTC_DATE = 57663 -const UTC_TIME = 57664 -const UTC_TIMESTAMP = 57665 -const REPLACE = 57666 -const CONVERT = 57667 -const CAST = 57668 -const SUBSTR = 57669 -const SUBSTRING = 57670 -const GROUP_CONCAT = 57671 -const SEPARATOR = 57672 -const TIMESTAMPADD = 57673 -const TIMESTAMPDIFF = 57674 -const MATCH = 57675 -const AGAINST = 57676 -const BOOLEAN = 57677 -const LANGUAGE = 57678 -const WITH = 57679 -const QUERY = 57680 -const EXPANSION = 57681 -const WITHOUT = 57682 -const VALIDATION = 57683 -const UNUSED = 57684 -const ARRAY = 57685 -const CUME_DIST = 57686 -const DESCRIPTION = 57687 -const DENSE_RANK = 57688 -const EMPTY = 57689 -const EXCEPT = 57690 -const FIRST_VALUE = 57691 -const GROUPING = 57692 -const GROUPS = 57693 -const JSON_TABLE = 57694 -const LAG = 57695 -const LAST_VALUE = 57696 -const LATERAL = 57697 -const LEAD = 57698 -const MEMBER = 57699 -const NTH_VALUE = 57700 -const NTILE = 57701 -const OF = 57702 -const OVER = 57703 -const PERCENT_RANK = 57704 -const RANK = 57705 -const RECURSIVE = 57706 -const ROW_NUMBER = 57707 -const SYSTEM = 57708 -const WINDOW = 57709 -const ACTIVE = 57710 -const ADMIN = 57711 -const BUCKETS = 57712 -const CLONE = 57713 -const COMPONENT = 57714 -const DEFINITION = 57715 -const ENFORCED = 57716 -const EXCLUDE = 57717 -const FOLLOWING = 57718 -const GEOMCOLLECTION = 57719 -const GET_MASTER_PUBLIC_KEY = 57720 -const HISTOGRAM = 57721 -const HISTORY = 57722 -const INACTIVE = 57723 -const INVISIBLE = 57724 -const LOCKED = 57725 -const MASTER_COMPRESSION_ALGORITHMS = 57726 -const MASTER_PUBLIC_KEY_PATH = 57727 -const MASTER_TLS_CIPHERSUITES = 57728 -const MASTER_ZSTD_COMPRESSION_LEVEL = 57729 -const NESTED = 57730 -const NETWORK_NAMESPACE = 57731 -const NOWAIT = 57732 -const NULLS = 57733 -const OJ = 57734 -const OLD = 57735 -const OPTIONAL = 57736 -const ORDINALITY = 57737 -const ORGANIZATION = 57738 -const OTHERS = 57739 -const PATH = 57740 -const PERSIST = 57741 -const PERSIST_ONLY = 57742 -const PRECEDING = 57743 -const PRIVILEGE_CHECKS_USER = 57744 -const PROCESS = 57745 -const RANDOM = 57746 -const REFERENCE = 57747 -const REQUIRE_ROW_FORMAT = 57748 -const RESOURCE = 57749 -const RESPECT = 57750 -const RESTART = 57751 -const RETAIN = 57752 -const REUSE = 57753 -const ROLE = 57754 -const SECONDARY = 57755 -const SECONDARY_ENGINE = 57756 -const SECONDARY_LOAD = 57757 -const SECONDARY_UNLOAD = 57758 -const SKIP = 57759 -const SRID = 57760 -const THREAD_PRIORITY = 57761 -const TIES = 57762 -const UNBOUNDED = 57763 -const VCPU = 57764 -const VISIBLE = 57765 -const FORMAT = 57766 -const TREE = 57767 -const VITESS = 57768 -const TRADITIONAL = 57769 -const LOCAL = 57770 -const LOW_PRIORITY = 57771 -const NO_WRITE_TO_BINLOG = 57772 -const LOGS = 57773 -const ERROR = 57774 -const GENERAL = 57775 -const HOSTS = 57776 -const OPTIMIZER_COSTS = 57777 -const USER_RESOURCES = 57778 -const SLOW = 57779 -const CHANNEL = 57780 -const RELAY = 57781 -const EXPORT = 57782 -const AVG_ROW_LENGTH = 57783 -const CONNECTION = 57784 -const CHECKSUM = 57785 -const DELAY_KEY_WRITE = 57786 -const ENCRYPTION = 57787 -const ENGINE = 57788 -const INSERT_METHOD = 57789 -const MAX_ROWS = 57790 -const MIN_ROWS = 57791 -const PACK_KEYS = 57792 -const PASSWORD = 57793 -const FIXED = 57794 -const DYNAMIC = 57795 -const COMPRESSED = 57796 -const REDUNDANT = 57797 -const COMPACT = 57798 -const ROW_FORMAT = 57799 -const STATS_AUTO_RECALC = 57800 -const STATS_PERSISTENT = 57801 -const STATS_SAMPLE_PAGES = 57802 -const STORAGE = 57803 -const MEMORY = 57804 -const DISK = 57805 - -var yyToknames = [...]string{ - "$end", - "error", - "$unk", - "LEX_ERROR", - "UNION", - "SELECT", - "STREAM", - "VSTREAM", - "INSERT", - "UPDATE", - "DELETE", - "FROM", - "WHERE", - "GROUP", - "HAVING", - "ORDER", - "BY", - "LIMIT", - "OFFSET", - "FOR", - "ALL", - "DISTINCT", - "AS", - "EXISTS", - "ASC", - "DESC", - "INTO", - "DUPLICATE", - "DEFAULT", - "SET", - "LOCK", - "UNLOCK", - "KEYS", - "DO", - "CALL", - "DISTINCTROW", - "PARSER", - "GENERATED", - "ALWAYS", - "OUTFILE", - "S3", - "DATA", - "LOAD", - "LINES", - "TERMINATED", - "ESCAPED", - "ENCLOSED", - "DUMPFILE", - "CSV", - "HEADER", - "MANIFEST", - "OVERWRITE", - "STARTING", - "OPTIONALLY", - "VALUES", - "LAST_INSERT_ID", - "NEXT", - "VALUE", - "SHARE", - "MODE", - "SQL_NO_CACHE", - "SQL_CACHE", - "SQL_CALC_FOUND_ROWS", - "JOIN", - "STRAIGHT_JOIN", - "LEFT", - "RIGHT", - "INNER", - "OUTER", - "CROSS", - "NATURAL", - "USE", - "FORCE", - "ON", - "USING", - "INPLACE", - "COPY", - "ALGORITHM", - "NONE", - "SHARED", - "EXCLUSIVE", - "'('", - "','", - "')'", - "ID", - "AT_ID", - "AT_AT_ID", - "HEX", - "STRING", - "INTEGRAL", - "FLOAT", - "HEXNUM", - "VALUE_ARG", - "LIST_ARG", - "COMMENT", - "COMMENT_KEYWORD", - "BIT_LITERAL", - "COMPRESSION", - "NULL", - "TRUE", - "FALSE", - "OFF", - "DISCARD", - "IMPORT", - "ENABLE", - "DISABLE", - "TABLESPACE", - "VIRTUAL", - "STORED", - "LOWER_THAN_CHARSET", - "CHARSET", - "UNIQUE", - "KEY", - "OR", - "XOR", - "AND", - "NOT", - "'!'", - "BETWEEN", - "CASE", - "WHEN", - "THEN", - "ELSE", - "END", - "'='", - "'<'", - "'>'", - "LE", - "GE", - "NE", - "NULL_SAFE_EQUAL", - "IS", - "LIKE", - "REGEXP", - "IN", - "'|'", - "'&'", - "SHIFT_LEFT", - "SHIFT_RIGHT", - "'+'", - "'-'", - "'*'", - "'/'", - "DIV", - "'%'", - "MOD", - "'^'", - "'~'", - "UNARY", - "COLLATE", - "BINARY", - "UNDERSCORE_BINARY", - "UNDERSCORE_UTF8MB4", - "UNDERSCORE_UTF8", - "UNDERSCORE_LATIN1", - "INTERVAL", - "'.'", - "JSON_EXTRACT_OP", - "JSON_UNQUOTE_EXTRACT_OP", - "CREATE", - "ALTER", - "DROP", - "RENAME", - "ANALYZE", - "ADD", - "FLUSH", - "CHANGE", - "MODIFY", - "REVERT", - "SCHEMA", - "TABLE", - "INDEX", - "VIEW", - "TO", - "IGNORE", - "IF", - "PRIMARY", - "COLUMN", - "SPATIAL", - "FULLTEXT", - "KEY_BLOCK_SIZE", - "CHECK", - "INDEXES", - "ACTION", - "CASCADE", - "CONSTRAINT", - "FOREIGN", - "NO", - "REFERENCES", - "RESTRICT", - "SHOW", - "DESCRIBE", - "EXPLAIN", - "DATE", - "ESCAPE", - "REPAIR", - "OPTIMIZE", - "TRUNCATE", - "COALESCE", - "EXCHANGE", - "REBUILD", - "PARTITIONING", - "REMOVE", - "MAXVALUE", - "PARTITION", - "REORGANIZE", - "LESS", - "THAN", - "PROCEDURE", - "TRIGGER", - "VINDEX", - "VINDEXES", - "DIRECTORY", - "NAME", - "UPGRADE", - "STATUS", - "VARIABLES", - "WARNINGS", - "CASCADED", - "DEFINER", - "OPTION", - "SQL", - "UNDEFINED", - "SEQUENCE", - "MERGE", - "TEMPORARY", - "TEMPTABLE", - "INVOKER", - "SECURITY", - "FIRST", - "AFTER", - "LAST", - "VITESS_MIGRATION", - "CANCEL", - "RETRY", - "COMPLETE", - "BEGIN", - "START", - "TRANSACTION", - "COMMIT", - "ROLLBACK", - "SAVEPOINT", - "RELEASE", - "WORK", - "BIT", - "TINYINT", - "SMALLINT", - "MEDIUMINT", - "INT", - "INTEGER", - "BIGINT", - "INTNUM", - "REAL", - "DOUBLE", - "FLOAT_TYPE", - "DECIMAL", - "NUMERIC", - "TIME", - "TIMESTAMP", - "DATETIME", - "YEAR", - "CHAR", - "VARCHAR", - "BOOL", - "CHARACTER", - "VARBINARY", - "NCHAR", - "TEXT", - "TINYTEXT", - "MEDIUMTEXT", - "LONGTEXT", - "BLOB", - "TINYBLOB", - "MEDIUMBLOB", - "LONGBLOB", - "JSON", - "ENUM", - "GEOMETRY", - "POINT", - "LINESTRING", - "POLYGON", - "GEOMETRYCOLLECTION", - "MULTIPOINT", - "MULTILINESTRING", - "MULTIPOLYGON", - "NULLX", - "AUTO_INCREMENT", - "APPROXNUM", - "SIGNED", - "UNSIGNED", - "ZEROFILL", - "CODE", - "COLLATION", - "COLUMNS", - "DATABASES", - "ENGINES", - "EVENT", - "EXTENDED", - "FIELDS", - "FULL", - "FUNCTION", - "GTID_EXECUTED", - "KEYSPACES", - "OPEN", - "PLUGINS", - "PRIVILEGES", - "PROCESSLIST", - "SCHEMAS", - "TABLES", - "TRIGGERS", - "USER", - "VGTID_EXECUTED", - "VITESS_KEYSPACES", - "VITESS_METADATA", - "VITESS_MIGRATIONS", - "VITESS_SHARDS", - "VITESS_TABLETS", - "VSCHEMA", - "NAMES", - "GLOBAL", - "SESSION", - "ISOLATION", - "LEVEL", - "READ", - "WRITE", - "ONLY", - "REPEATABLE", - "COMMITTED", - "UNCOMMITTED", - "SERIALIZABLE", - "CURRENT_TIMESTAMP", - "DATABASE", - "CURRENT_DATE", - "CURRENT_TIME", - "LOCALTIME", - "LOCALTIMESTAMP", - "CURRENT_USER", - "UTC_DATE", - "UTC_TIME", - "UTC_TIMESTAMP", - "REPLACE", - "CONVERT", - "CAST", - "SUBSTR", - "SUBSTRING", - "GROUP_CONCAT", - "SEPARATOR", - "TIMESTAMPADD", - "TIMESTAMPDIFF", - "MATCH", - "AGAINST", - "BOOLEAN", - "LANGUAGE", - "WITH", - "QUERY", - "EXPANSION", - "WITHOUT", - "VALIDATION", - "UNUSED", - "ARRAY", - "CUME_DIST", - "DESCRIPTION", - "DENSE_RANK", - "EMPTY", - "EXCEPT", - "FIRST_VALUE", - "GROUPING", - "GROUPS", - "JSON_TABLE", - "LAG", - "LAST_VALUE", - "LATERAL", - "LEAD", - "MEMBER", - "NTH_VALUE", - "NTILE", - "OF", - "OVER", - "PERCENT_RANK", - "RANK", - "RECURSIVE", - "ROW_NUMBER", - "SYSTEM", - "WINDOW", - "ACTIVE", - "ADMIN", - "BUCKETS", - "CLONE", - "COMPONENT", - "DEFINITION", - "ENFORCED", - "EXCLUDE", - "FOLLOWING", - "GEOMCOLLECTION", - "GET_MASTER_PUBLIC_KEY", - "HISTOGRAM", - "HISTORY", - "INACTIVE", - "INVISIBLE", - "LOCKED", - "MASTER_COMPRESSION_ALGORITHMS", - "MASTER_PUBLIC_KEY_PATH", - "MASTER_TLS_CIPHERSUITES", - "MASTER_ZSTD_COMPRESSION_LEVEL", - "NESTED", - "NETWORK_NAMESPACE", - "NOWAIT", - "NULLS", - "OJ", - "OLD", - "OPTIONAL", - "ORDINALITY", - "ORGANIZATION", - "OTHERS", - "PATH", - "PERSIST", - "PERSIST_ONLY", - "PRECEDING", - "PRIVILEGE_CHECKS_USER", - "PROCESS", - "RANDOM", - "REFERENCE", - "REQUIRE_ROW_FORMAT", - "RESOURCE", - "RESPECT", - "RESTART", - "RETAIN", - "REUSE", - "ROLE", - "SECONDARY", - "SECONDARY_ENGINE", - "SECONDARY_LOAD", - "SECONDARY_UNLOAD", - "SKIP", - "SRID", - "THREAD_PRIORITY", - "TIES", - "UNBOUNDED", - "VCPU", - "VISIBLE", - "FORMAT", - "TREE", - "VITESS", - "TRADITIONAL", - "LOCAL", - "LOW_PRIORITY", - "NO_WRITE_TO_BINLOG", - "LOGS", - "ERROR", - "GENERAL", - "HOSTS", - "OPTIMIZER_COSTS", - "USER_RESOURCES", - "SLOW", - "CHANNEL", - "RELAY", - "EXPORT", - "AVG_ROW_LENGTH", - "CONNECTION", - "CHECKSUM", - "DELAY_KEY_WRITE", - "ENCRYPTION", - "ENGINE", - "INSERT_METHOD", - "MAX_ROWS", - "MIN_ROWS", - "PACK_KEYS", - "PASSWORD", - "FIXED", - "DYNAMIC", - "COMPRESSED", - "REDUNDANT", - "COMPACT", - "ROW_FORMAT", - "STATS_AUTO_RECALC", - "STATS_PERSISTENT", - "STATS_SAMPLE_PAGES", - "STORAGE", - "MEMORY", - "DISK", - "';'", -} - -var yyStatenames = [...]string{} - -const yyEofCode = 1 -const yyErrCode = 2 -const yyInitialStackSize = 16 - -//line yacctab:1 -var yyExca = [...]int{ - -1, 1, - 1, -1, - -2, 0, - -1, 45, - 1, 112, - 481, 112, - -2, 118, - -1, 46, - 111, 118, - 150, 118, - 265, 118, - -2, 341, - -1, 53, - 33, 490, - 172, 490, - 183, 490, - 216, 504, - 217, 504, - -2, 492, - -1, 58, - 174, 514, - -2, 512, - -1, 84, - 57, 582, - -2, 590, - -1, 97, - 171, 956, - -2, 91, - -1, 99, - 1, 113, - 481, 113, - -2, 118, - -1, 109, - 112, 244, - 177, 244, - -2, 335, - -1, 128, - 111, 118, - 150, 118, - 265, 118, - -2, 350, - -1, 570, - 157, 977, - -2, 973, - -1, 571, - 157, 978, - -2, 974, - -1, 590, - 57, 583, - -2, 595, - -1, 591, - 57, 584, - -2, 596, - -1, 612, - 125, 1328, - -2, 84, - -1, 613, - 125, 1209, - -2, 85, - -1, 619, - 125, 1260, - -2, 950, - -1, 759, - 125, 1143, - -2, 947, - -1, 795, - 182, 38, - 187, 38, - -2, 255, - -1, 872, - 1, 388, - 481, 388, - -2, 118, - -1, 1114, - 1, 285, - 481, 285, - -2, 118, - -1, 1117, - 23, 137, - -2, 139, - -1, 1190, - 112, 244, - 177, 244, - -2, 335, - -1, 1199, - 182, 39, - 187, 39, - -2, 256, - -1, 1409, - 157, 982, - -2, 976, - -1, 1500, - 75, 66, - 83, 66, - -2, 70, - -1, 1521, - 1, 286, - 481, 286, - -2, 118, - -1, 1953, - 5, 843, - 18, 843, - 20, 843, - 31, 843, - 84, 843, - -2, 622, - -1, 2187, - 47, 918, - -2, 912, -} - -const yyPrivate = 57344 - -const yyLast = 29669 - -var yyAct = [...]int{ - 570, 2107, 2283, 2012, 2240, 2227, 1740, 1778, 2164, 1785, - 2188, 83, 3, 1933, 2217, 2134, 1707, 2253, 1015, 542, - 2104, 1786, 1589, 1741, 1934, 1539, 1830, 1062, 1446, 1930, - 1554, 933, 528, 1069, 1518, 1873, 1810, 1834, 1811, 511, - 825, 2126, 1574, 1497, 513, 1559, 1945, 508, 883, 165, - 1403, 1812, 165, 1727, 476, 165, 1395, 1667, 137, 617, - 492, 1892, 165, 1096, 1197, 762, 123, 81, 1587, 1306, - 165, 1620, 1561, 1804, 790, 1573, 1106, 1072, 1099, 1089, - 1215, 1479, 1067, 1171, 504, 1090, 1486, 1372, 1448, 1092, - 592, 1054, 492, 601, 1429, 492, 165, 492, 515, 577, - 951, 33, 1303, 1204, 1571, 912, 1289, 1462, 793, 1550, - 769, 770, 791, 792, 766, 583, 796, 1103, 1540, 1105, - 1502, 1311, 79, 614, 803, 8, 100, 140, 101, 1028, - 7, 78, 1079, 1166, 868, 6, 1031, 1853, 1852, 931, - 1618, 106, 107, 499, 1275, 1880, 1881, 2136, 1443, 1444, - 1361, 1360, 1359, 1358, 167, 168, 169, 952, 1189, 505, - 1357, 1356, 1345, 1349, 599, 603, 827, 2272, 502, 763, - 503, 1705, 450, 102, 778, 773, 2184, 1981, 2083, 841, - 842, 578, 845, 846, 847, 848, 2160, 830, 851, 852, - 853, 854, 855, 856, 857, 858, 859, 860, 861, 862, - 863, 864, 865, 2159, 84, 108, 829, 500, 2102, 611, - 618, 2103, 2298, 952, 828, 1566, 2299, 2250, 1657, 806, - 2210, 785, 962, 2291, 2108, 1606, 784, 102, 783, 80, - 2249, 1909, 2045, 1180, 1706, 807, 1564, 1959, 831, 832, - 833, 86, 87, 88, 89, 90, 91, 2209, 161, 97, - 1960, 1961, 162, 871, 1860, 445, 1513, 1514, 1859, 843, - 35, 838, 1879, 72, 39, 40, 1107, 1655, 1108, 1512, - 1445, 902, 103, 929, 1406, 576, 161, 1771, 962, 903, - 1770, 1503, 574, 1772, 573, 145, 782, 1829, 877, 878, - 896, 102, 890, 1794, 907, 908, 2014, 891, 161, 2036, - 103, 555, 125, 561, 562, 559, 560, 2214, 558, 557, - 556, 490, 958, 145, 2034, 950, 1533, 1532, 563, 564, - 488, 1563, 103, 919, 1348, 921, 1775, 1295, 479, 1350, - 1351, 1352, 479, 494, 479, 145, 71, 867, 890, 142, - 1058, 143, 780, 891, 135, 782, 866, 1856, 1835, 124, - 160, 889, 1265, 888, 1588, 904, 1631, 1629, 1630, 1626, - 1621, 918, 920, 2297, 1290, 925, 897, 142, 958, 143, - 928, 844, 2015, 786, 1191, 1192, 134, 133, 160, 2008, - 909, 167, 168, 169, 1633, 873, 1634, 2009, 1635, 142, - 910, 143, 1868, 2273, 1266, 911, 1267, 1781, 905, 906, - 160, 1625, 1636, 850, 849, 2016, 1623, 479, 870, 2156, - 2097, 814, 1627, 1590, 1480, 146, 823, 822, 821, 820, - 819, 812, 787, 818, 151, 817, 1790, 816, 1183, 824, - 811, 2294, 129, 1193, 136, 767, 1190, 1432, 130, 131, - 799, 1624, 1782, 146, 2289, 165, 767, 165, 781, 916, - 165, 1980, 151, 917, 957, 954, 955, 956, 961, 963, - 960, 798, 959, 922, 1784, 146, 767, 1779, 923, 953, - 765, 1304, 1296, 900, 151, 2287, 1572, 492, 492, 492, - 1788, 1789, 480, 605, 915, 1780, 480, 1503, 480, 805, - 1203, 1872, 1869, 869, 1565, 492, 492, 1612, 1300, 938, - 886, 834, 892, 893, 894, 895, 1858, 781, 944, 815, - 957, 954, 955, 956, 961, 963, 960, 924, 959, 813, - 1988, 586, 1855, 805, 930, 953, 2215, 1918, 2208, 1917, - 138, 2173, 977, 976, 986, 987, 979, 980, 981, 982, - 983, 984, 985, 978, 1916, 1787, 988, 1178, 804, 840, - 1708, 1710, 1656, 808, 798, 1202, 1177, 1790, 138, 1176, - 1845, 480, 1301, 809, 1002, 1003, 1004, 1005, 1006, 1007, - 1008, 1009, 1010, 1011, 165, 1686, 1174, 926, 2241, 99, - 138, 810, 804, 449, 1277, 1276, 1278, 1279, 1280, 1875, - 444, 1060, 805, 1875, 1874, 73, 1867, 1767, 1874, 1866, - 887, 969, 492, 805, 2195, 165, 2065, 165, 165, 998, - 492, 1059, 899, 132, 1000, 1001, 492, 935, 936, 1958, - 879, 876, 947, 901, 1732, 126, 1675, 945, 127, 1598, - 2285, 2233, 946, 2286, 2231, 2284, 1519, 505, 1508, 805, - 1083, 614, 1608, 2235, 2236, 1016, 1026, 1788, 1789, 1013, - 1088, 804, 2232, 1709, 881, 1783, 988, 798, 801, 802, - 1683, 767, 804, 1055, 978, 795, 799, 988, 798, 801, - 802, 1458, 767, 885, 1343, 94, 795, 799, 1065, 1068, - 913, 968, 2204, 1073, 794, 1030, 1033, 1035, 1037, 1038, - 1040, 1042, 1043, 1034, 1036, 1312, 1039, 1041, 804, 1044, - 839, 139, 144, 141, 147, 148, 149, 150, 152, 153, - 154, 155, 1787, 805, 1294, 1911, 1052, 156, 157, 158, - 159, 1000, 1001, 777, 1790, 779, 95, 826, 618, 139, - 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, - 1943, 1893, 1622, 872, 1297, 156, 157, 158, 159, 1379, - 2174, 139, 144, 141, 147, 148, 149, 150, 152, 153, - 154, 155, 165, 1377, 1378, 1376, 1167, 156, 157, 158, - 159, 1109, 804, 965, 1607, 1175, 1460, 808, 798, 948, - 1430, 782, 1693, 774, 1895, 1061, 1430, 809, 1823, 968, - 776, 775, 2139, 884, 492, 1968, 1199, 167, 168, 169, - 1291, 1397, 1292, 914, 1208, 1293, 1000, 1001, 1212, 1967, - 1594, 492, 492, 1214, 492, 1213, 492, 492, 1313, 492, - 492, 492, 492, 492, 492, 1600, 1181, 1182, 981, 982, - 983, 984, 985, 978, 492, 1201, 988, 780, 165, 1248, - 1459, 967, 965, 167, 168, 169, 1897, 1799, 1901, 1604, - 1896, 1209, 1894, 1605, 165, 1603, 1188, 1899, 968, 1195, - 814, 812, 1600, 1398, 1071, 492, 1898, 165, 1207, 2266, - 1963, 966, 967, 965, 2295, 71, 1243, 1244, 1302, 1900, - 1902, 1076, 165, 2292, 1251, 1252, 1602, 1375, 1104, 968, - 1257, 1258, 1217, 2082, 1218, 1682, 1220, 1222, 165, 1245, - 1226, 1228, 1230, 1232, 1234, 165, 1206, 1173, 2278, 1800, - 587, 2293, 2081, 1284, 165, 165, 165, 165, 165, 165, - 165, 165, 165, 492, 492, 492, 1205, 1205, 2282, 1198, - 1186, 1184, 966, 967, 965, 1282, 2279, 1660, 1661, 1662, - 1913, 1308, 1261, 781, 2296, 1316, 1272, 1185, 1986, 1808, - 968, 165, 1320, 1246, 1322, 1323, 1324, 1325, 604, 1807, - 1569, 1329, 977, 976, 986, 987, 979, 980, 981, 982, - 983, 984, 985, 978, 1283, 1344, 988, 1285, 1270, 1310, - 609, 1269, 1305, 1179, 1268, 1259, 966, 967, 965, 1396, - 1253, 1373, 1250, 1249, 1314, 1315, 1281, 1681, 1399, 784, - 102, 783, 1463, 1464, 968, 1680, 1224, 1271, 1319, 167, - 168, 169, 492, 1774, 1355, 1326, 1327, 1328, 1371, 2281, - 1318, 1380, 1381, 1382, 1383, 1384, 1385, 1386, 1387, 1388, - 1389, 1390, 1391, 1392, 1393, 1394, 966, 967, 965, 2280, - 1400, 1401, 1920, 2267, 2261, 1407, 492, 492, 606, 607, - 1413, 966, 967, 965, 968, 2259, 2123, 165, 1362, 1363, - 1364, 1365, 1339, 1340, 1341, 2079, 1418, 1421, 2053, 968, - 1374, 492, 1431, 1409, 1966, 1922, 1451, 1817, 165, 1805, - 1433, 492, 1651, 1408, 1616, 165, 1615, 165, 1452, 1309, - 1921, 966, 967, 965, 1273, 165, 165, 1260, 1256, 1437, - 1438, 1016, 492, 1255, 1254, 492, 1498, 927, 2011, 968, - 1809, 1995, 2247, 1416, 1417, 1407, 492, 977, 976, 986, - 987, 979, 980, 981, 982, 983, 984, 985, 978, 1995, - 2202, 988, 587, 614, 1995, 2197, 614, 1410, 1995, 2196, - 966, 967, 965, 1409, 1367, 1369, 1370, 82, 167, 168, - 169, 505, 1582, 1477, 2154, 1541, 1542, 1543, 968, 1501, - 2178, 587, 1368, 2153, 1473, 167, 168, 169, 2106, 1580, - 1836, 492, 80, 1522, 1728, 1453, 1668, 1575, 1576, 1577, - 2150, 1523, 1579, 1581, 1820, 1465, 167, 168, 169, 1527, - 1526, 2100, 587, 1995, 2098, 492, 1556, 1600, 587, 2063, - 587, 492, 1208, 1517, 1942, 1208, 1534, 1208, 1535, 1536, - 1537, 1538, 1562, 1475, 1471, 1599, 1978, 1977, 1506, 1509, - 618, 2060, 1510, 618, 1546, 1547, 1548, 1549, 1525, 1524, - 1974, 1975, 977, 976, 986, 987, 979, 980, 981, 982, - 983, 984, 985, 978, 1483, 492, 988, 1396, 1974, 1973, - 71, 587, 1396, 1396, 531, 530, 533, 534, 535, 536, - 1586, 1931, 1558, 532, 2203, 537, 1593, 1471, 587, 1596, - 1942, 1597, 1552, 1553, 1503, 1854, 2048, 1170, 1838, 1568, - 1570, 1557, 1567, 1728, 1578, 1832, 1833, 1504, 165, 2042, - 1483, 587, 1414, 1415, 964, 165, 1420, 1423, 1424, 1504, - 165, 165, 806, 1611, 165, 571, 165, 1595, 1613, 1614, - 1609, 1592, 165, 1557, 1610, 1591, 1601, 35, 807, 165, - 964, 587, 1436, 1170, 1169, 1439, 1440, 2047, 1205, 977, - 976, 986, 987, 979, 980, 981, 982, 983, 984, 985, - 978, 1735, 35, 988, 1115, 1114, 35, 165, 492, 1472, - 1505, 1619, 1814, 1942, 166, 1995, 1976, 166, 1507, 1483, - 166, 1761, 1505, 1646, 1647, 493, 1736, 166, 1649, 1503, - 1503, 1482, 1600, 1511, 1698, 166, 2166, 1650, 1697, 1471, - 977, 976, 986, 987, 979, 980, 981, 982, 983, 984, - 985, 978, 1600, 71, 988, 2141, 1373, 493, 580, 1583, - 493, 166, 493, 1461, 1639, 977, 976, 986, 987, 979, - 980, 981, 982, 983, 984, 985, 978, 2084, 71, 988, - 1471, 1441, 71, 871, 1483, 1664, 1665, 1666, 1239, 977, - 976, 986, 987, 979, 980, 981, 982, 983, 984, 985, - 978, 1353, 165, 988, 1299, 1101, 789, 788, 2105, 2076, - 165, 2071, 1411, 1412, 1654, 979, 980, 981, 982, 983, - 984, 985, 978, 1172, 1663, 988, 1555, 2085, 2086, 2087, - 2088, 2010, 1970, 165, 71, 1374, 1839, 1551, 1240, 1241, - 1242, 1714, 1545, 1544, 165, 165, 165, 165, 165, 1287, - 1200, 1737, 1196, 1721, 1168, 96, 165, 2013, 1454, 2167, - 165, 1813, 1566, 165, 165, 1946, 1947, 165, 165, 165, - 1676, 1759, 578, 2263, 2228, 2275, 1730, 2089, 2090, 1993, - 1773, 1992, 1991, 1692, 1694, 1949, 1931, 1742, 1824, 1677, - 1640, 1055, 1733, 1704, 1346, 1752, 1236, 1750, 1712, 1952, - 1753, 1798, 1751, 1951, 1720, 1749, 1762, 1748, 1814, 1729, - 1764, 2248, 1717, 1718, 1719, 1068, 1754, 1923, 1492, 1493, - 1070, 1795, 1796, 1743, 1731, 2064, 1746, 492, 1308, 2041, - 1744, 1745, 165, 1747, 1797, 1998, 1801, 1802, 1803, 165, - 1776, 1755, 1760, 1237, 1238, 492, 1765, 1726, 1768, 1725, - 2277, 492, 2219, 2189, 2191, 1208, 1208, 2252, 1777, 2222, - 2218, 492, 2192, 1562, 1816, 1488, 1491, 1492, 1493, 1489, - 2254, 1490, 1494, 1851, 1715, 1946, 1947, 2186, 1298, 1806, - 572, 1792, 1716, 1530, 165, 165, 165, 165, 165, 1818, - 1842, 1426, 1063, 1815, 836, 835, 2023, 1813, 1878, 1847, - 165, 165, 1821, 1064, 937, 1427, 1850, 1846, 1849, 2040, - 1188, 1825, 1826, 1827, 103, 2058, 1463, 1464, 1409, 1840, - 1841, 1456, 1989, 1488, 1491, 1492, 1493, 1489, 1408, 1490, - 1494, 1643, 2199, 2161, 1791, 1496, 492, 1632, 1848, 1672, - 1673, 1659, 1396, 581, 582, 977, 976, 986, 987, 979, - 980, 981, 982, 983, 984, 985, 978, 584, 1724, 988, - 1690, 2260, 2258, 1870, 2257, 1891, 1723, 1889, 2223, 2221, - 1890, 2057, 492, 1994, 1584, 585, 1884, 1885, 82, 2056, - 1926, 1728, 1882, 165, 1910, 1888, 2265, 2264, 580, 1687, - 1684, 1905, 1906, 492, 1907, 1908, 1084, 1077, 1903, 492, - 492, 2265, 1932, 2193, 1904, 1914, 1915, 1965, 1457, 80, - 166, 1876, 166, 85, 1877, 166, 1935, 77, 1, 2230, - 462, 1442, 165, 1053, 1889, 977, 976, 986, 987, 979, - 980, 981, 982, 983, 984, 985, 978, 475, 2226, 988, - 1742, 1274, 493, 493, 493, 1264, 2109, 1912, 2163, 2001, - 1560, 165, 1919, 1950, 1941, 797, 128, 1520, 1521, 2243, - 493, 493, 93, 760, 92, 1955, 800, 898, 1585, 2101, - 1793, 1531, 1121, 1119, 1954, 1120, 1956, 1118, 1957, 1987, - 1940, 1123, 1927, 1122, 1117, 165, 1347, 489, 1495, 1964, - 1971, 1972, 163, 492, 1962, 1110, 1078, 1670, 837, 452, - 492, 1671, 1979, 1342, 1617, 458, 165, 996, 1722, 1929, - 1769, 1983, 1678, 1679, 1984, 1985, 165, 615, 1685, 608, - 1937, 1688, 1689, 1982, 2216, 2185, 2000, 2002, 2187, 1695, - 165, 1696, 2135, 165, 1699, 1700, 1701, 1702, 1703, 166, - 1997, 1562, 2024, 2190, 1999, 2183, 2005, 2004, 1713, 2276, - 2251, 2198, 1528, 1455, 1066, 2055, 1925, 1691, 1996, 597, - 593, 1025, 1428, 1093, 597, 593, 2018, 493, 2019, 514, - 166, 1450, 166, 166, 594, 493, 1366, 529, 526, 594, - 527, 493, 1466, 1734, 970, 2021, 2022, 512, 2032, 1883, - 506, 2025, 1085, 1487, 1485, 1757, 1758, 1484, 1641, 1074, - 1075, 596, 1097, 595, 590, 591, 596, 2054, 595, 977, - 976, 986, 987, 979, 980, 981, 982, 983, 984, 985, - 978, 1948, 2059, 988, 1944, 1091, 2068, 1470, 1529, 1857, - 2007, 949, 589, 501, 772, 2067, 1425, 2029, 2030, 2172, - 2031, 1658, 2044, 2033, 588, 2035, 61, 1742, 2073, 165, - 38, 496, 165, 165, 165, 492, 492, 2271, 2075, 2078, - 940, 2080, 598, 32, 31, 30, 2027, 2046, 29, 2074, - 28, 23, 22, 21, 2110, 492, 492, 492, 2077, 20, - 19, 2095, 25, 18, 17, 16, 98, 48, 45, 43, - 505, 2116, 105, 104, 46, 42, 874, 2069, 27, 26, - 2070, 15, 14, 2072, 13, 12, 11, 10, 9, 5, - 492, 492, 492, 165, 4, 2114, 2115, 943, 24, 1014, - 2, 0, 0, 0, 492, 0, 492, 166, 0, 0, - 0, 0, 492, 0, 2142, 0, 2138, 492, 2144, 2133, - 1935, 2132, 0, 0, 1935, 2140, 0, 2117, 2118, 2119, - 2120, 2121, 2130, 2131, 0, 2124, 2125, 0, 2147, 493, - 0, 0, 0, 2149, 0, 0, 492, 0, 0, 492, - 1886, 1887, 2155, 2151, 0, 2152, 493, 493, 0, 493, - 2157, 493, 493, 2158, 493, 493, 493, 493, 493, 493, - 0, 0, 2162, 0, 0, 0, 0, 0, 0, 493, - 2165, 0, 0, 166, 0, 0, 0, 0, 0, 2182, - 2137, 505, 0, 0, 0, 2194, 0, 0, 0, 166, - 2122, 1935, 0, 0, 0, 0, 0, 492, 165, 0, - 493, 0, 166, 2201, 0, 0, 1938, 0, 0, 492, - 0, 0, 0, 2146, 0, 0, 0, 166, 0, 2148, - 0, 0, 541, 2205, 0, 0, 492, 1953, 2220, 2213, - 2224, 0, 0, 166, 492, 492, 2229, 0, 2234, 0, - 166, 2237, 2242, 0, 0, 0, 0, 0, 0, 166, - 166, 166, 166, 166, 166, 166, 166, 166, 493, 493, - 493, 2256, 2262, 2255, 0, 2165, 2244, 0, 1742, 0, - 0, 164, 2268, 0, 448, 0, 161, 487, 2238, 0, - 0, 2274, 0, 0, 448, 0, 166, 1187, 0, 0, - 0, 0, 448, 0, 0, 0, 0, 0, 2288, 0, - 103, 0, 125, 0, 0, 0, 2290, 0, 0, 602, - 602, 0, 0, 145, 0, 0, 0, 0, 448, 986, - 987, 979, 980, 981, 982, 983, 984, 985, 978, 0, - 0, 988, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 135, 0, 0, 493, 0, 124, - 0, 0, 0, 0, 0, 0, 2026, 0, 479, 0, - 2028, 0, 0, 0, 0, 0, 0, 142, 0, 143, - 0, 2037, 2038, 2039, 1191, 1192, 134, 133, 160, 0, - 0, 493, 493, 0, 0, 0, 0, 2052, 0, 0, - 540, 0, 166, 0, 0, 0, 0, 0, 467, 0, - 0, 0, 0, 0, 2061, 2062, 493, 466, 2066, 0, - 0, 0, 0, 166, 0, 0, 493, 0, 464, 0, - 166, 0, 166, 0, 0, 0, 0, 0, 0, 0, - 166, 166, 129, 1193, 136, 0, 1190, 493, 130, 131, - 493, 0, 0, 146, 0, 0, 0, 0, 0, 0, - 491, 493, 151, 0, 0, 0, 461, 0, 1056, 0, - 0, 0, 0, 0, 0, 474, 0, 0, 0, 2099, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 472, 0, 616, 0, 0, 764, 0, 771, 0, 977, - 976, 986, 987, 979, 980, 981, 982, 983, 984, 985, - 978, 0, 0, 988, 0, 0, 493, 0, 0, 0, - 447, 0, 480, 0, 0, 0, 0, 2127, 0, 0, - 495, 0, 0, 0, 0, 0, 0, 0, 575, 0, - 493, 0, 0, 0, 0, 0, 493, 0, 0, 0, - 451, 0, 453, 468, 0, 482, 0, 481, 457, 0, - 455, 459, 469, 460, 768, 454, 0, 465, 138, 0, - 456, 470, 471, 486, 485, 473, 0, 463, 483, 976, - 986, 987, 979, 980, 981, 982, 983, 984, 985, 978, - 493, 1669, 988, 0, 0, 2168, 2169, 2170, 2171, 0, - 2175, 0, 2176, 2177, 2179, 0, 0, 0, 2180, 2181, - 0, 977, 976, 986, 987, 979, 980, 981, 982, 983, - 984, 985, 978, 132, 0, 988, 0, 0, 0, 0, - 0, 0, 0, 166, 0, 126, 0, 0, 127, 0, - 166, 0, 0, 0, 0, 166, 166, 0, 0, 166, - 2207, 166, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 448, 0, 448, - 0, 0, 448, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 166, 493, 0, 0, 0, 0, 0, 0, - 0, 0, 484, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2269, 2270, 0, 0, - 477, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 478, 0, 0, 0, 139, - 144, 141, 147, 148, 149, 150, 152, 153, 154, 155, - 0, 972, 0, 975, 0, 156, 157, 158, 159, 989, - 990, 991, 992, 993, 994, 995, 0, 973, 974, 971, - 977, 976, 986, 987, 979, 980, 981, 982, 983, 984, - 985, 978, 0, 0, 988, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 448, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 602, 0, 0, 0, 0, 0, 0, 166, - 166, 166, 166, 166, 0, 0, 0, 448, 0, 448, - 1100, 166, 0, 0, 0, 166, 0, 0, 166, 166, - 0, 0, 166, 166, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 616, 616, 616, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 939, 941, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 493, 875, 0, 880, 0, 166, 882, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, - 493, 0, 0, 0, 0, 0, 493, 35, 36, 37, - 72, 39, 40, 0, 0, 0, 493, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 76, 0, 0, - 0, 41, 67, 68, 0, 65, 69, 0, 0, 166, - 166, 166, 166, 166, 66, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 166, 0, 0, 0, - 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, - 0, 0, 1081, 54, 0, 0, 0, 0, 0, 0, - 616, 0, 0, 71, 0, 0, 1111, 0, 0, 0, - 0, 493, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1211, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 493, 0, 0, - 0, 0, 0, 0, 1211, 1211, 0, 0, 166, 0, - 448, 0, 0, 1087, 0, 0, 1098, 0, 493, 0, - 0, 0, 0, 0, 493, 493, 1262, 0, 0, 0, - 0, 44, 47, 50, 49, 52, 0, 64, 0, 448, - 70, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 1307, 0, 0, 0, 0, 0, - 0, 0, 53, 75, 74, 0, 0, 62, 63, 51, - 448, 0, 0, 0, 0, 0, 166, 448, 0, 0, - 0, 0, 0, 0, 0, 0, 1330, 1331, 448, 448, - 448, 448, 448, 448, 448, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 55, 56, - 166, 57, 58, 59, 60, 0, 0, 0, 493, 0, - 0, 0, 0, 448, 0, 493, 0, 0, 0, 0, - 0, 166, 0, 0, 764, 0, 0, 0, 0, 0, - 0, 166, 0, 0, 0, 0, 0, 1210, 0, 0, - 0, 1216, 1216, 0, 1216, 166, 1216, 1216, 166, 1225, - 1216, 1216, 1216, 1216, 1216, 0, 0, 0, 0, 0, - 1116, 0, 1210, 1210, 764, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 602, 1307, 0, 0, 0, - 602, 602, 0, 0, 602, 602, 602, 0, 0, 0, - 1211, 0, 0, 0, 0, 1286, 0, 0, 0, 0, - 0, 0, 73, 0, 0, 0, 0, 0, 0, 0, - 602, 602, 602, 602, 602, 0, 0, 0, 0, 1262, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1247, 0, 0, 0, - 448, 0, 0, 0, 0, 0, 1307, 448, 0, 448, - 0, 0, 0, 616, 616, 616, 0, 448, 448, 0, - 543, 34, 0, 0, 166, 1288, 0, 166, 166, 166, - 493, 493, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 493, 493, 493, 0, 0, 34, 1317, 0, 0, 0, - 0, 0, 0, 1321, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1332, 1333, 1334, 1335, 1336, 1337, - 1338, 0, 0, 0, 0, 493, 493, 493, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 493, - 579, 493, 1402, 0, 616, 0, 0, 493, 0, 1098, - 0, 0, 493, 0, 0, 0, 0, 0, 1210, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1434, 1435, 0, 0, - 0, 493, 0, 0, 493, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1467, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1081, 0, 0, 616, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 616, 0, 0, 616, 0, 0, 0, 0, - 0, 0, 493, 166, 0, 0, 764, 0, 0, 0, - 448, 0, 0, 0, 493, 0, 0, 448, 0, 0, - 0, 0, 448, 448, 0, 0, 448, 0, 1644, 0, - 0, 493, 0, 0, 448, 0, 1474, 0, 0, 493, - 493, 448, 0, 1478, 0, 1481, 0, 0, 0, 0, - 0, 0, 0, 0, 1500, 0, 0, 0, 0, 0, - 0, 771, 0, 0, 0, 0, 0, 0, 0, 448, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 764, 0, 0, 0, 0, - 0, 771, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 602, 602, 0, - 0, 0, 0, 0, 0, 764, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 602, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 448, 0, 0, 0, 0, 0, - 0, 0, 1262, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 602, 448, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1211, 448, 448, 448, 448, - 448, 0, 0, 0, 0, 0, 0, 0, 1756, 0, - 0, 0, 448, 0, 0, 448, 448, 0, 0, 448, - 1766, 1307, 0, 0, 0, 0, 0, 0, 1653, 0, - 0, 0, 0, 0, 0, 0, 1098, 0, 0, 0, - 0, 0, 0, 1628, 0, 0, 0, 0, 1637, 1638, - 0, 0, 1642, 0, 0, 0, 0, 0, 0, 0, - 1645, 0, 0, 0, 0, 0, 0, 1648, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 448, 0, 0, 932, 932, 932, - 0, 1828, 0, 0, 0, 1652, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 34, 0, 0, - 0, 1307, 0, 0, 0, 0, 0, 0, 0, 0, - 997, 999, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 448, 448, 448, 448, - 448, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1012, 448, 448, 0, 1017, 1018, 1019, 1020, 1021, - 1022, 1023, 1024, 1210, 1027, 1029, 1032, 1032, 1032, 1029, - 1032, 1032, 1029, 1032, 1045, 1046, 1047, 1048, 1049, 1050, - 1051, 0, 0, 0, 0, 0, 1057, 602, 0, 0, - 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1094, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 448, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1819, 1211, 0, - 0, 0, 1763, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1831, 0, 0, 0, 0, - 0, 1837, 0, 0, 448, 0, 0, 0, 0, 616, - 0, 1843, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 448, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1822, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 448, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1211, 0, - 0, 0, 0, 0, 0, 0, 616, 0, 448, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 448, 0, - 0, 0, 1861, 1862, 1863, 1864, 1865, 0, 0, 0, - 0, 0, 448, 0, 0, 448, 0, 0, 1098, 1871, - 0, 0, 1216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 616, 0, 0, 1210, 0, 0, 1939, - 1216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1211, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1924, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 161, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 448, 0, 0, 448, 448, 448, 0, 0, 0, - 0, 0, 0, 764, 0, 103, 1210, 125, 0, 0, - 1831, 0, 0, 0, 0, 0, 0, 0, 145, 0, - 0, 0, 0, 932, 932, 932, 0, 0, 0, 1969, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 135, - 0, 0, 0, 0, 124, 1262, 0, 0, 0, 0, - 0, 0, 0, 1990, 0, 0, 0, 0, 0, 0, - 0, 0, 142, 0, 143, 0, 0, 0, 0, 112, - 113, 134, 133, 160, 2003, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2006, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2017, 0, - 0, 2020, 0, 1210, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 129, 110, 136, - 117, 109, 0, 130, 131, 0, 0, 0, 146, 0, - 0, 0, 0, 0, 0, 0, 0, 151, 118, 0, - 0, 0, 0, 0, 0, 1831, 2096, 0, 0, 0, - 448, 1138, 121, 119, 114, 115, 116, 120, 0, 0, - 0, 0, 111, 0, 0, 2111, 2112, 2113, 0, 0, - 0, 122, 0, 0, 0, 1499, 1211, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2128, 2128, 2128, 0, 0, 0, 0, 2091, 0, 0, - 2092, 2093, 2094, 0, 2143, 0, 2145, 0, 0, 0, - 0, 0, 1831, 0, 0, 0, 0, 1831, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 138, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1831, 0, 0, 616, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1126, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 132, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 126, 0, 0, 127, 0, 1139, 0, 1831, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2211, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1210, 0, 2225, 0, 0, 0, - 0, 0, 0, 0, 616, 616, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1152, 1155, 1156, 1157, - 1158, 1159, 1160, 0, 1161, 1162, 1163, 1164, 1165, 1140, - 1141, 1142, 1143, 1124, 1125, 1153, 2206, 1127, 0, 1128, - 1129, 1130, 1131, 1132, 1133, 1134, 1135, 1136, 1137, 1144, - 1145, 1146, 1147, 1148, 1149, 1150, 1151, 0, 0, 0, - 0, 0, 0, 0, 139, 144, 141, 147, 148, 149, - 150, 152, 153, 154, 155, 0, 0, 0, 0, 0, - 156, 157, 158, 159, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1154, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1674, 0, - 0, 579, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1711, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1094, 0, 0, 0, 0, 0, 0, - 1738, 1739, 0, 0, 1094, 1094, 1094, 1094, 1094, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1499, 0, 0, 1094, 0, 0, 0, 1094, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 1844, 275, 221, 0, 0, 331, 0, 176, - 0, 369, 209, 284, 282, 398, 235, 227, 223, 208, - 259, 290, 329, 387, 323, 0, 279, 0, 0, 378, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 314, - 379, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 395, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 977, 976, 986, 987, - 979, 980, 981, 982, 983, 984, 985, 978, 0, 0, - 988, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 1936, 303, 34, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 313, 352, - 358, 0, 1094, 0, 210, 0, 356, 327, 412, 194, - 237, 349, 332, 354, 0, 0, 355, 280, 400, 344, - 410, 428, 429, 217, 307, 418, 391, 424, 439, 188, - 214, 321, 384, 415, 375, 300, 396, 397, 270, 374, - 245, 174, 278, 436, 186, 364, 202, 179, 386, 408, - 199, 367, 0, 0, 441, 181, 406, 383, 297, 267, - 268, 180, 0, 348, 222, 243, 212, 316, 403, 404, - 211, 442, 190, 423, 183, 0, 422, 309, 399, 407, - 298, 289, 182, 405, 296, 288, 273, 233, 254, 342, - 283, 343, 255, 305, 304, 306, 0, 177, 0, 380, - 416, 443, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 320, 341, 339, 345, 0, 394, - 411, 419, 426, 432, 433, 437, 434, 435, 438, 308, - 257, 376, 272, 281, 0, 0, 326, 357, 200, 414, - 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2043, 0, 0, 0, 0, 0, 0, 2049, 2050, 2051, - 0, 170, 184, 277, 0, 346, 240, 440, 421, 417, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 286, 291, 292, 293, 294, 310, 311, 312, 315, 318, - 319, 322, 324, 325, 328, 334, 335, 336, 337, 338, - 340, 347, 351, 359, 360, 361, 362, 363, 365, 366, - 370, 371, 372, 373, 381, 385, 401, 402, 413, 425, - 430, 249, 409, 431, 0, 285, 0, 0, 287, 234, - 252, 262, 0, 420, 382, 189, 353, 241, 178, 206, - 192, 213, 228, 231, 266, 295, 301, 330, 333, 246, - 225, 204, 350, 201, 368, 388, 389, 390, 392, 299, - 220, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1936, 0, 34, 0, 1936, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1936, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2200, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 742, 728, 393, 0, 677, 745, - 648, 665, 755, 668, 671, 711, 627, 690, 317, 662, - 34, 652, 623, 658, 624, 650, 679, 224, 647, 730, - 693, 744, 275, 221, 629, 653, 331, 667, 176, 713, - 369, 209, 284, 282, 398, 235, 227, 223, 208, 259, - 290, 329, 387, 323, 751, 279, 700, 0, 378, 302, - 0, 0, 0, 681, 734, 688, 724, 676, 712, 637, - 699, 746, 663, 708, 747, 265, 207, 175, 314, 379, - 239, 0, 0, 0, 167, 168, 169, 0, 2245, 2246, - 0, 0, 0, 0, 0, 198, 0, 205, 705, 741, - 660, 707, 219, 263, 226, 218, 395, 752, 733, 0, - 191, 743, 683, 710, 758, 622, 702, 0, 625, 628, - 754, 737, 656, 229, 0, 0, 0, 0, 0, 0, - 0, 680, 689, 721, 674, 0, 0, 0, 0, 0, - 0, 0, 0, 654, 0, 698, 0, 0, 0, 633, - 626, 0, 0, 0, 0, 678, 0, 0, 0, 636, - 0, 655, 722, 0, 620, 247, 630, 303, 0, 726, - 736, 675, 427, 740, 673, 672, 717, 634, 732, 666, - 274, 632, 271, 171, 187, 0, 664, 313, 352, 358, - 731, 651, 659, 210, 657, 356, 327, 412, 194, 237, - 349, 332, 354, 697, 715, 355, 280, 400, 344, 410, - 428, 429, 217, 307, 418, 391, 424, 439, 188, 214, - 321, 384, 415, 375, 300, 396, 397, 270, 374, 245, - 174, 278, 436, 186, 364, 202, 179, 386, 408, 199, - 367, 0, 0, 441, 181, 406, 383, 297, 267, 268, - 180, 0, 348, 222, 243, 212, 316, 403, 404, 211, - 442, 190, 423, 183, 934, 422, 309, 399, 407, 298, - 289, 182, 405, 296, 288, 273, 233, 254, 342, 283, - 343, 255, 305, 304, 306, 0, 177, 0, 380, 416, - 443, 195, 196, 197, 646, 232, 236, 242, 244, 250, - 251, 258, 276, 320, 341, 339, 345, 727, 394, 411, - 419, 426, 432, 433, 437, 434, 435, 438, 308, 257, - 376, 272, 281, 719, 757, 326, 357, 200, 414, 377, - 641, 645, 639, 640, 691, 692, 642, 748, 749, 750, - 723, 635, 0, 643, 644, 0, 729, 738, 739, 696, - 170, 184, 277, 753, 346, 240, 440, 421, 417, 621, - 638, 216, 649, 0, 0, 661, 669, 670, 682, 684, - 685, 686, 687, 695, 703, 704, 706, 714, 716, 718, - 720, 725, 735, 756, 172, 173, 185, 193, 203, 215, - 230, 238, 248, 253, 256, 260, 261, 264, 269, 286, - 291, 292, 293, 294, 310, 311, 312, 315, 318, 319, - 322, 324, 325, 328, 334, 335, 336, 337, 338, 340, - 347, 351, 359, 360, 361, 362, 363, 365, 366, 370, - 371, 372, 373, 381, 385, 401, 402, 413, 425, 430, - 249, 409, 431, 0, 285, 694, 701, 287, 234, 252, - 262, 709, 420, 382, 189, 353, 241, 178, 206, 192, - 213, 228, 231, 266, 295, 301, 330, 333, 246, 225, - 204, 350, 201, 368, 388, 389, 390, 392, 299, 220, - 742, 728, 393, 0, 677, 745, 648, 665, 755, 668, - 671, 711, 627, 690, 317, 662, 0, 652, 623, 658, - 624, 650, 679, 224, 647, 730, 693, 744, 275, 221, - 629, 653, 331, 667, 176, 713, 369, 209, 284, 282, - 398, 235, 227, 223, 208, 259, 290, 329, 387, 323, - 751, 279, 700, 0, 378, 302, 0, 0, 0, 681, - 734, 688, 724, 676, 712, 637, 699, 746, 663, 708, - 747, 265, 207, 175, 314, 379, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 705, 741, 660, 707, 219, 263, - 226, 218, 395, 752, 733, 0, 191, 743, 683, 710, - 758, 622, 702, 0, 625, 628, 754, 737, 656, 229, - 0, 0, 0, 0, 0, 0, 0, 680, 689, 721, - 674, 0, 0, 0, 0, 0, 0, 1928, 0, 654, - 0, 698, 0, 0, 0, 633, 626, 0, 0, 0, - 0, 678, 0, 0, 0, 636, 0, 655, 722, 0, - 620, 247, 630, 303, 0, 726, 736, 675, 427, 740, - 673, 672, 717, 634, 732, 666, 274, 632, 271, 171, - 187, 0, 664, 313, 352, 358, 731, 651, 659, 210, - 657, 356, 327, 412, 194, 237, 349, 332, 354, 697, - 715, 355, 280, 400, 344, 410, 428, 429, 217, 307, - 418, 391, 424, 439, 188, 214, 321, 384, 415, 375, - 300, 396, 397, 270, 374, 245, 174, 278, 436, 186, - 364, 202, 179, 386, 408, 199, 367, 0, 0, 441, - 181, 406, 383, 297, 267, 268, 180, 0, 348, 222, - 243, 212, 316, 403, 404, 211, 442, 190, 423, 183, - 934, 422, 309, 399, 407, 298, 289, 182, 405, 296, - 288, 273, 233, 254, 342, 283, 343, 255, 305, 304, - 306, 0, 177, 0, 380, 416, 443, 195, 196, 197, - 646, 232, 236, 242, 244, 250, 251, 258, 276, 320, - 341, 339, 345, 727, 394, 411, 419, 426, 432, 433, - 437, 434, 435, 438, 308, 257, 376, 272, 281, 719, - 757, 326, 357, 200, 414, 377, 641, 645, 639, 640, - 691, 692, 642, 748, 749, 750, 723, 635, 0, 643, - 644, 0, 729, 738, 739, 696, 170, 184, 277, 753, - 346, 240, 440, 421, 417, 621, 638, 216, 649, 0, - 0, 661, 669, 670, 682, 684, 685, 686, 687, 695, - 703, 704, 706, 714, 716, 718, 720, 725, 735, 756, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 286, 291, 292, 293, 294, - 310, 311, 312, 315, 318, 319, 322, 324, 325, 328, - 334, 335, 336, 337, 338, 340, 347, 351, 359, 360, - 361, 362, 363, 365, 366, 370, 371, 372, 373, 381, - 385, 401, 402, 413, 425, 430, 249, 409, 431, 0, - 285, 694, 701, 287, 234, 252, 262, 709, 420, 382, - 189, 353, 241, 178, 206, 192, 213, 228, 231, 266, - 295, 301, 330, 333, 246, 225, 204, 350, 201, 368, - 388, 389, 390, 392, 299, 220, 742, 728, 393, 0, - 677, 745, 648, 665, 755, 668, 671, 711, 627, 690, - 317, 662, 0, 652, 623, 658, 624, 650, 679, 224, - 647, 730, 693, 744, 275, 221, 629, 653, 331, 667, - 176, 713, 369, 209, 284, 282, 398, 235, 227, 223, - 208, 259, 290, 329, 387, 323, 751, 279, 700, 0, - 378, 302, 0, 0, 0, 681, 734, 688, 724, 676, - 712, 637, 699, 746, 663, 708, 747, 265, 207, 175, - 314, 379, 239, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 705, 741, 660, 707, 219, 263, 226, 218, 395, 752, - 733, 0, 191, 743, 683, 710, 758, 622, 702, 0, - 625, 628, 754, 737, 656, 229, 0, 0, 0, 0, - 0, 0, 0, 680, 689, 721, 674, 0, 0, 0, - 0, 0, 0, 1767, 0, 654, 0, 698, 0, 0, - 0, 633, 626, 0, 0, 0, 0, 678, 0, 0, - 0, 636, 0, 655, 722, 0, 620, 247, 630, 303, - 0, 726, 736, 675, 427, 740, 673, 672, 717, 634, - 732, 666, 274, 632, 271, 171, 187, 0, 664, 313, - 352, 358, 731, 651, 659, 210, 657, 356, 327, 412, - 194, 237, 349, 332, 354, 697, 715, 355, 280, 400, - 344, 410, 428, 429, 217, 307, 418, 391, 424, 439, - 188, 214, 321, 384, 415, 375, 300, 396, 397, 270, - 374, 245, 174, 278, 436, 186, 364, 202, 179, 386, - 408, 199, 367, 0, 0, 441, 181, 406, 383, 297, - 267, 268, 180, 0, 348, 222, 243, 212, 316, 403, - 404, 211, 442, 190, 423, 183, 934, 422, 309, 399, - 407, 298, 289, 182, 405, 296, 288, 273, 233, 254, - 342, 283, 343, 255, 305, 304, 306, 0, 177, 0, - 380, 416, 443, 195, 196, 197, 646, 232, 236, 242, - 244, 250, 251, 258, 276, 320, 341, 339, 345, 727, - 394, 411, 419, 426, 432, 433, 437, 434, 435, 438, - 308, 257, 376, 272, 281, 719, 757, 326, 357, 200, - 414, 377, 641, 645, 639, 640, 691, 692, 642, 748, - 749, 750, 723, 635, 0, 643, 644, 0, 729, 738, - 739, 696, 170, 184, 277, 753, 346, 240, 440, 421, - 417, 621, 638, 216, 649, 0, 0, 661, 669, 670, - 682, 684, 685, 686, 687, 695, 703, 704, 706, 714, - 716, 718, 720, 725, 735, 756, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 286, 291, 292, 293, 294, 310, 311, 312, 315, - 318, 319, 322, 324, 325, 328, 334, 335, 336, 337, - 338, 340, 347, 351, 359, 360, 361, 362, 363, 365, - 366, 370, 371, 372, 373, 381, 385, 401, 402, 413, - 425, 430, 249, 409, 431, 0, 285, 694, 701, 287, - 234, 252, 262, 709, 420, 382, 189, 353, 241, 178, - 206, 192, 213, 228, 231, 266, 295, 301, 330, 333, - 246, 225, 204, 350, 201, 368, 388, 389, 390, 392, - 299, 220, 742, 728, 393, 0, 677, 745, 648, 665, - 755, 668, 671, 711, 627, 690, 317, 662, 0, 652, - 623, 658, 624, 650, 679, 224, 647, 730, 693, 744, - 275, 221, 629, 653, 331, 667, 176, 713, 369, 209, - 284, 282, 398, 235, 227, 223, 208, 259, 290, 329, - 387, 323, 751, 279, 700, 0, 378, 302, 0, 0, - 0, 681, 734, 688, 724, 676, 712, 637, 699, 746, - 663, 708, 747, 265, 207, 175, 314, 379, 239, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 705, 741, 660, 707, - 219, 263, 226, 218, 395, 752, 733, 0, 191, 743, - 683, 710, 758, 622, 702, 0, 625, 628, 754, 737, - 656, 229, 0, 0, 0, 0, 0, 0, 0, 680, - 689, 721, 674, 0, 0, 0, 0, 0, 0, 1476, - 0, 654, 0, 698, 0, 0, 0, 633, 626, 0, - 0, 0, 0, 678, 0, 0, 0, 636, 0, 655, - 722, 0, 620, 247, 630, 303, 0, 726, 736, 675, - 427, 740, 673, 672, 717, 634, 732, 666, 274, 632, - 271, 171, 187, 0, 664, 313, 352, 358, 731, 651, - 659, 210, 657, 356, 327, 412, 194, 237, 349, 332, - 354, 697, 715, 355, 280, 400, 344, 410, 428, 429, - 217, 307, 418, 391, 424, 439, 188, 214, 321, 384, - 415, 375, 300, 396, 397, 270, 374, 245, 174, 278, - 436, 186, 364, 202, 179, 386, 408, 199, 367, 0, - 0, 441, 181, 406, 383, 297, 267, 268, 180, 0, - 348, 222, 243, 212, 316, 403, 404, 211, 442, 190, - 423, 183, 934, 422, 309, 399, 407, 298, 289, 182, - 405, 296, 288, 273, 233, 254, 342, 283, 343, 255, - 305, 304, 306, 0, 177, 0, 380, 416, 443, 195, - 196, 197, 646, 232, 236, 242, 244, 250, 251, 258, - 276, 320, 341, 339, 345, 727, 394, 411, 419, 426, - 432, 433, 437, 434, 435, 438, 308, 257, 376, 272, - 281, 719, 757, 326, 357, 200, 414, 377, 641, 645, - 639, 640, 691, 692, 642, 748, 749, 750, 723, 635, - 0, 643, 644, 0, 729, 738, 739, 696, 170, 184, - 277, 753, 346, 240, 440, 421, 417, 621, 638, 216, - 649, 0, 0, 661, 669, 670, 682, 684, 685, 686, - 687, 695, 703, 704, 706, 714, 716, 718, 720, 725, - 735, 756, 172, 173, 185, 193, 203, 215, 230, 238, - 248, 253, 256, 260, 261, 264, 269, 286, 291, 292, - 293, 294, 310, 311, 312, 315, 318, 319, 322, 324, - 325, 328, 334, 335, 336, 337, 338, 340, 347, 351, - 359, 360, 361, 362, 363, 365, 366, 370, 371, 372, - 373, 381, 385, 401, 402, 413, 425, 430, 249, 409, - 431, 0, 285, 694, 701, 287, 234, 252, 262, 709, - 420, 382, 189, 353, 241, 178, 206, 192, 213, 228, - 231, 266, 295, 301, 330, 333, 246, 225, 204, 350, - 201, 368, 388, 389, 390, 392, 299, 220, 742, 728, - 393, 0, 677, 745, 648, 665, 755, 668, 671, 711, - 627, 690, 317, 662, 0, 652, 623, 658, 624, 650, - 679, 224, 647, 730, 693, 744, 275, 221, 629, 653, - 331, 667, 176, 713, 369, 209, 284, 282, 398, 235, - 227, 223, 208, 259, 290, 329, 387, 323, 751, 279, - 700, 0, 378, 302, 0, 0, 0, 681, 734, 688, - 724, 676, 712, 637, 699, 746, 663, 708, 747, 265, - 207, 175, 314, 379, 239, 71, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 705, 741, 660, 707, 219, 263, 226, 218, - 395, 752, 733, 0, 191, 743, 683, 710, 758, 622, - 702, 0, 625, 628, 754, 737, 656, 229, 0, 0, - 0, 0, 0, 0, 0, 680, 689, 721, 674, 0, - 0, 0, 0, 0, 0, 0, 0, 654, 0, 698, - 0, 0, 0, 633, 626, 0, 0, 0, 0, 678, - 0, 0, 0, 636, 0, 655, 722, 0, 620, 247, - 630, 303, 0, 726, 736, 675, 427, 740, 673, 672, - 717, 634, 732, 666, 274, 632, 271, 171, 187, 0, - 664, 313, 352, 358, 731, 651, 659, 210, 657, 356, - 327, 412, 194, 237, 349, 332, 354, 697, 715, 355, - 280, 400, 344, 410, 428, 429, 217, 307, 418, 391, - 424, 439, 188, 214, 321, 384, 415, 375, 300, 396, - 397, 270, 374, 245, 174, 278, 436, 186, 364, 202, - 179, 386, 408, 199, 367, 0, 0, 441, 181, 406, - 383, 297, 267, 268, 180, 0, 348, 222, 243, 212, - 316, 403, 404, 211, 442, 190, 423, 183, 934, 422, - 309, 399, 407, 298, 289, 182, 405, 296, 288, 273, - 233, 254, 342, 283, 343, 255, 305, 304, 306, 0, - 177, 0, 380, 416, 443, 195, 196, 197, 646, 232, - 236, 242, 244, 250, 251, 258, 276, 320, 341, 339, - 345, 727, 394, 411, 419, 426, 432, 433, 437, 434, - 435, 438, 308, 257, 376, 272, 281, 719, 757, 326, - 357, 200, 414, 377, 641, 645, 639, 640, 691, 692, - 642, 748, 749, 750, 723, 635, 0, 643, 644, 0, - 729, 738, 739, 696, 170, 184, 277, 753, 346, 240, - 440, 421, 417, 621, 638, 216, 649, 0, 0, 661, - 669, 670, 682, 684, 685, 686, 687, 695, 703, 704, - 706, 714, 716, 718, 720, 725, 735, 756, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 286, 291, 292, 293, 294, 310, 311, - 312, 315, 318, 319, 322, 324, 325, 328, 334, 335, - 336, 337, 338, 340, 347, 351, 359, 360, 361, 362, - 363, 365, 366, 370, 371, 372, 373, 381, 385, 401, - 402, 413, 425, 430, 249, 409, 431, 0, 285, 694, - 701, 287, 234, 252, 262, 709, 420, 382, 189, 353, - 241, 178, 206, 192, 213, 228, 231, 266, 295, 301, - 330, 333, 246, 225, 204, 350, 201, 368, 388, 389, - 390, 392, 299, 220, 742, 728, 393, 0, 677, 745, - 648, 665, 755, 668, 671, 711, 627, 690, 317, 662, - 0, 652, 623, 658, 624, 650, 679, 224, 647, 730, - 693, 744, 275, 221, 629, 653, 331, 667, 176, 713, - 369, 209, 284, 282, 398, 235, 227, 223, 208, 259, - 290, 329, 387, 323, 751, 279, 700, 0, 378, 302, - 0, 0, 0, 681, 734, 688, 724, 676, 712, 637, - 699, 746, 663, 708, 747, 265, 207, 175, 314, 379, - 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 705, 741, - 660, 707, 219, 263, 226, 218, 395, 752, 733, 0, - 191, 743, 683, 710, 758, 622, 702, 0, 625, 628, - 754, 737, 656, 229, 0, 0, 0, 0, 0, 0, - 0, 680, 689, 721, 674, 0, 0, 0, 0, 0, - 0, 0, 0, 654, 0, 698, 0, 0, 0, 633, - 626, 0, 0, 0, 0, 678, 0, 0, 0, 636, - 0, 655, 722, 0, 620, 247, 630, 303, 0, 726, - 736, 675, 427, 740, 673, 672, 717, 634, 732, 666, - 274, 632, 271, 171, 187, 0, 664, 313, 352, 358, - 731, 651, 659, 210, 657, 356, 327, 412, 194, 237, - 349, 332, 354, 697, 715, 355, 280, 400, 344, 410, - 428, 429, 217, 307, 418, 391, 424, 439, 188, 214, - 321, 384, 415, 375, 300, 396, 397, 270, 374, 245, - 174, 278, 436, 186, 364, 202, 179, 386, 408, 199, - 367, 0, 0, 441, 181, 406, 383, 297, 267, 268, - 180, 0, 348, 222, 243, 212, 316, 403, 404, 211, - 442, 190, 423, 183, 934, 422, 309, 399, 407, 298, - 289, 182, 405, 296, 288, 273, 233, 254, 342, 283, - 343, 255, 305, 304, 306, 0, 177, 0, 380, 416, - 443, 195, 196, 197, 646, 232, 236, 242, 244, 250, - 251, 258, 276, 320, 341, 339, 345, 727, 394, 411, - 419, 426, 432, 433, 437, 434, 435, 438, 308, 257, - 376, 272, 281, 719, 757, 326, 357, 200, 414, 377, - 641, 645, 639, 640, 691, 692, 642, 748, 749, 750, - 723, 635, 0, 643, 644, 0, 729, 738, 739, 696, - 170, 184, 277, 753, 346, 240, 440, 421, 417, 621, - 638, 216, 649, 0, 0, 661, 669, 670, 682, 684, - 685, 686, 687, 695, 703, 704, 706, 714, 716, 718, - 720, 725, 735, 756, 172, 173, 185, 193, 203, 215, - 230, 238, 248, 253, 256, 260, 261, 264, 269, 286, - 291, 292, 293, 294, 310, 311, 312, 315, 318, 319, - 322, 324, 325, 328, 334, 335, 336, 337, 338, 340, - 347, 351, 359, 360, 361, 362, 363, 365, 366, 370, - 371, 372, 373, 381, 385, 401, 402, 413, 425, 430, - 249, 409, 431, 0, 285, 694, 701, 287, 234, 252, - 262, 709, 420, 382, 189, 353, 241, 178, 206, 192, - 213, 228, 231, 266, 295, 301, 330, 333, 246, 225, - 204, 350, 201, 368, 388, 389, 390, 392, 299, 220, - 742, 728, 393, 0, 677, 745, 648, 665, 755, 668, - 671, 711, 627, 690, 317, 662, 0, 652, 623, 658, - 624, 650, 679, 224, 647, 730, 693, 744, 275, 221, - 629, 653, 331, 667, 176, 713, 369, 209, 284, 282, - 398, 235, 227, 223, 208, 259, 290, 329, 387, 323, - 751, 279, 700, 0, 378, 302, 0, 0, 0, 681, - 734, 688, 724, 676, 712, 637, 699, 746, 663, 708, - 747, 265, 207, 175, 314, 379, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 705, 741, 660, 707, 219, 263, - 226, 218, 395, 752, 733, 0, 759, 743, 683, 710, - 758, 622, 702, 0, 625, 628, 754, 737, 656, 229, - 0, 0, 0, 0, 0, 0, 0, 680, 689, 721, - 674, 0, 0, 0, 0, 0, 0, 0, 0, 654, - 0, 698, 0, 0, 0, 633, 626, 0, 0, 0, - 0, 678, 0, 0, 0, 636, 0, 655, 722, 0, - 620, 247, 630, 303, 0, 726, 736, 675, 427, 740, - 673, 672, 717, 634, 732, 666, 274, 632, 271, 171, - 187, 0, 664, 313, 352, 358, 731, 651, 659, 210, - 657, 356, 327, 412, 194, 237, 349, 332, 354, 697, - 715, 355, 280, 400, 344, 410, 428, 429, 217, 307, - 418, 391, 424, 439, 188, 214, 321, 384, 415, 375, - 300, 396, 397, 270, 374, 245, 174, 278, 436, 186, - 364, 202, 179, 386, 408, 199, 367, 0, 0, 441, - 181, 406, 383, 297, 267, 268, 180, 0, 348, 222, - 243, 212, 316, 403, 404, 211, 442, 190, 423, 183, - 631, 422, 309, 399, 407, 298, 289, 182, 405, 296, - 288, 273, 233, 254, 342, 283, 343, 255, 305, 304, - 306, 0, 177, 0, 380, 416, 443, 195, 196, 197, - 646, 232, 236, 242, 244, 250, 251, 258, 276, 320, - 341, 339, 345, 727, 394, 411, 419, 426, 432, 433, - 437, 434, 435, 438, 619, 613, 612, 272, 281, 719, - 757, 326, 357, 200, 414, 377, 641, 645, 639, 640, - 691, 692, 642, 748, 749, 750, 723, 635, 0, 643, - 644, 0, 729, 738, 739, 696, 170, 184, 277, 753, - 346, 240, 440, 421, 417, 621, 638, 216, 649, 0, - 0, 661, 669, 670, 682, 684, 685, 686, 687, 695, - 703, 704, 706, 714, 716, 718, 720, 725, 735, 756, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 286, 291, 292, 293, 294, - 310, 311, 312, 315, 318, 319, 322, 324, 325, 328, - 334, 335, 336, 337, 338, 340, 347, 351, 359, 360, - 361, 362, 363, 365, 366, 370, 371, 372, 373, 381, - 385, 401, 402, 413, 425, 430, 249, 409, 431, 0, - 285, 694, 701, 287, 234, 252, 262, 709, 420, 382, - 189, 353, 241, 178, 206, 192, 213, 228, 231, 266, - 295, 301, 330, 333, 246, 225, 204, 350, 201, 368, - 388, 389, 390, 392, 299, 220, 742, 728, 393, 0, - 677, 745, 648, 665, 755, 668, 671, 711, 627, 690, - 317, 662, 0, 652, 623, 658, 624, 650, 679, 224, - 647, 730, 693, 744, 275, 221, 629, 653, 331, 667, - 176, 713, 369, 209, 284, 282, 398, 235, 227, 223, - 208, 259, 290, 329, 387, 323, 751, 279, 700, 0, - 378, 302, 0, 0, 0, 681, 734, 688, 724, 676, - 712, 637, 699, 746, 663, 708, 747, 265, 207, 175, - 314, 379, 239, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 705, 741, 660, 707, 219, 263, 226, 218, 395, 752, - 733, 0, 759, 743, 683, 710, 758, 622, 702, 0, - 625, 628, 754, 737, 656, 229, 0, 0, 0, 0, - 0, 0, 0, 680, 689, 721, 674, 0, 0, 0, - 0, 0, 0, 0, 0, 654, 0, 698, 0, 0, - 0, 633, 626, 0, 0, 0, 0, 678, 0, 0, - 0, 636, 0, 655, 722, 0, 620, 247, 630, 303, - 0, 726, 736, 675, 427, 740, 673, 672, 717, 634, - 732, 666, 274, 632, 271, 171, 187, 0, 664, 313, - 352, 358, 731, 651, 659, 210, 657, 356, 327, 412, - 194, 237, 349, 332, 354, 697, 715, 355, 280, 400, - 344, 410, 428, 429, 217, 307, 418, 391, 424, 439, - 188, 214, 321, 384, 415, 375, 300, 396, 397, 270, - 374, 245, 174, 278, 436, 186, 364, 202, 179, 386, - 1102, 199, 367, 0, 0, 441, 181, 406, 383, 297, - 267, 268, 180, 0, 348, 222, 243, 212, 316, 403, - 404, 211, 442, 190, 423, 183, 631, 422, 309, 399, - 407, 298, 289, 182, 405, 296, 288, 273, 233, 254, - 342, 283, 343, 255, 305, 304, 306, 0, 177, 0, - 380, 416, 443, 195, 196, 197, 646, 232, 236, 242, - 244, 250, 251, 258, 276, 320, 341, 339, 345, 727, - 394, 411, 419, 426, 432, 433, 437, 434, 435, 438, - 619, 613, 612, 272, 281, 719, 757, 326, 357, 200, - 414, 377, 641, 645, 639, 640, 691, 692, 642, 748, - 749, 750, 723, 635, 0, 643, 644, 0, 729, 738, - 739, 696, 170, 184, 277, 753, 346, 240, 440, 421, - 417, 621, 638, 216, 649, 0, 0, 661, 669, 670, - 682, 684, 685, 686, 687, 695, 703, 704, 706, 714, - 716, 718, 720, 725, 735, 756, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 286, 291, 292, 293, 294, 310, 311, 312, 315, - 318, 319, 322, 324, 325, 328, 334, 335, 336, 337, - 338, 340, 347, 351, 359, 360, 361, 362, 363, 365, - 366, 370, 371, 372, 373, 381, 385, 401, 402, 413, - 425, 430, 249, 409, 431, 0, 285, 694, 701, 287, - 234, 252, 262, 709, 420, 382, 189, 353, 241, 178, - 206, 192, 213, 228, 231, 266, 295, 301, 330, 333, - 246, 225, 204, 350, 201, 368, 388, 389, 390, 392, - 299, 220, 742, 728, 393, 0, 677, 745, 648, 665, - 755, 668, 671, 711, 627, 690, 317, 662, 0, 652, - 623, 658, 624, 650, 679, 224, 647, 730, 693, 744, - 275, 221, 629, 653, 331, 667, 176, 713, 369, 209, - 284, 282, 398, 235, 227, 223, 208, 259, 290, 329, - 387, 323, 751, 279, 700, 0, 378, 302, 0, 0, - 0, 681, 734, 688, 724, 676, 712, 637, 699, 746, - 663, 708, 747, 265, 207, 175, 314, 379, 239, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 705, 741, 660, 707, - 219, 263, 226, 218, 395, 752, 733, 0, 759, 743, - 683, 710, 758, 622, 702, 0, 625, 628, 754, 737, - 656, 229, 0, 0, 0, 0, 0, 0, 0, 680, - 689, 721, 674, 0, 0, 0, 0, 0, 0, 0, - 0, 654, 0, 698, 0, 0, 0, 633, 626, 0, - 0, 0, 0, 678, 0, 0, 0, 636, 0, 655, - 722, 0, 620, 247, 630, 303, 0, 726, 736, 675, - 427, 740, 673, 672, 717, 634, 732, 666, 274, 632, - 271, 171, 187, 0, 664, 313, 352, 358, 731, 651, - 659, 210, 657, 356, 327, 412, 194, 237, 349, 332, - 354, 697, 715, 355, 280, 400, 344, 410, 428, 429, - 217, 307, 418, 391, 424, 439, 188, 214, 321, 384, - 415, 375, 300, 396, 397, 270, 374, 245, 174, 278, - 436, 186, 364, 202, 179, 386, 610, 199, 367, 0, - 0, 441, 181, 406, 383, 297, 267, 268, 180, 0, - 348, 222, 243, 212, 316, 403, 404, 211, 442, 190, - 423, 183, 631, 422, 309, 399, 407, 298, 289, 182, - 405, 296, 288, 273, 233, 254, 342, 283, 343, 255, - 305, 304, 306, 0, 177, 0, 380, 416, 443, 195, - 196, 197, 646, 232, 236, 242, 244, 250, 251, 258, - 276, 320, 341, 339, 345, 727, 394, 411, 419, 426, - 432, 433, 437, 434, 435, 438, 619, 613, 612, 272, - 281, 719, 757, 326, 357, 200, 414, 377, 641, 645, - 639, 640, 691, 692, 642, 748, 749, 750, 723, 635, - 0, 643, 644, 0, 729, 738, 739, 696, 170, 184, - 277, 753, 346, 240, 440, 421, 417, 621, 638, 216, - 649, 0, 0, 661, 669, 670, 682, 684, 685, 686, - 687, 695, 703, 704, 706, 714, 716, 718, 720, 725, - 735, 756, 172, 173, 185, 193, 203, 215, 230, 238, - 248, 253, 256, 260, 261, 264, 269, 286, 291, 292, - 293, 294, 310, 311, 312, 315, 318, 319, 322, 324, - 325, 328, 334, 335, 336, 337, 338, 340, 347, 351, - 359, 360, 361, 362, 363, 365, 366, 370, 371, 372, - 373, 381, 385, 401, 402, 413, 425, 430, 249, 409, - 431, 0, 285, 694, 701, 287, 234, 252, 262, 709, - 420, 382, 189, 353, 241, 178, 206, 192, 213, 228, - 231, 266, 295, 301, 330, 333, 246, 225, 204, 350, - 201, 368, 388, 389, 390, 392, 299, 220, 393, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 317, 0, 0, 1404, 0, 510, 0, 0, 0, 224, - 509, 0, 0, 0, 275, 221, 0, 1405, 331, 0, - 176, 0, 369, 209, 284, 282, 398, 235, 227, 223, - 208, 259, 290, 329, 387, 323, 553, 279, 0, 0, - 378, 302, 0, 0, 0, 0, 0, 544, 545, 0, - 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 314, 379, 239, 71, 0, 0, 167, 168, 169, 531, - 530, 533, 534, 535, 536, 0, 0, 198, 532, 205, - 537, 538, 539, 0, 219, 263, 226, 218, 395, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 507, 524, - 0, 552, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 521, 522, 600, 0, 0, 0, 568, 0, 523, - 0, 0, 516, 517, 519, 518, 520, 525, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 247, 0, 303, - 0, 567, 0, 0, 427, 0, 0, 565, 0, 0, - 0, 0, 274, 0, 271, 171, 187, 0, 0, 313, - 352, 358, 0, 0, 0, 210, 0, 356, 327, 412, - 194, 237, 349, 332, 354, 0, 0, 355, 280, 400, - 344, 410, 428, 429, 217, 307, 418, 391, 424, 439, - 188, 214, 321, 384, 415, 375, 300, 396, 397, 270, - 374, 245, 174, 278, 436, 186, 364, 202, 179, 386, - 408, 199, 367, 0, 0, 441, 181, 406, 383, 297, - 267, 268, 180, 0, 348, 222, 243, 212, 316, 403, - 404, 211, 442, 190, 423, 183, 0, 422, 309, 399, - 407, 298, 289, 182, 405, 296, 288, 273, 233, 254, - 342, 283, 343, 255, 305, 304, 306, 0, 177, 0, - 380, 416, 443, 195, 196, 197, 0, 232, 236, 242, - 244, 250, 251, 258, 276, 320, 341, 339, 345, 0, - 394, 411, 419, 426, 432, 433, 437, 434, 435, 438, - 308, 257, 376, 272, 281, 0, 0, 326, 357, 200, - 414, 377, 555, 566, 561, 562, 559, 560, 554, 558, - 557, 556, 569, 546, 547, 548, 549, 551, 0, 563, - 564, 550, 170, 184, 277, 0, 346, 240, 440, 421, - 417, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 286, 291, 292, 293, 294, 310, 311, 312, 315, - 318, 319, 322, 324, 325, 328, 334, 335, 336, 337, - 338, 340, 347, 351, 359, 360, 361, 362, 363, 365, - 366, 370, 371, 372, 373, 381, 385, 401, 402, 413, - 425, 430, 249, 409, 431, 0, 285, 0, 0, 287, - 234, 252, 262, 0, 420, 382, 189, 353, 241, 178, - 206, 192, 213, 228, 231, 266, 295, 301, 330, 333, - 246, 225, 204, 350, 201, 368, 388, 389, 390, 392, - 299, 220, 393, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 317, 0, 0, 0, 0, 510, - 0, 0, 0, 224, 509, 0, 0, 0, 275, 221, - 0, 0, 331, 0, 176, 0, 369, 209, 284, 282, - 398, 235, 227, 223, 208, 259, 290, 329, 387, 323, - 553, 279, 0, 0, 378, 302, 0, 0, 0, 0, - 0, 544, 545, 0, 0, 0, 0, 0, 0, 1515, - 0, 265, 207, 175, 314, 379, 239, 71, 0, 0, - 167, 168, 169, 531, 530, 533, 534, 535, 536, 0, - 0, 198, 532, 205, 537, 538, 539, 1516, 219, 263, - 226, 218, 395, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 507, 524, 0, 552, 0, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 521, 522, 0, 0, 0, - 0, 568, 0, 523, 0, 0, 516, 517, 519, 518, - 520, 525, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 303, 0, 567, 0, 0, 427, 0, - 0, 565, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 313, 352, 358, 0, 0, 0, 210, - 0, 356, 327, 412, 194, 237, 349, 332, 354, 0, - 0, 355, 280, 400, 344, 410, 428, 429, 217, 307, - 418, 391, 424, 439, 188, 214, 321, 384, 415, 375, - 300, 396, 397, 270, 374, 245, 174, 278, 436, 186, - 364, 202, 179, 386, 408, 199, 367, 0, 0, 441, - 181, 406, 383, 297, 267, 268, 180, 0, 348, 222, - 243, 212, 316, 403, 404, 211, 442, 190, 423, 183, - 0, 422, 309, 399, 407, 298, 289, 182, 405, 296, - 288, 273, 233, 254, 342, 283, 343, 255, 305, 304, - 306, 0, 177, 0, 380, 416, 443, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 320, - 341, 339, 345, 0, 394, 411, 419, 426, 432, 433, - 437, 434, 435, 438, 308, 257, 376, 272, 281, 0, - 0, 326, 357, 200, 414, 377, 555, 566, 561, 562, - 559, 560, 554, 558, 557, 556, 569, 546, 547, 548, - 549, 551, 0, 563, 564, 550, 170, 184, 277, 0, - 346, 240, 440, 421, 417, 0, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 286, 291, 292, 293, 294, - 310, 311, 312, 315, 318, 319, 322, 324, 325, 328, - 334, 335, 336, 337, 338, 340, 347, 351, 359, 360, - 361, 362, 363, 365, 366, 370, 371, 372, 373, 381, - 385, 401, 402, 413, 425, 430, 249, 409, 431, 0, - 285, 0, 0, 287, 234, 252, 262, 0, 420, 382, - 189, 353, 241, 178, 206, 192, 213, 228, 231, 266, - 295, 301, 330, 333, 246, 225, 204, 350, 201, 368, - 388, 389, 390, 392, 299, 220, 393, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, - 0, 0, 0, 510, 0, 0, 0, 224, 509, 0, - 0, 0, 275, 221, 0, 0, 331, 0, 176, 0, - 369, 209, 284, 282, 398, 235, 227, 223, 208, 259, - 290, 329, 387, 323, 553, 279, 0, 0, 378, 302, - 0, 0, 0, 0, 0, 544, 545, 0, 0, 0, - 0, 0, 0, 0, 0, 265, 207, 175, 314, 379, - 239, 71, 0, 587, 167, 168, 169, 531, 530, 533, - 534, 535, 536, 0, 0, 198, 532, 205, 537, 538, - 539, 0, 219, 263, 226, 218, 395, 0, 0, 0, - 191, 0, 0, 0, 0, 0, 507, 524, 0, 552, - 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 521, - 522, 0, 0, 0, 0, 568, 0, 523, 0, 0, - 516, 517, 519, 518, 520, 525, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 247, 0, 303, 0, 567, - 0, 0, 427, 0, 0, 565, 0, 0, 0, 0, - 274, 0, 271, 171, 187, 0, 0, 313, 352, 358, - 0, 0, 0, 210, 0, 356, 327, 412, 194, 237, - 349, 332, 354, 0, 0, 355, 280, 400, 344, 410, - 428, 429, 217, 307, 418, 391, 424, 439, 188, 214, - 321, 384, 415, 375, 300, 396, 397, 270, 374, 245, - 174, 278, 436, 186, 364, 202, 179, 386, 408, 199, - 367, 0, 0, 441, 181, 406, 383, 297, 267, 268, - 180, 0, 348, 222, 243, 212, 316, 403, 404, 211, - 442, 190, 423, 183, 0, 422, 309, 399, 407, 298, - 289, 182, 405, 296, 288, 273, 233, 254, 342, 283, - 343, 255, 305, 304, 306, 0, 177, 0, 380, 416, - 443, 195, 196, 197, 0, 232, 236, 242, 244, 250, - 251, 258, 276, 320, 341, 339, 345, 0, 394, 411, - 419, 426, 432, 433, 437, 434, 435, 438, 308, 257, - 376, 272, 281, 0, 0, 326, 357, 200, 414, 377, - 555, 566, 561, 562, 559, 560, 554, 558, 557, 556, - 569, 546, 547, 548, 549, 551, 0, 563, 564, 550, - 170, 184, 277, 0, 346, 240, 440, 421, 417, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 230, 238, 248, 253, 256, 260, 261, 264, 269, 286, - 291, 292, 293, 294, 310, 311, 312, 315, 318, 319, - 322, 324, 325, 328, 334, 335, 336, 337, 338, 340, - 347, 351, 359, 360, 361, 362, 363, 365, 366, 370, - 371, 372, 373, 381, 385, 401, 402, 413, 425, 430, - 249, 409, 431, 0, 285, 0, 0, 287, 234, 252, - 262, 0, 420, 382, 189, 353, 241, 178, 206, 192, - 213, 228, 231, 266, 295, 301, 330, 333, 246, 225, - 204, 350, 201, 368, 388, 389, 390, 392, 299, 220, - 393, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 317, 0, 0, 0, 0, 510, 0, 0, - 0, 224, 509, 0, 0, 0, 275, 221, 0, 0, - 331, 0, 176, 0, 369, 209, 284, 282, 398, 235, - 227, 223, 208, 259, 290, 329, 387, 323, 553, 279, - 0, 0, 378, 302, 0, 0, 0, 0, 0, 544, - 545, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 314, 379, 239, 71, 0, 0, 167, 168, - 169, 531, 530, 533, 534, 535, 536, 0, 0, 198, - 532, 205, 537, 538, 539, 0, 219, 263, 226, 218, - 395, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 507, 524, 0, 552, 0, 0, 0, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 521, 522, 600, 0, 0, 0, 568, - 0, 523, 0, 0, 516, 517, 519, 518, 520, 525, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 303, 0, 567, 0, 0, 427, 0, 0, 565, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 313, 352, 358, 0, 0, 0, 210, 0, 356, - 327, 412, 194, 237, 349, 332, 354, 0, 0, 355, - 280, 400, 344, 410, 428, 429, 217, 307, 418, 391, - 424, 439, 188, 214, 321, 384, 415, 375, 300, 396, - 397, 270, 374, 245, 174, 278, 436, 186, 364, 202, - 179, 386, 408, 199, 367, 0, 0, 441, 181, 406, - 383, 297, 267, 268, 180, 0, 348, 222, 243, 212, - 316, 403, 404, 211, 442, 190, 423, 183, 0, 422, - 309, 399, 407, 298, 289, 182, 405, 296, 288, 273, - 233, 254, 342, 283, 343, 255, 305, 304, 306, 0, - 177, 0, 380, 416, 443, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 320, 341, 339, - 345, 0, 394, 411, 419, 426, 432, 433, 437, 434, - 435, 438, 308, 257, 376, 272, 281, 0, 0, 326, - 357, 200, 414, 377, 555, 566, 561, 562, 559, 560, - 554, 558, 557, 556, 569, 546, 547, 548, 549, 551, - 0, 563, 564, 550, 170, 184, 277, 0, 346, 240, - 440, 421, 417, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 286, 291, 292, 293, 294, 310, 311, - 312, 315, 318, 319, 322, 324, 325, 328, 334, 335, - 336, 337, 338, 340, 347, 351, 359, 360, 361, 362, - 363, 365, 366, 370, 371, 372, 373, 381, 385, 401, - 402, 413, 425, 430, 249, 409, 431, 0, 285, 0, - 0, 287, 234, 252, 262, 0, 420, 382, 189, 353, - 241, 178, 206, 192, 213, 228, 231, 266, 295, 301, - 330, 333, 246, 225, 204, 350, 201, 368, 388, 389, - 390, 392, 299, 220, 393, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, - 0, 510, 0, 0, 0, 224, 509, 0, 0, 0, - 275, 221, 0, 0, 331, 0, 176, 0, 369, 209, - 284, 282, 398, 235, 227, 223, 208, 259, 290, 329, - 387, 323, 553, 279, 0, 0, 378, 302, 0, 0, - 0, 0, 0, 544, 545, 0, 0, 0, 0, 0, - 0, 0, 0, 265, 207, 175, 314, 379, 239, 71, - 0, 0, 167, 168, 169, 531, 1422, 533, 534, 535, - 536, 0, 0, 198, 532, 205, 537, 538, 539, 0, - 219, 263, 226, 218, 395, 0, 0, 0, 191, 0, - 0, 0, 0, 0, 507, 524, 0, 552, 0, 0, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 521, 522, 600, - 0, 0, 0, 568, 0, 523, 0, 0, 516, 517, - 519, 518, 520, 525, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 247, 0, 303, 0, 567, 0, 0, - 427, 0, 0, 565, 0, 0, 0, 0, 274, 0, - 271, 171, 187, 0, 0, 313, 352, 358, 0, 0, - 0, 210, 0, 356, 327, 412, 194, 237, 349, 332, - 354, 0, 0, 355, 280, 400, 344, 410, 428, 429, - 217, 307, 418, 391, 424, 439, 188, 214, 321, 384, - 415, 375, 300, 396, 397, 270, 374, 245, 174, 278, - 436, 186, 364, 202, 179, 386, 408, 199, 367, 0, - 0, 441, 181, 406, 383, 297, 267, 268, 180, 0, - 348, 222, 243, 212, 316, 403, 404, 211, 442, 190, - 423, 183, 0, 422, 309, 399, 407, 298, 289, 182, - 405, 296, 288, 273, 233, 254, 342, 283, 343, 255, - 305, 304, 306, 0, 177, 0, 380, 416, 443, 195, - 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, - 276, 320, 341, 339, 345, 0, 394, 411, 419, 426, - 432, 433, 437, 434, 435, 438, 308, 257, 376, 272, - 281, 0, 0, 326, 357, 200, 414, 377, 555, 566, - 561, 562, 559, 560, 554, 558, 557, 556, 569, 546, - 547, 548, 549, 551, 0, 563, 564, 550, 170, 184, - 277, 0, 346, 240, 440, 421, 417, 0, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, - 248, 253, 256, 260, 261, 264, 269, 286, 291, 292, - 293, 294, 310, 311, 312, 315, 318, 319, 322, 324, - 325, 328, 334, 335, 336, 337, 338, 340, 347, 351, - 359, 360, 361, 362, 363, 365, 366, 370, 371, 372, - 373, 381, 385, 401, 402, 413, 425, 430, 249, 409, - 431, 0, 285, 0, 0, 287, 234, 252, 262, 0, - 420, 382, 189, 353, 241, 178, 206, 192, 213, 228, - 231, 266, 295, 301, 330, 333, 246, 225, 204, 350, - 201, 368, 388, 389, 390, 392, 299, 220, 393, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 317, 0, 0, 0, 0, 510, 0, 0, 0, 224, - 509, 0, 0, 0, 275, 221, 0, 0, 331, 0, - 176, 0, 369, 209, 284, 282, 398, 235, 227, 223, - 208, 259, 290, 329, 387, 323, 553, 279, 0, 0, - 378, 302, 0, 0, 0, 0, 0, 544, 545, 0, - 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 314, 379, 239, 71, 0, 0, 167, 168, 169, 531, - 1419, 533, 534, 535, 536, 0, 0, 198, 532, 205, - 537, 538, 539, 0, 219, 263, 226, 218, 395, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 507, 524, - 0, 552, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 521, 522, 600, 0, 0, 0, 568, 0, 523, - 0, 0, 516, 517, 519, 518, 520, 525, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 247, 0, 303, - 0, 567, 0, 0, 427, 0, 0, 565, 0, 0, - 0, 0, 274, 0, 271, 171, 187, 0, 0, 313, - 352, 358, 0, 0, 0, 210, 0, 356, 327, 412, - 194, 237, 349, 332, 354, 0, 0, 355, 280, 400, - 344, 410, 428, 429, 217, 307, 418, 391, 424, 439, - 188, 214, 321, 384, 415, 375, 300, 396, 397, 270, - 374, 245, 174, 278, 436, 186, 364, 202, 179, 386, - 408, 199, 367, 0, 0, 441, 181, 406, 383, 297, - 267, 268, 180, 0, 348, 222, 243, 212, 316, 403, - 404, 211, 442, 190, 423, 183, 0, 422, 309, 399, - 407, 298, 289, 182, 405, 296, 288, 273, 233, 254, - 342, 283, 343, 255, 305, 304, 306, 0, 177, 0, - 380, 416, 443, 195, 196, 197, 0, 232, 236, 242, - 244, 250, 251, 258, 276, 320, 341, 339, 345, 0, - 394, 411, 419, 426, 432, 433, 437, 434, 435, 438, - 308, 257, 376, 272, 281, 0, 0, 326, 357, 200, - 414, 377, 555, 566, 561, 562, 559, 560, 554, 558, - 557, 556, 569, 546, 547, 548, 549, 551, 0, 563, - 564, 550, 170, 184, 277, 0, 346, 240, 440, 421, - 417, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 286, 291, 292, 293, 294, 310, 311, 312, 315, - 318, 319, 322, 324, 325, 328, 334, 335, 336, 337, - 338, 340, 347, 351, 359, 360, 361, 362, 363, 365, - 366, 370, 371, 372, 373, 381, 385, 401, 402, 413, - 425, 430, 249, 409, 431, 0, 285, 0, 0, 287, - 234, 252, 262, 0, 420, 382, 189, 353, 241, 178, - 206, 192, 213, 228, 231, 266, 295, 301, 330, 333, - 246, 225, 204, 350, 201, 368, 388, 389, 390, 392, - 299, 220, 580, 393, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, - 510, 0, 0, 0, 224, 509, 0, 0, 0, 275, - 221, 0, 0, 331, 0, 176, 0, 369, 209, 284, - 282, 398, 235, 227, 223, 208, 259, 290, 329, 387, - 323, 553, 279, 0, 0, 378, 302, 0, 0, 0, - 0, 0, 544, 545, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 314, 379, 239, 71, 0, - 0, 167, 168, 169, 531, 530, 533, 534, 535, 536, - 0, 0, 198, 532, 205, 537, 538, 539, 0, 219, - 263, 226, 218, 395, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 507, 524, 0, 552, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 521, 522, 0, 0, - 0, 0, 568, 0, 523, 0, 0, 516, 517, 519, - 518, 520, 525, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 303, 0, 567, 0, 0, 427, - 0, 0, 565, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 313, 352, 358, 0, 0, 0, - 210, 0, 356, 327, 412, 194, 237, 349, 332, 354, - 0, 0, 355, 280, 400, 344, 410, 428, 429, 217, - 307, 418, 391, 424, 439, 188, 214, 321, 384, 415, - 375, 300, 396, 397, 270, 374, 245, 174, 278, 436, - 186, 364, 202, 179, 386, 408, 199, 367, 0, 0, - 441, 181, 406, 383, 297, 267, 268, 180, 0, 348, - 222, 243, 212, 316, 403, 404, 211, 442, 190, 423, - 183, 0, 422, 309, 399, 407, 298, 289, 182, 405, - 296, 288, 273, 233, 254, 342, 283, 343, 255, 305, - 304, 306, 0, 177, 0, 380, 416, 443, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 320, 341, 339, 345, 0, 394, 411, 419, 426, 432, - 433, 437, 434, 435, 438, 308, 257, 376, 272, 281, - 0, 0, 326, 357, 200, 414, 377, 555, 566, 561, - 562, 559, 560, 554, 558, 557, 556, 569, 546, 547, - 548, 549, 551, 0, 563, 564, 550, 170, 184, 277, - 0, 346, 240, 440, 421, 417, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 286, 291, 292, 293, - 294, 310, 311, 312, 315, 318, 319, 322, 324, 325, - 328, 334, 335, 336, 337, 338, 340, 347, 351, 359, - 360, 361, 362, 363, 365, 366, 370, 371, 372, 373, - 381, 385, 401, 402, 413, 425, 430, 249, 409, 431, - 0, 285, 0, 0, 287, 234, 252, 262, 0, 420, - 382, 189, 353, 241, 178, 206, 192, 213, 228, 231, - 266, 295, 301, 330, 333, 246, 225, 204, 350, 201, - 368, 388, 389, 390, 392, 299, 220, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 0, 0, 510, 0, 0, 0, 224, 509, - 0, 0, 0, 275, 221, 0, 0, 331, 0, 176, - 0, 369, 209, 284, 282, 398, 235, 227, 223, 208, - 259, 290, 329, 387, 323, 553, 279, 0, 0, 378, - 302, 0, 0, 0, 0, 0, 544, 545, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 314, - 379, 239, 71, 0, 0, 167, 168, 169, 531, 530, - 533, 534, 535, 536, 0, 0, 198, 532, 205, 537, - 538, 539, 0, 219, 263, 226, 218, 395, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 507, 524, 0, - 552, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 521, 522, 0, 0, 0, 0, 568, 0, 523, 0, - 0, 516, 517, 519, 518, 520, 525, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 303, 0, - 567, 0, 0, 427, 0, 0, 565, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 313, 352, - 358, 0, 0, 0, 210, 0, 356, 327, 412, 194, - 237, 349, 332, 354, 0, 0, 355, 280, 400, 344, - 410, 428, 429, 217, 307, 418, 391, 424, 439, 188, - 214, 321, 384, 415, 375, 300, 396, 397, 270, 374, - 245, 174, 278, 436, 186, 364, 202, 179, 386, 408, - 199, 367, 0, 0, 441, 181, 406, 383, 297, 267, - 268, 180, 0, 348, 222, 243, 212, 316, 403, 404, - 211, 442, 190, 423, 183, 0, 422, 309, 399, 407, - 298, 289, 182, 405, 296, 288, 273, 233, 254, 342, - 283, 343, 255, 305, 304, 306, 0, 177, 0, 380, - 416, 443, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 320, 341, 339, 345, 0, 394, - 411, 419, 426, 432, 433, 437, 434, 435, 438, 308, - 257, 376, 272, 281, 0, 0, 326, 357, 200, 414, - 377, 555, 566, 561, 562, 559, 560, 554, 558, 557, - 556, 569, 546, 547, 548, 549, 551, 0, 563, 564, - 550, 170, 184, 277, 0, 346, 240, 440, 421, 417, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 286, 291, 292, 293, 294, 310, 311, 312, 315, 318, - 319, 322, 324, 325, 328, 334, 335, 336, 337, 338, - 340, 347, 351, 359, 360, 361, 362, 363, 365, 366, - 370, 371, 372, 373, 381, 385, 401, 402, 413, 425, - 430, 249, 409, 431, 0, 285, 0, 0, 287, 234, - 252, 262, 0, 420, 382, 189, 353, 241, 178, 206, - 192, 213, 228, 231, 266, 295, 301, 330, 333, 246, - 225, 204, 350, 201, 368, 388, 389, 390, 392, 299, - 220, 393, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, - 0, 331, 0, 176, 0, 369, 209, 284, 282, 398, - 235, 227, 223, 208, 259, 290, 329, 387, 323, 553, - 279, 0, 0, 378, 302, 0, 0, 0, 0, 0, - 544, 545, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 314, 379, 239, 71, 0, 0, 167, - 168, 169, 531, 530, 533, 534, 535, 536, 0, 0, - 198, 532, 205, 537, 538, 539, 0, 219, 263, 226, - 218, 395, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 524, 0, 552, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 521, 522, 0, 0, 0, 0, - 568, 0, 523, 0, 0, 516, 517, 519, 518, 520, - 525, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 303, 0, 567, 0, 0, 427, 0, 0, - 565, 0, 0, 0, 0, 274, 0, 271, 171, 187, - 0, 0, 313, 352, 358, 0, 0, 0, 210, 0, - 356, 327, 412, 194, 237, 349, 332, 354, 2239, 0, - 355, 280, 400, 344, 410, 428, 429, 217, 307, 418, - 391, 424, 439, 188, 214, 321, 384, 415, 375, 300, - 396, 397, 270, 374, 245, 174, 278, 436, 186, 364, - 202, 179, 386, 408, 199, 367, 0, 0, 441, 181, - 406, 383, 297, 267, 268, 180, 0, 348, 222, 243, - 212, 316, 403, 404, 211, 442, 190, 423, 183, 0, - 422, 309, 399, 407, 298, 289, 182, 405, 296, 288, - 273, 233, 254, 342, 283, 343, 255, 305, 304, 306, - 0, 177, 0, 380, 416, 443, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 320, 341, - 339, 345, 0, 394, 411, 419, 426, 432, 433, 437, - 434, 435, 438, 308, 257, 376, 272, 281, 0, 0, - 326, 357, 200, 414, 377, 555, 566, 561, 562, 559, - 560, 554, 558, 557, 556, 569, 546, 547, 548, 549, - 551, 0, 563, 564, 550, 170, 184, 277, 0, 346, - 240, 440, 421, 417, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 286, 291, 292, 293, 294, 310, - 311, 312, 315, 318, 319, 322, 324, 325, 328, 334, - 335, 336, 337, 338, 340, 347, 351, 359, 360, 361, - 362, 363, 365, 366, 370, 371, 372, 373, 381, 385, - 401, 402, 413, 425, 430, 249, 409, 431, 0, 285, - 0, 0, 287, 234, 252, 262, 0, 420, 382, 189, - 353, 241, 178, 206, 192, 213, 228, 231, 266, 295, - 301, 330, 333, 246, 225, 204, 350, 201, 368, 388, - 389, 390, 392, 299, 220, 393, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 331, 0, 176, 0, 369, - 209, 284, 282, 398, 235, 227, 223, 208, 259, 290, - 329, 387, 323, 553, 279, 0, 0, 378, 302, 0, - 0, 0, 0, 0, 544, 545, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 314, 379, 239, - 71, 0, 587, 167, 168, 169, 531, 530, 533, 534, - 535, 536, 0, 0, 198, 532, 205, 537, 538, 539, - 0, 219, 263, 226, 218, 395, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 524, 0, 552, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 521, 522, - 0, 0, 0, 0, 568, 0, 523, 0, 0, 516, - 517, 519, 518, 520, 525, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 303, 0, 567, 0, - 0, 427, 0, 0, 565, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 313, 352, 358, 0, - 0, 0, 210, 0, 356, 327, 412, 194, 237, 349, - 332, 354, 0, 0, 355, 280, 400, 344, 410, 428, - 429, 217, 307, 418, 391, 424, 439, 188, 214, 321, - 384, 415, 375, 300, 396, 397, 270, 374, 245, 174, - 278, 436, 186, 364, 202, 179, 386, 408, 199, 367, - 0, 0, 441, 181, 406, 383, 297, 267, 268, 180, - 0, 348, 222, 243, 212, 316, 403, 404, 211, 442, - 190, 423, 183, 0, 422, 309, 399, 407, 298, 289, - 182, 405, 296, 288, 273, 233, 254, 342, 283, 343, - 255, 305, 304, 306, 0, 177, 0, 380, 416, 443, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 320, 341, 339, 345, 0, 394, 411, 419, - 426, 432, 433, 437, 434, 435, 438, 308, 257, 376, - 272, 281, 0, 0, 326, 357, 200, 414, 377, 555, - 566, 561, 562, 559, 560, 554, 558, 557, 556, 569, - 546, 547, 548, 549, 551, 0, 563, 564, 550, 170, - 184, 277, 0, 346, 240, 440, 421, 417, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 286, 291, - 292, 293, 294, 310, 311, 312, 315, 318, 319, 322, - 324, 325, 328, 334, 335, 336, 337, 338, 340, 347, - 351, 359, 360, 361, 362, 363, 365, 366, 370, 371, - 372, 373, 381, 385, 401, 402, 413, 425, 430, 249, - 409, 431, 0, 285, 0, 0, 287, 234, 252, 262, - 0, 420, 382, 189, 353, 241, 178, 206, 192, 213, - 228, 231, 266, 295, 301, 330, 333, 246, 225, 204, - 350, 201, 368, 388, 389, 390, 392, 299, 220, 393, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, - 224, 0, 0, 0, 0, 275, 221, 0, 0, 331, - 0, 176, 0, 369, 209, 284, 282, 398, 235, 227, - 223, 208, 259, 290, 329, 387, 323, 553, 279, 0, - 0, 378, 302, 0, 0, 0, 0, 0, 544, 545, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 314, 379, 239, 71, 0, 0, 167, 168, 169, - 531, 530, 533, 534, 535, 536, 0, 0, 198, 532, - 205, 537, 538, 539, 0, 219, 263, 226, 218, 395, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 524, 0, 552, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 521, 522, 0, 0, 0, 0, 568, 0, - 523, 0, 0, 516, 517, 519, 518, 520, 525, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 303, 0, 567, 0, 0, 427, 0, 0, 565, 0, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 313, 352, 358, 0, 0, 0, 210, 0, 356, 327, - 412, 194, 237, 349, 332, 354, 0, 0, 355, 280, - 400, 344, 410, 428, 429, 217, 307, 418, 391, 424, - 439, 188, 214, 321, 384, 415, 375, 300, 396, 397, - 270, 374, 245, 174, 278, 436, 186, 364, 202, 179, - 386, 408, 199, 367, 0, 0, 441, 181, 406, 383, - 297, 267, 268, 180, 0, 348, 222, 243, 212, 316, - 403, 404, 211, 442, 190, 423, 183, 0, 422, 309, - 399, 407, 298, 289, 182, 405, 296, 288, 273, 233, - 254, 342, 283, 343, 255, 305, 304, 306, 0, 177, - 0, 380, 416, 443, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 320, 341, 339, 345, - 0, 394, 411, 419, 426, 432, 433, 437, 434, 435, - 438, 308, 257, 376, 272, 281, 0, 0, 326, 357, - 200, 414, 377, 555, 566, 561, 562, 559, 560, 554, - 558, 557, 556, 569, 546, 547, 548, 549, 551, 0, - 563, 564, 550, 170, 184, 277, 0, 346, 240, 440, - 421, 417, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 286, 291, 292, 293, 294, 310, 311, 312, - 315, 318, 319, 322, 324, 325, 328, 334, 335, 336, - 337, 338, 340, 347, 351, 359, 360, 361, 362, 363, - 365, 366, 370, 371, 372, 373, 381, 385, 401, 402, - 413, 425, 430, 249, 409, 431, 0, 285, 0, 0, - 287, 234, 252, 262, 0, 420, 382, 189, 353, 241, - 178, 206, 192, 213, 228, 231, 266, 295, 301, 330, - 333, 246, 225, 204, 350, 201, 368, 388, 389, 390, - 392, 299, 220, 393, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 331, 0, 176, 0, 369, 209, 284, - 282, 398, 235, 227, 223, 208, 259, 290, 329, 387, - 323, 0, 279, 0, 0, 378, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 314, 379, 239, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 395, 0, 0, 0, 191, 0, 805, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 303, 0, 0, 0, 804, 427, - 0, 0, 0, 0, 0, 801, 802, 274, 767, 271, - 171, 187, 795, 799, 313, 352, 358, 0, 0, 0, - 210, 0, 356, 327, 412, 194, 237, 349, 332, 354, - 0, 0, 355, 280, 400, 344, 410, 428, 429, 217, - 307, 418, 391, 424, 439, 188, 214, 321, 384, 415, - 375, 300, 396, 397, 270, 374, 245, 174, 278, 436, - 186, 364, 202, 179, 386, 408, 199, 367, 0, 0, - 441, 181, 406, 383, 297, 267, 268, 180, 0, 348, - 222, 243, 212, 316, 403, 404, 211, 442, 190, 423, - 183, 0, 422, 309, 399, 407, 298, 289, 182, 405, - 296, 288, 273, 233, 254, 342, 283, 343, 255, 305, - 304, 306, 0, 177, 0, 380, 416, 443, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 320, 341, 339, 345, 0, 394, 411, 419, 426, 432, - 433, 437, 434, 435, 438, 308, 257, 376, 272, 281, - 0, 0, 326, 357, 200, 414, 377, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, - 0, 346, 240, 440, 421, 417, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 286, 291, 292, 293, - 294, 310, 311, 312, 315, 318, 319, 322, 324, 325, - 328, 334, 335, 336, 337, 338, 340, 347, 351, 359, - 360, 361, 362, 363, 365, 366, 370, 371, 372, 373, - 381, 385, 401, 402, 413, 425, 430, 249, 409, 431, - 0, 285, 0, 0, 287, 234, 252, 262, 0, 420, - 382, 189, 353, 241, 178, 206, 192, 213, 228, 231, - 266, 295, 301, 330, 333, 246, 225, 204, 350, 201, - 368, 388, 389, 390, 392, 299, 220, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 0, 1080, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 331, 0, 176, - 0, 369, 209, 284, 282, 398, 235, 227, 223, 208, - 259, 290, 329, 387, 323, 0, 279, 0, 0, 378, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 314, - 379, 239, 0, 0, 0, 167, 168, 169, 0, 1082, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 395, 0, 0, - 0, 191, 0, 0, 966, 967, 965, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 968, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 303, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 313, 352, - 358, 0, 0, 0, 210, 0, 356, 327, 412, 194, - 237, 349, 332, 354, 0, 0, 355, 280, 400, 344, - 410, 428, 429, 217, 307, 418, 391, 424, 439, 188, - 214, 321, 384, 415, 375, 300, 396, 397, 270, 374, - 245, 174, 278, 436, 186, 364, 202, 179, 386, 408, - 199, 367, 0, 0, 441, 181, 406, 383, 297, 267, - 268, 180, 0, 348, 222, 243, 212, 316, 403, 404, - 211, 442, 190, 423, 183, 0, 422, 309, 399, 407, - 298, 289, 182, 405, 296, 288, 273, 233, 254, 342, - 283, 343, 255, 305, 304, 306, 0, 177, 0, 380, - 416, 443, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 320, 341, 339, 345, 0, 394, - 411, 419, 426, 432, 433, 437, 434, 435, 438, 308, - 257, 376, 272, 281, 0, 0, 326, 357, 200, 414, - 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 346, 240, 440, 421, 417, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 286, 291, 292, 293, 294, 310, 311, 312, 315, 318, - 319, 322, 324, 325, 328, 334, 335, 336, 337, 338, - 340, 347, 351, 359, 360, 361, 362, 363, 365, 366, - 370, 371, 372, 373, 381, 385, 401, 402, 413, 425, - 430, 249, 409, 431, 0, 285, 0, 0, 287, 234, - 252, 262, 0, 420, 382, 189, 353, 241, 178, 206, - 192, 213, 228, 231, 266, 295, 301, 330, 333, 246, - 225, 204, 350, 201, 368, 388, 389, 390, 392, 299, - 220, 35, 393, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 317, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 331, 0, 176, 0, 369, 209, 284, 282, - 398, 235, 227, 223, 208, 259, 290, 329, 387, 323, - 0, 279, 0, 0, 378, 302, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 314, 379, 239, 71, 0, 587, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 395, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 303, 0, 0, 0, 0, 427, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 313, 352, 358, 0, 0, 0, 210, - 0, 356, 327, 412, 194, 237, 349, 332, 354, 0, - 0, 355, 280, 400, 344, 410, 428, 429, 217, 307, - 418, 391, 424, 439, 188, 214, 321, 384, 415, 375, - 300, 396, 397, 270, 374, 245, 174, 278, 436, 186, - 364, 202, 179, 386, 408, 199, 367, 0, 0, 441, - 181, 406, 383, 297, 267, 268, 180, 0, 348, 222, - 243, 212, 316, 403, 404, 211, 442, 190, 423, 183, - 0, 422, 309, 399, 407, 298, 289, 182, 405, 296, - 288, 273, 233, 254, 342, 283, 343, 255, 305, 304, - 306, 0, 177, 0, 380, 416, 443, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 320, - 341, 339, 345, 0, 394, 411, 419, 426, 432, 433, - 437, 434, 435, 438, 308, 257, 376, 272, 281, 0, - 0, 326, 357, 200, 414, 377, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 346, 240, 440, 421, 417, 0, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 286, 291, 292, 293, 294, - 310, 311, 312, 315, 318, 319, 322, 324, 325, 328, - 334, 335, 336, 337, 338, 340, 347, 351, 359, 360, - 361, 362, 363, 365, 366, 370, 371, 372, 373, 381, - 385, 401, 402, 413, 425, 430, 249, 409, 431, 0, - 285, 0, 0, 287, 234, 252, 262, 0, 420, 382, - 189, 353, 241, 178, 206, 192, 213, 228, 231, 266, - 295, 301, 330, 333, 246, 225, 204, 350, 201, 368, - 388, 389, 390, 392, 299, 220, 393, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 317, 0, - 0, 0, 1449, 0, 0, 0, 0, 224, 0, 0, - 0, 0, 275, 221, 0, 0, 331, 0, 176, 0, - 369, 209, 284, 282, 398, 235, 227, 223, 208, 259, - 290, 329, 387, 323, 0, 279, 0, 0, 378, 302, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 265, 207, 175, 314, 379, - 239, 0, 0, 0, 167, 168, 169, 0, 1263, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 263, 226, 218, 395, 0, 0, 0, - 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 247, 0, 303, 0, 0, - 0, 0, 427, 0, 0, 0, 0, 0, 0, 0, - 274, 0, 271, 171, 187, 0, 0, 313, 352, 358, - 0, 0, 0, 210, 0, 356, 327, 412, 194, 237, - 349, 332, 354, 0, 1447, 355, 280, 400, 344, 410, - 428, 429, 217, 307, 418, 391, 424, 439, 188, 214, - 321, 384, 415, 375, 300, 396, 397, 270, 374, 245, - 174, 278, 436, 186, 364, 202, 179, 386, 408, 199, - 367, 0, 0, 441, 181, 406, 383, 297, 267, 268, - 180, 0, 348, 222, 243, 212, 316, 403, 404, 211, - 442, 190, 423, 183, 0, 422, 309, 399, 407, 298, - 289, 182, 405, 296, 288, 273, 233, 254, 342, 283, - 343, 255, 305, 304, 306, 0, 177, 0, 380, 416, - 443, 195, 196, 197, 0, 232, 236, 242, 244, 250, - 251, 258, 276, 320, 341, 339, 345, 0, 394, 411, - 419, 426, 432, 433, 437, 434, 435, 438, 308, 257, - 376, 272, 281, 0, 0, 326, 357, 200, 414, 377, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 277, 0, 346, 240, 440, 421, 417, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 230, 238, 248, 253, 256, 260, 261, 264, 269, 286, - 291, 292, 293, 294, 310, 311, 312, 315, 318, 319, - 322, 324, 325, 328, 334, 335, 336, 337, 338, 340, - 347, 351, 359, 360, 361, 362, 363, 365, 366, 370, - 371, 372, 373, 381, 385, 401, 402, 413, 425, 430, - 249, 409, 431, 0, 285, 0, 0, 287, 234, 252, - 262, 0, 420, 382, 189, 353, 241, 178, 206, 192, - 213, 228, 231, 266, 295, 301, 330, 333, 246, 225, - 204, 350, 201, 368, 388, 389, 390, 392, 299, 220, - 393, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 317, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 331, 0, 176, 0, 369, 209, 284, 282, 398, 235, - 227, 223, 208, 259, 290, 329, 387, 323, 0, 279, - 0, 0, 378, 302, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 314, 379, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 395, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 761, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 303, 0, 0, 0, 0, 427, 0, 0, 0, - 0, 0, 0, 0, 274, 767, 271, 171, 187, 765, - 0, 313, 352, 358, 0, 0, 0, 210, 0, 356, - 327, 412, 194, 237, 349, 332, 354, 0, 0, 355, - 280, 400, 344, 410, 428, 429, 217, 307, 418, 391, - 424, 439, 188, 214, 321, 384, 415, 375, 300, 396, - 397, 270, 374, 245, 174, 278, 436, 186, 364, 202, - 179, 386, 408, 199, 367, 0, 0, 441, 181, 406, - 383, 297, 267, 268, 180, 0, 348, 222, 243, 212, - 316, 403, 404, 211, 442, 190, 423, 183, 0, 422, - 309, 399, 407, 298, 289, 182, 405, 296, 288, 273, - 233, 254, 342, 283, 343, 255, 305, 304, 306, 0, - 177, 0, 380, 416, 443, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 320, 341, 339, - 345, 0, 394, 411, 419, 426, 432, 433, 437, 434, - 435, 438, 308, 257, 376, 272, 281, 0, 0, 326, - 357, 200, 414, 377, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 346, 240, - 440, 421, 417, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 286, 291, 292, 293, 294, 310, 311, - 312, 315, 318, 319, 322, 324, 325, 328, 334, 335, - 336, 337, 338, 340, 347, 351, 359, 360, 361, 362, - 363, 365, 366, 370, 371, 372, 373, 381, 385, 401, - 402, 413, 425, 430, 249, 409, 431, 0, 285, 0, - 0, 287, 234, 252, 262, 0, 420, 382, 189, 353, - 241, 178, 206, 192, 213, 228, 231, 266, 295, 301, - 330, 333, 246, 225, 204, 350, 201, 368, 388, 389, - 390, 392, 299, 220, 393, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 317, 0, 0, 0, - 1449, 0, 0, 0, 0, 224, 0, 0, 0, 0, - 275, 221, 0, 0, 331, 0, 176, 0, 369, 209, - 284, 282, 398, 235, 227, 223, 208, 259, 290, 329, - 387, 323, 0, 279, 0, 0, 378, 302, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 265, 207, 175, 314, 379, 239, 0, - 0, 0, 167, 168, 169, 0, 1263, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 263, 226, 218, 395, 0, 0, 0, 191, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 247, 0, 303, 0, 0, 0, 0, - 427, 0, 0, 0, 0, 0, 0, 0, 274, 0, - 271, 171, 187, 0, 0, 313, 352, 358, 0, 0, - 0, 210, 0, 356, 327, 412, 194, 237, 349, 332, - 354, 0, 0, 355, 280, 400, 344, 410, 428, 429, - 217, 307, 418, 391, 424, 439, 188, 214, 321, 384, - 415, 375, 300, 396, 397, 270, 374, 245, 174, 278, - 436, 186, 364, 202, 179, 386, 408, 199, 367, 0, - 0, 441, 181, 406, 383, 297, 267, 268, 180, 0, - 348, 222, 243, 212, 316, 403, 404, 211, 442, 190, - 423, 183, 0, 422, 309, 399, 407, 298, 289, 182, - 405, 296, 288, 273, 233, 254, 342, 283, 343, 255, - 305, 304, 306, 0, 177, 0, 380, 416, 443, 195, - 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, - 276, 320, 341, 339, 345, 0, 394, 411, 419, 426, - 432, 433, 437, 434, 435, 438, 308, 257, 376, 272, - 281, 0, 0, 326, 357, 200, 414, 377, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 277, 0, 346, 240, 440, 421, 417, 0, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, - 248, 253, 256, 260, 261, 264, 269, 286, 291, 292, - 293, 294, 310, 311, 312, 315, 318, 319, 322, 324, - 325, 328, 334, 335, 336, 337, 338, 340, 347, 351, - 359, 360, 361, 362, 363, 365, 366, 370, 371, 372, - 373, 381, 385, 401, 402, 413, 425, 430, 249, 409, - 431, 0, 285, 0, 0, 287, 234, 252, 262, 0, - 420, 382, 189, 353, 241, 178, 206, 192, 213, 228, - 231, 266, 295, 301, 330, 333, 246, 225, 204, 350, - 201, 368, 388, 389, 390, 392, 299, 220, 393, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 317, 0, 0, 0, 0, 0, 0, 0, 0, 224, - 0, 0, 0, 0, 275, 221, 0, 0, 331, 0, - 176, 0, 369, 209, 284, 282, 398, 235, 227, 223, - 208, 259, 290, 329, 387, 323, 0, 279, 0, 0, - 378, 302, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 314, 379, 239, 0, 0, 587, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 263, 226, 218, 395, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 247, 0, 303, - 0, 0, 0, 0, 427, 0, 0, 0, 2129, 0, - 0, 0, 274, 0, 271, 171, 187, 0, 0, 313, - 352, 358, 0, 0, 0, 210, 0, 356, 327, 412, - 194, 237, 349, 332, 354, 0, 0, 355, 280, 400, - 344, 410, 428, 429, 217, 307, 418, 391, 424, 439, - 188, 214, 321, 384, 415, 375, 300, 396, 397, 270, - 374, 245, 174, 278, 436, 186, 364, 202, 179, 386, - 408, 199, 367, 0, 0, 441, 181, 406, 383, 297, - 267, 268, 180, 0, 348, 222, 243, 212, 316, 403, - 404, 211, 442, 190, 423, 183, 0, 422, 309, 399, - 407, 298, 289, 182, 405, 296, 288, 273, 233, 254, - 342, 283, 343, 255, 305, 304, 306, 0, 177, 0, - 380, 416, 443, 195, 196, 197, 0, 232, 236, 242, - 244, 250, 251, 258, 276, 320, 341, 339, 345, 0, - 394, 411, 419, 426, 432, 433, 437, 434, 435, 438, - 308, 257, 376, 272, 281, 0, 0, 326, 357, 200, - 414, 377, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 277, 0, 346, 240, 440, 421, - 417, 0, 0, 216, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 286, 291, 292, 293, 294, 310, 311, 312, 315, - 318, 319, 322, 324, 325, 328, 334, 335, 336, 337, - 338, 340, 347, 351, 359, 360, 361, 362, 363, 365, - 366, 370, 371, 372, 373, 381, 385, 401, 402, 413, - 425, 430, 249, 409, 431, 0, 285, 0, 0, 287, - 234, 252, 262, 0, 420, 382, 189, 353, 241, 178, - 206, 192, 213, 228, 231, 266, 295, 301, 330, 333, - 246, 225, 204, 350, 201, 368, 388, 389, 390, 392, - 299, 220, 35, 393, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 331, 0, 176, 0, 369, 209, 284, - 282, 398, 235, 227, 223, 208, 259, 290, 329, 387, - 323, 0, 279, 0, 0, 378, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 314, 379, 239, 71, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 395, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 303, 0, 0, 0, 0, 427, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 313, 352, 358, 0, 0, 0, - 210, 0, 356, 327, 412, 194, 237, 349, 332, 354, - 0, 0, 355, 280, 400, 344, 410, 428, 429, 217, - 307, 418, 391, 424, 439, 188, 214, 321, 384, 415, - 375, 300, 396, 397, 270, 374, 245, 174, 278, 436, - 186, 364, 202, 179, 386, 408, 199, 367, 0, 0, - 441, 181, 406, 383, 297, 267, 268, 180, 0, 348, - 222, 243, 212, 316, 403, 404, 211, 442, 190, 423, - 183, 0, 422, 309, 399, 407, 298, 289, 182, 405, - 296, 288, 273, 233, 254, 342, 283, 343, 255, 305, - 304, 306, 0, 177, 0, 380, 416, 443, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 320, 341, 339, 345, 0, 394, 411, 419, 426, 432, - 433, 437, 434, 435, 438, 308, 257, 376, 272, 281, - 0, 0, 326, 357, 200, 414, 377, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, - 0, 346, 240, 440, 421, 417, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 286, 291, 292, 293, - 294, 310, 311, 312, 315, 318, 319, 322, 324, 325, - 328, 334, 335, 336, 337, 338, 340, 347, 351, 359, - 360, 361, 362, 363, 365, 366, 370, 371, 372, 373, - 381, 385, 401, 402, 413, 425, 430, 249, 409, 431, - 0, 285, 0, 0, 287, 234, 252, 262, 0, 420, - 382, 189, 353, 241, 178, 206, 192, 213, 228, 231, - 266, 295, 301, 330, 333, 246, 225, 204, 350, 201, - 368, 388, 389, 390, 392, 299, 220, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 331, 0, 176, - 0, 369, 209, 284, 282, 398, 235, 227, 223, 208, - 259, 290, 329, 387, 323, 0, 279, 0, 0, 378, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 314, - 379, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 1468, 0, 0, 1469, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 395, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 303, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 313, 352, - 358, 0, 0, 0, 210, 0, 356, 327, 412, 194, - 237, 349, 332, 354, 0, 0, 355, 280, 400, 344, - 410, 428, 429, 217, 307, 418, 391, 424, 439, 188, - 214, 321, 384, 415, 375, 300, 396, 397, 270, 374, - 245, 174, 278, 436, 186, 364, 202, 179, 386, 408, - 199, 367, 0, 0, 441, 181, 406, 383, 297, 267, - 268, 180, 0, 348, 222, 243, 212, 316, 403, 404, - 211, 442, 190, 423, 183, 0, 422, 309, 399, 407, - 298, 289, 182, 405, 296, 288, 273, 233, 254, 342, - 283, 343, 255, 305, 304, 306, 0, 177, 0, 380, - 416, 443, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 320, 341, 339, 345, 0, 394, - 411, 419, 426, 432, 433, 437, 434, 435, 438, 308, - 257, 376, 272, 281, 0, 0, 326, 357, 200, 414, - 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 346, 240, 440, 421, 417, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 286, 291, 292, 293, 294, 310, 311, 312, 315, 318, - 319, 322, 324, 325, 328, 334, 335, 336, 337, 338, - 340, 347, 351, 359, 360, 361, 362, 363, 365, 366, - 370, 371, 372, 373, 381, 385, 401, 402, 413, 425, - 430, 249, 409, 431, 0, 285, 0, 0, 287, 234, - 252, 262, 0, 420, 382, 189, 353, 241, 178, 206, - 192, 213, 228, 231, 266, 295, 301, 330, 333, 246, - 225, 204, 350, 201, 368, 388, 389, 390, 392, 299, - 220, 393, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 1113, 0, 0, 0, 275, 221, 0, - 0, 331, 0, 176, 0, 369, 209, 284, 282, 398, - 235, 227, 223, 208, 259, 290, 329, 387, 323, 0, - 279, 0, 0, 378, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 314, 379, 239, 0, 0, 0, 167, - 168, 169, 0, 1112, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, - 218, 395, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 303, 0, 0, 0, 0, 427, 0, 0, - 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, - 0, 0, 313, 352, 358, 0, 0, 0, 210, 0, - 356, 327, 412, 194, 237, 349, 332, 354, 0, 0, - 355, 280, 400, 344, 410, 428, 429, 217, 307, 418, - 391, 424, 439, 188, 214, 321, 384, 415, 375, 300, - 396, 397, 270, 374, 245, 174, 278, 436, 186, 364, - 202, 179, 386, 408, 199, 367, 0, 0, 441, 181, - 406, 383, 297, 267, 268, 180, 0, 348, 222, 243, - 212, 316, 403, 404, 211, 442, 190, 423, 183, 0, - 422, 309, 399, 407, 298, 289, 182, 405, 296, 288, - 273, 233, 254, 342, 283, 343, 255, 305, 304, 306, - 0, 177, 0, 380, 416, 443, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 320, 341, - 339, 345, 0, 394, 411, 419, 426, 432, 433, 437, - 434, 435, 438, 308, 257, 376, 272, 281, 0, 0, - 326, 357, 200, 414, 377, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 277, 0, 346, - 240, 440, 421, 417, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 286, 291, 292, 293, 294, 310, - 311, 312, 315, 318, 319, 322, 324, 325, 328, 334, - 335, 336, 337, 338, 340, 347, 351, 359, 360, 361, - 362, 363, 365, 366, 370, 371, 372, 373, 381, 385, - 401, 402, 413, 425, 430, 249, 409, 431, 0, 285, - 0, 0, 287, 234, 252, 262, 0, 420, 382, 189, - 353, 241, 178, 206, 192, 213, 228, 231, 266, 295, - 301, 330, 333, 246, 225, 204, 350, 201, 368, 388, - 389, 390, 392, 299, 220, 393, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 331, 0, 176, 0, 369, - 209, 284, 282, 398, 235, 227, 223, 208, 259, 290, - 329, 387, 323, 0, 279, 0, 0, 378, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 314, 379, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 395, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 303, 0, 0, 0, - 0, 427, 0, 0, 0, 2212, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 313, 352, 358, 0, - 0, 0, 210, 0, 356, 327, 412, 194, 237, 349, - 332, 354, 0, 0, 355, 280, 400, 344, 410, 428, - 429, 217, 307, 418, 391, 424, 439, 188, 214, 321, - 384, 415, 375, 300, 396, 397, 270, 374, 245, 174, - 278, 436, 186, 364, 202, 179, 386, 408, 199, 367, - 0, 0, 441, 181, 406, 383, 297, 267, 268, 180, - 0, 348, 222, 243, 212, 316, 403, 404, 211, 442, - 190, 423, 183, 0, 422, 309, 399, 407, 298, 289, - 182, 405, 296, 288, 273, 233, 254, 342, 283, 343, - 255, 305, 304, 306, 0, 177, 0, 380, 416, 443, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 320, 341, 339, 345, 0, 394, 411, 419, - 426, 432, 433, 437, 434, 435, 438, 308, 257, 376, - 272, 281, 0, 0, 326, 357, 200, 414, 377, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 346, 240, 440, 421, 417, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 286, 291, - 292, 293, 294, 310, 311, 312, 315, 318, 319, 322, - 324, 325, 328, 334, 335, 336, 337, 338, 340, 347, - 351, 359, 360, 361, 362, 363, 365, 366, 370, 371, - 372, 373, 381, 385, 401, 402, 413, 425, 430, 249, - 409, 431, 0, 285, 0, 0, 287, 234, 252, 262, - 0, 420, 382, 189, 353, 241, 178, 206, 192, 213, - 228, 231, 266, 295, 301, 330, 333, 246, 225, 204, - 350, 201, 368, 388, 389, 390, 392, 299, 220, 393, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 0, 0, 0, 0, 0, 0, 0, - 224, 0, 0, 0, 0, 275, 221, 0, 0, 331, - 0, 176, 0, 369, 209, 284, 282, 398, 235, 227, - 223, 208, 259, 290, 329, 387, 323, 0, 279, 0, - 0, 378, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 314, 379, 239, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 263, 226, 218, 395, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 303, 0, 0, 0, 0, 427, 0, 0, 0, 2129, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 313, 352, 358, 0, 0, 0, 210, 0, 356, 327, - 412, 194, 237, 349, 332, 354, 0, 0, 355, 280, - 400, 344, 410, 428, 429, 217, 307, 418, 391, 424, - 439, 188, 214, 321, 384, 415, 375, 300, 396, 397, - 270, 374, 245, 174, 278, 436, 186, 364, 202, 179, - 386, 408, 199, 367, 0, 0, 441, 181, 406, 383, - 297, 267, 268, 180, 0, 348, 222, 243, 212, 316, - 403, 404, 211, 442, 190, 423, 183, 0, 422, 309, - 399, 407, 298, 289, 182, 405, 296, 288, 273, 233, - 254, 342, 283, 343, 255, 305, 304, 306, 0, 177, - 0, 380, 416, 443, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 320, 341, 339, 345, - 0, 394, 411, 419, 426, 432, 433, 437, 434, 435, - 438, 308, 257, 376, 272, 281, 0, 0, 326, 357, - 200, 414, 377, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 277, 0, 346, 240, 440, - 421, 417, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 286, 291, 292, 293, 294, 310, 311, 312, - 315, 318, 319, 322, 324, 325, 328, 334, 335, 336, - 337, 338, 340, 347, 351, 359, 360, 361, 362, 363, - 365, 366, 370, 371, 372, 373, 381, 385, 401, 402, - 413, 425, 430, 249, 409, 431, 0, 285, 0, 0, - 287, 234, 252, 262, 0, 420, 382, 189, 353, 241, - 178, 206, 192, 213, 228, 231, 266, 295, 301, 330, - 333, 246, 225, 204, 350, 201, 368, 388, 389, 390, - 392, 299, 220, 393, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 331, 0, 176, 0, 369, 209, 284, - 282, 398, 235, 227, 223, 208, 259, 290, 329, 387, - 323, 0, 279, 0, 0, 378, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 314, 379, 239, 71, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 395, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 303, 0, 0, 0, 0, 427, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 313, 352, 358, 0, 0, 0, - 210, 0, 356, 327, 412, 194, 237, 349, 332, 354, - 0, 0, 355, 280, 400, 344, 410, 428, 429, 217, - 307, 418, 391, 424, 439, 188, 214, 321, 384, 415, - 375, 300, 396, 397, 270, 374, 245, 174, 278, 436, - 186, 364, 202, 179, 386, 408, 199, 367, 0, 0, - 441, 181, 406, 383, 297, 267, 268, 180, 0, 348, - 222, 243, 212, 316, 403, 404, 211, 442, 190, 423, - 183, 0, 422, 309, 399, 407, 298, 289, 182, 405, - 296, 288, 273, 233, 254, 342, 283, 343, 255, 305, - 304, 306, 0, 177, 0, 380, 416, 443, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 320, 341, 339, 345, 0, 394, 411, 419, 426, 432, - 433, 437, 434, 435, 438, 308, 257, 376, 272, 281, - 0, 0, 326, 357, 200, 414, 377, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, - 0, 346, 240, 440, 421, 417, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 286, 291, 292, 293, - 294, 310, 311, 312, 315, 318, 319, 322, 324, 325, - 328, 334, 335, 336, 337, 338, 340, 347, 351, 359, - 360, 361, 362, 363, 365, 366, 370, 371, 372, 373, - 381, 385, 401, 402, 413, 425, 430, 249, 409, 431, - 0, 285, 0, 0, 287, 234, 252, 262, 0, 420, - 382, 189, 353, 241, 178, 206, 192, 213, 228, 231, - 266, 295, 301, 330, 333, 246, 225, 204, 350, 201, - 368, 388, 389, 390, 392, 299, 220, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 331, 0, 176, - 0, 369, 209, 284, 282, 398, 235, 227, 223, 208, - 259, 290, 329, 387, 323, 0, 279, 0, 0, 378, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 314, - 379, 239, 0, 0, 0, 167, 168, 169, 0, 1263, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 395, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 303, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 313, 352, - 358, 0, 0, 0, 210, 0, 356, 327, 412, 194, - 237, 349, 332, 354, 0, 0, 355, 280, 400, 344, - 410, 428, 429, 217, 307, 418, 391, 424, 439, 188, - 214, 321, 384, 415, 375, 300, 396, 397, 270, 374, - 245, 174, 278, 436, 186, 364, 202, 179, 386, 408, - 199, 367, 0, 0, 441, 181, 406, 383, 297, 267, - 268, 180, 0, 348, 222, 243, 212, 316, 403, 404, - 211, 442, 190, 423, 183, 0, 422, 309, 399, 407, - 298, 289, 182, 405, 296, 288, 273, 233, 254, 342, - 283, 343, 255, 305, 304, 306, 0, 177, 0, 380, - 416, 443, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 320, 341, 339, 345, 0, 394, - 411, 419, 426, 432, 433, 437, 434, 435, 438, 308, - 257, 376, 272, 281, 0, 0, 326, 357, 200, 414, - 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 346, 240, 440, 421, 417, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 286, 291, 292, 293, 294, 310, 311, 312, 315, 318, - 319, 322, 324, 325, 328, 334, 335, 336, 337, 338, - 340, 347, 351, 359, 360, 361, 362, 363, 365, 366, - 370, 371, 372, 373, 381, 385, 401, 402, 413, 425, - 430, 249, 409, 431, 0, 285, 0, 0, 287, 234, - 252, 262, 0, 420, 382, 189, 353, 241, 178, 206, - 192, 213, 228, 231, 266, 295, 301, 330, 333, 246, - 225, 204, 350, 201, 368, 388, 389, 390, 392, 299, - 220, 393, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, - 0, 331, 0, 176, 0, 369, 209, 284, 282, 398, - 235, 227, 223, 208, 259, 290, 329, 387, 323, 0, - 279, 0, 0, 378, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 314, 379, 239, 0, 0, 0, 167, - 168, 169, 0, 1082, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, - 218, 395, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 303, 0, 0, 0, 0, 427, 0, 0, - 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, - 0, 0, 313, 352, 358, 0, 0, 0, 210, 0, - 356, 327, 412, 194, 237, 349, 332, 354, 0, 0, - 355, 280, 400, 344, 410, 428, 429, 217, 307, 418, - 391, 424, 439, 188, 214, 321, 384, 415, 375, 300, - 396, 397, 270, 374, 245, 174, 278, 436, 186, 364, - 202, 179, 386, 408, 199, 367, 0, 0, 441, 181, - 406, 383, 297, 267, 268, 180, 0, 348, 222, 243, - 212, 316, 403, 404, 211, 442, 190, 423, 183, 0, - 422, 309, 399, 407, 298, 289, 182, 405, 296, 288, - 273, 233, 254, 342, 283, 343, 255, 305, 304, 306, - 0, 177, 0, 380, 416, 443, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 320, 341, - 339, 345, 0, 394, 411, 419, 426, 432, 433, 437, - 434, 435, 438, 308, 257, 376, 272, 281, 0, 0, - 326, 357, 200, 414, 377, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 277, 0, 346, - 240, 440, 421, 417, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 286, 291, 292, 293, 294, 310, - 311, 312, 315, 318, 319, 322, 324, 325, 328, 334, - 335, 336, 337, 338, 340, 347, 351, 359, 360, 361, - 362, 363, 365, 366, 370, 371, 372, 373, 381, 385, - 401, 402, 413, 425, 430, 249, 409, 431, 0, 285, - 0, 0, 287, 234, 252, 262, 0, 420, 382, 189, - 353, 241, 178, 206, 192, 213, 228, 231, 266, 295, - 301, 330, 333, 246, 225, 204, 350, 201, 368, 388, - 389, 390, 392, 299, 220, 393, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 331, 0, 176, 0, 369, - 209, 284, 282, 398, 235, 227, 223, 208, 259, 290, - 329, 387, 323, 0, 279, 0, 0, 378, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 314, 379, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 395, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 303, 0, 0, 0, - 0, 427, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 313, 352, 358, 0, - 0, 0, 210, 0, 356, 327, 412, 194, 237, 349, - 332, 354, 0, 0, 355, 280, 400, 344, 410, 428, - 429, 217, 307, 418, 391, 424, 439, 188, 214, 321, - 384, 415, 375, 300, 396, 397, 270, 374, 245, 174, - 278, 436, 186, 364, 202, 179, 386, 408, 199, 367, - 0, 0, 441, 181, 406, 383, 297, 267, 268, 180, - 0, 348, 222, 243, 212, 316, 403, 404, 211, 442, - 190, 423, 183, 0, 422, 309, 399, 407, 298, 289, - 182, 405, 296, 288, 273, 233, 254, 342, 283, 343, - 255, 305, 304, 306, 0, 177, 0, 380, 416, 443, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 320, 341, 339, 345, 0, 394, 411, 419, - 426, 432, 433, 437, 434, 435, 438, 308, 257, 376, - 272, 281, 0, 0, 326, 357, 200, 414, 377, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 1354, 346, 240, 440, 421, 417, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 286, 291, - 292, 293, 294, 310, 311, 312, 315, 318, 319, 322, - 324, 325, 328, 334, 335, 336, 337, 338, 340, 347, - 351, 359, 360, 361, 362, 363, 365, 366, 370, 371, - 372, 373, 381, 385, 401, 402, 413, 425, 430, 249, - 409, 431, 0, 285, 0, 0, 287, 234, 252, 262, - 0, 420, 382, 189, 353, 241, 178, 206, 192, 213, - 228, 231, 266, 295, 301, 330, 333, 246, 225, 204, - 350, 201, 368, 388, 389, 390, 392, 299, 220, 393, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 1235, 0, 0, 0, 0, 0, 0, - 224, 0, 0, 0, 0, 275, 221, 0, 0, 331, - 0, 176, 0, 369, 209, 284, 282, 398, 235, 227, - 223, 208, 259, 290, 329, 387, 323, 0, 279, 0, - 0, 378, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 314, 379, 239, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 263, 226, 218, 395, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 303, 0, 0, 0, 0, 427, 0, 0, 0, 0, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 313, 352, 358, 0, 0, 0, 210, 0, 356, 327, - 412, 194, 237, 349, 332, 354, 0, 0, 355, 280, - 400, 344, 410, 428, 429, 217, 307, 418, 391, 424, - 439, 188, 214, 321, 384, 415, 375, 300, 396, 397, - 270, 374, 245, 174, 278, 436, 186, 364, 202, 179, - 386, 408, 199, 367, 0, 0, 441, 181, 406, 383, - 297, 267, 268, 180, 0, 348, 222, 243, 212, 316, - 403, 404, 211, 442, 190, 423, 183, 0, 422, 309, - 399, 407, 298, 289, 182, 405, 296, 288, 273, 233, - 254, 342, 283, 343, 255, 305, 304, 306, 0, 177, - 0, 380, 416, 443, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 320, 341, 339, 345, - 0, 394, 411, 419, 426, 432, 433, 437, 434, 435, - 438, 308, 257, 376, 272, 281, 0, 0, 326, 357, - 200, 414, 377, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 277, 0, 346, 240, 440, - 421, 417, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 286, 291, 292, 293, 294, 310, 311, 312, - 315, 318, 319, 322, 324, 325, 328, 334, 335, 336, - 337, 338, 340, 347, 351, 359, 360, 361, 362, 363, - 365, 366, 370, 371, 372, 373, 381, 385, 401, 402, - 413, 425, 430, 249, 409, 431, 0, 285, 0, 0, - 287, 234, 252, 262, 0, 420, 382, 189, 353, 241, - 178, 206, 192, 213, 228, 231, 266, 295, 301, 330, - 333, 246, 225, 204, 350, 201, 368, 388, 389, 390, - 392, 299, 220, 393, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 317, 0, 1233, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 331, 0, 176, 0, 369, 209, 284, - 282, 398, 235, 227, 223, 208, 259, 290, 329, 387, - 323, 0, 279, 0, 0, 378, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 314, 379, 239, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 395, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 303, 0, 0, 0, 0, 427, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 313, 352, 358, 0, 0, 0, - 210, 0, 356, 327, 412, 194, 237, 349, 332, 354, - 0, 0, 355, 280, 400, 344, 410, 428, 429, 217, - 307, 418, 391, 424, 439, 188, 214, 321, 384, 415, - 375, 300, 396, 397, 270, 374, 245, 174, 278, 436, - 186, 364, 202, 179, 386, 408, 199, 367, 0, 0, - 441, 181, 406, 383, 297, 267, 268, 180, 0, 348, - 222, 243, 212, 316, 403, 404, 211, 442, 190, 423, - 183, 0, 422, 309, 399, 407, 298, 289, 182, 405, - 296, 288, 273, 233, 254, 342, 283, 343, 255, 305, - 304, 306, 0, 177, 0, 380, 416, 443, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 320, 341, 339, 345, 0, 394, 411, 419, 426, 432, - 433, 437, 434, 435, 438, 308, 257, 376, 272, 281, - 0, 0, 326, 357, 200, 414, 377, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, - 0, 346, 240, 440, 421, 417, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 286, 291, 292, 293, - 294, 310, 311, 312, 315, 318, 319, 322, 324, 325, - 328, 334, 335, 336, 337, 338, 340, 347, 351, 359, - 360, 361, 362, 363, 365, 366, 370, 371, 372, 373, - 381, 385, 401, 402, 413, 425, 430, 249, 409, 431, - 0, 285, 0, 0, 287, 234, 252, 262, 0, 420, - 382, 189, 353, 241, 178, 206, 192, 213, 228, 231, - 266, 295, 301, 330, 333, 246, 225, 204, 350, 201, - 368, 388, 389, 390, 392, 299, 220, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 1231, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 331, 0, 176, - 0, 369, 209, 284, 282, 398, 235, 227, 223, 208, - 259, 290, 329, 387, 323, 0, 279, 0, 0, 378, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 314, - 379, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 395, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 303, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 313, 352, - 358, 0, 0, 0, 210, 0, 356, 327, 412, 194, - 237, 349, 332, 354, 0, 0, 355, 280, 400, 344, - 410, 428, 429, 217, 307, 418, 391, 424, 439, 188, - 214, 321, 384, 415, 375, 300, 396, 397, 270, 374, - 245, 174, 278, 436, 186, 364, 202, 179, 386, 408, - 199, 367, 0, 0, 441, 181, 406, 383, 297, 267, - 268, 180, 0, 348, 222, 243, 212, 316, 403, 404, - 211, 442, 190, 423, 183, 0, 422, 309, 399, 407, - 298, 289, 182, 405, 296, 288, 273, 233, 254, 342, - 283, 343, 255, 305, 304, 306, 0, 177, 0, 380, - 416, 443, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 320, 341, 339, 345, 0, 394, - 411, 419, 426, 432, 433, 437, 434, 435, 438, 308, - 257, 376, 272, 281, 0, 0, 326, 357, 200, 414, - 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 346, 240, 440, 421, 417, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 286, 291, 292, 293, 294, 310, 311, 312, 315, 318, - 319, 322, 324, 325, 328, 334, 335, 336, 337, 338, - 340, 347, 351, 359, 360, 361, 362, 363, 365, 366, - 370, 371, 372, 373, 381, 385, 401, 402, 413, 425, - 430, 249, 409, 431, 0, 285, 0, 0, 287, 234, - 252, 262, 0, 420, 382, 189, 353, 241, 178, 206, - 192, 213, 228, 231, 266, 295, 301, 330, 333, 246, - 225, 204, 350, 201, 368, 388, 389, 390, 392, 299, - 220, 393, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 1229, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, - 0, 331, 0, 176, 0, 369, 209, 284, 282, 398, - 235, 227, 223, 208, 259, 290, 329, 387, 323, 0, - 279, 0, 0, 378, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 314, 379, 239, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, - 218, 395, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 303, 0, 0, 0, 0, 427, 0, 0, - 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, - 0, 0, 313, 352, 358, 0, 0, 0, 210, 0, - 356, 327, 412, 194, 237, 349, 332, 354, 0, 0, - 355, 280, 400, 344, 410, 428, 429, 217, 307, 418, - 391, 424, 439, 188, 214, 321, 384, 415, 375, 300, - 396, 397, 270, 374, 245, 174, 278, 436, 186, 364, - 202, 179, 386, 408, 199, 367, 0, 0, 441, 181, - 406, 383, 297, 267, 268, 180, 0, 348, 222, 243, - 212, 316, 403, 404, 211, 442, 190, 423, 183, 0, - 422, 309, 399, 407, 298, 289, 182, 405, 296, 288, - 273, 233, 254, 342, 283, 343, 255, 305, 304, 306, - 0, 177, 0, 380, 416, 443, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 320, 341, - 339, 345, 0, 394, 411, 419, 426, 432, 433, 437, - 434, 435, 438, 308, 257, 376, 272, 281, 0, 0, - 326, 357, 200, 414, 377, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 277, 0, 346, - 240, 440, 421, 417, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 286, 291, 292, 293, 294, 310, - 311, 312, 315, 318, 319, 322, 324, 325, 328, 334, - 335, 336, 337, 338, 340, 347, 351, 359, 360, 361, - 362, 363, 365, 366, 370, 371, 372, 373, 381, 385, - 401, 402, 413, 425, 430, 249, 409, 431, 0, 285, - 0, 0, 287, 234, 252, 262, 0, 420, 382, 189, - 353, 241, 178, 206, 192, 213, 228, 231, 266, 295, - 301, 330, 333, 246, 225, 204, 350, 201, 368, 388, - 389, 390, 392, 299, 220, 393, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 317, 0, 1227, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 331, 0, 176, 0, 369, - 209, 284, 282, 398, 235, 227, 223, 208, 259, 290, - 329, 387, 323, 0, 279, 0, 0, 378, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 314, 379, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 395, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 303, 0, 0, 0, - 0, 427, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 313, 352, 358, 0, - 0, 0, 210, 0, 356, 327, 412, 194, 237, 349, - 332, 354, 0, 0, 355, 280, 400, 344, 410, 428, - 429, 217, 307, 418, 391, 424, 439, 188, 214, 321, - 384, 415, 375, 300, 396, 397, 270, 374, 245, 174, - 278, 436, 186, 364, 202, 179, 386, 408, 199, 367, - 0, 0, 441, 181, 406, 383, 297, 267, 268, 180, - 0, 348, 222, 243, 212, 316, 403, 404, 211, 442, - 190, 423, 183, 0, 422, 309, 399, 407, 298, 289, - 182, 405, 296, 288, 273, 233, 254, 342, 283, 343, - 255, 305, 304, 306, 0, 177, 0, 380, 416, 443, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 320, 341, 339, 345, 0, 394, 411, 419, - 426, 432, 433, 437, 434, 435, 438, 308, 257, 376, - 272, 281, 0, 0, 326, 357, 200, 414, 377, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 346, 240, 440, 421, 417, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 286, 291, - 292, 293, 294, 310, 311, 312, 315, 318, 319, 322, - 324, 325, 328, 334, 335, 336, 337, 338, 340, 347, - 351, 359, 360, 361, 362, 363, 365, 366, 370, 371, - 372, 373, 381, 385, 401, 402, 413, 425, 430, 249, - 409, 431, 0, 285, 0, 0, 287, 234, 252, 262, - 0, 420, 382, 189, 353, 241, 178, 206, 192, 213, - 228, 231, 266, 295, 301, 330, 333, 246, 225, 204, - 350, 201, 368, 388, 389, 390, 392, 299, 220, 393, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 1223, 0, 0, 0, 0, 0, 0, - 224, 0, 0, 0, 0, 275, 221, 0, 0, 331, - 0, 176, 0, 369, 209, 284, 282, 398, 235, 227, - 223, 208, 259, 290, 329, 387, 323, 0, 279, 0, - 0, 378, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 314, 379, 239, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 263, 226, 218, 395, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 303, 0, 0, 0, 0, 427, 0, 0, 0, 0, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 313, 352, 358, 0, 0, 0, 210, 0, 356, 327, - 412, 194, 237, 349, 332, 354, 0, 0, 355, 280, - 400, 344, 410, 428, 429, 217, 307, 418, 391, 424, - 439, 188, 214, 321, 384, 415, 375, 300, 396, 397, - 270, 374, 245, 174, 278, 436, 186, 364, 202, 179, - 386, 408, 199, 367, 0, 0, 441, 181, 406, 383, - 297, 267, 268, 180, 0, 348, 222, 243, 212, 316, - 403, 404, 211, 442, 190, 423, 183, 0, 422, 309, - 399, 407, 298, 289, 182, 405, 296, 288, 273, 233, - 254, 342, 283, 343, 255, 305, 304, 306, 0, 177, - 0, 380, 416, 443, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 320, 341, 339, 345, - 0, 394, 411, 419, 426, 432, 433, 437, 434, 435, - 438, 308, 257, 376, 272, 281, 0, 0, 326, 357, - 200, 414, 377, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 277, 0, 346, 240, 440, - 421, 417, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 286, 291, 292, 293, 294, 310, 311, 312, - 315, 318, 319, 322, 324, 325, 328, 334, 335, 336, - 337, 338, 340, 347, 351, 359, 360, 361, 362, 363, - 365, 366, 370, 371, 372, 373, 381, 385, 401, 402, - 413, 425, 430, 249, 409, 431, 0, 285, 0, 0, - 287, 234, 252, 262, 0, 420, 382, 189, 353, 241, - 178, 206, 192, 213, 228, 231, 266, 295, 301, 330, - 333, 246, 225, 204, 350, 201, 368, 388, 389, 390, - 392, 299, 220, 393, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 317, 0, 1221, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 331, 0, 176, 0, 369, 209, 284, - 282, 398, 235, 227, 223, 208, 259, 290, 329, 387, - 323, 0, 279, 0, 0, 378, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 314, 379, 239, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 395, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 303, 0, 0, 0, 0, 427, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 313, 352, 358, 0, 0, 0, - 210, 0, 356, 327, 412, 194, 237, 349, 332, 354, - 0, 0, 355, 280, 400, 344, 410, 428, 429, 217, - 307, 418, 391, 424, 439, 188, 214, 321, 384, 415, - 375, 300, 396, 397, 270, 374, 245, 174, 278, 436, - 186, 364, 202, 179, 386, 408, 199, 367, 0, 0, - 441, 181, 406, 383, 297, 267, 268, 180, 0, 348, - 222, 243, 212, 316, 403, 404, 211, 442, 190, 423, - 183, 0, 422, 309, 399, 407, 298, 289, 182, 405, - 296, 288, 273, 233, 254, 342, 283, 343, 255, 305, - 304, 306, 0, 177, 0, 380, 416, 443, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 320, 341, 339, 345, 0, 394, 411, 419, 426, 432, - 433, 437, 434, 435, 438, 308, 257, 376, 272, 281, - 0, 0, 326, 357, 200, 414, 377, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, - 0, 346, 240, 440, 421, 417, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 286, 291, 292, 293, - 294, 310, 311, 312, 315, 318, 319, 322, 324, 325, - 328, 334, 335, 336, 337, 338, 340, 347, 351, 359, - 360, 361, 362, 363, 365, 366, 370, 371, 372, 373, - 381, 385, 401, 402, 413, 425, 430, 249, 409, 431, - 0, 285, 0, 0, 287, 234, 252, 262, 0, 420, - 382, 189, 353, 241, 178, 206, 192, 213, 228, 231, - 266, 295, 301, 330, 333, 246, 225, 204, 350, 201, - 368, 388, 389, 390, 392, 299, 220, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 1219, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 331, 0, 176, - 0, 369, 209, 284, 282, 398, 235, 227, 223, 208, - 259, 290, 329, 387, 323, 0, 279, 0, 0, 378, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 314, - 379, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 395, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 303, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 313, 352, - 358, 0, 0, 0, 210, 0, 356, 327, 412, 194, - 237, 349, 332, 354, 0, 0, 355, 280, 400, 344, - 410, 428, 429, 217, 307, 418, 391, 424, 439, 188, - 214, 321, 384, 415, 375, 300, 396, 397, 270, 374, - 245, 174, 278, 436, 186, 364, 202, 179, 386, 408, - 199, 367, 0, 0, 441, 181, 406, 383, 297, 267, - 268, 180, 0, 348, 222, 243, 212, 316, 403, 404, - 211, 442, 190, 423, 183, 0, 422, 309, 399, 407, - 298, 289, 182, 405, 296, 288, 273, 233, 254, 342, - 283, 343, 255, 305, 304, 306, 0, 177, 0, 380, - 416, 443, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 320, 341, 339, 345, 0, 394, - 411, 419, 426, 432, 433, 437, 434, 435, 438, 308, - 257, 376, 272, 281, 0, 0, 326, 357, 200, 414, - 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 346, 240, 440, 421, 417, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 286, 291, 292, 293, 294, 310, 311, 312, 315, 318, - 319, 322, 324, 325, 328, 334, 335, 336, 337, 338, - 340, 347, 351, 359, 360, 361, 362, 363, 365, 366, - 370, 371, 372, 373, 381, 385, 401, 402, 413, 425, - 430, 249, 409, 431, 0, 285, 0, 0, 287, 234, - 252, 262, 0, 420, 382, 189, 353, 241, 178, 206, - 192, 213, 228, 231, 266, 295, 301, 330, 333, 246, - 225, 204, 350, 201, 368, 388, 389, 390, 392, 299, - 220, 393, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, - 0, 331, 0, 176, 0, 369, 209, 284, 282, 398, - 235, 227, 223, 208, 259, 290, 329, 387, 323, 0, - 279, 0, 0, 378, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 314, 379, 239, 1194, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, - 218, 395, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 303, 0, 0, 0, 0, 427, 0, 0, - 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, - 0, 0, 313, 352, 358, 0, 0, 0, 210, 0, - 356, 327, 412, 194, 237, 349, 332, 354, 0, 0, - 355, 280, 400, 344, 410, 428, 429, 217, 307, 418, - 391, 424, 439, 188, 214, 321, 384, 415, 375, 300, - 396, 397, 270, 374, 245, 174, 278, 436, 186, 364, - 202, 179, 386, 408, 199, 367, 0, 0, 441, 181, - 406, 383, 297, 267, 268, 180, 0, 348, 222, 243, - 212, 316, 403, 404, 211, 442, 190, 423, 183, 0, - 422, 309, 399, 407, 298, 289, 182, 405, 296, 288, - 273, 233, 254, 342, 283, 343, 255, 305, 304, 306, - 0, 177, 0, 380, 416, 443, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 320, 341, - 339, 345, 0, 394, 411, 419, 426, 432, 433, 437, - 434, 435, 438, 308, 257, 376, 272, 281, 0, 0, - 326, 357, 200, 414, 377, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 277, 0, 346, - 240, 440, 421, 417, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 286, 291, 292, 293, 294, 310, - 311, 312, 315, 318, 319, 322, 324, 325, 328, 334, - 335, 336, 337, 338, 340, 347, 351, 359, 360, 361, - 362, 363, 365, 366, 370, 371, 372, 373, 381, 385, - 401, 402, 413, 425, 430, 249, 409, 431, 0, 285, - 0, 0, 287, 234, 252, 262, 0, 420, 382, 189, - 353, 241, 178, 206, 192, 213, 228, 231, 266, 295, - 301, 330, 333, 246, 225, 204, 350, 201, 368, 388, - 389, 390, 392, 299, 220, 393, 0, 0, 0, 0, - 1095, 0, 0, 0, 0, 0, 0, 317, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 331, 0, 176, 0, 369, - 209, 284, 282, 398, 235, 227, 223, 208, 259, 290, - 329, 387, 323, 0, 279, 0, 0, 378, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 314, 379, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 395, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 303, 0, 0, 0, - 0, 427, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 313, 352, 358, 0, - 0, 0, 210, 0, 356, 327, 412, 194, 237, 349, - 332, 354, 0, 0, 355, 280, 400, 344, 410, 428, - 429, 217, 307, 418, 391, 424, 439, 188, 214, 321, - 384, 415, 375, 300, 396, 397, 270, 374, 245, 174, - 278, 436, 186, 364, 202, 179, 386, 408, 199, 367, - 0, 0, 441, 181, 406, 383, 297, 267, 268, 180, - 0, 348, 222, 243, 212, 316, 403, 404, 211, 442, - 190, 423, 183, 0, 422, 309, 399, 407, 298, 289, - 182, 405, 296, 288, 273, 233, 254, 342, 283, 343, - 255, 305, 304, 306, 0, 177, 0, 380, 416, 443, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 320, 341, 339, 345, 0, 394, 411, 419, - 426, 432, 433, 437, 434, 435, 438, 308, 257, 376, - 272, 281, 0, 0, 326, 357, 200, 414, 377, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 346, 240, 440, 421, 417, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 286, 291, - 292, 293, 294, 310, 311, 312, 315, 318, 319, 322, - 324, 325, 328, 334, 335, 336, 337, 338, 340, 347, - 351, 359, 360, 361, 362, 363, 365, 366, 370, 371, - 372, 373, 381, 385, 401, 402, 413, 425, 430, 249, - 409, 431, 0, 285, 0, 0, 287, 234, 252, 262, - 0, 420, 382, 189, 353, 241, 178, 206, 192, 213, - 228, 231, 266, 295, 301, 330, 333, 246, 225, 204, - 350, 201, 368, 388, 389, 390, 392, 299, 220, 393, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 317, 0, 0, 0, 0, 0, 0, 0, 1086, - 224, 0, 0, 0, 0, 275, 221, 0, 0, 331, - 0, 176, 0, 369, 209, 284, 282, 398, 235, 227, - 223, 208, 259, 290, 329, 387, 323, 0, 279, 0, - 0, 378, 302, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 314, 379, 239, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 263, 226, 218, 395, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 303, 0, 0, 0, 0, 427, 0, 0, 0, 0, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 313, 352, 358, 0, 0, 0, 210, 0, 356, 327, - 412, 194, 237, 349, 332, 354, 0, 0, 355, 280, - 400, 344, 410, 428, 429, 217, 307, 418, 391, 424, - 439, 188, 214, 321, 384, 415, 375, 300, 396, 397, - 270, 374, 245, 174, 278, 436, 186, 364, 202, 179, - 386, 408, 199, 367, 0, 0, 441, 181, 406, 383, - 297, 267, 268, 180, 0, 348, 222, 243, 212, 316, - 403, 404, 211, 442, 190, 423, 183, 0, 422, 309, - 399, 407, 298, 289, 182, 405, 296, 288, 273, 233, - 254, 342, 283, 343, 255, 305, 304, 306, 0, 177, - 0, 380, 416, 443, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 320, 341, 339, 345, - 0, 394, 411, 419, 426, 432, 433, 437, 434, 435, - 438, 308, 257, 376, 272, 281, 0, 0, 326, 357, - 200, 414, 377, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 277, 0, 346, 240, 440, - 421, 417, 0, 0, 216, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 286, 291, 292, 293, 294, 310, 311, 312, - 315, 318, 319, 322, 324, 325, 328, 334, 335, 336, - 337, 338, 340, 347, 351, 359, 360, 361, 362, 363, - 365, 366, 370, 371, 372, 373, 381, 385, 401, 402, - 413, 425, 430, 249, 409, 431, 0, 285, 0, 0, - 287, 234, 252, 262, 0, 420, 382, 189, 353, 241, - 178, 206, 192, 213, 228, 231, 266, 295, 301, 330, - 333, 246, 225, 204, 350, 201, 368, 388, 389, 390, - 392, 299, 220, 393, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 317, 0, 0, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 331, 0, 176, 0, 369, 209, 284, - 282, 398, 235, 227, 223, 208, 259, 290, 329, 387, - 323, 0, 279, 0, 0, 378, 302, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 314, 379, 239, 0, 0, - 0, 167, 168, 169, 0, 942, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 395, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 303, 0, 0, 0, 0, 427, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 313, 352, 358, 0, 0, 0, - 210, 0, 356, 327, 412, 194, 237, 349, 332, 354, - 0, 0, 355, 280, 400, 344, 410, 428, 429, 217, - 307, 418, 391, 424, 439, 188, 214, 321, 384, 415, - 375, 300, 396, 397, 270, 374, 245, 174, 278, 436, - 186, 364, 202, 179, 386, 408, 199, 367, 0, 0, - 441, 181, 406, 383, 297, 267, 268, 180, 0, 348, - 222, 243, 212, 316, 403, 404, 211, 442, 190, 423, - 183, 0, 422, 309, 399, 407, 298, 289, 182, 405, - 296, 288, 273, 233, 254, 342, 283, 343, 255, 305, - 304, 306, 0, 177, 0, 380, 416, 443, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 320, 341, 339, 345, 0, 394, 411, 419, 426, 432, - 433, 437, 434, 435, 438, 308, 257, 376, 272, 281, - 0, 0, 326, 357, 200, 414, 377, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, - 0, 346, 240, 440, 421, 417, 0, 0, 216, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 286, 291, 292, 293, - 294, 310, 311, 312, 315, 318, 319, 322, 324, 325, - 328, 334, 335, 336, 337, 338, 340, 347, 351, 359, - 360, 361, 362, 363, 365, 366, 370, 371, 372, 373, - 381, 385, 401, 402, 413, 425, 430, 249, 409, 431, - 0, 285, 0, 0, 287, 234, 252, 262, 0, 420, - 382, 189, 353, 241, 178, 206, 192, 213, 228, 231, - 266, 295, 301, 330, 333, 246, 225, 204, 350, 201, - 368, 388, 389, 390, 392, 299, 220, 393, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 317, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 331, 0, 176, - 0, 369, 209, 284, 282, 398, 235, 227, 223, 208, - 259, 290, 329, 387, 323, 0, 279, 0, 0, 378, - 302, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 314, - 379, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 395, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 498, 0, 247, 0, 303, 0, - 0, 0, 0, 427, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 313, 352, - 358, 0, 0, 0, 210, 0, 356, 327, 412, 194, - 237, 349, 332, 354, 0, 0, 355, 280, 400, 344, - 410, 428, 429, 217, 307, 418, 391, 424, 439, 188, - 214, 321, 384, 415, 375, 300, 396, 397, 270, 374, - 245, 174, 278, 436, 186, 364, 202, 179, 386, 408, - 199, 367, 0, 0, 441, 181, 406, 383, 297, 267, - 268, 180, 0, 348, 222, 243, 212, 316, 403, 404, - 211, 442, 190, 423, 183, 0, 422, 309, 399, 407, - 298, 289, 182, 405, 296, 288, 273, 233, 254, 342, - 283, 343, 255, 305, 304, 306, 0, 177, 0, 380, - 416, 443, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 320, 341, 339, 345, 0, 394, - 411, 419, 426, 432, 433, 437, 434, 435, 438, 308, - 257, 376, 272, 281, 0, 0, 326, 357, 200, 414, - 377, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 346, 240, 440, 421, 417, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 286, 291, 292, 293, 294, 310, 311, 312, 315, 318, - 319, 322, 324, 325, 328, 334, 335, 336, 337, 338, - 340, 347, 351, 359, 360, 361, 362, 363, 365, 366, - 370, 371, 372, 373, 381, 385, 401, 402, 413, 425, - 430, 497, 409, 431, 0, 285, 0, 0, 287, 234, - 252, 262, 0, 420, 382, 189, 353, 241, 178, 206, - 192, 213, 228, 231, 266, 295, 301, 330, 333, 246, - 225, 204, 350, 201, 368, 388, 389, 390, 392, 299, - 220, 393, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 317, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, - 0, 331, 0, 176, 0, 369, 209, 284, 282, 398, - 235, 227, 223, 208, 259, 290, 329, 387, 323, 0, - 279, 0, 0, 378, 302, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 314, 379, 239, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, - 218, 395, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 303, 0, 0, 446, 0, 427, 0, 0, - 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, - 0, 0, 313, 352, 358, 0, 0, 0, 210, 0, - 356, 327, 412, 194, 237, 349, 332, 354, 0, 0, - 355, 280, 400, 344, 410, 428, 429, 217, 307, 418, - 391, 424, 439, 188, 214, 321, 384, 415, 375, 300, - 396, 397, 270, 374, 245, 174, 278, 436, 186, 364, - 202, 179, 386, 408, 199, 367, 0, 0, 441, 181, - 406, 383, 297, 267, 268, 180, 0, 348, 222, 243, - 212, 316, 403, 404, 211, 442, 190, 423, 183, 0, - 422, 309, 399, 407, 298, 289, 182, 405, 296, 288, - 273, 233, 254, 342, 283, 343, 255, 305, 304, 306, - 0, 177, 0, 380, 416, 443, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 320, 341, - 339, 345, 0, 394, 411, 419, 426, 432, 433, 437, - 434, 435, 438, 308, 257, 376, 272, 281, 0, 0, - 326, 357, 200, 414, 377, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 277, 0, 346, - 240, 440, 421, 417, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 286, 291, 292, 293, 294, 310, - 311, 312, 315, 318, 319, 322, 324, 325, 328, 334, - 335, 336, 337, 338, 340, 347, 351, 359, 360, 361, - 362, 363, 365, 366, 370, 371, 372, 373, 381, 385, - 401, 402, 413, 425, 430, 249, 409, 431, 0, 285, - 0, 0, 287, 234, 252, 262, 0, 420, 382, 189, - 353, 241, 178, 206, 192, 213, 228, 231, 266, 295, - 301, 330, 333, 246, 225, 204, 350, 201, 368, 388, - 389, 390, 392, 299, 220, 393, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 317, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 331, 0, 176, 0, 369, - 209, 284, 282, 398, 235, 227, 223, 208, 259, 290, - 329, 387, 323, 0, 279, 0, 0, 378, 302, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 314, 379, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 395, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 303, 0, 0, 0, - 0, 427, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 313, 352, 358, 0, - 0, 0, 210, 0, 356, 327, 412, 194, 237, 349, - 332, 354, 0, 0, 355, 280, 400, 344, 410, 428, - 429, 217, 307, 418, 391, 424, 439, 188, 214, 321, - 384, 415, 375, 300, 396, 397, 270, 374, 245, 174, - 278, 436, 186, 364, 202, 179, 386, 408, 199, 367, - 0, 0, 441, 181, 406, 383, 297, 267, 268, 180, - 0, 348, 222, 243, 212, 316, 403, 404, 211, 442, - 190, 423, 183, 0, 422, 309, 399, 407, 298, 289, - 182, 405, 296, 288, 273, 233, 254, 342, 283, 343, - 255, 305, 304, 306, 0, 177, 0, 380, 416, 443, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 320, 341, 339, 345, 0, 394, 411, 419, - 426, 432, 433, 437, 434, 435, 438, 308, 257, 376, - 272, 281, 0, 0, 326, 357, 200, 414, 377, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 346, 240, 440, 421, 417, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 286, 291, - 292, 293, 294, 310, 311, 312, 315, 318, 319, 322, - 324, 325, 328, 334, 335, 336, 337, 338, 340, 347, - 351, 359, 360, 361, 362, 363, 365, 366, 370, 371, - 372, 373, 381, 385, 401, 402, 413, 425, 430, 249, - 409, 431, 0, 285, 0, 0, 287, 234, 252, 262, - 0, 420, 382, 189, 353, 241, 178, 206, 192, 213, - 228, 231, 266, 295, 301, 330, 333, 246, 225, 204, - 350, 201, 368, 388, 389, 390, 392, 299, 220, -} - -var yyPact = [...]int{ - 2891, -1000, -350, 1744, -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, 1702, 1336, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 593, 1413, -1000, 1625, 4166, -1000, 29188, 419, - -1000, 28714, 412, 2217, 29188, -1000, 81, -1000, 67, 29188, - 91, 28240, -1000, -1000, -277, 13070, 1578, -25, -27, 29188, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1392, - 1662, 1679, 1698, 1167, 1883, -1000, 11173, 11173, 308, 308, - 308, 9277, -1000, -1000, 16863, 29188, 29188, 611, -1000, 1625, - -1000, -1000, 223, -1000, 219, 1364, -1000, 1363, -1000, 479, - 376, 225, 314, 304, 222, 220, 218, 215, 214, 213, - 212, 211, 227, -1000, 602, 602, -144, -152, 293, 283, - 283, 283, 327, 1602, 1601, -1000, 526, -1000, 602, 602, - 221, 602, 602, 602, 602, 191, 190, 602, 602, 602, - 602, 602, 602, 602, 602, 602, 602, 602, 602, 602, - 602, 602, 175, 1625, 170, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 29188, 116, 29188, -1000, 497, 29188, - 660, 660, 44, 660, 660, 660, 660, 74, 440, -38, - -1000, 63, 182, 78, 179, 668, 152, 69, -1000, -1000, - 148, 668, 1018, 61, -1000, 660, 7373, 7373, 7373, -1000, - 1614, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 325, - -1000, -1000, -1000, -1000, 29188, 27766, 254, 654, -1000, -1000, - -1000, 6, -1000, -1000, 1211, 937, -1000, 13070, 2594, 1168, - 1168, -1000, -1000, 456, -1000, -1000, 14492, 14492, 14492, 14492, - 14492, 14492, 14492, 14492, 14492, 14492, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1168, 492, -1000, 12596, 1168, 1168, 1168, 1168, 1168, 1168, - 1168, 1168, 13070, 1168, 1168, 1168, 1168, 1168, 1168, 1168, - 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, 1168, - -1000, -1000, -1000, 29188, -1000, 1168, 107, 1702, -1000, 1336, - -1000, -1000, -1000, 1612, 13070, 13070, 1702, -1000, 1503, 11173, - -1000, -1000, 1878, -1000, -1000, -1000, -1000, -1000, 786, 1725, - -1000, 15440, 483, 1724, 27292, -1000, 20656, 26818, 1362, 8801, - -56, -1000, -1000, -1000, 646, 19234, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1614, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1261, 29188, -1000, -1000, 4331, 1101, -1000, 1412, -1000, 1240, - -1000, 1381, 1345, 405, 1101, 387, 384, 375, -1000, -108, - -1000, -1000, -1000, -1000, -1000, 602, 602, 226, 4166, 2241, - -1000, -1000, -1000, 26344, 1410, 1101, -1000, 1408, -1000, 722, - 378, 410, 410, 1101, -1000, -1000, 29188, 1101, 702, 700, - 29188, 29188, -1000, 25870, -1000, 25396, 24922, 916, 29188, 24448, - 23974, 23500, 23026, 22552, -1000, 1507, -1000, 1399, -1000, -1000, - -1000, 29188, 29188, 29188, 217, -1000, -1000, 29188, 1101, -1000, - -1000, 903, 902, 602, 602, 900, 1015, 1014, 1009, 602, - 602, 895, 1008, 21130, 164, 894, 891, 888, 917, 1005, - 115, 906, 884, 887, 29188, 1407, 29188, -1000, 144, 640, - 238, 619, 1625, 1576, 1361, 324, 391, 1101, 295, 295, - -1000, 7849, -1000, -1000, 1000, 13070, -1000, 683, 668, 668, - -1000, -1000, -1000, -1000, -1000, -1000, 660, 29188, 683, -1000, - -1000, -1000, 668, 660, 29188, 660, 660, 660, 660, 668, - 668, 668, 660, 29188, 29188, 29188, 29188, 29188, 29188, 29188, - 29188, 29188, 7373, 7373, 7373, 541, 660, -286, -1000, 1460, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 82, -1000, - -1000, -1000, -1000, -1000, 1744, -1000, -1000, -1000, -113, 1358, - 22078, -1000, -287, -288, -295, -296, -1000, -1000, -1000, -297, - -298, -1000, -1000, -1000, 13070, 13070, 13070, 13070, 1045, 549, - 14492, 793, 630, 14492, 14492, 14492, 14492, 14492, 14492, 14492, - 14492, 14492, 14492, 14492, 14492, 14492, 14492, 14492, 712, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1101, -1000, 1722, - 1166, 1166, 506, 506, 506, 506, 506, 506, 506, 506, - 506, 4860, 9751, 7849, 1167, 1237, 1702, 11173, 11173, 13070, - 13070, 12121, 11647, 11173, 1609, 665, 937, 29188, -1000, 1048, - -1000, -1000, 14018, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 29188, 29188, 11173, 11173, 11173, - 11173, 11173, -1000, 1338, -1000, -176, 16389, 13070, 999, 1679, - 1167, 1878, 1634, 1738, 536, 757, 1320, -1000, 977, 1679, - 18760, 1337, -1000, 1878, -1000, -1000, -1000, 29188, -1000, -1000, - 21604, -1000, -1000, 6897, 29188, 209, 29188, -1000, 1341, 1599, - -1000, -1000, -1000, 1652, 18286, 29188, 1287, 1275, -1000, -1000, - 481, 8325, -56, -1000, 8325, 1290, -1000, -54, -69, 10225, - 486, -1000, -1000, -1000, 293, 14966, 1105, 1585, 27, -1000, - -1000, -1000, 1381, -1000, 1381, 1381, 1381, 1381, 217, 217, - 217, 217, -1000, -1000, -1000, -1000, -1000, 1401, 1400, -1000, - 1381, 1381, 1381, 1381, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1395, 1395, 1395, 1384, 1384, 264, -1000, 13070, 140, - 29188, 1631, 870, 144, 300, 1427, 1101, 1101, 1101, 300, - -1000, 1080, 1063, -1000, 1316, -1000, -1000, 1697, -1000, -1000, - 490, 754, 753, 600, 29188, 124, 208, -1000, 253, -1000, - 29188, 1101, 697, 410, 1101, -1000, 1101, -1000, -1000, -1000, - -1000, 472, -1000, -1000, 1101, 1309, -1000, 1289, 779, 748, - 742, 746, 1309, -1000, -1000, -129, 1309, -1000, 1309, -1000, - 1309, -1000, 1309, -1000, 1309, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 612, 29188, 124, 712, -1000, 323, -1000, - -1000, 712, 712, -1000, -1000, -1000, -1000, 997, 995, -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, -338, 29188, -1000, 138, - 617, 195, 230, 188, 29188, 122, 1656, 161, 189, 29188, - 29188, 295, 1456, 29188, 1647, 29188, -1000, -1000, -1000, -1000, - 937, 29188, -1000, -1000, 660, 660, -1000, -1000, 29188, 660, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 660, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 993, -1000, -1000, 29188, 29188, -1000, -1000, - -1000, -1000, -1000, 62, -57, 198, -1000, -1000, -1000, -1000, - 1661, -1000, 937, 549, 726, 657, -1000, -1000, 838, -1000, - -1000, 1293, -1000, -1000, -1000, -1000, 793, 14492, 14492, 14492, - 981, 1293, 2435, 2151, 2402, 506, 686, 686, 517, 517, - 517, 517, 517, 1315, 1315, -1000, -1000, -1000, -1000, 1048, - -1000, -1000, -1000, 1048, 11173, 11173, 1296, 1168, 469, -1000, - 1392, -1000, -1000, 1679, 1184, 1184, 922, 872, 648, 1718, - 1184, 563, 1717, 1184, 1184, 11173, -1000, -1000, 659, -1000, - 13070, 1048, -1000, 826, 1295, 1291, 1184, 1048, 1048, 1184, - 1184, 29188, -1000, -274, -1000, -91, 478, 1168, -1000, 21130, - 1048, 1211, -1000, 1612, -1000, -1000, 1574, -1000, 1493, 13070, - 13070, 13070, -1000, -1000, -1000, 1612, 1686, -1000, 1534, 1532, - 1708, 11173, 20656, 1878, -1000, -1000, -1000, 467, 1708, 1311, - 1168, -1000, 29188, 20656, 20656, 20656, 20656, 20656, -1000, 1483, - 1481, -1000, 1473, 1471, 1492, 29188, -1000, 1207, 1167, 18286, - 209, 1286, 20656, 29188, -1000, -1000, 20656, 29188, 6421, -1000, - 1290, -56, -47, -1000, -1000, -1000, -1000, 937, -1000, 924, - -1000, 243, -1000, 284, -1000, -1000, -1000, -1000, 368, 1651, - 1582, 2, -1000, -1000, -1000, 217, 217, -1000, -1000, 486, - 758, 486, 486, 486, 990, 990, -1000, -1000, -1000, -1000, - -1000, 869, -1000, -1000, -1000, 859, -1000, -1000, 1026, 1470, - 140, -1000, -1000, 602, 988, 1592, 29188, -1000, -1000, 1100, - 138, 29188, 671, 1454, -1000, 1427, 1427, 1427, 29188, -1000, - -1000, -1000, -1000, 271, 29188, 1202, -1000, 117, -1000, 1086, - 29188, -1000, 1194, 1394, 1101, 1101, -1000, -1000, 7849, -1000, - 29188, 1168, -1000, -1000, -1000, -1000, 389, 1618, 1610, 124, - 117, 486, 1101, -1000, -1000, -1000, -1000, -1000, -342, 1191, - 349, 118, 169, 29188, 29188, 29188, 29188, 29188, 434, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 178, 318, -1000, 29188, - 29188, 408, -1000, -1000, -1000, 668, -1000, -1000, 668, -1000, - -1000, -1000, -1000, -1000, -1000, 1607, -62, -312, -1000, -309, - -1000, -1000, -1000, -1000, 981, 1293, 1813, -1000, 14492, 14492, - -1000, -1000, 1184, 1184, 11173, 7849, 1702, 1612, -1000, -1000, - 590, 712, 590, 14492, 14492, -1000, 14492, 14492, -1000, -120, - 1131, 591, -1000, 13070, 818, -1000, -1000, 14492, 14492, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 372, 357, - 355, 29188, -1000, -1000, -1000, 1001, 986, 1497, 937, 937, - -1000, -1000, 29188, -1000, -1000, -1000, -1000, 1706, 13070, -1000, - 1276, -1000, 5945, 1679, 1452, 29188, 1168, 1744, 15915, 29188, - 1270, -1000, 615, 1599, 1431, 1451, 1541, -1000, -1000, -1000, - -1000, 1479, -1000, 1475, -1000, -1000, -1000, -1000, -1000, 1167, - 1708, 20656, 1161, -1000, 1161, -1000, 462, -1000, -1000, -1000, - -87, -78, -1000, -1000, -1000, 293, -1000, -1000, -1000, -1000, - 771, 14492, 1737, -1000, 985, -1000, -1000, 696, 682, -1000, - 29188, 1390, -1000, -1000, -1000, 486, 486, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1165, -1000, 1147, 1273, 1133, 60, - -1000, 1274, 1606, 602, 602, -1000, 858, -1000, 1101, -1000, - -1000, 347, -1000, 1638, 29188, 1448, 1447, 1445, -1000, 1696, - 1272, -1000, 29188, -1000, -1000, 29188, -1000, 1520, 140, 29188, - -1000, -1000, -1000, -1000, 208, 29188, -1000, 1166, 117, -1000, - -1000, -1000, -1000, -1000, -1000, 29188, 159, -1000, 1389, 1022, - -1000, 1422, -1000, -1000, -1000, -1000, 85, 194, -1000, 29188, - 404, 1470, 29188, -1000, -1000, -1000, 660, 660, -1000, 1605, - -1000, 1101, -1000, 14492, 1293, 1293, -1000, -1000, 1048, -1000, - 1679, -1000, 1048, 1381, 1381, -1000, 1381, 1384, -1000, 1381, - 64, 1381, 49, 1048, 1048, 2323, 1629, 1549, 1269, 1168, - -115, -1000, 937, 13070, 1244, 1193, 1168, 1168, 1168, 1114, - 979, 217, -1000, -1000, -1000, 1704, 1694, 937, -1000, -1000, - -1000, 1627, 1187, 1138, -1000, -1000, 10699, 1116, 1510, 449, - 1114, 1702, 29188, 13070, -1000, -1000, 13070, 1369, -1000, 13070, - -1000, -1000, -1000, 1702, 1702, 1161, -1000, -1000, 455, -1000, - -1000, -1000, -1000, -1000, 1293, -30, -1000, -1000, -1000, 1367, - 14492, -1000, -1000, 217, 976, 217, 822, -1000, 803, -1000, - -1000, -213, -1000, -1000, 1388, 1441, -1000, -1000, 29188, -1000, - -1000, 29188, 29188, 29188, 29188, 29188, -1000, -1000, 203, -1000, - 1110, 1108, -1000, -146, -1000, -1000, 1366, -1000, -1000, -1000, - 1084, -1000, -130, 1101, 29188, 29188, 29188, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1293, -1000, 1612, -1000, -1000, - 296, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14492, - 14492, 14492, 14492, 14492, 1679, 967, 937, 14492, 14492, 17811, - 20182, 20182, 17337, 217, -2, -1000, 13070, 13070, 679, -1000, - 1168, -1000, 1340, 29188, 1168, 29188, -1000, 1679, -1000, 937, - 937, 29188, 937, 1679, -1000, -1000, 29188, 1096, 486, -1000, - 486, 1079, 1070, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 1366, -1000, -1000, -1000, 1272, -1000, 201, 237, -1000, - 208, -1000, -155, -172, 1650, 29188, -1000, -1000, 7849, -1000, - -1000, 1294, 1424, -1000, -1000, -1000, -1000, 826, 826, 826, - 826, 396, 1048, -1000, 826, 826, 1077, -1000, -1000, -1000, - 1077, 1077, 478, -265, -1000, 1573, 1548, 937, 1211, 1733, - -1000, 1168, 1744, 447, 1138, -1000, -1000, 1055, -1000, 1051, - -1000, -1000, -1000, -1000, -1000, 1649, 1168, -1000, -1000, -1000, - -1000, 1336, 1046, 1181, -1000, 557, 29188, 29188, -1000, -1000, - -1000, -1000, 1048, 176, -135, -1000, -1000, -1000, 19708, -1000, - -1000, -1000, -1000, -2, 258, -1000, 1547, 1548, -1000, 1692, - 1552, 1691, -1000, 29188, 1138, 29188, -1000, 1440, 535, 1336, - 13544, 224, -1000, 7849, 5469, 1028, -1000, -1000, 1491, -123, - -139, -1000, -1000, 1546, 1560, 1560, 1547, -1000, 1687, 1685, - -1000, 966, 1684, 955, 1121, -1000, 1439, -1000, 1716, -1000, - -1000, -1000, 770, 954, -1000, -1000, -1000, 224, 826, 1048, - -1000, -52, -1000, -1000, -1000, -1000, -1000, 1422, -1000, 1455, - -1000, 1538, 834, -1000, -1000, -1000, -1000, 950, 930, -1000, - 839, -1000, -1000, 1731, 445, 445, -1000, -1000, -1000, -1000, - -1000, 262, -1000, -1000, -130, -131, -1000, 809, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 247, 845, -1000, 142, - -1000, -143, -1000, -1000, -1000, -1000, -1000, -1000, -140, -1000, -} - -var yyPgo = [...]int{ - 0, 2060, 2059, 11, 101, 99, 2058, 2057, 2054, 2049, - 135, 130, 125, 2048, 2047, 2046, 2045, 2044, 2042, 2041, - 2039, 2038, 2036, 2035, 2034, 66, 158, 38, 51, 142, - 2033, 2032, 36, 2029, 2028, 2027, 128, 126, 579, 2026, - 127, 68, 2025, 2024, 2023, 2022, 2020, 2019, 2013, 2012, - 2011, 2010, 2008, 2005, 2004, 2003, 204, 2002, 2000, 4, - 1997, 35, 1991, 1990, 1986, 1984, 1982, 100, 1981, 1979, - 1976, 122, 1974, 1973, 57, 274, 50, 77, 1972, 1971, - 90, 134, 1970, 71, 106, 1969, 1968, 93, 1967, 43, - 79, 85, 1965, 46, 1964, 1961, 63, 1942, 1938, 1937, - 86, 1934, 1933, 2428, 1932, 78, 89, 16, 53, 1930, - 1927, 1924, 1923, 39, 47, 1922, 1920, 32, 1918, 1917, - 136, 1916, 87, 18, 1911, 13, 19, 24, 1909, 98, - 1903, 44, 37, 1902, 94, 1901, 1897, 1896, 1895, 33, - 1894, 82, 107, 115, 1893, 1892, 1891, 17, 15, 1890, - 1889, 1885, 1883, 1872, 1868, 10, 1865, 14, 1864, 27, - 1860, 26, 20, 41, 81, 80, 29, 6, 1859, 118, - 1857, 23, 117, 76, 119, 1850, 1848, 1847, 958, 147, - 1845, 1844, 48, 1843, 102, 104, 1842, 175, 1839, 1838, - 59, 1305, 2360, 31, 132, 1836, 1835, 2192, 69, 88, - 28, 1832, 105, 1828, 1827, 1826, 143, 139, 56, 888, - 61, 1824, 1823, 1821, 1817, 1815, 1813, 1812, 83, 25, - 34, 109, 30, 1811, 1810, 1809, 73, 65, 1808, 113, - 112, 74, 124, 1807, 121, 103, 64, 1806, 40, 1804, - 1803, 1802, 1799, 58, 1798, 1797, 1796, 1795, 111, 110, - 72, 42, 1790, 45, 75, 116, 114, 1789, 22, 141, - 8, 1788, 1, 0, 1786, 3, 133, 174, 108, 1785, - 1781, 2, 1778, 5, 1777, 1763, 91, 1761, 1760, 1759, - 9, 21, 7, 1758, 1757, 3290, 437, 120, 1753, 129, -} - -//line sql.y:5330 -type yySymType struct { - union interface{} - empty struct{} - LengthScaleOption LengthScaleOption - tableName TableName - tableIdent TableIdent - str string - strs []string - vindexParam VindexParam - colIdent ColIdent - joinCondition JoinCondition - collateAndCharset CollateAndCharset - columnType ColumnType - yys int -} - -func (st *yySymType) ReferenceActionUnion() ReferenceAction { - v, _ := st.union.(ReferenceAction) - return v -} - -func (st *yySymType) aliasedTableNameUnion() *AliasedTableExpr { - v, _ := st.union.(*AliasedTableExpr) - return v -} - -func (st *yySymType) alterDatabaseUnion() *AlterDatabase { - v, _ := st.union.(*AlterDatabase) - return v -} - -func (st *yySymType) alterMigrationUnion() *AlterMigration { - v, _ := st.union.(*AlterMigration) - return v -} - -func (st *yySymType) alterOptionUnion() AlterOption { - v, _ := st.union.(AlterOption) - return v -} - -func (st *yySymType) alterOptionsUnion() []AlterOption { - v, _ := st.union.([]AlterOption) - return v -} - -func (st *yySymType) alterTableUnion() *AlterTable { - v, _ := st.union.(*AlterTable) - return v -} - -func (st *yySymType) boolValUnion() BoolVal { - v, _ := st.union.(BoolVal) - return v -} - -func (st *yySymType) booleanUnion() bool { - v, _ := st.union.(bool) - return v -} - -func (st *yySymType) characteristicUnion() Characteristic { - v, _ := st.union.(Characteristic) - return v -} - -func (st *yySymType) characteristicsUnion() []Characteristic { - v, _ := st.union.([]Characteristic) - return v -} - -func (st *yySymType) colKeyOptUnion() ColumnKeyOption { - v, _ := st.union.(ColumnKeyOption) - return v -} - -func (st *yySymType) colNameUnion() *ColName { - v, _ := st.union.(*ColName) - return v -} - -func (st *yySymType) colTupleUnion() ColTuple { - v, _ := st.union.(ColTuple) - return v -} - -func (st *yySymType) collateAndCharsetsUnion() []CollateAndCharset { - v, _ := st.union.([]CollateAndCharset) - return v -} - -func (st *yySymType) columnDefinitionUnion() *ColumnDefinition { - v, _ := st.union.(*ColumnDefinition) - return v -} - -func (st *yySymType) columnDefinitionsUnion() []*ColumnDefinition { - v, _ := st.union.([]*ColumnDefinition) - return v -} - -func (st *yySymType) columnStorageUnion() ColumnStorage { - v, _ := st.union.(ColumnStorage) - return v -} - -func (st *yySymType) columnTypeOptionsUnion() *ColumnTypeOptions { - v, _ := st.union.(*ColumnTypeOptions) - return v -} - -func (st *yySymType) columnsUnion() Columns { - v, _ := st.union.(Columns) - return v -} - -func (st *yySymType) comparisonExprOperatorUnion() ComparisonExprOperator { - v, _ := st.union.(ComparisonExprOperator) - return v -} - -func (st *yySymType) constraintDefinitionUnion() *ConstraintDefinition { - v, _ := st.union.(*ConstraintDefinition) - return v -} - -func (st *yySymType) constraintInfoUnion() ConstraintInfo { - v, _ := st.union.(ConstraintInfo) - return v -} - -func (st *yySymType) convertTypeUnion() *ConvertType { - v, _ := st.union.(*ConvertType) - return v -} - -func (st *yySymType) createDatabaseUnion() *CreateDatabase { - v, _ := st.union.(*CreateDatabase) - return v -} - -func (st *yySymType) createTableUnion() *CreateTable { - v, _ := st.union.(*CreateTable) - return v -} - -func (st *yySymType) derivedTableUnion() *DerivedTable { - v, _ := st.union.(*DerivedTable) - return v -} - -func (st *yySymType) explainTypeUnion() ExplainType { - v, _ := st.union.(ExplainType) - return v -} - -func (st *yySymType) exprUnion() Expr { - v, _ := st.union.(Expr) - return v -} - -func (st *yySymType) exprsUnion() Exprs { - v, _ := st.union.(Exprs) - return v -} - -func (st *yySymType) ignoreUnion() Ignore { - v, _ := st.union.(Ignore) - return v -} - -func (st *yySymType) indexColumnUnion() *IndexColumn { - v, _ := st.union.(*IndexColumn) - return v -} - -func (st *yySymType) indexColumnsUnion() []*IndexColumn { - v, _ := st.union.([]*IndexColumn) - return v -} - -func (st *yySymType) indexDefinitionUnion() *IndexDefinition { - v, _ := st.union.(*IndexDefinition) - return v -} - -func (st *yySymType) indexHintsUnion() *IndexHints { - v, _ := st.union.(*IndexHints) - return v -} - -func (st *yySymType) indexInfoUnion() *IndexInfo { - v, _ := st.union.(*IndexInfo) - return v -} - -func (st *yySymType) indexOptionUnion() *IndexOption { - v, _ := st.union.(*IndexOption) - return v -} - -func (st *yySymType) indexOptionsUnion() []*IndexOption { - v, _ := st.union.([]*IndexOption) - return v -} - -func (st *yySymType) insUnion() *Insert { - v, _ := st.union.(*Insert) - return v -} - -func (st *yySymType) insertActionUnion() InsertAction { - v, _ := st.union.(InsertAction) - return v -} - -func (st *yySymType) isExprOperatorUnion() IsExprOperator { - v, _ := st.union.(IsExprOperator) - return v -} - -func (st *yySymType) isolationLevelUnion() IsolationLevel { - v, _ := st.union.(IsolationLevel) - return v -} - -func (st *yySymType) joinTypeUnion() JoinType { - v, _ := st.union.(JoinType) - return v -} - -func (st *yySymType) limitUnion() *Limit { - v, _ := st.union.(*Limit) - return v -} - -func (st *yySymType) literalUnion() *Literal { - v, _ := st.union.(*Literal) - return v -} - -func (st *yySymType) lockUnion() Lock { - v, _ := st.union.(Lock) - return v -} - -func (st *yySymType) lockTypeUnion() LockType { - v, _ := st.union.(LockType) - return v -} - -func (st *yySymType) matchExprOptionUnion() MatchExprOption { - v, _ := st.union.(MatchExprOption) - return v -} - -func (st *yySymType) optLikeUnion() *OptLike { - v, _ := st.union.(*OptLike) - return v -} - -func (st *yySymType) optValUnion() Expr { - v, _ := st.union.(Expr) - return v -} - -func (st *yySymType) orderUnion() *Order { - v, _ := st.union.(*Order) - return v -} - -func (st *yySymType) orderByUnion() OrderBy { - v, _ := st.union.(OrderBy) - return v -} - -func (st *yySymType) orderDirectionUnion() OrderDirection { - v, _ := st.union.(OrderDirection) - return v -} - -func (st *yySymType) partDefUnion() *PartitionDefinition { - v, _ := st.union.(*PartitionDefinition) - return v -} - -func (st *yySymType) partDefsUnion() []*PartitionDefinition { - v, _ := st.union.([]*PartitionDefinition) - return v -} - -func (st *yySymType) partSpecUnion() *PartitionSpec { - v, _ := st.union.(*PartitionSpec) - return v -} - -func (st *yySymType) partSpecsUnion() []*PartitionSpec { - v, _ := st.union.([]*PartitionSpec) - return v -} - -func (st *yySymType) partitionsUnion() Partitions { - v, _ := st.union.(Partitions) - return v -} - -func (st *yySymType) referenceDefinitionUnion() *ReferenceDefinition { - v, _ := st.union.(*ReferenceDefinition) - return v -} - -func (st *yySymType) renameTablePairsUnion() []*RenameTablePair { - v, _ := st.union.([]*RenameTablePair) - return v -} - -func (st *yySymType) revertMigrationUnion() *RevertMigration { - v, _ := st.union.(*RevertMigration) - return v -} - -func (st *yySymType) scopeUnion() Scope { - v, _ := st.union.(Scope) - return v -} - -func (st *yySymType) selStmtUnion() SelectStatement { - v, _ := st.union.(SelectStatement) - return v -} - -func (st *yySymType) selectExprUnion() SelectExpr { - v, _ := st.union.(SelectExpr) - return v -} - -func (st *yySymType) selectExprsUnion() SelectExprs { - v, _ := st.union.(SelectExprs) - return v -} - -func (st *yySymType) selectIntoUnion() *SelectInto { - v, _ := st.union.(*SelectInto) - return v -} - -func (st *yySymType) setExprUnion() *SetExpr { - v, _ := st.union.(*SetExpr) - return v -} - -func (st *yySymType) setExprsUnion() SetExprs { - v, _ := st.union.(SetExprs) - return v -} - -func (st *yySymType) showFilterUnion() *ShowFilter { - v, _ := st.union.(*ShowFilter) - return v -} - -func (st *yySymType) statementUnion() Statement { - v, _ := st.union.(Statement) - return v -} - -func (st *yySymType) subqueryUnion() *Subquery { - v, _ := st.union.(*Subquery) - return v -} - -func (st *yySymType) tableAndLockTypeUnion() *TableAndLockType { - v, _ := st.union.(*TableAndLockType) - return v -} - -func (st *yySymType) tableAndLockTypesUnion() TableAndLockTypes { - v, _ := st.union.(TableAndLockTypes) - return v -} - -func (st *yySymType) tableExprUnion() TableExpr { - v, _ := st.union.(TableExpr) - return v -} - -func (st *yySymType) tableExprsUnion() TableExprs { - v, _ := st.union.(TableExprs) - return v -} - -func (st *yySymType) tableNamesUnion() TableNames { - v, _ := st.union.(TableNames) - return v -} - -func (st *yySymType) tableOptionUnion() *TableOption { - v, _ := st.union.(*TableOption) - return v -} - -func (st *yySymType) tableOptionsUnion() TableOptions { - v, _ := st.union.(TableOptions) - return v -} - -func (st *yySymType) tableSpecUnion() *TableSpec { - v, _ := st.union.(*TableSpec) - return v -} - -func (st *yySymType) updateExprUnion() *UpdateExpr { - v, _ := st.union.(*UpdateExpr) - return v -} - -func (st *yySymType) updateExprsUnion() UpdateExprs { - v, _ := st.union.(UpdateExprs) - return v -} - -func (st *yySymType) valTupleUnion() ValTuple { - v, _ := st.union.(ValTuple) - return v -} - -func (st *yySymType) valuesUnion() Values { - v, _ := st.union.(Values) - return v -} - -func (st *yySymType) vindexParamsUnion() []VindexParam { - v, _ := st.union.([]VindexParam) - return v -} - -func (st *yySymType) whenUnion() *When { - v, _ := st.union.(*When) - return v -} - -func (st *yySymType) whensUnion() []*When { - v, _ := st.union.([]*When) - return v -} - -var yyR1 = [...]int{ - 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, 1, 1, 263, 263, 263, 266, 266, - 21, 51, 3, 3, 3, 3, 2, 2, 8, 9, - 4, 5, 5, 10, 10, 63, 63, 11, 12, 12, - 12, 12, 287, 287, 98, 98, 96, 96, 97, 97, - 164, 164, 13, 14, 14, 174, 174, 173, 173, 173, - 175, 175, 175, 175, 209, 209, 15, 15, 15, 15, - 15, 72, 72, 265, 265, 264, 262, 262, 261, 261, - 260, 23, 24, 33, 33, 33, 33, 34, 35, 267, - 267, 239, 39, 39, 38, 38, 38, 38, 40, 40, - 37, 37, 36, 36, 241, 241, 228, 228, 240, 240, - 240, 240, 240, 240, 240, 227, 227, 86, 86, 145, - 145, 145, 145, 145, 145, 145, 145, 279, 279, 146, - 146, 146, 146, 146, 146, 280, 280, 280, 280, 211, - 211, 211, 211, 214, 214, 212, 212, 212, 212, 212, - 212, 212, 212, 212, 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, 217, - 217, 217, 217, 217, 217, 217, 217, 226, 226, 218, - 218, 221, 221, 222, 222, 222, 223, 223, 223, 224, - 224, 219, 219, 219, 219, 220, 220, 220, 229, 253, - 253, 252, 252, 250, 250, 250, 250, 238, 238, 247, - 247, 247, 247, 247, 237, 237, 233, 233, 233, 234, - 234, 235, 235, 232, 232, 236, 236, 249, 249, 248, - 230, 230, 231, 231, 255, 281, 281, 281, 281, 282, - 282, 256, 272, 273, 271, 271, 271, 271, 271, 61, - 61, 61, 186, 186, 186, 245, 245, 244, 244, 244, - 246, 246, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 243, 243, 243, 243, 243, 243, 243, 243, 243, 243, - 181, 181, 181, 270, 270, 270, 270, 270, 270, 269, - 269, 269, 242, 242, 242, 268, 268, 41, 41, 132, - 132, 30, 30, 30, 30, 30, 30, 29, 29, 29, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, - 25, 25, 31, 31, 26, 26, 26, 26, 26, 26, - 26, 26, 26, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, - 16, 16, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 259, 259, 259, 259, 259, 259, - 259, 259, 259, 259, 225, 225, 225, 257, 257, 258, - 258, 17, 22, 22, 18, 18, 18, 18, 19, 19, - 42, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, - 43, 43, 43, 43, 43, 43, 43, 43, 274, 274, - 180, 180, 188, 188, 179, 179, 202, 202, 202, 182, - 182, 182, 183, 183, 278, 278, 278, 44, 44, 46, - 46, 47, 48, 48, 204, 204, 205, 205, 49, 50, - 62, 62, 62, 62, 62, 62, 64, 64, 64, 7, - 7, 7, 7, 58, 58, 58, 6, 6, 45, 45, - 52, 275, 275, 276, 277, 277, 277, 277, 53, 55, - 20, 20, 20, 20, 20, 20, 79, 79, 67, 67, - 67, 67, 67, 67, 67, 67, 67, 67, 67, 67, - 73, 73, 73, 68, 68, 288, 56, 57, 57, 71, - 71, 71, 65, 65, 65, 70, 70, 70, 76, 76, - 78, 78, 78, 78, 78, 80, 80, 80, 80, 80, - 80, 80, 75, 75, 77, 77, 77, 77, 195, 195, - 195, 194, 194, 88, 88, 89, 89, 90, 90, 91, - 91, 91, 130, 106, 106, 162, 162, 161, 161, 163, - 163, 163, 163, 165, 165, 92, 92, 92, 92, 93, - 93, 94, 94, 95, 95, 203, 203, 200, 200, 200, - 199, 199, 99, 99, 99, 101, 100, 100, 100, 100, - 102, 102, 104, 104, 103, 103, 105, 107, 107, 107, - 107, 107, 108, 108, 87, 87, 87, 87, 87, 87, - 87, 87, 177, 177, 110, 110, 109, 109, 109, 109, - 109, 109, 109, 109, 109, 109, 121, 121, 121, 121, - 121, 121, 111, 111, 111, 111, 111, 111, 111, 74, - 74, 122, 122, 122, 129, 123, 123, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 114, 114, 114, 114, 114, 114, 114, 114, 114, - 114, 118, 118, 118, 118, 116, 116, 116, 116, 116, - 116, 116, 116, 116, 116, 116, 116, 116, 116, 117, - 117, 117, 117, 117, 117, 117, 117, 117, 117, 117, - 117, 117, 117, 117, 117, 289, 289, 120, 119, 119, - 119, 119, 119, 119, 119, 69, 69, 69, 69, 69, - 208, 208, 208, 210, 210, 210, 210, 210, 210, 210, - 210, 210, 210, 210, 210, 210, 135, 135, 66, 66, - 133, 133, 134, 136, 136, 131, 131, 131, 113, 113, - 113, 113, 113, 113, 113, 113, 115, 115, 115, 137, - 137, 138, 138, 139, 139, 140, 140, 141, 142, 142, - 142, 143, 143, 143, 143, 32, 32, 32, 32, 32, - 27, 27, 27, 27, 28, 28, 28, 81, 81, 81, - 81, 83, 83, 82, 82, 59, 59, 60, 60, 60, - 84, 84, 85, 85, 85, 85, 159, 159, 159, 144, - 144, 144, 144, 151, 151, 151, 147, 147, 149, 149, - 149, 150, 150, 150, 148, 156, 156, 158, 158, 157, - 157, 153, 153, 154, 154, 155, 155, 155, 152, 152, - 112, 112, 112, 112, 112, 160, 160, 160, 160, 166, - 166, 125, 125, 127, 127, 126, 128, 167, 167, 171, - 168, 168, 172, 172, 172, 172, 172, 169, 169, 170, - 170, 196, 196, 196, 176, 176, 187, 187, 184, 184, - 185, 185, 178, 178, 189, 189, 189, 54, 124, 124, - 254, 254, 251, 192, 192, 193, 193, 197, 197, 201, - 201, 198, 198, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 190, 190, 190, 190, 190, 190, 190, 190, - 190, 190, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 191, 191, 191, 191, - 191, 191, 191, 191, 191, 191, 285, 286, 206, 207, - 207, 207, -} - -var yyR2 = [...]int{ - 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, - 2, 3, 5, 6, 6, 7, 4, 6, 5, 7, - 8, 1, 3, 7, 8, 1, 1, 9, 9, 8, - 7, 7, 1, 1, 1, 3, 1, 3, 1, 3, - 0, 4, 3, 5, 4, 1, 3, 3, 2, 2, - 2, 2, 2, 1, 1, 1, 2, 2, 6, 12, - 2, 0, 2, 0, 2, 1, 0, 2, 1, 3, - 3, 6, 4, 7, 8, 8, 8, 6, 3, 1, - 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, - 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, - 3, 4, 3, 3, 3, 4, 9, 0, 2, 0, - 2, 3, 3, 4, 2, 3, 2, 1, 1, 0, - 2, 2, 3, 3, 2, 2, 1, 2, 1, 3, - 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, - 2, 2, 2, 2, 4, 4, 2, 2, 3, 3, - 3, 3, 1, 1, 1, 1, 1, 6, 6, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, - 3, 0, 5, 0, 3, 5, 0, 1, 1, 0, - 1, 0, 2, 2, 2, 0, 2, 2, 5, 0, - 1, 1, 2, 1, 3, 2, 3, 0, 1, 4, - 3, 3, 4, 2, 0, 2, 1, 1, 1, 1, - 1, 0, 1, 1, 1, 0, 1, 1, 3, 3, - 3, 1, 3, 1, 7, 5, 6, 6, 7, 0, - 1, 5, 3, 3, 1, 1, 2, 2, 2, 0, - 1, 1, 0, 1, 2, 0, 1, 1, 3, 2, - 1, 2, 3, 3, 4, 4, 3, 3, 3, 3, - 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 4, 5, - 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, - 2, 0, 1, 5, 1, 3, 7, 1, 3, 3, - 1, 2, 2, 2, 5, 5, 5, 6, 6, 5, - 5, 2, 2, 2, 2, 3, 3, 3, 4, 1, - 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, - 3, 2, 2, 2, 4, 4, 2, 11, 3, 6, - 8, 6, 6, 6, 13, 8, 6, 10, 5, 5, - 5, 5, 5, 3, 7, 4, 4, 4, 4, 3, - 3, 3, 7, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 2, 0, 2, 2, 1, 3, 8, - 8, 3, 3, 5, 7, 7, 6, 5, 3, 2, - 3, 3, 3, 7, 3, 3, 3, 3, 4, 7, - 5, 2, 4, 4, 4, 4, 4, 5, 5, 4, - 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, - 2, 4, 2, 4, 5, 4, 4, 4, 4, 4, - 3, 3, 5, 2, 3, 3, 3, 3, 1, 1, - 0, 1, 0, 1, 1, 1, 0, 2, 2, 0, - 2, 2, 0, 2, 0, 1, 1, 2, 1, 1, - 2, 1, 1, 5, 0, 1, 0, 1, 2, 3, - 0, 3, 3, 3, 3, 1, 1, 1, 1, 1, - 1, 1, 1, 0, 1, 1, 3, 3, 2, 2, - 3, 1, 3, 2, 1, 2, 1, 2, 2, 4, - 3, 3, 6, 4, 7, 6, 1, 3, 2, 2, - 2, 2, 1, 1, 1, 3, 2, 1, 1, 1, - 0, 1, 1, 0, 3, 0, 2, 0, 2, 1, - 2, 2, 0, 1, 1, 0, 1, 1, 0, 1, - 0, 1, 2, 3, 4, 1, 1, 1, 1, 1, - 1, 1, 1, 3, 1, 2, 3, 5, 0, 1, - 2, 1, 1, 0, 2, 1, 3, 1, 1, 1, - 3, 3, 3, 3, 7, 0, 3, 1, 3, 1, - 1, 3, 3, 1, 3, 4, 4, 4, 3, 2, - 4, 0, 1, 0, 2, 0, 1, 0, 1, 2, - 1, 1, 1, 2, 2, 1, 2, 3, 2, 3, - 2, 2, 2, 1, 1, 3, 3, 0, 5, 4, - 5, 5, 0, 2, 1, 3, 3, 3, 2, 3, - 1, 2, 0, 3, 1, 1, 3, 3, 4, 4, - 5, 3, 4, 5, 6, 2, 1, 2, 1, 2, - 1, 2, 1, 1, 1, 1, 1, 1, 1, 0, - 2, 1, 1, 1, 3, 1, 3, 1, 1, 1, - 1, 1, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 3, 1, 1, 1, - 1, 4, 5, 5, 6, 4, 4, 6, 6, 6, - 8, 8, 8, 8, 9, 8, 5, 4, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 8, 8, 0, 2, 3, 4, 4, - 4, 4, 4, 4, 4, 0, 3, 4, 7, 3, - 1, 1, 1, 2, 3, 3, 1, 2, 2, 1, - 2, 1, 2, 2, 1, 2, 0, 1, 0, 2, - 1, 2, 4, 0, 2, 1, 3, 5, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 2, 2, 0, - 3, 0, 2, 0, 3, 1, 3, 2, 0, 1, - 1, 0, 2, 4, 4, 0, 2, 2, 1, 1, - 3, 3, 3, 3, 3, 3, 3, 0, 3, 3, - 3, 0, 3, 1, 1, 0, 4, 0, 1, 1, - 0, 3, 1, 3, 2, 1, 0, 2, 4, 0, - 9, 3, 5, 0, 3, 3, 0, 1, 0, 2, - 2, 0, 2, 2, 2, 0, 2, 1, 2, 3, - 3, 0, 2, 1, 2, 3, 4, 3, 0, 1, - 2, 1, 5, 4, 4, 1, 3, 3, 5, 0, - 5, 1, 3, 1, 2, 3, 1, 1, 3, 3, - 1, 3, 3, 3, 3, 3, 2, 1, 2, 1, - 1, 1, 1, 1, 1, 1, 0, 1, 0, 2, - 0, 3, 0, 1, 0, 1, 1, 5, 0, 1, - 0, 1, 2, 1, 1, 1, 1, 1, 1, 0, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 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, -} - -var yyChk = [...]int{ - -1000, -283, -1, -3, -8, -9, -10, -11, -12, -13, - -14, -15, -16, -17, -18, -19, -42, -43, -44, -46, - -47, -48, -49, -50, -6, -45, -20, -21, -51, -52, - -53, -54, -55, -4, -285, 6, 7, 8, -63, 10, - 11, 30, -23, -33, 160, -34, -24, 161, -35, 163, - 162, 198, 164, 191, 72, 237, 238, 240, 241, 242, - 243, -64, 196, 197, 166, 34, 43, 31, 32, 35, - 169, 82, 9, 341, 193, 192, 26, -284, 481, -71, - 5, -139, 16, -3, -56, -288, -56, -56, -56, -56, - -56, -56, -239, -241, 82, 133, 82, -56, -39, -38, - -37, -36, -40, 29, -30, -31, -259, -29, -26, 165, - 162, 206, 103, 104, 198, 199, 200, 164, 182, 197, - 201, 196, 215, -25, 78, 31, 354, 357, -246, 161, - 167, 168, 342, 106, 105, 73, 163, -243, 287, 458, - -40, 460, 96, 98, 459, 42, 172, 461, 462, 463, - 464, 181, 465, 466, 467, 468, 474, 475, 476, 477, - 107, 5, -56, -201, -197, -263, -191, 85, 86, 87, - 351, 184, 385, 386, 231, 78, 39, 287, 458, 237, - 251, 245, 272, 264, 352, 387, 234, 185, 219, 455, - 262, 111, 460, 388, 199, 292, 293, 294, 96, 240, - 328, 473, 236, 389, 471, 98, 459, 77, 49, 42, - 194, 260, 256, 461, 220, 390, 362, 213, 106, 103, - 480, 34, 254, 48, 28, 470, 105, 47, 462, 124, - 391, 463, 296, 277, 449, 46, 297, 200, 392, 81, - 356, 457, 298, 255, 299, 230, 469, 166, 393, 441, - 300, 301, 450, 394, 278, 282, 395, 320, 302, 50, - 396, 397, 451, 104, 398, 76, 464, 249, 250, 399, - 228, 183, 322, 276, 181, 33, 303, 353, 232, 56, - 207, 323, 44, 280, 43, 445, 400, 448, 275, 271, - 51, 401, 402, 403, 404, 465, 274, 248, 270, 479, - 225, 466, 60, 168, 284, 283, 285, 214, 319, 267, - 405, 406, 407, 188, 79, 408, 257, 19, 409, 410, - 304, 221, 411, 54, 412, 413, 326, 197, 414, 52, - 467, 37, 202, 468, 415, 416, 417, 418, 419, 306, - 420, 305, 279, 281, 209, 307, 355, 421, 253, 201, - 472, 422, 189, 456, 203, 206, 196, 327, 190, 423, - 424, 425, 426, 427, 235, 428, 429, 241, 474, 41, - 430, 431, 432, 433, 229, 224, 321, 330, 59, 80, - 289, 434, 454, 247, 222, 435, 238, 53, 475, 476, - 477, 216, 478, 7, 309, 107, 226, 227, 45, 268, - 208, 436, 437, 258, 259, 273, 246, 269, 239, 442, - 210, 310, 198, 438, 329, 223, 290, 359, 215, 311, - 453, 358, 266, 263, 217, 439, 312, 173, 211, 212, - 440, 443, 313, 314, 316, 317, 233, 315, 318, 218, - 357, 244, 261, 291, 171, -56, 171, -103, -197, 171, - -169, 293, -188, 295, 308, 303, 313, 301, -180, 304, - 306, 209, -278, 320, 171, 310, 160, 151, 296, 305, - 314, 315, 233, 318, 218, -274, -263, 463, 478, 111, - 265, 300, 298, 321, 445, 317, 316, -197, 239, -204, - 244, -192, -263, -191, 242, -103, -62, 441, 164, -206, - -206, -73, 445, 447, -123, -87, -109, 117, -114, 29, - 24, -113, -110, -131, -128, -129, 151, 152, 154, 153, - 155, 140, 141, 148, 118, 156, -118, -116, -117, -119, - 89, 88, 97, 90, 91, 92, 93, 99, 100, 101, - -192, -197, -126, -285, 66, 67, 342, 343, 344, 345, - 350, 346, 120, 55, 337, 331, 340, 339, 338, 335, - 336, 333, 334, 348, 349, 176, 332, 170, 146, 341, - -263, -191, 42, 309, 309, -103, -56, -5, -4, -285, - 6, 21, 22, -143, 18, 17, -286, 84, -65, -78, - 61, 62, -80, 22, 36, 65, 63, 21, -57, -77, - 142, -87, -197, -77, -178, 175, -178, -178, -168, -209, - 239, -172, 321, 320, -193, -170, -192, -190, -169, 319, - 165, 360, 116, 23, 25, 119, 151, 17, 120, 35, - 167, 265, 182, 150, 178, 342, 160, 70, 361, 333, - 334, 331, 337, 344, 345, 332, 295, 29, 11, 363, - 26, 192, 22, 36, 144, 162, 123, 195, 24, 193, - 101, 366, 20, 73, 187, 12, 180, 38, 14, 367, - 368, 15, 176, 175, 135, 172, 68, 9, 156, 27, - 132, 64, 369, 113, 370, 371, 372, 373, 66, 133, - 18, 335, 336, 31, 446, 374, 350, 204, 146, 71, - 57, 447, 117, 375, 376, 99, 377, 102, 74, 452, - 114, 16, 69, 40, 378, 205, 379, 177, 380, 324, - 381, 134, 163, 341, 67, 382, 170, 308, 6, 347, - 30, 191, 179, 109, 65, 383, 171, 122, 348, 349, - 174, 100, 5, 112, 32, 10, 72, 75, 338, 339, - 340, 55, 108, 354, 121, 13, 384, 325, 115, 111, - -240, 133, -227, -231, -192, 186, -256, 182, -103, -249, - -248, -192, -72, -187, 172, 180, 179, 112, -267, 114, - 226, 332, 170, -36, -37, -169, 150, 203, 83, 83, - -231, -230, -229, -268, 205, 186, -255, -247, 178, 187, - -237, 179, 180, -232, 172, 113, -268, -232, 177, 187, - 205, 205, 107, 205, 107, 205, 205, 205, 205, 205, - 205, 205, 205, 205, 202, -238, 125, -238, 358, 358, - -243, -268, -268, -268, 174, 33, 33, -189, -232, 174, - 23, -238, -238, -169, 150, -238, -238, -238, -238, 213, - 213, -238, -238, -238, -238, -238, -238, -238, -238, -238, - -238, -238, -238, -238, -238, -238, 171, -267, -81, 318, - 233, 78, -38, 215, -22, -103, -187, 172, 173, -267, - -103, 157, -103, -182, 133, 13, -182, -179, 309, 307, - 294, 299, -182, -182, -182, -182, 216, 292, -233, 172, - 33, 183, 309, 216, 292, 216, 217, 216, 217, 302, - 312, 216, -202, 12, 135, 332, 297, 301, 209, 171, - 210, 173, 311, -263, 448, 217, -202, 89, 309, 212, - -182, -207, -285, -193, 265, -207, -207, 30, 174, -192, - -58, -192, 89, -7, -3, -11, -10, -12, 125, -79, - 309, -67, 151, 463, 449, 450, 451, 448, 306, 456, - 454, 452, 216, 453, 83, 116, 114, 115, 132, -87, - -111, 135, 117, 133, 134, 119, 137, 136, 147, 140, - 141, 142, 143, 144, 145, 146, 138, 139, 150, 125, - 126, 127, 128, 129, 130, 131, -177, -285, -129, -285, - 158, 159, -114, -114, -114, -114, -114, -114, -114, -114, - -114, -114, -285, 157, -2, -123, -4, -285, -285, -285, - -285, -285, -285, -285, -285, -135, -87, -285, -289, -285, - -289, -120, -285, -289, -120, -289, -120, -289, -289, -120, - -289, -120, -289, -289, -120, -285, -285, -285, -285, -285, - -285, -285, -206, -275, -276, -106, -103, -285, 233, -139, - -3, -56, -159, 20, 31, -87, -140, -141, -87, -139, - 57, -75, -77, -80, 61, 62, 95, 12, -195, -194, - 23, -192, 89, 157, 12, -104, 27, -103, -89, -90, - -91, -92, -106, -130, -285, 12, -96, -97, -103, -105, - -197, 83, 239, -172, -209, -174, -173, 322, 324, 125, - -196, -192, 89, 29, 84, 83, -103, -211, -214, -216, - -215, -217, -212, -213, 262, 263, 151, 266, 268, 269, - 270, 271, 272, 273, 274, 275, 276, 277, 30, 194, - 258, 259, 260, 261, 278, 279, 280, 281, 282, 283, - 284, 285, 245, 264, 352, 246, 247, 248, 249, 250, - 251, 253, 254, 255, 256, 257, -266, -263, 82, 84, - 83, -218, 82, -81, 171, -263, 172, 172, 172, -56, - 341, -238, -238, 202, -29, -26, -259, 16, -25, -26, - 165, 103, 104, 162, 82, -227, 82, -236, -266, -263, - 82, 113, 177, 112, -235, -232, -235, -236, -263, -131, - -192, -197, -263, 113, 113, -165, -192, -165, -165, 21, - -165, 21, -165, 21, 90, -192, -165, 21, -165, 21, - -165, 21, -165, 21, -165, 21, 29, 76, 77, 29, - 79, 80, 81, -131, -131, -227, -169, -103, -263, 90, - 90, -238, -238, 90, 89, 89, 89, -238, -238, 90, - 89, -199, -197, 89, -269, 188, 230, 232, 90, 90, - 90, 90, 29, 89, -270, 29, 470, 469, 471, 472, - 473, 90, 29, 90, 29, 90, -192, 82, -103, -84, - 220, 160, 162, 165, 74, 89, 234, 125, 42, 83, - 174, 171, -263, -184, 176, -184, -198, -197, -190, 89, - -87, -234, 12, 135, -202, -202, -182, -103, -234, -202, - -182, -103, -182, -182, -182, -182, -202, -202, -202, -182, - -197, -197, -103, -103, -103, -103, -103, -103, -103, -207, - -207, -207, -183, 133, -182, 448, 74, -205, 242, 276, - 442, 443, 444, 83, 354, -96, 448, 448, 448, 448, - 448, 448, -87, -87, -87, -87, -121, 99, 117, 100, - 101, -114, -122, -126, -129, 94, 135, 133, 134, 119, - -114, -114, -114, -114, -114, -114, -114, -114, -114, -114, - -114, -114, -114, -114, -114, -208, -263, 89, 151, -263, - -113, -113, -192, -76, 22, 36, -75, -193, -198, -190, - -71, -286, -286, -139, -75, -75, -87, -87, -131, 89, - -75, -131, 89, -75, -75, -70, 22, 36, -133, -134, - 121, -131, -286, -114, -192, -192, -75, -76, -76, -75, - -75, 83, -277, 324, 325, 446, -200, 205, -199, 23, - -124, -123, 89, -143, -286, -144, 27, 10, 135, 83, - 19, 83, -142, 25, 26, -143, -115, -192, 90, 93, - -88, 83, 12, -80, -103, -194, 142, -198, -103, -164, - 205, -103, 30, 83, -99, -101, -100, -102, 64, 68, - 70, 65, 66, 67, 71, -203, 23, -89, -3, -285, - -103, -96, -287, 83, 12, 75, -287, 83, 157, -172, - -174, 83, 323, 325, 326, 74, 102, -87, -220, 150, - -245, -244, -243, -227, -229, -230, -231, 84, -145, -86, - 38, -223, 290, 289, -218, -218, -218, -218, -218, -219, - -169, -219, -219, -219, 82, 82, -218, -218, -218, -218, - -221, 82, -221, -221, -222, 82, -222, -256, -87, -253, - -252, -250, -251, 181, 96, 354, 75, -248, -142, 90, - -84, -185, 176, -254, -251, -263, -263, -263, -185, -263, - 89, -263, 89, 83, 17, -228, -227, -41, 230, -258, - 205, -255, -249, -236, 113, -235, -236, -236, 157, -263, - 83, 27, 107, 107, 107, 107, 354, 162, 30, -227, - -41, -208, 174, -208, -208, 89, 89, -181, 478, -96, - -83, 222, 125, 211, 211, 171, 171, 224, -103, 235, - 236, 234, 21, 223, 225, 227, 213, -103, -103, -184, - 74, -98, -103, 24, -197, -103, -182, -182, -103, -182, - -182, 89, -103, -192, -67, 324, 354, 20, -68, 20, - 99, 100, 101, -122, -114, -114, -114, -74, 195, 116, - -286, -286, -75, -75, -285, 157, -5, -143, -286, -286, - 83, 75, 23, 12, 12, -286, 12, 12, -286, -286, - -75, -136, -134, 123, -87, -286, -286, 83, 83, -286, - -286, -286, -286, -286, -276, 445, 325, -107, 72, 175, - 73, -285, -199, -286, -159, 40, 48, 59, -87, -87, - -141, -159, -176, 20, 12, 55, 55, -108, 13, -77, - -89, -80, 157, -108, -112, 30, 55, -3, -285, -285, - -167, -171, -131, -90, -91, -91, -90, -91, 64, 64, - 64, 69, 64, 69, 64, -100, -197, -286, -286, -3, - -164, 75, -89, -103, -89, -105, -197, 142, -173, -175, - 327, 324, 330, -263, 89, 83, -243, -231, -282, 99, - 117, 29, 74, 287, 96, -280, -281, 177, 112, 113, - 189, 23, 39, -224, 291, -219, -219, -220, -263, 89, - 151, -220, -220, -220, -226, 89, -226, 90, 90, 84, - -32, -27, -28, 31, 78, -250, -238, 89, 37, -192, - 84, -83, -103, 117, 74, -254, -254, -254, -197, 16, - -161, -192, 83, 84, -132, 231, 84, -192, 84, 82, - -236, -236, -193, -192, -285, 171, 29, 29, -41, -132, - -220, -263, 480, 479, 84, 173, 229, -85, 337, 89, - 85, -103, -103, -103, -103, -103, 165, 162, 214, 174, - -96, -103, 83, -61, 190, 185, -202, -202, 31, 324, - 457, 455, -74, 116, -114, -114, -286, -286, -76, -193, - -139, -159, -210, 151, 262, 194, 260, 256, 276, 267, - 289, 258, 290, -208, -210, -114, -114, -114, -114, 351, - -139, 124, -87, 122, -114, -114, 172, 172, 172, -165, - 41, 89, 89, 60, -103, -137, 14, -87, 142, -143, - -166, 74, -167, -125, -127, -126, -285, -160, -286, -192, - -165, -108, 83, 125, -94, -93, 74, 75, -95, 74, - -93, 64, 64, -286, -108, -89, -108, -108, 157, 324, - 328, 329, -243, 99, -114, 10, 89, 113, 113, -103, - 82, -220, -220, 84, 83, 84, 83, 84, 83, -186, - 391, 117, -28, -27, -238, -238, 90, -263, 173, 24, - -103, 74, 74, 74, 17, 83, -227, -131, 55, -253, - -161, -257, -258, -103, -113, -132, -103, -82, 220, 228, - 82, 86, -265, 75, 211, 287, 211, -103, -61, -32, - -103, -182, -182, 31, -263, -114, -286, -143, -286, -218, - -218, -218, -222, -218, 250, -218, 250, -286, -286, 20, - 20, 20, 20, -285, -66, 347, -87, 83, 83, -285, - -285, -285, -286, 89, -219, -138, 15, 17, 28, -166, - 83, -286, -286, 83, 55, 157, -286, -139, -171, -87, - -87, 82, -87, -139, -108, -117, 82, -114, -219, 89, - -219, 90, 90, 391, 29, 79, 80, 81, 29, 76, - 77, -103, -103, -103, -103, -161, -192, 207, 84, -286, - 83, -225, 354, 357, -162, 82, 84, -262, 354, -264, - -263, -192, -192, -192, -159, -219, -263, -114, -114, -114, - -114, -114, -143, 89, -114, -114, -163, -286, -192, 177, - -163, -163, -200, -219, -148, -153, -179, -87, -123, 113, - -127, 55, -3, -192, -125, -192, -143, -161, -143, -161, - 84, -220, -220, 84, 84, -162, 208, -281, -258, 358, - 358, 23, -161, -261, -260, -193, 82, 75, -286, -286, - -286, -286, -69, 135, 354, -286, -286, -286, 83, -286, - -286, -286, -107, -151, 441, -156, 44, -154, -155, 45, - -152, 46, 54, 10, -125, 157, 84, 84, -146, 23, - -285, -3, 84, 83, 125, -161, -103, -286, 352, 71, - 355, -192, 177, -148, 49, 268, -158, -157, 53, 45, - -155, 17, 47, 17, -167, -192, -272, -273, 74, -282, - -279, 99, 117, 96, -280, 108, 109, -3, -114, 204, - -59, 354, -260, -242, -193, 89, 90, 84, 60, 353, - 356, -149, 51, -147, 50, -147, -157, 17, 17, 89, - 17, 89, -273, 74, 11, 10, 99, 89, -59, -286, - -286, -60, 219, 445, -265, 60, -150, 52, 74, 102, - 89, 89, 89, -271, 190, 185, 188, 30, -271, 182, - -262, 354, 74, 102, 184, 29, 99, 221, 355, 356, -} - -var yyDef = [...]int{ - 34, -2, 2, 4, 5, 6, 7, 8, 9, 10, - 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, - 31, 32, 33, 843, 0, 575, 575, 575, 575, 575, - 575, 575, 0, 0, 575, -2, -2, 575, 979, 0, - 575, 0, 0, -2, 508, 509, 0, 511, -2, 0, - 0, 520, 1398, 1398, 570, 0, 0, 0, 0, 0, - 575, 1396, 55, 56, 526, 527, 528, 1, 3, 0, - 579, 851, 0, 0, -2, 577, 0, 0, 962, 962, - 962, 0, 86, 87, 0, 0, 0, -2, 90, -2, - 114, 115, 0, 119, 383, 344, 386, 342, 372, -2, - 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 347, 237, 237, 0, 0, -2, 335, - 335, 335, 0, 0, 0, 369, 964, 290, 237, 237, - 0, 237, 237, 237, 237, 0, 0, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 867, 118, 980, 977, 978, 35, 36, 37, - 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, 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, 1325, 1326, 1327, 1328, 1329, 1330, 1331, - 1332, 1333, 1334, 1335, 1336, 1337, 1338, 1339, 1340, 1341, - 1342, 1343, 1344, 1345, 1346, 1347, 1348, 1349, 1350, 1351, - 1352, 1353, 1354, 1355, 1356, 1357, 1358, 1359, 1360, 1361, - 1362, 1363, 1364, 1365, 1366, 1367, 1368, 1369, 1370, 1371, - 1372, 1373, 1374, 1375, 1376, 1377, 1378, 1379, 1380, 1381, - 1382, 1383, 1384, 1385, 1386, 1387, 1388, 1389, 1390, 1391, - 1392, 1393, 1394, 1395, 0, 956, 0, 439, 664, 0, - 499, 499, 0, 499, 499, 499, 499, 0, 0, 0, - 451, 0, 0, 0, 0, 496, 0, 0, 470, 472, - 0, 496, 0, 0, 483, 499, 1399, 1399, 1399, 947, - 0, 493, 491, 505, 506, 488, 489, 507, 510, 0, - 515, 518, 973, 974, 0, 533, 0, 1201, 525, 538, - 539, 0, 571, 572, 40, 715, 674, 0, 680, 682, - 0, 717, 718, 719, 720, 721, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 747, 748, 749, 750, - 828, 829, 830, 831, 832, 833, 834, 835, 684, 685, - 825, 0, 936, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 816, 0, 785, 785, 785, 785, 785, 785, - 785, 785, 785, 0, 0, 0, 0, 0, 0, 0, - -2, -2, 1398, 0, 548, 0, 0, 843, 51, 0, - 575, 580, 581, 886, 0, 0, 843, 1397, 0, 0, - -2, -2, 591, 597, 598, 599, 600, 601, 576, 0, - 604, 608, 0, 0, 0, 963, 0, 0, 72, 0, - 1360, 940, -2, -2, 0, 0, 975, 976, 949, -2, - 983, 984, 985, 986, 987, 988, 989, 990, 991, 992, - 993, 994, 995, 996, 997, 998, 999, 1000, 1001, 1002, - 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010, 1011, 1012, - 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020, 1021, 1022, - 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, - 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040, 1041, 1042, - 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050, 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, 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, -2, - 0, 0, 128, 129, 0, 38, 263, 0, 124, 0, - 257, 209, 867, 0, 0, 0, 0, 0, 575, 0, - 957, 109, 110, 116, 117, 237, 237, 0, 118, 118, - 351, 352, 353, 0, 0, -2, 261, 0, 336, 0, - 0, 251, 251, 255, 253, 254, 0, 0, 0, 0, - 0, 0, 363, 0, 364, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 423, 0, 238, 0, 381, 382, - 291, 0, 0, 0, 0, 361, 362, 0, 0, 965, - 966, 0, 0, 237, 237, 0, 0, 0, 0, 237, - 237, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 108, 880, 0, - 0, 0, -2, 0, 431, 0, 0, 0, 958, 958, - 438, 0, 440, 441, 0, 0, 442, 0, 496, 496, - 494, 495, 444, 445, 446, 447, 499, 0, 0, 246, - 247, 248, 496, 499, 0, 499, 499, 499, 499, 496, - 496, 496, 499, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1399, 1399, 1399, 502, 499, 0, 480, 481, - 484, 485, 1400, 1401, 994, 486, 487, 948, 516, 519, - 536, 534, 535, 537, 529, 530, 531, 532, 0, 550, - 551, 556, 0, 0, 0, 0, 562, 563, 564, 0, - 0, 567, 568, 569, 0, 0, 0, 0, 0, 678, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 702, - 703, 704, 705, 706, 707, 708, 681, 0, 695, 0, - 0, 0, 737, 738, 739, 740, 741, 742, 743, 744, - 745, 0, 588, 0, 0, 0, 843, 0, 0, 0, - 0, 0, 0, 0, 585, 0, 817, 0, 768, 0, - 769, 777, 0, 770, 778, 771, 779, 772, 773, 780, - 774, 781, 775, 776, 782, 0, 0, 0, 588, 588, - 0, 0, 41, 540, 541, 0, 647, 968, 0, 851, - 0, 590, 889, 0, 0, 852, 844, 845, 848, 851, - 0, 613, 602, 592, 595, 596, 578, 0, 605, 609, - 0, 611, 612, 0, 0, 70, 0, 663, 0, 615, - 617, 618, 619, 645, 0, 0, 0, 0, 66, 68, - 664, 0, 1360, 946, 0, 74, 75, 0, 0, 0, - 225, 951, 952, 953, -2, 244, 0, -2, 216, 160, - 161, 162, 209, 164, 209, 209, 209, 209, 221, 221, - 221, 221, 192, 193, 194, 195, 196, 0, 0, 179, - 209, 209, 209, 209, 199, 200, 201, 202, 203, 204, - 205, 206, 165, 166, 167, 168, 169, 170, 171, 172, - 173, 211, 211, 211, 213, 213, 0, 39, 0, 229, - 0, 848, 0, 880, 960, 970, 0, 0, 0, 960, - 92, 0, 0, 384, 345, 373, 385, 0, 348, 349, - -2, 0, 0, 335, 0, 337, 0, 245, 0, -2, - 0, 255, 0, 251, 255, 252, 255, 243, 256, 365, - 825, 0, 366, 367, 0, 403, 633, 0, 0, 0, - 0, 0, 409, 410, 411, 0, 413, 414, 415, 416, - 417, 418, 419, 420, 421, 422, 374, 375, 376, 377, - 378, 379, 380, 0, 0, 337, 0, 370, 0, 292, - 293, 0, 0, 296, 297, 298, 299, 0, 0, 302, - 303, 304, 650, 651, 305, 329, 330, 331, 306, 307, - 308, 309, 310, 311, 312, 323, 324, 325, 326, 327, - 328, 313, 314, 315, 316, 317, 320, 0, 102, 871, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 958, 0, 0, 0, 0, 665, 981, 982, 500, - 501, 0, 249, 250, 499, 499, 448, 471, 0, 499, - 452, 473, 453, 455, 454, 456, 475, 476, 499, 459, - 497, 498, 460, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 477, 0, 478, 479, 0, 0, 517, 521, - 522, 523, 524, 0, 0, 553, 558, 559, 560, 561, - 573, 566, 716, 675, 676, 677, 679, 696, 0, 698, - 700, 686, 687, 711, 712, 713, 0, 0, 0, 0, - 709, 691, 0, 722, 723, 724, 725, 726, 727, 728, - 729, 730, 731, 732, 733, 736, 800, 801, 802, 0, - 734, 735, 746, 0, 0, 0, 589, 826, 0, -2, - 0, 714, 935, 851, 0, 0, 0, 0, 719, 828, - 0, 719, 828, 0, 0, 0, 586, 587, 823, 820, - 0, 0, 786, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 543, 544, 546, 0, 667, 0, 648, 0, - 0, 969, 549, 886, 52, 42, 0, 887, 0, 0, - 0, 0, 847, 849, 850, 886, 0, 836, 0, 0, - 672, 0, 0, 593, 48, 610, 606, 0, 672, 0, - 0, 662, 0, 0, 0, 0, 0, 0, 652, 0, - 0, 655, 0, 0, 0, 0, 646, 0, 0, 0, - -2, 0, 0, 0, 62, 63, 0, 0, 0, 941, - 73, 0, 0, 78, 79, 942, 943, 944, 945, 0, - 111, -2, 287, 130, 132, 133, 134, 125, 269, 0, - 0, 219, 217, 218, 163, 221, 221, 186, 187, 225, - 0, 225, 225, 225, 0, 0, 180, 181, 182, 183, - 174, 0, 175, 176, 177, 0, 178, 262, 0, 855, - 230, 231, 233, 237, 0, 0, 0, 258, 259, 0, - 871, 0, 0, 0, 971, 970, 970, 970, 0, 120, - 121, 122, 123, 118, 0, 0, 126, 339, 338, 0, - 0, 260, 0, 0, 255, 255, 240, 241, 0, 368, - 0, 0, 405, 406, 407, 408, 0, 0, 0, 337, - 339, 225, 0, 294, 295, 300, 301, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 398, - 399, 400, 401, 868, 869, 870, 0, 0, 432, 0, - 0, 279, 64, 959, 437, 496, 458, 474, 496, 450, - 457, 503, 482, 513, 557, 0, 0, 0, 565, 0, - 697, 699, 701, 688, 709, 692, 0, 689, 0, 0, - 683, 751, 0, 0, 588, 0, 843, 886, 755, 756, - 0, 0, 0, 0, 0, 793, 0, 0, 794, 0, - 843, 0, 821, 0, 0, 767, 787, 0, 0, 788, - 789, 790, 791, 792, 542, 545, 547, 623, 0, 0, - 0, 0, 649, 967, 44, 0, 0, 0, 853, 854, - 846, 43, 0, 954, 955, 837, 838, 839, 0, 603, - 614, 594, 0, 851, 929, 0, 0, 921, 0, 0, - 672, 937, 0, 616, 641, 643, 0, 638, 653, 654, - 656, 0, 658, 0, 660, 661, 620, 621, 622, 0, - 672, 0, 672, 67, 672, 69, 0, 666, 76, 77, - 0, 0, 83, 226, 227, 118, 289, 131, 135, 140, - 0, 0, 0, 144, 0, 146, 270, 0, 156, 158, - 0, 0, 138, 159, 220, 225, 225, 188, 222, 223, - 224, 189, 190, 191, 0, 207, 0, 0, 0, 282, - 88, 859, 858, 237, 237, 232, 0, 235, 0, 972, - 210, 0, 101, 0, 0, 0, 0, 0, 107, 0, - 343, 627, 0, 354, 355, 0, 402, 0, 229, 0, - 239, 242, 826, 634, 0, 0, 356, 0, 339, 359, - 360, 371, 321, 322, 319, 0, 0, 881, 882, 0, - 885, 93, 391, 393, 392, 396, 0, 0, 389, 0, - 279, 855, 0, 436, 280, 281, 499, 499, 552, 0, - 555, 0, 690, 0, 710, 693, 752, 753, 0, 827, - 851, 46, 0, 209, 209, 806, 209, 213, 809, 209, - 811, 209, 814, 0, 0, 0, 0, 0, 0, 0, - 818, 766, 824, 0, 0, 0, 0, 0, 0, 0, - 0, 221, 891, 888, 45, 841, 0, 673, 607, 49, - 53, 0, 929, 920, 931, 933, 0, 0, 0, 925, - 0, 843, 0, 0, 635, 642, 0, 0, 636, 0, - 637, 657, 659, -2, 843, 672, 60, 61, 0, 80, - 81, 82, 288, 141, 142, 0, 145, 155, 157, 0, - 0, 184, 185, 221, 0, 221, 0, 214, 0, 271, - 283, 0, 856, 857, 0, 0, 234, 236, 0, 961, - 103, 0, 0, 0, 0, 0, 127, 340, 0, 228, - 0, 0, 427, 424, 357, 358, 625, 872, 873, 874, - 0, 884, 96, 0, 0, 0, 0, 433, 434, 435, - 65, 443, 449, 554, 574, 694, 754, 886, 757, 803, - 221, 807, 808, 810, 812, 813, 815, 759, 758, 0, - 0, 0, 0, 0, 851, 0, 822, 0, 0, 0, - 0, 0, 647, 221, 911, 50, 0, 0, 0, 54, - 0, 934, 0, 0, 0, 0, 71, 851, 938, 939, - 639, 0, 644, 851, 59, 143, 0, 0, 225, 208, - 225, 0, 0, 284, 860, 861, 862, 863, 864, 865, - 866, 625, 104, 105, 106, 346, 628, 0, 0, 404, - 0, 412, 0, 0, 0, 0, 883, 390, 0, 94, - 95, 0, 0, 395, 47, 804, 805, 0, 0, 0, - 0, 795, 0, 819, 0, 0, 0, 669, 629, 630, - 0, 0, 667, 893, 892, 905, 918, 842, 840, 0, - 932, 0, 924, 927, 923, 926, 57, 0, 58, 0, - 149, 197, 198, 212, 215, 0, 0, 264, 428, 425, - 426, 0, 0, 97, 98, 0, 0, 0, 760, 762, - 761, 763, 0, 0, 0, 765, 783, 784, 0, 668, - 670, 671, 624, 911, 0, 904, 0, -2, 913, 0, - 0, 0, 919, 0, 922, 0, 640, 265, 269, 0, - 0, 875, 626, 0, 0, 0, 397, 764, 0, 0, - 0, 631, 632, 898, 896, 896, 906, 907, 0, 0, - 914, 0, 0, 0, 930, 928, 266, 267, 0, 136, - 150, 151, 0, 0, 154, 147, 148, 875, 0, 0, - 387, 877, 99, 100, 332, 333, 334, 93, 796, 0, - 799, 901, 0, 894, 897, 895, 908, 0, 0, 915, - 0, 917, 268, 0, 0, 0, 152, 153, 89, 429, - 430, 0, 878, 879, 96, 797, 890, 0, 899, 900, - 909, 910, 916, 272, 274, 275, 0, 0, 273, 0, - 394, 0, 902, 903, 276, 277, 278, 876, 0, 798, -} - -var yyTok1 = [...]int{ - 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 118, 3, 3, 3, 145, 137, 3, - 82, 84, 142, 140, 83, 141, 157, 143, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 481, - 126, 125, 127, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 147, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 136, 3, 148, -} - -var yyTok2 = [...]int{ - 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, - 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, - 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, - 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, - 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, - 115, 116, 117, 119, 120, 121, 122, 123, 124, 128, - 129, 130, 131, 132, 133, 134, 135, 138, 139, 144, - 146, 149, 150, 151, 152, 153, 154, 155, 156, 158, - 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, - 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, - 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, - 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, - 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, - 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, - 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, - 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, - 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, - 269, 270, 271, 272, 273, 274, -} - -var yyTok3 = [...]int{ - 57600, 275, 57601, 276, 57602, 277, 57603, 278, 57604, 279, - 57605, 280, 57606, 281, 57607, 282, 57608, 283, 57609, 284, - 57610, 285, 57611, 286, 57612, 287, 57613, 288, 57614, 289, - 57615, 290, 57616, 291, 57617, 292, 57618, 293, 57619, 294, - 57620, 295, 57621, 296, 57622, 297, 57623, 298, 57624, 299, - 57625, 300, 57626, 301, 57627, 302, 57628, 303, 57629, 304, - 57630, 305, 57631, 306, 57632, 307, 57633, 308, 57634, 309, - 57635, 310, 57636, 311, 57637, 312, 57638, 313, 57639, 314, - 57640, 315, 57641, 316, 57642, 317, 57643, 318, 57644, 319, - 57645, 320, 57646, 321, 57647, 322, 57648, 323, 57649, 324, - 57650, 325, 57651, 326, 57652, 327, 57653, 328, 57654, 329, - 57655, 330, 57656, 331, 57657, 332, 57658, 333, 57659, 334, - 57660, 335, 57661, 336, 57662, 337, 57663, 338, 57664, 339, - 57665, 340, 57666, 341, 57667, 342, 57668, 343, 57669, 344, - 57670, 345, 57671, 346, 57672, 347, 57673, 348, 57674, 349, - 57675, 350, 57676, 351, 57677, 352, 57678, 353, 57679, 354, - 57680, 355, 57681, 356, 57682, 357, 57683, 358, 57684, 359, - 57685, 360, 57686, 361, 57687, 362, 57688, 363, 57689, 364, - 57690, 365, 57691, 366, 57692, 367, 57693, 368, 57694, 369, - 57695, 370, 57696, 371, 57697, 372, 57698, 373, 57699, 374, - 57700, 375, 57701, 376, 57702, 377, 57703, 378, 57704, 379, - 57705, 380, 57706, 381, 57707, 382, 57708, 383, 57709, 384, - 57710, 385, 57711, 386, 57712, 387, 57713, 388, 57714, 389, - 57715, 390, 57716, 391, 57717, 392, 57718, 393, 57719, 394, - 57720, 395, 57721, 396, 57722, 397, 57723, 398, 57724, 399, - 57725, 400, 57726, 401, 57727, 402, 57728, 403, 57729, 404, - 57730, 405, 57731, 406, 57732, 407, 57733, 408, 57734, 409, - 57735, 410, 57736, 411, 57737, 412, 57738, 413, 57739, 414, - 57740, 415, 57741, 416, 57742, 417, 57743, 418, 57744, 419, - 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, - 57760, 435, 57761, 436, 57762, 437, 57763, 438, 57764, 439, - 57765, 440, 57766, 441, 57767, 442, 57768, 443, 57769, 444, - 57770, 445, 57771, 446, 57772, 447, 57773, 448, 57774, 449, - 57775, 450, 57776, 451, 57777, 452, 57778, 453, 57779, 454, - 57780, 455, 57781, 456, 57782, 457, 57783, 458, 57784, 459, - 57785, 460, 57786, 461, 57787, 462, 57788, 463, 57789, 464, - 57790, 465, 57791, 466, 57792, 467, 57793, 468, 57794, 469, - 57795, 470, 57796, 471, 57797, 472, 57798, 473, 57799, 474, - 57800, 475, 57801, 476, 57802, 477, 57803, 478, 57804, 479, - 57805, 480, 0, -} - -var yyErrorMessages = [...]struct { - state int - token int - msg string -}{} - -//line yaccpar:1 - -/* parser for yacc output */ - -func yyIaddr(v interface{}) __yyunsafe__.Pointer { - type h struct { - t __yyunsafe__.Pointer - p __yyunsafe__.Pointer - } - return (*h)(__yyunsafe__.Pointer(&v)).p -} - -var ( - yyDebug = 0 - yyErrorVerbose = false -) - -type yyLexer interface { - Lex(lval *yySymType) int - Error(s string) -} - -type yyParser interface { - Parse(yyLexer) int - Lookahead() int -} - -type yyParserImpl struct { - lval yySymType - stack [yyInitialStackSize]yySymType - char int -} - -func (p *yyParserImpl) Lookahead() int { - return p.char -} - -func yyNewParser() yyParser { - return &yyParserImpl{} -} - -const yyFlag = -1000 - -func yyTokname(c int) string { - if c >= 1 && c-1 < len(yyToknames) { - if yyToknames[c-1] != "" { - return yyToknames[c-1] - } - } - return __yyfmt__.Sprintf("tok-%v", c) -} - -func yyStatname(s int) string { - if s >= 0 && s < len(yyStatenames) { - if yyStatenames[s] != "" { - return yyStatenames[s] - } - } - return __yyfmt__.Sprintf("state-%v", s) -} - -func yyErrorMessage(state, lookAhead int) string { - const TOKSTART = 4 - - if !yyErrorVerbose { - return "syntax error" - } - - for _, e := range yyErrorMessages { - if e.state == state && e.token == lookAhead { - return "syntax error: " + e.msg - } - } - - res := "syntax error: unexpected " + yyTokname(lookAhead) - - // To match Bison, suggest at most four expected tokens. - expected := make([]int, 0, 4) - - // Look for shiftable tokens. - base := yyPact[state] - for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { - if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { - if len(expected) == cap(expected) { - return res - } - expected = append(expected, tok) - } - } - - if yyDef[state] == -2 { - i := 0 - for yyExca[i] != -1 || yyExca[i+1] != state { - i += 2 - } - - // Look for tokens that we accept or reduce. - for i += 2; yyExca[i] >= 0; i += 2 { - tok := yyExca[i] - if tok < TOKSTART || yyExca[i+1] == 0 { - continue - } - if len(expected) == cap(expected) { - return res - } - expected = append(expected, tok) - } - - // If the default action is to accept or reduce, give up. - if yyExca[i+1] != 0 { - return res - } - } - - for i, tok := range expected { - if i == 0 { - res += ", expecting " - } else { - res += " or " - } - res += yyTokname(tok) - } - return res -} - -func yylex1(lex yyLexer, lval *yySymType) (char, token int) { - token = 0 - char = lex.Lex(lval) - if char <= 0 { - token = yyTok1[0] - goto out - } - if char < len(yyTok1) { - token = yyTok1[char] - goto out - } - if char >= yyPrivate { - if char < yyPrivate+len(yyTok2) { - token = yyTok2[char-yyPrivate] - goto out - } - } - for i := 0; i < len(yyTok3); i += 2 { - token = yyTok3[i+0] - if token == char { - token = yyTok3[i+1] - goto out - } - } - -out: - if token == 0 { - token = yyTok2[1] /* unknown char */ - } - if yyDebug >= 3 { - __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) - } - return char, token -} - -func yyParse(yylex yyLexer) int { - return yyNewParser().Parse(yylex) -} - -func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { - var yyn int - var yyVAL yySymType - var yyDollar []yySymType - _ = yyDollar // silence set and not used - yyS := yyrcvr.stack[:] - - Nerrs := 0 /* number of errors */ - Errflag := 0 /* error recovery flag */ - yystate := 0 - yyrcvr.char = -1 - yytoken := -1 // yyrcvr.char translated into internal numbering - defer func() { - // Make sure we report no lookahead when not parsing. - yystate = -1 - yyrcvr.char = -1 - yytoken = -1 - }() - yyp := -1 - goto yystack - -ret0: - return 0 - -ret1: - return 1 - -yystack: - /* put a state and value onto the stack */ - if yyDebug >= 4 { - __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) - } - - yyp++ - if yyp >= len(yyS) { - nyys := make([]yySymType, len(yyS)*2) - copy(nyys, yyS) - yyS = nyys - } - yyS[yyp] = yyVAL - yyS[yyp].yys = yystate - -yynewstate: - yyn = yyPact[yystate] - if yyn <= yyFlag { - goto yydefault /* simple state */ - } - if yyrcvr.char < 0 { - yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) - } - yyn += yytoken - if yyn < 0 || yyn >= yyLast { - goto yydefault - } - yyn = yyAct[yyn] - if yyChk[yyn] == yytoken { /* valid shift */ - yyrcvr.char = -1 - yytoken = -1 - yyVAL = yyrcvr.lval - yystate = yyn - if Errflag > 0 { - Errflag-- - } - goto yystack - } - -yydefault: - /* default state action */ - yyn = yyDef[yystate] - if yyn == -2 { - if yyrcvr.char < 0 { - yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) - } - - /* look through exception table */ - xi := 0 - for { - if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { - break - } - xi += 2 - } - for xi += 2; ; xi += 2 { - yyn = yyExca[xi+0] - if yyn < 0 || yyn == yytoken { - break - } - } - yyn = yyExca[xi+1] - if yyn < 0 { - goto ret0 - } - } - if yyn == 0 { - /* error ... attempt to resume parsing */ - switch Errflag { - case 0: /* brand new error */ - yylex.Error(yyErrorMessage(yystate, yytoken)) - Nerrs++ - if yyDebug >= 1 { - __yyfmt__.Printf("%s", yyStatname(yystate)) - __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) - } - fallthrough - - case 1, 2: /* incompletely recovered error ... try again */ - Errflag = 3 - - /* find a state where "error" is a legal shift action */ - for yyp >= 0 { - yyn = yyPact[yyS[yyp].yys] + yyErrCode - if yyn >= 0 && yyn < yyLast { - yystate = yyAct[yyn] /* simulate a shift of "error" */ - if yyChk[yystate] == yyErrCode { - goto yystack - } - } - - /* the current p has no shift on "error", pop stack */ - if yyDebug >= 2 { - __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) - } - yyp-- - } - /* there is no state on the stack with an error shift ... abort */ - goto ret1 - - case 3: /* no shift yet; clobber input char */ - if yyDebug >= 2 { - __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) - } - if yytoken == yyEofCode { - goto ret1 - } - yyrcvr.char = -1 - yytoken = -1 - goto yynewstate /* try again in the same state */ - } - } - - /* reduction by production yyn */ - if yyDebug >= 2 { - __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate)) - } - - yynt := yyn - yypt := yyp - _ = yypt // guard against "declared and not used" - - yyp -= yyR2[yyn] - // yyp is now the index of $0. Perform the default action. Iff the - // reduced production is ε, $1 is possibly out of range. - if yyp+1 >= len(yyS) { - nyys := make([]yySymType, len(yyS)*2) - copy(nyys, yyS) - yyS = nyys - } - yyVAL = yyS[yyp+1] - - /* consult goto table to find next state */ - yyn = yyR1[yyn] - yyg := yyPgo[yyn] - yyj := yyg + yyS[yyp].yys + 1 - - if yyj >= yyLast { - yystate = yyAct[yyg] - } else { - yystate = yyAct[yyj] - if yyChk[yystate] != -yyn { - yystate = yyAct[yyg] - } - } - // dummy call; replaced with literal code - switch yynt { - - case 1: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:435 - { - setParseTree(yylex, yyDollar[1].statementUnion()) - } - case 2: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:440 - { - } - case 3: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:441 - { - } - case 4: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:445 - { - yyLOCAL = yyDollar[1].selStmtUnion() - } - yyVAL.union = yyLOCAL - case 34: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:478 - { - setParseTree(yylex, nil) - } - case 35: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:484 - { - yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), NoAt) - } - case 36: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:488 - { - yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), SingleAt) - } - case 37: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:492 - { - yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), DoubleAt) - } - case 38: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:497 - { - yyVAL.colIdent = NewColIdentWithAt("", NoAt) - } - case 39: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:501 - { - yyVAL.colIdent = yyDollar[1].colIdent - } - case 40: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:507 - { - yyLOCAL = &OtherAdmin{} - } - yyVAL.union = yyLOCAL - case 41: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:513 - { - yyLOCAL = &Load{} - } - yyVAL.union = yyLOCAL - case 42: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:519 - { - sel := yyDollar[1].selStmtUnion().(*Select) - sel.OrderBy = yyDollar[2].orderByUnion() - sel.Limit = yyDollar[3].limitUnion() - sel.Lock = yyDollar[4].lockUnion() - sel.Into = yyDollar[5].selectIntoUnion() - yyLOCAL = sel - } - yyVAL.union = yyLOCAL - case 43: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:528 - { - yyLOCAL = &Union{FirstStatement: &ParenSelect{Select: yyDollar[2].selStmtUnion()}, OrderBy: yyDollar[4].orderByUnion(), Limit: yyDollar[5].limitUnion(), Lock: yyDollar[6].lockUnion()} - } - yyVAL.union = yyLOCAL - case 44: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:532 - { - yyLOCAL = Unionize(yyDollar[1].selStmtUnion(), yyDollar[3].selStmtUnion(), yyDollar[2].booleanUnion(), yyDollar[4].orderByUnion(), yyDollar[5].limitUnion(), yyDollar[6].lockUnion()) - } - yyVAL.union = yyLOCAL - case 45: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:536 - { - yyLOCAL = NewSelect(Comments(yyDollar[2].strs), SelectExprs{&Nextval{Expr: yyDollar[5].exprUnion()}}, []string{yyDollar[3].str} /*options*/, TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}, nil /*where*/, nil /*groupBy*/, nil /*having*/) - } - yyVAL.union = yyLOCAL - case 46: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:559 - { - sel := yyDollar[1].selStmtUnion().(*Select) - sel.OrderBy = yyDollar[2].orderByUnion() - sel.Limit = yyDollar[3].limitUnion() - sel.Lock = yyDollar[4].lockUnion() - yyLOCAL = sel - } - yyVAL.union = yyLOCAL - case 47: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:567 - { - yyLOCAL = Unionize(yyDollar[1].selStmtUnion(), yyDollar[3].selStmtUnion(), yyDollar[2].booleanUnion(), yyDollar[4].orderByUnion(), yyDollar[5].limitUnion(), yyDollar[6].lockUnion()) - } - yyVAL.union = yyLOCAL - case 48: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:573 - { - yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName} - } - yyVAL.union = yyLOCAL - case 49: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:579 - { - yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()} - } - yyVAL.union = yyLOCAL - case 50: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:587 - { - yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, yyDollar[5].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[6].exprUnion()), GroupBy(yyDollar[7].exprsUnion()), NewWhere(HavingClause, yyDollar[8].exprUnion())) - } - yyVAL.union = yyLOCAL - case 51: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:593 - { - yyLOCAL = yyDollar[1].selStmtUnion() - } - yyVAL.union = yyLOCAL - case 52: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL SelectStatement -//line sql.y:597 - { - yyLOCAL = &ParenSelect{Select: yyDollar[2].selStmtUnion()} - } - yyVAL.union = yyLOCAL - case 53: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:604 - { - // insert_data returns a *Insert pre-filled with Columns & Values - ins := yyDollar[6].insUnion() - ins.Action = yyDollar[1].insertActionUnion() - ins.Comments = yyDollar[2].strs - ins.Ignore = yyDollar[3].ignoreUnion() - ins.Table = yyDollar[4].tableName - ins.Partitions = yyDollar[5].partitionsUnion() - ins.OnDup = OnDup(yyDollar[7].updateExprsUnion()) - yyLOCAL = ins - } - yyVAL.union = yyLOCAL - case 54: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Statement -//line sql.y:616 - { - cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion())) - vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion())) - for _, updateList := range yyDollar[7].updateExprsUnion() { - cols = append(cols, updateList.Name.Name) - vals = append(vals, updateList.Expr) - } - yyLOCAL = &Insert{Action: yyDollar[1].insertActionUnion(), Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Table: yyDollar[4].tableName, Partitions: yyDollar[5].partitionsUnion(), Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[8].updateExprsUnion())} - } - yyVAL.union = yyLOCAL - case 55: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL InsertAction -//line sql.y:628 - { - yyLOCAL = InsertAct - } - yyVAL.union = yyLOCAL - case 56: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL InsertAction -//line sql.y:632 - { - yyLOCAL = ReplaceAct - } - yyVAL.union = yyLOCAL - case 57: - yyDollar = yyS[yypt-9 : yypt+1] - var yyLOCAL Statement -//line sql.y:638 - { - yyLOCAL = &Update{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: yyDollar[4].tableExprsUnion(), Exprs: yyDollar[6].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} - } - yyVAL.union = yyLOCAL - case 58: - yyDollar = yyS[yypt-9 : yypt+1] - var yyLOCAL Statement -//line sql.y:644 - { - yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[5].tableName}}, Partitions: yyDollar[6].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} - } - yyVAL.union = yyLOCAL - case 59: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Statement -//line sql.y:648 - { - yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} - } - yyVAL.union = yyLOCAL - case 60: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:652 - { - yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} - } - yyVAL.union = yyLOCAL - case 61: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:656 - { - yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} - } - yyVAL.union = yyLOCAL - case 62: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:661 - { - } - case 63: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:662 - { - } - case 64: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableNames -//line sql.y:666 - { - yyLOCAL = TableNames{yyDollar[1].tableName.ToViewName()} - } - yyVAL.union = yyLOCAL - case 65: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:670 - { - yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].tableName.ToViewName()) - } - case 66: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableNames -//line sql.y:676 - { - yyLOCAL = TableNames{yyDollar[1].tableName} - } - yyVAL.union = yyLOCAL - case 67: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:680 - { - yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].tableName) - } - case 68: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableNames -//line sql.y:686 - { - yyLOCAL = TableNames{yyDollar[1].tableName} - } - yyVAL.union = yyLOCAL - case 69: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:690 - { - yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].tableName) - } - case 70: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Partitions -//line sql.y:695 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 71: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Partitions -//line sql.y:699 - { - yyLOCAL = yyDollar[3].partitionsUnion() - } - yyVAL.union = yyLOCAL - case 72: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:705 - { - yyLOCAL = &Set{Comments: Comments(yyDollar[2].strs), Exprs: yyDollar[3].setExprsUnion()} - } - yyVAL.union = yyLOCAL - case 73: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:711 - { - yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Scope: yyDollar[3].scopeUnion(), Characteristics: yyDollar[5].characteristicsUnion()} - } - yyVAL.union = yyLOCAL - case 74: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:715 - { - yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Characteristics: yyDollar[4].characteristicsUnion(), Scope: ImplicitScope} - } - yyVAL.union = yyLOCAL - case 75: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []Characteristic -//line sql.y:721 - { - yyLOCAL = []Characteristic{yyDollar[1].characteristicUnion()} - } - yyVAL.union = yyLOCAL - case 76: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:725 - { - yySLICE := (*[]Characteristic)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].characteristicUnion()) - } - case 77: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Characteristic -//line sql.y:731 - { - yyLOCAL = yyDollar[3].isolationLevelUnion() - } - yyVAL.union = yyLOCAL - case 78: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Characteristic -//line sql.y:735 - { - yyLOCAL = ReadWrite - } - yyVAL.union = yyLOCAL - case 79: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Characteristic -//line sql.y:739 - { - yyLOCAL = ReadOnly - } - yyVAL.union = yyLOCAL - case 80: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL IsolationLevel -//line sql.y:745 - { - yyLOCAL = RepeatableRead - } - yyVAL.union = yyLOCAL - case 81: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL IsolationLevel -//line sql.y:749 - { - yyLOCAL = ReadCommitted - } - yyVAL.union = yyLOCAL - case 82: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL IsolationLevel -//line sql.y:753 - { - yyLOCAL = ReadUncommitted - } - yyVAL.union = yyLOCAL - case 83: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL IsolationLevel -//line sql.y:757 - { - yyLOCAL = Serializable - } - yyVAL.union = yyLOCAL - case 84: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Scope -//line sql.y:763 - { - yyLOCAL = SessionScope - } - yyVAL.union = yyLOCAL - case 85: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Scope -//line sql.y:767 - { - yyLOCAL = GlobalScope - } - yyVAL.union = yyLOCAL - case 86: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:773 - { - yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion() - yyDollar[1].createTableUnion().FullyParsed = true - yyLOCAL = yyDollar[1].createTableUnion() - } - yyVAL.union = yyLOCAL - case 87: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:779 - { - // Create table [name] like [name] - yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion() - yyDollar[1].createTableUnion().FullyParsed = true - yyLOCAL = yyDollar[1].createTableUnion() - } - yyVAL.union = yyLOCAL - case 88: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:786 - { - indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition - indexDef.Columns = yyDollar[3].indexColumnsUnion() - indexDef.Options = append(indexDef.Options, yyDollar[5].indexOptionsUnion()...) - yyDollar[1].alterTableUnion().AlterOptions = append(yyDollar[1].alterTableUnion().AlterOptions, yyDollar[6].alterOptionsUnion()...) - yyDollar[1].alterTableUnion().FullyParsed = true - yyLOCAL = yyDollar[1].alterTableUnion() - } - yyVAL.union = yyLOCAL - case 89: - yyDollar = yyS[yypt-12 : yypt+1] - var yyLOCAL Statement -//line sql.y:795 - { - yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].str, Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str} - } - yyVAL.union = yyLOCAL - case 90: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:799 - { - yyDollar[1].createDatabaseUnion().FullyParsed = true - yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].collateAndCharsetsUnion() - yyLOCAL = yyDollar[1].createDatabaseUnion() - } - yyVAL.union = yyLOCAL - case 91: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:806 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 92: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL bool -//line sql.y:810 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 93: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:815 - { - yyVAL.colIdent = NewColIdent("") - } - case 94: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:819 - { - yyVAL.colIdent = yyDollar[2].colIdent - } - case 95: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:825 - { - yyVAL.colIdent = yyDollar[1].colIdent - } - case 96: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL []VindexParam -//line sql.y:830 - { - var v []VindexParam - yyLOCAL = v - } - yyVAL.union = yyLOCAL - case 97: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL []VindexParam -//line sql.y:835 - { - yyLOCAL = yyDollar[2].vindexParamsUnion() - } - yyVAL.union = yyLOCAL - case 98: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []VindexParam -//line sql.y:841 - { - yyLOCAL = make([]VindexParam, 0, 4) - yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam) - } - yyVAL.union = yyLOCAL - case 99: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:846 - { - yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].vindexParam) - } - case 100: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:852 - { - yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} - } - case 101: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL *CreateTable -//line sql.y:858 - { - yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()} - setDDL(yylex, yyLOCAL) - } - yyVAL.union = yyLOCAL - case 102: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *AlterTable -//line sql.y:865 - { - yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[4].tableName} - setDDL(yylex, yyLOCAL) - } - yyVAL.union = yyLOCAL - case 103: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL *AlterTable -//line sql.y:872 - { - yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].colIdent, Type: string(yyDollar[3].str)}, Options: yyDollar[5].indexOptionsUnion()}}}} - setDDL(yylex, yyLOCAL) - } - yyVAL.union = yyLOCAL - case 104: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL *AlterTable -//line sql.y:877 - { - yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Fulltext: true}, Options: yyDollar[6].indexOptionsUnion()}}}} - setDDL(yylex, yyLOCAL) - } - yyVAL.union = yyLOCAL - case 105: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL *AlterTable -//line sql.y:882 - { - yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Spatial: true}, Options: yyDollar[6].indexOptionsUnion()}}}} - setDDL(yylex, yyLOCAL) - } - yyVAL.union = yyLOCAL - case 106: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL *AlterTable -//line sql.y:887 - { - yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Unique: true}, Options: yyDollar[6].indexOptionsUnion()}}}} - setDDL(yylex, yyLOCAL) - } - yyVAL.union = yyLOCAL - case 107: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL *CreateDatabase -//line sql.y:894 - { - yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()} - setDDL(yylex, yyLOCAL) - } - yyVAL.union = yyLOCAL - case 108: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *AlterDatabase -//line sql.y:901 - { - yyLOCAL = &AlterDatabase{} - setDDL(yylex, yyLOCAL) - } - yyVAL.union = yyLOCAL - case 111: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *TableSpec -//line sql.y:912 - { - yyLOCAL = yyDollar[2].tableSpecUnion() - yyLOCAL.Options = yyDollar[4].tableOptionsUnion() - } - yyVAL.union = yyLOCAL - case 112: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL []CollateAndCharset -//line sql.y:918 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 113: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []CollateAndCharset -//line sql.y:922 - { - yyLOCAL = yyDollar[1].collateAndCharsetsUnion() - } - yyVAL.union = yyLOCAL - case 114: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []CollateAndCharset -//line sql.y:928 - { - yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} - } - yyVAL.union = yyLOCAL - case 115: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []CollateAndCharset -//line sql.y:932 - { - yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} - } - yyVAL.union = yyLOCAL - case 116: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:936 - { - yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) - } - case 117: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:940 - { - yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) - } - case 118: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:946 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 119: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:950 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 120: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:956 - { - yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} - } - case 121: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:960 - { - yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} - } - case 122: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:966 - { - yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} - } - case 123: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:970 - { - yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} - } - case 124: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *OptLike -//line sql.y:977 - { - yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName} - } - yyVAL.union = yyLOCAL - case 125: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *OptLike -//line sql.y:981 - { - yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName} - } - yyVAL.union = yyLOCAL - case 126: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []*ColumnDefinition -//line sql.y:987 - { - yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()} - } - yyVAL.union = yyLOCAL - case 127: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:991 - { - yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion()) - } - case 128: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *TableSpec -//line sql.y:997 - { - yyLOCAL = &TableSpec{} - yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion()) - } - yyVAL.union = yyLOCAL - case 129: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *TableSpec -//line sql.y:1002 - { - yyLOCAL = &TableSpec{} - yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion()) - } - yyVAL.union = yyLOCAL - case 130: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1007 - { - yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) - } - case 131: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1011 - { - yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) - yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion()) - } - case 132: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1016 - { - yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion()) - } - case 133: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1020 - { - yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) - } - case 134: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1024 - { - yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) - } - case 135: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *ColumnDefinition -//line sql.y:1030 - { - yyDollar[2].columnType.Options = yyDollar[3].columnTypeOptionsUnion() - yyDollar[2].columnType.Options.Reference = yyDollar[4].referenceDefinitionUnion() - yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} - } - yyVAL.union = yyLOCAL - case 136: - yyDollar = yyS[yypt-9 : yypt+1] - var yyLOCAL *ColumnDefinition -//line sql.y:1036 - { - yyDollar[2].columnType.Options = yyDollar[8].columnTypeOptionsUnion() - yyDollar[2].columnType.Options.As = yyDollar[6].exprUnion() - yyDollar[2].columnType.Options.Reference = yyDollar[9].referenceDefinitionUnion() - yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} - } - yyVAL.union = yyLOCAL - case 137: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1044 - { - yyVAL.str = "" - } - case 138: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1048 - { - yyVAL.str = "" - } - case 139: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1057 - { - yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} - } - yyVAL.union = yyLOCAL - case 140: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1061 - { - val := true - yyDollar[1].columnTypeOptionsUnion().Null = &val - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 141: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1067 - { - val := false - yyDollar[1].columnTypeOptionsUnion().Null = &val - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 142: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1073 - { - yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 143: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1078 - { - yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 144: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1083 - { - yyDollar[1].columnTypeOptionsUnion().Autoincrement = true - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 145: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1088 - { - yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 146: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1093 - { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 147: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColumnStorage -//line sql.y:1100 - { - yyLOCAL = VirtualStorage - } - yyVAL.union = yyLOCAL - case 148: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColumnStorage -//line sql.y:1104 - { - yyLOCAL = StoredStorage - } - yyVAL.union = yyLOCAL - case 149: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1109 - { - yyLOCAL = &ColumnTypeOptions{} - } - yyVAL.union = yyLOCAL - case 150: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1113 - { - yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 151: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1118 - { - val := true - yyDollar[1].columnTypeOptionsUnion().Null = &val - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 152: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1124 - { - val := false - yyDollar[1].columnTypeOptionsUnion().Null = &val - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 153: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1130 - { - yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 154: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ColumnTypeOptions -//line sql.y:1135 - { - yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() - yyLOCAL = yyDollar[1].columnTypeOptionsUnion() - } - yyVAL.union = yyLOCAL - case 155: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL ColumnKeyOption -//line sql.y:1142 - { - yyLOCAL = colKeyPrimary - } - yyVAL.union = yyLOCAL - case 156: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColumnKeyOption -//line sql.y:1146 - { - yyLOCAL = colKeyUnique - } - yyVAL.union = yyLOCAL - case 157: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL ColumnKeyOption -//line sql.y:1150 - { - yyLOCAL = colKeyUniqueKey - } - yyVAL.union = yyLOCAL - case 158: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColumnKeyOption -//line sql.y:1154 - { - yyLOCAL = colKey - } - yyVAL.union = yyLOCAL - case 159: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1160 - { - yyVAL.columnType = yyDollar[1].columnType - yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() - yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion() - } - case 163: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1171 - { - yyVAL.columnType = yyDollar[1].columnType - yyVAL.columnType.Length = yyDollar[2].literalUnion() - } - case 164: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1176 - { - yyVAL.columnType = yyDollar[1].columnType - } - case 165: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1182 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 166: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1186 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 167: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1190 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 168: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1194 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 169: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1198 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 170: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1202 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 171: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1206 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 172: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1210 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 173: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1214 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 174: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1220 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale - } - case 175: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1226 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale - } - case 176: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1232 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale - } - case 177: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1238 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale - } - case 178: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1244 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length - yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale - } - case 179: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1252 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 180: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1256 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - case 181: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1260 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - case 182: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1264 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - case 183: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1268 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - case 184: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1274 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} - } - case 185: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1278 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} - } - case 186: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1282 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - case 187: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1286 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - case 188: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1290 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} - } - case 189: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1294 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} - } - case 190: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1298 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} - } - case 191: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1302 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} - } - case 192: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1306 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 193: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1310 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 194: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1314 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 195: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1318 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 196: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1322 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 197: - yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1326 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} - } - case 198: - yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1331 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} - } - case 199: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1337 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 200: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1341 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 201: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1345 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 202: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1349 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 203: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1353 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 204: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1357 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 205: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1361 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 206: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1365 - { - yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} - } - case 207: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1371 - { - yyVAL.strs = make([]string, 0, 4) - yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) - } - case 208: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1376 - { - yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) - } - case 209: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *Literal -//line sql.y:1381 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 210: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *Literal -//line sql.y:1385 - { - yyLOCAL = NewIntLiteral(yyDollar[2].str) - } - yyVAL.union = yyLOCAL - case 211: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1390 - { - yyVAL.LengthScaleOption = LengthScaleOption{} - } - case 212: - yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1394 - { - yyVAL.LengthScaleOption = LengthScaleOption{ - Length: NewIntLiteral(yyDollar[2].str), - Scale: NewIntLiteral(yyDollar[4].str), - } - } - case 213: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1402 - { - yyVAL.LengthScaleOption = LengthScaleOption{} - } - case 214: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1406 - { - yyVAL.LengthScaleOption = LengthScaleOption{ - Length: NewIntLiteral(yyDollar[2].str), - } - } - case 215: - yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1412 - { - yyVAL.LengthScaleOption = LengthScaleOption{ - Length: NewIntLiteral(yyDollar[2].str), - Scale: NewIntLiteral(yyDollar[4].str), - } - } - case 216: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:1420 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 217: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:1424 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 218: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:1428 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 219: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:1433 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 220: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:1437 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 221: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1442 - { - yyVAL.str = "" - } - case 222: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1446 - { - yyVAL.str = string(yyDollar[2].colIdent.String()) - } - case 223: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1450 - { - yyVAL.str = encodeSQLString(yyDollar[2].str) - } - case 224: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1454 - { - yyVAL.str = string(yyDollar[2].str) - } - case 225: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1459 - { - yyVAL.str = "" - } - case 226: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1463 - { - yyVAL.str = string(yyDollar[2].colIdent.String()) - } - case 227: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1467 - { - yyVAL.str = encodeSQLString(yyDollar[2].str) - } - case 228: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *IndexDefinition -//line sql.y:1474 - { - yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} - } - yyVAL.union = yyLOCAL - case 229: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL []*IndexOption -//line sql.y:1479 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 230: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []*IndexOption -//line sql.y:1483 - { - yyLOCAL = yyDollar[1].indexOptionsUnion() - } - yyVAL.union = yyLOCAL - case 231: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []*IndexOption -//line sql.y:1489 - { - yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} - } - yyVAL.union = yyLOCAL - case 232: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1493 - { - yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) - } - case 233: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *IndexOption -//line sql.y:1499 - { - yyLOCAL = yyDollar[1].indexOptionUnion() - } - yyVAL.union = yyLOCAL - case 234: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *IndexOption -//line sql.y:1503 - { - // should not be string - yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 235: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *IndexOption -//line sql.y:1508 - { - yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} - } - yyVAL.union = yyLOCAL - case 236: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *IndexOption -//line sql.y:1512 - { - yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} - } - yyVAL.union = yyLOCAL - case 237: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1518 - { - yyVAL.str = "" - } - case 238: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1522 - { - yyVAL.str = string(yyDollar[1].str) - } - case 239: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *IndexInfo -//line sql.y:1528 - { - yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} - } - yyVAL.union = yyLOCAL - case 240: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *IndexInfo -//line sql.y:1532 - { - yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} - } - yyVAL.union = yyLOCAL - case 241: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *IndexInfo -//line sql.y:1536 - { - yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} - } - yyVAL.union = yyLOCAL - case 242: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *IndexInfo -//line sql.y:1540 - { - yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} - } - yyVAL.union = yyLOCAL - case 243: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *IndexInfo -//line sql.y:1544 - { - yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} - } - yyVAL.union = yyLOCAL - case 244: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1549 - { - yyVAL.str = "" - } - case 245: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1553 - { - yyVAL.str = yyDollar[2].str - } - case 246: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1559 - { - yyVAL.str = string(yyDollar[1].str) - } - case 247: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1563 - { - yyVAL.str = string(yyDollar[1].str) - } - case 248: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1567 - { - yyVAL.str = string(yyDollar[1].str) - } - case 249: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1574 - { - yyVAL.str = string(yyDollar[1].str) - } - case 250: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1578 - { - yyVAL.str = string(yyDollar[1].str) - } - case 251: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1583 - { - yyVAL.str = "key" - } - case 252: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1587 - { - yyVAL.str = yyDollar[1].str - } - case 253: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1593 - { - yyVAL.str = string(yyDollar[1].str) - } - case 254: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1597 - { - yyVAL.str = string(yyDollar[1].str) - } - case 255: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1602 - { - yyVAL.str = "" - } - case 256: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1606 - { - yyVAL.str = string(yyDollar[1].colIdent.String()) - } - case 257: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []*IndexColumn -//line sql.y:1612 - { - yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} - } - yyVAL.union = yyLOCAL - case 258: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1616 - { - yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) - } - case 259: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *IndexColumn -//line sql.y:1622 - { - yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} - } - yyVAL.union = yyLOCAL - case 260: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ConstraintDefinition -//line sql.y:1628 - { - yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} - } - yyVAL.union = yyLOCAL - case 261: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *ConstraintDefinition -//line sql.y:1632 - { - yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} - } - yyVAL.union = yyLOCAL - case 262: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ConstraintDefinition -//line sql.y:1638 - { - yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} - } - yyVAL.union = yyLOCAL - case 263: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *ConstraintDefinition -//line sql.y:1642 - { - yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} - } - yyVAL.union = yyLOCAL - case 264: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL ConstraintInfo -//line sql.y:1648 - { - yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()} - } - yyVAL.union = yyLOCAL - case 265: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *ReferenceDefinition -//line sql.y:1654 - { - yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion()} - } - yyVAL.union = yyLOCAL - case 266: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL *ReferenceDefinition -//line sql.y:1658 - { - yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion()} - } - yyVAL.union = yyLOCAL - case 267: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL *ReferenceDefinition -//line sql.y:1662 - { - yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnUpdate: yyDollar[6].ReferenceActionUnion()} - } - yyVAL.union = yyLOCAL - case 268: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL *ReferenceDefinition -//line sql.y:1666 - { - yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion(), OnUpdate: yyDollar[7].ReferenceActionUnion()} - } - yyVAL.union = yyLOCAL - case 269: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *ReferenceDefinition -//line sql.y:1671 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 270: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *ReferenceDefinition -//line sql.y:1675 - { - yyLOCAL = yyDollar[1].referenceDefinitionUnion() - } - yyVAL.union = yyLOCAL - case 271: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL ConstraintInfo -//line sql.y:1681 - { - yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} - } - yyVAL.union = yyLOCAL - case 272: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL ReferenceAction -//line sql.y:1687 - { - yyLOCAL = yyDollar[3].ReferenceActionUnion() - } - yyVAL.union = yyLOCAL - case 273: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL ReferenceAction -//line sql.y:1693 - { - yyLOCAL = yyDollar[3].ReferenceActionUnion() - } - yyVAL.union = yyLOCAL - case 274: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ReferenceAction -//line sql.y:1699 - { - yyLOCAL = Restrict - } - yyVAL.union = yyLOCAL - case 275: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ReferenceAction -//line sql.y:1703 - { - yyLOCAL = Cascade - } - yyVAL.union = yyLOCAL - case 276: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL ReferenceAction -//line sql.y:1707 - { - yyLOCAL = NoAction - } - yyVAL.union = yyLOCAL - case 277: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL ReferenceAction -//line sql.y:1711 - { - yyLOCAL = SetDefault - } - yyVAL.union = yyLOCAL - case 278: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL ReferenceAction -//line sql.y:1715 - { - yyLOCAL = SetNull - } - yyVAL.union = yyLOCAL - case 279: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1720 - { - yyVAL.str = "" - } - case 280: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1724 - { - yyVAL.str = string(yyDollar[1].str) - } - case 281: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1728 - { - yyVAL.str = string(yyDollar[1].str) - } - case 282: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:1733 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 283: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:1737 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 284: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL bool -//line sql.y:1741 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 285: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL TableOptions -//line sql.y:1746 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 286: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableOptions -//line sql.y:1750 - { - yyLOCAL = yyDollar[1].tableOptionsUnion() - } - yyVAL.union = yyLOCAL - case 287: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableOptions -//line sql.y:1756 - { - yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} - } - yyVAL.union = yyLOCAL - case 288: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1760 - { - yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) - } - case 289: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1764 - { - yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) - } - case 290: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableOptions -//line sql.y:1770 - { - yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} - } - yyVAL.union = yyLOCAL - case 291: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1774 - { - yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) - } - case 292: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1780 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 293: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1784 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 294: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1788 - { - yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} - } - yyVAL.union = yyLOCAL - case 295: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1792 - { - yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} - } - yyVAL.union = yyLOCAL - case 296: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1796 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 297: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1800 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 298: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1804 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 299: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1808 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 300: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1812 - { - yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} - } - yyVAL.union = yyLOCAL - case 301: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1816 - { - yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} - } - yyVAL.union = yyLOCAL - case 302: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1820 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 303: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1824 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 304: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1828 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].tableIdent.String()} - } - yyVAL.union = yyLOCAL - case 305: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1832 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 306: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1836 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 307: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1840 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 308: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1844 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 309: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1848 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 310: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1852 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 311: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1856 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 312: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1860 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 313: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1864 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 314: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1868 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 315: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1872 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 316: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1876 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 317: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1880 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 318: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1884 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} - } - yyVAL.union = yyLOCAL - case 319: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *TableOption -//line sql.y:1888 - { - yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} - } - yyVAL.union = yyLOCAL - case 320: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1893 - { - yyVAL.str = "" - } - case 321: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1897 - { - yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } - case 322: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1901 - { - yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } - case 332: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1920 - { - yyVAL.str = yyDollar[1].colIdent.String() - } - case 333: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1924 - { - yyVAL.str = encodeSQLString(yyDollar[1].str) - } - case 334: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1928 - { - yyVAL.str = string(yyDollar[1].str) - } - case 335: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1933 - { - yyVAL.str = "" - } - case 337: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:1939 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 338: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:1943 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 339: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *ColName -//line sql.y:1948 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 340: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ColName -//line sql.y:1952 - { - yyLOCAL = yyDollar[2].colNameUnion() - } - yyVAL.union = yyLOCAL - case 341: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:1957 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 342: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:1961 - { - yyLOCAL = yyDollar[1].alterOptionsUnion() - } - yyVAL.union = yyLOCAL - case 343: - yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1965 - { - yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) - } - case 344: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:1969 - { - yyLOCAL = yyDollar[1].alterOptionsUnion() - } - yyVAL.union = yyLOCAL - case 345: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1973 - { - yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) - } - case 346: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:1977 - { - yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) - } - yyVAL.union = yyLOCAL - case 347: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:1983 - { - yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} - } - yyVAL.union = yyLOCAL - case 348: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1987 - { - yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) - } - case 349: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1991 - { - yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) - } - case 350: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:1997 - { - yyLOCAL = yyDollar[1].tableOptionsUnion() - } - yyVAL.union = yyLOCAL - case 351: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2001 - { - yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} - } - yyVAL.union = yyLOCAL - case 352: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2005 - { - yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} - } - yyVAL.union = yyLOCAL - case 353: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2009 - { - yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} - } - yyVAL.union = yyLOCAL - case 354: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2013 - { - yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} - } - yyVAL.union = yyLOCAL - case 355: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2017 - { - yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} - } - yyVAL.union = yyLOCAL - case 356: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2021 - { - yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} - } - yyVAL.union = yyLOCAL - case 357: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2025 - { - yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} - } - yyVAL.union = yyLOCAL - case 358: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2029 - { - yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()} - } - yyVAL.union = yyLOCAL - case 359: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2033 - { - yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} - } - yyVAL.union = yyLOCAL - case 360: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2037 - { - yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} - } - yyVAL.union = yyLOCAL - case 361: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2041 - { - yyLOCAL = &KeyState{Enable: false} - } - yyVAL.union = yyLOCAL - case 362: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2045 - { - yyLOCAL = &KeyState{Enable: true} - } - yyVAL.union = yyLOCAL - case 363: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2049 - { - yyLOCAL = &TablespaceOperation{Import: false} - } - yyVAL.union = yyLOCAL - case 364: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2053 - { - yyLOCAL = &TablespaceOperation{Import: true} - } - yyVAL.union = yyLOCAL - case 365: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2057 - { - yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} - } - yyVAL.union = yyLOCAL - case 366: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2061 - { - yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} - } - yyVAL.union = yyLOCAL - case 367: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2065 - { - yyLOCAL = &DropKey{Type: PrimaryKeyType} - } - yyVAL.union = yyLOCAL - case 368: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2069 - { - yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} - } - yyVAL.union = yyLOCAL - case 369: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2073 - { - yyLOCAL = &Force{} - } - yyVAL.union = yyLOCAL - case 370: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2077 - { - yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} - } - yyVAL.union = yyLOCAL - case 371: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2081 - { - yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} - } - yyVAL.union = yyLOCAL - case 372: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:2087 - { - yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} - } - yyVAL.union = yyLOCAL - case 373: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2091 - { - yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) - } - case 374: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2097 - { - yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) - } - yyVAL.union = yyLOCAL - case 375: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2101 - { - yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) - } - yyVAL.union = yyLOCAL - case 376: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2105 - { - yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) - } - yyVAL.union = yyLOCAL - case 377: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2109 - { - yyLOCAL = &LockOption{Type: DefaultType} - } - yyVAL.union = yyLOCAL - case 378: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2113 - { - yyLOCAL = &LockOption{Type: NoneType} - } - yyVAL.union = yyLOCAL - case 379: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2117 - { - yyLOCAL = &LockOption{Type: SharedType} - } - yyVAL.union = yyLOCAL - case 380: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2121 - { - yyLOCAL = &LockOption{Type: ExclusiveType} - } - yyVAL.union = yyLOCAL - case 381: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2125 - { - yyLOCAL = &Validation{With: true} - } - yyVAL.union = yyLOCAL - case 382: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:2129 - { - yyLOCAL = &Validation{With: false} - } - yyVAL.union = yyLOCAL - case 383: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2135 - { - yyDollar[1].alterTableUnion().FullyParsed = true - yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() - yyLOCAL = yyDollar[1].alterTableUnion() - } - yyVAL.union = yyLOCAL - case 384: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2141 - { - yyDollar[1].alterTableUnion().FullyParsed = true - yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() - yyDollar[1].alterTableUnion().PartitionSpec = &PartitionSpec{Action: RemoveAction} - yyLOCAL = yyDollar[1].alterTableUnion() - } - yyVAL.union = yyLOCAL - case 385: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2148 - { - yyDollar[1].alterTableUnion().FullyParsed = true - yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() - yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[4].partSpecUnion() - yyLOCAL = yyDollar[1].alterTableUnion() - } - yyVAL.union = yyLOCAL - case 386: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2155 - { - yyDollar[1].alterTableUnion().FullyParsed = true - yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() - yyLOCAL = yyDollar[1].alterTableUnion() - } - yyVAL.union = yyLOCAL - case 387: - yyDollar = yyS[yypt-11 : yypt+1] - var yyLOCAL Statement -//line sql.y:2161 - { - yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} - } - yyVAL.union = yyLOCAL - case 388: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2165 - { - yyDollar[1].alterDatabaseUnion().FullyParsed = true - yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent - yyDollar[1].alterDatabaseUnion().AlterOptions = yyDollar[3].collateAndCharsetsUnion() - yyLOCAL = yyDollar[1].alterDatabaseUnion() - } - yyVAL.union = yyLOCAL - case 389: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:2172 - { - yyDollar[1].alterDatabaseUnion().FullyParsed = true - yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent - yyDollar[1].alterDatabaseUnion().UpdateDataDirectory = true - yyLOCAL = yyDollar[1].alterDatabaseUnion() - } - yyVAL.union = yyLOCAL - case 390: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Statement -//line sql.y:2179 - { - yyLOCAL = &AlterVschema{ - Action: CreateVindexDDLAction, - Table: yyDollar[6].tableName, - VindexSpec: &VindexSpec{ - Name: NewColIdent(yyDollar[6].tableName.Name.String()), - Type: yyDollar[7].colIdent, - Params: yyDollar[8].vindexParamsUnion(), - }, - } - } - yyVAL.union = yyLOCAL - case 391: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:2191 - { - yyLOCAL = &AlterVschema{ - Action: DropVindexDDLAction, - Table: yyDollar[6].tableName, - VindexSpec: &VindexSpec{ - Name: NewColIdent(yyDollar[6].tableName.Name.String()), - }, - } - } - yyVAL.union = yyLOCAL - case 392: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:2201 - { - yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} - } - yyVAL.union = yyLOCAL - case 393: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:2205 - { - yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} - } - yyVAL.union = yyLOCAL - case 394: - yyDollar = yyS[yypt-13 : yypt+1] - var yyLOCAL Statement -//line sql.y:2209 - { - yyLOCAL = &AlterVschema{ - Action: AddColVindexDDLAction, - Table: yyDollar[5].tableName, - VindexSpec: &VindexSpec{ - Name: yyDollar[8].colIdent, - Type: yyDollar[12].colIdent, - Params: yyDollar[13].vindexParamsUnion(), - }, - VindexCols: yyDollar[10].columnsUnion(), - } - } - yyVAL.union = yyLOCAL - case 395: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Statement -//line sql.y:2222 - { - yyLOCAL = &AlterVschema{ - Action: DropColVindexDDLAction, - Table: yyDollar[5].tableName, - VindexSpec: &VindexSpec{ - Name: yyDollar[8].colIdent, - }, - } - } - yyVAL.union = yyLOCAL - case 396: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:2232 - { - yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} - } - yyVAL.union = yyLOCAL - case 397: - yyDollar = yyS[yypt-10 : yypt+1] - var yyLOCAL Statement -//line sql.y:2236 - { - yyLOCAL = &AlterVschema{ - Action: AddAutoIncDDLAction, - Table: yyDollar[5].tableName, - AutoIncSpec: &AutoIncSpec{ - Column: yyDollar[8].colIdent, - Sequence: yyDollar[10].tableName, - }, - } - } - yyVAL.union = yyLOCAL - case 398: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2247 - { - yyLOCAL = &AlterMigration{ - Type: RetryMigrationType, - UUID: string(yyDollar[4].str), - } - } - yyVAL.union = yyLOCAL - case 399: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2254 - { - yyLOCAL = &AlterMigration{ - Type: CompleteMigrationType, - UUID: string(yyDollar[4].str), - } - } - yyVAL.union = yyLOCAL - case 400: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2261 - { - yyLOCAL = &AlterMigration{ - Type: CancelMigrationType, - UUID: string(yyDollar[4].str), - } - } - yyVAL.union = yyLOCAL - case 401: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2268 - { - yyLOCAL = &AlterMigration{ - Type: CancelAllMigrationType, - } - } - yyVAL.union = yyLOCAL - case 402: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2276 - { - yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} - } - yyVAL.union = yyLOCAL - case 403: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2280 - { - yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 404: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2284 - { - yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} - } - yyVAL.union = yyLOCAL - case 405: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2288 - { - yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 406: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2292 - { - yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} - } - yyVAL.union = yyLOCAL - case 407: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2296 - { - yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 408: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2300 - { - yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} - } - yyVAL.union = yyLOCAL - case 409: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2304 - { - yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 410: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2308 - { - yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} - } - yyVAL.union = yyLOCAL - case 411: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2312 - { - yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 412: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2316 - { - yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} - } - yyVAL.union = yyLOCAL - case 413: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2320 - { - yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 414: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2324 - { - yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} - } - yyVAL.union = yyLOCAL - case 415: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2328 - { - yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 416: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2332 - { - yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} - } - yyVAL.union = yyLOCAL - case 417: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2336 - { - yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 418: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2340 - { - yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} - } - yyVAL.union = yyLOCAL - case 419: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2344 - { - yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 420: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2348 - { - yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} - } - yyVAL.union = yyLOCAL - case 421: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2352 - { - yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} - } - yyVAL.union = yyLOCAL - case 422: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2356 - { - yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} - } - yyVAL.union = yyLOCAL - case 423: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *PartitionSpec -//line sql.y:2360 - { - yyLOCAL = &PartitionSpec{Action: UpgradeAction} - } - yyVAL.union = yyLOCAL - case 424: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:2365 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 425: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL bool -//line sql.y:2369 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 426: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL bool -//line sql.y:2373 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 427: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []*PartitionDefinition -//line sql.y:2380 - { - yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} - } - yyVAL.union = yyLOCAL - case 428: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2384 - { - yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) - } - case 429: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL *PartitionDefinition -//line sql.y:2390 - { - yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} - } - yyVAL.union = yyLOCAL - case 430: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL *PartitionDefinition -//line sql.y:2394 - { - yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} - } - yyVAL.union = yyLOCAL - case 431: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2400 - { - yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} - } - yyVAL.union = yyLOCAL - case 432: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL []*RenameTablePair -//line sql.y:2406 - { - yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} - } - yyVAL.union = yyLOCAL - case 433: - yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2410 - { - yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) - } - case 434: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:2416 - { - yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} - } - yyVAL.union = yyLOCAL - case 435: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:2420 - { - // Change this to an alter statement - if yyDollar[4].colIdent.Lowered() == "primary" { - yyLOCAL = &AlterTable{FullyParsed: true, Table: yyDollar[6].tableName, AlterOptions: append([]AlterOption{&DropKey{Type: PrimaryKeyType}}, yyDollar[7].alterOptionsUnion()...)} - } else { - yyLOCAL = &AlterTable{FullyParsed: true, Table: yyDollar[6].tableName, AlterOptions: append([]AlterOption{&DropKey{Type: NormalKeyType, Name: yyDollar[4].colIdent}}, yyDollar[7].alterOptionsUnion()...)} - } - } - yyVAL.union = yyLOCAL - case 436: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:2429 - { - yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} - } - yyVAL.union = yyLOCAL - case 437: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2433 - { - yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} - } - yyVAL.union = yyLOCAL - case 438: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2439 - { - yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} - } - yyVAL.union = yyLOCAL - case 439: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2443 - { - yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} - } - yyVAL.union = yyLOCAL - case 440: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2448 - { - yyLOCAL = &OtherRead{} - } - yyVAL.union = yyLOCAL - case 441: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2454 - { - yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 442: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2458 - { - yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 443: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:2462 - { - yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 444: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2466 - { - yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 445: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2470 - { - yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 446: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2474 - { - yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 447: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2478 - { - yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 448: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2482 - { - yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 449: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:2486 - { - yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 450: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2490 - { - yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 451: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2494 - { - yyLOCAL = &Show{&ShowBasic{Command: Privilege}} - } - yyVAL.union = yyLOCAL - case 452: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2498 - { - yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 453: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2502 - { - yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 454: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2506 - { - yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 455: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2510 - { - yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 456: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2514 - { - yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 457: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2518 - { - yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 458: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2522 - { - yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 459: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2526 - { - yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} - } - yyVAL.union = yyLOCAL - case 460: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2530 - { - yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} - } - yyVAL.union = yyLOCAL - case 461: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2534 - { - yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} - } - yyVAL.union = yyLOCAL - case 462: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2538 - { - yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} - } - yyVAL.union = yyLOCAL - case 463: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2542 - { - yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} - } - yyVAL.union = yyLOCAL - case 464: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2546 - { - yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} - } - yyVAL.union = yyLOCAL - case 465: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2550 - { - yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} - } - yyVAL.union = yyLOCAL - case 466: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2554 - { - yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} - } - yyVAL.union = yyLOCAL - case 467: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2558 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 468: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2562 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 469: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2566 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 470: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2570 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 471: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2574 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 472: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2578 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 473: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2582 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 474: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2586 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 475: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2590 - { - yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} - } - yyVAL.union = yyLOCAL - case 476: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2594 - { - yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} - } - yyVAL.union = yyLOCAL - case 477: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2598 - { - showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} - yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} - } - yyVAL.union = yyLOCAL - case 478: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2603 - { - yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} - } - yyVAL.union = yyLOCAL - case 479: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2607 - { - yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)} - } - yyVAL.union = yyLOCAL - case 480: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2611 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 481: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2615 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 482: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2619 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 483: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2623 - { - yyLOCAL = &Show{&ShowBasic{Command: Warnings}} - } - yyVAL.union = yyLOCAL - case 484: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2628 - { - // This should probably be a different type (ShowVitessTopoOpt), but - // just getting the thing working for now - showTablesOpt := &ShowTablesOpt{Filter: yyDollar[3].showFilterUnion()} - yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} - } - yyVAL.union = yyLOCAL - case 485: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2642 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 486: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2646 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 487: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2650 - { - yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} - } - yyVAL.union = yyLOCAL - case 488: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2656 - { - yyVAL.str = string(yyDollar[1].str) - } - case 489: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2660 - { - yyVAL.str = string(yyDollar[1].str) - } - case 490: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2666 - { - yyVAL.str = "" - } - case 491: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2670 - { - yyVAL.str = "extended " - } - case 492: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:2676 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 493: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:2680 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 494: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2686 - { - yyVAL.str = string(yyDollar[1].str) - } - case 495: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2690 - { - yyVAL.str = string(yyDollar[1].str) - } - case 496: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2696 - { - yyVAL.tableIdent = NewTableIdent("") - } - case 497: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2700 - { - yyVAL.tableIdent = yyDollar[2].tableIdent - } - case 498: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2704 - { - yyVAL.tableIdent = yyDollar[2].tableIdent - } - case 499: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *ShowFilter -//line sql.y:2710 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 500: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ShowFilter -//line sql.y:2714 - { - yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} - } - yyVAL.union = yyLOCAL - case 501: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ShowFilter -//line sql.y:2718 - { - yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 502: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *ShowFilter -//line sql.y:2724 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 503: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ShowFilter -//line sql.y:2728 - { - yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} - } - yyVAL.union = yyLOCAL - case 504: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2734 - { - yyVAL.empty = struct{}{} - } - case 505: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2738 - { - yyVAL.empty = struct{}{} - } - case 506: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2742 - { - yyVAL.empty = struct{}{} - } - case 507: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2748 - { - yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} - } - yyVAL.union = yyLOCAL - case 508: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:2752 - { - yyLOCAL = &Use{DBName: TableIdent{v: ""}} - } - yyVAL.union = yyLOCAL - case 509: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:2758 - { - yyLOCAL = &Begin{} - } - yyVAL.union = yyLOCAL - case 510: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2762 - { - yyLOCAL = &Begin{} - } - yyVAL.union = yyLOCAL - case 511: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:2768 - { - yyLOCAL = &Commit{} - } - yyVAL.union = yyLOCAL - case 512: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:2774 - { - yyLOCAL = &Rollback{} - } - yyVAL.union = yyLOCAL - case 513: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:2778 - { - yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} - } - yyVAL.union = yyLOCAL - case 514: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2783 - { - yyVAL.empty = struct{}{} - } - case 515: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2785 - { - yyVAL.empty = struct{}{} - } - case 516: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2788 - { - yyVAL.empty = struct{}{} - } - case 517: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2790 - { - yyVAL.empty = struct{}{} - } - case 518: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2795 - { - yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} - } - yyVAL.union = yyLOCAL - case 519: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2801 - { - yyLOCAL = &Release{Name: yyDollar[3].colIdent} - } - yyVAL.union = yyLOCAL - case 520: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL ExplainType -//line sql.y:2806 - { - yyLOCAL = EmptyType - } - yyVAL.union = yyLOCAL - case 521: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL ExplainType -//line sql.y:2810 - { - yyLOCAL = JSONType - } - yyVAL.union = yyLOCAL - case 522: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL ExplainType -//line sql.y:2814 - { - yyLOCAL = TreeType - } - yyVAL.union = yyLOCAL - case 523: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL ExplainType -//line sql.y:2818 - { - yyLOCAL = VitessType - } - yyVAL.union = yyLOCAL - case 524: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL ExplainType -//line sql.y:2822 - { - yyLOCAL = TraditionalType - } - yyVAL.union = yyLOCAL - case 525: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ExplainType -//line sql.y:2826 - { - yyLOCAL = AnalyzeType - } - yyVAL.union = yyLOCAL - case 526: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2832 - { - yyVAL.str = yyDollar[1].str - } - case 527: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2836 - { - yyVAL.str = yyDollar[1].str - } - case 528: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2840 - { - yyVAL.str = yyDollar[1].str - } - case 529: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:2846 - { - yyLOCAL = yyDollar[1].selStmtUnion() - } - yyVAL.union = yyLOCAL - case 530: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:2850 - { - yyLOCAL = yyDollar[1].statementUnion() - } - yyVAL.union = yyLOCAL - case 531: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:2854 - { - yyLOCAL = yyDollar[1].statementUnion() - } - yyVAL.union = yyLOCAL - case 532: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Statement -//line sql.y:2858 - { - yyLOCAL = yyDollar[1].statementUnion() - } - yyVAL.union = yyLOCAL - case 533: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2863 - { - yyVAL.str = "" - } - case 534: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2867 - { - yyVAL.str = yyDollar[1].colIdent.val - } - case 535: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2871 - { - yyVAL.str = encodeSQLString(yyDollar[1].str) - } - case 536: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2877 - { - yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} - } - yyVAL.union = yyLOCAL - case 537: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2881 - { - yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} - } - yyVAL.union = yyLOCAL - case 538: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2887 - { - yyLOCAL = &OtherAdmin{} - } - yyVAL.union = yyLOCAL - case 539: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2891 - { - yyLOCAL = &OtherAdmin{} - } - yyVAL.union = yyLOCAL - case 540: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2897 - { - yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} - } - yyVAL.union = yyLOCAL - case 541: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableAndLockTypes -//line sql.y:2903 - { - yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} - } - yyVAL.union = yyLOCAL - case 542: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2907 - { - yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) - } - case 543: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *TableAndLockType -//line sql.y:2913 - { - yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} - } - yyVAL.union = yyLOCAL - case 544: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL LockType -//line sql.y:2919 - { - yyLOCAL = Read - } - yyVAL.union = yyLOCAL - case 545: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL LockType -//line sql.y:2923 - { - yyLOCAL = ReadLocal - } - yyVAL.union = yyLOCAL - case 546: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL LockType -//line sql.y:2927 - { - yyLOCAL = Write - } - yyVAL.union = yyLOCAL - case 547: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL LockType -//line sql.y:2931 - { - yyLOCAL = LowPriorityWrite - } - yyVAL.union = yyLOCAL - case 548: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Statement -//line sql.y:2937 - { - yyLOCAL = &UnlockTables{} - } - yyVAL.union = yyLOCAL - case 549: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2943 - { - yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} - } - yyVAL.union = yyLOCAL - case 550: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2949 - { - yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} - } - yyVAL.union = yyLOCAL - case 551: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Statement -//line sql.y:2953 - { - yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} - } - yyVAL.union = yyLOCAL - case 552: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:2957 - { - yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} - } - yyVAL.union = yyLOCAL - case 553: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Statement -//line sql.y:2961 - { - yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} - } - yyVAL.union = yyLOCAL - case 554: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL Statement -//line sql.y:2965 - { - yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} - } - yyVAL.union = yyLOCAL - case 555: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Statement -//line sql.y:2969 - { - yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} - } - yyVAL.union = yyLOCAL - case 556: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2975 - { - yyVAL.strs = []string{yyDollar[1].str} - } - case 557: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2979 - { - yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) - } - case 558: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2985 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } - case 559: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2989 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } - case 560: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2993 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } - case 561: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2997 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } - case 562: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3001 - { - yyVAL.str = string(yyDollar[1].str) - } - case 563: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3005 - { - yyVAL.str = string(yyDollar[1].str) - } - case 564: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3009 - { - yyVAL.str = string(yyDollar[1].str) - } - case 565: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3013 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str - } - case 566: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3017 - { - yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) - } - case 567: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3021 - { - yyVAL.str = string(yyDollar[1].str) - } - case 568: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3025 - { - yyVAL.str = string(yyDollar[1].str) - } - case 569: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3029 - { - yyVAL.str = string(yyDollar[1].str) - } - case 570: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:3034 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 571: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:3038 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 572: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:3042 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 573: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3047 - { - yyVAL.str = "" - } - case 574: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3051 - { - yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() - } - case 575: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3056 - { - setAllowComments(yylex, true) - } - case 576: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3060 - { - yyVAL.strs = yyDollar[2].strs - setAllowComments(yylex, false) - } - case 577: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3066 - { - yyVAL.strs = nil - } - case 578: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3070 - { - yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) - } - case 579: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:3076 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 580: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL bool -//line sql.y:3080 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 581: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL bool -//line sql.y:3084 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 582: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3089 - { - yyVAL.str = "" - } - case 583: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3093 - { - yyVAL.str = SQLNoCacheStr - } - case 584: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3097 - { - yyVAL.str = SQLCacheStr - } - case 585: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:3102 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 586: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:3106 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 587: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:3110 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 588: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL SelectExprs -//line sql.y:3115 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 589: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL SelectExprs -//line sql.y:3119 - { - yyLOCAL = yyDollar[1].selectExprsUnion() - } - yyVAL.union = yyLOCAL - case 590: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3124 - { - yyVAL.strs = nil - } - case 591: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3128 - { - yyVAL.strs = []string{yyDollar[1].str} - } - case 592: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3132 - { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' - yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} - } - case 593: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3136 - { - yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} - } - case 594: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3140 - { - yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} - } - case 595: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3146 - { - yyVAL.str = SQLNoCacheStr - } - case 596: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3150 - { - yyVAL.str = SQLCacheStr - } - case 597: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3154 - { - yyVAL.str = DistinctStr - } - case 598: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3158 - { - yyVAL.str = DistinctStr - } - case 599: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3162 - { - yyVAL.str = StraightJoinHint - } - case 600: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3166 - { - yyVAL.str = SQLCalcFoundRowsStr - } - case 601: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3170 - { - yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway - } - case 602: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL SelectExprs -//line sql.y:3176 - { - yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} - } - yyVAL.union = yyLOCAL - case 603: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3180 - { - yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) - } - case 604: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL SelectExpr -//line sql.y:3186 - { - yyLOCAL = &StarExpr{} - } - yyVAL.union = yyLOCAL - case 605: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL SelectExpr -//line sql.y:3190 - { - yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} - } - yyVAL.union = yyLOCAL - case 606: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL SelectExpr -//line sql.y:3194 - { - yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} - } - yyVAL.union = yyLOCAL - case 607: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL SelectExpr -//line sql.y:3198 - { - yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} - } - yyVAL.union = yyLOCAL - case 608: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3203 - { - yyVAL.colIdent = ColIdent{} - } - case 609: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3207 - { - yyVAL.colIdent = yyDollar[1].colIdent - } - case 610: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3211 - { - yyVAL.colIdent = yyDollar[2].colIdent - } - case 612: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3218 - { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) - } - case 613: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL TableExprs -//line sql.y:3223 - { - yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} - } - yyVAL.union = yyLOCAL - case 614: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL TableExprs -//line sql.y:3227 - { - yyLOCAL = yyDollar[2].tableExprsUnion() - } - yyVAL.union = yyLOCAL - case 615: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableExprs -//line sql.y:3233 - { - yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} - } - yyVAL.union = yyLOCAL - case 616: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3237 - { - yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) - } - case 619: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL TableExpr -//line sql.y:3247 - { - yyLOCAL = yyDollar[1].aliasedTableNameUnion() - } - yyVAL.union = yyLOCAL - case 620: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL TableExpr -//line sql.y:3251 - { - yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} - } - yyVAL.union = yyLOCAL - case 621: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL TableExpr -//line sql.y:3255 - { - yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} - } - yyVAL.union = yyLOCAL - case 622: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *DerivedTable -//line sql.y:3261 - { - yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} - } - yyVAL.union = yyLOCAL - case 623: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *AliasedTableExpr -//line sql.y:3267 - { - yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} - } - yyVAL.union = yyLOCAL - case 624: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL *AliasedTableExpr -//line sql.y:3271 - { - yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} - } - yyVAL.union = yyLOCAL - case 625: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Columns -//line sql.y:3276 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 626: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Columns -//line sql.y:3280 - { - yyLOCAL = yyDollar[2].columnsUnion() - } - yyVAL.union = yyLOCAL - case 627: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Columns -//line sql.y:3286 - { - yyLOCAL = Columns{yyDollar[1].colIdent} - } - yyVAL.union = yyLOCAL - case 628: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3290 - { - yySLICE := (*Columns)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].colIdent) - } - case 629: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Columns -//line sql.y:3296 - { - yyLOCAL = Columns{yyDollar[1].colIdent} - } - yyVAL.union = yyLOCAL - case 630: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Columns -//line sql.y:3300 - { - yyLOCAL = Columns{NewColIdent(string(yyDollar[1].str))} - } - yyVAL.union = yyLOCAL - case 631: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3304 - { - yySLICE := (*Columns)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].colIdent) - } - case 632: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3308 - { - yySLICE := (*Columns)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, NewColIdent(string(yyDollar[3].str))) - } - case 633: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Partitions -//line sql.y:3314 - { - yyLOCAL = Partitions{yyDollar[1].colIdent} - } - yyVAL.union = yyLOCAL - case 634: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3318 - { - yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].colIdent) - } - case 635: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL TableExpr -//line sql.y:3331 - { - yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} - } - yyVAL.union = yyLOCAL - case 636: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL TableExpr -//line sql.y:3335 - { - yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} - } - yyVAL.union = yyLOCAL - case 637: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL TableExpr -//line sql.y:3339 - { - yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} - } - yyVAL.union = yyLOCAL - case 638: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL TableExpr -//line sql.y:3343 - { - yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} - } - yyVAL.union = yyLOCAL - case 639: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3349 - { - yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} - } - case 640: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3351 - { - yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} - } - case 641: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3355 - { - yyVAL.joinCondition = JoinCondition{} - } - case 642: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3357 - { - yyVAL.joinCondition = yyDollar[1].joinCondition - } - case 643: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3361 - { - yyVAL.joinCondition = JoinCondition{} - } - case 644: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3363 - { - yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} - } - case 645: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3366 - { - yyVAL.empty = struct{}{} - } - case 646: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3368 - { - yyVAL.empty = struct{}{} - } - case 647: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3371 - { - yyVAL.tableIdent = NewTableIdent("") - } - case 648: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3375 - { - yyVAL.tableIdent = yyDollar[1].tableIdent - } - case 649: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3379 - { - yyVAL.tableIdent = yyDollar[2].tableIdent - } - case 651: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3386 - { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) - } - case 652: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3392 - { - yyLOCAL = NormalJoinType - } - yyVAL.union = yyLOCAL - case 653: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3396 - { - yyLOCAL = NormalJoinType - } - yyVAL.union = yyLOCAL - case 654: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3400 - { - yyLOCAL = NormalJoinType - } - yyVAL.union = yyLOCAL - case 655: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3406 - { - yyLOCAL = StraightJoinType - } - yyVAL.union = yyLOCAL - case 656: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3412 - { - yyLOCAL = LeftJoinType - } - yyVAL.union = yyLOCAL - case 657: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3416 - { - yyLOCAL = LeftJoinType - } - yyVAL.union = yyLOCAL - case 658: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3420 - { - yyLOCAL = RightJoinType - } - yyVAL.union = yyLOCAL - case 659: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3424 - { - yyLOCAL = RightJoinType - } - yyVAL.union = yyLOCAL - case 660: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3430 - { - yyLOCAL = NaturalJoinType - } - yyVAL.union = yyLOCAL - case 661: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL JoinType -//line sql.y:3434 - { - if yyDollar[2].joinTypeUnion() == LeftJoinType { - yyLOCAL = NaturalLeftJoinType - } else { - yyLOCAL = NaturalRightJoinType - } - } - yyVAL.union = yyLOCAL - case 662: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3444 - { - yyVAL.tableName = yyDollar[2].tableName - } - case 663: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3448 - { - yyVAL.tableName = yyDollar[1].tableName - } - case 664: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3454 - { - yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} - } - case 665: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3458 - { - yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} - } - case 666: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3464 - { - yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} - } - case 667: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *IndexHints -//line sql.y:3469 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 668: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *IndexHints -//line sql.y:3473 - { - yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} - } - yyVAL.union = yyLOCAL - case 669: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *IndexHints -//line sql.y:3477 - { - yyLOCAL = &IndexHints{Type: UseOp} - } - yyVAL.union = yyLOCAL - case 670: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *IndexHints -//line sql.y:3481 - { - yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} - } - yyVAL.union = yyLOCAL - case 671: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *IndexHints -//line sql.y:3485 - { - yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} - } - yyVAL.union = yyLOCAL - case 672: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Expr -//line sql.y:3490 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 673: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3494 - { - yyLOCAL = yyDollar[2].exprUnion() - } - yyVAL.union = yyLOCAL - case 674: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:3500 - { - yyLOCAL = yyDollar[1].exprUnion() - } - yyVAL.union = yyLOCAL - case 675: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3504 - { - yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 676: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3508 - { - yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 677: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3512 - { - yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 678: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3516 - { - yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 679: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3520 - { - yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()} - } - yyVAL.union = yyLOCAL - case 680: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:3524 - { - yyLOCAL = yyDollar[1].exprUnion() - } - yyVAL.union = yyLOCAL - case 681: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3528 - { - yyLOCAL = &Default{ColName: yyDollar[2].str} - } - yyVAL.union = yyLOCAL - case 682: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3534 - { - yyVAL.str = "" - } - case 683: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3538 - { - yyVAL.str = string(yyDollar[2].colIdent.String()) - } - case 684: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL BoolVal -//line sql.y:3544 - { - yyLOCAL = BoolVal(true) - } - yyVAL.union = yyLOCAL - case 685: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL BoolVal -//line sql.y:3548 - { - yyLOCAL = BoolVal(false) - } - yyVAL.union = yyLOCAL - case 686: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3554 - { - yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 687: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3558 - { - yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} - } - yyVAL.union = yyLOCAL - case 688: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:3562 - { - yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} - } - yyVAL.union = yyLOCAL - case 689: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:3566 - { - yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} - } - yyVAL.union = yyLOCAL - case 690: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Expr -//line sql.y:3570 - { - yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} - } - yyVAL.union = yyLOCAL - case 691: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3574 - { - yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 692: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:3578 - { - yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} - } - yyVAL.union = yyLOCAL - case 693: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Expr -//line sql.y:3582 - { - yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} - } - yyVAL.union = yyLOCAL - case 694: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Expr -//line sql.y:3586 - { - yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} - } - yyVAL.union = yyLOCAL - case 695: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3590 - { - yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} - } - yyVAL.union = yyLOCAL - case 696: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL IsExprOperator -//line sql.y:3596 - { - yyLOCAL = IsNullOp - } - yyVAL.union = yyLOCAL - case 697: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL IsExprOperator -//line sql.y:3600 - { - yyLOCAL = IsNotNullOp - } - yyVAL.union = yyLOCAL - case 698: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL IsExprOperator -//line sql.y:3604 - { - yyLOCAL = IsTrueOp - } - yyVAL.union = yyLOCAL - case 699: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL IsExprOperator -//line sql.y:3608 - { - yyLOCAL = IsNotTrueOp - } - yyVAL.union = yyLOCAL - case 700: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL IsExprOperator -//line sql.y:3612 - { - yyLOCAL = IsFalseOp - } - yyVAL.union = yyLOCAL - case 701: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL IsExprOperator -//line sql.y:3616 - { - yyLOCAL = IsNotFalseOp - } - yyVAL.union = yyLOCAL - case 702: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ComparisonExprOperator -//line sql.y:3622 - { - yyLOCAL = EqualOp - } - yyVAL.union = yyLOCAL - case 703: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ComparisonExprOperator -//line sql.y:3626 - { - yyLOCAL = LessThanOp - } - yyVAL.union = yyLOCAL - case 704: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ComparisonExprOperator -//line sql.y:3630 - { - yyLOCAL = GreaterThanOp - } - yyVAL.union = yyLOCAL - case 705: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ComparisonExprOperator -//line sql.y:3634 - { - yyLOCAL = LessEqualOp - } - yyVAL.union = yyLOCAL - case 706: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ComparisonExprOperator -//line sql.y:3638 - { - yyLOCAL = GreaterEqualOp - } - yyVAL.union = yyLOCAL - case 707: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ComparisonExprOperator -//line sql.y:3642 - { - yyLOCAL = NotEqualOp - } - yyVAL.union = yyLOCAL - case 708: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ComparisonExprOperator -//line sql.y:3646 - { - yyLOCAL = NullSafeEqualOp - } - yyVAL.union = yyLOCAL - case 709: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Expr -//line sql.y:3651 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 710: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3655 - { - yyLOCAL = yyDollar[2].exprUnion() - } - yyVAL.union = yyLOCAL - case 711: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColTuple -//line sql.y:3661 - { - yyLOCAL = yyDollar[1].valTupleUnion() - } - yyVAL.union = yyLOCAL - case 712: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColTuple -//line sql.y:3665 - { - yyLOCAL = yyDollar[1].subqueryUnion() - } - yyVAL.union = yyLOCAL - case 713: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ColTuple -//line sql.y:3669 - { - yyLOCAL = ListArg(yyDollar[1].str[2:]) - bindVariable(yylex, yyDollar[1].str[2:]) - } - yyVAL.union = yyLOCAL - case 714: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *Subquery -//line sql.y:3676 - { - yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} - } - yyVAL.union = yyLOCAL - case 715: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Exprs -//line sql.y:3682 - { - yyLOCAL = Exprs{yyDollar[1].exprUnion()} - } - yyVAL.union = yyLOCAL - case 716: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3686 - { - yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) - } - case 717: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:3692 - { - yyLOCAL = yyDollar[1].exprUnion() - } - yyVAL.union = yyLOCAL - case 718: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:3696 - { - yyLOCAL = yyDollar[1].boolValUnion() - } - yyVAL.union = yyLOCAL - case 719: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:3700 - { - yyLOCAL = yyDollar[1].colNameUnion() - } - yyVAL.union = yyLOCAL - case 720: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:3704 - { - yyLOCAL = yyDollar[1].exprUnion() - } - yyVAL.union = yyLOCAL - case 721: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:3708 - { - yyLOCAL = yyDollar[1].subqueryUnion() - } - yyVAL.union = yyLOCAL - case 722: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3712 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 723: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3716 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 724: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3720 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 725: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3724 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 726: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3728 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 727: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3732 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 728: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3736 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 729: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3740 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 730: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3744 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 731: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3748 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 732: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3752 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 733: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3756 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 734: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3760 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 735: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3764 - { - yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 736: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3768 - { - yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} - } - yyVAL.union = yyLOCAL - case 737: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3772 - { - yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 738: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3776 - { - yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 739: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3780 - { - yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 740: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3784 - { - yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 741: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3788 - { - yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 742: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3792 - { - yyLOCAL = yyDollar[2].exprUnion() - } - yyVAL.union = yyLOCAL - case 743: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3796 - { - yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) - } - yyVAL.union = yyLOCAL - case 744: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3800 - { - yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 745: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3804 - { - yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 746: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3808 - { - // This rule prevents the usage of INTERVAL - // as a function. If support is needed for that, - // we'll need to revisit this. The solution - // will be non-trivial because of grammar conflicts. - yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} - } - yyVAL.union = yyLOCAL - case 751: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:3826 - { - yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 752: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Expr -//line sql.y:3830 - { - yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 753: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Expr -//line sql.y:3834 - { - yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 754: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Expr -//line sql.y:3838 - { - yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 755: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:3848 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 756: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:3852 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 757: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Expr -//line sql.y:3856 - { - yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} - } - yyVAL.union = yyLOCAL - case 758: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Expr -//line sql.y:3860 - { - yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} - } - yyVAL.union = yyLOCAL - case 759: - yyDollar = yyS[yypt-6 : yypt+1] - var yyLOCAL Expr -//line sql.y:3864 - { - yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} - } - yyVAL.union = yyLOCAL - case 760: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Expr -//line sql.y:3868 - { - yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} - } - yyVAL.union = yyLOCAL - case 761: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Expr -//line sql.y:3872 - { - yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} - } - yyVAL.union = yyLOCAL - case 762: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Expr -//line sql.y:3876 - { - yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} - } - yyVAL.union = yyLOCAL - case 763: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Expr -//line sql.y:3880 - { - yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} - } - yyVAL.union = yyLOCAL - case 764: - yyDollar = yyS[yypt-9 : yypt+1] - var yyLOCAL Expr -//line sql.y:3884 - { - yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} - } - yyVAL.union = yyLOCAL - case 765: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Expr -//line sql.y:3888 - { - yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} - } - yyVAL.union = yyLOCAL - case 766: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Expr -//line sql.y:3892 - { - yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} - } - yyVAL.union = yyLOCAL - case 767: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:3896 - { - yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} - } - yyVAL.union = yyLOCAL - case 768: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3900 - { - yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} - } - yyVAL.union = yyLOCAL - case 769: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3910 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} - } - yyVAL.union = yyLOCAL - case 770: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3914 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} - } - yyVAL.union = yyLOCAL - case 771: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3918 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} - } - yyVAL.union = yyLOCAL - case 772: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3923 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} - } - yyVAL.union = yyLOCAL - case 773: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3928 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} - } - yyVAL.union = yyLOCAL - case 774: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3933 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} - } - yyVAL.union = yyLOCAL - case 775: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3939 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} - } - yyVAL.union = yyLOCAL - case 776: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3944 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} - } - yyVAL.union = yyLOCAL - case 777: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3949 - { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 778: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3953 - { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 779: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3957 - { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 780: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3962 - { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 781: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3967 - { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 782: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:3972 - { - yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 783: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Expr -//line sql.y:3976 - { - yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} - } - yyVAL.union = yyLOCAL - case 784: - yyDollar = yyS[yypt-8 : yypt+1] - var yyLOCAL Expr -//line sql.y:3980 - { - yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} - } - yyVAL.union = yyLOCAL - case 787: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Expr -//line sql.y:3990 - { - yyLOCAL = yyDollar[2].exprUnion() - } - yyVAL.union = yyLOCAL - case 788: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:4000 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 789: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:4004 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 790: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:4008 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 791: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:4012 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 792: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:4016 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 793: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:4020 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 794: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Expr -//line sql.y:4024 - { - yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} - } - yyVAL.union = yyLOCAL - case 795: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL MatchExprOption -//line sql.y:4030 - { - yyLOCAL = NoOption - } - yyVAL.union = yyLOCAL - case 796: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL MatchExprOption -//line sql.y:4034 - { - yyLOCAL = BooleanModeOpt - } - yyVAL.union = yyLOCAL - case 797: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL MatchExprOption -//line sql.y:4038 - { - yyLOCAL = NaturalLanguageModeOpt - } - yyVAL.union = yyLOCAL - case 798: - yyDollar = yyS[yypt-7 : yypt+1] - var yyLOCAL MatchExprOption -//line sql.y:4042 - { - yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt - } - yyVAL.union = yyLOCAL - case 799: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL MatchExprOption -//line sql.y:4046 - { - yyLOCAL = QueryExpansionOpt - } - yyVAL.union = yyLOCAL - case 800: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4052 - { - yyVAL.str = string(yyDollar[1].colIdent.String()) - } - case 801: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4056 - { - yyVAL.str = string(yyDollar[1].str) - } - case 802: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4060 - { - yyVAL.str = string(yyDollar[1].str) - } - case 803: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4066 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - yyVAL.union = yyLOCAL - case 804: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4070 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} - } - yyVAL.union = yyLOCAL - case 805: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4074 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} - } - yyVAL.union = yyLOCAL - case 806: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4078 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} - } - yyVAL.union = yyLOCAL - case 807: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4082 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - yyVAL.union = yyLOCAL - case 808: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4086 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} - yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length - yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale - } - yyVAL.union = yyLOCAL - case 809: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4092 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} - } - yyVAL.union = yyLOCAL - case 810: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4096 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - yyVAL.union = yyLOCAL - case 811: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4100 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} - } - yyVAL.union = yyLOCAL - case 812: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4104 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} - } - yyVAL.union = yyLOCAL - case 813: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4108 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} - } - yyVAL.union = yyLOCAL - case 814: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4112 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} - } - yyVAL.union = yyLOCAL - case 815: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *ConvertType -//line sql.y:4116 - { - yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} - } - yyVAL.union = yyLOCAL - case 816: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Expr -//line sql.y:4121 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 817: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4125 - { - yyLOCAL = yyDollar[1].exprUnion() - } - yyVAL.union = yyLOCAL - case 818: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4130 - { - yyVAL.str = string("") - } - case 819: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4134 - { - yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) - } - case 820: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []*When -//line sql.y:4140 - { - yyLOCAL = []*When{yyDollar[1].whenUnion()} - } - yyVAL.union = yyLOCAL - case 821: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4144 - { - yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) - } - case 822: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *When -//line sql.y:4150 - { - yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} - } - yyVAL.union = yyLOCAL - case 823: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Expr -//line sql.y:4155 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 824: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:4159 - { - yyLOCAL = yyDollar[2].exprUnion() - } - yyVAL.union = yyLOCAL - case 825: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *ColName -//line sql.y:4165 - { - yyLOCAL = &ColName{Name: yyDollar[1].colIdent} - } - yyVAL.union = yyLOCAL - case 826: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *ColName -//line sql.y:4169 - { - yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} - } - yyVAL.union = yyLOCAL - case 827: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *ColName -//line sql.y:4173 - { - yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} - } - yyVAL.union = yyLOCAL - case 828: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4179 - { - yyLOCAL = NewStrLiteral(yyDollar[1].str) - } - yyVAL.union = yyLOCAL - case 829: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4183 - { - yyLOCAL = NewHexLiteral(yyDollar[1].str) - } - yyVAL.union = yyLOCAL - case 830: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4187 - { - yyLOCAL = NewBitLiteral(yyDollar[1].str) - } - yyVAL.union = yyLOCAL - case 831: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4191 - { - yyLOCAL = NewIntLiteral(yyDollar[1].str) - } - yyVAL.union = yyLOCAL - case 832: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4195 - { - yyLOCAL = NewFloatLiteral(yyDollar[1].str) - } - yyVAL.union = yyLOCAL - case 833: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4199 - { - yyLOCAL = NewHexNumLiteral(yyDollar[1].str) - } - yyVAL.union = yyLOCAL - case 834: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4203 - { - yyLOCAL = NewArgument(yyDollar[1].str[1:]) - bindVariable(yylex, yyDollar[1].str[1:]) - } - yyVAL.union = yyLOCAL - case 835: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4208 - { - yyLOCAL = &NullVal{} - } - yyVAL.union = yyLOCAL - case 836: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4214 - { - // TODO(sougou): Deprecate this construct. - if yyDollar[1].colIdent.Lowered() != "value" { - yylex.Error("expecting value after next") - return 1 - } - yyLOCAL = NewIntLiteral("1") - } - yyVAL.union = yyLOCAL - case 837: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:4223 - { - yyLOCAL = NewIntLiteral(yyDollar[1].str) - } - yyVAL.union = yyLOCAL - case 838: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:4227 - { - yyLOCAL = NewArgument(yyDollar[1].str[1:]) - bindVariable(yylex, yyDollar[1].str[1:]) - } - yyVAL.union = yyLOCAL - case 839: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Exprs -//line sql.y:4233 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 840: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Exprs -//line sql.y:4237 - { - yyLOCAL = yyDollar[3].exprsUnion() - } - yyVAL.union = yyLOCAL - case 841: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Expr -//line sql.y:4242 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 842: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Expr -//line sql.y:4246 - { - yyLOCAL = yyDollar[2].exprUnion() - } - yyVAL.union = yyLOCAL - case 843: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL OrderBy -//line sql.y:4251 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 844: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL OrderBy -//line sql.y:4255 - { - yyLOCAL = yyDollar[3].orderByUnion() - } - yyVAL.union = yyLOCAL - case 845: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL OrderBy -//line sql.y:4261 - { - yyLOCAL = OrderBy{yyDollar[1].orderUnion()} - } - yyVAL.union = yyLOCAL - case 846: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4265 - { - yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) - } - case 847: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *Order -//line sql.y:4271 - { - yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} - } - yyVAL.union = yyLOCAL - case 848: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL OrderDirection -//line sql.y:4276 - { - yyLOCAL = AscOrder - } - yyVAL.union = yyLOCAL - case 849: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL OrderDirection -//line sql.y:4280 - { - yyLOCAL = AscOrder - } - yyVAL.union = yyLOCAL - case 850: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL OrderDirection -//line sql.y:4284 - { - yyLOCAL = DescOrder - } - yyVAL.union = yyLOCAL - case 851: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *Limit -//line sql.y:4289 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 852: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *Limit -//line sql.y:4293 - { - yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 853: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *Limit -//line sql.y:4297 - { - yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} - } - yyVAL.union = yyLOCAL - case 854: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *Limit -//line sql.y:4301 - { - yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 855: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:4306 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 856: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:4310 - { - yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} - } - yyVAL.union = yyLOCAL - case 857: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:4314 - { - yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} - } - yyVAL.union = yyLOCAL - case 858: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:4318 - { - yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} - } - yyVAL.union = yyLOCAL - case 859: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []AlterOption -//line sql.y:4322 - { - yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} - } - yyVAL.union = yyLOCAL - case 860: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:4329 - { - yyLOCAL = &LockOption{Type: DefaultType} - } - yyVAL.union = yyLOCAL - case 861: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:4333 - { - yyLOCAL = &LockOption{Type: NoneType} - } - yyVAL.union = yyLOCAL - case 862: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:4337 - { - yyLOCAL = &LockOption{Type: SharedType} - } - yyVAL.union = yyLOCAL - case 863: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:4341 - { - yyLOCAL = &LockOption{Type: ExclusiveType} - } - yyVAL.union = yyLOCAL - case 864: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:4347 - { - yyLOCAL = AlgorithmValue(yyDollar[3].str) - } - yyVAL.union = yyLOCAL - case 865: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:4351 - { - yyLOCAL = AlgorithmValue(yyDollar[3].str) - } - yyVAL.union = yyLOCAL - case 866: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL AlterOption -//line sql.y:4355 - { - yyLOCAL = AlgorithmValue(yyDollar[3].str) - } - yyVAL.union = yyLOCAL - case 867: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4360 - { - yyVAL.str = "" - } - case 868: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4364 - { - yyVAL.str = string(yyDollar[3].str) - } - case 869: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4368 - { - yyVAL.str = string(yyDollar[3].str) - } - case 870: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4372 - { - yyVAL.str = string(yyDollar[3].str) - } - case 871: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4377 - { - yyVAL.str = "" - } - case 872: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4381 - { - yyVAL.str = yyDollar[3].str - } - case 873: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4387 - { - yyVAL.str = string(yyDollar[1].str) - } - case 874: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4391 - { - yyVAL.str = string(yyDollar[1].str) - } - case 875: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4396 - { - yyVAL.str = "" - } - case 876: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4400 - { - yyVAL.str = yyDollar[2].str - } - case 877: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4405 - { - yyVAL.str = "cascaded" - } - case 878: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4409 - { - yyVAL.str = string(yyDollar[1].str) - } - case 879: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4413 - { - yyVAL.str = string(yyDollar[1].str) - } - case 880: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4418 - { - yyVAL.str = "" - } - case 881: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4422 - { - yyVAL.str = yyDollar[3].str - } - case 882: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4428 - { - yyVAL.str = string(yyDollar[1].str) - } - case 883: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4432 - { - yyVAL.str = string(yyDollar[1].str) - } - case 884: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4436 - { - yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) - } - case 885: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4440 - { - yyVAL.str = string(yyDollar[1].str) - } - case 886: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Lock -//line sql.y:4445 - { - yyLOCAL = NoLock - } - yyVAL.union = yyLOCAL - case 887: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL Lock -//line sql.y:4449 - { - yyLOCAL = ForUpdateLock - } - yyVAL.union = yyLOCAL - case 888: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL Lock -//line sql.y:4453 - { - yyLOCAL = ShareModeLock - } - yyVAL.union = yyLOCAL - case 889: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL *SelectInto -//line sql.y:4458 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 890: - yyDollar = yyS[yypt-9 : yypt+1] - var yyLOCAL *SelectInto -//line sql.y:4462 - { - yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} - } - yyVAL.union = yyLOCAL - case 891: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *SelectInto -//line sql.y:4466 - { - yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} - } - yyVAL.union = yyLOCAL - case 892: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *SelectInto -//line sql.y:4470 - { - yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} - } - yyVAL.union = yyLOCAL - case 893: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4475 - { - yyVAL.str = "" - } - case 894: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4479 - { - yyVAL.str = " format csv" + yyDollar[3].str - } - case 895: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4483 - { - yyVAL.str = " format text" + yyDollar[3].str - } - case 896: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4488 - { - yyVAL.str = "" - } - case 897: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4492 - { - yyVAL.str = " header" - } - case 898: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4497 - { - yyVAL.str = "" - } - case 899: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4501 - { - yyVAL.str = " manifest on" - } - case 900: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4505 - { - yyVAL.str = " manifest off" - } - case 901: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4510 - { - yyVAL.str = "" - } - case 902: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4514 - { - yyVAL.str = " overwrite on" - } - case 903: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4518 - { - yyVAL.str = " overwrite off" - } - case 904: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4524 - { - yyVAL.str = yyDollar[1].str + yyDollar[2].str - } - case 905: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4529 - { - yyVAL.str = "" - } - case 906: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4533 - { - yyVAL.str = " lines" + yyDollar[2].str - } - case 907: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4539 - { - yyVAL.str = yyDollar[1].str - } - case 908: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4543 - { - yyVAL.str = yyDollar[1].str + yyDollar[2].str - } - case 909: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4549 - { - yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) - } - case 910: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4553 - { - yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) - } - case 911: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4558 - { - yyVAL.str = "" - } - case 912: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4562 - { - yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str - } - case 913: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4568 - { - yyVAL.str = yyDollar[1].str - } - case 914: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4572 - { - yyVAL.str = yyDollar[1].str + yyDollar[2].str - } - case 915: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4578 - { - yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) - } - case 916: - yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4582 - { - yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) - } - case 917: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4586 - { - yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) - } - case 918: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4591 - { - yyVAL.str = "" - } - case 919: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4595 - { - yyVAL.str = " optionally" - } - case 920: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *Insert -//line sql.y:4608 - { - yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} - } - yyVAL.union = yyLOCAL - case 921: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL *Insert -//line sql.y:4612 - { - yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} - } - yyVAL.union = yyLOCAL - case 922: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL *Insert -//line sql.y:4616 - { - yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} - } - yyVAL.union = yyLOCAL - case 923: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *Insert -//line sql.y:4620 - { - yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} - } - yyVAL.union = yyLOCAL - case 924: - yyDollar = yyS[yypt-4 : yypt+1] - var yyLOCAL *Insert -//line sql.y:4624 - { - yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} - } - yyVAL.union = yyLOCAL - case 925: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Columns -//line sql.y:4630 - { - yyLOCAL = Columns{yyDollar[1].colIdent} - } - yyVAL.union = yyLOCAL - case 926: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL Columns -//line sql.y:4634 - { - yyLOCAL = Columns{yyDollar[3].colIdent} - } - yyVAL.union = yyLOCAL - case 927: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4638 - { - yySLICE := (*Columns)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].colIdent) - } - case 928: - yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4642 - { - yySLICE := (*Columns)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[5].colIdent) - } - case 929: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL UpdateExprs -//line sql.y:4647 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 930: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL UpdateExprs -//line sql.y:4651 - { - yyLOCAL = yyDollar[5].updateExprsUnion() - } - yyVAL.union = yyLOCAL - case 931: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Values -//line sql.y:4657 - { - yyLOCAL = Values{yyDollar[1].valTupleUnion()} - } - yyVAL.union = yyLOCAL - case 932: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4661 - { - yySLICE := (*Values)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) - } - case 933: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL ValTuple -//line sql.y:4667 - { - yyLOCAL = yyDollar[1].valTupleUnion() - } - yyVAL.union = yyLOCAL - case 934: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL ValTuple -//line sql.y:4671 - { - yyLOCAL = ValTuple{} - } - yyVAL.union = yyLOCAL - case 935: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL ValTuple -//line sql.y:4677 - { - yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) - } - yyVAL.union = yyLOCAL - case 936: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4683 - { - if len(yyDollar[1].valTupleUnion()) == 1 { - yyLOCAL = yyDollar[1].valTupleUnion()[0] - } else { - yyLOCAL = yyDollar[1].valTupleUnion() - } - } - yyVAL.union = yyLOCAL - case 937: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL UpdateExprs -//line sql.y:4693 - { - yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} - } - yyVAL.union = yyLOCAL - case 938: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4697 - { - yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) - } - case 939: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *UpdateExpr -//line sql.y:4703 - { - yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 940: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL SetExprs -//line sql.y:4709 - { - yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} - } - yyVAL.union = yyLOCAL - case 941: - yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4713 - { - yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) - *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) - } - case 942: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *SetExpr -//line sql.y:4719 - { - yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} - } - yyVAL.union = yyLOCAL - case 943: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *SetExpr -//line sql.y:4723 - { - yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} - } - yyVAL.union = yyLOCAL - case 944: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *SetExpr -//line sql.y:4727 - { - yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} - } - yyVAL.union = yyLOCAL - case 945: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL *SetExpr -//line sql.y:4731 - { - yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} - } - yyVAL.union = yyLOCAL - case 946: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *SetExpr -//line sql.y:4735 - { - yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() - yyLOCAL = yyDollar[2].setExprUnion() - } - yyVAL.union = yyLOCAL - case 948: - yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4743 - { - yyVAL.str = "charset" - } - case 951: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4753 - { - yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) - } - yyVAL.union = yyLOCAL - case 952: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4757 - { - yyLOCAL = NewStrLiteral(yyDollar[1].str) - } - yyVAL.union = yyLOCAL - case 953: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Expr -//line sql.y:4761 - { - yyLOCAL = &Default{} - } - yyVAL.union = yyLOCAL - case 956: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:4770 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 957: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL bool -//line sql.y:4772 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 958: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:4775 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 959: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL bool -//line sql.y:4777 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 960: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL bool -//line sql.y:4780 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 961: - yyDollar = yyS[yypt-3 : yypt+1] - var yyLOCAL bool -//line sql.y:4782 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 962: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Ignore -//line sql.y:4785 - { - yyLOCAL = false - } - yyVAL.union = yyLOCAL - case 963: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Ignore -//line sql.y:4787 - { - yyLOCAL = true - } - yyVAL.union = yyLOCAL - case 964: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4790 - { - yyVAL.empty = struct{}{} - } - case 965: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4792 - { - yyVAL.empty = struct{}{} - } - case 966: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4794 - { - yyVAL.empty = struct{}{} - } - case 967: - yyDollar = yyS[yypt-5 : yypt+1] - var yyLOCAL Statement -//line sql.y:4798 - { - yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} - } - yyVAL.union = yyLOCAL - case 968: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL Exprs -//line sql.y:4803 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 969: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL Exprs -//line sql.y:4807 - { - yyLOCAL = yyDollar[1].exprsUnion() - } - yyVAL.union = yyLOCAL - case 970: - yyDollar = yyS[yypt-0 : yypt+1] - var yyLOCAL []*IndexOption -//line sql.y:4812 - { - yyLOCAL = nil - } - yyVAL.union = yyLOCAL - case 971: - yyDollar = yyS[yypt-1 : yypt+1] - var yyLOCAL []*IndexOption -//line sql.y:4814 - { - yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} - } - yyVAL.union = yyLOCAL - case 972: - yyDollar = yyS[yypt-2 : yypt+1] - var yyLOCAL *IndexOption -//line sql.y:4818 - { - yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} - } - yyVAL.union = yyLOCAL - case 973: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4824 - { - yyVAL.colIdent = yyDollar[1].colIdent - } - case 974: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4828 - { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) - } - case 976: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4835 - { - yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) - } - case 977: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4841 - { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) - } - case 978: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4845 - { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) - } - case 979: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4851 - { - yyVAL.tableIdent = NewTableIdent("") - } - case 980: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4855 - { - yyVAL.tableIdent = yyDollar[1].tableIdent - } - case 982: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4862 - { - yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) - } - case 1396: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5300 - { - if incNesting(yylex) { - yylex.Error("max nesting level reached") - return 1 - } - } - case 1397: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5309 - { - decNesting(yylex) - } - case 1398: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5314 - { - skipToEnd(yylex) - } - case 1399: - yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5319 - { - skipToEnd(yylex) - } - case 1400: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5323 - { - skipToEnd(yylex) - } - case 1401: - yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5327 - { - skipToEnd(yylex) - } - } - goto yystack /* stack new state and value */ -} diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index f7761c14c5c..77ba9a92b1f 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -88,6 +88,7 @@ func bindVariable(yylex yyLexer, bvar string) { when *When order *Order limit *Limit + updateExpr *UpdateExpr setExpr *SetExpr convertType *ConvertType @@ -160,6 +161,9 @@ func bindVariable(yylex yyLexer, bvar string) { boolean bool boolVal BoolVal ignore Ignore + partitionOption *PartitionOption + exprOrColumns *ExprOrColumns + subPartition *SubPartition } %token LEX_ERROR @@ -284,6 +288,13 @@ func bindVariable(yylex yyLexer, bvar string) { %token AVG_ROW_LENGTH CONNECTION CHECKSUM DELAY_KEY_WRITE ENCRYPTION ENGINE INSERT_METHOD MAX_ROWS MIN_ROWS PACK_KEYS PASSWORD %token FIXED DYNAMIC COMPRESSED REDUNDANT COMPACT ROW_FORMAT STATS_AUTO_RECALC STATS_PERSISTENT STATS_SAMPLE_PAGES STORAGE MEMORY DISK +// Partitions tokens +%token PARTITIONS LINEAR RANGE LIST SUBPARTITION SUBPARTITIONS +%token linear_opt range_or_list partitions_opt subpartitions_opt +%token partitions_options_opt +%token expr_or_col +%token subpartition_opt + %type command %type simple_select select_statement base_select union_rhs %type explain_statement explainable_statement @@ -410,7 +421,7 @@ func bindVariable(yylex yyLexer, bvar string) { %type index_option_list index_option_list_opt using_opt %type constraint_info check_constraint_info %type partition_definitions -%type partition_definition +%type partition_definition partition_definition_opt %type partition_operation %type vindex_param %type vindex_param_list vindex_params_opt @@ -769,10 +780,11 @@ set_session_or_global: } create_statement: - create_table_prefix table_spec + create_table_prefix table_spec partitions_options_opt { $1.TableSpec = $2 $1.FullyParsed = true + $1.PartitionOption = $3 $$ = $1 } | create_table_prefix create_like @@ -942,7 +954,7 @@ create_options: } default_optional: - /* empty */ %prec LOWER_THAN_CHARSET + /* empty */ %prec LOWER_THAN_CHARSET { $$ = false } @@ -2271,6 +2283,108 @@ alter_statement: } } +partitions_options_opt: + { + $$ = nil + } +| PARTITION BY linear_opt id_or_var '(' expression ')' partitions_opt + subpartition_opt partition_definition_opt + { + $$ = &PartitionOption{Linear: $3, HASH: $4, Expr: $6, Partitions: $8, + SubPartition: $9, Definitions: $10} + } +| PARTITION BY linear_opt KEY algorithm_opt '(' column_list ')' + partitions_opt subpartition_opt partition_definition_opt + { + $$ = &PartitionOption{Linear: $3, isKEY: true, KeyAlgorithm: $5, + KeyColList: $7, Partitions: $9, SubPartition: $10, Definitions: $11} + } +| PARTITION BY range_or_list expr_or_col partitions_opt subpartition_opt + partition_definition_opt + { + $$ = &PartitionOption{RANGE_or_LIST: $3, Expr_or_Col: $4, Partitions: $5, + SubPartition: $6, Definitions: $7} + } + +subpartition_opt: + { + $$ = nil + } +| SUBPARTITION BY linear_opt id_or_var '(' expression ')' subpartitions_opt + { + $$ = &SubPartition{Linear: $3, HASH: $4, Expr: $6, SubPartitions: $8} + } +| SUBPARTITION BY linear_opt KEY algorithm_opt '(' column_list ')' subpartitions_opt + { + $$ = &SubPartition{Linear: $3, isKEY: true, KeyAlgorithm: $5, + KeyColList: $7, SubPartitions: $9} + } + +partition_definition_opt: + { + $$ = nil + } +| partition_definitions + { + $$ = $1 + } + +linear_opt: + { + $$ = "" + } +| LINEAR + { + $$ = string($1) + } + +algorithm_opt: + { + $$ = "" + } +| ALGORITHM '=' INTEGRAL + { + $$ = string($3) + } + +range_or_list: + RANGE + { + $$ = string($1) + } +| LIST + { + $$ = string($1) + } + +expr_or_col: + '(' expression ')' + { + $$ = &ExprOrColumns{Expr: $2} + } +| COLUMNS '(' column_list ')' + { + $$ = &ExprOrColumns{ColumnList: $3} + } + +partitions_opt: + { + $$ = "" + } +| PARTITIONS INTEGRAL + { + $$ = string($2) + } + +subpartitions_opt: + { + $$ = "" + } +| SUBPARTITIONS INTEGRAL + { + $$ = string($2) + } + partition_operation: ADD PARTITION '(' partition_definition ')' { @@ -2618,7 +2732,7 @@ show_statement: | SHOW VSCHEMA VINDEXES ON table_name { $$ = &Show{&ShowLegacy{Type: string($2) + " " + string($3), OnTable: $5, Scope: ImplicitScope}} - } + }$$ = & | SHOW WARNINGS { $$ = &Show{&ShowBasic{Command: Warnings}} @@ -4943,6 +5057,7 @@ reserved_keyword: | LEFT | LIKE | LIMIT +| LINEAR | LOCALTIME | LOCALTIMESTAMP | LOCK @@ -4970,6 +5085,7 @@ reserved_keyword: | PARTITION | PERCENT_RANK | PRIMARY +| RANGE | RANK | READ | RECURSIVE @@ -5134,6 +5250,7 @@ non_reserved_keyword: | LEVEL | LINES | LINESTRING +| LIST | LOAD | LOCAL | LOCKED @@ -5183,6 +5300,7 @@ non_reserved_keyword: | PACK_KEYS | PARSER | PARTITIONING +| PARTITIONS | PASSWORD | PATH | PERSIST @@ -5244,6 +5362,8 @@ non_reserved_keyword: | STATUS | STORAGE | STREAM +| SUBPARTITION +| SUBPARTITIONS | TABLES | TABLESPACE | TEMPORARY From 8f618cf0ae4660e8f3dc43a584e98467249edb2d Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Thu, 26 Aug 2021 18:45:57 +0530 Subject: [PATCH 02/11] parsing bug fixes Signed-off-by: Manan Gupta --- go/vt/sqlparser/ast.go | 52 +- go/vt/sqlparser/ast_clone.go | 39 + go/vt/sqlparser/ast_equals.go | 53 +- go/vt/sqlparser/cached_size.go | 96 +- go/vt/sqlparser/parse_test.go | 2 +- go/vt/sqlparser/sql.go | 13269 +++++++++++++++++++++++++++++++ go/vt/sqlparser/sql.y | 25 +- 7 files changed, 13498 insertions(+), 38 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 737402fb546..2d8ef5c1c1c 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -464,13 +464,13 @@ type ( // CreateTable represents a CREATE TABLE statement. CreateTable struct { - Temp bool - Table TableName - IfNotExists bool - TableSpec *TableSpec - OptLike *OptLike - Comments Comments - FullyParsed bool + Temp bool + Table TableName + IfNotExists bool + TableSpec *TableSpec + OptLike *OptLike + Comments Comments + FullyParsed bool PartitionOption *PartitionOption } @@ -1474,32 +1474,32 @@ type PartitionDefinition struct { // PartitionOptions describes partitioning control (for create table statements) type PartitionOption struct { - Linear string - HASH colIdent - isKEY bool - KeyAlgorithm string - KeyColList columns + Linear string + HASH ColIdent + isKEY bool + KeyAlgorithm string + KeyColList Columns RANGE_or_LIST string - Expr_or_Col ExprOrColumns - Expr expr - Partitions string - SubPartition *SubPartition - Definitions []*PartitionDefinition + Expr_or_Col *ExprOrColumns + Expr Expr + Partitions string + SubPartition *SubPartition + Definitions []*PartitionDefinition } type ExprOrColumns struct { - Expr expr - ColumnList columns + Expr Expr + ColumnList Columns } type SubPartition struct { - Linear string - HASH colIdent - isKEY bool - KeyAlgorithm KeyAlgorithm - KeyColList columns - Expr expr - SubPartitions string + Linear string + HASH ColIdent + isKEY bool + KeyAlgorithm string + KeyColList Columns + Expr Expr + SubPartitions string } // TableOptions specifies a list of table options diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 615514ce690..a8ef36a0db5 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -691,6 +691,7 @@ func CloneRefOfCreateTable(n *CreateTable) *CreateTable { out.TableSpec = CloneRefOfTableSpec(n.TableSpec) out.OptLike = CloneRefOfOptLike(n.OptLike) out.Comments = CloneComments(n.Comments) + out.PartitionOption = CloneRefOfPartitionOption(n.PartitionOption) return &out } @@ -2312,6 +2313,21 @@ func CloneSliceOfString(n []string) []string { return res } +// CloneRefOfPartitionOption creates a deep clone of the input. +func CloneRefOfPartitionOption(n *PartitionOption) *PartitionOption { + if n == nil { + return nil + } + out := *n + out.HASH = CloneColIdent(n.HASH) + out.KeyColList = CloneColumns(n.KeyColList) + out.Expr_or_Col = CloneRefOfExprOrColumns(n.Expr_or_Col) + out.Expr = CloneExpr(n.Expr) + out.SubPartition = CloneRefOfSubPartition(n.SubPartition) + out.Definitions = CloneSliceOfRefOfPartitionDefinition(n.Definitions) + return &out +} + // CloneSliceOfRefOfIndexColumn creates a deep clone of the input. func CloneSliceOfRefOfIndexColumn(n []*IndexColumn) []*IndexColumn { res := make([]*IndexColumn, 0, len(n)) @@ -2487,6 +2503,29 @@ func CloneCollateAndCharset(n CollateAndCharset) CollateAndCharset { return *CloneRefOfCollateAndCharset(&n) } +// CloneRefOfExprOrColumns creates a deep clone of the input. +func CloneRefOfExprOrColumns(n *ExprOrColumns) *ExprOrColumns { + if n == nil { + return nil + } + out := *n + out.Expr = CloneExpr(n.Expr) + out.ColumnList = CloneColumns(n.ColumnList) + return &out +} + +// CloneRefOfSubPartition creates a deep clone of the input. +func CloneRefOfSubPartition(n *SubPartition) *SubPartition { + if n == nil { + return nil + } + out := *n + out.HASH = CloneColIdent(n.HASH) + out.KeyColList = CloneColumns(n.KeyColList) + out.Expr = CloneExpr(n.Expr) + return &out +} + // CloneRefOfIndexColumn creates a deep clone of the input. func CloneRefOfIndexColumn(n *IndexColumn) *IndexColumn { if n == nil { diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 0f0249874e8..6fa6a59005a 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -1371,7 +1371,8 @@ func EqualsRefOfCreateTable(a, b *CreateTable) bool { EqualsTableName(a.Table, b.Table) && EqualsRefOfTableSpec(a.TableSpec, b.TableSpec) && EqualsRefOfOptLike(a.OptLike, b.OptLike) && - EqualsComments(a.Comments, b.Comments) + EqualsComments(a.Comments, b.Comments) && + EqualsRefOfPartitionOption(a.PartitionOption, b.PartitionOption) } // EqualsRefOfCreateView does deep equals between the two objects. @@ -3826,6 +3827,27 @@ func EqualsSliceOfString(a, b []string) bool { return true } +// EqualsRefOfPartitionOption does deep equals between the two objects. +func EqualsRefOfPartitionOption(a, b *PartitionOption) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return a.Linear == b.Linear && + a.isKEY == b.isKEY && + a.KeyAlgorithm == b.KeyAlgorithm && + a.RANGE_or_LIST == b.RANGE_or_LIST && + a.Partitions == b.Partitions && + EqualsColIdent(a.HASH, b.HASH) && + EqualsColumns(a.KeyColList, b.KeyColList) && + EqualsRefOfExprOrColumns(a.Expr_or_Col, b.Expr_or_Col) && + EqualsExpr(a.Expr, b.Expr) && + EqualsRefOfSubPartition(a.SubPartition, b.SubPartition) && + EqualsSliceOfRefOfPartitionDefinition(a.Definitions, b.Definitions) +} + // EqualsSliceOfRefOfIndexColumn does deep equals between the two objects. func EqualsSliceOfRefOfIndexColumn(a, b []*IndexColumn) bool { if len(a) != len(b) { @@ -4061,6 +4083,35 @@ func EqualsCollateAndCharset(a, b CollateAndCharset) bool { a.Type == b.Type } +// EqualsRefOfExprOrColumns does deep equals between the two objects. +func EqualsRefOfExprOrColumns(a, b *ExprOrColumns) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return EqualsExpr(a.Expr, b.Expr) && + EqualsColumns(a.ColumnList, b.ColumnList) +} + +// EqualsRefOfSubPartition does deep equals between the two objects. +func EqualsRefOfSubPartition(a, b *SubPartition) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return a.Linear == b.Linear && + a.isKEY == b.isKEY && + a.KeyAlgorithm == b.KeyAlgorithm && + a.SubPartitions == b.SubPartitions && + EqualsColIdent(a.HASH, b.HASH) && + EqualsColumns(a.KeyColList, b.KeyColList) && + EqualsExpr(a.Expr, b.Expr) +} + // EqualsRefOfIndexColumn does deep equals between the two objects. func EqualsRefOfIndexColumn(a, b *IndexColumn) bool { if a == b { diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index 33970934e40..152efa4383d 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -654,7 +654,7 @@ func (cached *CreateTable) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(89) + size += int64(104) } // field Table vitess.io/vitess/go/vt/sqlparser.TableName size += cached.Table.CachedSize(false) @@ -669,6 +669,8 @@ func (cached *CreateTable) CachedSize(alloc bool) int64 { size += int64(len(elem)) } } + // field PartitionOption *vitess.io/vitess/go/vt/sqlparser.PartitionOption + size += cached.PartitionOption.CachedSize(true) return size } func (cached *CreateView) CachedSize(alloc bool) int64 { @@ -919,6 +921,27 @@ func (cached *ExplainTab) CachedSize(alloc bool) int64 { size += int64(len(cached.Wild)) return size } +func (cached *ExprOrColumns) CachedSize(alloc bool) int64 { + if cached == nil { + return int64(0) + } + size := int64(0) + if alloc { + size += int64(40) + } + // field Expr vitess.io/vitess/go/vt/sqlparser.Expr + if cc, ok := cached.Expr.(cachedObject); ok { + size += cc.CachedSize(true) + } + // field ColumnList vitess.io/vitess/go/vt/sqlparser.Columns + { + size += int64(cap(cached.ColumnList)) * int64(40) + for _, elem := range cached.ColumnList { + size += elem.CachedSize(false) + } + } + return size +} func (cached *Flush) CachedSize(alloc bool) int64 { if cached == nil { return int64(0) @@ -1479,6 +1502,48 @@ func (cached *PartitionDefinition) CachedSize(alloc bool) int64 { } return size } +func (cached *PartitionOption) CachedSize(alloc bool) int64 { + if cached == nil { + return int64(0) + } + size := int64(0) + if alloc { + size += int64(192) + } + // field Linear string + size += int64(len(cached.Linear)) + // field HASH vitess.io/vitess/go/vt/sqlparser.ColIdent + size += cached.HASH.CachedSize(false) + // field KeyAlgorithm string + size += int64(len(cached.KeyAlgorithm)) + // field KeyColList vitess.io/vitess/go/vt/sqlparser.Columns + { + size += int64(cap(cached.KeyColList)) * int64(40) + for _, elem := range cached.KeyColList { + size += elem.CachedSize(false) + } + } + // field RANGE_or_LIST string + size += int64(len(cached.RANGE_or_LIST)) + // field Expr_or_Col *vitess.io/vitess/go/vt/sqlparser.ExprOrColumns + size += cached.Expr_or_Col.CachedSize(true) + // field Expr vitess.io/vitess/go/vt/sqlparser.Expr + if cc, ok := cached.Expr.(cachedObject); ok { + size += cc.CachedSize(true) + } + // field Partitions string + size += int64(len(cached.Partitions)) + // field SubPartition *vitess.io/vitess/go/vt/sqlparser.SubPartition + size += cached.SubPartition.CachedSize(true) + // field Definitions []*vitess.io/vitess/go/vt/sqlparser.PartitionDefinition + { + size += int64(cap(cached.Definitions)) * int64(8) + for _, elem := range cached.Definitions { + size += elem.CachedSize(true) + } + } + return size +} func (cached *PartitionSpec) CachedSize(alloc bool) int64 { if cached == nil { return int64(0) @@ -1965,6 +2030,35 @@ func (cached *Stream) CachedSize(alloc bool) int64 { size += cached.Table.CachedSize(false) return size } +func (cached *SubPartition) CachedSize(alloc bool) int64 { + if cached == nil { + return int64(0) + } + size := int64(0) + if alloc { + size += int64(136) + } + // field Linear string + size += int64(len(cached.Linear)) + // field HASH vitess.io/vitess/go/vt/sqlparser.ColIdent + size += cached.HASH.CachedSize(false) + // field KeyAlgorithm string + size += int64(len(cached.KeyAlgorithm)) + // field KeyColList vitess.io/vitess/go/vt/sqlparser.Columns + { + size += int64(cap(cached.KeyColList)) * int64(40) + for _, elem := range cached.KeyColList { + size += elem.CachedSize(false) + } + } + // field Expr vitess.io/vitess/go/vt/sqlparser.Expr + if cc, ok := cached.Expr.(cachedObject); ok { + size += cc.CachedSize(true) + } + // field SubPartitions string + size += int64(len(cached.SubPartitions)) + return size +} func (cached *Subquery) CachedSize(alloc bool) int64 { if cached == nil { return int64(0) diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 440cb28ebf4..3a697469a75 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1241,7 +1241,7 @@ var ( // Tests unicode character § input: "create table invalid_enum_value_name (\n\there_be_enum enum('$§!') default null\n)", }, { - input: "create table t (id int) partition by key (id) partitions 2", + input: "create table t (id int) partition by key (id) partitions 2", output: "create table t (\n\tid int\n)", }, { input: "alter vschema create vindex hash_vdx using hash", diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index fdb15ddbfe3..948071ed195 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -44,3 +44,13272 @@ func skipToEnd(yylex yyLexer) { func bindVariable(yylex yyLexer, bvar string) { yylex.(*Tokenizer).BindVars[bvar] = struct{}{} } + +const LEX_ERROR = 57346 +const UNION = 57347 +const SELECT = 57348 +const STREAM = 57349 +const VSTREAM = 57350 +const INSERT = 57351 +const UPDATE = 57352 +const DELETE = 57353 +const FROM = 57354 +const WHERE = 57355 +const GROUP = 57356 +const HAVING = 57357 +const ORDER = 57358 +const BY = 57359 +const LIMIT = 57360 +const OFFSET = 57361 +const FOR = 57362 +const ALL = 57363 +const DISTINCT = 57364 +const AS = 57365 +const EXISTS = 57366 +const ASC = 57367 +const DESC = 57368 +const INTO = 57369 +const DUPLICATE = 57370 +const DEFAULT = 57371 +const SET = 57372 +const LOCK = 57373 +const UNLOCK = 57374 +const KEYS = 57375 +const DO = 57376 +const CALL = 57377 +const DISTINCTROW = 57378 +const PARSER = 57379 +const GENERATED = 57380 +const ALWAYS = 57381 +const OUTFILE = 57382 +const S3 = 57383 +const DATA = 57384 +const LOAD = 57385 +const LINES = 57386 +const TERMINATED = 57387 +const ESCAPED = 57388 +const ENCLOSED = 57389 +const DUMPFILE = 57390 +const CSV = 57391 +const HEADER = 57392 +const MANIFEST = 57393 +const OVERWRITE = 57394 +const STARTING = 57395 +const OPTIONALLY = 57396 +const VALUES = 57397 +const LAST_INSERT_ID = 57398 +const NEXT = 57399 +const VALUE = 57400 +const SHARE = 57401 +const MODE = 57402 +const SQL_NO_CACHE = 57403 +const SQL_CACHE = 57404 +const SQL_CALC_FOUND_ROWS = 57405 +const JOIN = 57406 +const STRAIGHT_JOIN = 57407 +const LEFT = 57408 +const RIGHT = 57409 +const INNER = 57410 +const OUTER = 57411 +const CROSS = 57412 +const NATURAL = 57413 +const USE = 57414 +const FORCE = 57415 +const ON = 57416 +const USING = 57417 +const INPLACE = 57418 +const COPY = 57419 +const ALGORITHM = 57420 +const NONE = 57421 +const SHARED = 57422 +const EXCLUSIVE = 57423 +const ID = 57424 +const AT_ID = 57425 +const AT_AT_ID = 57426 +const HEX = 57427 +const STRING = 57428 +const INTEGRAL = 57429 +const FLOAT = 57430 +const HEXNUM = 57431 +const VALUE_ARG = 57432 +const LIST_ARG = 57433 +const COMMENT = 57434 +const COMMENT_KEYWORD = 57435 +const BIT_LITERAL = 57436 +const COMPRESSION = 57437 +const NULL = 57438 +const TRUE = 57439 +const FALSE = 57440 +const OFF = 57441 +const DISCARD = 57442 +const IMPORT = 57443 +const ENABLE = 57444 +const DISABLE = 57445 +const TABLESPACE = 57446 +const VIRTUAL = 57447 +const STORED = 57448 +const LOWER_THAN_CHARSET = 57449 +const CHARSET = 57450 +const UNIQUE = 57451 +const KEY = 57452 +const OR = 57453 +const XOR = 57454 +const AND = 57455 +const NOT = 57456 +const BETWEEN = 57457 +const CASE = 57458 +const WHEN = 57459 +const THEN = 57460 +const ELSE = 57461 +const END = 57462 +const LE = 57463 +const GE = 57464 +const NE = 57465 +const NULL_SAFE_EQUAL = 57466 +const IS = 57467 +const LIKE = 57468 +const REGEXP = 57469 +const IN = 57470 +const SHIFT_LEFT = 57471 +const SHIFT_RIGHT = 57472 +const DIV = 57473 +const MOD = 57474 +const UNARY = 57475 +const COLLATE = 57476 +const BINARY = 57477 +const UNDERSCORE_BINARY = 57478 +const UNDERSCORE_UTF8MB4 = 57479 +const UNDERSCORE_UTF8 = 57480 +const UNDERSCORE_LATIN1 = 57481 +const INTERVAL = 57482 +const JSON_EXTRACT_OP = 57483 +const JSON_UNQUOTE_EXTRACT_OP = 57484 +const CREATE = 57485 +const ALTER = 57486 +const DROP = 57487 +const RENAME = 57488 +const ANALYZE = 57489 +const ADD = 57490 +const FLUSH = 57491 +const CHANGE = 57492 +const MODIFY = 57493 +const REVERT = 57494 +const SCHEMA = 57495 +const TABLE = 57496 +const INDEX = 57497 +const VIEW = 57498 +const TO = 57499 +const IGNORE = 57500 +const IF = 57501 +const PRIMARY = 57502 +const COLUMN = 57503 +const SPATIAL = 57504 +const FULLTEXT = 57505 +const KEY_BLOCK_SIZE = 57506 +const CHECK = 57507 +const INDEXES = 57508 +const ACTION = 57509 +const CASCADE = 57510 +const CONSTRAINT = 57511 +const FOREIGN = 57512 +const NO = 57513 +const REFERENCES = 57514 +const RESTRICT = 57515 +const SHOW = 57516 +const DESCRIBE = 57517 +const EXPLAIN = 57518 +const DATE = 57519 +const ESCAPE = 57520 +const REPAIR = 57521 +const OPTIMIZE = 57522 +const TRUNCATE = 57523 +const COALESCE = 57524 +const EXCHANGE = 57525 +const REBUILD = 57526 +const PARTITIONING = 57527 +const REMOVE = 57528 +const MAXVALUE = 57529 +const PARTITION = 57530 +const REORGANIZE = 57531 +const LESS = 57532 +const THAN = 57533 +const PROCEDURE = 57534 +const TRIGGER = 57535 +const VINDEX = 57536 +const VINDEXES = 57537 +const DIRECTORY = 57538 +const NAME = 57539 +const UPGRADE = 57540 +const STATUS = 57541 +const VARIABLES = 57542 +const WARNINGS = 57543 +const CASCADED = 57544 +const DEFINER = 57545 +const OPTION = 57546 +const SQL = 57547 +const UNDEFINED = 57548 +const SEQUENCE = 57549 +const MERGE = 57550 +const TEMPORARY = 57551 +const TEMPTABLE = 57552 +const INVOKER = 57553 +const SECURITY = 57554 +const FIRST = 57555 +const AFTER = 57556 +const LAST = 57557 +const VITESS_MIGRATION = 57558 +const CANCEL = 57559 +const RETRY = 57560 +const COMPLETE = 57561 +const BEGIN = 57562 +const START = 57563 +const TRANSACTION = 57564 +const COMMIT = 57565 +const ROLLBACK = 57566 +const SAVEPOINT = 57567 +const RELEASE = 57568 +const WORK = 57569 +const BIT = 57570 +const TINYINT = 57571 +const SMALLINT = 57572 +const MEDIUMINT = 57573 +const INT = 57574 +const INTEGER = 57575 +const BIGINT = 57576 +const INTNUM = 57577 +const REAL = 57578 +const DOUBLE = 57579 +const FLOAT_TYPE = 57580 +const DECIMAL = 57581 +const NUMERIC = 57582 +const TIME = 57583 +const TIMESTAMP = 57584 +const DATETIME = 57585 +const YEAR = 57586 +const CHAR = 57587 +const VARCHAR = 57588 +const BOOL = 57589 +const CHARACTER = 57590 +const VARBINARY = 57591 +const NCHAR = 57592 +const TEXT = 57593 +const TINYTEXT = 57594 +const MEDIUMTEXT = 57595 +const LONGTEXT = 57596 +const BLOB = 57597 +const TINYBLOB = 57598 +const MEDIUMBLOB = 57599 +const LONGBLOB = 57600 +const JSON = 57601 +const ENUM = 57602 +const GEOMETRY = 57603 +const POINT = 57604 +const LINESTRING = 57605 +const POLYGON = 57606 +const GEOMETRYCOLLECTION = 57607 +const MULTIPOINT = 57608 +const MULTILINESTRING = 57609 +const MULTIPOLYGON = 57610 +const NULLX = 57611 +const AUTO_INCREMENT = 57612 +const APPROXNUM = 57613 +const SIGNED = 57614 +const UNSIGNED = 57615 +const ZEROFILL = 57616 +const CODE = 57617 +const COLLATION = 57618 +const COLUMNS = 57619 +const DATABASES = 57620 +const ENGINES = 57621 +const EVENT = 57622 +const EXTENDED = 57623 +const FIELDS = 57624 +const FULL = 57625 +const FUNCTION = 57626 +const GTID_EXECUTED = 57627 +const KEYSPACES = 57628 +const OPEN = 57629 +const PLUGINS = 57630 +const PRIVILEGES = 57631 +const PROCESSLIST = 57632 +const SCHEMAS = 57633 +const TABLES = 57634 +const TRIGGERS = 57635 +const USER = 57636 +const VGTID_EXECUTED = 57637 +const VITESS_KEYSPACES = 57638 +const VITESS_METADATA = 57639 +const VITESS_MIGRATIONS = 57640 +const VITESS_SHARDS = 57641 +const VITESS_TABLETS = 57642 +const VSCHEMA = 57643 +const NAMES = 57644 +const GLOBAL = 57645 +const SESSION = 57646 +const ISOLATION = 57647 +const LEVEL = 57648 +const READ = 57649 +const WRITE = 57650 +const ONLY = 57651 +const REPEATABLE = 57652 +const COMMITTED = 57653 +const UNCOMMITTED = 57654 +const SERIALIZABLE = 57655 +const CURRENT_TIMESTAMP = 57656 +const DATABASE = 57657 +const CURRENT_DATE = 57658 +const CURRENT_TIME = 57659 +const LOCALTIME = 57660 +const LOCALTIMESTAMP = 57661 +const CURRENT_USER = 57662 +const UTC_DATE = 57663 +const UTC_TIME = 57664 +const UTC_TIMESTAMP = 57665 +const REPLACE = 57666 +const CONVERT = 57667 +const CAST = 57668 +const SUBSTR = 57669 +const SUBSTRING = 57670 +const GROUP_CONCAT = 57671 +const SEPARATOR = 57672 +const TIMESTAMPADD = 57673 +const TIMESTAMPDIFF = 57674 +const MATCH = 57675 +const AGAINST = 57676 +const BOOLEAN = 57677 +const LANGUAGE = 57678 +const WITH = 57679 +const QUERY = 57680 +const EXPANSION = 57681 +const WITHOUT = 57682 +const VALIDATION = 57683 +const UNUSED = 57684 +const ARRAY = 57685 +const CUME_DIST = 57686 +const DESCRIPTION = 57687 +const DENSE_RANK = 57688 +const EMPTY = 57689 +const EXCEPT = 57690 +const FIRST_VALUE = 57691 +const GROUPING = 57692 +const GROUPS = 57693 +const JSON_TABLE = 57694 +const LAG = 57695 +const LAST_VALUE = 57696 +const LATERAL = 57697 +const LEAD = 57698 +const MEMBER = 57699 +const NTH_VALUE = 57700 +const NTILE = 57701 +const OF = 57702 +const OVER = 57703 +const PERCENT_RANK = 57704 +const RANK = 57705 +const RECURSIVE = 57706 +const ROW_NUMBER = 57707 +const SYSTEM = 57708 +const WINDOW = 57709 +const ACTIVE = 57710 +const ADMIN = 57711 +const BUCKETS = 57712 +const CLONE = 57713 +const COMPONENT = 57714 +const DEFINITION = 57715 +const ENFORCED = 57716 +const EXCLUDE = 57717 +const FOLLOWING = 57718 +const GEOMCOLLECTION = 57719 +const GET_MASTER_PUBLIC_KEY = 57720 +const HISTOGRAM = 57721 +const HISTORY = 57722 +const INACTIVE = 57723 +const INVISIBLE = 57724 +const LOCKED = 57725 +const MASTER_COMPRESSION_ALGORITHMS = 57726 +const MASTER_PUBLIC_KEY_PATH = 57727 +const MASTER_TLS_CIPHERSUITES = 57728 +const MASTER_ZSTD_COMPRESSION_LEVEL = 57729 +const NESTED = 57730 +const NETWORK_NAMESPACE = 57731 +const NOWAIT = 57732 +const NULLS = 57733 +const OJ = 57734 +const OLD = 57735 +const OPTIONAL = 57736 +const ORDINALITY = 57737 +const ORGANIZATION = 57738 +const OTHERS = 57739 +const PATH = 57740 +const PERSIST = 57741 +const PERSIST_ONLY = 57742 +const PRECEDING = 57743 +const PRIVILEGE_CHECKS_USER = 57744 +const PROCESS = 57745 +const RANDOM = 57746 +const REFERENCE = 57747 +const REQUIRE_ROW_FORMAT = 57748 +const RESOURCE = 57749 +const RESPECT = 57750 +const RESTART = 57751 +const RETAIN = 57752 +const REUSE = 57753 +const ROLE = 57754 +const SECONDARY = 57755 +const SECONDARY_ENGINE = 57756 +const SECONDARY_LOAD = 57757 +const SECONDARY_UNLOAD = 57758 +const SKIP = 57759 +const SRID = 57760 +const THREAD_PRIORITY = 57761 +const TIES = 57762 +const UNBOUNDED = 57763 +const VCPU = 57764 +const VISIBLE = 57765 +const FORMAT = 57766 +const TREE = 57767 +const VITESS = 57768 +const TRADITIONAL = 57769 +const LOCAL = 57770 +const LOW_PRIORITY = 57771 +const NO_WRITE_TO_BINLOG = 57772 +const LOGS = 57773 +const ERROR = 57774 +const GENERAL = 57775 +const HOSTS = 57776 +const OPTIMIZER_COSTS = 57777 +const USER_RESOURCES = 57778 +const SLOW = 57779 +const CHANNEL = 57780 +const RELAY = 57781 +const EXPORT = 57782 +const AVG_ROW_LENGTH = 57783 +const CONNECTION = 57784 +const CHECKSUM = 57785 +const DELAY_KEY_WRITE = 57786 +const ENCRYPTION = 57787 +const ENGINE = 57788 +const INSERT_METHOD = 57789 +const MAX_ROWS = 57790 +const MIN_ROWS = 57791 +const PACK_KEYS = 57792 +const PASSWORD = 57793 +const FIXED = 57794 +const DYNAMIC = 57795 +const COMPRESSED = 57796 +const REDUNDANT = 57797 +const COMPACT = 57798 +const ROW_FORMAT = 57799 +const STATS_AUTO_RECALC = 57800 +const STATS_PERSISTENT = 57801 +const STATS_SAMPLE_PAGES = 57802 +const STORAGE = 57803 +const MEMORY = 57804 +const DISK = 57805 +const PARTITIONS = 57806 +const LINEAR = 57807 +const RANGE = 57808 +const LIST = 57809 +const SUBPARTITION = 57810 +const SUBPARTITIONS = 57811 + +var yyToknames = [...]string{ + "$end", + "error", + "$unk", + "LEX_ERROR", + "UNION", + "SELECT", + "STREAM", + "VSTREAM", + "INSERT", + "UPDATE", + "DELETE", + "FROM", + "WHERE", + "GROUP", + "HAVING", + "ORDER", + "BY", + "LIMIT", + "OFFSET", + "FOR", + "ALL", + "DISTINCT", + "AS", + "EXISTS", + "ASC", + "DESC", + "INTO", + "DUPLICATE", + "DEFAULT", + "SET", + "LOCK", + "UNLOCK", + "KEYS", + "DO", + "CALL", + "DISTINCTROW", + "PARSER", + "GENERATED", + "ALWAYS", + "OUTFILE", + "S3", + "DATA", + "LOAD", + "LINES", + "TERMINATED", + "ESCAPED", + "ENCLOSED", + "DUMPFILE", + "CSV", + "HEADER", + "MANIFEST", + "OVERWRITE", + "STARTING", + "OPTIONALLY", + "VALUES", + "LAST_INSERT_ID", + "NEXT", + "VALUE", + "SHARE", + "MODE", + "SQL_NO_CACHE", + "SQL_CACHE", + "SQL_CALC_FOUND_ROWS", + "JOIN", + "STRAIGHT_JOIN", + "LEFT", + "RIGHT", + "INNER", + "OUTER", + "CROSS", + "NATURAL", + "USE", + "FORCE", + "ON", + "USING", + "INPLACE", + "COPY", + "ALGORITHM", + "NONE", + "SHARED", + "EXCLUSIVE", + "'('", + "','", + "')'", + "ID", + "AT_ID", + "AT_AT_ID", + "HEX", + "STRING", + "INTEGRAL", + "FLOAT", + "HEXNUM", + "VALUE_ARG", + "LIST_ARG", + "COMMENT", + "COMMENT_KEYWORD", + "BIT_LITERAL", + "COMPRESSION", + "NULL", + "TRUE", + "FALSE", + "OFF", + "DISCARD", + "IMPORT", + "ENABLE", + "DISABLE", + "TABLESPACE", + "VIRTUAL", + "STORED", + "LOWER_THAN_CHARSET", + "CHARSET", + "UNIQUE", + "KEY", + "OR", + "XOR", + "AND", + "NOT", + "'!'", + "BETWEEN", + "CASE", + "WHEN", + "THEN", + "ELSE", + "END", + "'='", + "'<'", + "'>'", + "LE", + "GE", + "NE", + "NULL_SAFE_EQUAL", + "IS", + "LIKE", + "REGEXP", + "IN", + "'|'", + "'&'", + "SHIFT_LEFT", + "SHIFT_RIGHT", + "'+'", + "'-'", + "'*'", + "'/'", + "DIV", + "'%'", + "MOD", + "'^'", + "'~'", + "UNARY", + "COLLATE", + "BINARY", + "UNDERSCORE_BINARY", + "UNDERSCORE_UTF8MB4", + "UNDERSCORE_UTF8", + "UNDERSCORE_LATIN1", + "INTERVAL", + "'.'", + "JSON_EXTRACT_OP", + "JSON_UNQUOTE_EXTRACT_OP", + "CREATE", + "ALTER", + "DROP", + "RENAME", + "ANALYZE", + "ADD", + "FLUSH", + "CHANGE", + "MODIFY", + "REVERT", + "SCHEMA", + "TABLE", + "INDEX", + "VIEW", + "TO", + "IGNORE", + "IF", + "PRIMARY", + "COLUMN", + "SPATIAL", + "FULLTEXT", + "KEY_BLOCK_SIZE", + "CHECK", + "INDEXES", + "ACTION", + "CASCADE", + "CONSTRAINT", + "FOREIGN", + "NO", + "REFERENCES", + "RESTRICT", + "SHOW", + "DESCRIBE", + "EXPLAIN", + "DATE", + "ESCAPE", + "REPAIR", + "OPTIMIZE", + "TRUNCATE", + "COALESCE", + "EXCHANGE", + "REBUILD", + "PARTITIONING", + "REMOVE", + "MAXVALUE", + "PARTITION", + "REORGANIZE", + "LESS", + "THAN", + "PROCEDURE", + "TRIGGER", + "VINDEX", + "VINDEXES", + "DIRECTORY", + "NAME", + "UPGRADE", + "STATUS", + "VARIABLES", + "WARNINGS", + "CASCADED", + "DEFINER", + "OPTION", + "SQL", + "UNDEFINED", + "SEQUENCE", + "MERGE", + "TEMPORARY", + "TEMPTABLE", + "INVOKER", + "SECURITY", + "FIRST", + "AFTER", + "LAST", + "VITESS_MIGRATION", + "CANCEL", + "RETRY", + "COMPLETE", + "BEGIN", + "START", + "TRANSACTION", + "COMMIT", + "ROLLBACK", + "SAVEPOINT", + "RELEASE", + "WORK", + "BIT", + "TINYINT", + "SMALLINT", + "MEDIUMINT", + "INT", + "INTEGER", + "BIGINT", + "INTNUM", + "REAL", + "DOUBLE", + "FLOAT_TYPE", + "DECIMAL", + "NUMERIC", + "TIME", + "TIMESTAMP", + "DATETIME", + "YEAR", + "CHAR", + "VARCHAR", + "BOOL", + "CHARACTER", + "VARBINARY", + "NCHAR", + "TEXT", + "TINYTEXT", + "MEDIUMTEXT", + "LONGTEXT", + "BLOB", + "TINYBLOB", + "MEDIUMBLOB", + "LONGBLOB", + "JSON", + "ENUM", + "GEOMETRY", + "POINT", + "LINESTRING", + "POLYGON", + "GEOMETRYCOLLECTION", + "MULTIPOINT", + "MULTILINESTRING", + "MULTIPOLYGON", + "NULLX", + "AUTO_INCREMENT", + "APPROXNUM", + "SIGNED", + "UNSIGNED", + "ZEROFILL", + "CODE", + "COLLATION", + "COLUMNS", + "DATABASES", + "ENGINES", + "EVENT", + "EXTENDED", + "FIELDS", + "FULL", + "FUNCTION", + "GTID_EXECUTED", + "KEYSPACES", + "OPEN", + "PLUGINS", + "PRIVILEGES", + "PROCESSLIST", + "SCHEMAS", + "TABLES", + "TRIGGERS", + "USER", + "VGTID_EXECUTED", + "VITESS_KEYSPACES", + "VITESS_METADATA", + "VITESS_MIGRATIONS", + "VITESS_SHARDS", + "VITESS_TABLETS", + "VSCHEMA", + "NAMES", + "GLOBAL", + "SESSION", + "ISOLATION", + "LEVEL", + "READ", + "WRITE", + "ONLY", + "REPEATABLE", + "COMMITTED", + "UNCOMMITTED", + "SERIALIZABLE", + "CURRENT_TIMESTAMP", + "DATABASE", + "CURRENT_DATE", + "CURRENT_TIME", + "LOCALTIME", + "LOCALTIMESTAMP", + "CURRENT_USER", + "UTC_DATE", + "UTC_TIME", + "UTC_TIMESTAMP", + "REPLACE", + "CONVERT", + "CAST", + "SUBSTR", + "SUBSTRING", + "GROUP_CONCAT", + "SEPARATOR", + "TIMESTAMPADD", + "TIMESTAMPDIFF", + "MATCH", + "AGAINST", + "BOOLEAN", + "LANGUAGE", + "WITH", + "QUERY", + "EXPANSION", + "WITHOUT", + "VALIDATION", + "UNUSED", + "ARRAY", + "CUME_DIST", + "DESCRIPTION", + "DENSE_RANK", + "EMPTY", + "EXCEPT", + "FIRST_VALUE", + "GROUPING", + "GROUPS", + "JSON_TABLE", + "LAG", + "LAST_VALUE", + "LATERAL", + "LEAD", + "MEMBER", + "NTH_VALUE", + "NTILE", + "OF", + "OVER", + "PERCENT_RANK", + "RANK", + "RECURSIVE", + "ROW_NUMBER", + "SYSTEM", + "WINDOW", + "ACTIVE", + "ADMIN", + "BUCKETS", + "CLONE", + "COMPONENT", + "DEFINITION", + "ENFORCED", + "EXCLUDE", + "FOLLOWING", + "GEOMCOLLECTION", + "GET_MASTER_PUBLIC_KEY", + "HISTOGRAM", + "HISTORY", + "INACTIVE", + "INVISIBLE", + "LOCKED", + "MASTER_COMPRESSION_ALGORITHMS", + "MASTER_PUBLIC_KEY_PATH", + "MASTER_TLS_CIPHERSUITES", + "MASTER_ZSTD_COMPRESSION_LEVEL", + "NESTED", + "NETWORK_NAMESPACE", + "NOWAIT", + "NULLS", + "OJ", + "OLD", + "OPTIONAL", + "ORDINALITY", + "ORGANIZATION", + "OTHERS", + "PATH", + "PERSIST", + "PERSIST_ONLY", + "PRECEDING", + "PRIVILEGE_CHECKS_USER", + "PROCESS", + "RANDOM", + "REFERENCE", + "REQUIRE_ROW_FORMAT", + "RESOURCE", + "RESPECT", + "RESTART", + "RETAIN", + "REUSE", + "ROLE", + "SECONDARY", + "SECONDARY_ENGINE", + "SECONDARY_LOAD", + "SECONDARY_UNLOAD", + "SKIP", + "SRID", + "THREAD_PRIORITY", + "TIES", + "UNBOUNDED", + "VCPU", + "VISIBLE", + "FORMAT", + "TREE", + "VITESS", + "TRADITIONAL", + "LOCAL", + "LOW_PRIORITY", + "NO_WRITE_TO_BINLOG", + "LOGS", + "ERROR", + "GENERAL", + "HOSTS", + "OPTIMIZER_COSTS", + "USER_RESOURCES", + "SLOW", + "CHANNEL", + "RELAY", + "EXPORT", + "AVG_ROW_LENGTH", + "CONNECTION", + "CHECKSUM", + "DELAY_KEY_WRITE", + "ENCRYPTION", + "ENGINE", + "INSERT_METHOD", + "MAX_ROWS", + "MIN_ROWS", + "PACK_KEYS", + "PASSWORD", + "FIXED", + "DYNAMIC", + "COMPRESSED", + "REDUNDANT", + "COMPACT", + "ROW_FORMAT", + "STATS_AUTO_RECALC", + "STATS_PERSISTENT", + "STATS_SAMPLE_PAGES", + "STORAGE", + "MEMORY", + "DISK", + "PARTITIONS", + "LINEAR", + "RANGE", + "LIST", + "SUBPARTITION", + "SUBPARTITIONS", + "';'", +} + +var yyStatenames = [...]string{} + +const yyEofCode = 1 +const yyErrCode = 2 +const yyInitialStackSize = 16 + +//line yacctab:1 +var yyExca = [...]int{ + -1, 1, + 1, -1, + -2, 0, + -1, 45, + 1, 112, + 487, 112, + -2, 118, + -1, 46, + 111, 118, + 150, 118, + 265, 118, + -2, 341, + -1, 53, + 33, 511, + 172, 511, + 183, 511, + 216, 525, + 217, 525, + -2, 513, + -1, 58, + 174, 535, + -2, 533, + -1, 84, + 57, 603, + -2, 611, + -1, 97, + 171, 977, + -2, 91, + -1, 99, + 1, 113, + 487, 113, + -2, 118, + -1, 109, + 112, 244, + 177, 244, + -2, 335, + -1, 128, + 111, 118, + 150, 118, + 265, 118, + -2, 350, + -1, 574, + 157, 998, + -2, 994, + -1, 575, + 157, 999, + -2, 995, + -1, 594, + 57, 604, + -2, 616, + -1, 595, + 57, 605, + -2, 617, + -1, 616, + 125, 1353, + -2, 84, + -1, 617, + 125, 1232, + -2, 85, + -1, 623, + 125, 1284, + -2, 971, + -1, 765, + 125, 1166, + -2, 968, + -1, 803, + 182, 38, + 187, 38, + -2, 255, + -1, 880, + 1, 388, + 487, 388, + -2, 118, + -1, 1123, + 111, 118, + 150, 118, + 265, 118, + -2, 285, + -1, 1126, + 23, 137, + -2, 139, + -1, 1199, + 112, 244, + 177, 244, + -2, 335, + -1, 1208, + 182, 39, + 187, 39, + -2, 256, + -1, 1418, + 157, 1003, + -2, 997, + -1, 1509, + 75, 66, + 83, 66, + -2, 70, + -1, 1535, + 111, 118, + 150, 118, + 265, 118, + -2, 286, + -1, 1972, + 5, 864, + 18, 864, + 20, 864, + 31, 864, + 84, 864, + -2, 643, + -1, 2228, + 47, 939, + -2, 933, +} + +const yyPrivate = 57344 + +const yyLast = 30252 + +var yyAct = [...]int{ + 574, 2356, 1849, 605, 2141, 2338, 2186, 2038, 2288, 2275, + 2261, 1982, 1984, 2229, 2104, 2301, 1754, 1529, 2205, 2168, + 1721, 546, 1805, 1952, 941, 1797, 1804, 2138, 1953, 2160, + 2028, 1527, 1023, 532, 1949, 1070, 891, 83, 3, 1455, + 1568, 1853, 2187, 1829, 1588, 1892, 833, 515, 1964, 165, + 1755, 770, 165, 1077, 480, 165, 1830, 1573, 137, 1831, + 496, 1404, 165, 1911, 1741, 1601, 1506, 1104, 1315, 509, + 165, 1681, 1412, 123, 621, 1206, 517, 1587, 1634, 1114, + 798, 1575, 1098, 596, 1107, 920, 1823, 81, 1488, 1080, + 1075, 1495, 496, 1553, 1457, 496, 165, 496, 508, 1062, + 1100, 587, 581, 33, 519, 1381, 959, 1438, 777, 801, + 1097, 1312, 1585, 1298, 1224, 778, 618, 774, 804, 1471, + 799, 800, 79, 1087, 1213, 1554, 1564, 1111, 1113, 1320, + 100, 1180, 140, 1175, 1511, 939, 101, 876, 1036, 8, + 7, 78, 6, 106, 2357, 503, 1039, 1531, 1532, 1533, + 811, 2105, 107, 1531, 1985, 1872, 1871, 1632, 1284, 1899, + 1900, 1370, 960, 786, 1369, 1198, 2170, 1452, 1453, 1415, + 1368, 1367, 835, 1366, 781, 771, 603, 607, 102, 454, + 167, 168, 169, 582, 1365, 849, 850, 838, 853, 854, + 855, 856, 1354, 1358, 859, 860, 861, 862, 863, 864, + 865, 866, 867, 868, 869, 870, 871, 872, 873, 504, + 2324, 84, 108, 506, 1719, 507, 2225, 622, 2117, 615, + 814, 960, 2201, 2200, 2007, 837, 2136, 970, 793, 2137, + 792, 836, 102, 2359, 1580, 2298, 791, 2355, 80, 839, + 840, 841, 1671, 2254, 2346, 2142, 1620, 2297, 86, 87, + 88, 89, 90, 91, 1928, 1578, 97, 2071, 1720, 162, + 1189, 815, 449, 2253, 1979, 1980, 851, 1978, 2214, 985, + 984, 994, 995, 987, 988, 989, 990, 991, 992, 993, + 986, 1898, 580, 996, 1669, 1785, 970, 846, 1784, 1454, + 161, 1786, 1522, 1523, 1521, 559, 102, 565, 566, 563, + 564, 1848, 562, 561, 560, 1512, 1879, 1115, 937, 1116, + 1878, 910, 567, 568, 103, 879, 125, 966, 35, 578, + 958, 72, 39, 40, 898, 577, 875, 145, 790, 899, + 885, 886, 915, 916, 1792, 911, 898, 897, 904, 896, + 1577, 899, 1813, 1547, 1546, 2040, 2258, 483, 2062, 35, + 36, 37, 72, 39, 40, 2060, 494, 483, 135, 1359, + 1360, 1361, 785, 124, 787, 1357, 498, 492, 1066, 76, + 1854, 483, 1304, 41, 67, 68, 966, 65, 69, 1602, + 1875, 142, 1274, 143, 788, 2034, 66, 2354, 1200, 1201, + 134, 133, 160, 2035, 71, 1635, 852, 1645, 1643, 1644, + 1299, 933, 927, 1640, 929, 936, 919, 790, 874, 1887, + 794, 912, 913, 914, 905, 54, 881, 1650, 917, 858, + 790, 2041, 782, 857, 1275, 71, 1276, 2042, 918, 784, + 783, 1647, 2197, 1648, 1637, 1649, 2325, 1639, 1809, 822, + 926, 928, 2131, 1604, 1489, 831, 129, 1202, 136, 165, + 1199, 165, 130, 131, 165, 820, 1641, 146, 830, 965, + 962, 963, 964, 969, 971, 968, 151, 967, 829, 828, + 878, 1192, 931, 827, 961, 826, 788, 1638, 825, 824, + 819, 496, 496, 496, 167, 168, 169, 2215, 832, 767, + 789, 795, 894, 2351, 900, 901, 902, 903, 2006, 496, + 496, 484, 2344, 44, 47, 50, 49, 52, 1512, 64, + 483, 484, 70, 1579, 1212, 977, 938, 1305, 965, 962, + 963, 964, 969, 971, 968, 484, 967, 1891, 924, 775, + 813, 908, 925, 961, 53, 75, 74, 823, 952, 62, + 63, 51, 930, 932, 2252, 775, 1793, 1912, 775, 806, + 807, 509, 773, 821, 1313, 877, 1722, 1724, 1877, 1586, + 1034, 934, 609, 923, 1888, 2259, 1626, 1309, 946, 789, + 1937, 842, 138, 2342, 2014, 1936, 1670, 1800, 165, 1211, + 55, 56, 789, 57, 58, 59, 60, 2289, 1874, 812, + 1914, 1935, 1073, 1076, 816, 806, 813, 1864, 1286, 1285, + 1287, 1288, 1289, 1187, 817, 1186, 496, 1185, 1310, 165, + 1894, 165, 165, 887, 496, 1893, 1183, 943, 944, 1006, + 496, 1068, 1801, 895, 884, 453, 448, 132, 1886, 1894, + 2236, 1885, 1622, 2091, 1893, 1067, 99, 1977, 618, 126, + 955, 953, 127, 954, 1803, 1008, 1009, 1798, 848, 1746, + 813, 1024, 1916, 73, 1920, 812, 1915, 1689, 1913, 1723, + 1807, 1808, 813, 1918, 484, 1799, 1612, 1700, 1517, 1091, + 907, 1697, 1917, 1021, 889, 1528, 2281, 1096, 1063, 2279, + 1081, 909, 996, 1781, 73, 1919, 1921, 1467, 2283, 2284, + 1303, 986, 1807, 1808, 996, 893, 1352, 2280, 1038, 1041, + 1043, 1045, 1046, 1048, 1050, 1051, 813, 1042, 1044, 812, + 1047, 1049, 2248, 1052, 973, 806, 809, 810, 976, 775, + 2103, 812, 1060, 803, 807, 1806, 816, 806, 2340, 834, + 976, 2341, 1962, 2339, 1636, 1306, 817, 1809, 813, 622, + 921, 1930, 802, 139, 144, 141, 147, 148, 149, 150, + 152, 153, 154, 155, 818, 1117, 956, 1806, 94, 156, + 157, 158, 159, 1079, 1621, 812, 1321, 1439, 1842, 1809, + 165, 806, 809, 810, 1176, 775, 1300, 2173, 1301, 803, + 807, 1302, 1994, 1184, 985, 984, 994, 995, 987, 988, + 989, 990, 991, 992, 993, 986, 1069, 812, 996, 847, + 880, 1439, 496, 1707, 1208, 1993, 167, 168, 169, 95, + 1406, 1608, 1217, 1008, 1009, 892, 1221, 1008, 1009, 496, + 496, 1223, 496, 1388, 496, 496, 1222, 496, 496, 496, + 496, 496, 496, 1210, 1619, 1802, 1617, 1386, 1387, 1385, + 1190, 1191, 496, 1682, 822, 1614, 165, 1257, 167, 168, + 169, 820, 1818, 1204, 987, 988, 989, 990, 991, 992, + 993, 986, 165, 922, 996, 2318, 167, 168, 169, 1618, + 1989, 1197, 1407, 496, 1084, 165, 994, 995, 987, 988, + 989, 990, 991, 992, 993, 986, 1311, 1216, 996, 1322, + 165, 1218, 2360, 1254, 2273, 1112, 1614, 1319, 1260, 1261, + 1472, 1473, 975, 973, 1266, 1267, 165, 989, 990, 991, + 992, 993, 986, 165, 1819, 996, 1252, 1253, 1182, 976, + 1616, 2185, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 496, 496, 496, 1226, 1215, 1227, 1207, 1229, 1231, + 1195, 1325, 1235, 1237, 1239, 1241, 1243, 2347, 1329, 1193, + 1331, 1332, 1333, 1334, 608, 1293, 1270, 1338, 2330, 165, + 1214, 1214, 1194, 1469, 1317, 167, 168, 169, 1255, 2352, + 2334, 1353, 1291, 71, 1939, 2348, 1371, 1372, 1373, 1374, + 2116, 1281, 1323, 1324, 1695, 1384, 2331, 613, 2115, 974, + 975, 973, 1694, 1790, 2106, 2012, 1328, 1405, 1188, 1314, + 1827, 1382, 1826, 1335, 1336, 1337, 1408, 976, 167, 168, + 169, 792, 1788, 102, 512, 1583, 1292, 791, 1294, 2333, + 496, 1279, 1940, 974, 975, 973, 1364, 1468, 1674, 1675, + 1676, 1425, 1426, 1290, 2332, 1696, 1327, 1278, 2319, 2353, + 2349, 976, 1280, 2183, 610, 611, 1416, 1277, 167, 168, + 169, 2107, 1596, 2309, 496, 496, 1409, 1410, 974, 975, + 973, 1268, 974, 975, 973, 165, 1348, 1349, 1350, 509, + 974, 975, 973, 974, 975, 973, 976, 1262, 1422, 496, + 976, 974, 975, 973, 1383, 1259, 165, 1258, 976, 496, + 1417, 976, 1233, 165, 2074, 165, 1418, 2307, 1460, 976, + 974, 975, 973, 165, 165, 2157, 1427, 1430, 1932, 2113, + 496, 1024, 1440, 496, 2079, 1992, 1416, 1941, 976, 1836, + 1824, 1526, 167, 168, 169, 496, 974, 975, 973, 1446, + 1447, 167, 168, 169, 618, 1594, 1665, 618, 1630, 1629, + 1507, 1461, 1828, 1318, 976, 1419, 1282, 985, 984, 994, + 995, 987, 988, 989, 990, 991, 992, 993, 986, 1269, + 1486, 996, 1265, 1264, 1263, 1482, 1418, 935, 2037, 1462, + 591, 1510, 974, 975, 973, 2195, 1537, 2021, 2358, 1474, + 496, 1572, 1536, 2021, 2295, 80, 1589, 1590, 1591, 2194, + 976, 1593, 1595, 2021, 2246, 1423, 1424, 2021, 2241, 1429, + 1432, 1433, 2021, 2239, 496, 1540, 2021, 2237, 2219, 591, + 496, 1217, 1484, 2140, 1217, 1570, 1217, 2021, 2189, 2134, + 591, 2021, 2132, 1576, 1613, 1445, 1614, 591, 1448, 1449, + 2089, 591, 1555, 1556, 1557, 622, 1603, 1518, 622, 1519, + 1515, 1376, 1378, 1379, 82, 1539, 1538, 2004, 2003, 2000, + 2001, 2000, 1999, 1513, 496, 1600, 1405, 1480, 591, 1377, + 1855, 1405, 1405, 1548, 591, 1549, 1550, 1551, 1552, 535, + 534, 537, 538, 539, 540, 1512, 1873, 1839, 536, 1541, + 541, 1560, 1561, 1562, 1563, 1742, 1607, 2337, 591, 1610, + 35, 1611, 1742, 1571, 1961, 1581, 1584, 165, 1566, 1567, + 1582, 1592, 1179, 1857, 165, 1623, 1851, 1852, 1513, 165, + 165, 1480, 814, 165, 1749, 165, 1514, 1625, 1606, 35, + 1624, 165, 1627, 1628, 1516, 1571, 1605, 1615, 165, 1492, + 591, 2086, 575, 972, 591, 1179, 1178, 1609, 1491, 1750, + 985, 984, 994, 995, 987, 988, 989, 990, 991, 992, + 993, 986, 2247, 815, 996, 1492, 165, 496, 1124, 1123, + 1660, 1661, 1961, 1214, 1633, 1663, 71, 1950, 2175, 35, + 2134, 1514, 1775, 972, 1664, 2021, 1961, 2312, 2191, 1512, + 1512, 166, 1481, 1614, 166, 2002, 1492, 166, 1520, 1902, + 1712, 1492, 497, 1711, 166, 71, 2118, 1480, 1614, 584, + 1597, 1470, 166, 1450, 1248, 1362, 1308, 1382, 1109, 985, + 984, 994, 995, 987, 988, 989, 990, 991, 992, 993, + 986, 797, 1653, 996, 497, 796, 71, 497, 166, 497, + 985, 984, 994, 995, 987, 988, 989, 990, 991, 992, + 993, 986, 2207, 1708, 996, 71, 2119, 2120, 2121, 1983, + 2139, 165, 1833, 1480, 1249, 1250, 1251, 1832, 2110, 165, + 1497, 1500, 1501, 1502, 1498, 2102, 1499, 1503, 2097, 1668, + 1965, 1966, 1732, 1733, 1076, 71, 1181, 1569, 879, 2036, + 1996, 1987, 165, 1981, 1858, 1565, 1559, 1558, 1296, 1209, + 1383, 1677, 1205, 165, 165, 165, 165, 165, 1728, 1177, + 96, 1965, 1966, 2039, 1833, 165, 2208, 1580, 2315, 165, + 1735, 2122, 165, 165, 2276, 1245, 165, 165, 165, 2019, + 2018, 2017, 1690, 582, 1691, 1968, 1751, 1950, 1843, 1787, + 1789, 1654, 1355, 1971, 1970, 1010, 1011, 1012, 1013, 1014, + 1015, 1016, 1017, 1018, 1019, 1706, 1773, 1763, 1744, 1766, + 1718, 1063, 1747, 1726, 1767, 1817, 1762, 2327, 2123, 2124, + 1764, 1734, 1246, 1247, 2296, 1765, 1745, 1942, 1756, 1768, + 1743, 1501, 1502, 1731, 1078, 2090, 1758, 1759, 1776, 1761, + 2024, 496, 1778, 1686, 1687, 1816, 165, 1820, 1821, 1822, + 1740, 1739, 1317, 165, 1795, 1769, 2329, 2300, 1774, 496, + 1782, 1779, 2302, 1757, 1704, 496, 1760, 2230, 2232, 1217, + 1217, 161, 2263, 1729, 1307, 496, 2233, 2266, 1796, 1576, + 2262, 1730, 2227, 576, 1835, 1811, 1544, 1870, 1837, 844, + 843, 1435, 601, 597, 2049, 103, 1832, 1861, 165, 165, + 165, 165, 165, 1814, 1815, 1436, 1825, 598, 145, 1897, + 945, 1866, 1865, 103, 165, 165, 1834, 1869, 1497, 1500, + 1501, 1502, 1498, 1840, 1499, 1503, 1868, 1844, 1845, 1846, + 2084, 1197, 1082, 1083, 600, 1071, 599, 1465, 601, 597, + 2015, 1417, 1657, 2243, 1859, 1860, 1072, 1418, 2202, 1867, + 496, 1472, 1473, 598, 1810, 1505, 1405, 585, 586, 1738, + 1646, 1673, 142, 588, 143, 2308, 2306, 1737, 2305, 2267, + 2265, 1931, 2188, 160, 1908, 2083, 2020, 1598, 594, 595, + 600, 1889, 599, 1122, 589, 82, 496, 1910, 2082, 1945, + 544, 1742, 2317, 2316, 80, 1701, 1698, 165, 1092, 1441, + 1085, 2317, 2234, 1991, 1909, 1895, 1946, 496, 1896, 1466, + 1901, 584, 85, 496, 496, 77, 1, 1922, 1929, 2278, + 1923, 1907, 466, 1451, 1061, 479, 1951, 2274, 1283, 1273, + 2143, 1908, 1954, 2204, 1574, 805, 165, 1683, 146, 128, + 1534, 166, 1535, 166, 2291, 93, 166, 151, 768, 92, + 495, 808, 906, 1599, 2135, 1812, 1986, 985, 984, 994, + 995, 987, 988, 989, 990, 991, 992, 993, 986, 1969, + 165, 996, 1545, 497, 497, 497, 1130, 1128, 1129, 1960, + 1127, 1132, 620, 590, 1131, 772, 1756, 779, 1126, 1356, + 493, 497, 497, 1504, 163, 1118, 1086, 845, 2013, 1973, + 1938, 1975, 1974, 1976, 165, 456, 1997, 1998, 2005, 1948, + 1351, 1631, 496, 1988, 462, 1004, 1736, 2068, 1783, 496, + 619, 2026, 612, 2073, 1956, 165, 2260, 2226, 1959, 2228, + 2169, 2231, 2224, 2328, 2299, 165, 2242, 1542, 1464, 2010, + 2011, 1074, 2081, 1944, 1705, 1033, 1437, 1101, 2009, 165, + 2008, 518, 165, 138, 1459, 1375, 533, 530, 531, 1475, + 1748, 2050, 1576, 2022, 978, 516, 2027, 510, 1093, 2031, + 166, 1496, 1494, 1493, 2030, 2025, 985, 984, 994, 995, + 987, 988, 989, 990, 991, 992, 993, 986, 1655, 1105, + 996, 2023, 2047, 2048, 2045, 2044, 2072, 1967, 497, 1963, + 1099, 166, 1479, 166, 166, 1543, 497, 1876, 2033, 957, + 593, 505, 497, 780, 1434, 2213, 1672, 2058, 2070, 509, + 592, 1791, 766, 61, 38, 500, 2095, 2323, 948, 2096, + 602, 32, 2098, 985, 984, 994, 995, 987, 988, 989, + 990, 991, 992, 993, 986, 2101, 2085, 996, 496, 31, + 2108, 30, 29, 1380, 28, 23, 1389, 1390, 1391, 1392, + 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, + 1403, 2053, 2094, 22, 2093, 165, 21, 20, 165, 165, + 165, 496, 496, 2129, 19, 2109, 25, 2099, 18, 17, + 16, 98, 48, 45, 2080, 43, 105, 104, 1756, 2100, + 2144, 496, 496, 496, 2055, 2056, 46, 2057, 42, 882, + 2059, 27, 2061, 26, 15, 1442, 14, 2150, 13, 12, + 11, 10, 9, 5, 139, 144, 141, 147, 148, 149, + 150, 152, 153, 154, 155, 4, 496, 496, 496, 165, + 156, 157, 158, 159, 951, 24, 2171, 509, 1022, 2148, + 496, 2, 496, 2112, 1530, 2114, 0, 0, 496, 0, + 2181, 0, 166, 496, 0, 2184, 2164, 2165, 1954, 0, + 0, 496, 1954, 2190, 2178, 2174, 2172, 0, 2166, 0, + 0, 0, 0, 0, 0, 0, 2176, 0, 0, 0, + 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, + 496, 0, 2203, 496, 2192, 0, 2193, 0, 0, 0, + 2149, 497, 497, 2196, 497, 2198, 497, 497, 0, 497, + 497, 497, 497, 497, 497, 2199, 0, 2206, 0, 0, + 0, 0, 2156, 2167, 497, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 2223, 0, 0, + 0, 0, 0, 0, 166, 2180, 2238, 1954, 0, 2235, + 0, 2182, 0, 0, 0, 497, 2240, 166, 496, 165, + 2249, 620, 620, 620, 0, 0, 0, 0, 0, 0, + 496, 0, 166, 0, 0, 0, 0, 0, 0, 947, + 949, 0, 0, 0, 0, 0, 0, 496, 166, 0, + 2245, 2272, 2264, 0, 2257, 166, 0, 0, 496, 496, + 0, 2268, 2271, 2270, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 497, 497, 497, 2290, 0, 2277, 2282, + 0, 2304, 2206, 2292, 0, 2303, 0, 2310, 0, 0, + 0, 2285, 0, 0, 2314, 2313, 2311, 0, 0, 0, + 0, 166, 0, 0, 2320, 0, 0, 0, 167, 168, + 169, 0, 0, 2326, 0, 0, 0, 0, 0, 0, + 0, 1756, 0, 0, 0, 0, 2336, 0, 2335, 0, + 0, 0, 0, 2343, 483, 0, 0, 0, 0, 0, + 0, 2345, 0, 0, 0, 0, 1089, 0, 496, 0, + 2350, 0, 0, 0, 620, 0, 0, 0, 0, 0, + 1119, 0, 497, 0, 0, 0, 0, 0, 0, 0, + 2361, 0, 0, 0, 471, 0, 0, 0, 0, 0, + 0, 0, 0, 470, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 468, 0, 497, 497, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, + 0, 1678, 1679, 1680, 0, 0, 0, 0, 0, 0, + 0, 497, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 497, 465, 0, 0, 166, 0, 166, 0, 0, + 0, 478, 0, 0, 0, 166, 166, 0, 0, 0, + 0, 0, 497, 0, 0, 497, 476, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 497, 0, 0, + 0, 0, 0, 980, 0, 983, 0, 0, 0, 0, + 0, 997, 998, 999, 1000, 1001, 1002, 1003, 484, 981, + 982, 979, 985, 984, 994, 995, 987, 988, 989, 990, + 991, 992, 993, 986, 0, 0, 996, 0, 0, 0, + 2067, 0, 0, 0, 0, 0, 455, 0, 457, 472, + 0, 486, 497, 485, 461, 0, 459, 463, 473, 464, + 0, 458, 0, 469, 0, 0, 460, 474, 475, 490, + 489, 477, 772, 467, 487, 0, 497, 0, 0, 0, + 0, 0, 497, 0, 0, 1219, 0, 0, 0, 1225, + 1225, 0, 1225, 0, 1225, 1225, 0, 1234, 1225, 1225, + 1225, 1225, 1225, 0, 0, 0, 0, 0, 0, 0, + 1219, 1219, 772, 0, 0, 0, 0, 161, 0, 0, + 0, 0, 0, 0, 2066, 0, 497, 0, 985, 984, + 994, 995, 987, 988, 989, 990, 991, 992, 993, 986, + 0, 103, 996, 1295, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 145, 0, 985, 984, 994, 995, + 987, 988, 989, 990, 991, 992, 993, 986, 0, 166, + 996, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 166, 166, 0, 0, 166, 1147, 166, 0, 0, + 0, 0, 0, 166, 0, 1794, 0, 0, 488, 0, + 166, 620, 620, 620, 0, 0, 0, 0, 142, 0, + 143, 0, 0, 0, 0, 0, 481, 2065, 0, 160, + 0, 0, 0, 0, 545, 0, 0, 0, 166, 497, + 0, 482, 0, 0, 0, 0, 0, 1903, 1904, 0, + 985, 984, 994, 995, 987, 988, 989, 990, 991, 992, + 993, 986, 1924, 1925, 996, 1926, 1927, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1933, 1934, 0, 0, + 0, 0, 0, 164, 0, 0, 452, 0, 0, 491, + 0, 0, 0, 0, 146, 0, 452, 0, 0, 0, + 1411, 0, 620, 151, 452, 0, 0, 0, 0, 0, + 0, 0, 1420, 1421, 0, 0, 1219, 1135, 0, 0, + 0, 606, 606, 0, 0, 0, 0, 0, 0, 0, + 452, 0, 0, 166, 1443, 1444, 0, 0, 0, 0, + 0, 166, 0, 985, 984, 994, 995, 987, 988, 989, + 990, 991, 992, 993, 986, 0, 0, 996, 1463, 1476, + 1148, 0, 0, 0, 166, 1990, 0, 0, 0, 1089, + 0, 0, 620, 0, 0, 166, 166, 166, 166, 166, + 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, + 620, 166, 0, 620, 166, 166, 0, 0, 166, 166, + 166, 0, 0, 0, 0, 772, 0, 0, 0, 138, + 0, 1161, 1164, 1165, 1166, 1167, 1168, 1169, 0, 1170, + 1171, 1172, 1173, 1174, 1149, 1150, 1151, 1152, 1133, 1134, + 1162, 0, 1136, 0, 1137, 1138, 1139, 1140, 1141, 1142, + 1143, 1144, 1145, 1146, 1153, 1154, 1155, 1156, 1157, 1158, + 1159, 1160, 0, 0, 0, 0, 0, 0, 0, 0, + 779, 0, 0, 497, 0, 0, 0, 2051, 166, 0, + 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, + 0, 497, 0, 0, 772, 0, 0, 497, 0, 0, + 779, 0, 0, 0, 0, 0, 0, 497, 984, 994, + 995, 987, 988, 989, 990, 991, 992, 993, 986, 0, + 0, 996, 0, 0, 0, 0, 0, 0, 1163, 0, + 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 772, 0, 166, 166, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, + 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, + 155, 0, 0, 0, 0, 0, 156, 157, 158, 159, + 0, 0, 0, 0, 0, 0, 0, 0, 497, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, + 2151, 2152, 2153, 2154, 2155, 497, 497, 1667, 2158, 2159, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 452, 0, 452, 0, 0, 452, 0, + 0, 0, 166, 0, 0, 0, 0, 0, 1684, 0, + 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1692, 1693, 0, 0, 0, 0, 1699, + 0, 0, 1702, 1703, 0, 0, 166, 0, 0, 0, + 1709, 0, 1710, 0, 497, 1713, 1714, 1715, 1716, 1717, + 0, 497, 0, 0, 0, 0, 0, 166, 0, 1727, + 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 166, 1219, 0, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1771, 1772, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286, + 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 606, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 452, 0, 452, 1108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1838, 0, 0, 0, 0, 0, 0, 0, 0, + 497, 0, 0, 0, 0, 0, 0, 0, 0, 1850, + 0, 0, 0, 0, 0, 1856, 0, 0, 0, 0, + 0, 0, 0, 620, 0, 1862, 0, 166, 0, 0, + 166, 166, 166, 497, 497, 0, 0, 0, 0, 0, + 0, 547, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 497, 497, 497, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 497, 497, + 497, 166, 0, 0, 0, 0, 0, 0, 0, 0, + 620, 0, 497, 0, 497, 0, 1905, 1906, 0, 0, + 497, 0, 0, 0, 0, 497, 1064, 0, 0, 0, + 0, 583, 0, 497, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 452, 0, 1225, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 497, 0, 0, 497, 0, 620, 0, 0, + 1219, 0, 0, 1958, 1225, 0, 0, 0, 451, 0, + 0, 0, 1957, 0, 0, 0, 0, 0, 499, 1220, + 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, + 0, 0, 0, 1972, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1220, 1220, 0, 0, 0, 0, + 452, 0, 776, 0, 0, 0, 0, 0, 0, 0, + 497, 166, 0, 0, 0, 0, 1271, 0, 0, 0, + 0, 0, 497, 0, 0, 0, 0, 0, 0, 452, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, + 0, 0, 0, 0, 1316, 0, 0, 0, 0, 0, + 497, 497, 772, 0, 0, 1219, 0, 0, 0, 1850, + 452, 0, 0, 0, 0, 0, 0, 452, 0, 0, + 0, 0, 0, 0, 0, 0, 1339, 1340, 452, 452, + 452, 452, 452, 452, 452, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 452, 0, 0, 0, 2052, 0, 0, + 0, 2054, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2063, 2064, 0, 0, 0, 0, 0, 0, + 497, 0, 0, 0, 0, 0, 0, 0, 2078, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1219, 0, 0, 2087, 2088, 0, 0, 2092, + 0, 0, 0, 0, 0, 606, 1316, 0, 0, 0, + 606, 606, 0, 0, 606, 606, 606, 0, 1850, 0, + 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 606, 606, 606, 606, 606, 0, 0, 0, 0, 1271, + 0, 1850, 2130, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2133, 0, 0, + 452, 2145, 2146, 2147, 0, 0, 1316, 452, 0, 452, + 0, 0, 0, 0, 0, 0, 0, 452, 452, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2162, 2162, 2162, 0, + 0, 0, 0, 0, 0, 2161, 0, 0, 0, 0, + 2177, 0, 2179, 0, 0, 0, 0, 0, 1850, 0, + 0, 0, 0, 1850, 0, 0, 0, 0, 0, 0, + 0, 1850, 940, 940, 940, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 1850, 0, 0, 620, 0, 1005, 1007, 0, 0, 0, + 0, 0, 0, 0, 0, 883, 0, 888, 0, 0, + 890, 2209, 2210, 2211, 2212, 0, 2216, 0, 2217, 2218, + 2220, 0, 0, 0, 2221, 2222, 1020, 0, 0, 0, + 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 0, 1035, + 1037, 1040, 1040, 1040, 1037, 1040, 1040, 1037, 1040, 1053, + 1054, 1055, 1056, 1057, 1058, 1059, 0, 0, 1850, 0, + 0, 1065, 0, 0, 0, 34, 0, 0, 0, 0, + 2255, 0, 0, 2251, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1219, 0, 2269, 0, 0, + 0, 0, 1102, 0, 0, 0, 0, 0, 620, 620, + 0, 452, 0, 0, 0, 0, 0, 0, 452, 0, + 0, 0, 0, 452, 452, 0, 0, 452, 0, 1658, + 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, + 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2321, 2322, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 452, 0, 0, 0, 0, 1095, 0, 0, 1106, 0, + 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1850, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, + 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 145, 0, 0, 0, 0, 0, 0, 606, 606, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 0, 0, 135, 0, 0, 0, 0, 124, 0, 0, + 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, + 0, 0, 0, 1271, 0, 142, 0, 143, 0, 0, + 0, 0, 112, 113, 134, 133, 160, 0, 0, 0, + 0, 0, 0, 0, 0, 606, 452, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1220, 452, 452, 452, + 452, 452, 0, 0, 0, 0, 0, 0, 0, 1770, + 0, 0, 0, 452, 0, 0, 452, 452, 0, 0, + 452, 1780, 1316, 0, 0, 0, 1125, 0, 0, 0, + 129, 110, 136, 117, 109, 0, 130, 131, 0, 0, + 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, + 151, 118, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 121, 119, 114, 115, 116, + 120, 0, 0, 0, 0, 111, 0, 0, 0, 0, + 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, + 452, 0, 0, 0, 0, 0, 0, 1847, 0, 0, + 0, 0, 1256, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 940, 940, 940, 0, 0, 1316, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1297, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 452, 452, 452, 452, 452, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 138, 0, 452, 452, + 0, 0, 1326, 0, 0, 0, 0, 0, 0, 1330, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1341, 1342, 1343, 1344, 1345, 1346, 1347, 0, 0, 0, + 0, 0, 0, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 132, 0, 0, 0, 1106, 0, 0, 0, 0, + 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1220, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 452, 0, 0, 0, 1508, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, + 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, + 0, 0, 1483, 156, 157, 158, 159, 0, 452, 1487, + 161, 1490, 0, 0, 0, 0, 0, 0, 0, 1220, + 1509, 1196, 0, 0, 0, 0, 0, 0, 0, 452, + 0, 0, 0, 0, 103, 0, 125, 0, 0, 452, + 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, + 0, 0, 0, 452, 0, 0, 452, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, + 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 143, 0, 0, 0, 0, 1200, 1201, + 134, 133, 160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1220, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 129, 1202, 136, 0, + 1199, 0, 130, 131, 0, 0, 0, 146, 0, 452, + 0, 0, 452, 452, 452, 0, 151, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, + 1642, 0, 0, 0, 0, 1651, 1652, 0, 0, 1656, + 0, 0, 0, 0, 0, 0, 0, 1659, 0, 0, + 0, 0, 0, 1271, 1662, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1688, 0, + 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1666, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 138, 0, 0, 0, 0, 0, 1725, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1102, 0, 0, 0, 0, 0, 0, + 1752, 1753, 0, 0, 1102, 1102, 1102, 1102, 1102, 0, + 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, + 1508, 0, 0, 1102, 0, 0, 0, 1102, 0, 126, + 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1220, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1777, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1863, 0, 0, + 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1841, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1880, 1881, 1882, 1883, 1884, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1106, 1890, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1955, 0, 34, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1943, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1995, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2016, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2069, 0, 0, 0, 0, 0, 0, 2075, 2076, 2077, + 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2043, 0, 0, 2046, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1955, 0, + 34, 2125, 1955, 0, 2126, 2127, 2128, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 748, 734, 395, 0, 681, 751, 652, 669, 761, + 672, 675, 716, 631, 694, 318, 666, 0, 656, 627, + 662, 628, 654, 683, 224, 651, 736, 698, 750, 275, + 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 757, 279, 705, 0, 380, 303, 1955, 0, 0, + 685, 740, 692, 730, 680, 717, 641, 704, 752, 667, + 713, 753, 265, 207, 175, 315, 381, 239, 0, 2244, + 0, 167, 168, 169, 34, 2293, 2294, 0, 0, 0, + 0, 0, 198, 0, 205, 710, 747, 664, 712, 219, + 263, 226, 218, 399, 758, 739, 0, 191, 749, 687, + 715, 764, 626, 707, 0, 629, 632, 760, 743, 660, + 229, 0, 0, 0, 0, 34, 0, 0, 684, 693, + 727, 678, 0, 0, 0, 0, 0, 0, 0, 0, + 658, 0, 703, 0, 0, 0, 637, 630, 0, 0, + 0, 0, 682, 0, 0, 0, 640, 0, 659, 728, + 0, 624, 247, 634, 304, 2250, 732, 742, 679, 431, + 746, 677, 676, 722, 638, 738, 670, 274, 636, 271, + 171, 187, 0, 668, 314, 354, 360, 737, 655, 663, + 210, 661, 358, 328, 416, 194, 237, 351, 333, 356, + 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 942, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 650, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, + 725, 763, 327, 359, 200, 418, 379, 645, 649, 643, + 644, 696, 697, 646, 754, 755, 756, 729, 639, 0, + 647, 648, 0, 735, 744, 745, 701, 170, 184, 277, + 759, 348, 240, 444, 425, 421, 625, 642, 216, 653, + 0, 0, 665, 673, 674, 686, 688, 689, 690, 691, + 700, 708, 709, 711, 719, 721, 724, 726, 731, 741, + 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 695, 723, + 284, 396, 397, 748, 734, 395, 0, 681, 751, 652, + 669, 761, 672, 675, 716, 631, 694, 318, 666, 0, + 656, 627, 662, 628, 654, 683, 224, 651, 736, 698, + 750, 275, 221, 633, 657, 332, 671, 176, 718, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 757, 279, 705, 0, 380, 303, 0, + 0, 0, 685, 740, 692, 730, 680, 717, 641, 704, + 752, 667, 713, 753, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 710, 747, 664, + 712, 219, 263, 226, 218, 399, 758, 739, 0, 191, + 749, 687, 715, 764, 626, 707, 0, 629, 632, 760, + 743, 660, 229, 0, 0, 0, 0, 0, 0, 0, + 684, 693, 727, 678, 0, 0, 0, 0, 0, 0, + 1947, 0, 658, 0, 703, 0, 0, 0, 637, 630, + 0, 0, 0, 0, 682, 0, 0, 0, 640, 0, + 659, 728, 0, 624, 247, 634, 304, 0, 732, 742, + 679, 431, 746, 677, 676, 722, 638, 738, 670, 274, + 636, 271, 171, 187, 0, 668, 314, 354, 360, 737, + 655, 663, 210, 661, 358, 328, 416, 194, 237, 351, + 333, 356, 702, 720, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 942, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 650, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 733, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 725, 763, 327, 359, 200, 418, 379, 645, + 649, 643, 644, 696, 697, 646, 754, 755, 756, 729, + 639, 0, 647, 648, 0, 735, 744, 745, 701, 170, + 184, 277, 759, 348, 240, 444, 425, 421, 625, 642, + 216, 653, 0, 0, 665, 673, 674, 686, 688, 689, + 690, 691, 700, 708, 709, 711, 719, 721, 724, 726, + 731, 741, 762, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 699, 706, 288, 234, 252, 262, + 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 695, 723, 284, 396, 397, 748, 734, 395, 0, 681, + 751, 652, 669, 761, 672, 675, 716, 631, 694, 318, + 666, 0, 656, 627, 662, 628, 654, 683, 224, 651, + 736, 698, 750, 275, 221, 633, 657, 332, 671, 176, + 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 757, 279, 705, 0, 380, + 303, 0, 0, 0, 685, 740, 692, 730, 680, 717, + 641, 704, 752, 667, 713, 753, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 710, + 747, 664, 712, 219, 263, 226, 218, 399, 758, 739, + 0, 191, 749, 687, 715, 764, 626, 707, 0, 629, + 632, 760, 743, 660, 229, 0, 0, 0, 0, 0, + 0, 0, 684, 693, 727, 678, 0, 0, 0, 0, + 0, 0, 1781, 0, 658, 0, 703, 0, 0, 0, + 637, 630, 0, 0, 0, 0, 682, 0, 0, 0, + 640, 0, 659, 728, 0, 624, 247, 634, 304, 0, + 732, 742, 679, 431, 746, 677, 676, 722, 638, 738, + 670, 274, 636, 271, 171, 187, 0, 668, 314, 354, + 360, 737, 655, 663, 210, 661, 358, 328, 416, 194, + 237, 351, 333, 356, 702, 720, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 942, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 650, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 733, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 725, 763, 327, 359, 200, 418, + 379, 645, 649, 643, 644, 696, 697, 646, 754, 755, + 756, 729, 639, 0, 647, 648, 0, 735, 744, 745, + 701, 170, 184, 277, 759, 348, 240, 444, 425, 421, + 625, 642, 216, 653, 0, 0, 665, 673, 674, 686, + 688, 689, 690, 691, 700, 708, 709, 711, 719, 721, + 724, 726, 731, 741, 762, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 699, 706, 288, 234, + 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 695, 723, 284, 396, 397, 748, 734, 395, + 0, 681, 751, 652, 669, 761, 672, 675, 716, 631, + 694, 318, 666, 0, 656, 627, 662, 628, 654, 683, + 224, 651, 736, 698, 750, 275, 221, 633, 657, 332, + 671, 176, 718, 371, 209, 285, 282, 402, 235, 227, + 223, 208, 259, 291, 330, 389, 324, 757, 279, 705, + 0, 380, 303, 0, 0, 0, 685, 740, 692, 730, + 680, 717, 641, 704, 752, 667, 713, 753, 265, 207, + 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 710, 747, 664, 712, 219, 263, 226, 218, 399, + 758, 739, 0, 191, 749, 687, 715, 764, 626, 707, + 0, 629, 632, 760, 743, 660, 229, 0, 0, 0, + 0, 0, 0, 0, 684, 693, 727, 678, 0, 0, + 0, 0, 0, 0, 1485, 0, 658, 0, 703, 0, + 0, 0, 637, 630, 0, 0, 0, 0, 682, 0, + 0, 0, 640, 0, 659, 728, 0, 624, 247, 634, + 304, 0, 732, 742, 679, 431, 746, 677, 676, 722, + 638, 738, 670, 274, 636, 271, 171, 187, 0, 668, + 314, 354, 360, 737, 655, 663, 210, 661, 358, 328, + 416, 194, 237, 351, 333, 356, 702, 720, 357, 280, + 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, + 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, + 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, + 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, + 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, + 407, 408, 211, 446, 190, 427, 183, 942, 426, 310, + 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, + 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, + 0, 382, 420, 447, 195, 196, 197, 650, 232, 236, + 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, + 733, 398, 415, 423, 430, 436, 437, 441, 438, 439, + 442, 309, 257, 378, 272, 281, 725, 763, 327, 359, + 200, 418, 379, 645, 649, 643, 644, 696, 697, 646, + 754, 755, 756, 729, 639, 0, 647, 648, 0, 735, + 744, 745, 701, 170, 184, 277, 759, 348, 240, 444, + 425, 421, 625, 642, 216, 653, 0, 0, 665, 673, + 674, 686, 688, 689, 690, 691, 700, 708, 709, 711, + 719, 721, 724, 726, 731, 741, 762, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, + 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, + 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, + 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, + 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, + 417, 429, 434, 249, 413, 435, 0, 286, 699, 706, + 288, 234, 252, 262, 714, 424, 384, 189, 355, 241, + 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, + 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, + 394, 300, 220, 334, 695, 723, 284, 396, 397, 748, + 734, 395, 0, 681, 751, 652, 669, 761, 672, 675, + 716, 631, 694, 318, 666, 0, 656, 627, 662, 628, + 654, 683, 224, 651, 736, 698, 750, 275, 221, 633, + 657, 332, 671, 176, 718, 371, 209, 285, 282, 402, + 235, 227, 223, 208, 259, 291, 330, 389, 324, 757, + 279, 705, 0, 380, 303, 0, 0, 0, 685, 740, + 692, 730, 680, 717, 641, 704, 752, 667, 713, 753, + 265, 207, 175, 315, 381, 239, 71, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 710, 747, 664, 712, 219, 263, 226, + 218, 399, 758, 739, 0, 191, 749, 687, 715, 764, + 626, 707, 0, 629, 632, 760, 743, 660, 229, 0, + 0, 0, 0, 0, 0, 0, 684, 693, 727, 678, + 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, + 703, 0, 0, 0, 637, 630, 0, 0, 0, 0, + 682, 0, 0, 0, 640, 0, 659, 728, 0, 624, + 247, 634, 304, 0, 732, 742, 679, 431, 746, 677, + 676, 722, 638, 738, 670, 274, 636, 271, 171, 187, + 0, 668, 314, 354, 360, 737, 655, 663, 210, 661, + 358, 328, 416, 194, 237, 351, 333, 356, 702, 720, + 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, + 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, + 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, + 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, + 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, + 212, 317, 407, 408, 211, 446, 190, 427, 183, 942, + 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, + 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, + 0, 177, 0, 382, 420, 447, 195, 196, 197, 650, + 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, + 341, 347, 733, 398, 415, 423, 430, 436, 437, 441, + 438, 439, 442, 309, 257, 378, 272, 281, 725, 763, + 327, 359, 200, 418, 379, 645, 649, 643, 644, 696, + 697, 646, 754, 755, 756, 729, 639, 0, 647, 648, + 0, 735, 744, 745, 701, 170, 184, 277, 759, 348, + 240, 444, 425, 421, 625, 642, 216, 653, 0, 0, + 665, 673, 674, 686, 688, 689, 690, 691, 700, 708, + 709, 711, 719, 721, 724, 726, 731, 741, 762, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, + 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, + 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, + 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, + 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, + 699, 706, 288, 234, 252, 262, 714, 424, 384, 189, + 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, + 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, + 391, 392, 394, 300, 220, 334, 695, 723, 284, 396, + 397, 748, 734, 395, 0, 681, 751, 652, 669, 761, + 672, 675, 716, 631, 694, 318, 666, 0, 656, 627, + 662, 628, 654, 683, 224, 651, 736, 698, 750, 275, + 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 757, 279, 705, 0, 380, 303, 0, 0, 0, + 685, 740, 692, 730, 680, 717, 641, 704, 752, 667, + 713, 753, 265, 207, 175, 315, 381, 239, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 710, 747, 664, 712, 219, + 263, 226, 218, 399, 758, 739, 0, 191, 749, 687, + 715, 764, 626, 707, 0, 629, 632, 760, 743, 660, + 229, 0, 0, 0, 0, 0, 0, 0, 684, 693, + 727, 678, 0, 0, 0, 0, 0, 0, 0, 0, + 658, 0, 703, 0, 0, 0, 637, 630, 0, 0, + 0, 0, 682, 0, 0, 0, 640, 0, 659, 728, + 0, 624, 247, 634, 304, 0, 732, 742, 679, 431, + 746, 677, 676, 722, 638, 738, 670, 274, 636, 271, + 171, 187, 0, 668, 314, 354, 360, 737, 655, 663, + 210, 661, 358, 328, 416, 194, 237, 351, 333, 356, + 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 942, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 650, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, + 725, 763, 327, 359, 200, 418, 379, 645, 649, 643, + 644, 696, 697, 646, 754, 755, 756, 729, 639, 0, + 647, 648, 0, 735, 744, 745, 701, 170, 184, 277, + 759, 348, 240, 444, 425, 421, 625, 642, 216, 653, + 0, 0, 665, 673, 674, 686, 688, 689, 690, 691, + 700, 708, 709, 711, 719, 721, 724, 726, 731, 741, + 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 695, 723, + 284, 396, 397, 748, 734, 395, 0, 681, 751, 652, + 669, 761, 672, 675, 716, 631, 694, 318, 666, 0, + 656, 627, 662, 628, 654, 683, 224, 651, 736, 698, + 750, 275, 221, 633, 657, 332, 671, 176, 718, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 757, 279, 705, 0, 380, 303, 0, + 0, 0, 685, 740, 692, 730, 680, 717, 641, 704, + 752, 667, 713, 753, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 710, 747, 664, + 712, 219, 263, 226, 218, 399, 758, 739, 0, 765, + 749, 687, 715, 764, 626, 707, 0, 629, 632, 760, + 743, 660, 229, 0, 0, 0, 0, 0, 0, 0, + 684, 693, 727, 678, 0, 0, 0, 0, 0, 0, + 0, 0, 658, 0, 703, 0, 0, 0, 637, 630, + 0, 0, 0, 0, 682, 0, 0, 0, 640, 0, + 659, 728, 0, 624, 247, 634, 304, 0, 732, 742, + 679, 431, 746, 677, 676, 722, 638, 738, 670, 274, + 636, 271, 171, 187, 0, 668, 314, 354, 360, 737, + 655, 663, 210, 661, 358, 328, 416, 194, 237, 351, + 333, 356, 702, 720, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 635, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 650, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 733, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 623, 617, 616, + 272, 281, 725, 763, 327, 359, 200, 418, 379, 645, + 649, 643, 644, 696, 697, 646, 754, 755, 756, 729, + 639, 0, 647, 648, 0, 735, 744, 745, 701, 170, + 184, 277, 759, 348, 240, 444, 425, 421, 625, 642, + 216, 653, 0, 0, 665, 673, 674, 686, 688, 689, + 690, 691, 700, 708, 709, 711, 719, 721, 724, 726, + 731, 741, 762, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 699, 706, 288, 234, 252, 262, + 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 695, 723, 284, 396, 397, 748, 734, 395, 0, 681, + 751, 652, 669, 761, 672, 675, 716, 631, 694, 318, + 666, 0, 656, 627, 662, 628, 654, 683, 224, 651, + 736, 698, 750, 275, 221, 633, 657, 332, 671, 176, + 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 757, 279, 705, 0, 380, + 303, 0, 0, 0, 685, 740, 692, 730, 680, 717, + 641, 704, 752, 667, 713, 753, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 710, + 747, 664, 712, 219, 263, 226, 218, 399, 758, 739, + 0, 765, 749, 687, 715, 764, 626, 707, 0, 629, + 632, 760, 743, 660, 229, 0, 0, 0, 0, 0, + 0, 0, 684, 693, 727, 678, 0, 0, 0, 0, + 0, 0, 0, 0, 658, 0, 703, 0, 0, 0, + 637, 630, 0, 0, 0, 0, 682, 0, 0, 0, + 640, 0, 659, 728, 0, 624, 247, 634, 304, 0, + 732, 742, 679, 431, 746, 677, 676, 722, 638, 738, + 670, 274, 636, 271, 171, 187, 0, 668, 314, 354, + 360, 737, 655, 663, 210, 661, 358, 328, 416, 194, + 237, 351, 333, 356, 702, 720, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 1110, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 635, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 650, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 733, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 623, + 617, 616, 272, 281, 725, 763, 327, 359, 200, 418, + 379, 645, 649, 643, 644, 696, 697, 646, 754, 755, + 756, 729, 639, 0, 647, 648, 0, 735, 744, 745, + 701, 170, 184, 277, 759, 348, 240, 444, 425, 421, + 625, 642, 216, 653, 0, 0, 665, 673, 674, 686, + 688, 689, 690, 691, 700, 708, 709, 711, 719, 721, + 724, 726, 731, 741, 762, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 699, 706, 288, 234, + 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 695, 723, 284, 396, 397, 748, 734, 395, + 0, 681, 751, 652, 669, 761, 672, 675, 716, 631, + 694, 318, 666, 0, 656, 627, 662, 628, 654, 683, + 224, 651, 736, 698, 750, 275, 221, 633, 657, 332, + 671, 176, 718, 371, 209, 285, 282, 402, 235, 227, + 223, 208, 259, 291, 330, 389, 324, 757, 279, 705, + 0, 380, 303, 0, 0, 0, 685, 740, 692, 730, + 680, 717, 641, 704, 752, 667, 713, 753, 265, 207, + 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 710, 747, 664, 712, 219, 263, 226, 218, 399, + 758, 739, 0, 765, 749, 687, 715, 764, 626, 707, + 0, 629, 632, 760, 743, 660, 229, 0, 0, 0, + 0, 0, 0, 0, 684, 693, 727, 678, 0, 0, + 0, 0, 0, 0, 0, 0, 658, 0, 703, 0, + 0, 0, 637, 630, 0, 0, 0, 0, 682, 0, + 0, 0, 640, 0, 659, 728, 0, 624, 247, 634, + 304, 0, 732, 742, 679, 431, 746, 677, 676, 722, + 638, 738, 670, 274, 636, 271, 171, 187, 0, 668, + 314, 354, 360, 737, 655, 663, 210, 661, 358, 328, + 416, 194, 237, 351, 333, 356, 702, 720, 357, 280, + 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, + 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, + 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, + 388, 614, 199, 369, 0, 0, 445, 181, 410, 385, + 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, + 407, 408, 211, 446, 190, 427, 183, 635, 426, 310, + 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, + 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, + 0, 382, 420, 447, 195, 196, 197, 650, 232, 236, + 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, + 733, 398, 415, 423, 430, 436, 437, 441, 438, 439, + 442, 623, 617, 616, 272, 281, 725, 763, 327, 359, + 200, 418, 379, 645, 649, 643, 644, 696, 697, 646, + 754, 755, 756, 729, 639, 0, 647, 648, 0, 735, + 744, 745, 701, 170, 184, 277, 759, 348, 240, 444, + 425, 421, 625, 642, 216, 653, 0, 0, 665, 673, + 674, 686, 688, 689, 690, 691, 700, 708, 709, 711, + 719, 721, 724, 726, 731, 741, 762, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, + 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, + 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, + 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, + 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, + 417, 429, 434, 249, 413, 435, 0, 286, 699, 706, + 288, 234, 252, 262, 714, 424, 384, 189, 355, 241, + 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, + 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, + 394, 300, 220, 334, 695, 723, 284, 396, 397, 395, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 318, 0, 0, 1413, 0, 514, 0, 0, 0, + 224, 513, 0, 0, 0, 275, 221, 0, 1414, 332, + 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, + 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, + 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, + 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, + 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, + 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, + 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, + 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 525, 526, 604, 0, 0, 0, 572, 0, + 527, 0, 0, 520, 521, 523, 522, 524, 529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 304, 0, 571, 0, 0, 431, 0, 0, 569, 0, + 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, + 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, + 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, + 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, + 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, + 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, + 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, + 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, + 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, + 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, + 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, + 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, + 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, + 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, + 200, 418, 379, 559, 570, 565, 566, 563, 564, 558, + 562, 561, 560, 573, 550, 551, 552, 553, 555, 0, + 567, 568, 554, 170, 184, 277, 0, 348, 240, 444, + 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, + 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, + 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, + 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, + 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, + 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, + 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, + 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, + 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, + 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, + 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, + 0, 514, 0, 0, 0, 224, 513, 0, 0, 0, + 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, + 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, + 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, + 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, + 0, 1524, 0, 265, 207, 175, 315, 381, 239, 71, + 0, 0, 167, 168, 169, 535, 534, 537, 538, 539, + 540, 0, 0, 198, 536, 205, 541, 542, 543, 1525, + 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, + 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 525, 526, 0, + 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, + 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 304, 0, 571, 0, 0, + 431, 0, 0, 569, 0, 0, 0, 0, 274, 0, + 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, + 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, + 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, + 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, + 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, + 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, + 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, + 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, + 427, 183, 0, 426, 310, 403, 411, 299, 290, 182, + 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, + 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, + 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, + 281, 0, 0, 327, 359, 200, 418, 379, 559, 570, + 565, 566, 563, 564, 558, 562, 561, 560, 573, 550, + 551, 552, 553, 555, 0, 567, 568, 554, 170, 184, + 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, + 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, + 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, + 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, + 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, + 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, + 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, + 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, + 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, + 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, + 0, 318, 0, 0, 0, 0, 514, 0, 0, 0, + 224, 513, 0, 0, 0, 275, 221, 0, 0, 332, + 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, + 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, + 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, + 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, + 175, 315, 381, 239, 71, 0, 591, 167, 168, 169, + 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, + 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, + 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 525, 526, 0, 0, 0, 0, 572, 0, + 527, 0, 0, 520, 521, 523, 522, 524, 529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 304, 0, 571, 0, 0, 431, 0, 0, 569, 0, + 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, + 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, + 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, + 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, + 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, + 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, + 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, + 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, + 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, + 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, + 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, + 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, + 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, + 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, + 200, 418, 379, 559, 570, 565, 566, 563, 564, 558, + 562, 561, 560, 573, 550, 551, 552, 553, 555, 0, + 567, 568, 554, 170, 184, 277, 0, 348, 240, 444, + 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, + 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, + 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, + 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, + 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, + 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, + 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, + 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, + 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, + 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, + 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, + 0, 514, 0, 0, 0, 224, 513, 0, 0, 0, + 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, + 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, + 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, + 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, + 0, 0, 0, 265, 207, 175, 315, 381, 239, 71, + 0, 0, 167, 168, 169, 535, 534, 537, 538, 539, + 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, + 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, + 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 525, 526, 604, + 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, + 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 304, 0, 571, 0, 0, + 431, 0, 0, 569, 0, 0, 0, 0, 274, 0, + 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, + 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, + 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, + 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, + 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, + 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, + 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, + 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, + 427, 183, 0, 426, 310, 403, 411, 299, 290, 182, + 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, + 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, + 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, + 281, 0, 0, 327, 359, 200, 418, 379, 559, 570, + 565, 566, 563, 564, 558, 562, 561, 560, 573, 550, + 551, 552, 553, 555, 0, 567, 568, 554, 170, 184, + 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, + 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, + 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, + 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, + 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, + 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, + 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, + 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, + 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, + 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, + 0, 318, 0, 0, 0, 0, 514, 0, 0, 0, + 224, 513, 0, 0, 0, 275, 221, 0, 0, 332, + 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, + 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, + 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, + 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, + 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, + 535, 1431, 537, 538, 539, 540, 0, 0, 198, 536, + 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, + 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 525, 526, 604, 0, 0, 0, 572, 0, + 527, 0, 0, 520, 521, 523, 522, 524, 529, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 304, 0, 571, 0, 0, 431, 0, 0, 569, 0, + 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, + 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, + 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, + 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, + 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, + 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, + 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, + 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, + 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, + 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, + 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, + 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, + 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, + 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, + 200, 418, 379, 559, 570, 565, 566, 563, 564, 558, + 562, 561, 560, 573, 550, 551, 552, 553, 555, 0, + 567, 568, 554, 170, 184, 277, 0, 348, 240, 444, + 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, + 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, + 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, + 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, + 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, + 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, + 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, + 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, + 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, + 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, + 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, + 0, 514, 0, 0, 0, 224, 513, 0, 0, 0, + 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, + 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, + 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, + 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, + 0, 0, 0, 265, 207, 175, 315, 381, 239, 71, + 0, 0, 167, 168, 169, 535, 1428, 537, 538, 539, + 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, + 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, + 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 525, 526, 604, + 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, + 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 304, 0, 571, 0, 0, + 431, 0, 0, 569, 0, 0, 0, 0, 274, 0, + 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, + 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, + 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, + 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, + 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, + 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, + 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, + 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, + 427, 183, 0, 426, 310, 403, 411, 299, 290, 182, + 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, + 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, + 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, + 281, 0, 0, 327, 359, 200, 418, 379, 559, 570, + 565, 566, 563, 564, 558, 562, 561, 560, 573, 550, + 551, 552, 553, 555, 0, 567, 568, 554, 170, 184, + 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, + 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, + 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, + 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, + 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, + 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, + 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, + 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, + 201, 370, 390, 391, 392, 394, 300, 220, 334, 584, + 395, 284, 396, 397, 0, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 514, 0, 0, + 0, 224, 513, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, + 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, + 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, + 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 525, 526, 0, 0, 0, 0, 572, + 0, 527, 0, 0, 520, 521, 523, 522, 524, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 571, 0, 0, 431, 0, 0, 569, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 559, 570, 565, 566, 563, 564, + 558, 562, 561, 560, 573, 550, 551, 552, 553, 555, + 0, 567, 568, 554, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 514, 0, 0, 0, 224, 513, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 71, 0, 0, 167, 168, 169, 535, 534, 537, 538, + 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 0, 0, 0, 0, 511, 528, 0, 556, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 525, 526, + 0, 0, 0, 0, 572, 0, 527, 0, 0, 520, + 521, 523, 522, 524, 529, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 571, 0, + 0, 431, 0, 0, 569, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 559, + 570, 565, 566, 563, 564, 558, 562, 561, 560, 573, + 550, 551, 552, 553, 555, 0, 567, 568, 554, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, + 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, + 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, + 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 528, 0, 556, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 525, 526, 0, 0, 0, 0, 572, + 0, 527, 0, 0, 520, 521, 523, 522, 524, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 571, 0, 0, 431, 0, 0, 569, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 2287, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 559, 570, 565, 566, 563, 564, + 558, 562, 561, 560, 573, 550, 551, 552, 553, 555, + 0, 567, 568, 554, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 71, 0, 591, 167, 168, 169, 535, 534, 537, 538, + 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 0, 0, 0, 0, 0, 528, 0, 556, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 525, 526, + 0, 0, 0, 0, 572, 0, 527, 0, 0, 520, + 521, 523, 522, 524, 529, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 571, 0, + 0, 431, 0, 0, 569, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 559, + 570, 565, 566, 563, 564, 558, 562, 561, 560, 573, + 550, 551, 552, 553, 555, 0, 567, 568, 554, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, + 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, + 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, + 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 528, 0, 556, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 525, 526, 0, 0, 0, 0, 572, + 0, 527, 0, 0, 520, 521, 523, 522, 524, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 571, 0, 0, 431, 0, 0, 569, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 559, 570, 565, 566, 563, 564, + 558, 562, 561, 560, 573, 550, 551, 552, 553, 555, + 0, 567, 568, 554, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 985, 984, 994, 995, 987, 988, + 989, 990, 991, 992, 993, 986, 0, 0, 996, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 813, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 812, 431, 0, 0, 0, + 0, 0, 809, 810, 274, 775, 271, 171, 187, 803, + 807, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 1088, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 1090, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 0, 974, 975, 973, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, + 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 35, 395, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, + 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, + 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, + 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 265, 207, 175, 315, 381, 239, 71, 0, 591, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, + 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, + 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, + 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, + 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, + 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, + 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, + 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, + 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, + 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, + 212, 317, 407, 408, 211, 446, 190, 427, 183, 0, + 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, + 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, + 0, 177, 0, 382, 420, 447, 195, 196, 197, 0, + 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, + 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, + 438, 439, 442, 309, 257, 378, 272, 281, 0, 0, + 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 277, 0, 348, + 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, + 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, + 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, + 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, + 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, + 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, + 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, + 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, + 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, + 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, + 0, 0, 1458, 0, 0, 0, 0, 224, 0, 0, + 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, + 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, + 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, + 239, 0, 0, 0, 167, 168, 169, 0, 1272, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, + 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, + 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, + 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, + 351, 333, 356, 0, 1456, 357, 280, 404, 346, 414, + 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, + 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, + 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, + 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, + 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, + 446, 190, 427, 183, 0, 426, 310, 403, 411, 299, + 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, + 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, + 447, 195, 196, 197, 0, 232, 236, 242, 244, 250, + 251, 258, 276, 321, 343, 341, 347, 0, 398, 415, + 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, + 378, 272, 281, 0, 0, 327, 359, 200, 418, 379, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, + 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, + 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, + 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, + 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, + 249, 413, 435, 0, 286, 0, 0, 288, 234, 252, + 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, + 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, + 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, + 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, + 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, + 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, + 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, + 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, + 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, + 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, + 0, 0, 0, 0, 0, 274, 775, 271, 171, 187, + 773, 0, 314, 354, 360, 0, 0, 0, 210, 0, + 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, + 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, + 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, + 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, + 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, + 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, + 212, 317, 407, 408, 211, 446, 190, 427, 183, 0, + 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, + 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, + 0, 177, 0, 382, 420, 447, 195, 196, 197, 0, + 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, + 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, + 438, 439, 442, 309, 257, 378, 272, 281, 0, 0, + 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 277, 0, 348, + 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, + 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, + 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, + 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, + 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, + 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, + 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, + 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, + 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, + 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, + 0, 0, 1458, 0, 0, 0, 0, 224, 0, 0, + 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, + 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, + 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, + 239, 0, 0, 0, 167, 168, 169, 0, 1272, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, + 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, + 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, + 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, + 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, + 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, + 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, + 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, + 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, + 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, + 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, + 446, 190, 427, 183, 0, 426, 310, 403, 411, 299, + 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, + 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, + 447, 195, 196, 197, 0, 232, 236, 242, 244, 250, + 251, 258, 276, 321, 343, 341, 347, 0, 398, 415, + 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, + 378, 272, 281, 0, 0, 327, 359, 200, 418, 379, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, + 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, + 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, + 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, + 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, + 249, 413, 435, 0, 286, 0, 0, 288, 234, 252, + 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, + 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, + 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, + 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, + 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, + 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, + 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, + 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 265, 207, 175, 315, 381, 239, 0, 0, 591, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, + 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, + 0, 2163, 0, 0, 0, 274, 0, 271, 171, 187, + 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, + 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, + 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, + 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, + 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, + 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, + 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, + 212, 317, 407, 408, 211, 446, 190, 427, 183, 0, + 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, + 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, + 0, 177, 0, 382, 420, 447, 195, 196, 197, 0, + 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, + 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, + 438, 439, 442, 309, 257, 378, 272, 281, 0, 0, + 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 170, 184, 277, 0, 348, + 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, + 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, + 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, + 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, + 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, + 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, + 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, + 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, + 391, 392, 394, 300, 220, 334, 35, 395, 284, 396, + 397, 0, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 71, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 1477, 0, 0, 1478, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 1121, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 1120, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 2256, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 2163, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 1272, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 1090, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 1363, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 1244, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 1242, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 1240, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 1238, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 1236, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 1232, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 1230, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 1228, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 1203, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 1103, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 1094, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 950, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 501, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 0, 450, 0, 431, 0, 0, 0, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, + 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 0, 0, 284, + 396, 397, +} + +var yyPact = [...]int{ + 343, -1000, -346, 1729, -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, 1709, 1363, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 676, 1418, -1000, 1624, 4049, -1000, 29765, 455, + -1000, 29290, 454, 2213, 29765, -1000, 128, -1000, 112, 29765, + 124, 28815, -1000, -1000, -232, 13138, 1581, 16, 10, 29765, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1393, + 1676, 1685, 1707, 1180, 1657, -1000, 11237, 11237, 387, 387, + 387, 9332, 284, -1000, 17414, 29765, 29765, 250, -1000, 1624, + -1000, -1000, 260, -1000, 288, 1342, -1000, 1338, -1000, 537, + 549, 275, 348, 332, 274, 273, 270, 268, 264, 263, + 253, 240, 286, -1000, 604, 604, -127, -133, 1606, 371, + 371, 371, 397, 1597, 1596, -1000, 625, -1000, 604, 604, + 246, 604, 604, 604, 604, 210, 206, 604, 604, 604, + 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, + 604, 604, 237, 1624, 201, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 29765, 158, + 29765, -1000, 517, 29765, 682, 682, 30, 682, 682, 682, + 682, 122, 498, 2, -1000, 119, 196, 116, 190, 728, + 231, 95, -1000, -1000, 184, 728, 1078, 96, -1000, 682, + 7404, 7404, 7404, -1000, 1620, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 394, -1000, -1000, -1000, -1000, 29765, 28340, + 312, 631, -1000, -1000, -1000, 11, -1000, -1000, 1290, 948, + -1000, 13138, 2346, 1344, 1344, -1000, -1000, 487, -1000, -1000, + 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1344, 516, -1000, 12663, 1344, 1344, + 1344, 1344, 1344, 1344, 1344, 1344, 13138, 1344, 1344, 1344, + 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, + 1344, 1344, 1344, 1344, -1000, -1000, -1000, 29765, -1000, 1344, + 135, 1709, -1000, 1363, -1000, -1000, -1000, 1655, 13138, 13138, + 1709, -1000, 1517, 11237, -1000, -1000, 1611, -1000, -1000, -1000, + -1000, -1000, 779, 1728, -1000, 15988, 512, 1726, 27865, -1000, + 21215, 27390, 1325, 8850, -15, -1000, -1000, -1000, 630, 19790, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1620, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1706, 1275, 29765, + -1000, -1000, 2616, 1037, -1000, 1417, -1000, 1252, -1000, 1394, + 1400, 445, 1037, 435, 433, 431, -1000, -81, -1000, -1000, + -1000, -1000, -1000, 604, 604, 269, 4049, 4525, -1000, -1000, + -1000, 26915, 1410, 1037, -1000, 1407, -1000, 720, 402, 483, + 483, 1037, -1000, -1000, 29765, 1037, 713, 708, 29765, 29765, + -1000, 26440, -1000, 25965, 25490, 1002, 29765, 25015, 24540, 24065, + 23590, 23115, -1000, 1486, -1000, 1375, -1000, -1000, -1000, 29765, + 29765, 29765, 236, -1000, -1000, 29765, 1037, -1000, -1000, 997, + 995, 604, 604, 987, 1075, 1074, 1073, 604, 604, 971, + 1070, 21690, 194, 957, 947, 931, 952, 1057, 129, 943, + 926, 928, 29765, 1406, 29765, -1000, 180, 616, 283, 610, + 1624, 1572, 1323, 393, 437, 1037, 378, 378, -1000, 7886, + -1000, -1000, 1054, 13138, -1000, 754, 728, 728, -1000, -1000, + -1000, -1000, -1000, -1000, 682, 29765, 754, -1000, -1000, -1000, + 728, 682, 29765, 682, 682, 682, 682, 728, 728, 728, + 682, 29765, 29765, 29765, 29765, 29765, 29765, 29765, 29765, 29765, + 7404, 7404, 7404, 563, 682, -256, -1000, 1458, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 123, -1000, -1000, -1000, + -1000, -1000, 1729, -1000, -1000, -1000, -83, 1322, 22640, -1000, + -264, -275, -277, -278, -1000, -1000, -1000, -284, -287, -1000, + -1000, -1000, 13138, 13138, 13138, 13138, 1142, 586, 14563, 891, + 704, 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, + 14563, 14563, 14563, 14563, 14563, 14563, 721, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1037, -1000, 1745, 1181, 1181, + 532, 532, 532, 532, 532, 532, 532, 532, 532, 15038, + 9812, 7886, 1180, 1250, 1709, 11237, 11237, 13138, 13138, 12187, + 11712, 11237, 1609, 646, 948, 29765, -1000, 1086, -1000, -1000, + 14088, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 29765, 29765, 11237, 11237, 11237, 11237, 11237, + -1000, 1320, -1000, -157, 16939, 13138, 1052, 1685, 1180, 1611, + 1650, 1739, 552, 944, 1318, -1000, 875, 1685, 19315, 1370, + -1000, 1611, -1000, -1000, -1000, 29765, -1000, -1000, 22165, -1000, + -1000, 6922, 29765, 239, 29765, -1000, 1308, 1594, -1000, -1000, + -1000, 1672, 18840, 29765, 1296, 1241, -1000, -1000, 511, 8368, + -15, -1000, 8368, 1305, -1000, -29, -33, 10287, 525, -1000, + -1000, -1000, -335, 1606, 15513, 1195, 1588, 54, -1000, -1000, + -1000, 1394, -1000, 1394, 1394, 1394, 1394, 236, 236, 236, + 236, -1000, -1000, -1000, -1000, -1000, 1405, 1404, -1000, 1394, + 1394, 1394, 1394, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1403, 1403, 1403, 1395, 1395, 347, -1000, 13138, 159, 29765, + 1666, 925, 180, 383, 1432, 1037, 1037, 1037, 383, -1000, + 1046, 963, -1000, 1317, -1000, -1000, 1700, -1000, -1000, 593, + 744, 737, 417, 29765, 149, 238, -1000, 363, -1000, 29765, + 1037, 698, 483, 1037, -1000, 1037, -1000, -1000, -1000, -1000, + 509, -1000, -1000, 1037, 1315, -1000, 1300, 813, 729, 762, + 727, 1315, -1000, -1000, -108, 1315, -1000, 1315, -1000, 1315, + -1000, 1315, -1000, 1315, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 602, 29765, 149, 721, -1000, 392, -1000, -1000, + 721, 721, -1000, -1000, -1000, -1000, 1050, 1049, -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, -321, 29765, -1000, 173, 609, + 223, 266, 232, 29765, 163, 1679, 208, 204, 29765, 29765, + 378, 1457, 29765, 1658, 29765, -1000, -1000, -1000, -1000, 948, + 29765, -1000, -1000, 682, 682, -1000, -1000, 29765, 682, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 682, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1047, -1000, -1000, 29765, 29765, -1000, -1000, -1000, + -1000, -1000, 70, -40, 222, -1000, -1000, -1000, -1000, 1681, + -1000, 948, 586, 787, 598, -1000, -1000, 929, -1000, -1000, + 2452, -1000, -1000, -1000, -1000, 891, 14563, 14563, 14563, 648, + 2452, 1661, 738, 2811, 532, 765, 765, 544, 544, 544, + 544, 544, 714, 714, -1000, -1000, -1000, -1000, 1086, -1000, + -1000, -1000, 1086, 11237, 11237, 1314, 1344, 500, -1000, 1393, + -1000, -1000, 1685, 1174, 1174, 909, 1012, 659, 1724, 1174, + 655, 1723, 1174, 1174, 11237, -1000, -1000, 680, -1000, 13138, + 1086, -1000, 1204, 1310, 1307, 1174, 1086, 1086, 1174, 1174, + 29765, -1000, -231, -1000, -67, 484, 1344, -1000, 21690, 1086, + 1290, -1000, 1655, -1000, -1000, 1573, -1000, 1514, 13138, 13138, + 13138, -1000, -1000, -1000, 1655, 1687, -1000, 1536, 1535, 1718, + 11237, 21215, 1611, -1000, -1000, -1000, 492, 1718, 1284, 1344, + -1000, 29765, 21215, 21215, 21215, 21215, 21215, -1000, 1492, 1483, + -1000, 1496, 1485, 1505, 29765, -1000, 1246, 1180, 18840, 239, + 1297, 21215, 29765, -1000, -1000, 21215, 29765, 6440, -1000, 1305, + -15, -39, -1000, -1000, -1000, -1000, 948, -1000, 923, 880, + 252, -1000, -1000, -1000, -1000, 2572, -1000, 366, -1000, -1000, + -1000, -1000, 548, 1671, 1586, 51, -1000, -1000, -1000, 236, + 236, -1000, -1000, 525, 763, 525, 525, 525, 1031, 1031, + -1000, -1000, -1000, -1000, -1000, 912, -1000, -1000, -1000, 910, + -1000, -1000, 1058, 1426, 159, -1000, -1000, 604, 1030, 1591, + 29765, -1000, -1000, 1193, 173, 29765, 651, 1454, -1000, 1432, + 1432, 1432, 29765, -1000, -1000, -1000, -1000, 285, 29765, 1223, + -1000, 139, -1000, 1176, 29765, -1000, 1219, 1402, 1037, 1037, + -1000, -1000, 7886, -1000, 29765, 1344, -1000, -1000, -1000, -1000, + 426, 1623, 1622, 149, 139, 525, 1037, -1000, -1000, -1000, + -1000, -1000, -324, 1192, 415, 151, 221, 29765, 29765, 29765, + 29765, 29765, 466, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 195, 390, -1000, 29765, 29765, 444, -1000, -1000, -1000, 728, + -1000, -1000, 728, -1000, -1000, -1000, -1000, -1000, -1000, 1618, + -43, -298, -1000, -295, -1000, -1000, -1000, -1000, 648, 2452, + 1273, -1000, 14563, 14563, -1000, -1000, 1174, 1174, 11237, 7886, + 1709, 1655, -1000, -1000, 396, 721, 396, 14563, 14563, -1000, + 14563, 14563, -1000, -97, 1228, 617, -1000, 13138, 986, -1000, + -1000, 14563, 14563, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 419, 403, 398, 29765, -1000, -1000, -1000, 933, + 1028, 1507, 948, 948, -1000, -1000, 29765, -1000, -1000, -1000, + -1000, 1715, 13138, -1000, 1303, -1000, 5958, 1685, 1453, 29765, + 1344, 1729, 16464, 29765, 1279, -1000, 607, 1594, 1427, 1451, + 1396, -1000, -1000, -1000, -1000, 1470, -1000, 1469, -1000, -1000, + -1000, -1000, -1000, 1180, 1718, 21215, 1272, -1000, 1272, -1000, + 480, -1000, -1000, -1000, -57, -64, -1000, -1000, -1000, 1401, + 1371, -327, 13138, 1399, 1606, -1000, -1000, -1000, -1000, 771, + 14563, 1733, -1000, 1026, -1000, -1000, 692, 669, -1000, 29765, + 1398, -1000, -1000, -1000, 525, 525, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1168, -1000, 1166, 1302, 1164, 107, -1000, + 1374, 1605, 604, 604, -1000, 905, -1000, 1037, -1000, -1000, + 401, -1000, 1656, 29765, 1447, 1446, 1445, -1000, 1699, 1292, + -1000, 29765, -1000, -1000, 29765, -1000, 1525, 159, 29765, -1000, + -1000, -1000, -1000, 238, 29765, -1000, 1181, 139, -1000, -1000, + -1000, -1000, -1000, -1000, 29765, 165, -1000, 1397, 1082, -1000, + 1428, -1000, -1000, -1000, -1000, 134, 216, -1000, 29765, 425, + 1426, 29765, -1000, -1000, -1000, 682, 682, -1000, 1603, -1000, + 1037, -1000, 14563, 2452, 2452, -1000, -1000, 1086, -1000, 1685, + -1000, 1086, 1394, 1394, -1000, 1394, 1395, -1000, 1394, 105, + 1394, 98, 1086, 1086, 2657, 2564, 2480, 1837, 1344, -90, + -1000, 948, 13138, 1780, 1011, 1344, 1344, 1344, 1143, 1025, + 236, -1000, -1000, -1000, 1713, 1698, 948, -1000, -1000, -1000, + 1642, 1293, 1248, -1000, -1000, 10762, 1147, 1520, 476, 1143, + 1709, 29765, 13138, -1000, -1000, 13138, 1386, -1000, 13138, -1000, + -1000, -1000, 1709, 1709, 1272, -1000, -1000, 541, -1000, -1000, + -1000, 13138, 1383, 595, -334, 904, 967, 29765, -1000, -1000, + 2452, -36, -1000, -1000, -1000, 1376, 14563, -1000, -1000, 236, + 1020, 236, 898, -1000, 890, -1000, -1000, -173, -1000, -1000, + 1367, 1482, -1000, -1000, 29765, -1000, -1000, 29765, 29765, 29765, + 29765, 29765, -1000, -1000, 235, -1000, 1138, 1136, -1000, -128, + -1000, -1000, 1368, -1000, -1000, -1000, 1129, -1000, -109, 1037, + 29765, 29765, 29765, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2452, -1000, 1655, -1000, -1000, 399, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 14563, 14563, 14563, 14563, 14563, + 1685, 1016, 948, 14563, 14563, 18364, 20740, 20740, 17889, 236, + 42, -1000, 13138, 13138, 664, -1000, 1344, -1000, 1313, 29765, + 1344, 29765, -1000, 1685, -1000, 948, 948, 29765, 948, 1685, + -1000, 959, 29765, 831, 238, 1695, -1000, -1000, 1134, -1000, + 29765, 1294, 525, -1000, 525, 1105, 1091, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1368, -1000, -1000, -1000, 1292, + -1000, 224, 249, -1000, 238, -1000, -135, -136, 1665, 29765, + -1000, -1000, 7886, -1000, -1000, 1360, 1431, -1000, -1000, -1000, + -1000, 1204, 1204, 1204, 1204, 133, 1086, -1000, 1204, 1204, + 1125, -1000, -1000, -1000, 1125, 1125, 484, -225, -1000, 1578, + 1562, 948, 1290, 1732, -1000, 1344, 1729, 473, 1248, -1000, + -1000, 1123, -1000, -327, 1119, -1000, -1000, 1287, -329, -1000, + 1114, -1000, -1000, -1000, -1000, -1000, 1660, 1344, -1000, -1000, + -1000, -1000, 1363, 1110, 1269, -1000, 587, 29765, 29765, -1000, + -1000, -1000, -1000, 1086, 192, -112, -1000, -1000, -1000, 20265, + -1000, -1000, -1000, -1000, 42, 297, -1000, 1567, 1562, -1000, + 1693, 1570, 1692, -1000, 29765, 1248, 29765, -1000, -334, -327, + 781, 1440, 580, 1363, 13613, 233, -1000, 7886, 5476, 1100, + -1000, -1000, 1504, -106, -121, -1000, -1000, 1546, 1552, 1552, + 1567, -1000, 1691, 1689, -1000, 1008, 1688, 964, 1211, -1000, + 238, -334, 1295, 1371, 1434, -1000, 1722, -1000, -1000, -1000, + 766, 949, -1000, -1000, -1000, 233, 1204, 1086, -1000, -9, + -1000, -1000, -1000, -1000, -1000, 1428, -1000, 1497, -1000, 1544, + 884, -1000, -1000, -1000, -1000, 945, 930, -1000, 881, -1000, + -1000, 238, 13138, 1205, -1000, 1731, 543, 543, -1000, -1000, + -1000, -1000, -1000, 320, -1000, -1000, -109, -110, -1000, 873, + -1000, -1000, -1000, -1000, -1000, -1000, 956, 29765, -1000, -1000, + -1000, 309, 940, -1000, 166, -1000, -118, -1000, -1000, -342, + 1094, -1000, -1000, -1000, -1000, -123, -1000, 802, -342, -1000, + -1000, -1000, +} + +var yyPgo = [...]int{ + 0, 17, 2094, 12, 1, 11, 2091, 2088, 37, 103, + 102, 2085, 2084, 2075, 2063, 142, 140, 139, 2062, 2061, + 2060, 2059, 2058, 2056, 2054, 2053, 2051, 2049, 2048, 2046, + 73, 165, 56, 59, 152, 2037, 2036, 43, 2035, 2033, + 2032, 136, 130, 636, 2031, 132, 65, 2030, 2029, 2028, + 2026, 2024, 2017, 2016, 2013, 1995, 1994, 1992, 1991, 1989, + 1971, 211, 1970, 1968, 8, 1967, 45, 1965, 1964, 1963, + 1962, 1961, 14, 1960, 1958, 106, 1956, 1955, 1954, 122, + 1953, 1951, 71, 169, 72, 89, 1950, 1949, 83, 137, + 1948, 78, 113, 1947, 1945, 3, 1942, 66, 110, 82, + 1940, 48, 1939, 1937, 67, 1929, 1928, 1913, 91, 1912, + 1911, 3436, 1908, 84, 100, 20, 64, 1907, 1905, 1904, + 1900, 47, 1014, 1899, 1898, 33, 1897, 1896, 146, 1895, + 105, 32, 1894, 23, 21, 28, 1891, 104, 1887, 76, + 41, 1886, 107, 1885, 1884, 1883, 1882, 53, 1881, 90, + 119, 101, 1878, 1877, 1876, 15, 19, 1874, 1873, 1872, + 1871, 1870, 1869, 13, 1867, 10, 1866, 35, 1864, 2, + 27, 29, 88, 114, 34, 16, 1862, 125, 1860, 50, + 127, 79, 128, 1858, 1856, 1855, 954, 166, 1854, 1851, + 36, 1850, 111, 112, 1848, 174, 1845, 1837, 74, 1332, + 1730, 24, 123, 1836, 1835, 2684, 68, 94, 39, 1834, + 85, 1833, 1830, 1829, 145, 135, 61, 895, 63, 1828, + 1824, 1821, 1820, 1818, 1817, 1816, 131, 93, 31, 126, + 40, 1812, 1795, 1794, 86, 51, 1793, 121, 120, 80, + 150, 1792, 129, 124, 75, 1791, 46, 1789, 1788, 1785, + 1784, 58, 1782, 1780, 1779, 1775, 115, 108, 81, 44, + 1774, 57, 77, 118, 117, 42, 6, 30, 143, 18, + 1773, 4, 0, 1770, 7, 133, 163, 109, 1769, 1768, + 5, 1767, 9, 1765, 1764, 99, 1763, 1762, 1759, 26, + 22, 25, 1756, 1755, 3361, 1739, 134, 1752, 138, +} + +//line sql.y:5457 +type yySymType struct { + union interface{} + empty struct{} + LengthScaleOption LengthScaleOption + tableName TableName + tableIdent TableIdent + str string + strs []string + vindexParam VindexParam + colIdent ColIdent + joinCondition JoinCondition + collateAndCharset CollateAndCharset + columnType ColumnType + yys int +} + +func (st *yySymType) ReferenceActionUnion() ReferenceAction { + v, _ := st.union.(ReferenceAction) + return v +} + +func (st *yySymType) aliasedTableNameUnion() *AliasedTableExpr { + v, _ := st.union.(*AliasedTableExpr) + return v +} + +func (st *yySymType) alterDatabaseUnion() *AlterDatabase { + v, _ := st.union.(*AlterDatabase) + return v +} + +func (st *yySymType) alterMigrationUnion() *AlterMigration { + v, _ := st.union.(*AlterMigration) + return v +} + +func (st *yySymType) alterOptionUnion() AlterOption { + v, _ := st.union.(AlterOption) + return v +} + +func (st *yySymType) alterOptionsUnion() []AlterOption { + v, _ := st.union.([]AlterOption) + return v +} + +func (st *yySymType) alterTableUnion() *AlterTable { + v, _ := st.union.(*AlterTable) + return v +} + +func (st *yySymType) boolValUnion() BoolVal { + v, _ := st.union.(BoolVal) + return v +} + +func (st *yySymType) booleanUnion() bool { + v, _ := st.union.(bool) + return v +} + +func (st *yySymType) characteristicUnion() Characteristic { + v, _ := st.union.(Characteristic) + return v +} + +func (st *yySymType) characteristicsUnion() []Characteristic { + v, _ := st.union.([]Characteristic) + return v +} + +func (st *yySymType) colKeyOptUnion() ColumnKeyOption { + v, _ := st.union.(ColumnKeyOption) + return v +} + +func (st *yySymType) colNameUnion() *ColName { + v, _ := st.union.(*ColName) + return v +} + +func (st *yySymType) colTupleUnion() ColTuple { + v, _ := st.union.(ColTuple) + return v +} + +func (st *yySymType) collateAndCharsetsUnion() []CollateAndCharset { + v, _ := st.union.([]CollateAndCharset) + return v +} + +func (st *yySymType) columnDefinitionUnion() *ColumnDefinition { + v, _ := st.union.(*ColumnDefinition) + return v +} + +func (st *yySymType) columnDefinitionsUnion() []*ColumnDefinition { + v, _ := st.union.([]*ColumnDefinition) + return v +} + +func (st *yySymType) columnStorageUnion() ColumnStorage { + v, _ := st.union.(ColumnStorage) + return v +} + +func (st *yySymType) columnTypeOptionsUnion() *ColumnTypeOptions { + v, _ := st.union.(*ColumnTypeOptions) + return v +} + +func (st *yySymType) columnsUnion() Columns { + v, _ := st.union.(Columns) + return v +} + +func (st *yySymType) comparisonExprOperatorUnion() ComparisonExprOperator { + v, _ := st.union.(ComparisonExprOperator) + return v +} + +func (st *yySymType) constraintDefinitionUnion() *ConstraintDefinition { + v, _ := st.union.(*ConstraintDefinition) + return v +} + +func (st *yySymType) constraintInfoUnion() ConstraintInfo { + v, _ := st.union.(ConstraintInfo) + return v +} + +func (st *yySymType) convertTypeUnion() *ConvertType { + v, _ := st.union.(*ConvertType) + return v +} + +func (st *yySymType) createDatabaseUnion() *CreateDatabase { + v, _ := st.union.(*CreateDatabase) + return v +} + +func (st *yySymType) createTableUnion() *CreateTable { + v, _ := st.union.(*CreateTable) + return v +} + +func (st *yySymType) derivedTableUnion() *DerivedTable { + v, _ := st.union.(*DerivedTable) + return v +} + +func (st *yySymType) explainTypeUnion() ExplainType { + v, _ := st.union.(ExplainType) + return v +} + +func (st *yySymType) exprUnion() Expr { + v, _ := st.union.(Expr) + return v +} + +func (st *yySymType) exprOrColumnsUnion() *ExprOrColumns { + v, _ := st.union.(*ExprOrColumns) + return v +} + +func (st *yySymType) exprsUnion() Exprs { + v, _ := st.union.(Exprs) + return v +} + +func (st *yySymType) ignoreUnion() Ignore { + v, _ := st.union.(Ignore) + return v +} + +func (st *yySymType) indexColumnUnion() *IndexColumn { + v, _ := st.union.(*IndexColumn) + return v +} + +func (st *yySymType) indexColumnsUnion() []*IndexColumn { + v, _ := st.union.([]*IndexColumn) + return v +} + +func (st *yySymType) indexDefinitionUnion() *IndexDefinition { + v, _ := st.union.(*IndexDefinition) + return v +} + +func (st *yySymType) indexHintsUnion() *IndexHints { + v, _ := st.union.(*IndexHints) + return v +} + +func (st *yySymType) indexInfoUnion() *IndexInfo { + v, _ := st.union.(*IndexInfo) + return v +} + +func (st *yySymType) indexOptionUnion() *IndexOption { + v, _ := st.union.(*IndexOption) + return v +} + +func (st *yySymType) indexOptionsUnion() []*IndexOption { + v, _ := st.union.([]*IndexOption) + return v +} + +func (st *yySymType) insUnion() *Insert { + v, _ := st.union.(*Insert) + return v +} + +func (st *yySymType) insertActionUnion() InsertAction { + v, _ := st.union.(InsertAction) + return v +} + +func (st *yySymType) isExprOperatorUnion() IsExprOperator { + v, _ := st.union.(IsExprOperator) + return v +} + +func (st *yySymType) isolationLevelUnion() IsolationLevel { + v, _ := st.union.(IsolationLevel) + return v +} + +func (st *yySymType) joinTypeUnion() JoinType { + v, _ := st.union.(JoinType) + return v +} + +func (st *yySymType) limitUnion() *Limit { + v, _ := st.union.(*Limit) + return v +} + +func (st *yySymType) literalUnion() *Literal { + v, _ := st.union.(*Literal) + return v +} + +func (st *yySymType) lockUnion() Lock { + v, _ := st.union.(Lock) + return v +} + +func (st *yySymType) lockTypeUnion() LockType { + v, _ := st.union.(LockType) + return v +} + +func (st *yySymType) matchExprOptionUnion() MatchExprOption { + v, _ := st.union.(MatchExprOption) + return v +} + +func (st *yySymType) optLikeUnion() *OptLike { + v, _ := st.union.(*OptLike) + return v +} + +func (st *yySymType) optValUnion() Expr { + v, _ := st.union.(Expr) + return v +} + +func (st *yySymType) orderUnion() *Order { + v, _ := st.union.(*Order) + return v +} + +func (st *yySymType) orderByUnion() OrderBy { + v, _ := st.union.(OrderBy) + return v +} + +func (st *yySymType) orderDirectionUnion() OrderDirection { + v, _ := st.union.(OrderDirection) + return v +} + +func (st *yySymType) partDefUnion() *PartitionDefinition { + v, _ := st.union.(*PartitionDefinition) + return v +} + +func (st *yySymType) partDefsUnion() []*PartitionDefinition { + v, _ := st.union.([]*PartitionDefinition) + return v +} + +func (st *yySymType) partSpecUnion() *PartitionSpec { + v, _ := st.union.(*PartitionSpec) + return v +} + +func (st *yySymType) partSpecsUnion() []*PartitionSpec { + v, _ := st.union.([]*PartitionSpec) + return v +} + +func (st *yySymType) partitionOptionUnion() *PartitionOption { + v, _ := st.union.(*PartitionOption) + return v +} + +func (st *yySymType) partitionsUnion() Partitions { + v, _ := st.union.(Partitions) + return v +} + +func (st *yySymType) referenceDefinitionUnion() *ReferenceDefinition { + v, _ := st.union.(*ReferenceDefinition) + return v +} + +func (st *yySymType) renameTablePairsUnion() []*RenameTablePair { + v, _ := st.union.([]*RenameTablePair) + return v +} + +func (st *yySymType) revertMigrationUnion() *RevertMigration { + v, _ := st.union.(*RevertMigration) + return v +} + +func (st *yySymType) scopeUnion() Scope { + v, _ := st.union.(Scope) + return v +} + +func (st *yySymType) selStmtUnion() SelectStatement { + v, _ := st.union.(SelectStatement) + return v +} + +func (st *yySymType) selectExprUnion() SelectExpr { + v, _ := st.union.(SelectExpr) + return v +} + +func (st *yySymType) selectExprsUnion() SelectExprs { + v, _ := st.union.(SelectExprs) + return v +} + +func (st *yySymType) selectIntoUnion() *SelectInto { + v, _ := st.union.(*SelectInto) + return v +} + +func (st *yySymType) setExprUnion() *SetExpr { + v, _ := st.union.(*SetExpr) + return v +} + +func (st *yySymType) setExprsUnion() SetExprs { + v, _ := st.union.(SetExprs) + return v +} + +func (st *yySymType) showFilterUnion() *ShowFilter { + v, _ := st.union.(*ShowFilter) + return v +} + +func (st *yySymType) statementUnion() Statement { + v, _ := st.union.(Statement) + return v +} + +func (st *yySymType) subPartitionUnion() *SubPartition { + v, _ := st.union.(*SubPartition) + return v +} + +func (st *yySymType) subqueryUnion() *Subquery { + v, _ := st.union.(*Subquery) + return v +} + +func (st *yySymType) tableAndLockTypeUnion() *TableAndLockType { + v, _ := st.union.(*TableAndLockType) + return v +} + +func (st *yySymType) tableAndLockTypesUnion() TableAndLockTypes { + v, _ := st.union.(TableAndLockTypes) + return v +} + +func (st *yySymType) tableExprUnion() TableExpr { + v, _ := st.union.(TableExpr) + return v +} + +func (st *yySymType) tableExprsUnion() TableExprs { + v, _ := st.union.(TableExprs) + return v +} + +func (st *yySymType) tableNamesUnion() TableNames { + v, _ := st.union.(TableNames) + return v +} + +func (st *yySymType) tableOptionUnion() *TableOption { + v, _ := st.union.(*TableOption) + return v +} + +func (st *yySymType) tableOptionsUnion() TableOptions { + v, _ := st.union.(TableOptions) + return v +} + +func (st *yySymType) tableSpecUnion() *TableSpec { + v, _ := st.union.(*TableSpec) + return v +} + +func (st *yySymType) updateExprUnion() *UpdateExpr { + v, _ := st.union.(*UpdateExpr) + return v +} + +func (st *yySymType) updateExprsUnion() UpdateExprs { + v, _ := st.union.(UpdateExprs) + return v +} + +func (st *yySymType) valTupleUnion() ValTuple { + v, _ := st.union.(ValTuple) + return v +} + +func (st *yySymType) valuesUnion() Values { + v, _ := st.union.(Values) + return v +} + +func (st *yySymType) vindexParamsUnion() []VindexParam { + v, _ := st.union.([]VindexParam) + return v +} + +func (st *yySymType) whenUnion() *When { + v, _ := st.union.(*When) + return v +} + +func (st *yySymType) whensUnion() []*When { + v, _ := st.union.([]*When) + return v +} + +var yyR1 = [...]int{ + 0, 292, 293, 293, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 272, 272, 272, 275, 275, + 26, 56, 8, 8, 8, 8, 7, 7, 13, 14, + 9, 10, 10, 15, 15, 68, 68, 16, 17, 17, + 17, 17, 296, 296, 106, 106, 104, 104, 105, 105, + 172, 172, 18, 19, 19, 182, 182, 181, 181, 181, + 183, 183, 183, 183, 217, 217, 20, 20, 20, 20, + 20, 80, 80, 274, 274, 273, 271, 271, 270, 270, + 269, 28, 29, 38, 38, 38, 38, 39, 40, 276, + 276, 247, 44, 44, 43, 43, 43, 43, 45, 45, + 42, 42, 41, 41, 249, 249, 236, 236, 248, 248, + 248, 248, 248, 248, 248, 235, 235, 94, 94, 153, + 153, 153, 153, 153, 153, 153, 153, 288, 288, 154, + 154, 154, 154, 154, 154, 289, 289, 289, 289, 219, + 219, 219, 219, 222, 222, 220, 220, 220, 220, 220, + 220, 220, 220, 220, 221, 221, 221, 221, 221, 223, + 223, 223, 223, 223, 224, 224, 224, 224, 224, 224, + 224, 224, 224, 224, 224, 224, 224, 224, 224, 225, + 225, 225, 225, 225, 225, 225, 225, 234, 234, 226, + 226, 229, 229, 230, 230, 230, 231, 231, 231, 232, + 232, 227, 227, 227, 227, 228, 228, 228, 237, 261, + 261, 260, 260, 258, 258, 258, 258, 246, 246, 255, + 255, 255, 255, 255, 245, 245, 241, 241, 241, 242, + 242, 243, 243, 240, 240, 244, 244, 257, 257, 256, + 238, 238, 239, 239, 263, 290, 290, 290, 290, 291, + 291, 264, 281, 282, 280, 280, 280, 280, 280, 66, + 66, 66, 194, 194, 194, 253, 253, 252, 252, 252, + 254, 254, 251, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, + 251, 251, 251, 251, 251, 251, 251, 251, 251, 251, + 189, 189, 189, 279, 279, 279, 279, 279, 279, 278, + 278, 278, 250, 250, 250, 277, 277, 46, 46, 140, + 140, 35, 35, 35, 35, 35, 35, 34, 34, 34, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, + 30, 30, 36, 36, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 70, 70, 70, 70, 72, 72, 72, 266, + 266, 1, 1, 5, 5, 2, 2, 71, 71, 3, + 3, 4, 4, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 268, 268, 268, 268, 268, + 268, 268, 268, 268, 268, 233, 233, 233, 265, 265, + 267, 267, 22, 27, 27, 23, 23, 23, 23, 24, + 24, 47, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, + 48, 48, 48, 48, 48, 48, 48, 48, 48, 283, + 283, 188, 188, 196, 196, 187, 187, 210, 210, 210, + 190, 190, 190, 191, 191, 287, 287, 287, 49, 49, + 51, 51, 52, 53, 53, 212, 212, 213, 213, 54, + 55, 67, 67, 67, 67, 67, 67, 69, 69, 69, + 12, 12, 12, 12, 63, 63, 63, 11, 11, 50, + 50, 57, 284, 284, 285, 286, 286, 286, 286, 58, + 60, 25, 25, 25, 25, 25, 25, 87, 87, 75, + 75, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 81, 81, 81, 76, 76, 297, 61, 62, 62, + 79, 79, 79, 73, 73, 73, 78, 78, 78, 84, + 84, 86, 86, 86, 86, 86, 88, 88, 88, 88, + 88, 88, 88, 83, 83, 85, 85, 85, 85, 203, + 203, 203, 202, 202, 96, 96, 97, 97, 98, 98, + 99, 99, 99, 138, 114, 114, 170, 170, 169, 169, + 171, 171, 171, 171, 173, 173, 100, 100, 100, 100, + 101, 101, 102, 102, 103, 103, 211, 211, 208, 208, + 208, 207, 207, 107, 107, 107, 109, 108, 108, 108, + 108, 110, 110, 112, 112, 111, 111, 113, 115, 115, + 115, 115, 115, 116, 116, 95, 95, 95, 95, 95, + 95, 95, 95, 185, 185, 118, 118, 117, 117, 117, + 117, 117, 117, 117, 117, 117, 117, 129, 129, 129, + 129, 129, 129, 119, 119, 119, 119, 119, 119, 119, + 82, 82, 130, 130, 130, 137, 131, 131, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 122, 122, 122, 122, 122, 122, 122, 122, + 122, 122, 126, 126, 126, 126, 124, 124, 124, 124, + 124, 124, 124, 124, 124, 124, 124, 124, 124, 124, + 125, 125, 125, 125, 125, 125, 125, 125, 125, 125, + 125, 125, 125, 125, 125, 125, 298, 298, 128, 127, + 127, 127, 127, 127, 127, 127, 77, 77, 77, 77, + 77, 216, 216, 216, 218, 218, 218, 218, 218, 218, + 218, 218, 218, 218, 218, 218, 218, 143, 143, 74, + 74, 141, 141, 142, 144, 144, 139, 139, 139, 121, + 121, 121, 121, 121, 121, 121, 121, 123, 123, 123, + 145, 145, 146, 146, 147, 147, 148, 148, 149, 150, + 150, 150, 151, 151, 151, 151, 37, 37, 37, 37, + 37, 32, 32, 32, 32, 33, 33, 33, 89, 89, + 89, 89, 91, 91, 90, 90, 64, 64, 65, 65, + 65, 92, 92, 93, 93, 93, 93, 167, 167, 167, + 152, 152, 152, 152, 159, 159, 159, 155, 155, 157, + 157, 157, 158, 158, 158, 156, 164, 164, 166, 166, + 165, 165, 161, 161, 162, 162, 163, 163, 163, 160, + 160, 120, 120, 120, 120, 120, 168, 168, 168, 168, + 174, 174, 133, 133, 135, 135, 134, 136, 175, 175, + 179, 176, 176, 180, 180, 180, 180, 180, 177, 177, + 178, 178, 204, 204, 204, 184, 184, 195, 195, 192, + 192, 193, 193, 186, 186, 197, 197, 197, 59, 132, + 132, 262, 262, 259, 200, 200, 201, 201, 205, 205, + 209, 209, 206, 206, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 198, 198, 198, 198, 198, + 198, 198, 198, 198, 198, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, + 199, 199, 199, 294, 295, 214, 215, 215, 215, +} + +var yyR2 = [...]int{ + 0, 2, 0, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 1, 0, 1, + 2, 3, 5, 6, 6, 7, 4, 6, 5, 7, + 8, 1, 3, 7, 8, 1, 1, 9, 9, 8, + 7, 7, 1, 1, 1, 3, 1, 3, 1, 3, + 0, 4, 3, 5, 4, 1, 3, 3, 2, 2, + 2, 2, 2, 1, 1, 1, 3, 2, 6, 12, + 2, 0, 2, 0, 2, 1, 0, 2, 1, 3, + 3, 6, 4, 7, 8, 8, 8, 6, 3, 1, + 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, + 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, + 3, 4, 3, 3, 3, 4, 9, 0, 2, 0, + 2, 3, 3, 4, 2, 3, 2, 1, 1, 0, + 2, 2, 3, 3, 2, 2, 1, 2, 1, 3, + 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 2, 2, 2, 2, 1, + 2, 2, 2, 2, 4, 4, 2, 2, 3, 3, + 3, 3, 1, 1, 1, 1, 1, 6, 6, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 3, 0, + 3, 0, 5, 0, 3, 5, 0, 1, 1, 0, + 1, 0, 2, 2, 2, 0, 2, 2, 5, 0, + 1, 1, 2, 1, 3, 2, 3, 0, 1, 4, + 3, 3, 4, 2, 0, 2, 1, 1, 1, 1, + 1, 0, 1, 1, 1, 0, 1, 1, 3, 3, + 3, 1, 3, 1, 7, 5, 6, 6, 7, 0, + 1, 5, 3, 3, 1, 1, 2, 2, 2, 0, + 1, 1, 0, 1, 2, 0, 1, 1, 3, 2, + 1, 2, 3, 3, 4, 4, 3, 3, 3, 3, + 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 4, 5, + 0, 2, 2, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, + 2, 0, 1, 5, 1, 3, 7, 1, 3, 3, + 1, 2, 2, 2, 5, 5, 5, 6, 6, 5, + 5, 2, 2, 2, 2, 3, 3, 3, 4, 1, + 3, 5, 1, 3, 3, 3, 3, 3, 3, 3, + 3, 2, 2, 2, 4, 4, 2, 11, 3, 6, + 8, 6, 6, 6, 13, 8, 6, 10, 5, 5, + 5, 5, 0, 10, 11, 7, 0, 8, 9, 0, + 1, 0, 1, 0, 3, 1, 1, 3, 4, 0, + 2, 0, 2, 5, 3, 7, 4, 4, 4, 4, + 3, 3, 3, 7, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 2, 0, 2, 2, 1, 3, + 8, 8, 3, 3, 5, 7, 7, 6, 5, 3, + 2, 3, 3, 3, 7, 3, 3, 3, 3, 4, + 7, 5, 2, 4, 4, 4, 4, 4, 5, 5, + 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, + 4, 2, 4, 2, 4, 5, 4, 4, 4, 4, + 4, 3, 3, 5, 2, 3, 3, 3, 3, 1, + 1, 0, 1, 0, 1, 1, 1, 0, 2, 2, + 0, 2, 2, 0, 2, 0, 1, 1, 2, 1, + 1, 2, 1, 1, 5, 0, 1, 0, 1, 2, + 3, 0, 3, 3, 3, 3, 1, 1, 1, 1, + 1, 1, 1, 1, 0, 1, 1, 3, 3, 2, + 2, 3, 1, 3, 2, 1, 2, 1, 2, 2, + 4, 3, 3, 6, 4, 7, 6, 1, 3, 2, + 2, 2, 2, 1, 1, 1, 3, 2, 1, 1, + 1, 0, 1, 1, 0, 3, 0, 2, 0, 2, + 1, 2, 2, 0, 1, 1, 0, 1, 1, 0, + 1, 0, 1, 2, 3, 4, 1, 1, 1, 1, + 1, 1, 1, 1, 3, 1, 2, 3, 5, 0, + 1, 2, 1, 1, 0, 2, 1, 3, 1, 1, + 1, 3, 3, 3, 3, 7, 0, 3, 1, 3, + 1, 1, 3, 3, 1, 3, 4, 4, 4, 3, + 2, 4, 0, 1, 0, 2, 0, 1, 0, 1, + 2, 1, 1, 1, 2, 2, 1, 2, 3, 2, + 3, 2, 2, 2, 1, 1, 3, 3, 0, 5, + 4, 5, 5, 0, 2, 1, 3, 3, 3, 2, + 3, 1, 2, 0, 3, 1, 1, 3, 3, 4, + 4, 5, 3, 4, 5, 6, 2, 1, 2, 1, + 2, 1, 2, 1, 1, 1, 1, 1, 1, 1, + 0, 2, 1, 1, 1, 3, 1, 3, 1, 1, + 1, 1, 1, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 3, 1, 1, + 1, 1, 4, 5, 5, 6, 4, 4, 6, 6, + 6, 8, 8, 8, 8, 9, 8, 5, 4, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 8, 8, 0, 2, 3, 4, + 4, 4, 4, 4, 4, 4, 0, 3, 4, 7, + 3, 1, 1, 1, 2, 3, 3, 1, 2, 2, + 1, 2, 1, 2, 2, 1, 2, 0, 1, 0, + 2, 1, 2, 4, 0, 2, 1, 3, 5, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, + 0, 3, 0, 2, 0, 3, 1, 3, 2, 0, + 1, 1, 0, 2, 4, 4, 0, 2, 2, 1, + 1, 3, 3, 3, 3, 3, 3, 3, 0, 3, + 3, 3, 0, 3, 1, 1, 0, 4, 0, 1, + 1, 0, 3, 1, 3, 2, 1, 0, 2, 4, + 0, 9, 3, 5, 0, 3, 3, 0, 1, 0, + 2, 2, 0, 2, 2, 2, 0, 2, 1, 2, + 3, 3, 0, 2, 1, 2, 3, 4, 3, 0, + 1, 2, 1, 5, 4, 4, 1, 3, 3, 5, + 0, 5, 1, 3, 1, 2, 3, 1, 1, 3, + 3, 1, 3, 3, 3, 3, 3, 2, 1, 2, + 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, + 2, 0, 3, 0, 1, 0, 1, 1, 5, 0, + 1, 0, 1, 2, 1, 1, 1, 1, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 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, +} + +var yyChk = [...]int{ + -1000, -292, -6, -8, -13, -14, -15, -16, -17, -18, + -19, -20, -21, -22, -23, -24, -47, -48, -49, -51, + -52, -53, -54, -55, -11, -50, -25, -26, -56, -57, + -58, -59, -60, -9, -294, 6, 7, 8, -68, 10, + 11, 30, -28, -38, 160, -39, -29, 161, -40, 163, + 162, 198, 164, 191, 72, 237, 238, 240, 241, 242, + 243, -69, 196, 197, 166, 34, 43, 31, 32, 35, + 169, 82, 9, 341, 193, 192, 26, -293, 487, -79, + 5, -147, 16, -8, -61, -297, -61, -61, -61, -61, + -61, -61, -247, -249, 82, 133, 82, -61, -44, -43, + -42, -41, -45, 29, -35, -36, -268, -34, -31, 165, + 162, 206, 103, 104, 198, 199, 200, 164, 182, 197, + 201, 196, 215, -30, 78, 31, 354, 357, -254, 161, + 167, 168, 342, 106, 105, 73, 163, -251, 287, 458, + -45, 460, 96, 98, 459, 42, 172, 461, 462, 463, + 464, 181, 465, 466, 467, 468, 474, 475, 476, 477, + 107, 5, -61, -209, -205, -272, -199, 85, 86, 87, + 351, 184, 385, 386, 231, 78, 39, 287, 458, 237, + 251, 245, 272, 264, 352, 387, 234, 185, 219, 455, + 262, 111, 460, 388, 199, 292, 293, 294, 96, 240, + 328, 473, 236, 389, 471, 98, 459, 77, 49, 42, + 194, 260, 256, 461, 220, 390, 362, 213, 106, 103, + 480, 34, 254, 48, 28, 470, 105, 47, 462, 124, + 391, 463, 296, 277, 449, 46, 297, 200, 392, 81, + 356, 457, 298, 255, 299, 230, 469, 166, 393, 441, + 300, 301, 450, 394, 278, 282, 395, 320, 302, 50, + 396, 397, 451, 104, 398, 76, 464, 249, 250, 399, + 228, 183, 322, 276, 181, 33, 303, 353, 232, 56, + 207, 323, 44, 280, 484, 43, 445, 400, 448, 275, + 271, 51, 401, 402, 403, 404, 465, 274, 248, 270, + 479, 225, 466, 60, 168, 284, 283, 285, 214, 319, + 267, 405, 406, 407, 188, 79, 408, 257, 19, 409, + 410, 304, 221, 411, 54, 412, 413, 326, 197, 414, + 52, 467, 37, 202, 481, 468, 415, 416, 417, 418, + 419, 306, 420, 305, 279, 281, 209, 307, 355, 421, + 253, 201, 472, 422, 189, 456, 203, 206, 196, 327, + 190, 423, 424, 425, 426, 427, 235, 428, 429, 241, + 474, 41, 430, 431, 432, 433, 229, 224, 321, 330, + 59, 80, 289, 434, 454, 247, 222, 435, 238, 53, + 475, 476, 477, 216, 478, 7, 485, 486, 309, 107, + 226, 227, 45, 268, 208, 436, 437, 258, 259, 273, + 246, 269, 239, 442, 210, 310, 198, 438, 329, 223, + 290, 359, 215, 311, 453, 358, 266, 263, 217, 439, + 312, 173, 211, 212, 440, 443, 313, 314, 316, 317, + 233, 315, 318, 218, 357, 244, 261, 291, 171, -61, + 171, -111, -205, 171, -177, 293, -196, 295, 308, 303, + 313, 301, -188, 304, 306, 209, -287, 320, 171, 310, + 160, 151, 296, 305, 314, 315, 233, 318, 218, -283, + -272, 463, 478, 111, 265, 300, 298, 321, 445, 317, + 316, -205, 239, -212, 244, -200, -272, -199, 242, -111, + -67, 441, 164, -214, -214, -81, 445, 447, -131, -95, + -117, 117, -122, 29, 24, -121, -118, -139, -136, -137, + 151, 152, 154, 153, 155, 140, 141, 148, 118, 156, + -126, -124, -125, -127, 89, 88, 97, 90, 91, 92, + 93, 99, 100, 101, -200, -205, -134, -294, 66, 67, + 342, 343, 344, 345, 350, 346, 120, 55, 337, 331, + 340, 339, 338, 335, 336, 333, 334, 348, 349, 176, + 332, 170, 146, 341, -272, -199, 42, 309, 309, -111, + -61, -10, -9, -294, 6, 21, 22, -151, 18, 17, + -295, 84, -73, -86, 61, 62, -88, 22, 36, 65, + 63, 21, -62, -85, 142, -95, -205, -85, -186, 175, + -186, -186, -176, -217, 239, -180, 321, 320, -201, -178, + -200, -198, -177, 319, 165, 360, 116, 23, 25, 119, + 151, 17, 120, 35, 167, 265, 182, 150, 178, 342, + 160, 70, 361, 333, 334, 331, 337, 344, 345, 332, + 295, 29, 11, 363, 26, 192, 22, 36, 144, 162, + 123, 195, 24, 193, 101, 366, 20, 73, 187, 12, + 180, 38, 14, 367, 368, 15, 176, 175, 135, 172, + 68, 9, 156, 27, 132, 64, 369, 113, 370, 371, + 372, 373, 66, 133, 18, 482, 335, 336, 31, 446, + 374, 350, 204, 146, 71, 57, 447, 117, 375, 376, + 99, 377, 102, 74, 452, 114, 16, 69, 40, 378, + 205, 379, 177, 483, 380, 324, 381, 134, 163, 341, + 67, 382, 170, 308, 6, 347, 30, 191, 179, 109, + 65, 383, 171, 122, 348, 349, 174, 100, 5, 112, + 32, 10, 72, 75, 338, 339, 340, 55, 108, 354, + 121, 13, 384, 325, 115, 111, -70, 205, -248, 133, + -235, -239, -200, 186, -264, 182, -111, -257, -256, -200, + -80, -195, 172, 180, 179, 112, -276, 114, 226, 332, + 170, -41, -42, -177, 150, 203, 83, 83, -239, -238, + -237, -277, 205, 186, -263, -255, 178, 187, -245, 179, + 180, -240, 172, 113, -277, -240, 177, 187, 205, 205, + 107, 205, 107, 205, 205, 205, 205, 205, 205, 205, + 205, 205, 202, -246, 125, -246, 358, 358, -251, -277, + -277, -277, 174, 33, 33, -197, -240, 174, 23, -246, + -246, -177, 150, -246, -246, -246, -246, 213, 213, -246, + -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, + -246, -246, -246, -246, 171, -276, -89, 318, 233, 78, + -43, 215, -27, -111, -195, 172, 173, -276, -111, 157, + -111, -190, 133, 13, -190, -187, 309, 307, 294, 299, + -190, -190, -190, -190, 216, 292, -241, 172, 33, 183, + 309, 216, 292, 216, 217, 216, 217, 302, 312, 216, + -210, 12, 135, 332, 297, 301, 209, 171, 210, 173, + 311, -272, 448, 217, -210, 89, 309, 212, -190, -215, + -294, -201, 265, -215, -215, 30, 174, -200, -63, -200, + 89, -12, -8, -16, -15, -17, 125, -87, 309, -75, + 151, 463, 449, 450, 451, 448, 306, 456, 454, 452, + 216, 453, 83, 116, 114, 115, 132, -95, -119, 135, + 117, 133, 134, 119, 137, 136, 147, 140, 141, 142, + 143, 144, 145, 146, 138, 139, 150, 125, 126, 127, + 128, 129, 130, 131, -185, -294, -137, -294, 158, 159, + -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, + -294, 157, -7, -131, -9, -294, -294, -294, -294, -294, + -294, -294, -294, -143, -95, -294, -298, -294, -298, -128, + -294, -298, -128, -298, -128, -298, -298, -128, -298, -128, + -298, -298, -128, -294, -294, -294, -294, -294, -294, -294, + -214, -284, -285, -114, -111, -294, 233, -147, -8, -61, + -167, 20, 31, -95, -148, -149, -95, -147, 57, -83, + -85, -88, 61, 62, 95, 12, -203, -202, 23, -200, + 89, 157, 12, -112, 27, -111, -97, -98, -99, -100, + -114, -138, -294, 12, -104, -105, -111, -113, -205, 83, + 239, -180, -217, -182, -181, 322, 324, 125, -204, -200, + 89, 29, 17, 84, 83, -111, -219, -222, -224, -223, + -225, -220, -221, 262, 263, 151, 266, 268, 269, 270, + 271, 272, 273, 274, 275, 276, 277, 30, 194, 258, + 259, 260, 261, 278, 279, 280, 281, 282, 283, 284, + 285, 245, 264, 352, 246, 247, 248, 249, 250, 251, + 253, 254, 255, 256, 257, -275, -272, 82, 84, 83, + -226, 82, -89, 171, -272, 172, 172, 172, -61, 341, + -246, -246, 202, -34, -31, -268, 16, -30, -31, 165, + 103, 104, 162, 82, -235, 82, -244, -275, -272, 82, + 113, 177, 112, -243, -240, -243, -244, -272, -139, -200, + -205, -272, 113, 113, -173, -200, -173, -173, 21, -173, + 21, -173, 21, 90, -200, -173, 21, -173, 21, -173, + 21, -173, 21, -173, 21, 29, 76, 77, 29, 79, + 80, 81, -139, -139, -235, -177, -111, -272, 90, 90, + -246, -246, 90, 89, 89, 89, -246, -246, 90, 89, + -207, -205, 89, -278, 188, 230, 232, 90, 90, 90, + 90, 29, 89, -279, 29, 470, 469, 471, 472, 473, + 90, 29, 90, 29, 90, -200, 82, -111, -92, 220, + 160, 162, 165, 74, 89, 234, 125, 42, 83, 174, + 171, -272, -192, 176, -192, -206, -205, -198, 89, -95, + -242, 12, 135, -210, -210, -190, -111, -242, -210, -190, + -111, -190, -190, -190, -190, -210, -210, -210, -190, -205, + -205, -111, -111, -111, -111, -111, -111, -111, -215, -215, + -215, -191, 133, -190, 448, 74, -213, 242, 276, 442, + 443, 444, 83, 354, -104, 448, 448, 448, 448, 448, + 448, -95, -95, -95, -95, -129, 99, 117, 100, 101, + -122, -130, -134, -137, 94, 135, 133, 134, 119, -122, + -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, + -122, -122, -122, -122, -216, -272, 89, 151, -272, -121, + -121, -200, -84, 22, 36, -83, -201, -206, -198, -79, + -295, -295, -147, -83, -83, -95, -95, -139, 89, -83, + -139, 89, -83, -83, -78, 22, 36, -141, -142, 121, + -139, -295, -122, -200, -200, -83, -84, -84, -83, -83, + 83, -286, 324, 325, 446, -208, 205, -207, 23, -132, + -131, 89, -151, -295, -152, 27, 10, 135, 83, 19, + 83, -150, 25, 26, -151, -123, -200, 90, 93, -96, + 83, 12, -88, -111, -202, 142, -206, -111, -172, 205, + -111, 30, 83, -107, -109, -108, -110, 64, 68, 70, + 65, 66, 67, 71, -211, 23, -97, -8, -294, -111, + -104, -296, 83, 12, 75, -296, 83, 157, -180, -182, + 83, 323, 325, 326, 74, 102, -95, -228, 150, -1, + -2, 482, 483, 484, -253, -252, -251, -235, -237, -238, + -239, 84, -153, -94, 38, -231, 290, 289, -226, -226, + -226, -226, -226, -227, -177, -227, -227, -227, 82, 82, + -226, -226, -226, -226, -229, 82, -229, -229, -230, 82, + -230, -264, -95, -261, -260, -258, -259, 181, 96, 354, + 75, -256, -150, 90, -92, -193, 176, -262, -259, -272, + -272, -272, -193, -272, 89, -272, 89, 83, 17, -236, + -235, -46, 230, -267, 205, -263, -257, -244, 113, -243, + -244, -244, 157, -272, 83, 27, 107, 107, 107, 107, + 354, 162, 30, -235, -46, -216, 174, -216, -216, 89, + 89, -189, 478, -104, -91, 222, 125, 211, 211, 171, + 171, 224, -111, 235, 236, 234, 21, 223, 225, 227, + 213, -111, -111, -192, 74, -106, -111, 24, -205, -111, + -190, -190, -111, -190, -190, 89, -111, -200, -75, 324, + 354, 20, -76, 20, 99, 100, 101, -130, -122, -122, + -122, -82, 195, 116, -295, -295, -83, -83, -294, 157, + -10, -151, -295, -295, 83, 75, 23, 12, 12, -295, + 12, 12, -295, -295, -83, -144, -142, 123, -95, -295, + -295, 83, 83, -295, -295, -295, -295, -295, -285, 445, + 325, -115, 72, 175, 73, -294, -207, -295, -167, 40, + 48, 59, -95, -95, -149, -167, -184, 20, 12, 55, + 55, -116, 13, -85, -97, -88, 157, -116, -120, 30, + 55, -8, -294, -294, -175, -179, -139, -98, -99, -99, + -98, -99, 64, 64, 64, 69, 64, 69, 64, -108, + -205, -295, -295, -8, -172, 75, -97, -111, -97, -113, + -205, 142, -181, -183, 327, 324, 330, -272, 89, -272, + 113, -71, 82, 294, 83, -251, -239, -291, 99, 117, + 29, 74, 287, 96, -289, -290, 177, 112, 113, 189, + 23, 39, -232, 291, -227, -227, -228, -272, 89, 151, + -228, -228, -228, -234, 89, -234, 90, 90, 84, -37, + -32, -33, 31, 78, -258, -246, 89, 37, -200, 84, + -91, -111, 117, 74, -262, -262, -262, -205, 16, -169, + -200, 83, 84, -140, 231, 84, -200, 84, 82, -244, + -244, -201, -200, -294, 171, 29, 29, -46, -140, -228, + -272, 480, 479, 84, 173, 229, -93, 337, 89, 85, + -111, -111, -111, -111, -111, 165, 162, 214, 174, -104, + -111, 83, -66, 190, 185, -210, -210, 31, 324, 457, + 455, -82, 116, -122, -122, -295, -295, -84, -201, -147, + -167, -218, 151, 262, 194, 260, 256, 276, 267, 289, + 258, 290, -216, -218, -122, -122, -122, -122, 351, -147, + 124, -95, 122, -122, -122, 172, 172, 172, -173, 41, + 89, 89, 60, -111, -145, 14, -95, 142, -151, -174, + 74, -175, -133, -135, -134, -294, -168, -295, -200, -173, + -116, 83, 125, -102, -101, 74, 75, -103, 74, -101, + 64, 64, -295, -116, -97, -116, -116, 157, 324, 328, + 329, 82, -5, 78, -3, 481, -95, 82, -251, 99, + -122, 10, 89, 113, 113, -111, 82, -228, -228, 84, + 83, 84, 83, 84, 83, -194, 391, 117, -33, -32, + -246, -246, 90, -272, 173, 24, -111, 74, 74, 74, + 17, 83, -235, -139, 55, -261, -169, -265, -267, -111, + -121, -140, -111, -90, 220, 228, 82, 86, -274, 75, + 211, 287, 211, -111, -66, -37, -111, -190, -190, 31, + -272, -122, -295, -151, -295, -226, -226, -226, -230, -226, + 250, -226, 250, -295, -295, 20, 20, 20, 20, -294, + -74, 347, -95, 83, 83, -294, -294, -294, -295, 89, + -227, -146, 15, 17, 28, -174, 83, -295, -295, 83, + 55, 157, -295, -147, -179, -95, -95, 82, -95, -147, + -116, -95, 82, 125, -72, 485, 90, 84, -169, -125, + 82, -122, -227, 89, -227, 90, 90, 391, 29, 79, + 80, 81, 29, 76, 77, -111, -111, -111, -111, -169, + -200, 207, 84, -295, 83, -233, 354, 357, -170, 82, + 84, -271, 354, -273, -272, -200, -200, -200, -167, -227, + -272, -122, -122, -122, -122, -122, -151, 89, -122, -122, + -171, -295, -200, 177, -171, -171, -208, -227, -156, -161, + -187, -95, -131, 113, -135, 55, -8, -200, -133, -200, + -151, -169, -151, 84, -169, 90, -266, -265, 17, 84, + -169, 84, -228, -228, 84, 84, -170, 208, -290, -267, + 358, 358, 23, -169, -270, -269, -201, 82, 75, -295, + -295, -295, -295, -77, 135, 354, -295, -295, -295, 83, + -295, -295, -295, -115, -159, 441, -164, 44, -162, -163, + 45, -160, 46, 54, 10, -133, 157, 84, -3, 84, + -1, 84, -154, 23, -294, -8, 84, 83, 125, -169, + -111, -295, 352, 71, 355, -200, 177, -156, 49, 268, + -166, -165, 53, 45, -163, 17, 47, 17, -175, -200, + -72, -3, -272, 113, -281, -282, 74, -291, -288, 99, + 117, 96, -289, 108, 109, -8, -122, 204, -64, 354, + -269, -250, -201, 89, 90, 84, 60, 353, 356, -157, + 51, -155, 50, -155, -165, 17, 17, 89, 17, 89, + -266, -72, 82, -5, -282, 74, 11, 10, 99, 89, + -64, -295, -295, -65, 219, 445, -274, 60, -158, 52, + 74, 102, 89, 89, 89, -266, -95, 82, -280, 190, + 185, 188, 30, -280, 182, -271, 354, 74, 102, 84, + -169, 184, 29, 99, 221, 355, -4, 486, 84, 356, + 90, -4, +} + +var yyDef = [...]int{ + 34, -2, 2, 4, 5, 6, 7, 8, 9, 10, + 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, + 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, + 31, 32, 33, 864, 0, 596, 596, 596, 596, 596, + 596, 596, 0, 0, 596, -2, -2, 596, 1000, 0, + 596, 0, 0, -2, 529, 530, 0, 532, -2, 0, + 0, 541, 1425, 1425, 591, 0, 0, 0, 0, 0, + 596, 1423, 55, 56, 547, 548, 549, 1, 3, 0, + 600, 872, 0, 0, -2, 598, 0, 0, 983, 983, + 983, 0, 402, 87, 0, 0, 0, -2, 90, -2, + 114, 115, 0, 119, 383, 344, 386, 342, 372, -2, + 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 347, 237, 237, 0, 0, -2, 335, + 335, 335, 0, 0, 0, 369, 985, 290, 237, 237, + 0, 237, 237, 237, 237, 0, 0, 237, 237, 237, + 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, + 237, 237, 888, 118, 1001, 998, 999, 35, 36, 37, + 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, 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, + 1325, 1326, 1327, 1328, 1329, 1330, 1331, 1332, 1333, 1334, + 1335, 1336, 1337, 1338, 1339, 1340, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 1348, 1349, 1350, 1351, 1352, 1353, 1354, + 1355, 1356, 1357, 1358, 1359, 1360, 1361, 1362, 1363, 1364, + 1365, 1366, 1367, 1368, 1369, 1370, 1371, 1372, 1373, 1374, + 1375, 1376, 1377, 1378, 1379, 1380, 1381, 1382, 1383, 1384, + 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, + 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, + 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, + 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 0, 977, + 0, 460, 685, 0, 520, 520, 0, 520, 520, 520, + 520, 0, 0, 0, 472, 0, 0, 0, 0, 517, + 0, 0, 491, 493, 0, 517, 0, 0, 504, 520, + 1426, 1426, 1426, 968, 0, 514, 512, 526, 527, 509, + 510, 528, 531, 0, 536, 539, 994, 995, 0, 554, + 0, 1224, 546, 559, 560, 0, 592, 593, 40, 736, + 695, 0, 701, 703, 0, 738, 739, 740, 741, 742, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 768, 769, 770, 771, 849, 850, 851, 852, 853, 854, + 855, 856, 705, 706, 846, 0, 957, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 837, 0, 806, 806, + 806, 806, 806, 806, 806, 806, 806, 0, 0, 0, + 0, 0, 0, 0, -2, -2, 1425, 0, 569, 0, + 0, 864, 51, 0, 596, 601, 602, 907, 0, 0, + 864, 1424, 0, 0, -2, -2, 612, 618, 619, 620, + 621, 622, 597, 0, 625, 629, 0, 0, 0, 984, + 0, 0, 72, 0, 1387, 961, -2, -2, 0, 0, + 996, 997, 970, -2, 1004, 1005, 1006, 1007, 1008, 1009, + 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, + 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, + 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, + 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, + 1050, 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, 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, -2, 86, 0, 0, 0, + 128, 129, 0, 38, 263, 0, 124, 0, 257, 209, + 888, 0, 0, 0, 0, 0, 596, 0, 978, 109, + 110, 116, 117, 237, 237, 0, 118, 118, 351, 352, + 353, 0, 0, -2, 261, 0, 336, 0, 0, 251, + 251, 255, 253, 254, 0, 0, 0, 0, 0, 0, + 363, 0, 364, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 444, 0, 238, 0, 381, 382, 291, 0, + 0, 0, 0, 361, 362, 0, 0, 986, 987, 0, + 0, 237, 237, 0, 0, 0, 0, 237, 237, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 108, 901, 0, 0, 0, + -2, 0, 452, 0, 0, 0, 979, 979, 459, 0, + 461, 462, 0, 0, 463, 0, 517, 517, 515, 516, + 465, 466, 467, 468, 520, 0, 0, 246, 247, 248, + 517, 520, 0, 520, 520, 520, 520, 517, 517, 517, + 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1426, 1426, 1426, 523, 520, 0, 501, 502, 505, 506, + 1427, 1428, 1015, 507, 508, 969, 537, 540, 557, 555, + 556, 558, 550, 551, 552, 553, 0, 571, 572, 577, + 0, 0, 0, 0, 583, 584, 585, 0, 0, 588, + 589, 590, 0, 0, 0, 0, 0, 699, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 723, 724, 725, + 726, 727, 728, 729, 702, 0, 716, 0, 0, 0, + 758, 759, 760, 761, 762, 763, 764, 765, 766, 0, + 609, 0, 0, 0, 864, 0, 0, 0, 0, 0, + 0, 0, 606, 0, 838, 0, 789, 0, 790, 798, + 0, 791, 799, 792, 800, 793, 794, 801, 795, 802, + 796, 797, 803, 0, 0, 0, 609, 609, 0, 0, + 41, 561, 562, 0, 668, 989, 0, 872, 0, 611, + 910, 0, 0, 873, 865, 866, 869, 872, 0, 634, + 623, 613, 616, 617, 599, 0, 626, 630, 0, 632, + 633, 0, 0, 70, 0, 684, 0, 636, 638, 639, + 640, 666, 0, 0, 0, 0, 66, 68, 685, 0, + 1387, 967, 0, 74, 75, 0, 0, 0, 225, 972, + 973, 974, 411, -2, 244, 0, -2, 216, 160, 161, + 162, 209, 164, 209, 209, 209, 209, 221, 221, 221, + 221, 192, 193, 194, 195, 196, 0, 0, 179, 209, + 209, 209, 209, 199, 200, 201, 202, 203, 204, 205, + 206, 165, 166, 167, 168, 169, 170, 171, 172, 173, + 211, 211, 211, 213, 213, 0, 39, 0, 229, 0, + 869, 0, 901, 981, 991, 0, 0, 0, 981, 92, + 0, 0, 384, 345, 373, 385, 0, 348, 349, -2, + 0, 0, 335, 0, 337, 0, 245, 0, -2, 0, + 255, 0, 251, 255, 252, 255, 243, 256, 365, 846, + 0, 366, 367, 0, 424, 654, 0, 0, 0, 0, + 0, 430, 431, 432, 0, 434, 435, 436, 437, 438, + 439, 440, 441, 442, 443, 374, 375, 376, 377, 378, + 379, 380, 0, 0, 337, 0, 370, 0, 292, 293, + 0, 0, 296, 297, 298, 299, 0, 0, 302, 303, + 304, 671, 672, 305, 329, 330, 331, 306, 307, 308, + 309, 310, 311, 312, 323, 324, 325, 326, 327, 328, + 313, 314, 315, 316, 317, 320, 0, 102, 892, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 979, 0, 0, 0, 0, 686, 1002, 1003, 521, 522, + 0, 249, 250, 520, 520, 469, 492, 0, 520, 473, + 494, 474, 476, 475, 477, 496, 497, 520, 480, 518, + 519, 481, 482, 483, 484, 485, 486, 487, 488, 489, + 490, 498, 0, 499, 500, 0, 0, 538, 542, 543, + 544, 545, 0, 0, 574, 579, 580, 581, 582, 594, + 587, 737, 696, 697, 698, 700, 717, 0, 719, 721, + 707, 708, 732, 733, 734, 0, 0, 0, 0, 730, + 712, 0, 743, 744, 745, 746, 747, 748, 749, 750, + 751, 752, 753, 754, 757, 821, 822, 823, 0, 755, + 756, 767, 0, 0, 0, 610, 847, 0, -2, 0, + 735, 956, 872, 0, 0, 0, 0, 740, 849, 0, + 740, 849, 0, 0, 0, 607, 608, 844, 841, 0, + 0, 807, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 564, 565, 567, 0, 688, 0, 669, 0, 0, + 990, 570, 907, 52, 42, 0, 908, 0, 0, 0, + 0, 868, 870, 871, 907, 0, 857, 0, 0, 693, + 0, 0, 614, 48, 631, 627, 0, 693, 0, 0, + 683, 0, 0, 0, 0, 0, 0, 673, 0, 0, + 676, 0, 0, 0, 0, 667, 0, 0, 0, -2, + 0, 0, 0, 62, 63, 0, 0, 0, 962, 73, + 0, 0, 78, 79, 963, 964, 965, 966, 0, 0, + 0, 412, 415, 416, 111, -2, 287, 130, 132, 133, + 134, 125, 269, 0, 0, 219, 217, 218, 163, 221, + 221, 186, 187, 225, 0, 225, 225, 225, 0, 0, + 180, 181, 182, 183, 174, 0, 175, 176, 177, 0, + 178, 262, 0, 876, 230, 231, 233, 237, 0, 0, + 0, 258, 259, 0, 892, 0, 0, 0, 992, 991, + 991, 991, 0, 120, 121, 122, 123, 118, 0, 0, + 126, 339, 338, 0, 0, 260, 0, 0, 255, 255, + 240, 241, 0, 368, 0, 0, 426, 427, 428, 429, + 0, 0, 0, 337, 339, 225, 0, 294, 295, 300, + 301, 318, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 398, 399, 400, 401, 889, 890, 891, + 0, 0, 453, 0, 0, 279, 64, 980, 458, 517, + 479, 495, 517, 471, 478, 524, 503, 534, 578, 0, + 0, 0, 586, 0, 718, 720, 722, 709, 730, 713, + 0, 710, 0, 0, 704, 772, 0, 0, 609, 0, + 864, 907, 776, 777, 0, 0, 0, 0, 0, 814, + 0, 0, 815, 0, 864, 0, 842, 0, 0, 788, + 808, 0, 0, 809, 810, 811, 812, 813, 563, 566, + 568, 644, 0, 0, 0, 0, 670, 988, 44, 0, + 0, 0, 874, 875, 867, 43, 0, 975, 976, 858, + 859, 860, 0, 624, 635, 615, 0, 872, 950, 0, + 0, 942, 0, 0, 693, 958, 0, 637, 662, 664, + 0, 659, 674, 675, 677, 0, 679, 0, 681, 682, + 641, 642, 643, 0, 693, 0, 693, 67, 693, 69, + 0, 687, 76, 77, 0, 0, 83, 226, 227, 0, + 413, 419, 0, 0, 118, 289, 131, 135, 140, 0, + 0, 0, 144, 0, 146, 270, 0, 156, 158, 0, + 0, 138, 159, 220, 225, 225, 188, 222, 223, 224, + 189, 190, 191, 0, 207, 0, 0, 0, 282, 88, + 880, 879, 237, 237, 232, 0, 235, 0, 993, 210, + 0, 101, 0, 0, 0, 0, 0, 107, 0, 343, + 648, 0, 354, 355, 0, 423, 0, 229, 0, 239, + 242, 847, 655, 0, 0, 356, 0, 339, 359, 360, + 371, 321, 322, 319, 0, 0, 902, 903, 0, 906, + 93, 391, 393, 392, 396, 0, 0, 389, 0, 279, + 876, 0, 457, 280, 281, 520, 520, 573, 0, 576, + 0, 711, 0, 731, 714, 773, 774, 0, 848, 872, + 46, 0, 209, 209, 827, 209, 213, 830, 209, 832, + 209, 835, 0, 0, 0, 0, 0, 0, 0, 839, + 787, 845, 0, 0, 0, 0, 0, 0, 0, 0, + 221, 912, 909, 45, 862, 0, 694, 628, 49, 53, + 0, 950, 941, 952, 954, 0, 0, 0, 946, 0, + 864, 0, 0, 656, 663, 0, 0, 657, 0, 658, + 678, 680, -2, 864, 693, 60, 61, 0, 80, 81, + 82, 0, 0, 0, 406, 0, 0, 0, 288, 141, + 142, 0, 145, 155, 157, 0, 0, 184, 185, 221, + 0, 221, 0, 214, 0, 271, 283, 0, 877, 878, + 0, 0, 234, 236, 0, 982, 103, 0, 0, 0, + 0, 0, 127, 340, 0, 228, 0, 0, 448, 445, + 357, 358, 646, 893, 894, 895, 0, 905, 96, 0, + 0, 0, 0, 454, 455, 456, 65, 464, 470, 575, + 595, 715, 775, 907, 778, 824, 221, 828, 829, 831, + 833, 834, 836, 780, 779, 0, 0, 0, 0, 0, + 872, 0, 843, 0, 0, 0, 0, 0, 668, 221, + 932, 50, 0, 0, 0, 54, 0, 955, 0, 0, + 0, 0, 71, 872, 959, 960, 660, 0, 665, 872, + 59, 0, 0, 0, 409, 0, 420, 417, 0, 143, + 0, 0, 225, 208, 225, 0, 0, 284, 881, 882, + 883, 884, 885, 886, 887, 646, 104, 105, 106, 346, + 649, 0, 0, 425, 0, 433, 0, 0, 0, 0, + 904, 390, 0, 94, 95, 0, 0, 395, 47, 825, + 826, 0, 0, 0, 0, 816, 0, 840, 0, 0, + 0, 690, 650, 651, 0, 0, 688, 914, 913, 926, + 939, 863, 861, 0, 953, 0, 945, 948, 944, 947, + 57, 0, 58, 419, 0, 414, 405, 410, 411, 418, + 0, 149, 197, 198, 212, 215, 0, 0, 264, 449, + 446, 447, 0, 0, 97, 98, 0, 0, 0, 781, + 783, 782, 784, 0, 0, 0, 786, 804, 805, 0, + 689, 691, 692, 645, 932, 0, 925, 0, -2, 934, + 0, 0, 0, 940, 0, 943, 0, 661, 406, 419, + 0, 265, 269, 0, 0, 896, 647, 0, 0, 0, + 397, 785, 0, 0, 0, 652, 653, 919, 917, 917, + 927, 928, 0, 0, 935, 0, 0, 0, 951, 949, + 409, 406, 0, 413, 266, 267, 0, 136, 150, 151, + 0, 0, 154, 147, 148, 896, 0, 0, 387, 898, + 99, 100, 332, 333, 334, 93, 817, 0, 820, 922, + 0, 915, 918, 916, 929, 0, 0, 936, 0, 938, + 403, 409, 0, 0, 268, 0, 0, 0, 152, 153, + 89, 450, 451, 0, 899, 900, 96, 818, 911, 0, + 920, 921, 930, 931, 937, 404, 0, 0, 272, 274, + 275, 0, 0, 273, 0, 394, 0, 923, 924, 421, + 0, 276, 277, 278, 897, 0, 407, 0, 421, 819, + 422, 408, +} + +var yyTok1 = [...]int{ + 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 118, 3, 3, 3, 145, 137, 3, + 82, 84, 142, 140, 83, 141, 157, 143, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 487, + 126, 125, 127, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 147, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 136, 3, 148, +} + +var yyTok2 = [...]int{ + 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, + 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, + 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, + 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, + 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, + 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, + 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, + 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, + 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, + 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, + 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, + 115, 116, 117, 119, 120, 121, 122, 123, 124, 128, + 129, 130, 131, 132, 133, 134, 135, 138, 139, 144, + 146, 149, 150, 151, 152, 153, 154, 155, 156, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, + 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, + 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, + 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, + 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, + 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, + 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, + 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, + 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, + 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, + 269, 270, 271, 272, 273, 274, +} + +var yyTok3 = [...]int{ + 57600, 275, 57601, 276, 57602, 277, 57603, 278, 57604, 279, + 57605, 280, 57606, 281, 57607, 282, 57608, 283, 57609, 284, + 57610, 285, 57611, 286, 57612, 287, 57613, 288, 57614, 289, + 57615, 290, 57616, 291, 57617, 292, 57618, 293, 57619, 294, + 57620, 295, 57621, 296, 57622, 297, 57623, 298, 57624, 299, + 57625, 300, 57626, 301, 57627, 302, 57628, 303, 57629, 304, + 57630, 305, 57631, 306, 57632, 307, 57633, 308, 57634, 309, + 57635, 310, 57636, 311, 57637, 312, 57638, 313, 57639, 314, + 57640, 315, 57641, 316, 57642, 317, 57643, 318, 57644, 319, + 57645, 320, 57646, 321, 57647, 322, 57648, 323, 57649, 324, + 57650, 325, 57651, 326, 57652, 327, 57653, 328, 57654, 329, + 57655, 330, 57656, 331, 57657, 332, 57658, 333, 57659, 334, + 57660, 335, 57661, 336, 57662, 337, 57663, 338, 57664, 339, + 57665, 340, 57666, 341, 57667, 342, 57668, 343, 57669, 344, + 57670, 345, 57671, 346, 57672, 347, 57673, 348, 57674, 349, + 57675, 350, 57676, 351, 57677, 352, 57678, 353, 57679, 354, + 57680, 355, 57681, 356, 57682, 357, 57683, 358, 57684, 359, + 57685, 360, 57686, 361, 57687, 362, 57688, 363, 57689, 364, + 57690, 365, 57691, 366, 57692, 367, 57693, 368, 57694, 369, + 57695, 370, 57696, 371, 57697, 372, 57698, 373, 57699, 374, + 57700, 375, 57701, 376, 57702, 377, 57703, 378, 57704, 379, + 57705, 380, 57706, 381, 57707, 382, 57708, 383, 57709, 384, + 57710, 385, 57711, 386, 57712, 387, 57713, 388, 57714, 389, + 57715, 390, 57716, 391, 57717, 392, 57718, 393, 57719, 394, + 57720, 395, 57721, 396, 57722, 397, 57723, 398, 57724, 399, + 57725, 400, 57726, 401, 57727, 402, 57728, 403, 57729, 404, + 57730, 405, 57731, 406, 57732, 407, 57733, 408, 57734, 409, + 57735, 410, 57736, 411, 57737, 412, 57738, 413, 57739, 414, + 57740, 415, 57741, 416, 57742, 417, 57743, 418, 57744, 419, + 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, + 57760, 435, 57761, 436, 57762, 437, 57763, 438, 57764, 439, + 57765, 440, 57766, 441, 57767, 442, 57768, 443, 57769, 444, + 57770, 445, 57771, 446, 57772, 447, 57773, 448, 57774, 449, + 57775, 450, 57776, 451, 57777, 452, 57778, 453, 57779, 454, + 57780, 455, 57781, 456, 57782, 457, 57783, 458, 57784, 459, + 57785, 460, 57786, 461, 57787, 462, 57788, 463, 57789, 464, + 57790, 465, 57791, 466, 57792, 467, 57793, 468, 57794, 469, + 57795, 470, 57796, 471, 57797, 472, 57798, 473, 57799, 474, + 57800, 475, 57801, 476, 57802, 477, 57803, 478, 57804, 479, + 57805, 480, 57806, 481, 57807, 482, 57808, 483, 57809, 484, + 57810, 485, 57811, 486, 0, +} + +var yyErrorMessages = [...]struct { + state int + token int + msg string +}{} + +//line yaccpar:1 + +/* parser for yacc output */ + +func yyIaddr(v interface{}) __yyunsafe__.Pointer { + type h struct { + t __yyunsafe__.Pointer + p __yyunsafe__.Pointer + } + return (*h)(__yyunsafe__.Pointer(&v)).p +} + +var ( + yyDebug = 0 + yyErrorVerbose = false +) + +type yyLexer interface { + Lex(lval *yySymType) int + Error(s string) +} + +type yyParser interface { + Parse(yyLexer) int + Lookahead() int +} + +type yyParserImpl struct { + lval yySymType + stack [yyInitialStackSize]yySymType + char int +} + +func (p *yyParserImpl) Lookahead() int { + return p.char +} + +func yyNewParser() yyParser { + return &yyParserImpl{} +} + +const yyFlag = -1000 + +func yyTokname(c int) string { + if c >= 1 && c-1 < len(yyToknames) { + if yyToknames[c-1] != "" { + return yyToknames[c-1] + } + } + return __yyfmt__.Sprintf("tok-%v", c) +} + +func yyStatname(s int) string { + if s >= 0 && s < len(yyStatenames) { + if yyStatenames[s] != "" { + return yyStatenames[s] + } + } + return __yyfmt__.Sprintf("state-%v", s) +} + +func yyErrorMessage(state, lookAhead int) string { + const TOKSTART = 4 + + if !yyErrorVerbose { + return "syntax error" + } + + for _, e := range yyErrorMessages { + if e.state == state && e.token == lookAhead { + return "syntax error: " + e.msg + } + } + + res := "syntax error: unexpected " + yyTokname(lookAhead) + + // To match Bison, suggest at most four expected tokens. + expected := make([]int, 0, 4) + + // Look for shiftable tokens. + base := yyPact[state] + for tok := TOKSTART; tok-1 < len(yyToknames); tok++ { + if n := base + tok; n >= 0 && n < yyLast && yyChk[yyAct[n]] == tok { + if len(expected) == cap(expected) { + return res + } + expected = append(expected, tok) + } + } + + if yyDef[state] == -2 { + i := 0 + for yyExca[i] != -1 || yyExca[i+1] != state { + i += 2 + } + + // Look for tokens that we accept or reduce. + for i += 2; yyExca[i] >= 0; i += 2 { + tok := yyExca[i] + if tok < TOKSTART || yyExca[i+1] == 0 { + continue + } + if len(expected) == cap(expected) { + return res + } + expected = append(expected, tok) + } + + // If the default action is to accept or reduce, give up. + if yyExca[i+1] != 0 { + return res + } + } + + for i, tok := range expected { + if i == 0 { + res += ", expecting " + } else { + res += " or " + } + res += yyTokname(tok) + } + return res +} + +func yylex1(lex yyLexer, lval *yySymType) (char, token int) { + token = 0 + char = lex.Lex(lval) + if char <= 0 { + token = yyTok1[0] + goto out + } + if char < len(yyTok1) { + token = yyTok1[char] + goto out + } + if char >= yyPrivate { + if char < yyPrivate+len(yyTok2) { + token = yyTok2[char-yyPrivate] + goto out + } + } + for i := 0; i < len(yyTok3); i += 2 { + token = yyTok3[i+0] + if token == char { + token = yyTok3[i+1] + goto out + } + } + +out: + if token == 0 { + token = yyTok2[1] /* unknown char */ + } + if yyDebug >= 3 { + __yyfmt__.Printf("lex %s(%d)\n", yyTokname(token), uint(char)) + } + return char, token +} + +func yyParse(yylex yyLexer) int { + return yyNewParser().Parse(yylex) +} + +func (yyrcvr *yyParserImpl) Parse(yylex yyLexer) int { + var yyn int + var yyVAL yySymType + var yyDollar []yySymType + _ = yyDollar // silence set and not used + yyS := yyrcvr.stack[:] + + Nerrs := 0 /* number of errors */ + Errflag := 0 /* error recovery flag */ + yystate := 0 + yyrcvr.char = -1 + yytoken := -1 // yyrcvr.char translated into internal numbering + defer func() { + // Make sure we report no lookahead when not parsing. + yystate = -1 + yyrcvr.char = -1 + yytoken = -1 + }() + yyp := -1 + goto yystack + +ret0: + return 0 + +ret1: + return 1 + +yystack: + /* put a state and value onto the stack */ + if yyDebug >= 4 { + __yyfmt__.Printf("char %v in %v\n", yyTokname(yytoken), yyStatname(yystate)) + } + + yyp++ + if yyp >= len(yyS) { + nyys := make([]yySymType, len(yyS)*2) + copy(nyys, yyS) + yyS = nyys + } + yyS[yyp] = yyVAL + yyS[yyp].yys = yystate + +yynewstate: + yyn = yyPact[yystate] + if yyn <= yyFlag { + goto yydefault /* simple state */ + } + if yyrcvr.char < 0 { + yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) + } + yyn += yytoken + if yyn < 0 || yyn >= yyLast { + goto yydefault + } + yyn = yyAct[yyn] + if yyChk[yyn] == yytoken { /* valid shift */ + yyrcvr.char = -1 + yytoken = -1 + yyVAL = yyrcvr.lval + yystate = yyn + if Errflag > 0 { + Errflag-- + } + goto yystack + } + +yydefault: + /* default state action */ + yyn = yyDef[yystate] + if yyn == -2 { + if yyrcvr.char < 0 { + yyrcvr.char, yytoken = yylex1(yylex, &yyrcvr.lval) + } + + /* look through exception table */ + xi := 0 + for { + if yyExca[xi+0] == -1 && yyExca[xi+1] == yystate { + break + } + xi += 2 + } + for xi += 2; ; xi += 2 { + yyn = yyExca[xi+0] + if yyn < 0 || yyn == yytoken { + break + } + } + yyn = yyExca[xi+1] + if yyn < 0 { + goto ret0 + } + } + if yyn == 0 { + /* error ... attempt to resume parsing */ + switch Errflag { + case 0: /* brand new error */ + yylex.Error(yyErrorMessage(yystate, yytoken)) + Nerrs++ + if yyDebug >= 1 { + __yyfmt__.Printf("%s", yyStatname(yystate)) + __yyfmt__.Printf(" saw %s\n", yyTokname(yytoken)) + } + fallthrough + + case 1, 2: /* incompletely recovered error ... try again */ + Errflag = 3 + + /* find a state where "error" is a legal shift action */ + for yyp >= 0 { + yyn = yyPact[yyS[yyp].yys] + yyErrCode + if yyn >= 0 && yyn < yyLast { + yystate = yyAct[yyn] /* simulate a shift of "error" */ + if yyChk[yystate] == yyErrCode { + goto yystack + } + } + + /* the current p has no shift on "error", pop stack */ + if yyDebug >= 2 { + __yyfmt__.Printf("error recovery pops state %d\n", yyS[yyp].yys) + } + yyp-- + } + /* there is no state on the stack with an error shift ... abort */ + goto ret1 + + case 3: /* no shift yet; clobber input char */ + if yyDebug >= 2 { + __yyfmt__.Printf("error recovery discards %s\n", yyTokname(yytoken)) + } + if yytoken == yyEofCode { + goto ret1 + } + yyrcvr.char = -1 + yytoken = -1 + goto yynewstate /* try again in the same state */ + } + } + + /* reduction by production yyn */ + if yyDebug >= 2 { + __yyfmt__.Printf("reduce %v in:\n\t%v\n", yyn, yyStatname(yystate)) + } + + yynt := yyn + yypt := yyp + _ = yypt // guard against "declared and not used" + + yyp -= yyR2[yyn] + // yyp is now the index of $0. Perform the default action. Iff the + // reduced production is ε, $1 is possibly out of range. + if yyp+1 >= len(yyS) { + nyys := make([]yySymType, len(yyS)*2) + copy(nyys, yyS) + yyS = nyys + } + yyVAL = yyS[yyp+1] + + /* consult goto table to find next state */ + yyn = yyR1[yyn] + yyg := yyPgo[yyn] + yyj := yyg + yyS[yyp].yys + 1 + + if yyj >= yyLast { + yystate = yyAct[yyg] + } else { + yystate = yyAct[yyj] + if yyChk[yystate] != -yyn { + yystate = yyAct[yyg] + } + } + // dummy call; replaced with literal code + switch yynt { + + case 1: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:446 + { + setParseTree(yylex, yyDollar[1].statementUnion()) + } + case 2: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:451 + { + } + case 3: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:452 + { + } + case 4: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:456 + { + yyLOCAL = yyDollar[1].selStmtUnion() + } + yyVAL.union = yyLOCAL + case 34: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:489 + { + setParseTree(yylex, nil) + } + case 35: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:495 + { + yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), NoAt) + } + case 36: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:499 + { + yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), SingleAt) + } + case 37: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:503 + { + yyVAL.colIdent = NewColIdentWithAt(string(yyDollar[1].str), DoubleAt) + } + case 38: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:508 + { + yyVAL.colIdent = NewColIdentWithAt("", NoAt) + } + case 39: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:512 + { + yyVAL.colIdent = yyDollar[1].colIdent + } + case 40: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:518 + { + yyLOCAL = &OtherAdmin{} + } + yyVAL.union = yyLOCAL + case 41: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:524 + { + yyLOCAL = &Load{} + } + yyVAL.union = yyLOCAL + case 42: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:530 + { + sel := yyDollar[1].selStmtUnion().(*Select) + sel.OrderBy = yyDollar[2].orderByUnion() + sel.Limit = yyDollar[3].limitUnion() + sel.Lock = yyDollar[4].lockUnion() + sel.Into = yyDollar[5].selectIntoUnion() + yyLOCAL = sel + } + yyVAL.union = yyLOCAL + case 43: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:539 + { + yyLOCAL = &Union{FirstStatement: &ParenSelect{Select: yyDollar[2].selStmtUnion()}, OrderBy: yyDollar[4].orderByUnion(), Limit: yyDollar[5].limitUnion(), Lock: yyDollar[6].lockUnion()} + } + yyVAL.union = yyLOCAL + case 44: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:543 + { + yyLOCAL = Unionize(yyDollar[1].selStmtUnion(), yyDollar[3].selStmtUnion(), yyDollar[2].booleanUnion(), yyDollar[4].orderByUnion(), yyDollar[5].limitUnion(), yyDollar[6].lockUnion()) + } + yyVAL.union = yyLOCAL + case 45: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:547 + { + yyLOCAL = NewSelect(Comments(yyDollar[2].strs), SelectExprs{&Nextval{Expr: yyDollar[5].exprUnion()}}, []string{yyDollar[3].str} /*options*/, TableExprs{&AliasedTableExpr{Expr: yyDollar[7].tableName}}, nil /*where*/, nil /*groupBy*/, nil /*having*/) + } + yyVAL.union = yyLOCAL + case 46: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:570 + { + sel := yyDollar[1].selStmtUnion().(*Select) + sel.OrderBy = yyDollar[2].orderByUnion() + sel.Limit = yyDollar[3].limitUnion() + sel.Lock = yyDollar[4].lockUnion() + yyLOCAL = sel + } + yyVAL.union = yyLOCAL + case 47: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:578 + { + yyLOCAL = Unionize(yyDollar[1].selStmtUnion(), yyDollar[3].selStmtUnion(), yyDollar[2].booleanUnion(), yyDollar[4].orderByUnion(), yyDollar[5].limitUnion(), yyDollar[6].lockUnion()) + } + yyVAL.union = yyLOCAL + case 48: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:584 + { + yyLOCAL = &Stream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName} + } + yyVAL.union = yyLOCAL + case 49: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:590 + { + yyLOCAL = &VStream{Comments: Comments(yyDollar[2].strs), SelectExpr: yyDollar[3].selectExprUnion(), Table: yyDollar[5].tableName, Where: NewWhere(WhereClause, yyDollar[6].exprUnion()), Limit: yyDollar[7].limitUnion()} + } + yyVAL.union = yyLOCAL + case 50: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:598 + { + yyLOCAL = NewSelect(Comments(yyDollar[2].strs), yyDollar[4].selectExprsUnion() /*SelectExprs*/, yyDollar[3].strs /*options*/, yyDollar[5].tableExprsUnion() /*from*/, NewWhere(WhereClause, yyDollar[6].exprUnion()), GroupBy(yyDollar[7].exprsUnion()), NewWhere(HavingClause, yyDollar[8].exprUnion())) + } + yyVAL.union = yyLOCAL + case 51: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:604 + { + yyLOCAL = yyDollar[1].selStmtUnion() + } + yyVAL.union = yyLOCAL + case 52: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL SelectStatement +//line sql.y:608 + { + yyLOCAL = &ParenSelect{Select: yyDollar[2].selStmtUnion()} + } + yyVAL.union = yyLOCAL + case 53: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:615 + { + // insert_data returns a *Insert pre-filled with Columns & Values + ins := yyDollar[6].insUnion() + ins.Action = yyDollar[1].insertActionUnion() + ins.Comments = yyDollar[2].strs + ins.Ignore = yyDollar[3].ignoreUnion() + ins.Table = yyDollar[4].tableName + ins.Partitions = yyDollar[5].partitionsUnion() + ins.OnDup = OnDup(yyDollar[7].updateExprsUnion()) + yyLOCAL = ins + } + yyVAL.union = yyLOCAL + case 54: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Statement +//line sql.y:627 + { + cols := make(Columns, 0, len(yyDollar[7].updateExprsUnion())) + vals := make(ValTuple, 0, len(yyDollar[8].updateExprsUnion())) + for _, updateList := range yyDollar[7].updateExprsUnion() { + cols = append(cols, updateList.Name.Name) + vals = append(vals, updateList.Expr) + } + yyLOCAL = &Insert{Action: yyDollar[1].insertActionUnion(), Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Table: yyDollar[4].tableName, Partitions: yyDollar[5].partitionsUnion(), Columns: cols, Rows: Values{vals}, OnDup: OnDup(yyDollar[8].updateExprsUnion())} + } + yyVAL.union = yyLOCAL + case 55: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL InsertAction +//line sql.y:639 + { + yyLOCAL = InsertAct + } + yyVAL.union = yyLOCAL + case 56: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL InsertAction +//line sql.y:643 + { + yyLOCAL = ReplaceAct + } + yyVAL.union = yyLOCAL + case 57: + yyDollar = yyS[yypt-9 : yypt+1] + var yyLOCAL Statement +//line sql.y:649 + { + yyLOCAL = &Update{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: yyDollar[4].tableExprsUnion(), Exprs: yyDollar[6].updateExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} + } + yyVAL.union = yyLOCAL + case 58: + yyDollar = yyS[yypt-9 : yypt+1] + var yyLOCAL Statement +//line sql.y:655 + { + yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), TableExprs: TableExprs{&AliasedTableExpr{Expr: yyDollar[5].tableName}}, Partitions: yyDollar[6].partitionsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion()), OrderBy: yyDollar[8].orderByUnion(), Limit: yyDollar[9].limitUnion()} + } + yyVAL.union = yyLOCAL + case 59: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Statement +//line sql.y:659 + { + yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[5].tableNamesUnion(), TableExprs: yyDollar[7].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[8].exprUnion())} + } + yyVAL.union = yyLOCAL + case 60: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:663 + { + yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} + } + yyVAL.union = yyLOCAL + case 61: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:667 + { + yyLOCAL = &Delete{Comments: Comments(yyDollar[2].strs), Ignore: yyDollar[3].ignoreUnion(), Targets: yyDollar[4].tableNamesUnion(), TableExprs: yyDollar[6].tableExprsUnion(), Where: NewWhere(WhereClause, yyDollar[7].exprUnion())} + } + yyVAL.union = yyLOCAL + case 62: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:672 + { + } + case 63: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:673 + { + } + case 64: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableNames +//line sql.y:677 + { + yyLOCAL = TableNames{yyDollar[1].tableName.ToViewName()} + } + yyVAL.union = yyLOCAL + case 65: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:681 + { + yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].tableName.ToViewName()) + } + case 66: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableNames +//line sql.y:687 + { + yyLOCAL = TableNames{yyDollar[1].tableName} + } + yyVAL.union = yyLOCAL + case 67: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:691 + { + yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].tableName) + } + case 68: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableNames +//line sql.y:697 + { + yyLOCAL = TableNames{yyDollar[1].tableName} + } + yyVAL.union = yyLOCAL + case 69: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:701 + { + yySLICE := (*TableNames)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].tableName) + } + case 70: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Partitions +//line sql.y:706 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 71: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Partitions +//line sql.y:710 + { + yyLOCAL = yyDollar[3].partitionsUnion() + } + yyVAL.union = yyLOCAL + case 72: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:716 + { + yyLOCAL = &Set{Comments: Comments(yyDollar[2].strs), Exprs: yyDollar[3].setExprsUnion()} + } + yyVAL.union = yyLOCAL + case 73: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:722 + { + yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Scope: yyDollar[3].scopeUnion(), Characteristics: yyDollar[5].characteristicsUnion()} + } + yyVAL.union = yyLOCAL + case 74: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:726 + { + yyLOCAL = &SetTransaction{Comments: Comments(yyDollar[2].strs), Characteristics: yyDollar[4].characteristicsUnion(), Scope: ImplicitScope} + } + yyVAL.union = yyLOCAL + case 75: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []Characteristic +//line sql.y:732 + { + yyLOCAL = []Characteristic{yyDollar[1].characteristicUnion()} + } + yyVAL.union = yyLOCAL + case 76: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:736 + { + yySLICE := (*[]Characteristic)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].characteristicUnion()) + } + case 77: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Characteristic +//line sql.y:742 + { + yyLOCAL = yyDollar[3].isolationLevelUnion() + } + yyVAL.union = yyLOCAL + case 78: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Characteristic +//line sql.y:746 + { + yyLOCAL = ReadWrite + } + yyVAL.union = yyLOCAL + case 79: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Characteristic +//line sql.y:750 + { + yyLOCAL = ReadOnly + } + yyVAL.union = yyLOCAL + case 80: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL IsolationLevel +//line sql.y:756 + { + yyLOCAL = RepeatableRead + } + yyVAL.union = yyLOCAL + case 81: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL IsolationLevel +//line sql.y:760 + { + yyLOCAL = ReadCommitted + } + yyVAL.union = yyLOCAL + case 82: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL IsolationLevel +//line sql.y:764 + { + yyLOCAL = ReadUncommitted + } + yyVAL.union = yyLOCAL + case 83: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL IsolationLevel +//line sql.y:768 + { + yyLOCAL = Serializable + } + yyVAL.union = yyLOCAL + case 84: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Scope +//line sql.y:774 + { + yyLOCAL = SessionScope + } + yyVAL.union = yyLOCAL + case 85: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Scope +//line sql.y:778 + { + yyLOCAL = GlobalScope + } + yyVAL.union = yyLOCAL + case 86: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:784 + { + yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion() + yyDollar[1].createTableUnion().FullyParsed = true + yyDollar[1].createTableUnion().PartitionOption = yyDollar[3].partitionOptionUnion() + yyLOCAL = yyDollar[1].createTableUnion() + } + yyVAL.union = yyLOCAL + case 87: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:791 + { + // Create table [name] like [name] + yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion() + yyDollar[1].createTableUnion().FullyParsed = true + yyLOCAL = yyDollar[1].createTableUnion() + } + yyVAL.union = yyLOCAL + case 88: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:798 + { + indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition + indexDef.Columns = yyDollar[3].indexColumnsUnion() + indexDef.Options = append(indexDef.Options, yyDollar[5].indexOptionsUnion()...) + yyDollar[1].alterTableUnion().AlterOptions = append(yyDollar[1].alterTableUnion().AlterOptions, yyDollar[6].alterOptionsUnion()...) + yyDollar[1].alterTableUnion().FullyParsed = true + yyLOCAL = yyDollar[1].alterTableUnion() + } + yyVAL.union = yyLOCAL + case 89: + yyDollar = yyS[yypt-12 : yypt+1] + var yyLOCAL Statement +//line sql.y:807 + { + yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].str, Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str} + } + yyVAL.union = yyLOCAL + case 90: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:811 + { + yyDollar[1].createDatabaseUnion().FullyParsed = true + yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].collateAndCharsetsUnion() + yyLOCAL = yyDollar[1].createDatabaseUnion() + } + yyVAL.union = yyLOCAL + case 91: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:818 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 92: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL bool +//line sql.y:822 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 93: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:827 + { + yyVAL.colIdent = NewColIdent("") + } + case 94: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:831 + { + yyVAL.colIdent = yyDollar[2].colIdent + } + case 95: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:837 + { + yyVAL.colIdent = yyDollar[1].colIdent + } + case 96: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL []VindexParam +//line sql.y:842 + { + var v []VindexParam + yyLOCAL = v + } + yyVAL.union = yyLOCAL + case 97: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL []VindexParam +//line sql.y:847 + { + yyLOCAL = yyDollar[2].vindexParamsUnion() + } + yyVAL.union = yyLOCAL + case 98: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []VindexParam +//line sql.y:853 + { + yyLOCAL = make([]VindexParam, 0, 4) + yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam) + } + yyVAL.union = yyLOCAL + case 99: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:858 + { + yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].vindexParam) + } + case 100: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:864 + { + yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} + } + case 101: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL *CreateTable +//line sql.y:870 + { + yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()} + setDDL(yylex, yyLOCAL) + } + yyVAL.union = yyLOCAL + case 102: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *AlterTable +//line sql.y:877 + { + yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[4].tableName} + setDDL(yylex, yyLOCAL) + } + yyVAL.union = yyLOCAL + case 103: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL *AlterTable +//line sql.y:884 + { + yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].colIdent, Type: string(yyDollar[3].str)}, Options: yyDollar[5].indexOptionsUnion()}}}} + setDDL(yylex, yyLOCAL) + } + yyVAL.union = yyLOCAL + case 104: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL *AlterTable +//line sql.y:889 + { + yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Fulltext: true}, Options: yyDollar[6].indexOptionsUnion()}}}} + setDDL(yylex, yyLOCAL) + } + yyVAL.union = yyLOCAL + case 105: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL *AlterTable +//line sql.y:894 + { + yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Spatial: true}, Options: yyDollar[6].indexOptionsUnion()}}}} + setDDL(yylex, yyLOCAL) + } + yyVAL.union = yyLOCAL + case 106: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL *AlterTable +//line sql.y:899 + { + yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Unique: true}, Options: yyDollar[6].indexOptionsUnion()}}}} + setDDL(yylex, yyLOCAL) + } + yyVAL.union = yyLOCAL + case 107: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL *CreateDatabase +//line sql.y:906 + { + yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()} + setDDL(yylex, yyLOCAL) + } + yyVAL.union = yyLOCAL + case 108: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *AlterDatabase +//line sql.y:913 + { + yyLOCAL = &AlterDatabase{} + setDDL(yylex, yyLOCAL) + } + yyVAL.union = yyLOCAL + case 111: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *TableSpec +//line sql.y:924 + { + yyLOCAL = yyDollar[2].tableSpecUnion() + yyLOCAL.Options = yyDollar[4].tableOptionsUnion() + } + yyVAL.union = yyLOCAL + case 112: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL []CollateAndCharset +//line sql.y:930 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 113: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []CollateAndCharset +//line sql.y:934 + { + yyLOCAL = yyDollar[1].collateAndCharsetsUnion() + } + yyVAL.union = yyLOCAL + case 114: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []CollateAndCharset +//line sql.y:940 + { + yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} + } + yyVAL.union = yyLOCAL + case 115: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []CollateAndCharset +//line sql.y:944 + { + yyLOCAL = []CollateAndCharset{yyDollar[1].collateAndCharset} + } + yyVAL.union = yyLOCAL + case 116: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:948 + { + yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) + } + case 117: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:952 + { + yySLICE := (*[]CollateAndCharset)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[2].collateAndCharset) + } + case 118: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:958 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 119: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:962 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 120: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:968 + { + yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} + } + case 121: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:972 + { + yyVAL.collateAndCharset = CollateAndCharset{Type: CharacterSetType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} + } + case 122: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:978 + { + yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (yyDollar[4].colIdent.String()), IsDefault: yyDollar[1].booleanUnion()} + } + case 123: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:982 + { + yyVAL.collateAndCharset = CollateAndCharset{Type: CollateType, Value: (encodeSQLString(yyDollar[4].str)), IsDefault: yyDollar[1].booleanUnion()} + } + case 124: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *OptLike +//line sql.y:989 + { + yyLOCAL = &OptLike{LikeTable: yyDollar[2].tableName} + } + yyVAL.union = yyLOCAL + case 125: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *OptLike +//line sql.y:993 + { + yyLOCAL = &OptLike{LikeTable: yyDollar[3].tableName} + } + yyVAL.union = yyLOCAL + case 126: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*ColumnDefinition +//line sql.y:999 + { + yyLOCAL = []*ColumnDefinition{yyDollar[1].columnDefinitionUnion()} + } + yyVAL.union = yyLOCAL + case 127: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1003 + { + yySLICE := (*[]*ColumnDefinition)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].columnDefinitionUnion()) + } + case 128: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *TableSpec +//line sql.y:1009 + { + yyLOCAL = &TableSpec{} + yyLOCAL.AddColumn(yyDollar[1].columnDefinitionUnion()) + } + yyVAL.union = yyLOCAL + case 129: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *TableSpec +//line sql.y:1014 + { + yyLOCAL = &TableSpec{} + yyLOCAL.AddConstraint(yyDollar[1].constraintDefinitionUnion()) + } + yyVAL.union = yyLOCAL + case 130: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1019 + { + yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) + } + case 131: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:1023 + { + yyVAL.tableSpecUnion().AddColumn(yyDollar[3].columnDefinitionUnion()) + yyVAL.tableSpecUnion().AddConstraint(yyDollar[4].constraintDefinitionUnion()) + } + case 132: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1028 + { + yyVAL.tableSpecUnion().AddIndex(yyDollar[3].indexDefinitionUnion()) + } + case 133: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1032 + { + yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) + } + case 134: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1036 + { + yyVAL.tableSpecUnion().AddConstraint(yyDollar[3].constraintDefinitionUnion()) + } + case 135: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *ColumnDefinition +//line sql.y:1042 + { + yyDollar[2].columnType.Options = yyDollar[3].columnTypeOptionsUnion() + yyDollar[2].columnType.Options.Reference = yyDollar[4].referenceDefinitionUnion() + yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} + } + yyVAL.union = yyLOCAL + case 136: + yyDollar = yyS[yypt-9 : yypt+1] + var yyLOCAL *ColumnDefinition +//line sql.y:1048 + { + yyDollar[2].columnType.Options = yyDollar[8].columnTypeOptionsUnion() + yyDollar[2].columnType.Options.As = yyDollar[6].exprUnion() + yyDollar[2].columnType.Options.Reference = yyDollar[9].referenceDefinitionUnion() + yyLOCAL = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} + } + yyVAL.union = yyLOCAL + case 137: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1056 + { + yyVAL.str = "" + } + case 138: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1060 + { + yyVAL.str = "" + } + case 139: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1069 + { + yyLOCAL = &ColumnTypeOptions{Null: nil, Default: nil, OnUpdate: nil, Autoincrement: false, KeyOpt: colKeyNone, Comment: nil, As: nil} + } + yyVAL.union = yyLOCAL + case 140: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1073 + { + val := true + yyDollar[1].columnTypeOptionsUnion().Null = &val + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 141: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1079 + { + val := false + yyDollar[1].columnTypeOptionsUnion().Null = &val + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 142: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1085 + { + yyDollar[1].columnTypeOptionsUnion().Default = yyDollar[3].exprUnion() + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 143: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1090 + { + yyDollar[1].columnTypeOptionsUnion().OnUpdate = yyDollar[4].exprUnion() + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 144: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1095 + { + yyDollar[1].columnTypeOptionsUnion().Autoincrement = true + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 145: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1100 + { + yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 146: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1105 + { + yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 147: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnStorage +//line sql.y:1112 + { + yyLOCAL = VirtualStorage + } + yyVAL.union = yyLOCAL + case 148: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnStorage +//line sql.y:1116 + { + yyLOCAL = StoredStorage + } + yyVAL.union = yyLOCAL + case 149: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1121 + { + yyLOCAL = &ColumnTypeOptions{} + } + yyVAL.union = yyLOCAL + case 150: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1125 + { + yyDollar[1].columnTypeOptionsUnion().Storage = yyDollar[2].columnStorageUnion() + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 151: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1130 + { + val := true + yyDollar[1].columnTypeOptionsUnion().Null = &val + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 152: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1136 + { + val := false + yyDollar[1].columnTypeOptionsUnion().Null = &val + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 153: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1142 + { + yyDollar[1].columnTypeOptionsUnion().Comment = NewStrLiteral(yyDollar[3].str) + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 154: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColumnTypeOptions +//line sql.y:1147 + { + yyDollar[1].columnTypeOptionsUnion().KeyOpt = yyDollar[2].colKeyOptUnion() + yyLOCAL = yyDollar[1].columnTypeOptionsUnion() + } + yyVAL.union = yyLOCAL + case 155: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL ColumnKeyOption +//line sql.y:1154 + { + yyLOCAL = colKeyPrimary + } + yyVAL.union = yyLOCAL + case 156: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnKeyOption +//line sql.y:1158 + { + yyLOCAL = colKeyUnique + } + yyVAL.union = yyLOCAL + case 157: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL ColumnKeyOption +//line sql.y:1162 + { + yyLOCAL = colKeyUniqueKey + } + yyVAL.union = yyLOCAL + case 158: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColumnKeyOption +//line sql.y:1166 + { + yyLOCAL = colKey + } + yyVAL.union = yyLOCAL + case 159: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1172 + { + yyVAL.columnType = yyDollar[1].columnType + yyVAL.columnType.Unsigned = yyDollar[2].booleanUnion() + yyVAL.columnType.Zerofill = yyDollar[3].booleanUnion() + } + case 163: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1183 + { + yyVAL.columnType = yyDollar[1].columnType + yyVAL.columnType.Length = yyDollar[2].literalUnion() + } + case 164: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1188 + { + yyVAL.columnType = yyDollar[1].columnType + } + case 165: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1194 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 166: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1198 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 167: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1202 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 168: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1206 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 169: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1210 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 170: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1214 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 171: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1218 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 172: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1222 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 173: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1226 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 174: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1232 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale + } + case 175: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1238 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale + } + case 176: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1244 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale + } + case 177: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1250 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale + } + case 178: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1256 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + yyVAL.columnType.Length = yyDollar[2].LengthScaleOption.Length + yyVAL.columnType.Scale = yyDollar[2].LengthScaleOption.Scale + } + case 179: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1264 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 180: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1268 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + case 181: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1272 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + case 182: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1276 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + case 183: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1280 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + case 184: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:1286 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} + } + case 185: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:1290 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Collate: yyDollar[4].str} + } + case 186: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1294 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + case 187: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1298 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + case 188: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1302 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} + } + case 189: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1306 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} + } + case 190: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1310 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} + } + case 191: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1314 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), Charset: yyDollar[2].str, Collate: yyDollar[3].str} + } + case 192: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1318 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 193: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1322 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 194: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1326 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 195: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1330 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 196: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1334 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 197: + yyDollar = yyS[yypt-6 : yypt+1] +//line sql.y:1338 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} + } + case 198: + yyDollar = yyS[yypt-6 : yypt+1] +//line sql.y:1343 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str), EnumValues: yyDollar[3].strs, Charset: yyDollar[5].str, Collate: yyDollar[6].str} + } + case 199: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1349 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 200: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1353 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 201: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1357 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 202: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1361 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 203: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1365 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 204: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1369 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 205: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1373 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 206: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1377 + { + yyVAL.columnType = ColumnType{Type: string(yyDollar[1].str)} + } + case 207: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1383 + { + yyVAL.strs = make([]string, 0, 4) + yyVAL.strs = append(yyVAL.strs, encodeSQLString(yyDollar[1].str)) + } + case 208: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1388 + { + yyVAL.strs = append(yyDollar[1].strs, encodeSQLString(yyDollar[3].str)) + } + case 209: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *Literal +//line sql.y:1393 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 210: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *Literal +//line sql.y:1397 + { + yyLOCAL = NewIntLiteral(yyDollar[2].str) + } + yyVAL.union = yyLOCAL + case 211: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1402 + { + yyVAL.LengthScaleOption = LengthScaleOption{} + } + case 212: + yyDollar = yyS[yypt-5 : yypt+1] +//line sql.y:1406 + { + yyVAL.LengthScaleOption = LengthScaleOption{ + Length: NewIntLiteral(yyDollar[2].str), + Scale: NewIntLiteral(yyDollar[4].str), + } + } + case 213: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1414 + { + yyVAL.LengthScaleOption = LengthScaleOption{} + } + case 214: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1418 + { + yyVAL.LengthScaleOption = LengthScaleOption{ + Length: NewIntLiteral(yyDollar[2].str), + } + } + case 215: + yyDollar = yyS[yypt-5 : yypt+1] +//line sql.y:1424 + { + yyVAL.LengthScaleOption = LengthScaleOption{ + Length: NewIntLiteral(yyDollar[2].str), + Scale: NewIntLiteral(yyDollar[4].str), + } + } + case 216: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:1432 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 217: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:1436 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 218: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:1440 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 219: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:1445 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 220: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:1449 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 221: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1454 + { + yyVAL.str = "" + } + case 222: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1458 + { + yyVAL.str = string(yyDollar[2].colIdent.String()) + } + case 223: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1462 + { + yyVAL.str = encodeSQLString(yyDollar[2].str) + } + case 224: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1466 + { + yyVAL.str = string(yyDollar[2].str) + } + case 225: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1471 + { + yyVAL.str = "" + } + case 226: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1475 + { + yyVAL.str = string(yyDollar[2].colIdent.String()) + } + case 227: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1479 + { + yyVAL.str = encodeSQLString(yyDollar[2].str) + } + case 228: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *IndexDefinition +//line sql.y:1486 + { + yyLOCAL = &IndexDefinition{Info: yyDollar[1].indexInfoUnion(), Columns: yyDollar[3].indexColumnsUnion(), Options: yyDollar[5].indexOptionsUnion()} + } + yyVAL.union = yyLOCAL + case 229: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL []*IndexOption +//line sql.y:1491 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 230: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*IndexOption +//line sql.y:1495 + { + yyLOCAL = yyDollar[1].indexOptionsUnion() + } + yyVAL.union = yyLOCAL + case 231: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*IndexOption +//line sql.y:1501 + { + yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} + } + yyVAL.union = yyLOCAL + case 232: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1505 + { + yySLICE := (*[]*IndexOption)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[2].indexOptionUnion()) + } + case 233: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *IndexOption +//line sql.y:1511 + { + yyLOCAL = yyDollar[1].indexOptionUnion() + } + yyVAL.union = yyLOCAL + case 234: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *IndexOption +//line sql.y:1515 + { + // should not be string + yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 235: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *IndexOption +//line sql.y:1520 + { + yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[2].str)} + } + yyVAL.union = yyLOCAL + case 236: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *IndexOption +//line sql.y:1524 + { + yyLOCAL = &IndexOption{Name: string(yyDollar[1].str) + " " + string(yyDollar[2].str), String: yyDollar[3].colIdent.String()} + } + yyVAL.union = yyLOCAL + case 237: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1530 + { + yyVAL.str = "" + } + case 238: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1534 + { + yyVAL.str = string(yyDollar[1].str) + } + case 239: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *IndexInfo +//line sql.y:1540 + { + yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent("PRIMARY"), Primary: true, Unique: true} + } + yyVAL.union = yyLOCAL + case 240: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *IndexInfo +//line sql.y:1544 + { + yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Spatial: true, Unique: false} + } + yyVAL.union = yyLOCAL + case 241: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *IndexInfo +//line sql.y:1548 + { + yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str) + " " + string(yyDollar[2].str), Name: NewColIdent(yyDollar[3].str), Fulltext: true, Unique: false} + } + yyVAL.union = yyLOCAL + case 242: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *IndexInfo +//line sql.y:1552 + { + yyLOCAL = &IndexInfo{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), ConstraintName: NewColIdent(yyDollar[1].str), Name: NewColIdent(yyDollar[4].str), Unique: true} + } + yyVAL.union = yyLOCAL + case 243: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *IndexInfo +//line sql.y:1556 + { + yyLOCAL = &IndexInfo{Type: string(yyDollar[1].str), Name: NewColIdent(yyDollar[2].str), Unique: false} + } + yyVAL.union = yyLOCAL + case 244: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1561 + { + yyVAL.str = "" + } + case 245: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1565 + { + yyVAL.str = yyDollar[2].str + } + case 246: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1571 + { + yyVAL.str = string(yyDollar[1].str) + } + case 247: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1575 + { + yyVAL.str = string(yyDollar[1].str) + } + case 248: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1579 + { + yyVAL.str = string(yyDollar[1].str) + } + case 249: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1586 + { + yyVAL.str = string(yyDollar[1].str) + } + case 250: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1590 + { + yyVAL.str = string(yyDollar[1].str) + } + case 251: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1595 + { + yyVAL.str = "key" + } + case 252: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1599 + { + yyVAL.str = yyDollar[1].str + } + case 253: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1605 + { + yyVAL.str = string(yyDollar[1].str) + } + case 254: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1609 + { + yyVAL.str = string(yyDollar[1].str) + } + case 255: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1614 + { + yyVAL.str = "" + } + case 256: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1618 + { + yyVAL.str = string(yyDollar[1].colIdent.String()) + } + case 257: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*IndexColumn +//line sql.y:1624 + { + yyLOCAL = []*IndexColumn{yyDollar[1].indexColumnUnion()} + } + yyVAL.union = yyLOCAL + case 258: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1628 + { + yySLICE := (*[]*IndexColumn)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].indexColumnUnion()) + } + case 259: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *IndexColumn +//line sql.y:1634 + { + yyLOCAL = &IndexColumn{Column: yyDollar[1].colIdent, Length: yyDollar[2].literalUnion(), Direction: yyDollar[3].orderDirectionUnion()} + } + yyVAL.union = yyLOCAL + case 260: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ConstraintDefinition +//line sql.y:1640 + { + yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} + } + yyVAL.union = yyLOCAL + case 261: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ConstraintDefinition +//line sql.y:1644 + { + yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} + } + yyVAL.union = yyLOCAL + case 262: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ConstraintDefinition +//line sql.y:1650 + { + yyLOCAL = &ConstraintDefinition{Name: yyDollar[2].colIdent, Details: yyDollar[3].constraintInfoUnion()} + } + yyVAL.union = yyLOCAL + case 263: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ConstraintDefinition +//line sql.y:1654 + { + yyLOCAL = &ConstraintDefinition{Details: yyDollar[1].constraintInfoUnion()} + } + yyVAL.union = yyLOCAL + case 264: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL ConstraintInfo +//line sql.y:1660 + { + yyLOCAL = &ForeignKeyDefinition{IndexName: NewColIdent(yyDollar[3].str), Source: yyDollar[5].columnsUnion(), ReferenceDefinition: yyDollar[7].referenceDefinitionUnion()} + } + yyVAL.union = yyLOCAL + case 265: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1666 + { + yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion()} + } + yyVAL.union = yyLOCAL + case 266: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1670 + { + yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion()} + } + yyVAL.union = yyLOCAL + case 267: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1674 + { + yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnUpdate: yyDollar[6].ReferenceActionUnion()} + } + yyVAL.union = yyLOCAL + case 268: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1678 + { + yyLOCAL = &ReferenceDefinition{ReferencedTable: yyDollar[2].tableName, ReferencedColumns: yyDollar[4].columnsUnion(), OnDelete: yyDollar[6].ReferenceActionUnion(), OnUpdate: yyDollar[7].ReferenceActionUnion()} + } + yyVAL.union = yyLOCAL + case 269: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1683 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 270: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ReferenceDefinition +//line sql.y:1687 + { + yyLOCAL = yyDollar[1].referenceDefinitionUnion() + } + yyVAL.union = yyLOCAL + case 271: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL ConstraintInfo +//line sql.y:1693 + { + yyLOCAL = &CheckConstraintDefinition{Expr: yyDollar[3].exprUnion(), Enforced: yyDollar[5].booleanUnion()} + } + yyVAL.union = yyLOCAL + case 272: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL ReferenceAction +//line sql.y:1699 + { + yyLOCAL = yyDollar[3].ReferenceActionUnion() + } + yyVAL.union = yyLOCAL + case 273: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL ReferenceAction +//line sql.y:1705 + { + yyLOCAL = yyDollar[3].ReferenceActionUnion() + } + yyVAL.union = yyLOCAL + case 274: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ReferenceAction +//line sql.y:1711 + { + yyLOCAL = Restrict + } + yyVAL.union = yyLOCAL + case 275: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ReferenceAction +//line sql.y:1715 + { + yyLOCAL = Cascade + } + yyVAL.union = yyLOCAL + case 276: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL ReferenceAction +//line sql.y:1719 + { + yyLOCAL = NoAction + } + yyVAL.union = yyLOCAL + case 277: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL ReferenceAction +//line sql.y:1723 + { + yyLOCAL = SetDefault + } + yyVAL.union = yyLOCAL + case 278: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL ReferenceAction +//line sql.y:1727 + { + yyLOCAL = SetNull + } + yyVAL.union = yyLOCAL + case 279: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1732 + { + yyVAL.str = "" + } + case 280: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1736 + { + yyVAL.str = string(yyDollar[1].str) + } + case 281: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1740 + { + yyVAL.str = string(yyDollar[1].str) + } + case 282: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:1745 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 283: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:1749 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 284: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL bool +//line sql.y:1753 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 285: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL TableOptions +//line sql.y:1758 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 286: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableOptions +//line sql.y:1762 + { + yyLOCAL = yyDollar[1].tableOptionsUnion() + } + yyVAL.union = yyLOCAL + case 287: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableOptions +//line sql.y:1768 + { + yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} + } + yyVAL.union = yyLOCAL + case 288: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1772 + { + yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].tableOptionUnion()) + } + case 289: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1776 + { + yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) + } + case 290: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableOptions +//line sql.y:1782 + { + yyLOCAL = TableOptions{yyDollar[1].tableOptionUnion()} + } + yyVAL.union = yyLOCAL + case 291: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1786 + { + yySLICE := (*TableOptions)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[2].tableOptionUnion()) + } + case 292: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1792 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 293: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1796 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 294: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1800 + { + yyLOCAL = &TableOption{Name: (string(yyDollar[2].str)), String: yyDollar[4].str} + } + yyVAL.union = yyLOCAL + case 295: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1804 + { + yyLOCAL = &TableOption{Name: string(yyDollar[2].str), String: yyDollar[4].str} + } + yyVAL.union = yyLOCAL + case 296: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1808 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 297: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1812 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 298: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1816 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 299: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1820 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 300: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1824 + { + yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} + } + yyVAL.union = yyLOCAL + case 301: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1828 + { + yyLOCAL = &TableOption{Name: (string(yyDollar[1].str) + " " + string(yyDollar[2].str)), Value: NewStrLiteral(yyDollar[4].str)} + } + yyVAL.union = yyLOCAL + case 302: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1832 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 303: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1836 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 304: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1840 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: yyDollar[3].tableIdent.String()} + } + yyVAL.union = yyLOCAL + case 305: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1844 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 306: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1848 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 307: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1852 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 308: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1856 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 309: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1860 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 310: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1864 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 311: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1868 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewStrLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 312: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1872 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 313: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1876 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 314: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1880 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 315: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1884 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 316: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1888 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: string(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 317: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1892 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Value: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 318: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1896 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), String: (yyDollar[3].colIdent.String() + yyDollar[4].str)} + } + yyVAL.union = yyLOCAL + case 319: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *TableOption +//line sql.y:1900 + { + yyLOCAL = &TableOption{Name: string(yyDollar[1].str), Tables: yyDollar[4].tableNamesUnion()} + } + yyVAL.union = yyLOCAL + case 320: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1905 + { + yyVAL.str = "" + } + case 321: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1909 + { + yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + } + case 322: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:1913 + { + yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + } + case 332: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1932 + { + yyVAL.str = yyDollar[1].colIdent.String() + } + case 333: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1936 + { + yyVAL.str = encodeSQLString(yyDollar[1].str) + } + case 334: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:1940 + { + yyVAL.str = string(yyDollar[1].str) + } + case 335: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:1945 + { + yyVAL.str = "" + } + case 337: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:1951 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 338: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:1955 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 339: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ColName +//line sql.y:1960 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 340: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ColName +//line sql.y:1964 + { + yyLOCAL = yyDollar[2].colNameUnion() + } + yyVAL.union = yyLOCAL + case 341: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:1969 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 342: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:1973 + { + yyLOCAL = yyDollar[1].alterOptionsUnion() + } + yyVAL.union = yyLOCAL + case 343: + yyDollar = yyS[yypt-5 : yypt+1] +//line sql.y:1977 + { + yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, &OrderByOption{Cols: yyDollar[5].columnsUnion()}) + } + case 344: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:1981 + { + yyLOCAL = yyDollar[1].alterOptionsUnion() + } + yyVAL.union = yyLOCAL + case 345: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1985 + { + yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].alterOptionsUnion()...) + } + case 346: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:1989 + { + yyLOCAL = append(append(yyDollar[1].alterOptionsUnion(), yyDollar[3].alterOptionsUnion()...), &OrderByOption{Cols: yyDollar[7].columnsUnion()}) + } + yyVAL.union = yyLOCAL + case 347: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:1995 + { + yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} + } + yyVAL.union = yyLOCAL + case 348: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:1999 + { + yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) + } + case 349: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:2003 + { + yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) + } + case 350: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2009 + { + yyLOCAL = yyDollar[1].tableOptionsUnion() + } + yyVAL.union = yyLOCAL + case 351: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2013 + { + yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} + } + yyVAL.union = yyLOCAL + case 352: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2017 + { + yyLOCAL = &AddConstraintDefinition{ConstraintDefinition: yyDollar[2].constraintDefinitionUnion()} + } + yyVAL.union = yyLOCAL + case 353: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2021 + { + yyLOCAL = &AddIndexDefinition{IndexDefinition: yyDollar[2].indexDefinitionUnion()} + } + yyVAL.union = yyLOCAL + case 354: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2025 + { + yyLOCAL = &AddColumns{Columns: yyDollar[4].columnDefinitionsUnion()} + } + yyVAL.union = yyLOCAL + case 355: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2029 + { + yyLOCAL = &AddColumns{Columns: []*ColumnDefinition{yyDollar[3].columnDefinitionUnion()}, First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} + } + yyVAL.union = yyLOCAL + case 356: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2033 + { + yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: true} + } + yyVAL.union = yyLOCAL + case 357: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2037 + { + yyLOCAL = &AlterColumn{Column: yyDollar[3].colNameUnion(), DropDefault: false, DefaultVal: yyDollar[6].exprUnion()} + } + yyVAL.union = yyLOCAL + case 358: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2041 + { + yyLOCAL = &ChangeColumn{OldColumn: yyDollar[3].colNameUnion(), NewColDefinition: yyDollar[4].columnDefinitionUnion(), First: yyDollar[5].booleanUnion(), After: yyDollar[6].colNameUnion()} + } + yyVAL.union = yyLOCAL + case 359: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2045 + { + yyLOCAL = &ModifyColumn{NewColDefinition: yyDollar[3].columnDefinitionUnion(), First: yyDollar[4].booleanUnion(), After: yyDollar[5].colNameUnion()} + } + yyVAL.union = yyLOCAL + case 360: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2049 + { + yyLOCAL = &AlterCharset{CharacterSet: yyDollar[4].str, Collate: yyDollar[5].str} + } + yyVAL.union = yyLOCAL + case 361: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2053 + { + yyLOCAL = &KeyState{Enable: false} + } + yyVAL.union = yyLOCAL + case 362: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2057 + { + yyLOCAL = &KeyState{Enable: true} + } + yyVAL.union = yyLOCAL + case 363: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2061 + { + yyLOCAL = &TablespaceOperation{Import: false} + } + yyVAL.union = yyLOCAL + case 364: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2065 + { + yyLOCAL = &TablespaceOperation{Import: true} + } + yyVAL.union = yyLOCAL + case 365: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2069 + { + yyLOCAL = &DropColumn{Name: yyDollar[3].colNameUnion()} + } + yyVAL.union = yyLOCAL + case 366: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2073 + { + yyLOCAL = &DropKey{Type: NormalKeyType, Name: yyDollar[3].colIdent} + } + yyVAL.union = yyLOCAL + case 367: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2077 + { + yyLOCAL = &DropKey{Type: PrimaryKeyType} + } + yyVAL.union = yyLOCAL + case 368: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2081 + { + yyLOCAL = &DropKey{Type: ForeignKeyType, Name: yyDollar[4].colIdent} + } + yyVAL.union = yyLOCAL + case 369: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2085 + { + yyLOCAL = &Force{} + } + yyVAL.union = yyLOCAL + case 370: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2089 + { + yyLOCAL = &RenameTableName{Table: yyDollar[3].tableName} + } + yyVAL.union = yyLOCAL + case 371: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2093 + { + yyLOCAL = &RenameIndex{OldName: yyDollar[3].colIdent, NewName: yyDollar[5].colIdent} + } + yyVAL.union = yyLOCAL + case 372: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:2099 + { + yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} + } + yyVAL.union = yyLOCAL + case 373: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:2103 + { + yySLICE := (*[]AlterOption)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].alterOptionUnion()) + } + case 374: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2109 + { + yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) + } + yyVAL.union = yyLOCAL + case 375: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2113 + { + yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) + } + yyVAL.union = yyLOCAL + case 376: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2117 + { + yyLOCAL = AlgorithmValue(string(yyDollar[3].str)) + } + yyVAL.union = yyLOCAL + case 377: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2121 + { + yyLOCAL = &LockOption{Type: DefaultType} + } + yyVAL.union = yyLOCAL + case 378: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2125 + { + yyLOCAL = &LockOption{Type: NoneType} + } + yyVAL.union = yyLOCAL + case 379: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2129 + { + yyLOCAL = &LockOption{Type: SharedType} + } + yyVAL.union = yyLOCAL + case 380: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2133 + { + yyLOCAL = &LockOption{Type: ExclusiveType} + } + yyVAL.union = yyLOCAL + case 381: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2137 + { + yyLOCAL = &Validation{With: true} + } + yyVAL.union = yyLOCAL + case 382: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:2141 + { + yyLOCAL = &Validation{With: false} + } + yyVAL.union = yyLOCAL + case 383: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2147 + { + yyDollar[1].alterTableUnion().FullyParsed = true + yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() + yyLOCAL = yyDollar[1].alterTableUnion() + } + yyVAL.union = yyLOCAL + case 384: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2153 + { + yyDollar[1].alterTableUnion().FullyParsed = true + yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() + yyDollar[1].alterTableUnion().PartitionSpec = &PartitionSpec{Action: RemoveAction} + yyLOCAL = yyDollar[1].alterTableUnion() + } + yyVAL.union = yyLOCAL + case 385: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2160 + { + yyDollar[1].alterTableUnion().FullyParsed = true + yyDollar[1].alterTableUnion().AlterOptions = yyDollar[2].alterOptionsUnion() + yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[4].partSpecUnion() + yyLOCAL = yyDollar[1].alterTableUnion() + } + yyVAL.union = yyLOCAL + case 386: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2167 + { + yyDollar[1].alterTableUnion().FullyParsed = true + yyDollar[1].alterTableUnion().PartitionSpec = yyDollar[2].partSpecUnion() + yyLOCAL = yyDollar[1].alterTableUnion() + } + yyVAL.union = yyLOCAL + case 387: + yyDollar = yyS[yypt-11 : yypt+1] + var yyLOCAL Statement +//line sql.y:2173 + { + yyLOCAL = &AlterView{ViewName: yyDollar[7].tableName.ToViewName(), Algorithm: yyDollar[3].str, Definer: yyDollar[4].str, Security: yyDollar[5].str, Columns: yyDollar[8].columnsUnion(), Select: yyDollar[10].selStmtUnion(), CheckOption: yyDollar[11].str} + } + yyVAL.union = yyLOCAL + case 388: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2177 + { + yyDollar[1].alterDatabaseUnion().FullyParsed = true + yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent + yyDollar[1].alterDatabaseUnion().AlterOptions = yyDollar[3].collateAndCharsetsUnion() + yyLOCAL = yyDollar[1].alterDatabaseUnion() + } + yyVAL.union = yyLOCAL + case 389: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:2184 + { + yyDollar[1].alterDatabaseUnion().FullyParsed = true + yyDollar[1].alterDatabaseUnion().DBName = yyDollar[2].tableIdent + yyDollar[1].alterDatabaseUnion().UpdateDataDirectory = true + yyLOCAL = yyDollar[1].alterDatabaseUnion() + } + yyVAL.union = yyLOCAL + case 390: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Statement +//line sql.y:2191 + { + yyLOCAL = &AlterVschema{ + Action: CreateVindexDDLAction, + Table: yyDollar[6].tableName, + VindexSpec: &VindexSpec{ + Name: NewColIdent(yyDollar[6].tableName.Name.String()), + Type: yyDollar[7].colIdent, + Params: yyDollar[8].vindexParamsUnion(), + }, + } + } + yyVAL.union = yyLOCAL + case 391: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:2203 + { + yyLOCAL = &AlterVschema{ + Action: DropVindexDDLAction, + Table: yyDollar[6].tableName, + VindexSpec: &VindexSpec{ + Name: NewColIdent(yyDollar[6].tableName.Name.String()), + }, + } + } + yyVAL.union = yyLOCAL + case 392: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:2213 + { + yyLOCAL = &AlterVschema{Action: AddVschemaTableDDLAction, Table: yyDollar[6].tableName} + } + yyVAL.union = yyLOCAL + case 393: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:2217 + { + yyLOCAL = &AlterVschema{Action: DropVschemaTableDDLAction, Table: yyDollar[6].tableName} + } + yyVAL.union = yyLOCAL + case 394: + yyDollar = yyS[yypt-13 : yypt+1] + var yyLOCAL Statement +//line sql.y:2221 + { + yyLOCAL = &AlterVschema{ + Action: AddColVindexDDLAction, + Table: yyDollar[5].tableName, + VindexSpec: &VindexSpec{ + Name: yyDollar[8].colIdent, + Type: yyDollar[12].colIdent, + Params: yyDollar[13].vindexParamsUnion(), + }, + VindexCols: yyDollar[10].columnsUnion(), + } + } + yyVAL.union = yyLOCAL + case 395: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Statement +//line sql.y:2234 + { + yyLOCAL = &AlterVschema{ + Action: DropColVindexDDLAction, + Table: yyDollar[5].tableName, + VindexSpec: &VindexSpec{ + Name: yyDollar[8].colIdent, + }, + } + } + yyVAL.union = yyLOCAL + case 396: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:2244 + { + yyLOCAL = &AlterVschema{Action: AddSequenceDDLAction, Table: yyDollar[6].tableName} + } + yyVAL.union = yyLOCAL + case 397: + yyDollar = yyS[yypt-10 : yypt+1] + var yyLOCAL Statement +//line sql.y:2248 + { + yyLOCAL = &AlterVschema{ + Action: AddAutoIncDDLAction, + Table: yyDollar[5].tableName, + AutoIncSpec: &AutoIncSpec{ + Column: yyDollar[8].colIdent, + Sequence: yyDollar[10].tableName, + }, + } + } + yyVAL.union = yyLOCAL + case 398: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2259 + { + yyLOCAL = &AlterMigration{ + Type: RetryMigrationType, + UUID: string(yyDollar[4].str), + } + } + yyVAL.union = yyLOCAL + case 399: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2266 + { + yyLOCAL = &AlterMigration{ + Type: CompleteMigrationType, + UUID: string(yyDollar[4].str), + } + } + yyVAL.union = yyLOCAL + case 400: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2273 + { + yyLOCAL = &AlterMigration{ + Type: CancelMigrationType, + UUID: string(yyDollar[4].str), + } + } + yyVAL.union = yyLOCAL + case 401: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2280 + { + yyLOCAL = &AlterMigration{ + Type: CancelAllMigrationType, + } + } + yyVAL.union = yyLOCAL + case 402: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *PartitionOption +//line sql.y:2287 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 403: + yyDollar = yyS[yypt-10 : yypt+1] + var yyLOCAL *PartitionOption +//line sql.y:2292 + { + yyLOCAL = &PartitionOption{Linear: yyDollar[3].str, HASH: yyDollar[4].colIdent, Expr: yyDollar[6].exprUnion(), Partitions: yyDollar[8].str, + SubPartition: yyDollar[9].subPartitionUnion(), Definitions: yyDollar[10].partDefsUnion()} + } + yyVAL.union = yyLOCAL + case 404: + yyDollar = yyS[yypt-11 : yypt+1] + var yyLOCAL *PartitionOption +//line sql.y:2298 + { + yyLOCAL = &PartitionOption{ + Linear: yyDollar[3].str, + isKEY: true, + KeyAlgorithm: yyDollar[5].str, + KeyColList: yyDollar[7].columnsUnion(), + Partitions: yyDollar[9].str, + SubPartition: yyDollar[10].subPartitionUnion(), + Definitions: yyDollar[11].partDefsUnion(), + } + } + yyVAL.union = yyLOCAL + case 405: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL *PartitionOption +//line sql.y:2311 + { + yyLOCAL = &PartitionOption{RANGE_or_LIST: yyDollar[3].str, Expr_or_Col: yyDollar[4].exprOrColumnsUnion(), Partitions: yyDollar[5].str, + SubPartition: yyDollar[6].subPartitionUnion(), Definitions: yyDollar[7].partDefsUnion()} + } + yyVAL.union = yyLOCAL + case 406: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *SubPartition +//line sql.y:2317 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 407: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL *SubPartition +//line sql.y:2321 + { + yyLOCAL = &SubPartition{Linear: yyDollar[3].str, HASH: yyDollar[4].colIdent, Expr: yyDollar[6].exprUnion(), SubPartitions: yyDollar[8].str} + } + yyVAL.union = yyLOCAL + case 408: + yyDollar = yyS[yypt-9 : yypt+1] + var yyLOCAL *SubPartition +//line sql.y:2325 + { + yyLOCAL = &SubPartition{Linear: yyDollar[3].str, isKEY: true, KeyAlgorithm: yyDollar[5].str, + KeyColList: yyDollar[7].columnsUnion(), SubPartitions: yyDollar[9].str} + } + yyVAL.union = yyLOCAL + case 409: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL []*PartitionDefinition +//line sql.y:2331 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 410: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*PartitionDefinition +//line sql.y:2335 + { + yyLOCAL = yyDollar[1].partDefsUnion() + } + yyVAL.union = yyLOCAL + case 411: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2340 + { + yyVAL.str = "" + } + case 412: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2344 + { + yyVAL.str = string(yyDollar[1].str) + } + case 413: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2349 + { + yyVAL.str = "" + } + case 414: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:2353 + { + yyVAL.str = string(yyDollar[3].str) + } + case 415: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2359 + { + yyVAL.str = string(yyDollar[1].str) + } + case 416: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2363 + { + yyVAL.str = string(yyDollar[1].str) + } + case 417: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ExprOrColumns +//line sql.y:2369 + { + yyLOCAL = &ExprOrColumns{Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 418: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *ExprOrColumns +//line sql.y:2373 + { + yyLOCAL = &ExprOrColumns{ColumnList: yyDollar[3].columnsUnion()} + } + yyVAL.union = yyLOCAL + case 419: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2378 + { + yyVAL.str = "" + } + case 420: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:2382 + { + yyVAL.str = string(yyDollar[2].str) + } + case 421: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2387 + { + yyVAL.str = "" + } + case 422: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:2391 + { + yyVAL.str = string(yyDollar[2].str) + } + case 423: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2397 + { + yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} + } + yyVAL.union = yyLOCAL + case 424: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2401 + { + yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 425: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2405 + { + yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} + } + yyVAL.union = yyLOCAL + case 426: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2409 + { + yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 427: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2413 + { + yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} + } + yyVAL.union = yyLOCAL + case 428: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2417 + { + yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 429: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2421 + { + yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} + } + yyVAL.union = yyLOCAL + case 430: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2425 + { + yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 431: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2429 + { + yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} + } + yyVAL.union = yyLOCAL + case 432: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2433 + { + yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 433: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2437 + { + yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} + } + yyVAL.union = yyLOCAL + case 434: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2441 + { + yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 435: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2445 + { + yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} + } + yyVAL.union = yyLOCAL + case 436: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2449 + { + yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 437: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2453 + { + yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} + } + yyVAL.union = yyLOCAL + case 438: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2457 + { + yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 439: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2461 + { + yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} + } + yyVAL.union = yyLOCAL + case 440: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2465 + { + yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 441: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2469 + { + yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} + } + yyVAL.union = yyLOCAL + case 442: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2473 + { + yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} + } + yyVAL.union = yyLOCAL + case 443: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2477 + { + yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} + } + yyVAL.union = yyLOCAL + case 444: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *PartitionSpec +//line sql.y:2481 + { + yyLOCAL = &PartitionSpec{Action: UpgradeAction} + } + yyVAL.union = yyLOCAL + case 445: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:2486 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 446: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL bool +//line sql.y:2490 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 447: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL bool +//line sql.y:2494 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 448: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*PartitionDefinition +//line sql.y:2501 + { + yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} + } + yyVAL.union = yyLOCAL + case 449: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:2505 + { + yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) + } + case 450: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL *PartitionDefinition +//line sql.y:2511 + { + yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} + } + yyVAL.union = yyLOCAL + case 451: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL *PartitionDefinition +//line sql.y:2515 + { + yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} + } + yyVAL.union = yyLOCAL + case 452: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2521 + { + yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} + } + yyVAL.union = yyLOCAL + case 453: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL []*RenameTablePair +//line sql.y:2527 + { + yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} + } + yyVAL.union = yyLOCAL + case 454: + yyDollar = yyS[yypt-5 : yypt+1] +//line sql.y:2531 + { + yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) + } + case 455: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:2537 + { + yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} + } + yyVAL.union = yyLOCAL + case 456: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:2541 + { + // Change this to an alter statement + if yyDollar[4].colIdent.Lowered() == "primary" { + yyLOCAL = &AlterTable{FullyParsed: true, Table: yyDollar[6].tableName, AlterOptions: append([]AlterOption{&DropKey{Type: PrimaryKeyType}}, yyDollar[7].alterOptionsUnion()...)} + } else { + yyLOCAL = &AlterTable{FullyParsed: true, Table: yyDollar[6].tableName, AlterOptions: append([]AlterOption{&DropKey{Type: NormalKeyType, Name: yyDollar[4].colIdent}}, yyDollar[7].alterOptionsUnion()...)} + } + } + yyVAL.union = yyLOCAL + case 457: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:2550 + { + yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} + } + yyVAL.union = yyLOCAL + case 458: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2554 + { + yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} + } + yyVAL.union = yyLOCAL + case 459: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2560 + { + yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} + } + yyVAL.union = yyLOCAL + case 460: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2564 + { + yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} + } + yyVAL.union = yyLOCAL + case 461: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2569 + { + yyLOCAL = &OtherRead{} + } + yyVAL.union = yyLOCAL + case 462: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2575 + { + yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 463: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2579 + { + yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 464: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:2583 + { + yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 465: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2587 + { + yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 466: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2591 + { + yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 467: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2595 + { + yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 468: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2599 + { + yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 469: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2603 + { + yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 470: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:2607 + { + yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 471: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2611 + { + yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 472: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2615 + { + yyLOCAL = &Show{&ShowBasic{Command: Privilege}} + } + yyVAL.union = yyLOCAL + case 473: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2619 + { + yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 474: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2623 + { + yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 475: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2627 + { + yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 476: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2631 + { + yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 477: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2635 + { + yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 478: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2639 + { + yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 479: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2643 + { + yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 480: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2647 + { + yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} + } + yyVAL.union = yyLOCAL + case 481: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2651 + { + yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} + } + yyVAL.union = yyLOCAL + case 482: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2655 + { + yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} + } + yyVAL.union = yyLOCAL + case 483: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2659 + { + yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} + } + yyVAL.union = yyLOCAL + case 484: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2663 + { + yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} + } + yyVAL.union = yyLOCAL + case 485: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2667 + { + yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} + } + yyVAL.union = yyLOCAL + case 486: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2671 + { + yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} + } + yyVAL.union = yyLOCAL + case 487: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2675 + { + yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} + } + yyVAL.union = yyLOCAL + case 488: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2679 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 489: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2683 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 490: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2687 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 491: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2691 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 492: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2695 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 493: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2699 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 494: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2703 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 495: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2707 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 496: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2711 + { + yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} + } + yyVAL.union = yyLOCAL + case 497: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2715 + { + yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} + } + yyVAL.union = yyLOCAL + case 498: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2719 + { + showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} + yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} + } + yyVAL.union = yyLOCAL + case 499: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2724 + { + yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} + } + yyVAL.union = yyLOCAL + case 500: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:2728 + { + yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)} + } + yyVAL.union = yyLOCAL + case 501: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2732 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 502: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2736 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 503: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2740 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 504: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2744 + { + yyLOCAL = &Show{&ShowBasic{Command: Warnings}} + } + yyVAL.union = yyLOCAL + case 505: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2749 + { + // This should probably be a different type (ShowVitessTopoOpt), but + // just getting the thing working for now + showTablesOpt := &ShowTablesOpt{Filter: yyDollar[3].showFilterUnion()} + yyLOCAL = &Show{&ShowLegacy{Type: yyDollar[2].str, ShowTablesOpt: showTablesOpt}} + } + yyVAL.union = yyLOCAL + case 506: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2763 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 507: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2767 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 508: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2771 + { + yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} + } + yyVAL.union = yyLOCAL + case 509: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2777 + { + yyVAL.str = string(yyDollar[1].str) + } + case 510: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2781 + { + yyVAL.str = string(yyDollar[1].str) + } + case 511: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2787 + { + yyVAL.str = "" + } + case 512: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2791 + { + yyVAL.str = "extended " + } + case 513: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:2797 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 514: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:2801 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 515: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2807 + { + yyVAL.str = string(yyDollar[1].str) + } + case 516: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2811 + { + yyVAL.str = string(yyDollar[1].str) + } + case 517: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2817 + { + yyVAL.tableIdent = NewTableIdent("") + } + case 518: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:2821 + { + yyVAL.tableIdent = yyDollar[2].tableIdent + } + case 519: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:2825 + { + yyVAL.tableIdent = yyDollar[2].tableIdent + } + case 520: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ShowFilter +//line sql.y:2831 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 521: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ShowFilter +//line sql.y:2835 + { + yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} + } + yyVAL.union = yyLOCAL + case 522: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ShowFilter +//line sql.y:2839 + { + yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 523: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *ShowFilter +//line sql.y:2845 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 524: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ShowFilter +//line sql.y:2849 + { + yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} + } + yyVAL.union = yyLOCAL + case 525: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2855 + { + yyVAL.empty = struct{}{} + } + case 526: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2859 + { + yyVAL.empty = struct{}{} + } + case 527: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2863 + { + yyVAL.empty = struct{}{} + } + case 528: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2869 + { + yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} + } + yyVAL.union = yyLOCAL + case 529: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:2873 + { + yyLOCAL = &Use{DBName: TableIdent{v: ""}} + } + yyVAL.union = yyLOCAL + case 530: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:2879 + { + yyLOCAL = &Begin{} + } + yyVAL.union = yyLOCAL + case 531: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2883 + { + yyLOCAL = &Begin{} + } + yyVAL.union = yyLOCAL + case 532: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:2889 + { + yyLOCAL = &Commit{} + } + yyVAL.union = yyLOCAL + case 533: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:2895 + { + yyLOCAL = &Rollback{} + } + yyVAL.union = yyLOCAL + case 534: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:2899 + { + yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} + } + yyVAL.union = yyLOCAL + case 535: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2904 + { + yyVAL.empty = struct{}{} + } + case 536: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2906 + { + yyVAL.empty = struct{}{} + } + case 537: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2909 + { + yyVAL.empty = struct{}{} + } + case 538: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2911 + { + yyVAL.empty = struct{}{} + } + case 539: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:2916 + { + yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} + } + yyVAL.union = yyLOCAL + case 540: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2922 + { + yyLOCAL = &Release{Name: yyDollar[3].colIdent} + } + yyVAL.union = yyLOCAL + case 541: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL ExplainType +//line sql.y:2927 + { + yyLOCAL = EmptyType + } + yyVAL.union = yyLOCAL + case 542: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL ExplainType +//line sql.y:2931 + { + yyLOCAL = JSONType + } + yyVAL.union = yyLOCAL + case 543: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL ExplainType +//line sql.y:2935 + { + yyLOCAL = TreeType + } + yyVAL.union = yyLOCAL + case 544: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL ExplainType +//line sql.y:2939 + { + yyLOCAL = VitessType + } + yyVAL.union = yyLOCAL + case 545: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL ExplainType +//line sql.y:2943 + { + yyLOCAL = TraditionalType + } + yyVAL.union = yyLOCAL + case 546: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ExplainType +//line sql.y:2947 + { + yyLOCAL = AnalyzeType + } + yyVAL.union = yyLOCAL + case 547: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2953 + { + yyVAL.str = yyDollar[1].str + } + case 548: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2957 + { + yyVAL.str = yyDollar[1].str + } + case 549: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2961 + { + yyVAL.str = yyDollar[1].str + } + case 550: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:2967 + { + yyLOCAL = yyDollar[1].selStmtUnion() + } + yyVAL.union = yyLOCAL + case 551: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:2971 + { + yyLOCAL = yyDollar[1].statementUnion() + } + yyVAL.union = yyLOCAL + case 552: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:2975 + { + yyLOCAL = yyDollar[1].statementUnion() + } + yyVAL.union = yyLOCAL + case 553: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Statement +//line sql.y:2979 + { + yyLOCAL = yyDollar[1].statementUnion() + } + yyVAL.union = yyLOCAL + case 554: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:2984 + { + yyVAL.str = "" + } + case 555: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2988 + { + yyVAL.str = yyDollar[1].colIdent.val + } + case 556: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:2992 + { + yyVAL.str = encodeSQLString(yyDollar[1].str) + } + case 557: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:2998 + { + yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} + } + yyVAL.union = yyLOCAL + case 558: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:3002 + { + yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} + } + yyVAL.union = yyLOCAL + case 559: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:3008 + { + yyLOCAL = &OtherAdmin{} + } + yyVAL.union = yyLOCAL + case 560: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:3012 + { + yyLOCAL = &OtherAdmin{} + } + yyVAL.union = yyLOCAL + case 561: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:3018 + { + yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} + } + yyVAL.union = yyLOCAL + case 562: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableAndLockTypes +//line sql.y:3024 + { + yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} + } + yyVAL.union = yyLOCAL + case 563: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3028 + { + yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) + } + case 564: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *TableAndLockType +//line sql.y:3034 + { + yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} + } + yyVAL.union = yyLOCAL + case 565: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL LockType +//line sql.y:3040 + { + yyLOCAL = Read + } + yyVAL.union = yyLOCAL + case 566: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL LockType +//line sql.y:3044 + { + yyLOCAL = ReadLocal + } + yyVAL.union = yyLOCAL + case 567: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL LockType +//line sql.y:3048 + { + yyLOCAL = Write + } + yyVAL.union = yyLOCAL + case 568: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL LockType +//line sql.y:3052 + { + yyLOCAL = LowPriorityWrite + } + yyVAL.union = yyLOCAL + case 569: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Statement +//line sql.y:3058 + { + yyLOCAL = &UnlockTables{} + } + yyVAL.union = yyLOCAL + case 570: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:3064 + { + yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} + } + yyVAL.union = yyLOCAL + case 571: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:3070 + { + yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} + } + yyVAL.union = yyLOCAL + case 572: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Statement +//line sql.y:3074 + { + yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} + } + yyVAL.union = yyLOCAL + case 573: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:3078 + { + yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} + } + yyVAL.union = yyLOCAL + case 574: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Statement +//line sql.y:3082 + { + yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} + } + yyVAL.union = yyLOCAL + case 575: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL Statement +//line sql.y:3086 + { + yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} + } + yyVAL.union = yyLOCAL + case 576: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Statement +//line sql.y:3090 + { + yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} + } + yyVAL.union = yyLOCAL + case 577: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3096 + { + yyVAL.strs = []string{yyDollar[1].str} + } + case 578: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3100 + { + yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) + } + case 579: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3106 + { + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + } + case 580: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3110 + { + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + } + case 581: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3114 + { + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + } + case 582: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3118 + { + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + } + case 583: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3122 + { + yyVAL.str = string(yyDollar[1].str) + } + case 584: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3126 + { + yyVAL.str = string(yyDollar[1].str) + } + case 585: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3130 + { + yyVAL.str = string(yyDollar[1].str) + } + case 586: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3134 + { + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str + } + case 587: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3138 + { + yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + } + case 588: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3142 + { + yyVAL.str = string(yyDollar[1].str) + } + case 589: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3146 + { + yyVAL.str = string(yyDollar[1].str) + } + case 590: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3150 + { + yyVAL.str = string(yyDollar[1].str) + } + case 591: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:3155 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 592: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:3159 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 593: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:3163 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 594: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3168 + { + yyVAL.str = "" + } + case 595: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3172 + { + yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() + } + case 596: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3177 + { + setAllowComments(yylex, true) + } + case 597: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3181 + { + yyVAL.strs = yyDollar[2].strs + setAllowComments(yylex, false) + } + case 598: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3187 + { + yyVAL.strs = nil + } + case 599: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3191 + { + yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) + } + case 600: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:3197 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 601: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL bool +//line sql.y:3201 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 602: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL bool +//line sql.y:3205 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 603: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3210 + { + yyVAL.str = "" + } + case 604: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3214 + { + yyVAL.str = SQLNoCacheStr + } + case 605: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3218 + { + yyVAL.str = SQLCacheStr + } + case 606: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:3223 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 607: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:3227 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 608: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:3231 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 609: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL SelectExprs +//line sql.y:3236 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 610: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL SelectExprs +//line sql.y:3240 + { + yyLOCAL = yyDollar[1].selectExprsUnion() + } + yyVAL.union = yyLOCAL + case 611: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3245 + { + yyVAL.strs = nil + } + case 612: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3249 + { + yyVAL.strs = []string{yyDollar[1].str} + } + case 613: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3253 + { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' + yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} + } + case 614: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3257 + { + yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} + } + case 615: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:3261 + { + yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} + } + case 616: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3267 + { + yyVAL.str = SQLNoCacheStr + } + case 617: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3271 + { + yyVAL.str = SQLCacheStr + } + case 618: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3275 + { + yyVAL.str = DistinctStr + } + case 619: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3279 + { + yyVAL.str = DistinctStr + } + case 620: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3283 + { + yyVAL.str = StraightJoinHint + } + case 621: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3287 + { + yyVAL.str = SQLCalcFoundRowsStr + } + case 622: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3291 + { + yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway + } + case 623: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL SelectExprs +//line sql.y:3297 + { + yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} + } + yyVAL.union = yyLOCAL + case 624: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3301 + { + yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) + } + case 625: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL SelectExpr +//line sql.y:3307 + { + yyLOCAL = &StarExpr{} + } + yyVAL.union = yyLOCAL + case 626: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL SelectExpr +//line sql.y:3311 + { + yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} + } + yyVAL.union = yyLOCAL + case 627: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL SelectExpr +//line sql.y:3315 + { + yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} + } + yyVAL.union = yyLOCAL + case 628: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL SelectExpr +//line sql.y:3319 + { + yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} + } + yyVAL.union = yyLOCAL + case 629: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3324 + { + yyVAL.colIdent = ColIdent{} + } + case 630: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3328 + { + yyVAL.colIdent = yyDollar[1].colIdent + } + case 631: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3332 + { + yyVAL.colIdent = yyDollar[2].colIdent + } + case 633: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3339 + { + yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) + } + case 634: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL TableExprs +//line sql.y:3344 + { + yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} + } + yyVAL.union = yyLOCAL + case 635: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL TableExprs +//line sql.y:3348 + { + yyLOCAL = yyDollar[2].tableExprsUnion() + } + yyVAL.union = yyLOCAL + case 636: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableExprs +//line sql.y:3354 + { + yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} + } + yyVAL.union = yyLOCAL + case 637: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3358 + { + yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) + } + case 640: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL TableExpr +//line sql.y:3368 + { + yyLOCAL = yyDollar[1].aliasedTableNameUnion() + } + yyVAL.union = yyLOCAL + case 641: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL TableExpr +//line sql.y:3372 + { + yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} + } + yyVAL.union = yyLOCAL + case 642: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL TableExpr +//line sql.y:3376 + { + yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} + } + yyVAL.union = yyLOCAL + case 643: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *DerivedTable +//line sql.y:3382 + { + yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} + } + yyVAL.union = yyLOCAL + case 644: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *AliasedTableExpr +//line sql.y:3388 + { + yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} + } + yyVAL.union = yyLOCAL + case 645: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL *AliasedTableExpr +//line sql.y:3392 + { + yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} + } + yyVAL.union = yyLOCAL + case 646: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Columns +//line sql.y:3397 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 647: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Columns +//line sql.y:3401 + { + yyLOCAL = yyDollar[2].columnsUnion() + } + yyVAL.union = yyLOCAL + case 648: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Columns +//line sql.y:3407 + { + yyLOCAL = Columns{yyDollar[1].colIdent} + } + yyVAL.union = yyLOCAL + case 649: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3411 + { + yySLICE := (*Columns)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].colIdent) + } + case 650: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Columns +//line sql.y:3417 + { + yyLOCAL = Columns{yyDollar[1].colIdent} + } + yyVAL.union = yyLOCAL + case 651: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Columns +//line sql.y:3421 + { + yyLOCAL = Columns{NewColIdent(string(yyDollar[1].str))} + } + yyVAL.union = yyLOCAL + case 652: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3425 + { + yySLICE := (*Columns)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].colIdent) + } + case 653: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3429 + { + yySLICE := (*Columns)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, NewColIdent(string(yyDollar[3].str))) + } + case 654: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Partitions +//line sql.y:3435 + { + yyLOCAL = Partitions{yyDollar[1].colIdent} + } + yyVAL.union = yyLOCAL + case 655: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3439 + { + yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].colIdent) + } + case 656: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL TableExpr +//line sql.y:3452 + { + yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} + } + yyVAL.union = yyLOCAL + case 657: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL TableExpr +//line sql.y:3456 + { + yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} + } + yyVAL.union = yyLOCAL + case 658: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL TableExpr +//line sql.y:3460 + { + yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} + } + yyVAL.union = yyLOCAL + case 659: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL TableExpr +//line sql.y:3464 + { + yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} + } + yyVAL.union = yyLOCAL + case 660: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3470 + { + yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} + } + case 661: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:3472 + { + yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} + } + case 662: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3476 + { + yyVAL.joinCondition = JoinCondition{} + } + case 663: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3478 + { + yyVAL.joinCondition = yyDollar[1].joinCondition + } + case 664: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3482 + { + yyVAL.joinCondition = JoinCondition{} + } + case 665: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3484 + { + yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} + } + case 666: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3487 + { + yyVAL.empty = struct{}{} + } + case 667: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3489 + { + yyVAL.empty = struct{}{} + } + case 668: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3492 + { + yyVAL.tableIdent = NewTableIdent("") + } + case 669: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3496 + { + yyVAL.tableIdent = yyDollar[1].tableIdent + } + case 670: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3500 + { + yyVAL.tableIdent = yyDollar[2].tableIdent + } + case 672: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3507 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) + } + case 673: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3513 + { + yyLOCAL = NormalJoinType + } + yyVAL.union = yyLOCAL + case 674: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3517 + { + yyLOCAL = NormalJoinType + } + yyVAL.union = yyLOCAL + case 675: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3521 + { + yyLOCAL = NormalJoinType + } + yyVAL.union = yyLOCAL + case 676: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3527 + { + yyLOCAL = StraightJoinType + } + yyVAL.union = yyLOCAL + case 677: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3533 + { + yyLOCAL = LeftJoinType + } + yyVAL.union = yyLOCAL + case 678: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3537 + { + yyLOCAL = LeftJoinType + } + yyVAL.union = yyLOCAL + case 679: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3541 + { + yyLOCAL = RightJoinType + } + yyVAL.union = yyLOCAL + case 680: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3545 + { + yyLOCAL = RightJoinType + } + yyVAL.union = yyLOCAL + case 681: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3551 + { + yyLOCAL = NaturalJoinType + } + yyVAL.union = yyLOCAL + case 682: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL JoinType +//line sql.y:3555 + { + if yyDollar[2].joinTypeUnion() == LeftJoinType { + yyLOCAL = NaturalLeftJoinType + } else { + yyLOCAL = NaturalRightJoinType + } + } + yyVAL.union = yyLOCAL + case 683: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:3565 + { + yyVAL.tableName = yyDollar[2].tableName + } + case 684: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3569 + { + yyVAL.tableName = yyDollar[1].tableName + } + case 685: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:3575 + { + yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} + } + case 686: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3579 + { + yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} + } + case 687: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3585 + { + yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} + } + case 688: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *IndexHints +//line sql.y:3590 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 689: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *IndexHints +//line sql.y:3594 + { + yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} + } + yyVAL.union = yyLOCAL + case 690: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *IndexHints +//line sql.y:3598 + { + yyLOCAL = &IndexHints{Type: UseOp} + } + yyVAL.union = yyLOCAL + case 691: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *IndexHints +//line sql.y:3602 + { + yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} + } + yyVAL.union = yyLOCAL + case 692: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *IndexHints +//line sql.y:3606 + { + yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} + } + yyVAL.union = yyLOCAL + case 693: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Expr +//line sql.y:3611 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 694: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3615 + { + yyLOCAL = yyDollar[2].exprUnion() + } + yyVAL.union = yyLOCAL + case 695: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:3621 + { + yyLOCAL = yyDollar[1].exprUnion() + } + yyVAL.union = yyLOCAL + case 696: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3625 + { + yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 697: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3629 + { + yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 698: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3633 + { + yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 699: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3637 + { + yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 700: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3641 + { + yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()} + } + yyVAL.union = yyLOCAL + case 701: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:3645 + { + yyLOCAL = yyDollar[1].exprUnion() + } + yyVAL.union = yyLOCAL + case 702: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3649 + { + yyLOCAL = &Default{ColName: yyDollar[2].str} + } + yyVAL.union = yyLOCAL + case 703: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:3655 + { + yyVAL.str = "" + } + case 704: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3659 + { + yyVAL.str = string(yyDollar[2].colIdent.String()) + } + case 705: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL BoolVal +//line sql.y:3665 + { + yyLOCAL = BoolVal(true) + } + yyVAL.union = yyLOCAL + case 706: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL BoolVal +//line sql.y:3669 + { + yyLOCAL = BoolVal(false) + } + yyVAL.union = yyLOCAL + case 707: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3675 + { + yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 708: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3679 + { + yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} + } + yyVAL.union = yyLOCAL + case 709: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:3683 + { + yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} + } + yyVAL.union = yyLOCAL + case 710: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:3687 + { + yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} + } + yyVAL.union = yyLOCAL + case 711: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Expr +//line sql.y:3691 + { + yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} + } + yyVAL.union = yyLOCAL + case 712: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3695 + { + yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 713: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:3699 + { + yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} + } + yyVAL.union = yyLOCAL + case 714: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Expr +//line sql.y:3703 + { + yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} + } + yyVAL.union = yyLOCAL + case 715: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Expr +//line sql.y:3707 + { + yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} + } + yyVAL.union = yyLOCAL + case 716: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3711 + { + yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} + } + yyVAL.union = yyLOCAL + case 717: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL IsExprOperator +//line sql.y:3717 + { + yyLOCAL = IsNullOp + } + yyVAL.union = yyLOCAL + case 718: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL IsExprOperator +//line sql.y:3721 + { + yyLOCAL = IsNotNullOp + } + yyVAL.union = yyLOCAL + case 719: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL IsExprOperator +//line sql.y:3725 + { + yyLOCAL = IsTrueOp + } + yyVAL.union = yyLOCAL + case 720: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL IsExprOperator +//line sql.y:3729 + { + yyLOCAL = IsNotTrueOp + } + yyVAL.union = yyLOCAL + case 721: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL IsExprOperator +//line sql.y:3733 + { + yyLOCAL = IsFalseOp + } + yyVAL.union = yyLOCAL + case 722: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL IsExprOperator +//line sql.y:3737 + { + yyLOCAL = IsNotFalseOp + } + yyVAL.union = yyLOCAL + case 723: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ComparisonExprOperator +//line sql.y:3743 + { + yyLOCAL = EqualOp + } + yyVAL.union = yyLOCAL + case 724: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ComparisonExprOperator +//line sql.y:3747 + { + yyLOCAL = LessThanOp + } + yyVAL.union = yyLOCAL + case 725: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ComparisonExprOperator +//line sql.y:3751 + { + yyLOCAL = GreaterThanOp + } + yyVAL.union = yyLOCAL + case 726: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ComparisonExprOperator +//line sql.y:3755 + { + yyLOCAL = LessEqualOp + } + yyVAL.union = yyLOCAL + case 727: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ComparisonExprOperator +//line sql.y:3759 + { + yyLOCAL = GreaterEqualOp + } + yyVAL.union = yyLOCAL + case 728: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ComparisonExprOperator +//line sql.y:3763 + { + yyLOCAL = NotEqualOp + } + yyVAL.union = yyLOCAL + case 729: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ComparisonExprOperator +//line sql.y:3767 + { + yyLOCAL = NullSafeEqualOp + } + yyVAL.union = yyLOCAL + case 730: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Expr +//line sql.y:3772 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 731: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3776 + { + yyLOCAL = yyDollar[2].exprUnion() + } + yyVAL.union = yyLOCAL + case 732: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColTuple +//line sql.y:3782 + { + yyLOCAL = yyDollar[1].valTupleUnion() + } + yyVAL.union = yyLOCAL + case 733: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColTuple +//line sql.y:3786 + { + yyLOCAL = yyDollar[1].subqueryUnion() + } + yyVAL.union = yyLOCAL + case 734: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ColTuple +//line sql.y:3790 + { + yyLOCAL = ListArg(yyDollar[1].str[2:]) + bindVariable(yylex, yyDollar[1].str[2:]) + } + yyVAL.union = yyLOCAL + case 735: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *Subquery +//line sql.y:3797 + { + yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} + } + yyVAL.union = yyLOCAL + case 736: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Exprs +//line sql.y:3803 + { + yyLOCAL = Exprs{yyDollar[1].exprUnion()} + } + yyVAL.union = yyLOCAL + case 737: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:3807 + { + yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) + } + case 738: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:3813 + { + yyLOCAL = yyDollar[1].exprUnion() + } + yyVAL.union = yyLOCAL + case 739: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:3817 + { + yyLOCAL = yyDollar[1].boolValUnion() + } + yyVAL.union = yyLOCAL + case 740: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:3821 + { + yyLOCAL = yyDollar[1].colNameUnion() + } + yyVAL.union = yyLOCAL + case 741: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:3825 + { + yyLOCAL = yyDollar[1].exprUnion() + } + yyVAL.union = yyLOCAL + case 742: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:3829 + { + yyLOCAL = yyDollar[1].subqueryUnion() + } + yyVAL.union = yyLOCAL + case 743: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3833 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 744: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3837 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 745: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3841 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 746: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3845 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 747: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3849 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 748: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3853 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 749: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3857 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 750: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3861 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 751: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3865 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 752: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3869 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 753: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3873 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 754: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3877 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 755: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3881 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 756: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3885 + { + yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 757: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3889 + { + yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} + } + yyVAL.union = yyLOCAL + case 758: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3893 + { + yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 759: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3897 + { + yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 760: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3901 + { + yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 761: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3905 + { + yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 762: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3909 + { + yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 763: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3913 + { + yyLOCAL = yyDollar[2].exprUnion() + } + yyVAL.union = yyLOCAL + case 764: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3917 + { + yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) + } + yyVAL.union = yyLOCAL + case 765: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3921 + { + yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 766: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:3925 + { + yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 767: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:3929 + { + // This rule prevents the usage of INTERVAL + // as a function. If support is needed for that, + // we'll need to revisit this. The solution + // will be non-trivial because of grammar conflicts. + yyLOCAL = &IntervalExpr{Expr: yyDollar[2].exprUnion(), Unit: yyDollar[3].colIdent.String()} + } + yyVAL.union = yyLOCAL + case 772: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:3947 + { + yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 773: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Expr +//line sql.y:3951 + { + yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 774: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Expr +//line sql.y:3955 + { + yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 775: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Expr +//line sql.y:3959 + { + yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 776: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:3969 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 777: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:3973 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 778: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Expr +//line sql.y:3977 + { + yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} + } + yyVAL.union = yyLOCAL + case 779: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Expr +//line sql.y:3981 + { + yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} + } + yyVAL.union = yyLOCAL + case 780: + yyDollar = yyS[yypt-6 : yypt+1] + var yyLOCAL Expr +//line sql.y:3985 + { + yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} + } + yyVAL.union = yyLOCAL + case 781: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Expr +//line sql.y:3989 + { + yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} + } + yyVAL.union = yyLOCAL + case 782: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Expr +//line sql.y:3993 + { + yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} + } + yyVAL.union = yyLOCAL + case 783: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Expr +//line sql.y:3997 + { + yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} + } + yyVAL.union = yyLOCAL + case 784: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Expr +//line sql.y:4001 + { + yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} + } + yyVAL.union = yyLOCAL + case 785: + yyDollar = yyS[yypt-9 : yypt+1] + var yyLOCAL Expr +//line sql.y:4005 + { + yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} + } + yyVAL.union = yyLOCAL + case 786: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Expr +//line sql.y:4009 + { + yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} + } + yyVAL.union = yyLOCAL + case 787: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Expr +//line sql.y:4013 + { + yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} + } + yyVAL.union = yyLOCAL + case 788: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:4017 + { + yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} + } + yyVAL.union = yyLOCAL + case 789: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4021 + { + yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} + } + yyVAL.union = yyLOCAL + case 790: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4031 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} + } + yyVAL.union = yyLOCAL + case 791: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4035 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} + } + yyVAL.union = yyLOCAL + case 792: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4039 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} + } + yyVAL.union = yyLOCAL + case 793: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4044 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} + } + yyVAL.union = yyLOCAL + case 794: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4049 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} + } + yyVAL.union = yyLOCAL + case 795: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4054 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} + } + yyVAL.union = yyLOCAL + case 796: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4060 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} + } + yyVAL.union = yyLOCAL + case 797: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4065 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} + } + yyVAL.union = yyLOCAL + case 798: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4070 + { + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 799: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4074 + { + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 800: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4078 + { + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 801: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4083 + { + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 802: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4088 + { + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 803: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4093 + { + yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 804: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Expr +//line sql.y:4097 + { + yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} + } + yyVAL.union = yyLOCAL + case 805: + yyDollar = yyS[yypt-8 : yypt+1] + var yyLOCAL Expr +//line sql.y:4101 + { + yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} + } + yyVAL.union = yyLOCAL + case 808: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Expr +//line sql.y:4111 + { + yyLOCAL = yyDollar[2].exprUnion() + } + yyVAL.union = yyLOCAL + case 809: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:4121 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 810: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:4125 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 811: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:4129 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 812: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:4133 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 813: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:4137 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 814: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:4141 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 815: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Expr +//line sql.y:4145 + { + yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} + } + yyVAL.union = yyLOCAL + case 816: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL MatchExprOption +//line sql.y:4151 + { + yyLOCAL = NoOption + } + yyVAL.union = yyLOCAL + case 817: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL MatchExprOption +//line sql.y:4155 + { + yyLOCAL = BooleanModeOpt + } + yyVAL.union = yyLOCAL + case 818: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL MatchExprOption +//line sql.y:4159 + { + yyLOCAL = NaturalLanguageModeOpt + } + yyVAL.union = yyLOCAL + case 819: + yyDollar = yyS[yypt-7 : yypt+1] + var yyLOCAL MatchExprOption +//line sql.y:4163 + { + yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt + } + yyVAL.union = yyLOCAL + case 820: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL MatchExprOption +//line sql.y:4167 + { + yyLOCAL = QueryExpansionOpt + } + yyVAL.union = yyLOCAL + case 821: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4173 + { + yyVAL.str = string(yyDollar[1].colIdent.String()) + } + case 822: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4177 + { + yyVAL.str = string(yyDollar[1].str) + } + case 823: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4181 + { + yyVAL.str = string(yyDollar[1].str) + } + case 824: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4187 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + yyVAL.union = yyLOCAL + case 825: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4191 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} + } + yyVAL.union = yyLOCAL + case 826: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4195 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} + } + yyVAL.union = yyLOCAL + case 827: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4199 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} + } + yyVAL.union = yyLOCAL + case 828: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4203 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + yyVAL.union = yyLOCAL + case 829: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4207 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} + yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length + yyLOCAL.Scale = yyDollar[2].LengthScaleOption.Scale + } + yyVAL.union = yyLOCAL + case 830: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4213 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} + } + yyVAL.union = yyLOCAL + case 831: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4217 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + yyVAL.union = yyLOCAL + case 832: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4221 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} + } + yyVAL.union = yyLOCAL + case 833: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4225 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} + } + yyVAL.union = yyLOCAL + case 834: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4229 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} + } + yyVAL.union = yyLOCAL + case 835: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4233 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} + } + yyVAL.union = yyLOCAL + case 836: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *ConvertType +//line sql.y:4237 + { + yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} + } + yyVAL.union = yyLOCAL + case 837: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Expr +//line sql.y:4242 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 838: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4246 + { + yyLOCAL = yyDollar[1].exprUnion() + } + yyVAL.union = yyLOCAL + case 839: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4251 + { + yyVAL.str = string("") + } + case 840: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4255 + { + yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) + } + case 841: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*When +//line sql.y:4261 + { + yyLOCAL = []*When{yyDollar[1].whenUnion()} + } + yyVAL.union = yyLOCAL + case 842: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4265 + { + yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) + } + case 843: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *When +//line sql.y:4271 + { + yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} + } + yyVAL.union = yyLOCAL + case 844: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Expr +//line sql.y:4276 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 845: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4280 + { + yyLOCAL = yyDollar[2].exprUnion() + } + yyVAL.union = yyLOCAL + case 846: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *ColName +//line sql.y:4286 + { + yyLOCAL = &ColName{Name: yyDollar[1].colIdent} + } + yyVAL.union = yyLOCAL + case 847: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *ColName +//line sql.y:4290 + { + yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} + } + yyVAL.union = yyLOCAL + case 848: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *ColName +//line sql.y:4294 + { + yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} + } + yyVAL.union = yyLOCAL + case 849: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4300 + { + yyLOCAL = NewStrLiteral(yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 850: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4304 + { + yyLOCAL = NewHexLiteral(yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 851: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4308 + { + yyLOCAL = NewBitLiteral(yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 852: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4312 + { + yyLOCAL = NewIntLiteral(yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 853: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4316 + { + yyLOCAL = NewFloatLiteral(yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 854: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4320 + { + yyLOCAL = NewHexNumLiteral(yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 855: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4324 + { + yyLOCAL = NewArgument(yyDollar[1].str[1:]) + bindVariable(yylex, yyDollar[1].str[1:]) + } + yyVAL.union = yyLOCAL + case 856: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4329 + { + yyLOCAL = &NullVal{} + } + yyVAL.union = yyLOCAL + case 857: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4335 + { + // TODO(sougou): Deprecate this construct. + if yyDollar[1].colIdent.Lowered() != "value" { + yylex.Error("expecting value after next") + return 1 + } + yyLOCAL = NewIntLiteral("1") + } + yyVAL.union = yyLOCAL + case 858: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4344 + { + yyLOCAL = NewIntLiteral(yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 859: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4348 + { + yyLOCAL = NewArgument(yyDollar[1].str[1:]) + bindVariable(yylex, yyDollar[1].str[1:]) + } + yyVAL.union = yyLOCAL + case 860: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Exprs +//line sql.y:4354 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 861: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Exprs +//line sql.y:4358 + { + yyLOCAL = yyDollar[3].exprsUnion() + } + yyVAL.union = yyLOCAL + case 862: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Expr +//line sql.y:4363 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 863: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Expr +//line sql.y:4367 + { + yyLOCAL = yyDollar[2].exprUnion() + } + yyVAL.union = yyLOCAL + case 864: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL OrderBy +//line sql.y:4372 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 865: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL OrderBy +//line sql.y:4376 + { + yyLOCAL = yyDollar[3].orderByUnion() + } + yyVAL.union = yyLOCAL + case 866: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL OrderBy +//line sql.y:4382 + { + yyLOCAL = OrderBy{yyDollar[1].orderUnion()} + } + yyVAL.union = yyLOCAL + case 867: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4386 + { + yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) + } + case 868: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *Order +//line sql.y:4392 + { + yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} + } + yyVAL.union = yyLOCAL + case 869: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL OrderDirection +//line sql.y:4397 + { + yyLOCAL = AscOrder + } + yyVAL.union = yyLOCAL + case 870: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL OrderDirection +//line sql.y:4401 + { + yyLOCAL = AscOrder + } + yyVAL.union = yyLOCAL + case 871: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL OrderDirection +//line sql.y:4405 + { + yyLOCAL = DescOrder + } + yyVAL.union = yyLOCAL + case 872: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *Limit +//line sql.y:4410 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 873: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *Limit +//line sql.y:4414 + { + yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 874: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *Limit +//line sql.y:4418 + { + yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} + } + yyVAL.union = yyLOCAL + case 875: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *Limit +//line sql.y:4422 + { + yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 876: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:4427 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 877: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:4431 + { + yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} + } + yyVAL.union = yyLOCAL + case 878: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:4435 + { + yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} + } + yyVAL.union = yyLOCAL + case 879: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:4439 + { + yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} + } + yyVAL.union = yyLOCAL + case 880: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []AlterOption +//line sql.y:4443 + { + yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} + } + yyVAL.union = yyLOCAL + case 881: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:4450 + { + yyLOCAL = &LockOption{Type: DefaultType} + } + yyVAL.union = yyLOCAL + case 882: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:4454 + { + yyLOCAL = &LockOption{Type: NoneType} + } + yyVAL.union = yyLOCAL + case 883: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:4458 + { + yyLOCAL = &LockOption{Type: SharedType} + } + yyVAL.union = yyLOCAL + case 884: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:4462 + { + yyLOCAL = &LockOption{Type: ExclusiveType} + } + yyVAL.union = yyLOCAL + case 885: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:4468 + { + yyLOCAL = AlgorithmValue(yyDollar[3].str) + } + yyVAL.union = yyLOCAL + case 886: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:4472 + { + yyLOCAL = AlgorithmValue(yyDollar[3].str) + } + yyVAL.union = yyLOCAL + case 887: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL AlterOption +//line sql.y:4476 + { + yyLOCAL = AlgorithmValue(yyDollar[3].str) + } + yyVAL.union = yyLOCAL + case 888: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4481 + { + yyVAL.str = "" + } + case 889: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4485 + { + yyVAL.str = string(yyDollar[3].str) + } + case 890: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4489 + { + yyVAL.str = string(yyDollar[3].str) + } + case 891: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4493 + { + yyVAL.str = string(yyDollar[3].str) + } + case 892: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4498 + { + yyVAL.str = "" + } + case 893: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4502 + { + yyVAL.str = yyDollar[3].str + } + case 894: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4508 + { + yyVAL.str = string(yyDollar[1].str) + } + case 895: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4512 + { + yyVAL.str = string(yyDollar[1].str) + } + case 896: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4517 + { + yyVAL.str = "" + } + case 897: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:4521 + { + yyVAL.str = yyDollar[2].str + } + case 898: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4526 + { + yyVAL.str = "cascaded" + } + case 899: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4530 + { + yyVAL.str = string(yyDollar[1].str) + } + case 900: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4534 + { + yyVAL.str = string(yyDollar[1].str) + } + case 901: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4539 + { + yyVAL.str = "" + } + case 902: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4543 + { + yyVAL.str = yyDollar[3].str + } + case 903: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4549 + { + yyVAL.str = string(yyDollar[1].str) + } + case 904: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4553 + { + yyVAL.str = string(yyDollar[1].str) + } + case 905: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4557 + { + yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) + } + case 906: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4561 + { + yyVAL.str = string(yyDollar[1].str) + } + case 907: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Lock +//line sql.y:4566 + { + yyLOCAL = NoLock + } + yyVAL.union = yyLOCAL + case 908: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL Lock +//line sql.y:4570 + { + yyLOCAL = ForUpdateLock + } + yyVAL.union = yyLOCAL + case 909: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL Lock +//line sql.y:4574 + { + yyLOCAL = ShareModeLock + } + yyVAL.union = yyLOCAL + case 910: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL *SelectInto +//line sql.y:4579 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 911: + yyDollar = yyS[yypt-9 : yypt+1] + var yyLOCAL *SelectInto +//line sql.y:4583 + { + yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} + } + yyVAL.union = yyLOCAL + case 912: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *SelectInto +//line sql.y:4587 + { + yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} + } + yyVAL.union = yyLOCAL + case 913: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *SelectInto +//line sql.y:4591 + { + yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} + } + yyVAL.union = yyLOCAL + case 914: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4596 + { + yyVAL.str = "" + } + case 915: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4600 + { + yyVAL.str = " format csv" + yyDollar[3].str + } + case 916: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4604 + { + yyVAL.str = " format text" + yyDollar[3].str + } + case 917: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4609 + { + yyVAL.str = "" + } + case 918: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4613 + { + yyVAL.str = " header" + } + case 919: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4618 + { + yyVAL.str = "" + } + case 920: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4622 + { + yyVAL.str = " manifest on" + } + case 921: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4626 + { + yyVAL.str = " manifest off" + } + case 922: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4631 + { + yyVAL.str = "" + } + case 923: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4635 + { + yyVAL.str = " overwrite on" + } + case 924: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4639 + { + yyVAL.str = " overwrite off" + } + case 925: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4645 + { + yyVAL.str = yyDollar[1].str + yyDollar[2].str + } + case 926: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4650 + { + yyVAL.str = "" + } + case 927: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4654 + { + yyVAL.str = " lines" + yyDollar[2].str + } + case 928: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4660 + { + yyVAL.str = yyDollar[1].str + } + case 929: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4664 + { + yyVAL.str = yyDollar[1].str + yyDollar[2].str + } + case 930: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4670 + { + yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) + } + case 931: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4674 + { + yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) + } + case 932: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4679 + { + yyVAL.str = "" + } + case 933: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4683 + { + yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str + } + case 934: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4689 + { + yyVAL.str = yyDollar[1].str + } + case 935: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4693 + { + yyVAL.str = yyDollar[1].str + yyDollar[2].str + } + case 936: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4699 + { + yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) + } + case 937: + yyDollar = yyS[yypt-4 : yypt+1] +//line sql.y:4703 + { + yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) + } + case 938: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4707 + { + yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) + } + case 939: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4712 + { + yyVAL.str = "" + } + case 940: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4716 + { + yyVAL.str = " optionally" + } + case 941: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *Insert +//line sql.y:4729 + { + yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} + } + yyVAL.union = yyLOCAL + case 942: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL *Insert +//line sql.y:4733 + { + yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} + } + yyVAL.union = yyLOCAL + case 943: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL *Insert +//line sql.y:4737 + { + yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} + } + yyVAL.union = yyLOCAL + case 944: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *Insert +//line sql.y:4741 + { + yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} + } + yyVAL.union = yyLOCAL + case 945: + yyDollar = yyS[yypt-4 : yypt+1] + var yyLOCAL *Insert +//line sql.y:4745 + { + yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} + } + yyVAL.union = yyLOCAL + case 946: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Columns +//line sql.y:4751 + { + yyLOCAL = Columns{yyDollar[1].colIdent} + } + yyVAL.union = yyLOCAL + case 947: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL Columns +//line sql.y:4755 + { + yyLOCAL = Columns{yyDollar[3].colIdent} + } + yyVAL.union = yyLOCAL + case 948: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4759 + { + yySLICE := (*Columns)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].colIdent) + } + case 949: + yyDollar = yyS[yypt-5 : yypt+1] +//line sql.y:4763 + { + yySLICE := (*Columns)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[5].colIdent) + } + case 950: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL UpdateExprs +//line sql.y:4768 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 951: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL UpdateExprs +//line sql.y:4772 + { + yyLOCAL = yyDollar[5].updateExprsUnion() + } + yyVAL.union = yyLOCAL + case 952: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Values +//line sql.y:4778 + { + yyLOCAL = Values{yyDollar[1].valTupleUnion()} + } + yyVAL.union = yyLOCAL + case 953: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4782 + { + yySLICE := (*Values)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) + } + case 954: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL ValTuple +//line sql.y:4788 + { + yyLOCAL = yyDollar[1].valTupleUnion() + } + yyVAL.union = yyLOCAL + case 955: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL ValTuple +//line sql.y:4792 + { + yyLOCAL = ValTuple{} + } + yyVAL.union = yyLOCAL + case 956: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL ValTuple +//line sql.y:4798 + { + yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) + } + yyVAL.union = yyLOCAL + case 957: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4804 + { + if len(yyDollar[1].valTupleUnion()) == 1 { + yyLOCAL = yyDollar[1].valTupleUnion()[0] + } else { + yyLOCAL = yyDollar[1].valTupleUnion() + } + } + yyVAL.union = yyLOCAL + case 958: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL UpdateExprs +//line sql.y:4814 + { + yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} + } + yyVAL.union = yyLOCAL + case 959: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4818 + { + yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) + } + case 960: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *UpdateExpr +//line sql.y:4824 + { + yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 961: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL SetExprs +//line sql.y:4830 + { + yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} + } + yyVAL.union = yyLOCAL + case 962: + yyDollar = yyS[yypt-3 : yypt+1] +//line sql.y:4834 + { + yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) + *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) + } + case 963: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *SetExpr +//line sql.y:4840 + { + yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} + } + yyVAL.union = yyLOCAL + case 964: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *SetExpr +//line sql.y:4844 + { + yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} + } + yyVAL.union = yyLOCAL + case 965: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *SetExpr +//line sql.y:4848 + { + yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} + } + yyVAL.union = yyLOCAL + case 966: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL *SetExpr +//line sql.y:4852 + { + yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} + } + yyVAL.union = yyLOCAL + case 967: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *SetExpr +//line sql.y:4856 + { + yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() + yyLOCAL = yyDollar[2].setExprUnion() + } + yyVAL.union = yyLOCAL + case 969: + yyDollar = yyS[yypt-2 : yypt+1] +//line sql.y:4864 + { + yyVAL.str = "charset" + } + case 972: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4874 + { + yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) + } + yyVAL.union = yyLOCAL + case 973: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4878 + { + yyLOCAL = NewStrLiteral(yyDollar[1].str) + } + yyVAL.union = yyLOCAL + case 974: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Expr +//line sql.y:4882 + { + yyLOCAL = &Default{} + } + yyVAL.union = yyLOCAL + case 977: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:4891 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 978: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL bool +//line sql.y:4893 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 979: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:4896 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 980: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL bool +//line sql.y:4898 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 981: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL bool +//line sql.y:4901 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 982: + yyDollar = yyS[yypt-3 : yypt+1] + var yyLOCAL bool +//line sql.y:4903 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 983: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Ignore +//line sql.y:4906 + { + yyLOCAL = false + } + yyVAL.union = yyLOCAL + case 984: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Ignore +//line sql.y:4908 + { + yyLOCAL = true + } + yyVAL.union = yyLOCAL + case 985: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4911 + { + yyVAL.empty = struct{}{} + } + case 986: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4913 + { + yyVAL.empty = struct{}{} + } + case 987: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4915 + { + yyVAL.empty = struct{}{} + } + case 988: + yyDollar = yyS[yypt-5 : yypt+1] + var yyLOCAL Statement +//line sql.y:4919 + { + yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} + } + yyVAL.union = yyLOCAL + case 989: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL Exprs +//line sql.y:4924 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 990: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL Exprs +//line sql.y:4928 + { + yyLOCAL = yyDollar[1].exprsUnion() + } + yyVAL.union = yyLOCAL + case 991: + yyDollar = yyS[yypt-0 : yypt+1] + var yyLOCAL []*IndexOption +//line sql.y:4933 + { + yyLOCAL = nil + } + yyVAL.union = yyLOCAL + case 992: + yyDollar = yyS[yypt-1 : yypt+1] + var yyLOCAL []*IndexOption +//line sql.y:4935 + { + yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} + } + yyVAL.union = yyLOCAL + case 993: + yyDollar = yyS[yypt-2 : yypt+1] + var yyLOCAL *IndexOption +//line sql.y:4939 + { + yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} + } + yyVAL.union = yyLOCAL + case 994: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4945 + { + yyVAL.colIdent = yyDollar[1].colIdent + } + case 995: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4949 + { + yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) + } + case 997: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4956 + { + yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) + } + case 998: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4962 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) + } + case 999: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4966 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) + } + case 1000: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:4972 + { + yyVAL.tableIdent = NewTableIdent("") + } + case 1001: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4976 + { + yyVAL.tableIdent = yyDollar[1].tableIdent + } + case 1003: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:4983 + { + yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) + } + case 1423: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:5427 + { + if incNesting(yylex) { + yylex.Error("max nesting level reached") + return 1 + } + } + case 1424: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:5436 + { + decNesting(yylex) + } + case 1425: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:5441 + { + skipToEnd(yylex) + } + case 1426: + yyDollar = yyS[yypt-0 : yypt+1] +//line sql.y:5446 + { + skipToEnd(yylex) + } + case 1427: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:5450 + { + skipToEnd(yylex) + } + case 1428: + yyDollar = yyS[yypt-1 : yypt+1] +//line sql.y:5454 + { + skipToEnd(yylex) + } + } + goto yystack /* stack new state and value */ +} diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 77ba9a92b1f..8f3d8450ac1 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -290,11 +290,8 @@ func bindVariable(yylex yyLexer, bvar string) { // Partitions tokens %token PARTITIONS LINEAR RANGE LIST SUBPARTITION SUBPARTITIONS -%token linear_opt range_or_list partitions_opt subpartitions_opt -%token partitions_options_opt -%token expr_or_col -%token subpartition_opt +%type linear_opt range_or_list partitions_opt subpartitions_opt algorithm_opt %type command %type simple_select select_statement base_select union_rhs %type explain_statement explainable_statement @@ -320,6 +317,9 @@ func bindVariable(yylex yyLexer, bvar string) { %type explain_format_opt %type insert_or_replace %type explain_synonyms +%type partitions_options_opt +%type expr_or_col +%type subpartition_opt %type cache_opt separator_opt flush_option for_channel_opt %type match_option %type distinct_opt union_op replace_opt local_opt @@ -420,8 +420,8 @@ func bindVariable(yylex yyLexer, bvar string) { %type index_option using_index_type %type index_option_list index_option_list_opt using_opt %type constraint_info check_constraint_info -%type partition_definitions -%type partition_definition partition_definition_opt +%type partition_definitions partition_definition_opt +%type partition_definition %type partition_operation %type vindex_param %type vindex_param_list vindex_params_opt @@ -2296,8 +2296,15 @@ partitions_options_opt: | PARTITION BY linear_opt KEY algorithm_opt '(' column_list ')' partitions_opt subpartition_opt partition_definition_opt { - $$ = &PartitionOption{Linear: $3, isKEY: true, KeyAlgorithm: $5, - KeyColList: $7, Partitions: $9, SubPartition: $10, Definitions: $11} + $$ = &PartitionOption{ + Linear: $3, + isKEY: true, + KeyAlgorithm: $5, + KeyColList: $7, + Partitions: $9, + SubPartition: $10, + Definitions: $11, + } } | PARTITION BY range_or_list expr_or_col partitions_opt subpartition_opt partition_definition_opt @@ -2732,7 +2739,7 @@ show_statement: | SHOW VSCHEMA VINDEXES ON table_name { $$ = &Show{&ShowLegacy{Type: string($2) + " " + string($3), OnTable: $5, Scope: ImplicitScope}} - }$$ = & + } | SHOW WARNINGS { $$ = &Show{&ShowBasic{Command: Warnings}} From a1af46d670148838c7bd91f79254781122de46f9 Mon Sep 17 00:00:00 2001 From: Thirumalai-Shaktivel Date: Fri, 27 Aug 2021 09:04:27 +0530 Subject: [PATCH 03/11] Format the implementations Signed-off-by: Thirumalai-Shaktivel --- go/vt/sqlparser/ast.go | 30 +- go/vt/sqlparser/ast_clone.go | 2 +- go/vt/sqlparser/ast_equals.go | 4 +- go/vt/sqlparser/cached_size.go | 8 +- go/vt/sqlparser/sql.go | 1217 ++++++++++++++++---------------- go/vt/sqlparser/sql.y | 51 +- 6 files changed, 678 insertions(+), 634 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 2d8ef5c1c1c..2e407e9b6f3 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -1472,26 +1472,28 @@ type PartitionDefinition struct { Maxvalue bool } -// PartitionOptions describes partitioning control (for create table statements) +// PartitionOption describes partitioning control (for create table statements) type PartitionOption struct { - Linear string - HASH ColIdent - isKEY bool - KeyAlgorithm string - KeyColList Columns - RANGE_or_LIST string - Expr_or_Col *ExprOrColumns - Expr Expr - Partitions string - SubPartition *SubPartition - Definitions []*PartitionDefinition -} - + Linear string + HASH ColIdent + isKEY bool + KeyAlgorithm string + KeyColList Columns + RangeOrList string + ExprOrCol *ExprOrColumns + Expr Expr + Partitions string + SubPartition *SubPartition + Definitions []*PartitionDefinition +} + +// ExprOrColumns describes expression and columnlist in the partition type ExprOrColumns struct { Expr Expr ColumnList Columns } +// SubPartition describes subpartitions control type SubPartition struct { Linear string HASH ColIdent diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index a8ef36a0db5..da4dd92fe42 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -2321,7 +2321,7 @@ func CloneRefOfPartitionOption(n *PartitionOption) *PartitionOption { out := *n out.HASH = CloneColIdent(n.HASH) out.KeyColList = CloneColumns(n.KeyColList) - out.Expr_or_Col = CloneRefOfExprOrColumns(n.Expr_or_Col) + out.ExprOrCol = CloneRefOfExprOrColumns(n.ExprOrCol) out.Expr = CloneExpr(n.Expr) out.SubPartition = CloneRefOfSubPartition(n.SubPartition) out.Definitions = CloneSliceOfRefOfPartitionDefinition(n.Definitions) diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 6fa6a59005a..ad5ab8fa3eb 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -3838,11 +3838,11 @@ func EqualsRefOfPartitionOption(a, b *PartitionOption) bool { return a.Linear == b.Linear && a.isKEY == b.isKEY && a.KeyAlgorithm == b.KeyAlgorithm && - a.RANGE_or_LIST == b.RANGE_or_LIST && + a.RangeOrList == b.RangeOrList && a.Partitions == b.Partitions && EqualsColIdent(a.HASH, b.HASH) && EqualsColumns(a.KeyColList, b.KeyColList) && - EqualsRefOfExprOrColumns(a.Expr_or_Col, b.Expr_or_Col) && + EqualsRefOfExprOrColumns(a.ExprOrCol, b.ExprOrCol) && EqualsExpr(a.Expr, b.Expr) && EqualsRefOfSubPartition(a.SubPartition, b.SubPartition) && EqualsSliceOfRefOfPartitionDefinition(a.Definitions, b.Definitions) diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index 152efa4383d..4642687db9a 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -1523,10 +1523,10 @@ func (cached *PartitionOption) CachedSize(alloc bool) int64 { size += elem.CachedSize(false) } } - // field RANGE_or_LIST string - size += int64(len(cached.RANGE_or_LIST)) - // field Expr_or_Col *vitess.io/vitess/go/vt/sqlparser.ExprOrColumns - size += cached.Expr_or_Col.CachedSize(true) + // field RangeOrList string + size += int64(len(cached.RangeOrList)) + // field ExprOrCol *vitess.io/vitess/go/vt/sqlparser.ExprOrColumns + size += cached.ExprOrCol.CachedSize(true) // field Expr vitess.io/vitess/go/vt/sqlparser.Expr if cc, ok := cached.Expr.(cachedObject); ok { size += cc.CachedSize(true) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 948071ed195..34d516ea1b7 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -4429,7 +4429,7 @@ var yyPgo = [...]int{ 22, 25, 1756, 1755, 3361, 1739, 134, 1752, 138, } -//line sql.y:5457 +//line sql.y:5478 type yySymType struct { union interface{} empty struct{} @@ -8883,14 +8883,20 @@ yydefault: var yyLOCAL *PartitionOption //line sql.y:2292 { - yyLOCAL = &PartitionOption{Linear: yyDollar[3].str, HASH: yyDollar[4].colIdent, Expr: yyDollar[6].exprUnion(), Partitions: yyDollar[8].str, - SubPartition: yyDollar[9].subPartitionUnion(), Definitions: yyDollar[10].partDefsUnion()} + yyLOCAL = &PartitionOption{ + Linear: yyDollar[3].str, + HASH: yyDollar[4].colIdent, + Expr: yyDollar[6].exprUnion(), + Partitions: yyDollar[8].str, + SubPartition: yyDollar[9].subPartitionUnion(), + Definitions: yyDollar[10].partDefsUnion(), + } } yyVAL.union = yyLOCAL case 404: yyDollar = yyS[yypt-11 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:2298 +//line sql.y:2304 { yyLOCAL = &PartitionOption{ Linear: yyDollar[3].str, @@ -8906,16 +8912,21 @@ yydefault: case 405: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionOption -//line sql.y:2311 +//line sql.y:2317 { - yyLOCAL = &PartitionOption{RANGE_or_LIST: yyDollar[3].str, Expr_or_Col: yyDollar[4].exprOrColumnsUnion(), Partitions: yyDollar[5].str, - SubPartition: yyDollar[6].subPartitionUnion(), Definitions: yyDollar[7].partDefsUnion()} + yyLOCAL = &PartitionOption{ + RangeOrList: yyDollar[3].str, + ExprOrCol: yyDollar[4].exprOrColumnsUnion(), + Partitions: yyDollar[5].str, + SubPartition: yyDollar[6].subPartitionUnion(), + Definitions: yyDollar[7].partDefsUnion(), + } } yyVAL.union = yyLOCAL case 406: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:2317 +//line sql.y:2328 { yyLOCAL = nil } @@ -8923,24 +8934,34 @@ yydefault: case 407: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:2321 +//line sql.y:2332 { - yyLOCAL = &SubPartition{Linear: yyDollar[3].str, HASH: yyDollar[4].colIdent, Expr: yyDollar[6].exprUnion(), SubPartitions: yyDollar[8].str} + yyLOCAL = &SubPartition{ + Linear: yyDollar[3].str, + HASH: yyDollar[4].colIdent, + Expr: yyDollar[6].exprUnion(), + SubPartitions: yyDollar[8].str, + } } yyVAL.union = yyLOCAL case 408: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SubPartition -//line sql.y:2325 - { - yyLOCAL = &SubPartition{Linear: yyDollar[3].str, isKEY: true, KeyAlgorithm: yyDollar[5].str, - KeyColList: yyDollar[7].columnsUnion(), SubPartitions: yyDollar[9].str} +//line sql.y:2341 + { + yyLOCAL = &SubPartition{ + Linear: yyDollar[3].str, + isKEY: true, + KeyAlgorithm: yyDollar[5].str, + KeyColList: yyDollar[7].columnsUnion(), + SubPartitions: yyDollar[9].str, + } } yyVAL.union = yyLOCAL case 409: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2331 +//line sql.y:2352 { yyLOCAL = nil } @@ -8948,51 +8969,51 @@ yydefault: case 410: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2335 +//line sql.y:2356 { yyLOCAL = yyDollar[1].partDefsUnion() } yyVAL.union = yyLOCAL case 411: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2340 +//line sql.y:2361 { yyVAL.str = "" } case 412: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2344 +//line sql.y:2365 { yyVAL.str = string(yyDollar[1].str) } case 413: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2349 +//line sql.y:2370 { yyVAL.str = "" } case 414: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2353 +//line sql.y:2374 { yyVAL.str = string(yyDollar[3].str) } case 415: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2359 +//line sql.y:2380 { yyVAL.str = string(yyDollar[1].str) } case 416: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2363 +//line sql.y:2384 { yyVAL.str = string(yyDollar[1].str) } case 417: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ExprOrColumns -//line sql.y:2369 +//line sql.y:2390 { yyLOCAL = &ExprOrColumns{Expr: yyDollar[2].exprUnion()} } @@ -9000,39 +9021,39 @@ yydefault: case 418: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *ExprOrColumns -//line sql.y:2373 +//line sql.y:2394 { yyLOCAL = &ExprOrColumns{ColumnList: yyDollar[3].columnsUnion()} } yyVAL.union = yyLOCAL case 419: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2378 +//line sql.y:2399 { yyVAL.str = "" } case 420: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2382 +//line sql.y:2403 { yyVAL.str = string(yyDollar[2].str) } case 421: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2387 +//line sql.y:2408 { yyVAL.str = "" } case 422: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2391 +//line sql.y:2412 { yyVAL.str = string(yyDollar[2].str) } case 423: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2397 +//line sql.y:2418 { yyLOCAL = &PartitionSpec{Action: AddAction, Definitions: []*PartitionDefinition{yyDollar[4].partDefUnion()}} } @@ -9040,7 +9061,7 @@ yydefault: case 424: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2401 +//line sql.y:2422 { yyLOCAL = &PartitionSpec{Action: DropAction, Names: yyDollar[3].partitionsUnion()} } @@ -9048,7 +9069,7 @@ yydefault: case 425: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2405 +//line sql.y:2426 { yyLOCAL = &PartitionSpec{Action: ReorganizeAction, Names: yyDollar[3].partitionsUnion(), Definitions: yyDollar[6].partDefsUnion()} } @@ -9056,7 +9077,7 @@ yydefault: case 426: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2409 +//line sql.y:2430 { yyLOCAL = &PartitionSpec{Action: DiscardAction, Names: yyDollar[3].partitionsUnion()} } @@ -9064,7 +9085,7 @@ yydefault: case 427: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2413 +//line sql.y:2434 { yyLOCAL = &PartitionSpec{Action: DiscardAction, IsAll: true} } @@ -9072,7 +9093,7 @@ yydefault: case 428: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2417 +//line sql.y:2438 { yyLOCAL = &PartitionSpec{Action: ImportAction, Names: yyDollar[3].partitionsUnion()} } @@ -9080,7 +9101,7 @@ yydefault: case 429: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2421 +//line sql.y:2442 { yyLOCAL = &PartitionSpec{Action: ImportAction, IsAll: true} } @@ -9088,7 +9109,7 @@ yydefault: case 430: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2425 +//line sql.y:2446 { yyLOCAL = &PartitionSpec{Action: TruncateAction, Names: yyDollar[3].partitionsUnion()} } @@ -9096,7 +9117,7 @@ yydefault: case 431: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2429 +//line sql.y:2450 { yyLOCAL = &PartitionSpec{Action: TruncateAction, IsAll: true} } @@ -9104,7 +9125,7 @@ yydefault: case 432: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2433 +//line sql.y:2454 { yyLOCAL = &PartitionSpec{Action: CoalesceAction, Number: NewIntLiteral(yyDollar[3].str)} } @@ -9112,7 +9133,7 @@ yydefault: case 433: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2437 +//line sql.y:2458 { yyLOCAL = &PartitionSpec{Action: ExchangeAction, Names: Partitions{yyDollar[3].colIdent}, TableName: yyDollar[6].tableName, WithoutValidation: yyDollar[7].booleanUnion()} } @@ -9120,7 +9141,7 @@ yydefault: case 434: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2441 +//line sql.y:2462 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, Names: yyDollar[3].partitionsUnion()} } @@ -9128,7 +9149,7 @@ yydefault: case 435: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2445 +//line sql.y:2466 { yyLOCAL = &PartitionSpec{Action: AnalyzeAction, IsAll: true} } @@ -9136,7 +9157,7 @@ yydefault: case 436: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2449 +//line sql.y:2470 { yyLOCAL = &PartitionSpec{Action: CheckAction, Names: yyDollar[3].partitionsUnion()} } @@ -9144,7 +9165,7 @@ yydefault: case 437: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2453 +//line sql.y:2474 { yyLOCAL = &PartitionSpec{Action: CheckAction, IsAll: true} } @@ -9152,7 +9173,7 @@ yydefault: case 438: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2457 +//line sql.y:2478 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, Names: yyDollar[3].partitionsUnion()} } @@ -9160,7 +9181,7 @@ yydefault: case 439: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2461 +//line sql.y:2482 { yyLOCAL = &PartitionSpec{Action: OptimizeAction, IsAll: true} } @@ -9168,7 +9189,7 @@ yydefault: case 440: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2465 +//line sql.y:2486 { yyLOCAL = &PartitionSpec{Action: RebuildAction, Names: yyDollar[3].partitionsUnion()} } @@ -9176,7 +9197,7 @@ yydefault: case 441: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2469 +//line sql.y:2490 { yyLOCAL = &PartitionSpec{Action: RebuildAction, IsAll: true} } @@ -9184,7 +9205,7 @@ yydefault: case 442: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2473 +//line sql.y:2494 { yyLOCAL = &PartitionSpec{Action: RepairAction, Names: yyDollar[3].partitionsUnion()} } @@ -9192,7 +9213,7 @@ yydefault: case 443: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2477 +//line sql.y:2498 { yyLOCAL = &PartitionSpec{Action: RepairAction, IsAll: true} } @@ -9200,7 +9221,7 @@ yydefault: case 444: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *PartitionSpec -//line sql.y:2481 +//line sql.y:2502 { yyLOCAL = &PartitionSpec{Action: UpgradeAction} } @@ -9208,7 +9229,7 @@ yydefault: case 445: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2486 +//line sql.y:2507 { yyLOCAL = false } @@ -9216,7 +9237,7 @@ yydefault: case 446: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2490 +//line sql.y:2511 { yyLOCAL = false } @@ -9224,7 +9245,7 @@ yydefault: case 447: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:2494 +//line sql.y:2515 { yyLOCAL = true } @@ -9232,14 +9253,14 @@ yydefault: case 448: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*PartitionDefinition -//line sql.y:2501 +//line sql.y:2522 { yyLOCAL = []*PartitionDefinition{yyDollar[1].partDefUnion()} } yyVAL.union = yyLOCAL case 449: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2505 +//line sql.y:2526 { yySLICE := (*[]*PartitionDefinition)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].partDefUnion()) @@ -9247,7 +9268,7 @@ yydefault: case 450: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2511 +//line sql.y:2532 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Limit: yyDollar[7].exprUnion()} } @@ -9255,7 +9276,7 @@ yydefault: case 451: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *PartitionDefinition -//line sql.y:2515 +//line sql.y:2536 { yyLOCAL = &PartitionDefinition{Name: yyDollar[2].colIdent, Maxvalue: true} } @@ -9263,7 +9284,7 @@ yydefault: case 452: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2521 +//line sql.y:2542 { yyLOCAL = &RenameTable{TablePairs: yyDollar[3].renameTablePairsUnion()} } @@ -9271,14 +9292,14 @@ yydefault: case 453: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*RenameTablePair -//line sql.y:2527 +//line sql.y:2548 { yyLOCAL = []*RenameTablePair{{FromTable: yyDollar[1].tableName, ToTable: yyDollar[3].tableName}} } yyVAL.union = yyLOCAL case 454: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2531 +//line sql.y:2552 { yySLICE := (*[]*RenameTablePair)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, &RenameTablePair{FromTable: yyDollar[3].tableName, ToTable: yyDollar[5].tableName}) @@ -9286,7 +9307,7 @@ yydefault: case 455: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2537 +//line sql.y:2558 { yyLOCAL = &DropTable{FromTables: yyDollar[6].tableNamesUnion(), IfExists: yyDollar[5].booleanUnion(), Comments: Comments(yyDollar[2].strs), Temp: yyDollar[3].booleanUnion()} } @@ -9294,7 +9315,7 @@ yydefault: case 456: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2541 +//line sql.y:2562 { // Change this to an alter statement if yyDollar[4].colIdent.Lowered() == "primary" { @@ -9307,7 +9328,7 @@ yydefault: case 457: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:2550 +//line sql.y:2571 { yyLOCAL = &DropView{FromTables: yyDollar[5].tableNamesUnion(), IfExists: yyDollar[4].booleanUnion()} } @@ -9315,7 +9336,7 @@ yydefault: case 458: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2554 +//line sql.y:2575 { yyLOCAL = &DropDatabase{Comments: Comments(yyDollar[2].strs), DBName: yyDollar[5].tableIdent, IfExists: yyDollar[4].booleanUnion()} } @@ -9323,7 +9344,7 @@ yydefault: case 459: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2560 +//line sql.y:2581 { yyLOCAL = &TruncateTable{Table: yyDollar[3].tableName} } @@ -9331,7 +9352,7 @@ yydefault: case 460: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2564 +//line sql.y:2585 { yyLOCAL = &TruncateTable{Table: yyDollar[2].tableName} } @@ -9339,7 +9360,7 @@ yydefault: case 461: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2569 +//line sql.y:2590 { yyLOCAL = &OtherRead{} } @@ -9347,7 +9368,7 @@ yydefault: case 462: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2575 +//line sql.y:2596 { yyLOCAL = &Show{&ShowBasic{Command: Charset, Filter: yyDollar[3].showFilterUnion()}} } @@ -9355,7 +9376,7 @@ yydefault: case 463: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2579 +//line sql.y:2600 { yyLOCAL = &Show{&ShowBasic{Command: Collation, Filter: yyDollar[3].showFilterUnion()}} } @@ -9363,7 +9384,7 @@ yydefault: case 464: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2583 +//line sql.y:2604 { yyLOCAL = &Show{&ShowBasic{Full: yyDollar[2].booleanUnion(), Command: Column, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } @@ -9371,7 +9392,7 @@ yydefault: case 465: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2587 +//line sql.y:2608 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -9379,7 +9400,7 @@ yydefault: case 466: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2591 +//line sql.y:2612 { yyLOCAL = &Show{&ShowBasic{Command: Database, Filter: yyDollar[3].showFilterUnion()}} } @@ -9387,7 +9408,7 @@ yydefault: case 467: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2595 +//line sql.y:2616 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -9395,7 +9416,7 @@ yydefault: case 468: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2599 +//line sql.y:2620 { yyLOCAL = &Show{&ShowBasic{Command: Keyspace, Filter: yyDollar[3].showFilterUnion()}} } @@ -9403,7 +9424,7 @@ yydefault: case 469: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2603 +//line sql.y:2624 { yyLOCAL = &Show{&ShowBasic{Command: Function, Filter: yyDollar[4].showFilterUnion()}} } @@ -9411,7 +9432,7 @@ yydefault: case 470: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:2607 +//line sql.y:2628 { yyLOCAL = &Show{&ShowBasic{Command: Index, Tbl: yyDollar[5].tableName, DbName: yyDollar[6].tableIdent, Filter: yyDollar[7].showFilterUnion()}} } @@ -9419,7 +9440,7 @@ yydefault: case 471: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2611 +//line sql.y:2632 { yyLOCAL = &Show{&ShowBasic{Command: OpenTable, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -9427,7 +9448,7 @@ yydefault: case 472: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2615 +//line sql.y:2636 { yyLOCAL = &Show{&ShowBasic{Command: Privilege}} } @@ -9435,7 +9456,7 @@ yydefault: case 473: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2619 +//line sql.y:2640 { yyLOCAL = &Show{&ShowBasic{Command: Procedure, Filter: yyDollar[4].showFilterUnion()}} } @@ -9443,7 +9464,7 @@ yydefault: case 474: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2623 +//line sql.y:2644 { yyLOCAL = &Show{&ShowBasic{Command: StatusSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -9451,7 +9472,7 @@ yydefault: case 475: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2627 +//line sql.y:2648 { yyLOCAL = &Show{&ShowBasic{Command: StatusGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -9459,7 +9480,7 @@ yydefault: case 476: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2631 +//line sql.y:2652 { yyLOCAL = &Show{&ShowBasic{Command: VariableSession, Filter: yyDollar[4].showFilterUnion()}} } @@ -9467,7 +9488,7 @@ yydefault: case 477: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2635 +//line sql.y:2656 { yyLOCAL = &Show{&ShowBasic{Command: VariableGlobal, Filter: yyDollar[4].showFilterUnion()}} } @@ -9475,7 +9496,7 @@ yydefault: case 478: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2639 +//line sql.y:2660 { yyLOCAL = &Show{&ShowBasic{Command: TableStatus, DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -9483,7 +9504,7 @@ yydefault: case 479: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2643 +//line sql.y:2664 { yyLOCAL = &Show{&ShowBasic{Command: Table, Full: yyDollar[2].booleanUnion(), DbName: yyDollar[4].tableIdent, Filter: yyDollar[5].showFilterUnion()}} } @@ -9491,7 +9512,7 @@ yydefault: case 480: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2647 +//line sql.y:2668 { yyLOCAL = &Show{&ShowBasic{Command: Trigger, DbName: yyDollar[3].tableIdent, Filter: yyDollar[4].showFilterUnion()}} } @@ -9499,7 +9520,7 @@ yydefault: case 481: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2651 +//line sql.y:2672 { yyLOCAL = &Show{&ShowCreate{Command: CreateDb, Op: yyDollar[4].tableName}} } @@ -9507,7 +9528,7 @@ yydefault: case 482: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2655 +//line sql.y:2676 { yyLOCAL = &Show{&ShowCreate{Command: CreateE, Op: yyDollar[4].tableName}} } @@ -9515,7 +9536,7 @@ yydefault: case 483: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2659 +//line sql.y:2680 { yyLOCAL = &Show{&ShowCreate{Command: CreateF, Op: yyDollar[4].tableName}} } @@ -9523,7 +9544,7 @@ yydefault: case 484: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2663 +//line sql.y:2684 { yyLOCAL = &Show{&ShowCreate{Command: CreateProc, Op: yyDollar[4].tableName}} } @@ -9531,7 +9552,7 @@ yydefault: case 485: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2667 +//line sql.y:2688 { yyLOCAL = &Show{&ShowCreate{Command: CreateTbl, Op: yyDollar[4].tableName}} } @@ -9539,7 +9560,7 @@ yydefault: case 486: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2671 +//line sql.y:2692 { yyLOCAL = &Show{&ShowCreate{Command: CreateTr, Op: yyDollar[4].tableName}} } @@ -9547,7 +9568,7 @@ yydefault: case 487: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2675 +//line sql.y:2696 { yyLOCAL = &Show{&ShowCreate{Command: CreateV, Op: yyDollar[4].tableName}} } @@ -9555,7 +9576,7 @@ yydefault: case 488: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2679 +//line sql.y:2700 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9563,7 +9584,7 @@ yydefault: case 489: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2683 +//line sql.y:2704 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].colIdent.String()), Scope: ImplicitScope}} } @@ -9571,7 +9592,7 @@ yydefault: case 490: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2687 +//line sql.y:2708 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9579,7 +9600,7 @@ yydefault: case 491: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2691 +//line sql.y:2712 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9587,7 +9608,7 @@ yydefault: case 492: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2695 +//line sql.y:2716 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } @@ -9595,7 +9616,7 @@ yydefault: case 493: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2699 +//line sql.y:2720 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9603,7 +9624,7 @@ yydefault: case 494: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2703 +//line sql.y:2724 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Table: yyDollar[4].tableName, Scope: ImplicitScope}} } @@ -9611,7 +9632,7 @@ yydefault: case 495: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2707 +//line sql.y:2728 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9619,7 +9640,7 @@ yydefault: case 496: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2711 +//line sql.y:2732 { yyLOCAL = &Show{&ShowBasic{Command: GtidExecGlobal, DbName: yyDollar[4].tableIdent}} } @@ -9627,7 +9648,7 @@ yydefault: case 497: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2715 +//line sql.y:2736 { yyLOCAL = &Show{&ShowBasic{Command: VGtidExecGlobal, DbName: yyDollar[4].tableIdent}} } @@ -9635,7 +9656,7 @@ yydefault: case 498: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2719 +//line sql.y:2740 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilterUnion()} yyLOCAL = &Show{&ShowLegacy{Scope: VitessMetadataScope, Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt}} @@ -9644,7 +9665,7 @@ yydefault: case 499: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2724 +//line sql.y:2745 { yyLOCAL = &Show{&ShowBasic{Command: VitessMigrations, Filter: yyDollar[4].showFilterUnion(), DbName: yyDollar[3].tableIdent}} } @@ -9652,7 +9673,7 @@ yydefault: case 500: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:2728 +//line sql.y:2749 { yyLOCAL = &ShowMigrationLogs{UUID: string(yyDollar[3].str)} } @@ -9660,7 +9681,7 @@ yydefault: case 501: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2732 +//line sql.y:2753 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9668,7 +9689,7 @@ yydefault: case 502: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2736 +//line sql.y:2757 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), Scope: ImplicitScope}} } @@ -9676,7 +9697,7 @@ yydefault: case 503: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2740 +//line sql.y:2761 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str) + " " + string(yyDollar[3].str), OnTable: yyDollar[5].tableName, Scope: ImplicitScope}} } @@ -9684,7 +9705,7 @@ yydefault: case 504: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2744 +//line sql.y:2765 { yyLOCAL = &Show{&ShowBasic{Command: Warnings}} } @@ -9692,7 +9713,7 @@ yydefault: case 505: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2749 +//line sql.y:2770 { // This should probably be a different type (ShowVitessTopoOpt), but // just getting the thing working for now @@ -9703,7 +9724,7 @@ yydefault: case 506: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2763 +//line sql.y:2784 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].colIdent.String()), Scope: ImplicitScope}} } @@ -9711,7 +9732,7 @@ yydefault: case 507: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2767 +//line sql.y:2788 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } @@ -9719,39 +9740,39 @@ yydefault: case 508: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2771 +//line sql.y:2792 { yyLOCAL = &Show{&ShowLegacy{Type: string(yyDollar[2].str), Scope: ImplicitScope}} } yyVAL.union = yyLOCAL case 509: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2777 +//line sql.y:2798 { yyVAL.str = string(yyDollar[1].str) } case 510: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2781 +//line sql.y:2802 { yyVAL.str = string(yyDollar[1].str) } case 511: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2787 +//line sql.y:2808 { yyVAL.str = "" } case 512: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2791 +//line sql.y:2812 { yyVAL.str = "extended " } case 513: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:2797 +//line sql.y:2818 { yyLOCAL = false } @@ -9759,45 +9780,45 @@ yydefault: case 514: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:2801 +//line sql.y:2822 { yyLOCAL = true } yyVAL.union = yyLOCAL case 515: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2807 +//line sql.y:2828 { yyVAL.str = string(yyDollar[1].str) } case 516: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2811 +//line sql.y:2832 { yyVAL.str = string(yyDollar[1].str) } case 517: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2817 +//line sql.y:2838 { yyVAL.tableIdent = NewTableIdent("") } case 518: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2821 +//line sql.y:2842 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 519: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2825 +//line sql.y:2846 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 520: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2831 +//line sql.y:2852 { yyLOCAL = nil } @@ -9805,7 +9826,7 @@ yydefault: case 521: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2835 +//line sql.y:2856 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } @@ -9813,7 +9834,7 @@ yydefault: case 522: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2839 +//line sql.y:2860 { yyLOCAL = &ShowFilter{Filter: yyDollar[2].exprUnion()} } @@ -9821,7 +9842,7 @@ yydefault: case 523: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2845 +//line sql.y:2866 { yyLOCAL = nil } @@ -9829,33 +9850,33 @@ yydefault: case 524: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ShowFilter -//line sql.y:2849 +//line sql.y:2870 { yyLOCAL = &ShowFilter{Like: string(yyDollar[2].str)} } yyVAL.union = yyLOCAL case 525: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2855 +//line sql.y:2876 { yyVAL.empty = struct{}{} } case 526: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2859 +//line sql.y:2880 { yyVAL.empty = struct{}{} } case 527: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2863 +//line sql.y:2884 { yyVAL.empty = struct{}{} } case 528: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2869 +//line sql.y:2890 { yyLOCAL = &Use{DBName: yyDollar[2].tableIdent} } @@ -9863,7 +9884,7 @@ yydefault: case 529: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2873 +//line sql.y:2894 { yyLOCAL = &Use{DBName: TableIdent{v: ""}} } @@ -9871,7 +9892,7 @@ yydefault: case 530: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2879 +//line sql.y:2900 { yyLOCAL = &Begin{} } @@ -9879,7 +9900,7 @@ yydefault: case 531: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2883 +//line sql.y:2904 { yyLOCAL = &Begin{} } @@ -9887,7 +9908,7 @@ yydefault: case 532: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2889 +//line sql.y:2910 { yyLOCAL = &Commit{} } @@ -9895,7 +9916,7 @@ yydefault: case 533: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2895 +//line sql.y:2916 { yyLOCAL = &Rollback{} } @@ -9903,39 +9924,39 @@ yydefault: case 534: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:2899 +//line sql.y:2920 { yyLOCAL = &SRollback{Name: yyDollar[5].colIdent} } yyVAL.union = yyLOCAL case 535: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2904 +//line sql.y:2925 { yyVAL.empty = struct{}{} } case 536: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2906 +//line sql.y:2927 { yyVAL.empty = struct{}{} } case 537: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2909 +//line sql.y:2930 { yyVAL.empty = struct{}{} } case 538: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2911 +//line sql.y:2932 { yyVAL.empty = struct{}{} } case 539: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:2916 +//line sql.y:2937 { yyLOCAL = &Savepoint{Name: yyDollar[2].colIdent} } @@ -9943,7 +9964,7 @@ yydefault: case 540: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2922 +//line sql.y:2943 { yyLOCAL = &Release{Name: yyDollar[3].colIdent} } @@ -9951,7 +9972,7 @@ yydefault: case 541: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2927 +//line sql.y:2948 { yyLOCAL = EmptyType } @@ -9959,7 +9980,7 @@ yydefault: case 542: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2931 +//line sql.y:2952 { yyLOCAL = JSONType } @@ -9967,7 +9988,7 @@ yydefault: case 543: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2935 +//line sql.y:2956 { yyLOCAL = TreeType } @@ -9975,7 +9996,7 @@ yydefault: case 544: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2939 +//line sql.y:2960 { yyLOCAL = VitessType } @@ -9983,7 +10004,7 @@ yydefault: case 545: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2943 +//line sql.y:2964 { yyLOCAL = TraditionalType } @@ -9991,33 +10012,33 @@ yydefault: case 546: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ExplainType -//line sql.y:2947 +//line sql.y:2968 { yyLOCAL = AnalyzeType } yyVAL.union = yyLOCAL case 547: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2953 +//line sql.y:2974 { yyVAL.str = yyDollar[1].str } case 548: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2957 +//line sql.y:2978 { yyVAL.str = yyDollar[1].str } case 549: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2961 +//line sql.y:2982 { yyVAL.str = yyDollar[1].str } case 550: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2967 +//line sql.y:2988 { yyLOCAL = yyDollar[1].selStmtUnion() } @@ -10025,7 +10046,7 @@ yydefault: case 551: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2971 +//line sql.y:2992 { yyLOCAL = yyDollar[1].statementUnion() } @@ -10033,7 +10054,7 @@ yydefault: case 552: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2975 +//line sql.y:2996 { yyLOCAL = yyDollar[1].statementUnion() } @@ -10041,33 +10062,33 @@ yydefault: case 553: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Statement -//line sql.y:2979 +//line sql.y:3000 { yyLOCAL = yyDollar[1].statementUnion() } yyVAL.union = yyLOCAL case 554: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2984 +//line sql.y:3005 { yyVAL.str = "" } case 555: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2988 +//line sql.y:3009 { yyVAL.str = yyDollar[1].colIdent.val } case 556: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2992 +//line sql.y:3013 { yyVAL.str = encodeSQLString(yyDollar[1].str) } case 557: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:2998 +//line sql.y:3019 { yyLOCAL = &ExplainTab{Table: yyDollar[2].tableName, Wild: yyDollar[3].str} } @@ -10075,7 +10096,7 @@ yydefault: case 558: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3002 +//line sql.y:3023 { yyLOCAL = &ExplainStmt{Type: yyDollar[2].explainTypeUnion(), Statement: yyDollar[3].statementUnion()} } @@ -10083,7 +10104,7 @@ yydefault: case 559: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3008 +//line sql.y:3029 { yyLOCAL = &OtherAdmin{} } @@ -10091,7 +10112,7 @@ yydefault: case 560: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3012 +//line sql.y:3033 { yyLOCAL = &OtherAdmin{} } @@ -10099,7 +10120,7 @@ yydefault: case 561: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3018 +//line sql.y:3039 { yyLOCAL = &LockTables{Tables: yyDollar[3].tableAndLockTypesUnion()} } @@ -10107,14 +10128,14 @@ yydefault: case 562: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableAndLockTypes -//line sql.y:3024 +//line sql.y:3045 { yyLOCAL = TableAndLockTypes{yyDollar[1].tableAndLockTypeUnion()} } yyVAL.union = yyLOCAL case 563: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3028 +//line sql.y:3049 { yySLICE := (*TableAndLockTypes)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableAndLockTypeUnion()) @@ -10122,7 +10143,7 @@ yydefault: case 564: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *TableAndLockType -//line sql.y:3034 +//line sql.y:3055 { yyLOCAL = &TableAndLockType{Table: yyDollar[1].aliasedTableNameUnion(), Lock: yyDollar[2].lockTypeUnion()} } @@ -10130,7 +10151,7 @@ yydefault: case 565: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:3040 +//line sql.y:3061 { yyLOCAL = Read } @@ -10138,7 +10159,7 @@ yydefault: case 566: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:3044 +//line sql.y:3065 { yyLOCAL = ReadLocal } @@ -10146,7 +10167,7 @@ yydefault: case 567: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL LockType -//line sql.y:3048 +//line sql.y:3069 { yyLOCAL = Write } @@ -10154,7 +10175,7 @@ yydefault: case 568: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL LockType -//line sql.y:3052 +//line sql.y:3073 { yyLOCAL = LowPriorityWrite } @@ -10162,7 +10183,7 @@ yydefault: case 569: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:3058 +//line sql.y:3079 { yyLOCAL = &UnlockTables{} } @@ -10170,7 +10191,7 @@ yydefault: case 570: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3064 +//line sql.y:3085 { yyLOCAL = &RevertMigration{Comments: Comments(yyDollar[2].strs), UUID: string(yyDollar[4].str)} } @@ -10178,7 +10199,7 @@ yydefault: case 571: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3070 +//line sql.y:3091 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), FlushOptions: yyDollar[3].strs} } @@ -10186,7 +10207,7 @@ yydefault: case 572: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Statement -//line sql.y:3074 +//line sql.y:3095 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion()} } @@ -10194,7 +10215,7 @@ yydefault: case 573: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3078 +//line sql.y:3099 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), WithLock: true} } @@ -10202,7 +10223,7 @@ yydefault: case 574: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Statement -//line sql.y:3082 +//line sql.y:3103 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion()} } @@ -10210,7 +10231,7 @@ yydefault: case 575: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL Statement -//line sql.y:3086 +//line sql.y:3107 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), WithLock: true} } @@ -10218,99 +10239,99 @@ yydefault: case 576: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:3090 +//line sql.y:3111 { yyLOCAL = &Flush{IsLocal: yyDollar[2].booleanUnion(), TableNames: yyDollar[4].tableNamesUnion(), ForExport: true} } yyVAL.union = yyLOCAL case 577: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3096 +//line sql.y:3117 { yyVAL.strs = []string{yyDollar[1].str} } case 578: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3100 +//line sql.y:3121 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[3].str) } case 579: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3106 +//line sql.y:3127 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 580: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3110 +//line sql.y:3131 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 581: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3114 +//line sql.y:3135 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 582: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3118 +//line sql.y:3139 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 583: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3122 +//line sql.y:3143 { yyVAL.str = string(yyDollar[1].str) } case 584: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3126 +//line sql.y:3147 { yyVAL.str = string(yyDollar[1].str) } case 585: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3130 +//line sql.y:3151 { yyVAL.str = string(yyDollar[1].str) } case 586: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3134 +//line sql.y:3155 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) + yyDollar[3].str } case 587: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3138 +//line sql.y:3159 { yyVAL.str = string(yyDollar[1].str) + " " + string(yyDollar[2].str) } case 588: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3142 +//line sql.y:3163 { yyVAL.str = string(yyDollar[1].str) } case 589: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3146 +//line sql.y:3167 { yyVAL.str = string(yyDollar[1].str) } case 590: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3150 +//line sql.y:3171 { yyVAL.str = string(yyDollar[1].str) } case 591: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3155 +//line sql.y:3176 { yyLOCAL = false } @@ -10318,7 +10339,7 @@ yydefault: case 592: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3159 +//line sql.y:3180 { yyLOCAL = true } @@ -10326,52 +10347,52 @@ yydefault: case 593: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3163 +//line sql.y:3184 { yyLOCAL = true } yyVAL.union = yyLOCAL case 594: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3168 +//line sql.y:3189 { yyVAL.str = "" } case 595: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3172 +//line sql.y:3193 { yyVAL.str = " " + string(yyDollar[1].str) + " " + string(yyDollar[2].str) + " " + yyDollar[3].colIdent.String() } case 596: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3177 +//line sql.y:3198 { setAllowComments(yylex, true) } case 597: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3181 +//line sql.y:3202 { yyVAL.strs = yyDollar[2].strs setAllowComments(yylex, false) } case 598: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3187 +//line sql.y:3208 { yyVAL.strs = nil } case 599: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3191 +//line sql.y:3212 { yyVAL.strs = append(yyDollar[1].strs, yyDollar[2].str) } case 600: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3197 +//line sql.y:3218 { yyLOCAL = true } @@ -10379,7 +10400,7 @@ yydefault: case 601: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3201 +//line sql.y:3222 { yyLOCAL = false } @@ -10387,33 +10408,33 @@ yydefault: case 602: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:3205 +//line sql.y:3226 { yyLOCAL = true } yyVAL.union = yyLOCAL case 603: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3210 +//line sql.y:3231 { yyVAL.str = "" } case 604: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3214 +//line sql.y:3235 { yyVAL.str = SQLNoCacheStr } case 605: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3218 +//line sql.y:3239 { yyVAL.str = SQLCacheStr } case 606: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:3223 +//line sql.y:3244 { yyLOCAL = false } @@ -10421,7 +10442,7 @@ yydefault: case 607: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3227 +//line sql.y:3248 { yyLOCAL = true } @@ -10429,7 +10450,7 @@ yydefault: case 608: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:3231 +//line sql.y:3252 { yyLOCAL = true } @@ -10437,7 +10458,7 @@ yydefault: case 609: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3236 +//line sql.y:3257 { yyLOCAL = nil } @@ -10445,94 +10466,94 @@ yydefault: case 610: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3240 +//line sql.y:3261 { yyLOCAL = yyDollar[1].selectExprsUnion() } yyVAL.union = yyLOCAL case 611: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3245 +//line sql.y:3266 { yyVAL.strs = nil } case 612: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3249 +//line sql.y:3270 { yyVAL.strs = []string{yyDollar[1].str} } case 613: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3253 +//line sql.y:3274 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } case 614: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3257 +//line sql.y:3278 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } case 615: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3261 +//line sql.y:3282 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } case 616: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3267 +//line sql.y:3288 { yyVAL.str = SQLNoCacheStr } case 617: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3271 +//line sql.y:3292 { yyVAL.str = SQLCacheStr } case 618: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3275 +//line sql.y:3296 { yyVAL.str = DistinctStr } case 619: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3279 +//line sql.y:3300 { yyVAL.str = DistinctStr } case 620: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3283 +//line sql.y:3304 { yyVAL.str = StraightJoinHint } case 621: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3287 +//line sql.y:3308 { yyVAL.str = SQLCalcFoundRowsStr } case 622: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3291 +//line sql.y:3312 { yyVAL.str = AllStr // These are not picked up by NewSelect, and so ALL will be dropped. But this is OK, since it's redundant anyway } case 623: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExprs -//line sql.y:3297 +//line sql.y:3318 { yyLOCAL = SelectExprs{yyDollar[1].selectExprUnion()} } yyVAL.union = yyLOCAL case 624: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3301 +//line sql.y:3322 { yySLICE := (*SelectExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].selectExprUnion()) @@ -10540,7 +10561,7 @@ yydefault: case 625: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3307 +//line sql.y:3328 { yyLOCAL = &StarExpr{} } @@ -10548,7 +10569,7 @@ yydefault: case 626: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3311 +//line sql.y:3332 { yyLOCAL = &AliasedExpr{Expr: yyDollar[1].exprUnion(), As: yyDollar[2].colIdent} } @@ -10556,7 +10577,7 @@ yydefault: case 627: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3315 +//line sql.y:3336 { yyLOCAL = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } @@ -10564,39 +10585,39 @@ yydefault: case 628: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL SelectExpr -//line sql.y:3319 +//line sql.y:3340 { yyLOCAL = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } yyVAL.union = yyLOCAL case 629: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3324 +//line sql.y:3345 { yyVAL.colIdent = ColIdent{} } case 630: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3328 +//line sql.y:3349 { yyVAL.colIdent = yyDollar[1].colIdent } case 631: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3332 +//line sql.y:3353 { yyVAL.colIdent = yyDollar[2].colIdent } case 633: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3339 +//line sql.y:3360 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 634: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3344 +//line sql.y:3365 { yyLOCAL = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } @@ -10604,7 +10625,7 @@ yydefault: case 635: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3348 +//line sql.y:3369 { yyLOCAL = yyDollar[2].tableExprsUnion() } @@ -10612,14 +10633,14 @@ yydefault: case 636: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExprs -//line sql.y:3354 +//line sql.y:3375 { yyLOCAL = TableExprs{yyDollar[1].tableExprUnion()} } yyVAL.union = yyLOCAL case 637: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3358 +//line sql.y:3379 { yySLICE := (*TableExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].tableExprUnion()) @@ -10627,7 +10648,7 @@ yydefault: case 640: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3368 +//line sql.y:3389 { yyLOCAL = yyDollar[1].aliasedTableNameUnion() } @@ -10635,7 +10656,7 @@ yydefault: case 641: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3372 +//line sql.y:3393 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].derivedTableUnion(), As: yyDollar[3].tableIdent} } @@ -10643,7 +10664,7 @@ yydefault: case 642: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3376 +//line sql.y:3397 { yyLOCAL = &ParenTableExpr{Exprs: yyDollar[2].tableExprsUnion()} } @@ -10651,7 +10672,7 @@ yydefault: case 643: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *DerivedTable -//line sql.y:3382 +//line sql.y:3403 { yyLOCAL = &DerivedTable{yyDollar[2].selStmtUnion()} } @@ -10659,7 +10680,7 @@ yydefault: case 644: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3388 +//line sql.y:3409 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHintsUnion()} } @@ -10667,7 +10688,7 @@ yydefault: case 645: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AliasedTableExpr -//line sql.y:3392 +//line sql.y:3413 { yyLOCAL = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitionsUnion(), As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHintsUnion()} } @@ -10675,7 +10696,7 @@ yydefault: case 646: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Columns -//line sql.y:3397 +//line sql.y:3418 { yyLOCAL = nil } @@ -10683,7 +10704,7 @@ yydefault: case 647: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:3401 +//line sql.y:3422 { yyLOCAL = yyDollar[2].columnsUnion() } @@ -10691,14 +10712,14 @@ yydefault: case 648: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3407 +//line sql.y:3428 { yyLOCAL = Columns{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL case 649: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3411 +//line sql.y:3432 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) @@ -10706,7 +10727,7 @@ yydefault: case 650: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3417 +//line sql.y:3438 { yyLOCAL = Columns{yyDollar[1].colIdent} } @@ -10714,21 +10735,21 @@ yydefault: case 651: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:3421 +//line sql.y:3442 { yyLOCAL = Columns{NewColIdent(string(yyDollar[1].str))} } yyVAL.union = yyLOCAL case 652: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3425 +//line sql.y:3446 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } case 653: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3429 +//line sql.y:3450 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, NewColIdent(string(yyDollar[3].str))) @@ -10736,14 +10757,14 @@ yydefault: case 654: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Partitions -//line sql.y:3435 +//line sql.y:3456 { yyLOCAL = Partitions{yyDollar[1].colIdent} } yyVAL.union = yyLOCAL case 655: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3439 +//line sql.y:3460 { yySLICE := (*Partitions)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) @@ -10751,7 +10772,7 @@ yydefault: case 656: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3452 +//line sql.y:3473 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10759,7 +10780,7 @@ yydefault: case 657: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3456 +//line sql.y:3477 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10767,7 +10788,7 @@ yydefault: case 658: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3460 +//line sql.y:3481 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion(), Condition: yyDollar[4].joinCondition} } @@ -10775,87 +10796,87 @@ yydefault: case 659: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL TableExpr -//line sql.y:3464 +//line sql.y:3485 { yyLOCAL = &JoinTableExpr{LeftExpr: yyDollar[1].tableExprUnion(), Join: yyDollar[2].joinTypeUnion(), RightExpr: yyDollar[3].tableExprUnion()} } yyVAL.union = yyLOCAL case 660: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3470 +//line sql.y:3491 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } case 661: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3472 +//line sql.y:3493 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columnsUnion()} } case 662: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3476 +//line sql.y:3497 { yyVAL.joinCondition = JoinCondition{} } case 663: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3478 +//line sql.y:3499 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 664: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3482 +//line sql.y:3503 { yyVAL.joinCondition = JoinCondition{} } case 665: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3484 +//line sql.y:3505 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].exprUnion()} } case 666: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3487 +//line sql.y:3508 { yyVAL.empty = struct{}{} } case 667: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3489 +//line sql.y:3510 { yyVAL.empty = struct{}{} } case 668: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3492 +//line sql.y:3513 { yyVAL.tableIdent = NewTableIdent("") } case 669: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3496 +//line sql.y:3517 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 670: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3500 +//line sql.y:3521 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 672: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3507 +//line sql.y:3528 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 673: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3513 +//line sql.y:3534 { yyLOCAL = NormalJoinType } @@ -10863,7 +10884,7 @@ yydefault: case 674: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3517 +//line sql.y:3538 { yyLOCAL = NormalJoinType } @@ -10871,7 +10892,7 @@ yydefault: case 675: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3521 +//line sql.y:3542 { yyLOCAL = NormalJoinType } @@ -10879,7 +10900,7 @@ yydefault: case 676: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL JoinType -//line sql.y:3527 +//line sql.y:3548 { yyLOCAL = StraightJoinType } @@ -10887,7 +10908,7 @@ yydefault: case 677: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3533 +//line sql.y:3554 { yyLOCAL = LeftJoinType } @@ -10895,7 +10916,7 @@ yydefault: case 678: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3537 +//line sql.y:3558 { yyLOCAL = LeftJoinType } @@ -10903,7 +10924,7 @@ yydefault: case 679: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3541 +//line sql.y:3562 { yyLOCAL = RightJoinType } @@ -10911,7 +10932,7 @@ yydefault: case 680: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL JoinType -//line sql.y:3545 +//line sql.y:3566 { yyLOCAL = RightJoinType } @@ -10919,7 +10940,7 @@ yydefault: case 681: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3551 +//line sql.y:3572 { yyLOCAL = NaturalJoinType } @@ -10927,7 +10948,7 @@ yydefault: case 682: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL JoinType -//line sql.y:3555 +//line sql.y:3576 { if yyDollar[2].joinTypeUnion() == LeftJoinType { yyLOCAL = NaturalLeftJoinType @@ -10938,38 +10959,38 @@ yydefault: yyVAL.union = yyLOCAL case 683: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3565 +//line sql.y:3586 { yyVAL.tableName = yyDollar[2].tableName } case 684: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3569 +//line sql.y:3590 { yyVAL.tableName = yyDollar[1].tableName } case 685: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3575 +//line sql.y:3596 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 686: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3579 +//line sql.y:3600 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 687: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3585 +//line sql.y:3606 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 688: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3590 +//line sql.y:3611 { yyLOCAL = nil } @@ -10977,7 +10998,7 @@ yydefault: case 689: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3594 +//line sql.y:3615 { yyLOCAL = &IndexHints{Type: UseOp, Indexes: yyDollar[4].columnsUnion()} } @@ -10985,7 +11006,7 @@ yydefault: case 690: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3598 +//line sql.y:3619 { yyLOCAL = &IndexHints{Type: UseOp} } @@ -10993,7 +11014,7 @@ yydefault: case 691: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3602 +//line sql.y:3623 { yyLOCAL = &IndexHints{Type: IgnoreOp, Indexes: yyDollar[4].columnsUnion()} } @@ -11001,7 +11022,7 @@ yydefault: case 692: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *IndexHints -//line sql.y:3606 +//line sql.y:3627 { yyLOCAL = &IndexHints{Type: ForceOp, Indexes: yyDollar[4].columnsUnion()} } @@ -11009,7 +11030,7 @@ yydefault: case 693: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3611 +//line sql.y:3632 { yyLOCAL = nil } @@ -11017,7 +11038,7 @@ yydefault: case 694: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3615 +//line sql.y:3636 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11025,7 +11046,7 @@ yydefault: case 695: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3621 +//line sql.y:3642 { yyLOCAL = yyDollar[1].exprUnion() } @@ -11033,7 +11054,7 @@ yydefault: case 696: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3625 +//line sql.y:3646 { yyLOCAL = &AndExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -11041,7 +11062,7 @@ yydefault: case 697: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3629 +//line sql.y:3650 { yyLOCAL = &OrExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -11049,7 +11070,7 @@ yydefault: case 698: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3633 +//line sql.y:3654 { yyLOCAL = &XorExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].exprUnion()} } @@ -11057,7 +11078,7 @@ yydefault: case 699: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3637 +//line sql.y:3658 { yyLOCAL = &NotExpr{Expr: yyDollar[2].exprUnion()} } @@ -11065,7 +11086,7 @@ yydefault: case 700: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3641 +//line sql.y:3662 { yyLOCAL = &IsExpr{Left: yyDollar[1].exprUnion(), Right: yyDollar[3].isExprOperatorUnion()} } @@ -11073,7 +11094,7 @@ yydefault: case 701: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3645 +//line sql.y:3666 { yyLOCAL = yyDollar[1].exprUnion() } @@ -11081,27 +11102,27 @@ yydefault: case 702: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3649 +//line sql.y:3670 { yyLOCAL = &Default{ColName: yyDollar[2].str} } yyVAL.union = yyLOCAL case 703: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3655 +//line sql.y:3676 { yyVAL.str = "" } case 704: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3659 +//line sql.y:3680 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 705: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3665 +//line sql.y:3686 { yyLOCAL = BoolVal(true) } @@ -11109,7 +11130,7 @@ yydefault: case 706: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL BoolVal -//line sql.y:3669 +//line sql.y:3690 { yyLOCAL = BoolVal(false) } @@ -11117,7 +11138,7 @@ yydefault: case 707: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3675 +//line sql.y:3696 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: yyDollar[2].comparisonExprOperatorUnion(), Right: yyDollar[3].exprUnion()} } @@ -11125,7 +11146,7 @@ yydefault: case 708: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3679 +//line sql.y:3700 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: InOp, Right: yyDollar[3].colTupleUnion()} } @@ -11133,7 +11154,7 @@ yydefault: case 709: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3683 +//line sql.y:3704 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotInOp, Right: yyDollar[4].colTupleUnion()} } @@ -11141,7 +11162,7 @@ yydefault: case 710: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3687 +//line sql.y:3708 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: LikeOp, Right: yyDollar[3].exprUnion(), Escape: yyDollar[4].exprUnion()} } @@ -11149,7 +11170,7 @@ yydefault: case 711: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3691 +//line sql.y:3712 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotLikeOp, Right: yyDollar[4].exprUnion(), Escape: yyDollar[5].exprUnion()} } @@ -11157,7 +11178,7 @@ yydefault: case 712: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3695 +//line sql.y:3716 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: RegexpOp, Right: yyDollar[3].exprUnion()} } @@ -11165,7 +11186,7 @@ yydefault: case 713: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3699 +//line sql.y:3720 { yyLOCAL = &ComparisonExpr{Left: yyDollar[1].exprUnion(), Operator: NotRegexpOp, Right: yyDollar[4].exprUnion()} } @@ -11173,7 +11194,7 @@ yydefault: case 714: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3703 +//line sql.y:3724 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: BetweenOp, From: yyDollar[3].exprUnion(), To: yyDollar[5].exprUnion()} } @@ -11181,7 +11202,7 @@ yydefault: case 715: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3707 +//line sql.y:3728 { yyLOCAL = &RangeCond{Left: yyDollar[1].exprUnion(), Operator: NotBetweenOp, From: yyDollar[4].exprUnion(), To: yyDollar[6].exprUnion()} } @@ -11189,7 +11210,7 @@ yydefault: case 716: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3711 +//line sql.y:3732 { yyLOCAL = &ExistsExpr{Subquery: yyDollar[2].subqueryUnion()} } @@ -11197,7 +11218,7 @@ yydefault: case 717: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3717 +//line sql.y:3738 { yyLOCAL = IsNullOp } @@ -11205,7 +11226,7 @@ yydefault: case 718: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3721 +//line sql.y:3742 { yyLOCAL = IsNotNullOp } @@ -11213,7 +11234,7 @@ yydefault: case 719: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3725 +//line sql.y:3746 { yyLOCAL = IsTrueOp } @@ -11221,7 +11242,7 @@ yydefault: case 720: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3729 +//line sql.y:3750 { yyLOCAL = IsNotTrueOp } @@ -11229,7 +11250,7 @@ yydefault: case 721: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3733 +//line sql.y:3754 { yyLOCAL = IsFalseOp } @@ -11237,7 +11258,7 @@ yydefault: case 722: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL IsExprOperator -//line sql.y:3737 +//line sql.y:3758 { yyLOCAL = IsNotFalseOp } @@ -11245,7 +11266,7 @@ yydefault: case 723: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3743 +//line sql.y:3764 { yyLOCAL = EqualOp } @@ -11253,7 +11274,7 @@ yydefault: case 724: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3747 +//line sql.y:3768 { yyLOCAL = LessThanOp } @@ -11261,7 +11282,7 @@ yydefault: case 725: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3751 +//line sql.y:3772 { yyLOCAL = GreaterThanOp } @@ -11269,7 +11290,7 @@ yydefault: case 726: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3755 +//line sql.y:3776 { yyLOCAL = LessEqualOp } @@ -11277,7 +11298,7 @@ yydefault: case 727: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3759 +//line sql.y:3780 { yyLOCAL = GreaterEqualOp } @@ -11285,7 +11306,7 @@ yydefault: case 728: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3763 +//line sql.y:3784 { yyLOCAL = NotEqualOp } @@ -11293,7 +11314,7 @@ yydefault: case 729: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ComparisonExprOperator -//line sql.y:3767 +//line sql.y:3788 { yyLOCAL = NullSafeEqualOp } @@ -11301,7 +11322,7 @@ yydefault: case 730: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:3772 +//line sql.y:3793 { yyLOCAL = nil } @@ -11309,7 +11330,7 @@ yydefault: case 731: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3776 +//line sql.y:3797 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11317,7 +11338,7 @@ yydefault: case 732: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3782 +//line sql.y:3803 { yyLOCAL = yyDollar[1].valTupleUnion() } @@ -11325,7 +11346,7 @@ yydefault: case 733: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3786 +//line sql.y:3807 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -11333,7 +11354,7 @@ yydefault: case 734: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ColTuple -//line sql.y:3790 +//line sql.y:3811 { yyLOCAL = ListArg(yyDollar[1].str[2:]) bindVariable(yylex, yyDollar[1].str[2:]) @@ -11342,7 +11363,7 @@ yydefault: case 735: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *Subquery -//line sql.y:3797 +//line sql.y:3818 { yyLOCAL = &Subquery{yyDollar[2].selStmtUnion()} } @@ -11350,14 +11371,14 @@ yydefault: case 736: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:3803 +//line sql.y:3824 { yyLOCAL = Exprs{yyDollar[1].exprUnion()} } yyVAL.union = yyLOCAL case 737: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3807 +//line sql.y:3828 { yySLICE := (*Exprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].exprUnion()) @@ -11365,7 +11386,7 @@ yydefault: case 738: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3813 +//line sql.y:3834 { yyLOCAL = yyDollar[1].exprUnion() } @@ -11373,7 +11394,7 @@ yydefault: case 739: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3817 +//line sql.y:3838 { yyLOCAL = yyDollar[1].boolValUnion() } @@ -11381,7 +11402,7 @@ yydefault: case 740: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3821 +//line sql.y:3842 { yyLOCAL = yyDollar[1].colNameUnion() } @@ -11389,7 +11410,7 @@ yydefault: case 741: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3825 +//line sql.y:3846 { yyLOCAL = yyDollar[1].exprUnion() } @@ -11397,7 +11418,7 @@ yydefault: case 742: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:3829 +//line sql.y:3850 { yyLOCAL = yyDollar[1].subqueryUnion() } @@ -11405,7 +11426,7 @@ yydefault: case 743: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3833 +//line sql.y:3854 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitAndOp, Right: yyDollar[3].exprUnion()} } @@ -11413,7 +11434,7 @@ yydefault: case 744: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3837 +//line sql.y:3858 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitOrOp, Right: yyDollar[3].exprUnion()} } @@ -11421,7 +11442,7 @@ yydefault: case 745: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3841 +//line sql.y:3862 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: BitXorOp, Right: yyDollar[3].exprUnion()} } @@ -11429,7 +11450,7 @@ yydefault: case 746: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3845 +//line sql.y:3866 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: PlusOp, Right: yyDollar[3].exprUnion()} } @@ -11437,7 +11458,7 @@ yydefault: case 747: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3849 +//line sql.y:3870 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MinusOp, Right: yyDollar[3].exprUnion()} } @@ -11445,7 +11466,7 @@ yydefault: case 748: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3853 +//line sql.y:3874 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: MultOp, Right: yyDollar[3].exprUnion()} } @@ -11453,7 +11474,7 @@ yydefault: case 749: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3857 +//line sql.y:3878 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: DivOp, Right: yyDollar[3].exprUnion()} } @@ -11461,7 +11482,7 @@ yydefault: case 750: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3861 +//line sql.y:3882 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: IntDivOp, Right: yyDollar[3].exprUnion()} } @@ -11469,7 +11490,7 @@ yydefault: case 751: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3865 +//line sql.y:3886 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -11477,7 +11498,7 @@ yydefault: case 752: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3869 +//line sql.y:3890 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ModOp, Right: yyDollar[3].exprUnion()} } @@ -11485,7 +11506,7 @@ yydefault: case 753: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3873 +//line sql.y:3894 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftLeftOp, Right: yyDollar[3].exprUnion()} } @@ -11493,7 +11514,7 @@ yydefault: case 754: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3877 +//line sql.y:3898 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].exprUnion(), Operator: ShiftRightOp, Right: yyDollar[3].exprUnion()} } @@ -11501,7 +11522,7 @@ yydefault: case 755: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3881 +//line sql.y:3902 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONExtractOp, Right: yyDollar[3].exprUnion()} } @@ -11509,7 +11530,7 @@ yydefault: case 756: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3885 +//line sql.y:3906 { yyLOCAL = &BinaryExpr{Left: yyDollar[1].colNameUnion(), Operator: JSONUnquoteExtractOp, Right: yyDollar[3].exprUnion()} } @@ -11517,7 +11538,7 @@ yydefault: case 757: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3889 +//line sql.y:3910 { yyLOCAL = &CollateExpr{Expr: yyDollar[1].exprUnion(), Charset: yyDollar[3].str} } @@ -11525,7 +11546,7 @@ yydefault: case 758: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3893 +//line sql.y:3914 { yyLOCAL = &UnaryExpr{Operator: BinaryOp, Expr: yyDollar[2].exprUnion()} } @@ -11533,7 +11554,7 @@ yydefault: case 759: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3897 +//line sql.y:3918 { yyLOCAL = &UnaryExpr{Operator: UBinaryOp, Expr: yyDollar[2].exprUnion()} } @@ -11541,7 +11562,7 @@ yydefault: case 760: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3901 +//line sql.y:3922 { yyLOCAL = &UnaryExpr{Operator: Utf8Op, Expr: yyDollar[2].exprUnion()} } @@ -11549,7 +11570,7 @@ yydefault: case 761: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3905 +//line sql.y:3926 { yyLOCAL = &UnaryExpr{Operator: Utf8mb4Op, Expr: yyDollar[2].exprUnion()} } @@ -11557,7 +11578,7 @@ yydefault: case 762: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3909 +//line sql.y:3930 { yyLOCAL = &UnaryExpr{Operator: Latin1Op, Expr: yyDollar[2].exprUnion()} } @@ -11565,7 +11586,7 @@ yydefault: case 763: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3913 +//line sql.y:3934 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11573,7 +11594,7 @@ yydefault: case 764: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3917 +//line sql.y:3938 { yyLOCAL = handleUnaryMinus(yyDollar[2].exprUnion()) } @@ -11581,7 +11602,7 @@ yydefault: case 765: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3921 +//line sql.y:3942 { yyLOCAL = &UnaryExpr{Operator: TildaOp, Expr: yyDollar[2].exprUnion()} } @@ -11589,7 +11610,7 @@ yydefault: case 766: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:3925 +//line sql.y:3946 { yyLOCAL = &UnaryExpr{Operator: BangOp, Expr: yyDollar[2].exprUnion()} } @@ -11597,7 +11618,7 @@ yydefault: case 767: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:3929 +//line sql.y:3950 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -11609,7 +11630,7 @@ yydefault: case 772: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3947 +//line sql.y:3968 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprsUnion()} } @@ -11617,7 +11638,7 @@ yydefault: case 773: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3951 +//line sql.y:3972 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } @@ -11625,7 +11646,7 @@ yydefault: case 774: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:3955 +//line sql.y:3976 { yyLOCAL = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprsUnion()} } @@ -11633,7 +11654,7 @@ yydefault: case 775: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3959 +//line sql.y:3980 { yyLOCAL = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprsUnion()} } @@ -11641,7 +11662,7 @@ yydefault: case 776: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3969 +//line sql.y:3990 { yyLOCAL = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11649,7 +11670,7 @@ yydefault: case 777: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:3973 +//line sql.y:3994 { yyLOCAL = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11657,7 +11678,7 @@ yydefault: case 778: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3977 +//line sql.y:3998 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } @@ -11665,7 +11686,7 @@ yydefault: case 779: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3981 +//line sql.y:4002 { yyLOCAL = &ConvertExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].convertTypeUnion()} } @@ -11673,7 +11694,7 @@ yydefault: case 780: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Expr -//line sql.y:3985 +//line sql.y:4006 { yyLOCAL = &ConvertUsingExpr{Expr: yyDollar[3].exprUnion(), Type: yyDollar[5].str} } @@ -11681,7 +11702,7 @@ yydefault: case 781: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3989 +//line sql.y:4010 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11689,7 +11710,7 @@ yydefault: case 782: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3993 +//line sql.y:4014 { yyLOCAL = &SubstrExpr{Name: yyDollar[3].colNameUnion(), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11697,7 +11718,7 @@ yydefault: case 783: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:3997 +//line sql.y:4018 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11705,7 +11726,7 @@ yydefault: case 784: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:4001 +//line sql.y:4022 { yyLOCAL = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].str), From: yyDollar[5].exprUnion(), To: yyDollar[7].exprUnion()} } @@ -11713,7 +11734,7 @@ yydefault: case 785: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL Expr -//line sql.y:4005 +//line sql.y:4026 { yyLOCAL = &MatchExpr{Columns: yyDollar[3].selectExprsUnion(), Expr: yyDollar[7].exprUnion(), Option: yyDollar[8].matchExprOptionUnion()} } @@ -11721,7 +11742,7 @@ yydefault: case 786: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:4009 +//line sql.y:4030 { yyLOCAL = &GroupConcatExpr{Distinct: yyDollar[3].booleanUnion(), Exprs: yyDollar[4].selectExprsUnion(), OrderBy: yyDollar[5].orderByUnion(), Separator: yyDollar[6].str, Limit: yyDollar[7].limitUnion()} } @@ -11729,7 +11750,7 @@ yydefault: case 787: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Expr -//line sql.y:4013 +//line sql.y:4034 { yyLOCAL = &CaseExpr{Expr: yyDollar[2].exprUnion(), Whens: yyDollar[3].whensUnion(), Else: yyDollar[4].exprUnion()} } @@ -11737,7 +11758,7 @@ yydefault: case 788: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4017 +//line sql.y:4038 { yyLOCAL = &ValuesFuncExpr{Name: yyDollar[3].colNameUnion()} } @@ -11745,7 +11766,7 @@ yydefault: case 789: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4021 +//line sql.y:4042 { yyLOCAL = &FuncExpr{Name: NewColIdent(yyDollar[1].str)} } @@ -11753,7 +11774,7 @@ yydefault: case 790: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4031 +//line sql.y:4052 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_timestamp")} } @@ -11761,7 +11782,7 @@ yydefault: case 791: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4035 +//line sql.y:4056 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_timestamp")} } @@ -11769,7 +11790,7 @@ yydefault: case 792: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4039 +//line sql.y:4060 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_time")} } @@ -11777,7 +11798,7 @@ yydefault: case 793: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4044 +//line sql.y:4065 { yyLOCAL = &FuncExpr{Name: NewColIdent("utc_date")} } @@ -11785,7 +11806,7 @@ yydefault: case 794: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4049 +//line sql.y:4070 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtime")} } @@ -11793,7 +11814,7 @@ yydefault: case 795: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4054 +//line sql.y:4075 { yyLOCAL = &FuncExpr{Name: NewColIdent("localtimestamp")} } @@ -11801,7 +11822,7 @@ yydefault: case 796: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4060 +//line sql.y:4081 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_date")} } @@ -11809,7 +11830,7 @@ yydefault: case 797: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4065 +//line sql.y:4086 { yyLOCAL = &FuncExpr{Name: NewColIdent("current_time")} } @@ -11817,7 +11838,7 @@ yydefault: case 798: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4070 +//line sql.y:4091 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11825,7 +11846,7 @@ yydefault: case 799: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4074 +//line sql.y:4095 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11833,7 +11854,7 @@ yydefault: case 800: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4078 +//line sql.y:4099 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].exprUnion()} } @@ -11841,7 +11862,7 @@ yydefault: case 801: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4083 +//line sql.y:4104 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].exprUnion()} } @@ -11849,7 +11870,7 @@ yydefault: case 802: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4088 +//line sql.y:4109 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].exprUnion()} } @@ -11857,7 +11878,7 @@ yydefault: case 803: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4093 +//line sql.y:4114 { yyLOCAL = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].exprUnion()} } @@ -11865,7 +11886,7 @@ yydefault: case 804: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:4097 +//line sql.y:4118 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } @@ -11873,7 +11894,7 @@ yydefault: case 805: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL Expr -//line sql.y:4101 +//line sql.y:4122 { yyLOCAL = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].exprUnion(), Expr2: yyDollar[7].exprUnion()} } @@ -11881,7 +11902,7 @@ yydefault: case 808: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Expr -//line sql.y:4111 +//line sql.y:4132 { yyLOCAL = yyDollar[2].exprUnion() } @@ -11889,7 +11910,7 @@ yydefault: case 809: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4121 +//line sql.y:4142 { yyLOCAL = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11897,7 +11918,7 @@ yydefault: case 810: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4125 +//line sql.y:4146 { yyLOCAL = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11905,7 +11926,7 @@ yydefault: case 811: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4129 +//line sql.y:4150 { yyLOCAL = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11913,7 +11934,7 @@ yydefault: case 812: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4133 +//line sql.y:4154 { yyLOCAL = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11921,7 +11942,7 @@ yydefault: case 813: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4137 +//line sql.y:4158 { yyLOCAL = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11929,7 +11950,7 @@ yydefault: case 814: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4141 +//line sql.y:4162 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11937,7 +11958,7 @@ yydefault: case 815: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Expr -//line sql.y:4145 +//line sql.y:4166 { yyLOCAL = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprsUnion()} } @@ -11945,7 +11966,7 @@ yydefault: case 816: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4151 +//line sql.y:4172 { yyLOCAL = NoOption } @@ -11953,7 +11974,7 @@ yydefault: case 817: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4155 +//line sql.y:4176 { yyLOCAL = BooleanModeOpt } @@ -11961,7 +11982,7 @@ yydefault: case 818: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4159 +//line sql.y:4180 { yyLOCAL = NaturalLanguageModeOpt } @@ -11969,7 +11990,7 @@ yydefault: case 819: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4163 +//line sql.y:4184 { yyLOCAL = NaturalLanguageModeWithQueryExpansionOpt } @@ -11977,33 +11998,33 @@ yydefault: case 820: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL MatchExprOption -//line sql.y:4167 +//line sql.y:4188 { yyLOCAL = QueryExpansionOpt } yyVAL.union = yyLOCAL case 821: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4173 +//line sql.y:4194 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 822: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4177 +//line sql.y:4198 { yyVAL.str = string(yyDollar[1].str) } case 823: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4181 +//line sql.y:4202 { yyVAL.str = string(yyDollar[1].str) } case 824: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4187 +//line sql.y:4208 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -12011,7 +12032,7 @@ yydefault: case 825: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4191 +//line sql.y:4212 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: yyDollar[3].str, Operator: CharacterSetOp} } @@ -12019,7 +12040,7 @@ yydefault: case 826: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4195 +//line sql.y:4216 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion(), Charset: string(yyDollar[3].colIdent.String())} } @@ -12027,7 +12048,7 @@ yydefault: case 827: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4199 +//line sql.y:4220 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -12035,7 +12056,7 @@ yydefault: case 828: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4203 +//line sql.y:4224 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -12043,7 +12064,7 @@ yydefault: case 829: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4207 +//line sql.y:4228 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} yyLOCAL.Length = yyDollar[2].LengthScaleOption.Length @@ -12053,7 +12074,7 @@ yydefault: case 830: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4213 +//line sql.y:4234 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -12061,7 +12082,7 @@ yydefault: case 831: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4217 +//line sql.y:4238 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -12069,7 +12090,7 @@ yydefault: case 832: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4221 +//line sql.y:4242 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -12077,7 +12098,7 @@ yydefault: case 833: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4225 +//line sql.y:4246 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -12085,7 +12106,7 @@ yydefault: case 834: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4229 +//line sql.y:4250 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str), Length: yyDollar[2].literalUnion()} } @@ -12093,7 +12114,7 @@ yydefault: case 835: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4233 +//line sql.y:4254 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -12101,7 +12122,7 @@ yydefault: case 836: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *ConvertType -//line sql.y:4237 +//line sql.y:4258 { yyLOCAL = &ConvertType{Type: string(yyDollar[1].str)} } @@ -12109,7 +12130,7 @@ yydefault: case 837: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4242 +//line sql.y:4263 { yyLOCAL = nil } @@ -12117,34 +12138,34 @@ yydefault: case 838: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4246 +//line sql.y:4267 { yyLOCAL = yyDollar[1].exprUnion() } yyVAL.union = yyLOCAL case 839: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4251 +//line sql.y:4272 { yyVAL.str = string("") } case 840: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4255 +//line sql.y:4276 { yyVAL.str = " separator " + encodeSQLString(yyDollar[2].str) } case 841: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*When -//line sql.y:4261 +//line sql.y:4282 { yyLOCAL = []*When{yyDollar[1].whenUnion()} } yyVAL.union = yyLOCAL case 842: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4265 +//line sql.y:4286 { yySLICE := (*[]*When)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[2].whenUnion()) @@ -12152,7 +12173,7 @@ yydefault: case 843: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *When -//line sql.y:4271 +//line sql.y:4292 { yyLOCAL = &When{Cond: yyDollar[2].exprUnion(), Val: yyDollar[4].exprUnion()} } @@ -12160,7 +12181,7 @@ yydefault: case 844: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4276 +//line sql.y:4297 { yyLOCAL = nil } @@ -12168,7 +12189,7 @@ yydefault: case 845: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4280 +//line sql.y:4301 { yyLOCAL = yyDollar[2].exprUnion() } @@ -12176,7 +12197,7 @@ yydefault: case 846: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *ColName -//line sql.y:4286 +//line sql.y:4307 { yyLOCAL = &ColName{Name: yyDollar[1].colIdent} } @@ -12184,7 +12205,7 @@ yydefault: case 847: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *ColName -//line sql.y:4290 +//line sql.y:4311 { yyLOCAL = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } @@ -12192,7 +12213,7 @@ yydefault: case 848: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *ColName -//line sql.y:4294 +//line sql.y:4315 { yyLOCAL = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } @@ -12200,7 +12221,7 @@ yydefault: case 849: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4300 +//line sql.y:4321 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } @@ -12208,7 +12229,7 @@ yydefault: case 850: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4304 +//line sql.y:4325 { yyLOCAL = NewHexLiteral(yyDollar[1].str) } @@ -12216,7 +12237,7 @@ yydefault: case 851: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4308 +//line sql.y:4329 { yyLOCAL = NewBitLiteral(yyDollar[1].str) } @@ -12224,7 +12245,7 @@ yydefault: case 852: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4312 +//line sql.y:4333 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } @@ -12232,7 +12253,7 @@ yydefault: case 853: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4316 +//line sql.y:4337 { yyLOCAL = NewFloatLiteral(yyDollar[1].str) } @@ -12240,7 +12261,7 @@ yydefault: case 854: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4320 +//line sql.y:4341 { yyLOCAL = NewHexNumLiteral(yyDollar[1].str) } @@ -12248,7 +12269,7 @@ yydefault: case 855: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4324 +//line sql.y:4345 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) @@ -12257,7 +12278,7 @@ yydefault: case 856: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4329 +//line sql.y:4350 { yyLOCAL = &NullVal{} } @@ -12265,7 +12286,7 @@ yydefault: case 857: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4335 +//line sql.y:4356 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -12278,7 +12299,7 @@ yydefault: case 858: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4344 +//line sql.y:4365 { yyLOCAL = NewIntLiteral(yyDollar[1].str) } @@ -12286,7 +12307,7 @@ yydefault: case 859: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4348 +//line sql.y:4369 { yyLOCAL = NewArgument(yyDollar[1].str[1:]) bindVariable(yylex, yyDollar[1].str[1:]) @@ -12295,7 +12316,7 @@ yydefault: case 860: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4354 +//line sql.y:4375 { yyLOCAL = nil } @@ -12303,7 +12324,7 @@ yydefault: case 861: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Exprs -//line sql.y:4358 +//line sql.y:4379 { yyLOCAL = yyDollar[3].exprsUnion() } @@ -12311,7 +12332,7 @@ yydefault: case 862: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Expr -//line sql.y:4363 +//line sql.y:4384 { yyLOCAL = nil } @@ -12319,7 +12340,7 @@ yydefault: case 863: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Expr -//line sql.y:4367 +//line sql.y:4388 { yyLOCAL = yyDollar[2].exprUnion() } @@ -12327,7 +12348,7 @@ yydefault: case 864: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4372 +//line sql.y:4393 { yyLOCAL = nil } @@ -12335,7 +12356,7 @@ yydefault: case 865: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4376 +//line sql.y:4397 { yyLOCAL = yyDollar[3].orderByUnion() } @@ -12343,14 +12364,14 @@ yydefault: case 866: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderBy -//line sql.y:4382 +//line sql.y:4403 { yyLOCAL = OrderBy{yyDollar[1].orderUnion()} } yyVAL.union = yyLOCAL case 867: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4386 +//line sql.y:4407 { yySLICE := (*OrderBy)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].orderUnion()) @@ -12358,7 +12379,7 @@ yydefault: case 868: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Order -//line sql.y:4392 +//line sql.y:4413 { yyLOCAL = &Order{Expr: yyDollar[1].exprUnion(), Direction: yyDollar[2].orderDirectionUnion()} } @@ -12366,7 +12387,7 @@ yydefault: case 869: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4397 +//line sql.y:4418 { yyLOCAL = AscOrder } @@ -12374,7 +12395,7 @@ yydefault: case 870: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4401 +//line sql.y:4422 { yyLOCAL = AscOrder } @@ -12382,7 +12403,7 @@ yydefault: case 871: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL OrderDirection -//line sql.y:4405 +//line sql.y:4426 { yyLOCAL = DescOrder } @@ -12390,7 +12411,7 @@ yydefault: case 872: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *Limit -//line sql.y:4410 +//line sql.y:4431 { yyLOCAL = nil } @@ -12398,7 +12419,7 @@ yydefault: case 873: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Limit -//line sql.y:4414 +//line sql.y:4435 { yyLOCAL = &Limit{Rowcount: yyDollar[2].exprUnion()} } @@ -12406,7 +12427,7 @@ yydefault: case 874: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4418 +//line sql.y:4439 { yyLOCAL = &Limit{Offset: yyDollar[2].exprUnion(), Rowcount: yyDollar[4].exprUnion()} } @@ -12414,7 +12435,7 @@ yydefault: case 875: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Limit -//line sql.y:4422 +//line sql.y:4443 { yyLOCAL = &Limit{Offset: yyDollar[4].exprUnion(), Rowcount: yyDollar[2].exprUnion()} } @@ -12422,7 +12443,7 @@ yydefault: case 876: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4427 +//line sql.y:4448 { yyLOCAL = nil } @@ -12430,7 +12451,7 @@ yydefault: case 877: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4431 +//line sql.y:4452 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } @@ -12438,7 +12459,7 @@ yydefault: case 878: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4435 +//line sql.y:4456 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion(), yyDollar[2].alterOptionUnion()} } @@ -12446,7 +12467,7 @@ yydefault: case 879: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4439 +//line sql.y:4460 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } @@ -12454,7 +12475,7 @@ yydefault: case 880: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []AlterOption -//line sql.y:4443 +//line sql.y:4464 { yyLOCAL = []AlterOption{yyDollar[1].alterOptionUnion()} } @@ -12462,7 +12483,7 @@ yydefault: case 881: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4450 +//line sql.y:4471 { yyLOCAL = &LockOption{Type: DefaultType} } @@ -12470,7 +12491,7 @@ yydefault: case 882: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4454 +//line sql.y:4475 { yyLOCAL = &LockOption{Type: NoneType} } @@ -12478,7 +12499,7 @@ yydefault: case 883: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4458 +//line sql.y:4479 { yyLOCAL = &LockOption{Type: SharedType} } @@ -12486,7 +12507,7 @@ yydefault: case 884: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4462 +//line sql.y:4483 { yyLOCAL = &LockOption{Type: ExclusiveType} } @@ -12494,7 +12515,7 @@ yydefault: case 885: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4468 +//line sql.y:4489 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } @@ -12502,7 +12523,7 @@ yydefault: case 886: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4472 +//line sql.y:4493 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } @@ -12510,129 +12531,129 @@ yydefault: case 887: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL AlterOption -//line sql.y:4476 +//line sql.y:4497 { yyLOCAL = AlgorithmValue(yyDollar[3].str) } yyVAL.union = yyLOCAL case 888: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4481 +//line sql.y:4502 { yyVAL.str = "" } case 889: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4485 +//line sql.y:4506 { yyVAL.str = string(yyDollar[3].str) } case 890: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4489 +//line sql.y:4510 { yyVAL.str = string(yyDollar[3].str) } case 891: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4493 +//line sql.y:4514 { yyVAL.str = string(yyDollar[3].str) } case 892: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4498 +//line sql.y:4519 { yyVAL.str = "" } case 893: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4502 +//line sql.y:4523 { yyVAL.str = yyDollar[3].str } case 894: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4508 +//line sql.y:4529 { yyVAL.str = string(yyDollar[1].str) } case 895: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4512 +//line sql.y:4533 { yyVAL.str = string(yyDollar[1].str) } case 896: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4517 +//line sql.y:4538 { yyVAL.str = "" } case 897: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4521 +//line sql.y:4542 { yyVAL.str = yyDollar[2].str } case 898: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4526 +//line sql.y:4547 { yyVAL.str = "cascaded" } case 899: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4530 +//line sql.y:4551 { yyVAL.str = string(yyDollar[1].str) } case 900: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4534 +//line sql.y:4555 { yyVAL.str = string(yyDollar[1].str) } case 901: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4539 +//line sql.y:4560 { yyVAL.str = "" } case 902: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4543 +//line sql.y:4564 { yyVAL.str = yyDollar[3].str } case 903: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4549 +//line sql.y:4570 { yyVAL.str = string(yyDollar[1].str) } case 904: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4553 +//line sql.y:4574 { yyVAL.str = string(yyDollar[1].str) } case 905: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4557 +//line sql.y:4578 { yyVAL.str = encodeSQLString(yyDollar[1].str) + "@" + string(yyDollar[2].str) } case 906: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4561 +//line sql.y:4582 { yyVAL.str = string(yyDollar[1].str) } case 907: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Lock -//line sql.y:4566 +//line sql.y:4587 { yyLOCAL = NoLock } @@ -12640,7 +12661,7 @@ yydefault: case 908: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Lock -//line sql.y:4570 +//line sql.y:4591 { yyLOCAL = ForUpdateLock } @@ -12648,7 +12669,7 @@ yydefault: case 909: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL Lock -//line sql.y:4574 +//line sql.y:4595 { yyLOCAL = ShareModeLock } @@ -12656,7 +12677,7 @@ yydefault: case 910: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4579 +//line sql.y:4600 { yyLOCAL = nil } @@ -12664,7 +12685,7 @@ yydefault: case 911: yyDollar = yyS[yypt-9 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4583 +//line sql.y:4604 { yyLOCAL = &SelectInto{Type: IntoOutfileS3, FileName: encodeSQLString(yyDollar[4].str), Charset: yyDollar[5].str, FormatOption: yyDollar[6].str, ExportOption: yyDollar[7].str, Manifest: yyDollar[8].str, Overwrite: yyDollar[9].str} } @@ -12672,7 +12693,7 @@ yydefault: case 912: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4587 +//line sql.y:4608 { yyLOCAL = &SelectInto{Type: IntoDumpfile, FileName: encodeSQLString(yyDollar[3].str), Charset: "", FormatOption: "", ExportOption: "", Manifest: "", Overwrite: ""} } @@ -12680,177 +12701,177 @@ yydefault: case 913: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *SelectInto -//line sql.y:4591 +//line sql.y:4612 { yyLOCAL = &SelectInto{Type: IntoOutfile, FileName: encodeSQLString(yyDollar[3].str), Charset: yyDollar[4].str, FormatOption: "", ExportOption: yyDollar[5].str, Manifest: "", Overwrite: ""} } yyVAL.union = yyLOCAL case 914: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4596 +//line sql.y:4617 { yyVAL.str = "" } case 915: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4600 +//line sql.y:4621 { yyVAL.str = " format csv" + yyDollar[3].str } case 916: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4604 +//line sql.y:4625 { yyVAL.str = " format text" + yyDollar[3].str } case 917: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4609 +//line sql.y:4630 { yyVAL.str = "" } case 918: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4613 +//line sql.y:4634 { yyVAL.str = " header" } case 919: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4618 +//line sql.y:4639 { yyVAL.str = "" } case 920: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4622 +//line sql.y:4643 { yyVAL.str = " manifest on" } case 921: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4626 +//line sql.y:4647 { yyVAL.str = " manifest off" } case 922: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4631 +//line sql.y:4652 { yyVAL.str = "" } case 923: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4635 +//line sql.y:4656 { yyVAL.str = " overwrite on" } case 924: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4639 +//line sql.y:4660 { yyVAL.str = " overwrite off" } case 925: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4645 +//line sql.y:4666 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 926: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4650 +//line sql.y:4671 { yyVAL.str = "" } case 927: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4654 +//line sql.y:4675 { yyVAL.str = " lines" + yyDollar[2].str } case 928: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4660 +//line sql.y:4681 { yyVAL.str = yyDollar[1].str } case 929: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4664 +//line sql.y:4685 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 930: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4670 +//line sql.y:4691 { yyVAL.str = " starting by " + encodeSQLString(yyDollar[3].str) } case 931: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4674 +//line sql.y:4695 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } case 932: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4679 +//line sql.y:4700 { yyVAL.str = "" } case 933: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4683 +//line sql.y:4704 { yyVAL.str = " " + yyDollar[1].str + yyDollar[2].str } case 934: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4689 +//line sql.y:4710 { yyVAL.str = yyDollar[1].str } case 935: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4693 +//line sql.y:4714 { yyVAL.str = yyDollar[1].str + yyDollar[2].str } case 936: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4699 +//line sql.y:4720 { yyVAL.str = " terminated by " + encodeSQLString(yyDollar[3].str) } case 937: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:4703 +//line sql.y:4724 { yyVAL.str = yyDollar[1].str + " enclosed by " + encodeSQLString(yyDollar[4].str) } case 938: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4707 +//line sql.y:4728 { yyVAL.str = " escaped by " + encodeSQLString(yyDollar[3].str) } case 939: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4712 +//line sql.y:4733 { yyVAL.str = "" } case 940: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4716 +//line sql.y:4737 { yyVAL.str = " optionally" } case 941: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *Insert -//line sql.y:4729 +//line sql.y:4750 { yyLOCAL = &Insert{Rows: yyDollar[2].valuesUnion()} } @@ -12858,7 +12879,7 @@ yydefault: case 942: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL *Insert -//line sql.y:4733 +//line sql.y:4754 { yyLOCAL = &Insert{Rows: yyDollar[1].selStmtUnion()} } @@ -12866,7 +12887,7 @@ yydefault: case 943: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *Insert -//line sql.y:4737 +//line sql.y:4758 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[5].valuesUnion()} } @@ -12874,7 +12895,7 @@ yydefault: case 944: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4741 +//line sql.y:4762 { yyLOCAL = &Insert{Rows: yyDollar[4].valuesUnion()} } @@ -12882,7 +12903,7 @@ yydefault: case 945: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *Insert -//line sql.y:4745 +//line sql.y:4766 { yyLOCAL = &Insert{Columns: yyDollar[2].columnsUnion(), Rows: yyDollar[4].selStmtUnion()} } @@ -12890,7 +12911,7 @@ yydefault: case 946: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Columns -//line sql.y:4751 +//line sql.y:4772 { yyLOCAL = Columns{yyDollar[1].colIdent} } @@ -12898,21 +12919,21 @@ yydefault: case 947: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL Columns -//line sql.y:4755 +//line sql.y:4776 { yyLOCAL = Columns{yyDollar[3].colIdent} } yyVAL.union = yyLOCAL case 948: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4759 +//line sql.y:4780 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].colIdent) } case 949: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:4763 +//line sql.y:4784 { yySLICE := (*Columns)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[5].colIdent) @@ -12920,7 +12941,7 @@ yydefault: case 950: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4768 +//line sql.y:4789 { yyLOCAL = nil } @@ -12928,7 +12949,7 @@ yydefault: case 951: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4772 +//line sql.y:4793 { yyLOCAL = yyDollar[5].updateExprsUnion() } @@ -12936,14 +12957,14 @@ yydefault: case 952: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Values -//line sql.y:4778 +//line sql.y:4799 { yyLOCAL = Values{yyDollar[1].valTupleUnion()} } yyVAL.union = yyLOCAL case 953: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4782 +//line sql.y:4803 { yySLICE := (*Values)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].valTupleUnion()) @@ -12951,7 +12972,7 @@ yydefault: case 954: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4788 +//line sql.y:4809 { yyLOCAL = yyDollar[1].valTupleUnion() } @@ -12959,7 +12980,7 @@ yydefault: case 955: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4792 +//line sql.y:4813 { yyLOCAL = ValTuple{} } @@ -12967,7 +12988,7 @@ yydefault: case 956: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL ValTuple -//line sql.y:4798 +//line sql.y:4819 { yyLOCAL = ValTuple(yyDollar[2].exprsUnion()) } @@ -12975,7 +12996,7 @@ yydefault: case 957: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4804 +//line sql.y:4825 { if len(yyDollar[1].valTupleUnion()) == 1 { yyLOCAL = yyDollar[1].valTupleUnion()[0] @@ -12987,14 +13008,14 @@ yydefault: case 958: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL UpdateExprs -//line sql.y:4814 +//line sql.y:4835 { yyLOCAL = UpdateExprs{yyDollar[1].updateExprUnion()} } yyVAL.union = yyLOCAL case 959: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4818 +//line sql.y:4839 { yySLICE := (*UpdateExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].updateExprUnion()) @@ -13002,7 +13023,7 @@ yydefault: case 960: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *UpdateExpr -//line sql.y:4824 +//line sql.y:4845 { yyLOCAL = &UpdateExpr{Name: yyDollar[1].colNameUnion(), Expr: yyDollar[3].exprUnion()} } @@ -13010,14 +13031,14 @@ yydefault: case 961: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL SetExprs -//line sql.y:4830 +//line sql.y:4851 { yyLOCAL = SetExprs{yyDollar[1].setExprUnion()} } yyVAL.union = yyLOCAL case 962: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:4834 +//line sql.y:4855 { yySLICE := (*SetExprs)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].setExprUnion()) @@ -13025,7 +13046,7 @@ yydefault: case 963: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4840 +//line sql.y:4861 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("on")} } @@ -13033,7 +13054,7 @@ yydefault: case 964: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4844 +//line sql.y:4865 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: NewStrLiteral("off")} } @@ -13041,7 +13062,7 @@ yydefault: case 965: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4848 +//line sql.y:4869 { yyLOCAL = &SetExpr{Name: yyDollar[1].colIdent, Scope: ImplicitScope, Expr: yyDollar[3].exprUnion()} } @@ -13049,7 +13070,7 @@ yydefault: case 966: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4852 +//line sql.y:4873 { yyLOCAL = &SetExpr{Name: NewColIdent(string(yyDollar[1].str)), Scope: ImplicitScope, Expr: yyDollar[2].exprUnion()} } @@ -13057,7 +13078,7 @@ yydefault: case 967: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *SetExpr -//line sql.y:4856 +//line sql.y:4877 { yyDollar[2].setExprUnion().Scope = yyDollar[1].scopeUnion() yyLOCAL = yyDollar[2].setExprUnion() @@ -13065,14 +13086,14 @@ yydefault: yyVAL.union = yyLOCAL case 969: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:4864 +//line sql.y:4885 { yyVAL.str = "charset" } case 972: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4874 +//line sql.y:4895 { yyLOCAL = NewStrLiteral(yyDollar[1].colIdent.String()) } @@ -13080,7 +13101,7 @@ yydefault: case 973: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4878 +//line sql.y:4899 { yyLOCAL = NewStrLiteral(yyDollar[1].str) } @@ -13088,7 +13109,7 @@ yydefault: case 974: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Expr -//line sql.y:4882 +//line sql.y:4903 { yyLOCAL = &Default{} } @@ -13096,7 +13117,7 @@ yydefault: case 977: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4891 +//line sql.y:4912 { yyLOCAL = false } @@ -13104,7 +13125,7 @@ yydefault: case 978: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL bool -//line sql.y:4893 +//line sql.y:4914 { yyLOCAL = true } @@ -13112,7 +13133,7 @@ yydefault: case 979: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4896 +//line sql.y:4917 { yyLOCAL = false } @@ -13120,7 +13141,7 @@ yydefault: case 980: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:4898 +//line sql.y:4919 { yyLOCAL = true } @@ -13128,7 +13149,7 @@ yydefault: case 981: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:4901 +//line sql.y:4922 { yyLOCAL = false } @@ -13136,7 +13157,7 @@ yydefault: case 982: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL bool -//line sql.y:4903 +//line sql.y:4924 { yyLOCAL = true } @@ -13144,7 +13165,7 @@ yydefault: case 983: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Ignore -//line sql.y:4906 +//line sql.y:4927 { yyLOCAL = false } @@ -13152,33 +13173,33 @@ yydefault: case 984: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Ignore -//line sql.y:4908 +//line sql.y:4929 { yyLOCAL = true } yyVAL.union = yyLOCAL case 985: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4911 +//line sql.y:4932 { yyVAL.empty = struct{}{} } case 986: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4913 +//line sql.y:4934 { yyVAL.empty = struct{}{} } case 987: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4915 +//line sql.y:4936 { yyVAL.empty = struct{}{} } case 988: yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL Statement -//line sql.y:4919 +//line sql.y:4940 { yyLOCAL = &CallProc{Name: yyDollar[2].tableName, Params: yyDollar[4].exprsUnion()} } @@ -13186,7 +13207,7 @@ yydefault: case 989: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL Exprs -//line sql.y:4924 +//line sql.y:4945 { yyLOCAL = nil } @@ -13194,7 +13215,7 @@ yydefault: case 990: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL Exprs -//line sql.y:4928 +//line sql.y:4949 { yyLOCAL = yyDollar[1].exprsUnion() } @@ -13202,7 +13223,7 @@ yydefault: case 991: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4933 +//line sql.y:4954 { yyLOCAL = nil } @@ -13210,7 +13231,7 @@ yydefault: case 992: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []*IndexOption -//line sql.y:4935 +//line sql.y:4956 { yyLOCAL = []*IndexOption{yyDollar[1].indexOptionUnion()} } @@ -13218,62 +13239,62 @@ yydefault: case 993: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL *IndexOption -//line sql.y:4939 +//line sql.y:4960 { yyLOCAL = &IndexOption{Name: string(yyDollar[1].str), String: string(yyDollar[2].colIdent.String())} } yyVAL.union = yyLOCAL case 994: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4945 +//line sql.y:4966 { yyVAL.colIdent = yyDollar[1].colIdent } case 995: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4949 +//line sql.y:4970 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 997: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4956 +//line sql.y:4977 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].str)) } case 998: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4962 +//line sql.y:4983 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } case 999: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4966 +//line sql.y:4987 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 1000: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:4972 +//line sql.y:4993 { yyVAL.tableIdent = NewTableIdent("") } case 1001: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4976 +//line sql.y:4997 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 1003: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:4983 +//line sql.y:5004 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } case 1423: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5427 +//line sql.y:5448 { if incNesting(yylex) { yylex.Error("max nesting level reached") @@ -13282,31 +13303,31 @@ yydefault: } case 1424: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5436 +//line sql.y:5457 { decNesting(yylex) } case 1425: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5441 +//line sql.y:5462 { skipToEnd(yylex) } case 1426: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5446 +//line sql.y:5467 { skipToEnd(yylex) } case 1427: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5450 +//line sql.y:5471 { skipToEnd(yylex) } case 1428: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5454 +//line sql.y:5475 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 8f3d8450ac1..8d5d2e35d98 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -2290,27 +2290,38 @@ partitions_options_opt: | PARTITION BY linear_opt id_or_var '(' expression ')' partitions_opt subpartition_opt partition_definition_opt { - $$ = &PartitionOption{Linear: $3, HASH: $4, Expr: $6, Partitions: $8, - SubPartition: $9, Definitions: $10} + $$ = &PartitionOption { + Linear: $3, + HASH: $4, + Expr: $6, + Partitions: $8, + SubPartition: $9, + Definitions: $10, + } } | PARTITION BY linear_opt KEY algorithm_opt '(' column_list ')' partitions_opt subpartition_opt partition_definition_opt { - $$ = &PartitionOption{ - Linear: $3, - isKEY: true, - KeyAlgorithm: $5, - KeyColList: $7, - Partitions: $9, - SubPartition: $10, - Definitions: $11, + $$ = &PartitionOption { + Linear: $3, + isKEY: true, + KeyAlgorithm: $5, + KeyColList: $7, + Partitions: $9, + SubPartition: $10, + Definitions: $11, } } | PARTITION BY range_or_list expr_or_col partitions_opt subpartition_opt partition_definition_opt { - $$ = &PartitionOption{RANGE_or_LIST: $3, Expr_or_Col: $4, Partitions: $5, - SubPartition: $6, Definitions: $7} + $$ = &PartitionOption { + RangeOrList: $3, + ExprOrCol: $4, + Partitions: $5, + SubPartition: $6, + Definitions: $7, + } } subpartition_opt: @@ -2319,12 +2330,22 @@ subpartition_opt: } | SUBPARTITION BY linear_opt id_or_var '(' expression ')' subpartitions_opt { - $$ = &SubPartition{Linear: $3, HASH: $4, Expr: $6, SubPartitions: $8} + $$ = &SubPartition { + Linear: $3, + HASH: $4, + Expr: $6, + SubPartitions: $8, + } } | SUBPARTITION BY linear_opt KEY algorithm_opt '(' column_list ')' subpartitions_opt { - $$ = &SubPartition{Linear: $3, isKEY: true, KeyAlgorithm: $5, - KeyColList: $7, SubPartitions: $9} + $$ = &SubPartition { + Linear: $3, + isKEY: true, + KeyAlgorithm: $5, + KeyColList: $7, + SubPartitions: $9, + } } partition_definition_opt: From 12ff8fe867c08f8d9452f841b4dfb6655b0ff97b Mon Sep 17 00:00:00 2001 From: Thirumalai-Shaktivel Date: Fri, 27 Aug 2021 11:00:59 +0530 Subject: [PATCH 04/11] Add AST format functions for partitions Signed-off-by: Thirumalai-Shaktivel --- go/vt/sqlparser/ast_clone.go | 82 +++++++++-------- go/vt/sqlparser/ast_equals.go | 118 ++++++++++++++----------- go/vt/sqlparser/ast_format.go | 88 +++++++++++++++++++ go/vt/sqlparser/ast_format_fast.go | 112 ++++++++++++++++++++++++ go/vt/sqlparser/ast_rewrite.go | 136 +++++++++++++++++++++++++++++ go/vt/sqlparser/ast_visit.go | 71 +++++++++++++++ 6 files changed, 519 insertions(+), 88 deletions(-) diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index da4dd92fe42..e5e12b6fa46 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -127,6 +127,8 @@ func CloneSQLNode(in SQLNode) SQLNode { return CloneRefOfExplainStmt(in) case *ExplainTab: return CloneRefOfExplainTab(in) + case *ExprOrColumns: + return CloneRefOfExprOrColumns(in) case Exprs: return CloneExprs(in) case *Flush: @@ -205,6 +207,8 @@ func CloneSQLNode(in SQLNode) SQLNode { return CloneRefOfParenTableExpr(in) case *PartitionDefinition: return CloneRefOfPartitionDefinition(in) + case *PartitionOption: + return CloneRefOfPartitionOption(in) case *PartitionSpec: return CloneRefOfPartitionSpec(in) case Partitions: @@ -261,6 +265,8 @@ func CloneSQLNode(in SQLNode) SQLNode { return CloneRefOfStarExpr(in) case *Stream: return CloneRefOfStream(in) + case *SubPartition: + return CloneRefOfSubPartition(in) case *Subquery: return CloneRefOfSubquery(in) case *SubstrExpr: @@ -835,6 +841,17 @@ func CloneRefOfExplainTab(n *ExplainTab) *ExplainTab { return &out } +// CloneRefOfExprOrColumns creates a deep clone of the input. +func CloneRefOfExprOrColumns(n *ExprOrColumns) *ExprOrColumns { + if n == nil { + return nil + } + out := *n + out.Expr = CloneExpr(n.Expr) + out.ColumnList = CloneColumns(n.ColumnList) + return &out +} + // CloneExprs creates a deep clone of the input. func CloneExprs(n Exprs) Exprs { res := make(Exprs, 0, len(n)) @@ -1210,6 +1227,21 @@ func CloneRefOfPartitionDefinition(n *PartitionDefinition) *PartitionDefinition return &out } +// CloneRefOfPartitionOption creates a deep clone of the input. +func CloneRefOfPartitionOption(n *PartitionOption) *PartitionOption { + if n == nil { + return nil + } + out := *n + out.HASH = CloneColIdent(n.HASH) + out.KeyColList = CloneColumns(n.KeyColList) + out.ExprOrCol = CloneRefOfExprOrColumns(n.ExprOrCol) + out.Expr = CloneExpr(n.Expr) + out.SubPartition = CloneRefOfSubPartition(n.SubPartition) + out.Definitions = CloneSliceOfRefOfPartitionDefinition(n.Definitions) + return &out +} + // CloneRefOfPartitionSpec creates a deep clone of the input. func CloneRefOfPartitionSpec(n *PartitionSpec) *PartitionSpec { if n == nil { @@ -1502,6 +1534,18 @@ func CloneRefOfStream(n *Stream) *Stream { return &out } +// CloneRefOfSubPartition creates a deep clone of the input. +func CloneRefOfSubPartition(n *SubPartition) *SubPartition { + if n == nil { + return nil + } + out := *n + out.HASH = CloneColIdent(n.HASH) + out.KeyColList = CloneColumns(n.KeyColList) + out.Expr = CloneExpr(n.Expr) + return &out +} + // CloneRefOfSubquery creates a deep clone of the input. func CloneRefOfSubquery(n *Subquery) *Subquery { if n == nil { @@ -2313,21 +2357,6 @@ func CloneSliceOfString(n []string) []string { return res } -// CloneRefOfPartitionOption creates a deep clone of the input. -func CloneRefOfPartitionOption(n *PartitionOption) *PartitionOption { - if n == nil { - return nil - } - out := *n - out.HASH = CloneColIdent(n.HASH) - out.KeyColList = CloneColumns(n.KeyColList) - out.ExprOrCol = CloneRefOfExprOrColumns(n.ExprOrCol) - out.Expr = CloneExpr(n.Expr) - out.SubPartition = CloneRefOfSubPartition(n.SubPartition) - out.Definitions = CloneSliceOfRefOfPartitionDefinition(n.Definitions) - return &out -} - // CloneSliceOfRefOfIndexColumn creates a deep clone of the input. func CloneSliceOfRefOfIndexColumn(n []*IndexColumn) []*IndexColumn { res := make([]*IndexColumn, 0, len(n)) @@ -2503,29 +2532,6 @@ func CloneCollateAndCharset(n CollateAndCharset) CollateAndCharset { return *CloneRefOfCollateAndCharset(&n) } -// CloneRefOfExprOrColumns creates a deep clone of the input. -func CloneRefOfExprOrColumns(n *ExprOrColumns) *ExprOrColumns { - if n == nil { - return nil - } - out := *n - out.Expr = CloneExpr(n.Expr) - out.ColumnList = CloneColumns(n.ColumnList) - return &out -} - -// CloneRefOfSubPartition creates a deep clone of the input. -func CloneRefOfSubPartition(n *SubPartition) *SubPartition { - if n == nil { - return nil - } - out := *n - out.HASH = CloneColIdent(n.HASH) - out.KeyColList = CloneColumns(n.KeyColList) - out.Expr = CloneExpr(n.Expr) - return &out -} - // CloneRefOfIndexColumn creates a deep clone of the input. func CloneRefOfIndexColumn(n *IndexColumn) *IndexColumn { if n == nil { diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index ad5ab8fa3eb..8d1e1053f9e 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -338,6 +338,12 @@ func EqualsSQLNode(inA, inB SQLNode) bool { return false } return EqualsRefOfExplainTab(a, b) + case *ExprOrColumns: + b, ok := inB.(*ExprOrColumns) + if !ok { + return false + } + return EqualsRefOfExprOrColumns(a, b) case Exprs: b, ok := inB.(Exprs) if !ok { @@ -572,6 +578,12 @@ func EqualsSQLNode(inA, inB SQLNode) bool { return false } return EqualsRefOfPartitionDefinition(a, b) + case *PartitionOption: + b, ok := inB.(*PartitionOption) + if !ok { + return false + } + return EqualsRefOfPartitionOption(a, b) case *PartitionSpec: b, ok := inB.(*PartitionSpec) if !ok { @@ -740,6 +752,12 @@ func EqualsSQLNode(inA, inB SQLNode) bool { return false } return EqualsRefOfStream(a, b) + case *SubPartition: + b, ok := inB.(*SubPartition) + if !ok { + return false + } + return EqualsRefOfSubPartition(a, b) case *Subquery: b, ok := inB.(*Subquery) if !ok { @@ -1542,6 +1560,18 @@ func EqualsRefOfExplainTab(a, b *ExplainTab) bool { EqualsTableName(a.Table, b.Table) } +// EqualsRefOfExprOrColumns does deep equals between the two objects. +func EqualsRefOfExprOrColumns(a, b *ExprOrColumns) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return EqualsExpr(a.Expr, b.Expr) && + EqualsColumns(a.ColumnList, b.ColumnList) +} + // EqualsExprs does deep equals between the two objects. func EqualsExprs(a, b Exprs) bool { if len(a) != len(b) { @@ -1996,6 +2026,27 @@ func EqualsRefOfPartitionDefinition(a, b *PartitionDefinition) bool { EqualsExpr(a.Limit, b.Limit) } +// EqualsRefOfPartitionOption does deep equals between the two objects. +func EqualsRefOfPartitionOption(a, b *PartitionOption) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return a.Linear == b.Linear && + a.isKEY == b.isKEY && + a.KeyAlgorithm == b.KeyAlgorithm && + a.RangeOrList == b.RangeOrList && + a.Partitions == b.Partitions && + EqualsColIdent(a.HASH, b.HASH) && + EqualsColumns(a.KeyColList, b.KeyColList) && + EqualsRefOfExprOrColumns(a.ExprOrCol, b.ExprOrCol) && + EqualsExpr(a.Expr, b.Expr) && + EqualsRefOfSubPartition(a.SubPartition, b.SubPartition) && + EqualsSliceOfRefOfPartitionDefinition(a.Definitions, b.Definitions) +} + // EqualsRefOfPartitionSpec does deep equals between the two objects. func EqualsRefOfPartitionSpec(a, b *PartitionSpec) bool { if a == b { @@ -2353,6 +2404,23 @@ func EqualsRefOfStream(a, b *Stream) bool { EqualsTableName(a.Table, b.Table) } +// EqualsRefOfSubPartition does deep equals between the two objects. +func EqualsRefOfSubPartition(a, b *SubPartition) bool { + if a == b { + return true + } + if a == nil || b == nil { + return false + } + return a.Linear == b.Linear && + a.isKEY == b.isKEY && + a.KeyAlgorithm == b.KeyAlgorithm && + a.SubPartitions == b.SubPartitions && + EqualsColIdent(a.HASH, b.HASH) && + EqualsColumns(a.KeyColList, b.KeyColList) && + EqualsExpr(a.Expr, b.Expr) +} + // EqualsRefOfSubquery does deep equals between the two objects. func EqualsRefOfSubquery(a, b *Subquery) bool { if a == b { @@ -3827,27 +3895,6 @@ func EqualsSliceOfString(a, b []string) bool { return true } -// EqualsRefOfPartitionOption does deep equals between the two objects. -func EqualsRefOfPartitionOption(a, b *PartitionOption) bool { - if a == b { - return true - } - if a == nil || b == nil { - return false - } - return a.Linear == b.Linear && - a.isKEY == b.isKEY && - a.KeyAlgorithm == b.KeyAlgorithm && - a.RangeOrList == b.RangeOrList && - a.Partitions == b.Partitions && - EqualsColIdent(a.HASH, b.HASH) && - EqualsColumns(a.KeyColList, b.KeyColList) && - EqualsRefOfExprOrColumns(a.ExprOrCol, b.ExprOrCol) && - EqualsExpr(a.Expr, b.Expr) && - EqualsRefOfSubPartition(a.SubPartition, b.SubPartition) && - EqualsSliceOfRefOfPartitionDefinition(a.Definitions, b.Definitions) -} - // EqualsSliceOfRefOfIndexColumn does deep equals between the two objects. func EqualsSliceOfRefOfIndexColumn(a, b []*IndexColumn) bool { if len(a) != len(b) { @@ -4083,35 +4130,6 @@ func EqualsCollateAndCharset(a, b CollateAndCharset) bool { a.Type == b.Type } -// EqualsRefOfExprOrColumns does deep equals between the two objects. -func EqualsRefOfExprOrColumns(a, b *ExprOrColumns) bool { - if a == b { - return true - } - if a == nil || b == nil { - return false - } - return EqualsExpr(a.Expr, b.Expr) && - EqualsColumns(a.ColumnList, b.ColumnList) -} - -// EqualsRefOfSubPartition does deep equals between the two objects. -func EqualsRefOfSubPartition(a, b *SubPartition) bool { - if a == b { - return true - } - if a == nil || b == nil { - return false - } - return a.Linear == b.Linear && - a.isKEY == b.isKEY && - a.KeyAlgorithm == b.KeyAlgorithm && - a.SubPartitions == b.SubPartitions && - EqualsColIdent(a.HASH, b.HASH) && - EqualsColumns(a.KeyColList, b.KeyColList) && - EqualsExpr(a.Expr, b.Expr) -} - // EqualsRefOfIndexColumn does deep equals between the two objects. func EqualsRefOfIndexColumn(a, b *IndexColumn) bool { if a == b { diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index e2966182ea6..2db0670ae14 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -403,6 +403,91 @@ func (node *PartitionDefinition) Format(buf *TrackedBuffer) { } } +// Format formats the node. +func (node *PartitionOption) Format(buf *TrackedBuffer) { + buf.WriteString("partition by") + if !node.HASH.IsEmpty() { + if node.Linear != "" { + buf.astPrintf(node, " %s", node.Linear) + } + buf.astPrintf(node, " %v", node.HASH) + if node.Expr != nil { + buf.astPrintf(node, " (%v)", node.Expr) + } + } + if node.isKEY { + if node.Linear != "" { + buf.astPrintf(node, " %s", node.Linear) + } + buf.WriteString(" key") + if node.KeyAlgorithm != "" { + buf.astPrintf(node, " algorithm = %s", node.KeyAlgorithm) + } + if node.KeyColList != nil { + buf.astPrintf(node, " %v", node.KeyColList) + } + } + if node.RangeOrList != "" { + buf.astPrintf(node, " %s", node.RangeOrList) + buf.astPrintf(node, " %v", node.ExprOrCol) + } + if node.Partitions != "" { + buf.astPrintf(node, " partitions %s", node.Partitions) + } + if node.SubPartition != nil { + buf.astPrintf(node, " %v", node.SubPartition) + } + if node.Definitions != nil { + buf.WriteString(" (") + for i, pd := range node.Definitions { + if i != 0 { + buf.WriteString(", ") + } + buf.astPrintf(node, "%v", pd) + } + buf.WriteString(")") + } +} + +// Format formats the node. +func (node *SubPartition) Format(buf *TrackedBuffer) { + buf.WriteString("subpartition by") + if !node.HASH.IsEmpty() { + if node.Linear != "" { + buf.astPrintf(node, " %s", node.Linear) + } + buf.astPrintf(node, " %v", node.HASH) + if node.Expr != nil { + buf.astPrintf(node, " (%v)", node.Expr) + } + } + if node.isKEY { + if node.Linear != "" { + buf.astPrintf(node, " %s", node.Linear) + } + buf.WriteString(" key") + if node.KeyAlgorithm != "" { + buf.astPrintf(node, " algorithm = %s", node.KeyAlgorithm) + } + if node.KeyColList != nil { + buf.astPrintf(node, " (%v)", node.KeyColList) + } + } + if node.SubPartitions != "" { + buf.astPrintf(node, "subpartitions %s", node.SubPartitions) + } +} + +// Format formats the node. +func (node *ExprOrColumns) Format(buf *TrackedBuffer) { + if node.Expr != nil { + buf.astPrintf(node, "(%v)", node.Expr) + } + if node.ColumnList != nil { + buf.astPrintf(node, "columns %v", node.ColumnList) + } +} + // Format formats the node. func (ts *TableSpec) Format(buf *TrackedBuffer) { buf.astPrintf(ts, "(\n") @@ -1435,6 +1520,9 @@ func (node *CreateTable) Format(buf *TrackedBuffer) { if node.TableSpec != nil { buf.astPrintf(node, " %v", node.TableSpec) } + if node.PartitionOption != nil { + buf.astPrintf(node, " %v", node.PartitionOption) + } } // Format formats the node. diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index d499a2b75ab..5a2a05fcd3c 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -571,6 +571,114 @@ func (node *PartitionDefinition) formatFast(buf *TrackedBuffer) { } } +// formatFast formats the node. +func (node *PartitionOption) formatFast(buf *TrackedBuffer) { + buf.WriteString("partition by") + if !node.HASH.IsEmpty() { + if node.Linear != "" { + buf.WriteByte(' ') + buf.WriteString(node.Linear) + } + buf.WriteByte(' ') + node.HASH.formatFast(buf) + if node.Expr != nil { + buf.WriteString(" (") + node.Expr.formatFast(buf) + buf.WriteByte(')') + } + } + if node.isKEY { + if node.Linear != "" { + buf.WriteByte(' ') + buf.WriteString(node.Linear) + } + buf.WriteString(" key") + if node.KeyAlgorithm != "" { + buf.WriteString(" algorithm = ") + buf.WriteString(node.KeyAlgorithm) + } + if node.KeyColList != nil { + buf.WriteByte(' ') + node.KeyColList.formatFast(buf) + } + } + if node.RangeOrList != "" { + buf.WriteByte(' ') + buf.WriteString(node.RangeOrList) + buf.WriteByte(' ') + node.ExprOrCol.formatFast(buf) + } + if node.Partitions != "" { + buf.WriteString(" partitions ") + buf.WriteString(node.Partitions) + } + if node.SubPartition != nil { + buf.WriteByte(' ') + node.SubPartition.formatFast(buf) + } + if node.Definitions != nil { + buf.WriteString(" (") + for i, pd := range node.Definitions { + if i != 0 { + buf.WriteString(", ") + } + pd.formatFast(buf) + } + buf.WriteString(")") + } +} + +// formatFast formats the node. +func (node *SubPartition) formatFast(buf *TrackedBuffer) { + buf.WriteString("subpartition by") + if !node.HASH.IsEmpty() { + if node.Linear != "" { + buf.WriteByte(' ') + buf.WriteString(node.Linear) + } + buf.WriteByte(' ') + node.HASH.formatFast(buf) + if node.Expr != nil { + buf.WriteString(" (") + node.Expr.formatFast(buf) + buf.WriteByte(')') + } + } + if node.isKEY { + if node.Linear != "" { + buf.WriteByte(' ') + buf.WriteString(node.Linear) + } + buf.WriteString(" key") + if node.KeyAlgorithm != "" { + buf.WriteString(" algorithm = ") + buf.WriteString(node.KeyAlgorithm) + } + if node.KeyColList != nil { + buf.WriteString(" (") + node.KeyColList.formatFast(buf) + buf.WriteByte(')') + } + } + if node.SubPartitions != "" { + buf.WriteString("subpartitions ") + buf.WriteString(node.SubPartitions) + } +} + +// formatFast formats the node. +func (node *ExprOrColumns) formatFast(buf *TrackedBuffer) { + if node.Expr != nil { + buf.WriteByte('(') + node.Expr.formatFast(buf) + buf.WriteByte(')') + } + if node.ColumnList != nil { + buf.WriteString("columns ") + node.ColumnList.formatFast(buf) + } +} + // formatFast formats the node. func (ts *TableSpec) formatFast(buf *TrackedBuffer) { buf.WriteString("(\n") @@ -1895,6 +2003,10 @@ func (node *CreateTable) formatFast(buf *TrackedBuffer) { buf.WriteByte(' ') node.TableSpec.formatFast(buf) } + if node.PartitionOption != nil { + buf.WriteByte(' ') + node.PartitionOption.formatFast(buf) + } } // formatFast formats the node. diff --git a/go/vt/sqlparser/ast_rewrite.go b/go/vt/sqlparser/ast_rewrite.go index 55321b1b4b5..bdf5d35ed3b 100644 --- a/go/vt/sqlparser/ast_rewrite.go +++ b/go/vt/sqlparser/ast_rewrite.go @@ -126,6 +126,8 @@ func (a *application) rewriteSQLNode(parent SQLNode, node SQLNode, replacer repl return a.rewriteRefOfExplainStmt(parent, node, replacer) case *ExplainTab: return a.rewriteRefOfExplainTab(parent, node, replacer) + case *ExprOrColumns: + return a.rewriteRefOfExprOrColumns(parent, node, replacer) case Exprs: return a.rewriteExprs(parent, node, replacer) case *Flush: @@ -204,6 +206,8 @@ func (a *application) rewriteSQLNode(parent SQLNode, node SQLNode, replacer repl return a.rewriteRefOfParenTableExpr(parent, node, replacer) case *PartitionDefinition: return a.rewriteRefOfPartitionDefinition(parent, node, replacer) + case *PartitionOption: + return a.rewriteRefOfPartitionOption(parent, node, replacer) case *PartitionSpec: return a.rewriteRefOfPartitionSpec(parent, node, replacer) case Partitions: @@ -260,6 +264,8 @@ func (a *application) rewriteSQLNode(parent SQLNode, node SQLNode, replacer repl return a.rewriteRefOfStarExpr(parent, node, replacer) case *Stream: return a.rewriteRefOfStream(parent, node, replacer) + case *SubPartition: + return a.rewriteRefOfSubPartition(parent, node, replacer) case *Subquery: return a.rewriteRefOfSubquery(parent, node, replacer) case *SubstrExpr: @@ -1422,6 +1428,11 @@ func (a *application) rewriteRefOfCreateTable(parent SQLNode, node *CreateTable, }) { return false } + if !a.rewriteRefOfPartitionOption(node, node.PartitionOption, func(newNode, parent SQLNode) { + parent.(*CreateTable).PartitionOption = newNode.(*PartitionOption) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -1835,6 +1846,38 @@ func (a *application) rewriteRefOfExplainTab(parent SQLNode, node *ExplainTab, r } return true } +func (a *application) rewriteRefOfExprOrColumns(parent SQLNode, node *ExprOrColumns, replacer replacerFunc) bool { + if node == nil { + return true + } + if a.pre != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.pre(&a.cur) { + return true + } + } + if !a.rewriteExpr(node, node.Expr, func(newNode, parent SQLNode) { + parent.(*ExprOrColumns).Expr = newNode.(Expr) + }) { + return false + } + if !a.rewriteColumns(node, node.ColumnList, func(newNode, parent SQLNode) { + parent.(*ExprOrColumns).ColumnList = newNode.(Columns) + }) { + return false + } + if a.post != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.post(&a.cur) { + return false + } + } + return true +} func (a *application) rewriteExprs(parent SQLNode, node Exprs, replacer replacerFunc) bool { if node == nil { return true @@ -2924,6 +2967,62 @@ func (a *application) rewriteRefOfPartitionDefinition(parent SQLNode, node *Part } return true } +func (a *application) rewriteRefOfPartitionOption(parent SQLNode, node *PartitionOption, replacer replacerFunc) bool { + if node == nil { + return true + } + if a.pre != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.pre(&a.cur) { + return true + } + } + if !a.rewriteColIdent(node, node.HASH, func(newNode, parent SQLNode) { + parent.(*PartitionOption).HASH = newNode.(ColIdent) + }) { + return false + } + if !a.rewriteColumns(node, node.KeyColList, func(newNode, parent SQLNode) { + parent.(*PartitionOption).KeyColList = newNode.(Columns) + }) { + return false + } + if !a.rewriteRefOfExprOrColumns(node, node.ExprOrCol, func(newNode, parent SQLNode) { + parent.(*PartitionOption).ExprOrCol = newNode.(*ExprOrColumns) + }) { + return false + } + if !a.rewriteExpr(node, node.Expr, func(newNode, parent SQLNode) { + parent.(*PartitionOption).Expr = newNode.(Expr) + }) { + return false + } + if !a.rewriteRefOfSubPartition(node, node.SubPartition, func(newNode, parent SQLNode) { + parent.(*PartitionOption).SubPartition = newNode.(*SubPartition) + }) { + return false + } + for x, el := range node.Definitions { + if !a.rewriteRefOfPartitionDefinition(node, el, func(idx int) replacerFunc { + return func(newNode, parent SQLNode) { + parent.(*PartitionOption).Definitions[idx] = newNode.(*PartitionDefinition) + } + }(x)) { + return false + } + } + if a.post != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.post(&a.cur) { + return false + } + } + return true +} func (a *application) rewriteRefOfPartitionSpec(parent SQLNode, node *PartitionSpec, replacer replacerFunc) bool { if node == nil { return true @@ -3803,6 +3902,43 @@ func (a *application) rewriteRefOfStream(parent SQLNode, node *Stream, replacer } return true } +func (a *application) rewriteRefOfSubPartition(parent SQLNode, node *SubPartition, replacer replacerFunc) bool { + if node == nil { + return true + } + if a.pre != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.pre(&a.cur) { + return true + } + } + if !a.rewriteColIdent(node, node.HASH, func(newNode, parent SQLNode) { + parent.(*SubPartition).HASH = newNode.(ColIdent) + }) { + return false + } + if !a.rewriteColumns(node, node.KeyColList, func(newNode, parent SQLNode) { + parent.(*SubPartition).KeyColList = newNode.(Columns) + }) { + return false + } + if !a.rewriteExpr(node, node.Expr, func(newNode, parent SQLNode) { + parent.(*SubPartition).Expr = newNode.(Expr) + }) { + return false + } + if a.post != nil { + a.cur.replacer = replacer + a.cur.parent = parent + a.cur.node = node + if !a.post(&a.cur) { + return false + } + } + return true +} func (a *application) rewriteRefOfSubquery(parent SQLNode, node *Subquery, replacer replacerFunc) bool { if node == nil { return true diff --git a/go/vt/sqlparser/ast_visit.go b/go/vt/sqlparser/ast_visit.go index b33e230933d..d2f7b79b945 100644 --- a/go/vt/sqlparser/ast_visit.go +++ b/go/vt/sqlparser/ast_visit.go @@ -126,6 +126,8 @@ func VisitSQLNode(in SQLNode, f Visit) error { return VisitRefOfExplainStmt(in, f) case *ExplainTab: return VisitRefOfExplainTab(in, f) + case *ExprOrColumns: + return VisitRefOfExprOrColumns(in, f) case Exprs: return VisitExprs(in, f) case *Flush: @@ -204,6 +206,8 @@ func VisitSQLNode(in SQLNode, f Visit) error { return VisitRefOfParenTableExpr(in, f) case *PartitionDefinition: return VisitRefOfPartitionDefinition(in, f) + case *PartitionOption: + return VisitRefOfPartitionOption(in, f) case *PartitionSpec: return VisitRefOfPartitionSpec(in, f) case Partitions: @@ -260,6 +264,8 @@ func VisitSQLNode(in SQLNode, f Visit) error { return VisitRefOfStarExpr(in, f) case *Stream: return VisitRefOfStream(in, f) + case *SubPartition: + return VisitRefOfSubPartition(in, f) case *Subquery: return VisitRefOfSubquery(in, f) case *SubstrExpr: @@ -824,6 +830,9 @@ func VisitRefOfCreateTable(in *CreateTable, f Visit) error { if err := VisitComments(in.Comments, f); err != nil { return err } + if err := VisitRefOfPartitionOption(in.PartitionOption, f); err != nil { + return err + } return nil } func VisitRefOfCreateView(in *CreateView, f Visit) error { @@ -1012,6 +1021,21 @@ func VisitRefOfExplainTab(in *ExplainTab, f Visit) error { } return nil } +func VisitRefOfExprOrColumns(in *ExprOrColumns, f Visit) error { + if in == nil { + return nil + } + if cont, err := f(in); err != nil || !cont { + return err + } + if err := VisitExpr(in.Expr, f); err != nil { + return err + } + if err := VisitColumns(in.ColumnList, f); err != nil { + return err + } + return nil +} func VisitExprs(in Exprs, f Visit) error { if in == nil { return nil @@ -1496,6 +1520,35 @@ func VisitRefOfPartitionDefinition(in *PartitionDefinition, f Visit) error { } return nil } +func VisitRefOfPartitionOption(in *PartitionOption, f Visit) error { + if in == nil { + return nil + } + if cont, err := f(in); err != nil || !cont { + return err + } + if err := VisitColIdent(in.HASH, f); err != nil { + return err + } + if err := VisitColumns(in.KeyColList, f); err != nil { + return err + } + if err := VisitRefOfExprOrColumns(in.ExprOrCol, f); err != nil { + return err + } + if err := VisitExpr(in.Expr, f); err != nil { + return err + } + if err := VisitRefOfSubPartition(in.SubPartition, f); err != nil { + return err + } + for _, el := range in.Definitions { + if err := VisitRefOfPartitionDefinition(el, f); err != nil { + return err + } + } + return nil +} func VisitRefOfPartitionSpec(in *PartitionSpec, f Visit) error { if in == nil { return nil @@ -1904,6 +1957,24 @@ func VisitRefOfStream(in *Stream, f Visit) error { } return nil } +func VisitRefOfSubPartition(in *SubPartition, f Visit) error { + if in == nil { + return nil + } + if cont, err := f(in); err != nil || !cont { + return err + } + if err := VisitColIdent(in.HASH, f); err != nil { + return err + } + if err := VisitColumns(in.KeyColList, f); err != nil { + return err + } + if err := VisitExpr(in.Expr, f); err != nil { + return err + } + return nil +} func VisitRefOfSubquery(in *Subquery, f Visit) error { if in == nil { return nil From 7e6734af5a6c7abd5a6cfb804c2bacddba463024 Mon Sep 17 00:00:00 2001 From: Thirumalai-Shaktivel Date: Fri, 27 Aug 2021 12:09:39 +0530 Subject: [PATCH 05/11] Use RANGE keyword Signed-off-by: Thirumalai-Shaktivel --- go/vt/sqlparser/keywords.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/go/vt/sqlparser/keywords.go b/go/vt/sqlparser/keywords.go index 248f1e39a99..752b5c1f3ac 100644 --- a/go/vt/sqlparser/keywords.go +++ b/go/vt/sqlparser/keywords.go @@ -375,7 +375,7 @@ var keywords = []keyword{ {"processlist", PROCESSLIST}, {"procedure", PROCEDURE}, {"query", QUERY}, - {"range", UNUSED}, + {"range", RANGE}, {"rank", UNUSED}, {"read", READ}, {"reads", UNUSED}, From 92b26c6aea6f38cd23bc5945a1d3882ab6f7d3fc Mon Sep 17 00:00:00 2001 From: Thirumalai-Shaktivel Date: Fri, 27 Aug 2021 12:10:53 +0530 Subject: [PATCH 06/11] Parse partition_definitions enclosed within brackets Signed-off-by: Thirumalai-Shaktivel --- go/vt/sqlparser/sql.go | 5820 ++++++++++++++++++++-------------------- go/vt/sqlparser/sql.y | 4 +- 2 files changed, 2927 insertions(+), 2897 deletions(-) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 34d516ea1b7..e12c3840274 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1125,1151 +1125,1704 @@ var yyExca = [...]int{ const yyPrivate = 57344 -const yyLast = 30252 +const yyLast = 30555 var yyAct = [...]int{ - 574, 2356, 1849, 605, 2141, 2338, 2186, 2038, 2288, 2275, - 2261, 1982, 1984, 2229, 2104, 2301, 1754, 1529, 2205, 2168, - 1721, 546, 1805, 1952, 941, 1797, 1804, 2138, 1953, 2160, - 2028, 1527, 1023, 532, 1949, 1070, 891, 83, 3, 1455, - 1568, 1853, 2187, 1829, 1588, 1892, 833, 515, 1964, 165, - 1755, 770, 165, 1077, 480, 165, 1830, 1573, 137, 1831, - 496, 1404, 165, 1911, 1741, 1601, 1506, 1104, 1315, 509, - 165, 1681, 1412, 123, 621, 1206, 517, 1587, 1634, 1114, - 798, 1575, 1098, 596, 1107, 920, 1823, 81, 1488, 1080, - 1075, 1495, 496, 1553, 1457, 496, 165, 496, 508, 1062, - 1100, 587, 581, 33, 519, 1381, 959, 1438, 777, 801, - 1097, 1312, 1585, 1298, 1224, 778, 618, 774, 804, 1471, - 799, 800, 79, 1087, 1213, 1554, 1564, 1111, 1113, 1320, - 100, 1180, 140, 1175, 1511, 939, 101, 876, 1036, 8, - 7, 78, 6, 106, 2357, 503, 1039, 1531, 1532, 1533, - 811, 2105, 107, 1531, 1985, 1872, 1871, 1632, 1284, 1899, - 1900, 1370, 960, 786, 1369, 1198, 2170, 1452, 1453, 1415, - 1368, 1367, 835, 1366, 781, 771, 603, 607, 102, 454, - 167, 168, 169, 582, 1365, 849, 850, 838, 853, 854, - 855, 856, 1354, 1358, 859, 860, 861, 862, 863, 864, - 865, 866, 867, 868, 869, 870, 871, 872, 873, 504, - 2324, 84, 108, 506, 1719, 507, 2225, 622, 2117, 615, - 814, 960, 2201, 2200, 2007, 837, 2136, 970, 793, 2137, - 792, 836, 102, 2359, 1580, 2298, 791, 2355, 80, 839, - 840, 841, 1671, 2254, 2346, 2142, 1620, 2297, 86, 87, - 88, 89, 90, 91, 1928, 1578, 97, 2071, 1720, 162, - 1189, 815, 449, 2253, 1979, 1980, 851, 1978, 2214, 985, + 574, 2358, 1849, 2141, 2340, 2186, 2038, 2290, 2277, 2104, + 1982, 2262, 1984, 2303, 2229, 2168, 1754, 2205, 2027, 546, + 1721, 1952, 1529, 1797, 2138, 1804, 83, 3, 1455, 1553, + 2028, 1527, 1953, 1805, 1023, 532, 1755, 1949, 941, 2160, + 517, 1892, 1568, 1077, 1829, 1853, 833, 1070, 515, 165, + 1741, 891, 165, 587, 480, 165, 1588, 1831, 1573, 1830, + 496, 1506, 165, 1224, 1404, 770, 1911, 1964, 1104, 1412, + 165, 1681, 920, 123, 1601, 1315, 1587, 81, 1634, 1114, + 1107, 137, 798, 1575, 621, 1206, 1823, 1080, 1488, 596, + 1495, 1075, 496, 1180, 1062, 496, 165, 496, 1457, 1097, + 508, 1100, 1438, 33, 581, 1381, 1415, 959, 777, 1098, + 1312, 801, 1298, 1585, 774, 804, 519, 1471, 79, 1564, + 778, 1113, 799, 800, 811, 1213, 1087, 1111, 1554, 1320, + 618, 876, 140, 1511, 100, 1175, 101, 8, 78, 7, + 1198, 106, 1036, 107, 6, 2359, 2105, 503, 1531, 1039, + 1985, 1632, 939, 1531, 1532, 1533, 1872, 1871, 1284, 1899, + 2170, 1900, 960, 167, 168, 169, 786, 1370, 781, 1452, + 1453, 1369, 835, 1368, 603, 607, 1367, 771, 102, 1366, + 1365, 1354, 454, 582, 1358, 849, 850, 108, 853, 854, + 855, 856, 2326, 960, 859, 860, 861, 862, 863, 864, + 865, 866, 867, 868, 869, 870, 871, 872, 873, 84, + 838, 504, 506, 1719, 507, 2225, 2117, 2201, 2200, 615, + 622, 2136, 814, 2007, 2137, 2361, 837, 970, 836, 2300, + 1671, 793, 102, 2357, 792, 815, 791, 80, 1580, 2255, + 2348, 839, 840, 841, 2142, 1620, 86, 87, 88, 89, + 90, 91, 2299, 2254, 97, 1928, 2071, 162, 970, 1578, + 449, 846, 1189, 1879, 879, 1522, 1523, 1878, 559, 851, + 565, 566, 563, 564, 1720, 562, 561, 560, 35, 1978, + 580, 72, 39, 40, 1898, 567, 568, 1979, 1980, 1785, + 161, 1454, 1784, 1512, 1669, 1786, 102, 1115, 937, 1116, + 1521, 1848, 785, 910, 787, 578, 577, 1792, 790, 1813, + 885, 886, 915, 916, 103, 483, 125, 966, 898, 2259, + 958, 911, 2062, 899, 904, 1547, 1546, 145, 2040, 875, + 2214, 985, 984, 994, 995, 987, 988, 989, 990, 991, + 992, 993, 986, 2060, 1577, 996, 494, 927, 966, 929, + 1359, 1360, 1361, 1357, 71, 498, 790, 874, 135, 492, + 790, 898, 782, 124, 788, 1274, 899, 483, 1304, 784, + 783, 1645, 1643, 1644, 897, 483, 896, 167, 168, 169, + 1066, 142, 1854, 143, 1602, 926, 928, 1875, 1200, 1201, + 134, 133, 160, 2034, 1635, 936, 2356, 912, 917, 1299, + 905, 2035, 1640, 483, 2041, 919, 852, 1275, 918, 1276, + 933, 1647, 881, 1648, 794, 1649, 788, 1887, 2327, 878, + 1650, 913, 914, 1604, 858, 857, 2042, 1637, 1912, 2197, + 2131, 1489, 822, 831, 820, 830, 1639, 1809, 829, 828, + 827, 826, 825, 824, 819, 767, 129, 1202, 136, 165, + 1199, 165, 130, 131, 165, 1641, 795, 146, 1512, 965, + 962, 963, 964, 969, 971, 968, 151, 967, 1192, 484, + 789, 1914, 931, 924, 961, 832, 1638, 925, 1891, 775, + 2353, 496, 496, 496, 807, 775, 2344, 930, 2346, 773, + 965, 962, 963, 964, 969, 971, 968, 2006, 967, 496, + 496, 775, 806, 1212, 877, 961, 1800, 894, 923, 900, + 901, 902, 903, 1305, 908, 1877, 1313, 1579, 789, 1793, + 1586, 484, 789, 813, 609, 605, 932, 952, 1888, 484, + 823, 938, 821, 1916, 2253, 1920, 1626, 1915, 2260, 1913, + 1309, 946, 842, 2014, 1918, 1874, 813, 1864, 934, 2215, + 1937, 1801, 1936, 1917, 1722, 1724, 1935, 484, 1187, 1186, + 1894, 1185, 1622, 813, 1670, 1893, 1919, 1921, 1211, 848, + 1310, 1183, 138, 1803, 453, 448, 1798, 1303, 165, 2236, + 1894, 2091, 812, 1977, 813, 1893, 2291, 816, 806, 1807, + 1808, 509, 1886, 99, 1799, 1885, 1746, 817, 1286, 1285, + 1287, 1288, 1289, 1008, 1009, 812, 496, 1528, 1700, 165, + 1068, 165, 165, 73, 496, 818, 887, 895, 884, 1697, + 496, 1689, 812, 1612, 1517, 1067, 1091, 132, 806, 809, + 810, 1006, 775, 1021, 943, 944, 803, 807, 955, 126, + 953, 2342, 127, 812, 2343, 954, 2341, 889, 816, 806, + 996, 1024, 618, 907, 1806, 802, 1781, 1723, 817, 813, + 1467, 1352, 893, 1300, 909, 1301, 1809, 986, 1302, 1388, + 996, 976, 1096, 921, 973, 2283, 2249, 1321, 2281, 1063, + 2103, 834, 1962, 1386, 1387, 1385, 1081, 2285, 2286, 1636, + 976, 1807, 1808, 1306, 1621, 1117, 2282, 167, 168, 169, + 1079, 1406, 1038, 1041, 1043, 1045, 1046, 1048, 1050, 1051, + 1042, 1044, 813, 1047, 1049, 956, 1052, 1930, 812, 1439, + 847, 975, 973, 2173, 1060, 985, 984, 994, 995, 987, + 988, 989, 990, 991, 992, 993, 986, 1842, 976, 996, + 1994, 1469, 622, 139, 144, 141, 147, 148, 149, 150, + 152, 153, 154, 155, 1008, 1009, 1806, 880, 1619, 156, + 157, 158, 159, 1407, 1802, 1008, 1009, 94, 1809, 1993, + 165, 812, 1608, 1439, 1176, 1707, 1223, 806, 809, 810, + 1222, 775, 892, 1184, 1682, 803, 807, 989, 990, 991, + 992, 993, 986, 1210, 1069, 996, 922, 167, 168, 169, + 1322, 1818, 496, 2351, 1208, 1468, 1617, 822, 820, 1695, + 2320, 1084, 1217, 2183, 2354, 1614, 1221, 1694, 95, 496, + 496, 2362, 496, 1989, 496, 496, 2107, 496, 496, 496, + 496, 496, 496, 974, 975, 973, 974, 975, 973, 1618, + 1190, 1191, 496, 974, 975, 973, 165, 1257, 974, 975, + 973, 976, 1614, 71, 976, 1218, 974, 975, 973, 1293, + 1291, 976, 165, 1819, 2185, 1384, 976, 1204, 167, 168, + 169, 1197, 1112, 496, 976, 165, 1616, 1674, 1675, 1676, + 1252, 1253, 2349, 1226, 2355, 1227, 1311, 1229, 1231, 591, + 165, 1235, 1237, 1239, 1241, 1243, 2275, 1216, 1260, 1261, + 974, 975, 973, 2116, 1266, 1267, 165, 1254, 1932, 1696, + 2350, 2115, 1182, 165, 1472, 1473, 2106, 2012, 976, 1827, + 1292, 1290, 165, 165, 165, 165, 165, 165, 165, 165, + 165, 496, 496, 496, 1214, 1214, 1215, 1194, 1195, 1207, + 1193, 985, 984, 994, 995, 987, 988, 989, 990, 991, + 992, 993, 986, 1281, 1826, 996, 1325, 1583, 1294, 165, + 1270, 2332, 1939, 1329, 613, 1331, 1332, 1333, 1334, 1323, + 1324, 1255, 1338, 1279, 1317, 987, 988, 989, 990, 991, + 992, 993, 986, 1328, 608, 996, 1353, 2191, 1278, 2333, + 1335, 1336, 1337, 974, 975, 973, 1188, 1405, 1314, 1382, + 974, 975, 973, 974, 975, 973, 1408, 1376, 1378, 1379, + 1940, 976, 1277, 102, 1280, 792, 1268, 791, 976, 1262, + 496, 976, 167, 168, 169, 1377, 1788, 1364, 167, 168, + 169, 1259, 1828, 2037, 1258, 1233, 1327, 977, 2336, 985, 984, 994, 995, 987, 988, 989, 990, 991, 992, 993, - 986, 1898, 580, 996, 1669, 1785, 970, 846, 1784, 1454, - 161, 1786, 1522, 1523, 1521, 559, 102, 565, 566, 563, - 564, 1848, 562, 561, 560, 1512, 1879, 1115, 937, 1116, - 1878, 910, 567, 568, 103, 879, 125, 966, 35, 578, - 958, 72, 39, 40, 898, 577, 875, 145, 790, 899, - 885, 886, 915, 916, 1792, 911, 898, 897, 904, 896, - 1577, 899, 1813, 1547, 1546, 2040, 2258, 483, 2062, 35, - 36, 37, 72, 39, 40, 2060, 494, 483, 135, 1359, - 1360, 1361, 785, 124, 787, 1357, 498, 492, 1066, 76, - 1854, 483, 1304, 41, 67, 68, 966, 65, 69, 1602, - 1875, 142, 1274, 143, 788, 2034, 66, 2354, 1200, 1201, - 134, 133, 160, 2035, 71, 1635, 852, 1645, 1643, 1644, - 1299, 933, 927, 1640, 929, 936, 919, 790, 874, 1887, - 794, 912, 913, 914, 905, 54, 881, 1650, 917, 858, - 790, 2041, 782, 857, 1275, 71, 1276, 2042, 918, 784, - 783, 1647, 2197, 1648, 1637, 1649, 2325, 1639, 1809, 822, - 926, 928, 2131, 1604, 1489, 831, 129, 1202, 136, 165, - 1199, 165, 130, 131, 165, 820, 1641, 146, 830, 965, - 962, 963, 964, 969, 971, 968, 151, 967, 829, 828, - 878, 1192, 931, 827, 961, 826, 788, 1638, 825, 824, - 819, 496, 496, 496, 167, 168, 169, 2215, 832, 767, - 789, 795, 894, 2351, 900, 901, 902, 903, 2006, 496, - 496, 484, 2344, 44, 47, 50, 49, 52, 1512, 64, - 483, 484, 70, 1579, 1212, 977, 938, 1305, 965, 962, - 963, 964, 969, 971, 968, 484, 967, 1891, 924, 775, - 813, 908, 925, 961, 53, 75, 74, 823, 952, 62, - 63, 51, 930, 932, 2252, 775, 1793, 1912, 775, 806, - 807, 509, 773, 821, 1313, 877, 1722, 1724, 1877, 1586, - 1034, 934, 609, 923, 1888, 2259, 1626, 1309, 946, 789, - 1937, 842, 138, 2342, 2014, 1936, 1670, 1800, 165, 1211, - 55, 56, 789, 57, 58, 59, 60, 2289, 1874, 812, - 1914, 1935, 1073, 1076, 816, 806, 813, 1864, 1286, 1285, - 1287, 1288, 1289, 1187, 817, 1186, 496, 1185, 1310, 165, - 1894, 165, 165, 887, 496, 1893, 1183, 943, 944, 1006, - 496, 1068, 1801, 895, 884, 453, 448, 132, 1886, 1894, - 2236, 1885, 1622, 2091, 1893, 1067, 99, 1977, 618, 126, - 955, 953, 127, 954, 1803, 1008, 1009, 1798, 848, 1746, - 813, 1024, 1916, 73, 1920, 812, 1915, 1689, 1913, 1723, - 1807, 1808, 813, 1918, 484, 1799, 1612, 1700, 1517, 1091, - 907, 1697, 1917, 1021, 889, 1528, 2281, 1096, 1063, 2279, - 1081, 909, 996, 1781, 73, 1919, 1921, 1467, 2283, 2284, - 1303, 986, 1807, 1808, 996, 893, 1352, 2280, 1038, 1041, - 1043, 1045, 1046, 1048, 1050, 1051, 813, 1042, 1044, 812, - 1047, 1049, 2248, 1052, 973, 806, 809, 810, 976, 775, - 2103, 812, 1060, 803, 807, 1806, 816, 806, 2340, 834, - 976, 2341, 1962, 2339, 1636, 1306, 817, 1809, 813, 622, - 921, 1930, 802, 139, 144, 141, 147, 148, 149, 150, - 152, 153, 154, 155, 818, 1117, 956, 1806, 94, 156, - 157, 158, 159, 1079, 1621, 812, 1321, 1439, 1842, 1809, - 165, 806, 809, 810, 1176, 775, 1300, 2173, 1301, 803, - 807, 1302, 1994, 1184, 985, 984, 994, 995, 987, 988, - 989, 990, 991, 992, 993, 986, 1069, 812, 996, 847, - 880, 1439, 496, 1707, 1208, 1993, 167, 168, 169, 95, - 1406, 1608, 1217, 1008, 1009, 892, 1221, 1008, 1009, 496, - 496, 1223, 496, 1388, 496, 496, 1222, 496, 496, 496, - 496, 496, 496, 1210, 1619, 1802, 1617, 1386, 1387, 1385, - 1190, 1191, 496, 1682, 822, 1614, 165, 1257, 167, 168, - 169, 820, 1818, 1204, 987, 988, 989, 990, 991, 992, - 993, 986, 165, 922, 996, 2318, 167, 168, 169, 1618, - 1989, 1197, 1407, 496, 1084, 165, 994, 995, 987, 988, - 989, 990, 991, 992, 993, 986, 1311, 1216, 996, 1322, - 165, 1218, 2360, 1254, 2273, 1112, 1614, 1319, 1260, 1261, - 1472, 1473, 975, 973, 1266, 1267, 165, 989, 990, 991, - 992, 993, 986, 165, 1819, 996, 1252, 1253, 1182, 976, - 1616, 2185, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 496, 496, 496, 1226, 1215, 1227, 1207, 1229, 1231, - 1195, 1325, 1235, 1237, 1239, 1241, 1243, 2347, 1329, 1193, - 1331, 1332, 1333, 1334, 608, 1293, 1270, 1338, 2330, 165, - 1214, 1214, 1194, 1469, 1317, 167, 168, 169, 1255, 2352, - 2334, 1353, 1291, 71, 1939, 2348, 1371, 1372, 1373, 1374, - 2116, 1281, 1323, 1324, 1695, 1384, 2331, 613, 2115, 974, - 975, 973, 1694, 1790, 2106, 2012, 1328, 1405, 1188, 1314, - 1827, 1382, 1826, 1335, 1336, 1337, 1408, 976, 167, 168, - 169, 792, 1788, 102, 512, 1583, 1292, 791, 1294, 2333, - 496, 1279, 1940, 974, 975, 973, 1364, 1468, 1674, 1675, - 1676, 1425, 1426, 1290, 2332, 1696, 1327, 1278, 2319, 2353, - 2349, 976, 1280, 2183, 610, 611, 1416, 1277, 167, 168, - 169, 2107, 1596, 2309, 496, 496, 1409, 1410, 974, 975, - 973, 1268, 974, 975, 973, 165, 1348, 1349, 1350, 509, - 974, 975, 973, 974, 975, 973, 976, 1262, 1422, 496, - 976, 974, 975, 973, 1383, 1259, 165, 1258, 976, 496, - 1417, 976, 1233, 165, 2074, 165, 1418, 2307, 1460, 976, - 974, 975, 973, 165, 165, 2157, 1427, 1430, 1932, 2113, - 496, 1024, 1440, 496, 2079, 1992, 1416, 1941, 976, 1836, - 1824, 1526, 167, 168, 169, 496, 974, 975, 973, 1446, - 1447, 167, 168, 169, 618, 1594, 1665, 618, 1630, 1629, - 1507, 1461, 1828, 1318, 976, 1419, 1282, 985, 984, 994, - 995, 987, 988, 989, 990, 991, 992, 993, 986, 1269, - 1486, 996, 1265, 1264, 1263, 1482, 1418, 935, 2037, 1462, - 591, 1510, 974, 975, 973, 2195, 1537, 2021, 2358, 1474, - 496, 1572, 1536, 2021, 2295, 80, 1589, 1590, 1591, 2194, - 976, 1593, 1595, 2021, 2246, 1423, 1424, 2021, 2241, 1429, - 1432, 1433, 2021, 2239, 496, 1540, 2021, 2237, 2219, 591, - 496, 1217, 1484, 2140, 1217, 1570, 1217, 2021, 2189, 2134, - 591, 2021, 2132, 1576, 1613, 1445, 1614, 591, 1448, 1449, - 2089, 591, 1555, 1556, 1557, 622, 1603, 1518, 622, 1519, - 1515, 1376, 1378, 1379, 82, 1539, 1538, 2004, 2003, 2000, - 2001, 2000, 1999, 1513, 496, 1600, 1405, 1480, 591, 1377, - 1855, 1405, 1405, 1548, 591, 1549, 1550, 1551, 1552, 535, - 534, 537, 538, 539, 540, 1512, 1873, 1839, 536, 1541, - 541, 1560, 1561, 1562, 1563, 1742, 1607, 2337, 591, 1610, - 35, 1611, 1742, 1571, 1961, 1581, 1584, 165, 1566, 1567, - 1582, 1592, 1179, 1857, 165, 1623, 1851, 1852, 1513, 165, - 165, 1480, 814, 165, 1749, 165, 1514, 1625, 1606, 35, - 1624, 165, 1627, 1628, 1516, 1571, 1605, 1615, 165, 1492, - 591, 2086, 575, 972, 591, 1179, 1178, 1609, 1491, 1750, - 985, 984, 994, 995, 987, 988, 989, 990, 991, 992, - 993, 986, 2247, 815, 996, 1492, 165, 496, 1124, 1123, - 1660, 1661, 1961, 1214, 1633, 1663, 71, 1950, 2175, 35, - 2134, 1514, 1775, 972, 1664, 2021, 1961, 2312, 2191, 1512, - 1512, 166, 1481, 1614, 166, 2002, 1492, 166, 1520, 1902, - 1712, 1492, 497, 1711, 166, 71, 2118, 1480, 1614, 584, - 1597, 1470, 166, 1450, 1248, 1362, 1308, 1382, 1109, 985, + 986, 2335, 2334, 996, 496, 496, 1790, 1409, 1410, 2321, + 1416, 2311, 974, 975, 973, 165, 2309, 2157, 1422, 2113, + 1427, 1430, 2079, 509, 610, 611, 1440, 1992, 1941, 496, + 976, 1836, 1034, 1348, 1349, 1350, 165, 1824, 1665, 496, + 167, 168, 169, 165, 1596, 165, 1383, 1417, 1630, 1629, + 1460, 1461, 1318, 165, 165, 1282, 1418, 167, 168, 169, + 496, 1024, 1269, 496, 1073, 1076, 167, 168, 169, 1265, + 1594, 1462, 1264, 1263, 935, 496, 1446, 1447, 591, 1507, + 1416, 1474, 1423, 1424, 2021, 2360, 1429, 1432, 1433, 2195, + 1961, 1419, 2021, 2297, 2134, 2273, 2021, 2247, 618, 2021, + 2242, 618, 994, 995, 987, 988, 989, 990, 991, 992, + 993, 986, 1445, 80, 996, 1448, 1449, 1486, 1555, 1556, + 1557, 1482, 1510, 2021, 2239, 2194, 1418, 2021, 2237, 2140, + 496, 2219, 591, 2021, 2189, 1742, 1589, 1590, 1591, 1855, + 1537, 1593, 1595, 984, 994, 995, 987, 988, 989, 990, + 991, 992, 993, 986, 496, 1536, 996, 1540, 2134, 591, + 496, 1217, 2021, 2132, 1217, 1484, 1217, 1570, 2074, 1614, + 591, 2089, 591, 1839, 1613, 1548, 1541, 1549, 1550, 1551, + 1552, 2086, 1519, 2004, 2003, 1576, 1603, 1518, 622, 1515, + 1513, 622, 591, 1560, 1561, 1562, 1563, 1539, 1538, 2000, + 2001, 2000, 1999, 1481, 496, 1492, 1405, 1480, 591, 1512, + 1873, 1405, 1405, 1179, 1857, 1851, 1852, 1492, 591, 1600, + 2248, 985, 984, 994, 995, 987, 988, 989, 990, 991, + 992, 993, 986, 972, 591, 996, 2073, 1179, 1178, 972, + 1571, 1566, 1567, 1124, 1123, 1584, 1607, 165, 1582, 1610, + 1581, 1611, 1592, 1514, 165, 82, 35, 1742, 2021, 165, + 165, 1516, 2002, 165, 814, 165, 2068, 35, 1606, 1623, + 1625, 165, 1571, 1605, 1480, 1627, 1628, 815, 165, 1624, + 1749, 1492, 575, 1513, 1615, 1491, 1520, 1214, 1609, 985, 984, 994, 995, 987, 988, 989, 990, 991, 992, 993, - 986, 797, 1653, 996, 497, 796, 71, 497, 166, 497, - 985, 984, 994, 995, 987, 988, 989, 990, 991, 992, - 993, 986, 2207, 1708, 996, 71, 2119, 2120, 2121, 1983, - 2139, 165, 1833, 1480, 1249, 1250, 1251, 1832, 2110, 165, - 1497, 1500, 1501, 1502, 1498, 2102, 1499, 1503, 2097, 1668, - 1965, 1966, 1732, 1733, 1076, 71, 1181, 1569, 879, 2036, - 1996, 1987, 165, 1981, 1858, 1565, 1559, 1558, 1296, 1209, - 1383, 1677, 1205, 165, 165, 165, 165, 165, 1728, 1177, - 96, 1965, 1966, 2039, 1833, 165, 2208, 1580, 2315, 165, - 1735, 2122, 165, 165, 2276, 1245, 165, 165, 165, 2019, - 2018, 2017, 1690, 582, 1691, 1968, 1751, 1950, 1843, 1787, - 1789, 1654, 1355, 1971, 1970, 1010, 1011, 1012, 1013, 1014, - 1015, 1016, 1017, 1018, 1019, 1706, 1773, 1763, 1744, 1766, - 1718, 1063, 1747, 1726, 1767, 1817, 1762, 2327, 2123, 2124, - 1764, 1734, 1246, 1247, 2296, 1765, 1745, 1942, 1756, 1768, - 1743, 1501, 1502, 1731, 1078, 2090, 1758, 1759, 1776, 1761, - 2024, 496, 1778, 1686, 1687, 1816, 165, 1820, 1821, 1822, - 1740, 1739, 1317, 165, 1795, 1769, 2329, 2300, 1774, 496, - 1782, 1779, 2302, 1757, 1704, 496, 1760, 2230, 2232, 1217, - 1217, 161, 2263, 1729, 1307, 496, 2233, 2266, 1796, 1576, - 2262, 1730, 2227, 576, 1835, 1811, 1544, 1870, 1837, 844, - 843, 1435, 601, 597, 2049, 103, 1832, 1861, 165, 165, - 165, 165, 165, 1814, 1815, 1436, 1825, 598, 145, 1897, - 945, 1866, 1865, 103, 165, 165, 1834, 1869, 1497, 1500, - 1501, 1502, 1498, 1840, 1499, 1503, 1868, 1844, 1845, 1846, - 2084, 1197, 1082, 1083, 600, 1071, 599, 1465, 601, 597, - 2015, 1417, 1657, 2243, 1859, 1860, 1072, 1418, 2202, 1867, - 496, 1472, 1473, 598, 1810, 1505, 1405, 585, 586, 1738, - 1646, 1673, 142, 588, 143, 2308, 2306, 1737, 2305, 2267, - 2265, 1931, 2188, 160, 1908, 2083, 2020, 1598, 594, 595, - 600, 1889, 599, 1122, 589, 82, 496, 1910, 2082, 1945, - 544, 1742, 2317, 2316, 80, 1701, 1698, 165, 1092, 1441, - 1085, 2317, 2234, 1991, 1909, 1895, 1946, 496, 1896, 1466, - 1901, 584, 85, 496, 496, 77, 1, 1922, 1929, 2278, - 1923, 1907, 466, 1451, 1061, 479, 1951, 2274, 1283, 1273, - 2143, 1908, 1954, 2204, 1574, 805, 165, 1683, 146, 128, - 1534, 166, 1535, 166, 2291, 93, 166, 151, 768, 92, - 495, 808, 906, 1599, 2135, 1812, 1986, 985, 984, 994, - 995, 987, 988, 989, 990, 991, 992, 993, 986, 1969, - 165, 996, 1545, 497, 497, 497, 1130, 1128, 1129, 1960, - 1127, 1132, 620, 590, 1131, 772, 1756, 779, 1126, 1356, - 493, 497, 497, 1504, 163, 1118, 1086, 845, 2013, 1973, - 1938, 1975, 1974, 1976, 165, 456, 1997, 1998, 2005, 1948, - 1351, 1631, 496, 1988, 462, 1004, 1736, 2068, 1783, 496, - 619, 2026, 612, 2073, 1956, 165, 2260, 2226, 1959, 2228, - 2169, 2231, 2224, 2328, 2299, 165, 2242, 1542, 1464, 2010, - 2011, 1074, 2081, 1944, 1705, 1033, 1437, 1101, 2009, 165, - 2008, 518, 165, 138, 1459, 1375, 533, 530, 531, 1475, - 1748, 2050, 1576, 2022, 978, 516, 2027, 510, 1093, 2031, - 166, 1496, 1494, 1493, 2030, 2025, 985, 984, 994, 995, - 987, 988, 989, 990, 991, 992, 993, 986, 1655, 1105, - 996, 2023, 2047, 2048, 2045, 2044, 2072, 1967, 497, 1963, - 1099, 166, 1479, 166, 166, 1543, 497, 1876, 2033, 957, - 593, 505, 497, 780, 1434, 2213, 1672, 2058, 2070, 509, - 592, 1791, 766, 61, 38, 500, 2095, 2323, 948, 2096, - 602, 32, 2098, 985, 984, 994, 995, 987, 988, 989, - 990, 991, 992, 993, 986, 2101, 2085, 996, 496, 31, - 2108, 30, 29, 1380, 28, 23, 1389, 1390, 1391, 1392, - 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, - 1403, 2053, 2094, 22, 2093, 165, 21, 20, 165, 165, - 165, 496, 496, 2129, 19, 2109, 25, 2099, 18, 17, - 16, 98, 48, 45, 2080, 43, 105, 104, 1756, 2100, - 2144, 496, 496, 496, 2055, 2056, 46, 2057, 42, 882, - 2059, 27, 2061, 26, 15, 1442, 14, 2150, 13, 12, - 11, 10, 9, 5, 139, 144, 141, 147, 148, 149, - 150, 152, 153, 154, 155, 4, 496, 496, 496, 165, - 156, 157, 158, 159, 951, 24, 2171, 509, 1022, 2148, - 496, 2, 496, 2112, 1530, 2114, 0, 0, 496, 0, - 2181, 0, 166, 496, 0, 2184, 2164, 2165, 1954, 0, - 0, 496, 1954, 2190, 2178, 2174, 2172, 0, 2166, 0, - 0, 0, 0, 0, 0, 0, 2176, 0, 0, 0, + 986, 1712, 1711, 996, 35, 1750, 165, 496, 1950, 535, + 534, 537, 538, 539, 540, 1633, 2175, 1961, 536, 584, + 541, 1480, 1480, 1614, 1597, 1660, 1661, 1961, 1470, 2339, + 1663, 166, 71, 1775, 166, 1450, 1902, 166, 1492, 1664, + 1614, 1512, 497, 71, 166, 1362, 1514, 2118, 1308, 1109, + 797, 796, 166, 1248, 1512, 1382, 985, 984, 994, 995, + 987, 988, 989, 990, 991, 992, 993, 986, 2187, 1319, + 996, 1653, 2314, 71, 497, 2207, 2139, 497, 166, 497, + 71, 2110, 985, 984, 994, 995, 987, 988, 989, 990, + 991, 992, 993, 986, 2102, 71, 996, 2119, 2120, 2121, + 1983, 165, 2097, 1249, 1250, 1251, 2122, 1181, 1569, 165, + 2036, 1497, 1500, 1501, 1502, 1498, 1996, 1499, 1503, 1987, + 1668, 1965, 1966, 1981, 1858, 1565, 1691, 1559, 1558, 1832, + 1296, 1209, 165, 1205, 1177, 96, 1245, 1833, 879, 1965, + 1966, 1677, 2039, 165, 165, 165, 165, 165, 1371, 1372, + 1373, 1374, 1383, 2123, 2124, 165, 2208, 1580, 2317, 165, + 1728, 2278, 165, 165, 2019, 1751, 165, 165, 165, 2018, + 1686, 1687, 1735, 582, 1690, 2017, 1833, 1968, 1950, 1787, + 1789, 1971, 1756, 1246, 1247, 1773, 1843, 1654, 1747, 1355, + 1706, 1704, 1766, 1744, 1764, 1718, 1970, 1767, 1768, 1765, + 1501, 1502, 1063, 1425, 1426, 1817, 2067, 1726, 1763, 1762, + 2329, 2298, 1734, 1497, 1500, 1501, 1502, 1498, 1743, 1499, + 1503, 1942, 1745, 1776, 1731, 1078, 2090, 1778, 2024, 1814, + 1815, 496, 1740, 1739, 2331, 1816, 165, 1820, 1821, 1822, + 2302, 509, 1757, 165, 1769, 1760, 2304, 1779, 1774, 496, + 1782, 2267, 1317, 1758, 1759, 496, 1761, 2230, 2232, 1217, + 1217, 161, 1307, 2264, 1729, 496, 2233, 1795, 576, 2227, + 1796, 2263, 1730, 1811, 1835, 1544, 1837, 1870, 844, 843, + 1435, 1576, 2049, 1832, 1071, 103, 1897, 945, 165, 165, + 165, 165, 165, 1526, 1436, 1072, 1825, 1866, 145, 1865, + 103, 1861, 2084, 1465, 165, 165, 2015, 1869, 1834, 1472, + 1473, 1657, 2244, 1840, 2202, 1810, 1844, 1845, 1846, 1505, + 1868, 1197, 985, 984, 994, 995, 987, 988, 989, 990, + 991, 992, 993, 986, 585, 586, 996, 1646, 1417, 1794, + 496, 1673, 588, 2310, 1859, 1860, 1405, 1418, 1867, 1738, + 601, 597, 142, 1572, 143, 2308, 2307, 1737, 2268, 2266, + 2188, 2083, 2020, 160, 1598, 598, 1122, 589, 82, 2082, + 1945, 1742, 1889, 2319, 2318, 80, 496, 1701, 1908, 1698, + 1092, 1085, 1895, 2319, 1909, 1896, 2234, 165, 1991, 1910, + 1082, 1083, 600, 1466, 599, 584, 85, 496, 1929, 77, + 1901, 1, 2280, 496, 496, 466, 601, 597, 1907, 1451, + 1922, 1061, 479, 1923, 2276, 1283, 1951, 1273, 2143, 2204, + 1954, 598, 1574, 805, 128, 1534, 165, 1535, 146, 2293, + 93, 166, 768, 166, 92, 1908, 166, 151, 808, 1938, + 1756, 906, 1599, 2135, 1812, 1545, 594, 595, 600, 1130, + 599, 1948, 1128, 2066, 1129, 1960, 1127, 1132, 1131, 1126, + 165, 1356, 493, 497, 497, 497, 1504, 1959, 163, 1118, + 1086, 845, 456, 2005, 1351, 1973, 1631, 1975, 1969, 1976, + 462, 497, 497, 1004, 1736, 1783, 619, 1974, 2013, 612, + 1956, 2261, 2226, 2228, 165, 2169, 1997, 1998, 2231, 2224, + 2330, 2301, 496, 2243, 1542, 2065, 1464, 1074, 2081, 496, + 1944, 2026, 1705, 1033, 1437, 165, 1101, 518, 1459, 1375, + 533, 530, 544, 531, 1475, 165, 1988, 1748, 978, 2010, + 2011, 516, 510, 1093, 1496, 1494, 1493, 1655, 2008, 165, + 1105, 2009, 165, 138, 1967, 2023, 1963, 1099, 1479, 1543, + 1876, 2050, 2033, 957, 593, 505, 780, 1434, 2213, 1672, + 166, 2070, 592, 2031, 1576, 2030, 2025, 2022, 1791, 985, + 984, 994, 995, 987, 988, 989, 990, 991, 992, 993, + 986, 2044, 495, 996, 766, 2045, 61, 38, 497, 500, + 2325, 166, 948, 166, 166, 602, 497, 2047, 2048, 32, + 31, 30, 497, 29, 28, 23, 22, 21, 20, 2058, + 19, 25, 18, 2053, 620, 1708, 17, 772, 16, 779, + 2080, 985, 984, 994, 995, 987, 988, 989, 990, 991, + 992, 993, 986, 98, 48, 996, 45, 43, 496, 2085, + 2108, 105, 104, 46, 1732, 1733, 1076, 42, 2094, 882, + 27, 26, 1756, 15, 2093, 14, 2055, 2056, 13, 2057, + 12, 11, 2059, 10, 2061, 165, 9, 2099, 165, 165, + 165, 496, 496, 2129, 1683, 2100, 5, 2109, 4, 2112, + 951, 2114, 24, 1022, 2, 1530, 0, 0, 0, 0, + 2144, 496, 496, 496, 985, 984, 994, 995, 987, 988, + 989, 990, 991, 992, 993, 986, 0, 2150, 996, 0, + 0, 0, 0, 0, 139, 144, 141, 147, 148, 149, + 150, 152, 153, 154, 155, 0, 496, 496, 496, 165, + 156, 157, 158, 159, 0, 0, 2149, 0, 0, 0, + 496, 0, 496, 0, 0, 0, 0, 0, 496, 0, + 2181, 2148, 166, 496, 0, 2184, 1954, 2166, 0, 2167, + 1954, 496, 2178, 2190, 0, 2176, 2164, 2165, 2172, 2174, + 0, 0, 0, 0, 2156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, - 496, 0, 2203, 496, 2192, 0, 2193, 0, 0, 0, - 2149, 497, 497, 2196, 497, 2198, 497, 497, 0, 497, - 497, 497, 497, 497, 497, 2199, 0, 2206, 0, 0, - 0, 0, 2156, 2167, 497, 0, 0, 0, 166, 0, - 0, 0, 0, 0, 0, 0, 0, 2223, 0, 0, - 0, 0, 0, 0, 166, 2180, 2238, 1954, 0, 2235, - 0, 2182, 0, 0, 0, 497, 2240, 166, 496, 165, - 2249, 620, 620, 620, 0, 0, 0, 0, 0, 0, - 496, 0, 166, 0, 0, 0, 0, 0, 0, 947, - 949, 0, 0, 0, 0, 0, 0, 496, 166, 0, - 2245, 2272, 2264, 0, 2257, 166, 0, 0, 496, 496, - 0, 2268, 2271, 2270, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 497, 497, 497, 2290, 0, 2277, 2282, - 0, 2304, 2206, 2292, 0, 2303, 0, 2310, 0, 0, - 0, 2285, 0, 0, 2314, 2313, 2311, 0, 0, 0, - 0, 166, 0, 0, 2320, 0, 0, 0, 167, 168, - 169, 0, 0, 2326, 0, 0, 0, 0, 0, 0, - 0, 1756, 0, 0, 0, 0, 2336, 0, 2335, 0, - 0, 0, 0, 2343, 483, 0, 0, 0, 0, 0, - 0, 2345, 0, 0, 0, 0, 1089, 0, 496, 0, - 2350, 0, 0, 0, 620, 0, 0, 0, 0, 0, - 1119, 0, 497, 0, 0, 0, 0, 0, 0, 0, - 2361, 0, 0, 0, 471, 0, 0, 0, 0, 0, - 0, 0, 0, 470, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 468, 0, 497, 497, 0, 0, + 496, 0, 2203, 496, 2192, 0, 2193, 2180, 0, 0, + 2196, 497, 497, 2182, 497, 0, 497, 497, 0, 497, + 497, 497, 497, 497, 497, 2199, 2198, 0, 0, 0, + 0, 0, 0, 0, 497, 0, 0, 0, 166, 0, + 0, 2206, 0, 0, 0, 0, 0, 2223, 0, 0, + 0, 0, 0, 0, 166, 1954, 2238, 2235, 0, 0, + 0, 0, 0, 0, 0, 497, 2240, 166, 496, 165, + 2250, 2241, 0, 0, 0, 0, 0, 0, 0, 0, + 496, 0, 166, 0, 0, 0, 0, 0, 0, 2246, + 0, 0, 0, 1931, 0, 0, 0, 496, 166, 0, + 2258, 0, 2274, 2265, 0, 166, 0, 0, 2271, 496, + 496, 2269, 2272, 0, 166, 166, 166, 166, 166, 166, + 166, 166, 166, 497, 497, 497, 2292, 2279, 1946, 2284, + 0, 2287, 0, 2306, 2305, 1756, 0, 2312, 0, 0, + 0, 0, 2313, 0, 0, 2316, 2315, 2206, 2294, 0, + 0, 166, 0, 0, 0, 2322, 0, 0, 0, 0, + 0, 0, 0, 0, 2328, 0, 985, 984, 994, 995, + 987, 988, 989, 990, 991, 992, 993, 986, 1986, 2337, + 996, 0, 0, 0, 2345, 0, 0, 0, 0, 0, + 0, 0, 2347, 0, 0, 0, 0, 0, 0, 161, + 496, 0, 2352, 0, 1441, 0, 0, 167, 168, 169, + 0, 0, 497, 620, 620, 620, 0, 0, 0, 0, + 0, 0, 2363, 103, 0, 0, 0, 0, 0, 0, + 0, 947, 949, 483, 0, 0, 145, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 497, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 1678, 1679, 1680, 0, 0, 0, 0, 0, 0, - 0, 497, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 497, 465, 0, 0, 166, 0, 166, 0, 0, - 0, 478, 0, 0, 0, 166, 166, 0, 0, 0, - 0, 0, 497, 0, 0, 497, 476, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 497, 0, 0, - 0, 0, 0, 980, 0, 983, 0, 0, 0, 0, - 0, 997, 998, 999, 1000, 1001, 1002, 1003, 484, 981, - 982, 979, 985, 984, 994, 995, 987, 988, 989, 990, - 991, 992, 993, 986, 0, 0, 996, 0, 0, 0, - 2067, 0, 0, 0, 0, 0, 455, 0, 457, 472, - 0, 486, 497, 485, 461, 0, 459, 463, 473, 464, - 0, 458, 0, 469, 0, 0, 460, 474, 475, 490, - 489, 477, 772, 467, 487, 0, 497, 0, 0, 0, - 0, 0, 497, 0, 0, 1219, 0, 0, 0, 1225, - 1225, 0, 1225, 0, 1225, 1225, 0, 1234, 1225, 1225, - 1225, 1225, 1225, 0, 0, 0, 0, 0, 0, 0, - 1219, 1219, 772, 0, 0, 0, 0, 161, 0, 0, - 0, 0, 0, 0, 2066, 0, 497, 0, 985, 984, - 994, 995, 987, 988, 989, 990, 991, 992, 993, 986, - 0, 103, 996, 1295, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 145, 0, 985, 984, 994, 995, - 987, 988, 989, 990, 991, 992, 993, 986, 0, 166, - 996, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 166, 166, 0, 0, 166, 1147, 166, 0, 0, - 0, 0, 0, 166, 0, 1794, 0, 0, 488, 0, - 166, 620, 620, 620, 0, 0, 0, 0, 142, 0, - 143, 0, 0, 0, 0, 0, 481, 2065, 0, 160, - 0, 0, 0, 0, 545, 0, 0, 0, 166, 497, - 0, 482, 0, 0, 0, 0, 0, 1903, 1904, 0, - 985, 984, 994, 995, 987, 988, 989, 990, 991, 992, - 993, 986, 1924, 1925, 996, 1926, 1927, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1933, 1934, 0, 0, - 0, 0, 0, 164, 0, 0, 452, 0, 0, 491, - 0, 0, 0, 0, 146, 0, 452, 0, 0, 0, - 1411, 0, 620, 151, 452, 0, 0, 0, 0, 0, - 0, 0, 1420, 1421, 0, 0, 1219, 1135, 0, 0, - 0, 606, 606, 0, 0, 0, 0, 0, 0, 0, - 452, 0, 0, 166, 1443, 1444, 0, 0, 0, 0, - 0, 166, 0, 985, 984, 994, 995, 987, 988, 989, - 990, 991, 992, 993, 986, 0, 0, 996, 1463, 1476, - 1148, 0, 0, 0, 166, 1990, 0, 0, 0, 1089, - 0, 0, 620, 0, 0, 166, 166, 166, 166, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 497, 0, 471, 0, 0, 0, 0, 166, 0, + 0, 497, 470, 0, 0, 166, 0, 166, 590, 0, + 142, 0, 143, 468, 0, 166, 166, 0, 0, 0, + 0, 160, 497, 0, 0, 497, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 497, 2072, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 465, 0, 0, 0, 0, 0, 0, 1089, 0, + 478, 509, 0, 0, 0, 0, 620, 0, 2095, 0, + 0, 2096, 1119, 0, 2098, 476, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 146, 2101, 0, 0, + 0, 0, 497, 0, 0, 151, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 484, 0, 0, + 0, 0, 0, 0, 0, 0, 497, 0, 0, 0, + 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 455, 0, 457, 472, 0, + 486, 0, 485, 461, 0, 459, 463, 473, 464, 0, + 458, 0, 469, 0, 0, 460, 474, 475, 490, 489, + 477, 0, 467, 487, 0, 0, 497, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2171, 509, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 138, 0, 0, 0, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 166, 166, 0, 0, 166, 0, 166, 0, 0, + 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 772, 0, 0, 0, 0, 0, + 545, 0, 0, 0, 0, 0, 0, 1219, 166, 497, + 0, 1225, 1225, 0, 1225, 0, 1225, 1225, 0, 1234, + 1225, 1225, 1225, 1225, 1225, 0, 0, 488, 0, 0, + 0, 0, 1219, 1219, 772, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 481, 0, 0, 0, 164, + 0, 0, 452, 0, 0, 491, 0, 0, 0, 0, + 482, 0, 452, 0, 0, 1295, 0, 0, 0, 0, + 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 606, 606, 0, + 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, + 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, + 0, 166, 139, 144, 141, 147, 148, 149, 150, 152, + 153, 154, 155, 620, 620, 620, 0, 0, 156, 157, + 158, 159, 0, 0, 166, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 620, 166, 0, 620, 166, 166, 0, 0, 166, 166, - 166, 0, 0, 0, 0, 772, 0, 0, 0, 138, - 0, 1161, 1164, 1165, 1166, 1167, 1168, 1169, 0, 1170, - 1171, 1172, 1173, 1174, 1149, 1150, 1151, 1152, 1133, 1134, - 1162, 0, 1136, 0, 1137, 1138, 1139, 1140, 1141, 1142, - 1143, 1144, 1145, 1146, 1153, 1154, 1155, 1156, 1157, 1158, - 1159, 1160, 0, 0, 0, 0, 0, 0, 0, 0, - 779, 0, 0, 497, 0, 0, 0, 2051, 166, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, - 0, 497, 0, 0, 772, 0, 0, 497, 0, 0, - 779, 0, 0, 0, 0, 0, 0, 497, 984, 994, - 995, 987, 988, 989, 990, 991, 992, 993, 986, 0, - 0, 996, 0, 0, 0, 0, 0, 0, 1163, 0, + 2338, 166, 0, 161, 166, 166, 0, 0, 166, 166, + 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 103, 0, 125, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1411, 0, 620, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1219, 0, + 0, 135, 0, 497, 0, 0, 124, 0, 166, 0, + 1147, 0, 0, 0, 0, 166, 1443, 1444, 0, 0, + 0, 497, 0, 0, 142, 0, 143, 497, 512, 0, + 0, 112, 113, 134, 133, 160, 0, 497, 0, 0, + 0, 1476, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1089, 0, 0, 620, 0, 0, 0, 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 772, 0, 166, 166, 0, 0, + 0, 0, 620, 0, 0, 620, 166, 166, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 772, 0, 129, + 110, 136, 117, 109, 0, 130, 131, 0, 0, 0, + 146, 0, 0, 0, 0, 0, 0, 0, 0, 151, + 118, 0, 497, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 121, 119, 114, 115, 116, 120, + 0, 1135, 0, 0, 111, 0, 35, 36, 37, 72, + 39, 40, 779, 122, 0, 0, 0, 0, 497, 0, + 0, 0, 0, 0, 0, 0, 76, 0, 0, 166, + 41, 67, 68, 0, 65, 69, 772, 0, 0, 497, + 0, 0, 779, 66, 1148, 497, 497, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 71, 0, 0, 138, 772, 0, 0, 452, + 0, 452, 0, 0, 452, 1161, 1164, 1165, 1166, 1167, + 1168, 1169, 166, 1170, 1171, 1172, 1173, 1174, 1149, 1150, + 1151, 1152, 1133, 1134, 1162, 0, 1136, 0, 1137, 1138, + 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1153, 1154, + 1155, 1156, 1157, 1158, 1159, 1160, 166, 0, 0, 0, + 132, 0, 0, 0, 497, 0, 0, 0, 0, 0, + 0, 497, 126, 0, 0, 127, 0, 166, 0, 0, + 44, 47, 50, 49, 52, 0, 64, 166, 0, 70, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 166, 0, 0, 166, 0, 0, 0, 0, 1667, + 0, 53, 75, 74, 0, 0, 62, 63, 51, 0, + 0, 0, 1163, 980, 0, 983, 0, 0, 0, 0, + 0, 997, 998, 999, 1000, 1001, 1002, 1003, 452, 981, + 982, 979, 985, 984, 994, 995, 987, 988, 989, 990, + 991, 992, 993, 986, 606, 0, 996, 55, 56, 0, + 57, 58, 59, 60, 0, 0, 0, 0, 0, 452, + 0, 452, 1108, 0, 0, 0, 139, 144, 141, 147, + 148, 149, 150, 152, 153, 154, 155, 0, 0, 0, + 0, 0, 156, 157, 158, 159, 0, 0, 0, 0, + 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, + 166, 166, 166, 497, 497, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1219, 0, 0, 1420, 1421, 0, + 0, 0, 0, 497, 497, 497, 0, 0, 0, 0, + 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2111, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 497, 497, + 497, 166, 0, 1463, 0, 0, 0, 0, 0, 0, + 0, 0, 497, 0, 497, 0, 0, 0, 0, 0, + 497, 0, 1064, 0, 0, 497, 0, 0, 0, 0, + 0, 0, 0, 497, 0, 0, 0, 0, 0, 0, + 452, 0, 0, 1838, 0, 0, 0, 0, 0, 1010, + 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 0, + 0, 1850, 497, 0, 0, 497, 0, 1856, 0, 0, + 0, 0, 0, 0, 451, 620, 0, 1862, 0, 0, + 0, 0, 0, 0, 499, 1220, 0, 0, 0, 0, + 0, 0, 579, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1220, 1220, 0, 0, 0, 0, 452, 0, 776, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 497, 166, 1271, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 497, 0, 0, 452, 0, 0, 0, 0, + 0, 0, 620, 0, 0, 0, 0, 0, 0, 497, + 1316, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 497, 497, 0, 0, 0, 452, 0, 0, 0, + 0, 0, 0, 452, 0, 0, 0, 0, 1225, 0, + 0, 0, 1339, 1340, 452, 452, 452, 452, 452, 452, + 452, 0, 0, 0, 0, 0, 0, 0, 0, 620, + 0, 0, 1219, 0, 0, 1958, 1225, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 547, 34, 0, 0, 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, - 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 0, 0, 0, 0, 0, 156, 157, 158, 159, - 0, 0, 0, 0, 0, 0, 0, 0, 497, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, - 2151, 2152, 2153, 2154, 2155, 497, 497, 1667, 2158, 2159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 0, 606, 1316, 0, 0, 0, 606, 606, 0, 0, + 606, 606, 606, 0, 0, 0, 1220, 0, 0, 0, + 0, 0, 0, 0, 772, 0, 0, 1219, 0, 0, + 0, 1850, 0, 0, 0, 0, 606, 606, 606, 606, + 606, 0, 0, 0, 583, 1271, 0, 0, 0, 0, + 0, 0, 0, 1684, 0, 0, 0, 1685, 0, 0, + 0, 0, 0, 0, 0, 0, 452, 0, 1692, 1693, + 0, 0, 1316, 452, 1699, 452, 0, 1702, 1703, 0, + 0, 0, 0, 452, 452, 1709, 0, 1710, 0, 0, + 1713, 1714, 1715, 1716, 1717, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1727, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1219, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1771, 1772, 0, 0, 0, 0, 0, 0, 0, + 1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 883, 0, 888, 0, 0, 890, 0, 0, 0, + 0, 0, 0, 1850, 2130, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2145, 2146, 2147, 0, 1380, 0, 0, + 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, + 1399, 1400, 1401, 1402, 1403, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2162, 2162, + 2162, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2177, 0, 2179, 0, 0, 0, 0, 0, + 1850, 0, 0, 0, 0, 1850, 0, 452, 0, 1442, + 0, 0, 0, 1850, 452, 0, 0, 0, 0, 452, + 452, 0, 0, 452, 0, 1658, 0, 0, 0, 0, + 0, 452, 0, 0, 0, 0, 0, 0, 452, 0, + 0, 0, 1850, 0, 0, 620, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1905, 1906, 0, 0, 0, 452, 0, 0, 0, + 0, 1095, 0, 0, 1106, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 2256, 0, 606, 606, 0, 1957, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1219, 0, 2270, + 0, 0, 0, 0, 0, 606, 0, 0, 1972, 0, + 0, 620, 620, 0, 0, 0, 0, 0, 0, 0, + 0, 452, 0, 0, 0, 0, 0, 0, 0, 1271, + 0, 0, 0, 0, 0, 940, 940, 940, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 606, 452, 0, 0, 34, 0, 0, 0, 0, + 0, 0, 1220, 452, 452, 452, 452, 452, 1005, 1007, + 0, 0, 0, 0, 0, 1770, 0, 0, 0, 452, + 0, 0, 452, 452, 0, 0, 452, 1780, 1316, 0, + 0, 0, 1125, 0, 0, 0, 0, 0, 0, 1020, + 0, 0, 1850, 1025, 1026, 1027, 1028, 1029, 1030, 1031, + 1032, 0, 1035, 1037, 1040, 1040, 1040, 1037, 1040, 1040, + 1037, 1040, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 0, + 0, 0, 0, 0, 1065, 0, 0, 0, 34, 0, + 0, 0, 2052, 0, 0, 0, 2054, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 452, 2063, 2064, 0, + 0, 0, 0, 1847, 0, 1102, 0, 0, 1256, 0, + 0, 0, 0, 2078, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1316, 0, 0, 0, 0, 0, 0, + 2087, 2088, 0, 0, 2092, 0, 0, 1297, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 452, 452, + 452, 452, 452, 0, 0, 1678, 1679, 1680, 0, 0, + 0, 0, 0, 0, 452, 452, 0, 0, 1326, 0, + 0, 0, 0, 0, 0, 1330, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1341, 1342, 1343, 1344, + 1345, 1346, 1347, 0, 0, 0, 0, 0, 0, 606, + 0, 0, 2133, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1106, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 452, 0, 0, + 2161, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 161, 0, + 0, 0, 0, 0, 0, 0, 452, 0, 0, 1196, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 103, 0, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, + 452, 0, 0, 0, 0, 0, 2209, 2210, 2211, 2212, + 0, 2216, 0, 2217, 2218, 2220, 0, 0, 0, 2221, + 2222, 0, 0, 0, 0, 0, 135, 0, 1483, 0, + 0, 124, 0, 0, 452, 1487, 0, 1490, 0, 0, + 0, 0, 0, 0, 0, 1220, 1509, 0, 0, 142, + 0, 143, 0, 0, 0, 452, 1200, 1201, 134, 133, + 160, 0, 0, 0, 0, 452, 0, 0, 2252, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, + 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 940, 940, 940, 0, 0, + 0, 0, 0, 0, 129, 1202, 136, 0, 1199, 0, + 130, 131, 0, 0, 0, 146, 0, 0, 0, 0, + 0, 1903, 1904, 0, 151, 0, 0, 0, 0, 0, + 0, 0, 0, 2323, 2324, 0, 1924, 1925, 0, 1926, + 1927, 0, 1220, 0, 0, 0, 0, 0, 0, 0, + 1933, 1934, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 452, 0, 452, 0, 0, 452, 0, - 0, 0, 166, 0, 0, 0, 0, 0, 1684, 0, - 0, 0, 1685, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1692, 1693, 0, 0, 0, 0, 1699, - 0, 0, 1702, 1703, 0, 0, 166, 0, 0, 0, - 1709, 0, 1710, 0, 497, 1713, 1714, 1715, 1716, 1717, - 0, 497, 0, 0, 0, 0, 0, 166, 0, 1727, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 1219, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1771, 1772, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2286, - 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 606, 0, + 0, 0, 0, 0, 0, 452, 0, 0, 452, 452, + 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 452, 0, 452, 1108, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1106, + 138, 0, 0, 0, 0, 0, 1642, 0, 0, 1990, + 0, 1651, 1652, 0, 0, 1656, 0, 0, 0, 0, + 0, 0, 0, 1659, 0, 0, 0, 0, 0, 1271, + 1662, 0, 0, 0, 0, 0, 0, 1508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1838, 0, 0, 0, 0, 0, 0, 0, 0, - 497, 0, 0, 0, 0, 0, 0, 0, 0, 1850, - 0, 0, 0, 0, 0, 1856, 0, 0, 0, 0, - 0, 0, 0, 620, 0, 1862, 0, 166, 0, 0, - 166, 166, 166, 497, 497, 0, 0, 0, 0, 0, - 0, 547, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 497, 497, 497, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 132, 0, 0, 1666, 0, + 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, + 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 34, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 497, 497, - 497, 166, 0, 0, 0, 0, 0, 0, 0, 0, - 620, 0, 497, 0, 497, 0, 1905, 1906, 0, 0, - 497, 0, 0, 0, 0, 497, 1064, 0, 0, 0, - 0, 583, 0, 497, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 452, 0, 1225, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 497, 0, 0, 497, 0, 620, 0, 0, - 1219, 0, 0, 1958, 1225, 0, 0, 0, 451, 0, - 0, 0, 1957, 0, 0, 0, 0, 0, 499, 1220, - 0, 0, 0, 0, 0, 0, 579, 0, 0, 0, - 0, 0, 0, 1972, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1220, 1220, 0, 0, 0, 0, - 452, 0, 776, 0, 0, 0, 0, 0, 0, 0, - 497, 166, 0, 0, 0, 0, 1271, 0, 0, 0, - 0, 0, 497, 0, 0, 0, 0, 0, 0, 452, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 497, - 0, 0, 0, 0, 1316, 0, 0, 0, 0, 0, - 497, 497, 772, 0, 0, 1219, 0, 0, 0, 1850, - 452, 0, 0, 0, 0, 0, 0, 452, 0, 0, - 0, 0, 0, 0, 0, 0, 1339, 1340, 452, 452, - 452, 452, 452, 452, 452, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 452, 0, 0, 0, 2052, 0, 0, - 0, 2054, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2063, 2064, 0, 0, 0, 0, 0, 0, - 497, 0, 0, 0, 0, 0, 0, 0, 2078, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1219, 0, 0, 2087, 2088, 0, 0, 2092, - 0, 0, 0, 0, 0, 606, 1316, 0, 0, 0, - 606, 606, 0, 0, 606, 606, 606, 0, 1850, 0, - 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 606, 606, 606, 606, 606, 0, 0, 0, 0, 1271, - 0, 1850, 2130, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2133, 0, 0, - 452, 2145, 2146, 2147, 0, 0, 1316, 452, 0, 452, - 0, 0, 0, 0, 0, 0, 0, 452, 452, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2162, 2162, 2162, 0, - 0, 0, 0, 0, 0, 2161, 0, 0, 0, 0, - 2177, 0, 2179, 0, 0, 0, 0, 0, 1850, 0, - 0, 0, 0, 1850, 0, 0, 0, 0, 0, 0, - 0, 1850, 940, 940, 940, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 1850, 0, 0, 620, 0, 1005, 1007, 0, 0, 0, - 0, 0, 0, 0, 0, 883, 0, 888, 0, 0, - 890, 2209, 2210, 2211, 2212, 0, 2216, 0, 2217, 2218, - 2220, 0, 0, 0, 2221, 2222, 1020, 0, 0, 0, - 1025, 1026, 1027, 1028, 1029, 1030, 1031, 1032, 0, 1035, - 1037, 1040, 1040, 1040, 1037, 1040, 1040, 1037, 1040, 1053, - 1054, 1055, 1056, 1057, 1058, 1059, 0, 0, 1850, 0, - 0, 1065, 0, 0, 0, 34, 0, 0, 0, 0, - 2255, 0, 0, 2251, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1219, 0, 2269, 0, 0, - 0, 0, 1102, 0, 0, 0, 0, 0, 620, 620, - 0, 452, 0, 0, 0, 0, 0, 0, 452, 0, - 0, 0, 0, 452, 452, 0, 0, 452, 0, 1658, - 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, - 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2321, 2322, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 452, 0, 0, 0, 0, 1095, 0, 0, 1106, 0, - 0, 0, 0, 0, 161, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1850, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 103, 0, - 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 145, 0, 0, 0, 0, 0, 0, 606, 606, + 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 0, 0, 135, 0, 0, 0, 0, 124, 0, 0, - 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, - 0, 0, 0, 1271, 0, 142, 0, 143, 0, 0, - 0, 0, 112, 113, 134, 133, 160, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 452, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1220, 452, 452, 452, - 452, 452, 0, 0, 0, 0, 0, 0, 0, 1770, - 0, 0, 0, 452, 0, 0, 452, 452, 0, 0, - 452, 1780, 1316, 0, 0, 0, 1125, 0, 0, 0, - 129, 110, 136, 117, 109, 0, 130, 131, 0, 0, - 0, 146, 0, 0, 0, 0, 0, 0, 0, 0, - 151, 118, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 121, 119, 114, 115, 116, - 120, 0, 0, 0, 0, 111, 0, 0, 0, 0, - 0, 0, 0, 0, 122, 0, 0, 0, 0, 0, - 452, 0, 0, 0, 0, 0, 0, 1847, 0, 0, - 0, 0, 1256, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 940, 940, 940, 0, 0, 1316, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1297, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 452, 452, 452, 452, 452, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 138, 0, 452, 452, - 0, 0, 1326, 0, 0, 0, 0, 0, 0, 1330, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1341, 1342, 1343, 1344, 1345, 1346, 1347, 0, 0, 0, - 0, 0, 0, 606, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 132, 0, 0, 0, 1106, 0, 0, 0, 0, - 0, 0, 0, 126, 0, 0, 127, 0, 0, 0, + 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, + 154, 155, 0, 0, 0, 1220, 0, 156, 157, 158, + 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2111, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 452, 0, 0, 0, 1508, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, - 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, - 0, 0, 1483, 156, 157, 158, 159, 0, 452, 1487, - 161, 1490, 0, 0, 0, 0, 0, 0, 0, 1220, - 1509, 1196, 0, 0, 0, 0, 0, 0, 0, 452, - 0, 0, 0, 0, 103, 0, 125, 0, 0, 452, - 0, 0, 0, 0, 0, 0, 0, 145, 0, 0, - 0, 0, 0, 452, 0, 0, 452, 0, 0, 0, + 0, 0, 0, 0, 2151, 2152, 2153, 2154, 2155, 0, + 0, 0, 2158, 2159, 0, 0, 0, 0, 1841, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 135, 0, - 0, 0, 0, 124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 142, 0, 143, 0, 0, 0, 0, 1200, 1201, - 134, 133, 160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 129, 1202, 136, 0, - 1199, 0, 130, 131, 0, 0, 0, 146, 0, 452, - 0, 0, 452, 452, 452, 0, 151, 0, 0, 0, + 1880, 1881, 1882, 1883, 1884, 0, 0, 0, 0, 0, + 0, 1688, 0, 0, 583, 0, 1106, 1890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1106, 0, 0, 0, 0, 0, 0, - 1642, 0, 0, 0, 0, 1651, 1652, 0, 0, 1656, - 0, 0, 0, 0, 0, 0, 0, 1659, 0, 0, - 0, 0, 0, 1271, 1662, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1688, 0, - 0, 583, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1666, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 138, 0, 0, 0, 0, 0, 1725, 0, + 0, 1725, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, + 0, 0, 0, 1752, 1753, 0, 0, 1102, 1102, 1102, + 1102, 1102, 0, 0, 0, 0, 0, 0, 0, 1943, + 0, 0, 0, 1508, 0, 0, 1102, 0, 0, 0, + 1102, 0, 0, 0, 2288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1102, 0, 0, 0, 0, 0, 0, - 1752, 1753, 0, 0, 1102, 1102, 1102, 1102, 1102, 0, - 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, - 1508, 0, 0, 1102, 0, 0, 0, 1102, 0, 126, - 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1777, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1863, 0, 0, - 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, - 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, - 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1841, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2016, 0, 0, 0, + 1863, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2029, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2043, 0, 0, 2046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1880, 1881, 1882, 1883, 1884, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1106, 1890, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1955, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1955, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1943, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1102, 0, 0, 0, 0, 0, 0, 2125, 0, 0, + 2126, 2127, 2128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2016, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2069, 0, 0, 0, 0, 0, 0, 2075, 2076, 2077, - 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2043, 0, 0, 2046, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2069, 0, 0, 0, 0, 0, 0, + 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1955, 0, - 34, 2125, 1955, 0, 2126, 2127, 2128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 748, 734, 395, 0, 681, 751, 652, 669, 761, - 672, 675, 716, 631, 694, 318, 666, 0, 656, 627, - 662, 628, 654, 683, 224, 651, 736, 698, 750, 275, - 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 757, 279, 705, 0, 380, 303, 1955, 0, 0, - 685, 740, 692, 730, 680, 717, 641, 704, 752, 667, - 713, 753, 265, 207, 175, 315, 381, 239, 0, 2244, - 0, 167, 168, 169, 34, 2293, 2294, 0, 0, 0, - 0, 0, 198, 0, 205, 710, 747, 664, 712, 219, - 263, 226, 218, 399, 758, 739, 0, 191, 749, 687, - 715, 764, 626, 707, 0, 629, 632, 760, 743, 660, - 229, 0, 0, 0, 0, 34, 0, 0, 684, 693, - 727, 678, 0, 0, 0, 0, 0, 0, 0, 0, - 658, 0, 703, 0, 0, 0, 637, 630, 0, 0, - 0, 0, 682, 0, 0, 0, 640, 0, 659, 728, - 0, 624, 247, 634, 304, 2250, 732, 742, 679, 431, - 746, 677, 676, 722, 638, 738, 670, 274, 636, 271, - 171, 187, 0, 668, 314, 354, 360, 737, 655, 663, - 210, 661, 358, 328, 416, 194, 237, 351, 333, 356, - 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 942, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 650, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, - 725, 763, 327, 359, 200, 418, 379, 645, 649, 643, - 644, 696, 697, 646, 754, 755, 756, 729, 639, 0, - 647, 648, 0, 735, 744, 745, 701, 170, 184, 277, - 759, 348, 240, 444, 425, 421, 625, 642, 216, 653, - 0, 0, 665, 673, 674, 686, 688, 689, 690, 691, - 700, 708, 709, 711, 719, 721, 724, 726, 731, 741, - 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 695, 723, - 284, 396, 397, 748, 734, 395, 0, 681, 751, 652, - 669, 761, 672, 675, 716, 631, 694, 318, 666, 0, - 656, 627, 662, 628, 654, 683, 224, 651, 736, 698, - 750, 275, 221, 633, 657, 332, 671, 176, 718, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 757, 279, 705, 0, 380, 303, 0, - 0, 0, 685, 740, 692, 730, 680, 717, 641, 704, - 752, 667, 713, 753, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 710, 747, 664, - 712, 219, 263, 226, 218, 399, 758, 739, 0, 191, - 749, 687, 715, 764, 626, 707, 0, 629, 632, 760, - 743, 660, 229, 0, 0, 0, 0, 0, 0, 0, - 684, 693, 727, 678, 0, 0, 0, 0, 0, 0, - 1947, 0, 658, 0, 703, 0, 0, 0, 637, 630, - 0, 0, 0, 0, 682, 0, 0, 0, 640, 0, - 659, 728, 0, 624, 247, 634, 304, 0, 732, 742, - 679, 431, 746, 677, 676, 722, 638, 738, 670, 274, - 636, 271, 171, 187, 0, 668, 314, 354, 360, 737, - 655, 663, 210, 661, 358, 328, 416, 194, 237, 351, - 333, 356, 702, 720, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 942, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 650, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 733, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 725, 763, 327, 359, 200, 418, 379, 645, - 649, 643, 644, 696, 697, 646, 754, 755, 756, 729, - 639, 0, 647, 648, 0, 735, 744, 745, 701, 170, - 184, 277, 759, 348, 240, 444, 425, 421, 625, 642, - 216, 653, 0, 0, 665, 673, 674, 686, 688, 689, - 690, 691, 700, 708, 709, 711, 719, 721, 724, 726, - 731, 741, 762, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 699, 706, 288, 234, 252, 262, - 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 695, 723, 284, 396, 397, 748, 734, 395, 0, 681, - 751, 652, 669, 761, 672, 675, 716, 631, 694, 318, - 666, 0, 656, 627, 662, 628, 654, 683, 224, 651, - 736, 698, 750, 275, 221, 633, 657, 332, 671, 176, - 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 757, 279, 705, 0, 380, - 303, 0, 0, 0, 685, 740, 692, 730, 680, 717, - 641, 704, 752, 667, 713, 753, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 710, - 747, 664, 712, 219, 263, 226, 218, 399, 758, 739, - 0, 191, 749, 687, 715, 764, 626, 707, 0, 629, - 632, 760, 743, 660, 229, 0, 0, 0, 0, 0, - 0, 0, 684, 693, 727, 678, 0, 0, 0, 0, - 0, 0, 1781, 0, 658, 0, 703, 0, 0, 0, - 637, 630, 0, 0, 0, 0, 682, 0, 0, 0, - 640, 0, 659, 728, 0, 624, 247, 634, 304, 0, - 732, 742, 679, 431, 746, 677, 676, 722, 638, 738, - 670, 274, 636, 271, 171, 187, 0, 668, 314, 354, - 360, 737, 655, 663, 210, 661, 358, 328, 416, 194, - 237, 351, 333, 356, 702, 720, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 942, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 650, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 733, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 725, 763, 327, 359, 200, 418, - 379, 645, 649, 643, 644, 696, 697, 646, 754, 755, - 756, 729, 639, 0, 647, 648, 0, 735, 744, 745, - 701, 170, 184, 277, 759, 348, 240, 444, 425, 421, - 625, 642, 216, 653, 0, 0, 665, 673, 674, 686, - 688, 689, 690, 691, 700, 708, 709, 711, 719, 721, - 724, 726, 731, 741, 762, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 699, 706, 288, 234, - 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 695, 723, 284, 396, 397, 748, 734, 395, - 0, 681, 751, 652, 669, 761, 672, 675, 716, 631, - 694, 318, 666, 0, 656, 627, 662, 628, 654, 683, - 224, 651, 736, 698, 750, 275, 221, 633, 657, 332, - 671, 176, 718, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 757, 279, 705, - 0, 380, 303, 0, 0, 0, 685, 740, 692, 730, - 680, 717, 641, 704, 752, 667, 713, 753, 265, 207, - 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 710, 747, 664, 712, 219, 263, 226, 218, 399, - 758, 739, 0, 191, 749, 687, 715, 764, 626, 707, - 0, 629, 632, 760, 743, 660, 229, 0, 0, 0, - 0, 0, 0, 0, 684, 693, 727, 678, 0, 0, - 0, 0, 0, 0, 1485, 0, 658, 0, 703, 0, - 0, 0, 637, 630, 0, 0, 0, 0, 682, 0, - 0, 0, 640, 0, 659, 728, 0, 624, 247, 634, - 304, 0, 732, 742, 679, 431, 746, 677, 676, 722, - 638, 738, 670, 274, 636, 271, 171, 187, 0, 668, - 314, 354, 360, 737, 655, 663, 210, 661, 358, 328, - 416, 194, 237, 351, 333, 356, 702, 720, 357, 280, - 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, - 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, - 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, - 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, - 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, - 407, 408, 211, 446, 190, 427, 183, 942, 426, 310, - 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, - 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, - 0, 382, 420, 447, 195, 196, 197, 650, 232, 236, - 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, - 733, 398, 415, 423, 430, 436, 437, 441, 438, 439, - 442, 309, 257, 378, 272, 281, 725, 763, 327, 359, - 200, 418, 379, 645, 649, 643, 644, 696, 697, 646, - 754, 755, 756, 729, 639, 0, 647, 648, 0, 735, - 744, 745, 701, 170, 184, 277, 759, 348, 240, 444, - 425, 421, 625, 642, 216, 653, 0, 0, 665, 673, - 674, 686, 688, 689, 690, 691, 700, 708, 709, 711, - 719, 721, 724, 726, 731, 741, 762, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, - 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, - 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, - 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, - 417, 429, 434, 249, 413, 435, 0, 286, 699, 706, - 288, 234, 252, 262, 714, 424, 384, 189, 355, 241, - 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, - 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, - 394, 300, 220, 334, 695, 723, 284, 396, 397, 748, - 734, 395, 0, 681, 751, 652, 669, 761, 672, 675, - 716, 631, 694, 318, 666, 0, 656, 627, 662, 628, - 654, 683, 224, 651, 736, 698, 750, 275, 221, 633, - 657, 332, 671, 176, 718, 371, 209, 285, 282, 402, - 235, 227, 223, 208, 259, 291, 330, 389, 324, 757, - 279, 705, 0, 380, 303, 0, 0, 0, 685, 740, - 692, 730, 680, 717, 641, 704, 752, 667, 713, 753, - 265, 207, 175, 315, 381, 239, 71, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 710, 747, 664, 712, 219, 263, 226, - 218, 399, 758, 739, 0, 191, 749, 687, 715, 764, - 626, 707, 0, 629, 632, 760, 743, 660, 229, 0, - 0, 0, 0, 0, 0, 0, 684, 693, 727, 678, - 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, - 703, 0, 0, 0, 637, 630, 0, 0, 0, 0, - 682, 0, 0, 0, 640, 0, 659, 728, 0, 624, - 247, 634, 304, 0, 732, 742, 679, 431, 746, 677, - 676, 722, 638, 738, 670, 274, 636, 271, 171, 187, - 0, 668, 314, 354, 360, 737, 655, 663, 210, 661, - 358, 328, 416, 194, 237, 351, 333, 356, 702, 720, - 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, - 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, - 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, - 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, - 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, - 212, 317, 407, 408, 211, 446, 190, 427, 183, 942, - 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, - 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, - 0, 177, 0, 382, 420, 447, 195, 196, 197, 650, - 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, - 341, 347, 733, 398, 415, 423, 430, 436, 437, 441, - 438, 439, 442, 309, 257, 378, 272, 281, 725, 763, - 327, 359, 200, 418, 379, 645, 649, 643, 644, 696, - 697, 646, 754, 755, 756, 729, 639, 0, 647, 648, - 0, 735, 744, 745, 701, 170, 184, 277, 759, 348, - 240, 444, 425, 421, 625, 642, 216, 653, 0, 0, - 665, 673, 674, 686, 688, 689, 690, 691, 700, 708, - 709, 711, 719, 721, 724, 726, 731, 741, 762, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, - 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, - 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, - 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, - 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, - 699, 706, 288, 234, 252, 262, 714, 424, 384, 189, - 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, - 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, - 391, 392, 394, 300, 220, 334, 695, 723, 284, 396, - 397, 748, 734, 395, 0, 681, 751, 652, 669, 761, - 672, 675, 716, 631, 694, 318, 666, 0, 656, 627, - 662, 628, 654, 683, 224, 651, 736, 698, 750, 275, - 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 757, 279, 705, 0, 380, 303, 0, 0, 0, - 685, 740, 692, 730, 680, 717, 641, 704, 752, 667, - 713, 753, 265, 207, 175, 315, 381, 239, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 710, 747, 664, 712, 219, - 263, 226, 218, 399, 758, 739, 0, 191, 749, 687, - 715, 764, 626, 707, 0, 629, 632, 760, 743, 660, - 229, 0, 0, 0, 0, 0, 0, 0, 684, 693, - 727, 678, 0, 0, 0, 0, 0, 0, 0, 0, - 658, 0, 703, 0, 0, 0, 637, 630, 0, 0, - 0, 0, 682, 0, 0, 0, 640, 0, 659, 728, - 0, 624, 247, 634, 304, 0, 732, 742, 679, 431, - 746, 677, 676, 722, 638, 738, 670, 274, 636, 271, - 171, 187, 0, 668, 314, 354, 360, 737, 655, 663, - 210, 661, 358, 328, 416, 194, 237, 351, 333, 356, - 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 942, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 650, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, - 725, 763, 327, 359, 200, 418, 379, 645, 649, 643, - 644, 696, 697, 646, 754, 755, 756, 729, 639, 0, - 647, 648, 0, 735, 744, 745, 701, 170, 184, 277, - 759, 348, 240, 444, 425, 421, 625, 642, 216, 653, - 0, 0, 665, 673, 674, 686, 688, 689, 690, 691, - 700, 708, 709, 711, 719, 721, 724, 726, 731, 741, - 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 695, 723, - 284, 396, 397, 748, 734, 395, 0, 681, 751, 652, - 669, 761, 672, 675, 716, 631, 694, 318, 666, 0, - 656, 627, 662, 628, 654, 683, 224, 651, 736, 698, - 750, 275, 221, 633, 657, 332, 671, 176, 718, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 757, 279, 705, 0, 380, 303, 0, - 0, 0, 685, 740, 692, 730, 680, 717, 641, 704, - 752, 667, 713, 753, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 710, 747, 664, - 712, 219, 263, 226, 218, 399, 758, 739, 0, 765, - 749, 687, 715, 764, 626, 707, 0, 629, 632, 760, - 743, 660, 229, 0, 0, 0, 0, 0, 0, 0, - 684, 693, 727, 678, 0, 0, 0, 0, 0, 0, - 0, 0, 658, 0, 703, 0, 0, 0, 637, 630, - 0, 0, 0, 0, 682, 0, 0, 0, 640, 0, - 659, 728, 0, 624, 247, 634, 304, 0, 732, 742, - 679, 431, 746, 677, 676, 722, 638, 738, 670, 274, - 636, 271, 171, 187, 0, 668, 314, 354, 360, 737, - 655, 663, 210, 661, 358, 328, 416, 194, 237, 351, - 333, 356, 702, 720, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 635, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 650, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 733, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 623, 617, 616, - 272, 281, 725, 763, 327, 359, 200, 418, 379, 645, - 649, 643, 644, 696, 697, 646, 754, 755, 756, 729, - 639, 0, 647, 648, 0, 735, 744, 745, 701, 170, - 184, 277, 759, 348, 240, 444, 425, 421, 625, 642, - 216, 653, 0, 0, 665, 673, 674, 686, 688, 689, - 690, 691, 700, 708, 709, 711, 719, 721, 724, 726, - 731, 741, 762, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 699, 706, 288, 234, 252, 262, - 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 695, 723, 284, 396, 397, 748, 734, 395, 0, 681, - 751, 652, 669, 761, 672, 675, 716, 631, 694, 318, - 666, 0, 656, 627, 662, 628, 654, 683, 224, 651, - 736, 698, 750, 275, 221, 633, 657, 332, 671, 176, - 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 757, 279, 705, 0, 380, - 303, 0, 0, 0, 685, 740, 692, 730, 680, 717, - 641, 704, 752, 667, 713, 753, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 710, - 747, 664, 712, 219, 263, 226, 218, 399, 758, 739, - 0, 765, 749, 687, 715, 764, 626, 707, 0, 629, - 632, 760, 743, 660, 229, 0, 0, 0, 0, 0, - 0, 0, 684, 693, 727, 678, 0, 0, 0, 0, - 0, 0, 0, 0, 658, 0, 703, 0, 0, 0, - 637, 630, 0, 0, 0, 0, 682, 0, 0, 0, - 640, 0, 659, 728, 0, 624, 247, 634, 304, 0, - 732, 742, 679, 431, 746, 677, 676, 722, 638, 738, - 670, 274, 636, 271, 171, 187, 0, 668, 314, 354, - 360, 737, 655, 663, 210, 661, 358, 328, 416, 194, - 237, 351, 333, 356, 702, 720, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 1110, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 635, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 650, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 733, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 623, - 617, 616, 272, 281, 725, 763, 327, 359, 200, 418, - 379, 645, 649, 643, 644, 696, 697, 646, 754, 755, - 756, 729, 639, 0, 647, 648, 0, 735, 744, 745, - 701, 170, 184, 277, 759, 348, 240, 444, 425, 421, - 625, 642, 216, 653, 0, 0, 665, 673, 674, 686, - 688, 689, 690, 691, 700, 708, 709, 711, 719, 721, - 724, 726, 731, 741, 762, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 699, 706, 288, 234, - 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 695, 723, 284, 396, 397, 748, 734, 395, - 0, 681, 751, 652, 669, 761, 672, 675, 716, 631, - 694, 318, 666, 0, 656, 627, 662, 628, 654, 683, - 224, 651, 736, 698, 750, 275, 221, 633, 657, 332, - 671, 176, 718, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 757, 279, 705, - 0, 380, 303, 0, 0, 0, 685, 740, 692, 730, - 680, 717, 641, 704, 752, 667, 713, 753, 265, 207, - 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 710, 747, 664, 712, 219, 263, 226, 218, 399, - 758, 739, 0, 765, 749, 687, 715, 764, 626, 707, - 0, 629, 632, 760, 743, 660, 229, 0, 0, 0, - 0, 0, 0, 0, 684, 693, 727, 678, 0, 0, - 0, 0, 0, 0, 0, 0, 658, 0, 703, 0, - 0, 0, 637, 630, 0, 0, 0, 0, 682, 0, - 0, 0, 640, 0, 659, 728, 0, 624, 247, 634, - 304, 0, 732, 742, 679, 431, 746, 677, 676, 722, - 638, 738, 670, 274, 636, 271, 171, 187, 0, 668, - 314, 354, 360, 737, 655, 663, 210, 661, 358, 328, - 416, 194, 237, 351, 333, 356, 702, 720, 357, 280, - 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, - 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, - 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, - 388, 614, 199, 369, 0, 0, 445, 181, 410, 385, - 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, - 407, 408, 211, 446, 190, 427, 183, 635, 426, 310, - 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, - 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, - 0, 382, 420, 447, 195, 196, 197, 650, 232, 236, - 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, - 733, 398, 415, 423, 430, 436, 437, 441, 438, 439, - 442, 623, 617, 616, 272, 281, 725, 763, 327, 359, - 200, 418, 379, 645, 649, 643, 644, 696, 697, 646, - 754, 755, 756, 729, 639, 0, 647, 648, 0, 735, - 744, 745, 701, 170, 184, 277, 759, 348, 240, 444, - 425, 421, 625, 642, 216, 653, 0, 0, 665, 673, - 674, 686, 688, 689, 690, 691, 700, 708, 709, 711, - 719, 721, 724, 726, 731, 741, 762, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, - 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, - 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, - 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, - 417, 429, 434, 249, 413, 435, 0, 286, 699, 706, - 288, 234, 252, 262, 714, 424, 384, 189, 355, 241, - 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, - 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, - 394, 300, 220, 334, 695, 723, 284, 396, 397, 395, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 1413, 0, 514, 0, 0, 0, - 224, 513, 0, 0, 0, 275, 221, 0, 1414, 332, - 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, - 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, - 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, - 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, - 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 525, 526, 604, 0, 0, 0, 572, 0, - 527, 0, 0, 520, 521, 523, 522, 524, 529, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 304, 0, 571, 0, 0, 431, 0, 0, 569, 0, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, - 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, - 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, - 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, - 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, - 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, - 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, - 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, - 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, - 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, - 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, - 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, - 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, - 200, 418, 379, 559, 570, 565, 566, 563, 564, 558, - 562, 561, 560, 573, 550, 551, 552, 553, 555, 0, - 567, 568, 554, 170, 184, 277, 0, 348, 240, 444, - 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, - 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, - 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, - 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, - 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, - 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, - 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, - 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, - 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, - 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, - 0, 514, 0, 0, 0, 224, 513, 0, 0, 0, - 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1955, 0, 34, 0, 1955, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 748, 734, 395, 0, 681, 751, + 652, 669, 761, 672, 675, 716, 631, 694, 318, 666, + 0, 656, 627, 662, 628, 654, 683, 224, 651, 736, + 698, 750, 275, 221, 633, 657, 332, 671, 176, 718, + 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, + 291, 330, 389, 324, 757, 279, 705, 0, 380, 303, + 1955, 0, 0, 685, 740, 692, 730, 680, 717, 641, + 704, 752, 667, 713, 753, 265, 207, 175, 315, 381, + 239, 0, 2245, 0, 167, 168, 169, 34, 2295, 2296, + 0, 0, 0, 0, 0, 198, 0, 205, 710, 747, + 664, 712, 219, 263, 226, 218, 399, 758, 739, 0, + 191, 749, 687, 715, 764, 626, 707, 0, 629, 632, + 760, 743, 660, 229, 0, 0, 0, 0, 0, 34, + 0, 684, 693, 727, 678, 0, 0, 0, 0, 0, + 0, 0, 0, 658, 0, 703, 0, 0, 0, 637, + 630, 0, 0, 0, 0, 682, 0, 0, 0, 640, + 0, 659, 728, 0, 624, 247, 634, 304, 0, 732, + 742, 679, 431, 746, 677, 676, 722, 638, 738, 670, + 274, 636, 271, 171, 187, 0, 668, 314, 354, 360, + 737, 655, 663, 210, 661, 358, 328, 416, 194, 237, + 351, 333, 356, 702, 720, 357, 280, 404, 346, 414, + 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, + 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, + 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, + 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, + 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, + 446, 190, 427, 183, 942, 426, 310, 403, 411, 299, + 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, + 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, + 447, 195, 196, 197, 650, 232, 236, 242, 244, 250, + 251, 258, 276, 321, 343, 341, 347, 733, 398, 415, + 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, + 378, 272, 281, 725, 763, 327, 359, 200, 418, 379, + 645, 649, 643, 644, 696, 697, 646, 754, 755, 756, + 729, 639, 0, 647, 648, 0, 735, 744, 745, 701, + 170, 184, 277, 759, 348, 240, 444, 425, 421, 625, + 642, 216, 653, 0, 0, 665, 673, 674, 686, 688, + 689, 690, 691, 700, 708, 709, 711, 719, 721, 724, + 726, 731, 741, 762, 172, 173, 185, 193, 203, 215, + 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, + 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, + 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, + 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, + 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, + 249, 413, 435, 0, 286, 699, 706, 288, 234, 252, + 262, 714, 424, 384, 189, 355, 241, 178, 206, 192, + 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, + 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, + 334, 695, 723, 284, 396, 397, 748, 734, 395, 0, + 681, 751, 652, 669, 761, 672, 675, 716, 631, 694, + 318, 666, 0, 656, 627, 662, 628, 654, 683, 224, + 651, 736, 698, 750, 275, 221, 633, 657, 332, 671, + 176, 718, 371, 209, 285, 282, 402, 235, 227, 223, + 208, 259, 291, 330, 389, 324, 757, 279, 705, 0, + 380, 303, 0, 0, 0, 685, 740, 692, 730, 680, + 717, 641, 704, 752, 667, 713, 753, 265, 207, 175, + 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 710, 747, 664, 712, 219, 263, 226, 218, 399, 758, + 739, 0, 191, 749, 687, 715, 764, 626, 707, 0, + 629, 632, 760, 743, 660, 229, 0, 0, 0, 0, + 0, 0, 0, 684, 693, 727, 678, 0, 0, 0, + 0, 0, 0, 1947, 0, 658, 0, 703, 0, 0, + 0, 637, 630, 0, 0, 0, 0, 682, 0, 0, + 0, 640, 0, 659, 728, 0, 624, 247, 634, 304, + 0, 732, 742, 679, 431, 746, 677, 676, 722, 638, + 738, 670, 274, 636, 271, 171, 187, 0, 668, 314, + 354, 360, 737, 655, 663, 210, 661, 358, 328, 416, + 194, 237, 351, 333, 356, 702, 720, 357, 280, 404, + 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, + 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, + 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, + 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, + 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, + 408, 211, 446, 190, 427, 183, 942, 426, 310, 403, + 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, + 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, + 382, 420, 447, 195, 196, 197, 650, 232, 236, 242, + 244, 250, 251, 258, 276, 321, 343, 341, 347, 733, + 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, + 309, 257, 378, 272, 281, 725, 763, 327, 359, 200, + 418, 379, 645, 649, 643, 644, 696, 697, 646, 754, + 755, 756, 729, 639, 0, 647, 648, 0, 735, 744, + 745, 701, 170, 184, 277, 759, 348, 240, 444, 425, + 421, 625, 642, 216, 653, 0, 0, 665, 673, 674, + 686, 688, 689, 690, 691, 700, 708, 709, 711, 719, + 721, 724, 726, 731, 741, 762, 172, 173, 185, 193, + 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, + 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, + 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, + 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, + 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, + 429, 434, 249, 413, 435, 0, 286, 699, 706, 288, + 234, 252, 262, 714, 424, 384, 189, 355, 241, 178, + 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, + 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, + 300, 220, 334, 695, 723, 284, 396, 397, 748, 734, + 395, 0, 681, 751, 652, 669, 761, 672, 675, 716, + 631, 694, 318, 666, 0, 656, 627, 662, 628, 654, + 683, 224, 651, 736, 698, 750, 275, 221, 633, 657, + 332, 671, 176, 718, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 757, 279, + 705, 0, 380, 303, 0, 0, 0, 685, 740, 692, + 730, 680, 717, 641, 704, 752, 667, 713, 753, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 710, 747, 664, 712, 219, 263, 226, 218, + 399, 758, 739, 0, 191, 749, 687, 715, 764, 626, + 707, 0, 629, 632, 760, 743, 660, 229, 0, 0, + 0, 0, 0, 0, 0, 684, 693, 727, 678, 0, + 0, 0, 0, 0, 0, 1781, 0, 658, 0, 703, + 0, 0, 0, 637, 630, 0, 0, 0, 0, 682, + 0, 0, 0, 640, 0, 659, 728, 0, 624, 247, + 634, 304, 0, 732, 742, 679, 431, 746, 677, 676, + 722, 638, 738, 670, 274, 636, 271, 171, 187, 0, + 668, 314, 354, 360, 737, 655, 663, 210, 661, 358, + 328, 416, 194, 237, 351, 333, 356, 702, 720, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 942, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 650, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 733, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 725, 763, 327, + 359, 200, 418, 379, 645, 649, 643, 644, 696, 697, + 646, 754, 755, 756, 729, 639, 0, 647, 648, 0, + 735, 744, 745, 701, 170, 184, 277, 759, 348, 240, + 444, 425, 421, 625, 642, 216, 653, 0, 0, 665, + 673, 674, 686, 688, 689, 690, 691, 700, 708, 709, + 711, 719, 721, 724, 726, 731, 741, 762, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 699, + 706, 288, 234, 252, 262, 714, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 695, 723, 284, 396, 397, + 748, 734, 395, 0, 681, 751, 652, 669, 761, 672, + 675, 716, 631, 694, 318, 666, 0, 656, 627, 662, + 628, 654, 683, 224, 651, 736, 698, 750, 275, 221, + 633, 657, 332, 671, 176, 718, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 757, 279, 705, 0, 380, 303, 0, 0, 0, 685, + 740, 692, 730, 680, 717, 641, 704, 752, 667, 713, + 753, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 710, 747, 664, 712, 219, 263, + 226, 218, 399, 758, 739, 0, 191, 749, 687, 715, + 764, 626, 707, 0, 629, 632, 760, 743, 660, 229, + 0, 0, 0, 0, 0, 0, 0, 684, 693, 727, + 678, 0, 0, 0, 0, 0, 0, 1485, 0, 658, + 0, 703, 0, 0, 0, 637, 630, 0, 0, 0, + 0, 682, 0, 0, 0, 640, 0, 659, 728, 0, + 624, 247, 634, 304, 0, 732, 742, 679, 431, 746, + 677, 676, 722, 638, 738, 670, 274, 636, 271, 171, + 187, 0, 668, 314, 354, 360, 737, 655, 663, 210, + 661, 358, 328, 416, 194, 237, 351, 333, 356, 702, + 720, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 942, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 650, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 733, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 725, + 763, 327, 359, 200, 418, 379, 645, 649, 643, 644, + 696, 697, 646, 754, 755, 756, 729, 639, 0, 647, + 648, 0, 735, 744, 745, 701, 170, 184, 277, 759, + 348, 240, 444, 425, 421, 625, 642, 216, 653, 0, + 0, 665, 673, 674, 686, 688, 689, 690, 691, 700, + 708, 709, 711, 719, 721, 724, 726, 731, 741, 762, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 699, 706, 288, 234, 252, 262, 714, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 695, 723, 284, + 396, 397, 748, 734, 395, 0, 681, 751, 652, 669, + 761, 672, 675, 716, 631, 694, 318, 666, 0, 656, + 627, 662, 628, 654, 683, 224, 651, 736, 698, 750, + 275, 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, - 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, - 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, - 0, 1524, 0, 265, 207, 175, 315, 381, 239, 71, - 0, 0, 167, 168, 169, 535, 534, 537, 538, 539, - 540, 0, 0, 198, 536, 205, 541, 542, 543, 1525, - 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, - 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 525, 526, 0, - 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, - 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 247, 0, 304, 0, 571, 0, 0, - 431, 0, 0, 569, 0, 0, 0, 0, 274, 0, - 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, - 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, - 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, + 389, 324, 757, 279, 705, 0, 380, 303, 0, 0, + 0, 685, 740, 692, 730, 680, 717, 641, 704, 752, + 667, 713, 753, 265, 207, 175, 315, 381, 239, 71, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 710, 747, 664, 712, + 219, 263, 226, 218, 399, 758, 739, 0, 191, 749, + 687, 715, 764, 626, 707, 0, 629, 632, 760, 743, + 660, 229, 0, 0, 0, 0, 0, 0, 0, 684, + 693, 727, 678, 0, 0, 0, 0, 0, 0, 0, + 0, 658, 0, 703, 0, 0, 0, 637, 630, 0, + 0, 0, 0, 682, 0, 0, 0, 640, 0, 659, + 728, 0, 624, 247, 634, 304, 0, 732, 742, 679, + 431, 746, 677, 676, 722, 638, 738, 670, 274, 636, + 271, 171, 187, 0, 668, 314, 354, 360, 737, 655, + 663, 210, 661, 358, 328, 416, 194, 237, 351, 333, + 356, 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, - 427, 183, 0, 426, 310, 403, 411, 299, 290, 182, + 427, 183, 942, 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, - 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, - 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, + 196, 197, 650, 232, 236, 242, 244, 250, 251, 258, + 276, 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, - 281, 0, 0, 327, 359, 200, 418, 379, 559, 570, - 565, 566, 563, 564, 558, 562, 561, 560, 573, 550, - 551, 552, 553, 555, 0, 567, 568, 554, 170, 184, - 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 281, 725, 763, 327, 359, 200, 418, 379, 645, 649, + 643, 644, 696, 697, 646, 754, 755, 756, 729, 639, + 0, 647, 648, 0, 735, 744, 745, 701, 170, 184, + 277, 759, 348, 240, 444, 425, 421, 625, 642, 216, + 653, 0, 0, 665, 673, 674, 686, 688, 689, 690, + 691, 700, 708, 709, 711, 719, 721, 724, 726, 731, + 741, 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, - 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, + 435, 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, - 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, - 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 0, 514, 0, 0, 0, - 224, 513, 0, 0, 0, 275, 221, 0, 0, 332, - 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, - 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 315, 381, 239, 71, 0, 591, 167, 168, 169, - 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, - 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, - 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 525, 526, 0, 0, 0, 0, 572, 0, - 527, 0, 0, 520, 521, 523, 522, 524, 529, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 304, 0, 571, 0, 0, 431, 0, 0, 569, 0, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, - 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, - 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, - 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, - 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, - 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, - 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, - 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, - 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, - 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, - 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, - 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, - 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, - 200, 418, 379, 559, 570, 565, 566, 563, 564, 558, - 562, 561, 560, 573, 550, 551, 552, 553, 555, 0, - 567, 568, 554, 170, 184, 277, 0, 348, 240, 444, - 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, + 201, 370, 390, 391, 392, 394, 300, 220, 334, 695, + 723, 284, 396, 397, 748, 734, 395, 0, 681, 751, + 652, 669, 761, 672, 675, 716, 631, 694, 318, 666, + 0, 656, 627, 662, 628, 654, 683, 224, 651, 736, + 698, 750, 275, 221, 633, 657, 332, 671, 176, 718, + 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, + 291, 330, 389, 324, 757, 279, 705, 0, 380, 303, + 0, 0, 0, 685, 740, 692, 730, 680, 717, 641, + 704, 752, 667, 713, 753, 265, 207, 175, 315, 381, + 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 710, 747, + 664, 712, 219, 263, 226, 218, 399, 758, 739, 0, + 191, 749, 687, 715, 764, 626, 707, 0, 629, 632, + 760, 743, 660, 229, 0, 0, 0, 0, 0, 0, + 0, 684, 693, 727, 678, 0, 0, 0, 0, 0, + 0, 0, 0, 658, 0, 703, 0, 0, 0, 637, + 630, 0, 0, 0, 0, 682, 0, 0, 0, 640, + 0, 659, 728, 0, 624, 247, 634, 304, 0, 732, + 742, 679, 431, 746, 677, 676, 722, 638, 738, 670, + 274, 636, 271, 171, 187, 0, 668, 314, 354, 360, + 737, 655, 663, 210, 661, 358, 328, 416, 194, 237, + 351, 333, 356, 702, 720, 357, 280, 404, 346, 414, + 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, + 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, + 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, + 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, + 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, + 446, 190, 427, 183, 942, 426, 310, 403, 411, 299, + 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, + 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, + 447, 195, 196, 197, 650, 232, 236, 242, 244, 250, + 251, 258, 276, 321, 343, 341, 347, 733, 398, 415, + 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, + 378, 272, 281, 725, 763, 327, 359, 200, 418, 379, + 645, 649, 643, 644, 696, 697, 646, 754, 755, 756, + 729, 639, 0, 647, 648, 0, 735, 744, 745, 701, + 170, 184, 277, 759, 348, 240, 444, 425, 421, 625, + 642, 216, 653, 0, 0, 665, 673, 674, 686, 688, + 689, 690, 691, 700, 708, 709, 711, 719, 721, 724, + 726, 731, 741, 762, 172, 173, 185, 193, 203, 215, + 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, + 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, + 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, + 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, + 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, + 249, 413, 435, 0, 286, 699, 706, 288, 234, 252, + 262, 714, 424, 384, 189, 355, 241, 178, 206, 192, + 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, + 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, + 334, 695, 723, 284, 396, 397, 748, 734, 395, 0, + 681, 751, 652, 669, 761, 672, 675, 716, 631, 694, + 318, 666, 0, 656, 627, 662, 628, 654, 683, 224, + 651, 736, 698, 750, 275, 221, 633, 657, 332, 671, + 176, 718, 371, 209, 285, 282, 402, 235, 227, 223, + 208, 259, 291, 330, 389, 324, 757, 279, 705, 0, + 380, 303, 0, 0, 0, 685, 740, 692, 730, 680, + 717, 641, 704, 752, 667, 713, 753, 265, 207, 175, + 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 710, 747, 664, 712, 219, 263, 226, 218, 399, 758, + 739, 0, 765, 749, 687, 715, 764, 626, 707, 0, + 629, 632, 760, 743, 660, 229, 0, 0, 0, 0, + 0, 0, 0, 684, 693, 727, 678, 0, 0, 0, + 0, 0, 0, 0, 0, 658, 0, 703, 0, 0, + 0, 637, 630, 0, 0, 0, 0, 682, 0, 0, + 0, 640, 0, 659, 728, 0, 624, 247, 634, 304, + 0, 732, 742, 679, 431, 746, 677, 676, 722, 638, + 738, 670, 274, 636, 271, 171, 187, 0, 668, 314, + 354, 360, 737, 655, 663, 210, 661, 358, 328, 416, + 194, 237, 351, 333, 356, 702, 720, 357, 280, 404, + 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, + 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, + 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, + 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, + 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, + 408, 211, 446, 190, 427, 183, 635, 426, 310, 403, + 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, + 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, + 382, 420, 447, 195, 196, 197, 650, 232, 236, 242, + 244, 250, 251, 258, 276, 321, 343, 341, 347, 733, + 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, + 623, 617, 616, 272, 281, 725, 763, 327, 359, 200, + 418, 379, 645, 649, 643, 644, 696, 697, 646, 754, + 755, 756, 729, 639, 0, 647, 648, 0, 735, 744, + 745, 701, 170, 184, 277, 759, 348, 240, 444, 425, + 421, 625, 642, 216, 653, 0, 0, 665, 673, 674, + 686, 688, 689, 690, 691, 700, 708, 709, 711, 719, + 721, 724, 726, 731, 741, 762, 172, 173, 185, 193, + 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, + 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, + 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, + 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, + 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, + 429, 434, 249, 413, 435, 0, 286, 699, 706, 288, + 234, 252, 262, 714, 424, 384, 189, 355, 241, 178, + 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, + 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, + 300, 220, 334, 695, 723, 284, 396, 397, 748, 734, + 395, 0, 681, 751, 652, 669, 761, 672, 675, 716, + 631, 694, 318, 666, 0, 656, 627, 662, 628, 654, + 683, 224, 651, 736, 698, 750, 275, 221, 633, 657, + 332, 671, 176, 718, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 757, 279, + 705, 0, 380, 303, 0, 0, 0, 685, 740, 692, + 730, 680, 717, 641, 704, 752, 667, 713, 753, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 710, 747, 664, 712, 219, 263, 226, 218, + 399, 758, 739, 0, 765, 749, 687, 715, 764, 626, + 707, 0, 629, 632, 760, 743, 660, 229, 0, 0, + 0, 0, 0, 0, 0, 684, 693, 727, 678, 0, + 0, 0, 0, 0, 0, 0, 0, 658, 0, 703, + 0, 0, 0, 637, 630, 0, 0, 0, 0, 682, + 0, 0, 0, 640, 0, 659, 728, 0, 624, 247, + 634, 304, 0, 732, 742, 679, 431, 746, 677, 676, + 722, 638, 738, 670, 274, 636, 271, 171, 187, 0, + 668, 314, 354, 360, 737, 655, 663, 210, 661, 358, + 328, 416, 194, 237, 351, 333, 356, 702, 720, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 1110, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 635, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 650, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 733, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 623, 617, 616, 272, 281, 725, 763, 327, + 359, 200, 418, 379, 645, 649, 643, 644, 696, 697, + 646, 754, 755, 756, 729, 639, 0, 647, 648, 0, + 735, 744, 745, 701, 170, 184, 277, 759, 348, 240, + 444, 425, 421, 625, 642, 216, 653, 0, 0, 665, + 673, 674, 686, 688, 689, 690, 691, 700, 708, 709, + 711, 719, 721, 724, 726, 731, 741, 762, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 699, + 706, 288, 234, 252, 262, 714, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 695, 723, 284, 396, 397, + 748, 734, 395, 0, 681, 751, 652, 669, 761, 672, + 675, 716, 631, 694, 318, 666, 0, 656, 627, 662, + 628, 654, 683, 224, 651, 736, 698, 750, 275, 221, + 633, 657, 332, 671, 176, 718, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 757, 279, 705, 0, 380, 303, 0, 0, 0, 685, + 740, 692, 730, 680, 717, 641, 704, 752, 667, 713, + 753, 265, 207, 175, 315, 381, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 710, 747, 664, 712, 219, 263, + 226, 218, 399, 758, 739, 0, 765, 749, 687, 715, + 764, 626, 707, 0, 629, 632, 760, 743, 660, 229, + 0, 0, 0, 0, 0, 0, 0, 684, 693, 727, + 678, 0, 0, 0, 0, 0, 0, 0, 0, 658, + 0, 703, 0, 0, 0, 637, 630, 0, 0, 0, + 0, 682, 0, 0, 0, 640, 0, 659, 728, 0, + 624, 247, 634, 304, 0, 732, 742, 679, 431, 746, + 677, 676, 722, 638, 738, 670, 274, 636, 271, 171, + 187, 0, 668, 314, 354, 360, 737, 655, 663, 210, + 661, 358, 328, 416, 194, 237, 351, 333, 356, 702, + 720, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 614, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 635, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 650, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 733, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 623, 617, 616, 272, 281, 725, + 763, 327, 359, 200, 418, 379, 645, 649, 643, 644, + 696, 697, 646, 754, 755, 756, 729, 639, 0, 647, + 648, 0, 735, 744, 745, 701, 170, 184, 277, 759, + 348, 240, 444, 425, 421, 625, 642, 216, 653, 0, + 0, 665, 673, 674, 686, 688, 689, 690, 691, 700, + 708, 709, 711, 719, 721, 724, 726, 731, 741, 762, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 699, 706, 288, 234, 252, 262, 714, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 695, 723, 284, + 396, 397, 395, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 1413, 0, 514, + 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, + 0, 1414, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, + 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, + 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, - 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, - 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, - 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, - 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, - 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, - 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, - 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, - 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, + 0, 0, 0, 0, 0, 525, 526, 604, 0, 0, + 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, + 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, + 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 559, 570, 565, 566, + 563, 564, 558, 562, 561, 560, 573, 550, 551, 552, + 553, 555, 0, 567, 568, 554, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 514, 0, 0, 0, 224, 513, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, + 0, 0, 0, 0, 1524, 0, 265, 207, 175, 315, + 381, 239, 71, 0, 0, 167, 168, 169, 535, 534, + 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, + 542, 543, 1525, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, + 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 525, 526, 0, 0, 0, 0, 572, 0, 527, 0, + 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 559, 570, 565, 566, 563, 564, 558, 562, 561, + 560, 573, 550, 551, 552, 553, 555, 0, 567, 568, + 554, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 514, + 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 71, 0, 591, + 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, + 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 525, 526, 0, 0, 0, + 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, + 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, + 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 559, 570, 565, 566, + 563, 564, 558, 562, 561, 560, 573, 550, 551, 552, + 553, 555, 0, 567, 568, 554, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 514, 0, 0, 0, 224, 513, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 71, 0, 0, 167, 168, 169, 535, 534, + 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, + 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, + 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 525, 526, 604, 0, 0, 0, 572, 0, 527, 0, + 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 559, 570, 565, 566, 563, 564, 558, 562, 561, + 560, 573, 550, 551, 552, 553, 555, 0, 567, 568, + 554, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 514, + 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, + 167, 168, 169, 535, 1431, 537, 538, 539, 540, 0, + 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 525, 526, 604, 0, 0, + 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, + 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, + 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 559, 570, 565, 566, + 563, 564, 558, 562, 561, 560, 573, 550, 551, 552, + 553, 555, 0, 567, 568, 554, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 0, 0, 514, 0, 0, 0, 224, 513, + 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, + 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, + 381, 239, 71, 0, 0, 167, 168, 169, 535, 1428, + 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, + 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, + 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 525, 526, 604, 0, 0, 0, 572, 0, 527, 0, + 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, + 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, + 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, + 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, + 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, + 379, 559, 570, 565, 566, 563, 564, 558, 562, 561, + 560, 573, 550, 551, 552, 553, 555, 0, 567, 568, + 554, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, + 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 584, 395, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, + 514, 0, 0, 0, 224, 513, 0, 0, 0, 275, + 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, + 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, + 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, + 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, + 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, + 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, + 0, 0, 0, 511, 528, 0, 556, 0, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 525, 526, 0, 0, + 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, + 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 0, 304, 0, 571, 0, 0, 431, + 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, + 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, + 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, + 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, + 0, 0, 327, 359, 200, 418, 379, 559, 570, 565, + 566, 563, 564, 558, 562, 561, 560, 573, 550, 551, + 552, 553, 555, 0, 567, 568, 554, 170, 184, 277, + 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, + 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, + 318, 0, 0, 0, 0, 514, 0, 0, 0, 224, + 513, 0, 0, 0, 275, 221, 0, 0, 332, 0, + 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, + 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, + 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, + 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, + 315, 381, 239, 71, 0, 0, 167, 168, 169, 535, + 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, + 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 511, 528, + 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 525, 526, 0, 0, 0, 0, 572, 0, 527, + 0, 0, 520, 521, 523, 522, 524, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, + 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, + 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, + 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, + 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, + 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, + 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, + 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, + 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, + 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, + 408, 211, 446, 190, 427, 183, 0, 426, 310, 403, + 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, + 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, + 382, 420, 447, 195, 196, 197, 0, 232, 236, 242, + 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, + 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, + 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, + 418, 379, 559, 570, 565, 566, 563, 564, 558, 562, + 561, 560, 573, 550, 551, 552, 553, 555, 0, 567, + 568, 554, 170, 184, 277, 0, 348, 240, 444, 425, + 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, + 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, + 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, + 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, + 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, + 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, + 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, + 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, + 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, + 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, + 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, + 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, + 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, + 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, + 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, + 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, + 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, + 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, + 0, 0, 0, 0, 528, 0, 556, 0, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 525, 526, 0, 0, + 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, + 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 0, 304, 0, 571, 0, 0, 431, + 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, + 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, + 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, + 2289, 0, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, + 0, 0, 327, 359, 200, 418, 379, 559, 570, 565, + 566, 563, 564, 558, 562, 561, 560, 573, 550, 551, + 552, 553, 555, 0, 567, 568, 554, 170, 184, 277, + 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, + 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, + 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, + 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, + 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, + 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, + 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, + 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, + 315, 381, 239, 71, 0, 591, 167, 168, 169, 535, + 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, + 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 0, 528, + 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 525, 526, 0, 0, 0, 0, 572, 0, 527, + 0, 0, 520, 521, 523, 522, 524, 529, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, + 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, + 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, + 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, + 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, + 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, + 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, + 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, + 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, + 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, + 408, 211, 446, 190, 427, 183, 0, 426, 310, 403, + 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, + 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, + 382, 420, 447, 195, 196, 197, 0, 232, 236, 242, + 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, + 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, + 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, + 418, 379, 559, 570, 565, 566, 563, 564, 558, 562, + 561, 560, 573, 550, 551, 552, 553, 555, 0, 567, + 568, 554, 170, 184, 277, 0, 348, 240, 444, 425, + 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, + 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, + 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, + 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, + 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, + 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, + 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, + 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, + 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, + 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, + 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, + 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, + 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, + 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, + 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, + 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, + 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, + 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, + 0, 0, 0, 0, 528, 0, 556, 0, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 525, 526, 0, 0, + 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, + 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 0, 304, 0, 571, 0, 0, 431, + 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, + 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, + 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, + 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, + 0, 0, 327, 359, 200, 418, 379, 559, 570, 565, + 566, 563, 564, 558, 562, 561, 560, 573, 550, 551, + 552, 553, 555, 0, 567, 568, 554, 170, 184, 277, + 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, + 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, + 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, + 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, + 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, + 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, + 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, + 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 985, 984, 994, + 995, 987, 988, 989, 990, 991, 992, 993, 986, 0, + 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, + 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, + 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, + 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, + 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, + 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, + 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, + 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, + 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, + 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, + 408, 211, 446, 190, 427, 183, 0, 426, 310, 403, + 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, + 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, + 382, 420, 447, 195, 196, 197, 0, 232, 236, 242, + 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, + 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, + 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, + 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 277, 0, 348, 240, 444, 425, + 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, + 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, + 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, + 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, + 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, + 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, + 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, + 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, + 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, + 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, + 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, + 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, + 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 263, 226, 218, 399, 0, 0, 0, 191, 0, 813, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 0, 304, 0, 0, 0, 812, 431, + 0, 0, 0, 0, 0, 809, 810, 274, 775, 271, + 171, 187, 803, 807, 314, 354, 360, 0, 0, 0, + 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, + 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, + 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, + 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, + 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, + 318, 0, 0, 0, 1088, 0, 0, 0, 0, 224, + 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, + 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, + 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, + 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, + 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, + 1090, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, + 0, 0, 191, 0, 0, 974, 975, 973, 0, 0, + 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 976, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, + 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, + 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, + 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, + 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, + 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, + 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, + 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, + 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, + 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, + 408, 211, 446, 190, 427, 183, 0, 426, 310, 403, + 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, + 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, + 382, 420, 447, 195, 196, 197, 0, 232, 236, 242, + 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, + 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, + 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, + 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 277, 0, 348, 240, 444, 425, + 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, + 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, + 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, + 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, + 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, + 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, + 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, + 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, + 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, + 300, 220, 334, 35, 395, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, - 0, 514, 0, 0, 0, 224, 513, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, - 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, - 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, + 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 71, - 0, 0, 167, 168, 169, 535, 534, 537, 538, 539, - 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, + 0, 591, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, - 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 525, 526, 604, - 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, - 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 247, 0, 304, 0, 571, 0, 0, - 431, 0, 0, 569, 0, 0, 0, 0, 274, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, + 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, @@ -2284,9 +2837,9 @@ var yyAct = [...]int{ 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, - 281, 0, 0, 327, 359, 200, 418, 379, 559, 570, - 565, 566, 563, 564, 558, 562, 561, 560, 573, 550, - 551, 552, 553, 555, 0, 567, 568, 554, 170, 184, + 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2301,25 +2854,25 @@ var yyAct = [...]int{ 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 0, 514, 0, 0, 0, - 224, 513, 0, 0, 0, 275, 221, 0, 0, 332, + 0, 318, 0, 0, 0, 1458, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, - 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, + 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, + 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, - 535, 1431, 537, 538, 539, 540, 0, 0, 198, 536, - 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, - 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 525, 526, 604, 0, 0, 0, 572, 0, - 527, 0, 0, 520, 521, 523, 522, 524, 529, 0, + 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, + 0, 1272, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 304, 0, 571, 0, 0, 431, 0, 0, 569, 0, + 304, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, - 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, + 416, 194, 237, 351, 333, 356, 0, 1456, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, @@ -2332,9 +2885,9 @@ var yyAct = [...]int{ 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, - 200, 418, 379, 559, 570, 565, 566, 563, 564, 558, - 562, 561, 560, 573, 550, 551, 552, 553, 555, 0, - 567, 568, 554, 170, 184, 277, 0, 348, 240, 444, + 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, @@ -2349,23 +2902,23 @@ var yyAct = [...]int{ 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, - 0, 514, 0, 0, 0, 224, 513, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, - 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, - 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, - 0, 0, 0, 265, 207, 175, 315, 381, 239, 71, - 0, 0, 167, 168, 169, 535, 1428, 537, 538, 539, - 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, + 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, - 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 525, 526, 604, - 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, - 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 247, 0, 304, 0, 571, 0, 0, - 431, 0, 0, 569, 0, 0, 0, 0, 274, 0, - 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, + 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, + 431, 0, 0, 0, 0, 0, 0, 0, 274, 775, + 271, 171, 187, 773, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, @@ -2379,9 +2932,9 @@ var yyAct = [...]int{ 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, - 281, 0, 0, 327, 359, 200, 418, 379, 559, 570, - 565, 566, 563, 564, 558, 562, 561, 560, 573, 550, - 551, 552, 553, 555, 0, 567, 568, 554, 170, 184, + 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2394,311 +2947,121 @@ var yyAct = [...]int{ 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, - 201, 370, 390, 391, 392, 394, 300, 220, 334, 584, - 395, 284, 396, 397, 0, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 514, 0, 0, - 0, 224, 513, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, - 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, - 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, - 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 525, 526, 0, 0, 0, 0, 572, - 0, 527, 0, 0, 520, 521, 523, 522, 524, 529, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 571, 0, 0, 431, 0, 0, 569, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 559, 570, 565, 566, 563, 564, - 558, 562, 561, 560, 573, 550, 551, 552, 553, 555, - 0, 567, 568, 554, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, + 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, + 0, 318, 0, 0, 0, 1458, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, + 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, + 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, + 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, + 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, + 0, 1272, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 514, 0, 0, 0, 224, 513, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, - 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 71, 0, 0, 167, 168, 169, 535, 534, 537, 538, - 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 511, 528, 0, 556, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 525, 526, - 0, 0, 0, 0, 572, 0, 527, 0, 0, 520, - 521, 523, 522, 524, 529, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 571, 0, - 0, 431, 0, 0, 569, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 559, - 570, 565, 566, 563, 564, 558, 562, 561, 560, 573, - 550, 551, 552, 553, 555, 0, 567, 568, 554, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, - 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, - 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, - 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 525, 526, 0, 0, 0, 0, 572, - 0, 527, 0, 0, 520, 521, 523, 522, 524, 529, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 571, 0, 0, 431, 0, 0, 569, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 2287, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 559, 570, 565, 566, 563, 564, - 558, 562, 561, 560, 573, 550, 551, 552, 553, 555, - 0, 567, 568, 554, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 304, 0, 0, 0, 0, 431, 0, 0, 0, 0, + 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, + 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, + 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, + 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, + 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, + 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, + 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, + 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, + 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, + 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, + 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, + 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, + 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, + 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, + 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, - 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 71, 0, 591, 167, 168, 169, 535, 534, 537, 538, - 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 528, 0, 556, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 525, 526, - 0, 0, 0, 0, 572, 0, 527, 0, 0, 520, - 521, 523, 522, 524, 529, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 571, 0, - 0, 431, 0, 0, 569, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 559, - 570, 565, 566, 563, 564, 558, 562, 561, 560, 573, - 550, 551, 552, 553, 555, 0, 567, 568, 554, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, + 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, - 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, - 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, - 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 528, 0, 556, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, + 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, + 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, + 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, + 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, + 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, + 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, + 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, + 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, + 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, + 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, + 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, + 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 525, 526, 0, 0, 0, 0, 572, - 0, 527, 0, 0, 520, 521, 523, 522, 524, 529, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 571, 0, 0, 431, 0, 0, 569, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 559, 570, 565, 566, 563, 564, - 558, 562, 561, 560, 573, 550, 551, 552, 553, 555, - 0, 567, 568, 554, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, + 0, 591, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 985, 984, 994, 995, 987, 988, - 989, 990, 991, 992, 993, 986, 0, 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, + 431, 0, 0, 0, 2163, 0, 0, 0, 274, 0, + 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, + 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, + 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, + 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, + 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, + 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, + 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, + 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, + 427, 183, 0, 426, 310, 403, 411, 299, 290, 182, + 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, + 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, + 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, + 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, + 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, + 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, + 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, + 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, + 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, + 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, + 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, + 201, 370, 390, 391, 392, 394, 300, 220, 334, 35, + 395, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 813, 0, 0, 0, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 812, 431, 0, 0, 0, - 0, 0, 809, 810, 274, 775, 271, 171, 187, 803, - 807, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, @@ -2729,1451 +3092,1118 @@ var yyAct = [...]int{ 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 1088, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 1090, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 0, 1477, 0, + 0, 1478, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, - 0, 0, 974, 975, 973, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 976, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 35, 395, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, - 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, - 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, - 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 315, 381, 239, 71, 0, 591, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, - 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, - 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, - 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, - 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, - 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, - 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, - 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, - 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, - 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, - 212, 317, 407, 408, 211, 446, 190, 427, 183, 0, - 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, - 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, - 0, 177, 0, 382, 420, 447, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, - 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, - 438, 439, 442, 309, 257, 378, 272, 281, 0, 0, - 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 277, 0, 348, - 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, - 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, - 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, - 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, - 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, - 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, - 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, - 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, - 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, - 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, - 0, 0, 1458, 0, 0, 0, 0, 224, 0, 0, - 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, - 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, - 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, - 239, 0, 0, 0, 167, 168, 169, 0, 1272, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, - 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, - 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, - 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, - 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, - 351, 333, 356, 0, 1456, 357, 280, 404, 346, 414, - 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, - 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, - 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, - 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, - 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, - 446, 190, 427, 183, 0, 426, 310, 403, 411, 299, - 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, - 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, - 447, 195, 196, 197, 0, 232, 236, 242, 244, 250, - 251, 258, 276, 321, 343, 341, 347, 0, 398, 415, - 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, - 378, 272, 281, 0, 0, 327, 359, 200, 418, 379, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, - 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, - 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, - 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, - 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, - 249, 413, 435, 0, 286, 0, 0, 288, 234, 252, - 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, - 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, - 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, - 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, - 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, - 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, - 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, - 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, - 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 769, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, - 0, 0, 0, 0, 0, 274, 775, 271, 171, 187, - 773, 0, 314, 354, 360, 0, 0, 0, 210, 0, - 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, - 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, - 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, - 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, - 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, - 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, - 212, 317, 407, 408, 211, 446, 190, 427, 183, 0, - 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, - 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, - 0, 177, 0, 382, 420, 447, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, - 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, - 438, 439, 442, 309, 257, 378, 272, 281, 0, 0, - 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 277, 0, 348, - 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, - 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, - 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, - 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, - 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, - 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, - 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, - 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, - 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, - 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, - 0, 0, 1458, 0, 0, 0, 0, 224, 0, 0, - 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, - 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, - 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, - 239, 0, 0, 0, 167, 168, 169, 0, 1272, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, - 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, - 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, - 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, - 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, - 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, - 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, - 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, - 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, - 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, - 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, - 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, - 446, 190, 427, 183, 0, 426, 310, 403, 411, 299, - 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, - 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, - 447, 195, 196, 197, 0, 232, 236, 242, 244, 250, - 251, 258, 276, 321, 343, 341, 347, 0, 398, 415, - 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, - 378, 272, 281, 0, 0, 327, 359, 200, 418, 379, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, - 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, - 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, - 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, - 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, - 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, - 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, - 249, 413, 435, 0, 286, 0, 0, 288, 234, 252, - 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, - 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, - 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, - 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, - 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, - 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, - 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, - 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, - 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 265, 207, 175, 315, 381, 239, 0, 0, 591, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, - 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, - 0, 2163, 0, 0, 0, 274, 0, 271, 171, 187, - 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, - 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, - 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, - 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, - 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, - 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, - 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, - 212, 317, 407, 408, 211, 446, 190, 427, 183, 0, - 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, - 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, - 0, 177, 0, 382, 420, 447, 195, 196, 197, 0, - 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, - 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, - 438, 439, 442, 309, 257, 378, 272, 281, 0, 0, - 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 170, 184, 277, 0, 348, - 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, - 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, - 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, - 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, - 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, - 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, - 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, - 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, - 391, 392, 394, 300, 220, 334, 35, 395, 284, 396, - 397, 0, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 71, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 1477, 0, 0, 1478, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 1121, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 1120, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 2256, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 1121, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 1120, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 2163, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 2257, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 1272, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 2163, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 1090, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 1272, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 1363, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 1244, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 1090, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 1242, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 1363, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 1244, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 1240, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 1242, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 1238, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 1240, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 1236, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 1238, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 1236, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 1232, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 1230, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 1232, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 1230, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 1228, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 1228, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 1203, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 1203, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 1103, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 1103, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 0, 0, 1094, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 1094, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 950, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 950, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 502, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 501, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, - 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 502, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 0, 450, 0, 431, 0, 0, 0, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 501, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, - 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, - 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 450, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, + 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, - 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, + 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, + 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, + 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 0, 0, 284, - 396, 397, + 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, + 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 0, 0, 284, 396, 397, } var yyPact = [...]int{ - 343, -1000, -346, 1729, -1000, -1000, -1000, -1000, -1000, -1000, + 3040, -1000, -349, 1720, -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, 1709, 1363, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 676, 1418, -1000, 1624, 4049, -1000, 29765, 455, - -1000, 29290, 454, 2213, 29765, -1000, 128, -1000, 112, 29765, - 124, 28815, -1000, -1000, -232, 13138, 1581, 16, 10, 29765, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1393, - 1676, 1685, 1707, 1180, 1657, -1000, 11237, 11237, 387, 387, - 387, 9332, 284, -1000, 17414, 29765, 29765, 250, -1000, 1624, - -1000, -1000, 260, -1000, 288, 1342, -1000, 1338, -1000, 537, - 549, 275, 348, 332, 274, 273, 270, 268, 264, 263, - 253, 240, 286, -1000, 604, 604, -127, -133, 1606, 371, - 371, 371, 397, 1597, 1596, -1000, 625, -1000, 604, 604, - 246, 604, 604, 604, 604, 210, 206, 604, 604, 604, - 604, 604, 604, 604, 604, 604, 604, 604, 604, 604, - 604, 604, 237, 1624, 201, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1702, 1348, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 685, 1403, -1000, 1621, 2838, -1000, 30068, 404, + -1000, 29593, 403, 2262, 30068, -1000, 120, -1000, 102, 30068, + 113, 29118, -1000, -1000, -233, 13441, 1576, -3, -4, 30068, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1363, + 1663, 1674, 1700, 1158, 1735, -1000, 11540, 11540, 349, 349, + 349, 9635, 240, -1000, 17717, 30068, 30068, 190, -1000, 1621, + -1000, -1000, 264, -1000, 253, 1318, -1000, 1317, -1000, 450, + 410, 239, 327, 325, 238, 237, 236, 235, 234, 233, + 230, 228, 273, -1000, 556, 556, -130, -132, 2334, 324, + 324, 324, 368, 1596, 1595, -1000, 546, -1000, 556, 556, + 256, 556, 556, 556, 556, 212, 211, 556, 556, 556, + 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, + 556, 556, 186, 1621, 197, -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, @@ -4201,26 +4231,26 @@ 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, -1000, 29765, 158, - 29765, -1000, 517, 29765, 682, 682, 30, 682, 682, 682, - 682, 122, 498, 2, -1000, 119, 196, 116, 190, 728, - 231, 95, -1000, -1000, 184, 728, 1078, 96, -1000, 682, - 7404, 7404, 7404, -1000, 1620, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 394, -1000, -1000, -1000, -1000, 29765, 28340, - 312, 631, -1000, -1000, -1000, 11, -1000, -1000, 1290, 948, - -1000, 13138, 2346, 1344, 1344, -1000, -1000, 487, -1000, -1000, - 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 30068, 138, + 30068, -1000, 490, 30068, 649, 649, 67, 649, 649, 649, + 649, 108, 481, -6, -1000, 105, 205, 96, 189, 661, + 176, 78, -1000, -1000, 193, 661, 1035, 86, -1000, 649, + 7707, 7707, 7707, -1000, 1607, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 367, -1000, -1000, -1000, -1000, 30068, 28643, + 272, 590, -1000, -1000, -1000, 11, -1000, -1000, 1206, 879, + -1000, 13441, 3126, 1341, 1341, -1000, -1000, 445, -1000, -1000, + 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1344, 516, -1000, 12663, 1344, 1344, - 1344, 1344, 1344, 1344, 1344, 1344, 13138, 1344, 1344, 1344, - 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, 1344, - 1344, 1344, 1344, 1344, -1000, -1000, -1000, 29765, -1000, 1344, - 135, 1709, -1000, 1363, -1000, -1000, -1000, 1655, 13138, 13138, - 1709, -1000, 1517, 11237, -1000, -1000, 1611, -1000, -1000, -1000, - -1000, -1000, 779, 1728, -1000, 15988, 512, 1726, 27865, -1000, - 21215, 27390, 1325, 8850, -15, -1000, -1000, -1000, 630, 19790, + -1000, -1000, -1000, -1000, 1341, 476, -1000, 12966, 1341, 1341, + 1341, 1341, 1341, 1341, 1341, 1341, 13441, 1341, 1341, 1341, + 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, + 1341, 1341, 1341, 1341, -1000, -1000, -1000, 30068, -1000, 1341, + 147, 1702, -1000, 1348, -1000, -1000, -1000, 1614, 13441, 13441, + 1702, -1000, 1518, 11540, -1000, -1000, 1679, -1000, -1000, -1000, + -1000, -1000, 716, 1719, -1000, 16291, 469, 1718, 28168, -1000, + 21518, 27693, 1316, 9153, -25, -1000, -1000, -1000, 570, 20093, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1620, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1607, -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, @@ -4233,200 +4263,200 @@ 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, 1706, 1275, 29765, - -1000, -1000, 2616, 1037, -1000, 1417, -1000, 1252, -1000, 1394, - 1400, 445, 1037, 435, 433, 431, -1000, -81, -1000, -1000, - -1000, -1000, -1000, 604, 604, 269, 4049, 4525, -1000, -1000, - -1000, 26915, 1410, 1037, -1000, 1407, -1000, 720, 402, 483, - 483, 1037, -1000, -1000, 29765, 1037, 713, 708, 29765, 29765, - -1000, 26440, -1000, 25965, 25490, 1002, 29765, 25015, 24540, 24065, - 23590, 23115, -1000, 1486, -1000, 1375, -1000, -1000, -1000, 29765, - 29765, 29765, 236, -1000, -1000, 29765, 1037, -1000, -1000, 997, - 995, 604, 604, 987, 1075, 1074, 1073, 604, 604, 971, - 1070, 21690, 194, 957, 947, 931, 952, 1057, 129, 943, - 926, 928, 29765, 1406, 29765, -1000, 180, 616, 283, 610, - 1624, 1572, 1323, 393, 437, 1037, 378, 378, -1000, 7886, - -1000, -1000, 1054, 13138, -1000, 754, 728, 728, -1000, -1000, - -1000, -1000, -1000, -1000, 682, 29765, 754, -1000, -1000, -1000, - 728, 682, 29765, 682, 682, 682, 682, 728, 728, 728, - 682, 29765, 29765, 29765, 29765, 29765, 29765, 29765, 29765, 29765, - 7404, 7404, 7404, 563, 682, -256, -1000, 1458, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 123, -1000, -1000, -1000, - -1000, -1000, 1729, -1000, -1000, -1000, -83, 1322, 22640, -1000, - -264, -275, -277, -278, -1000, -1000, -1000, -284, -287, -1000, - -1000, -1000, 13138, 13138, 13138, 13138, 1142, 586, 14563, 891, - 704, 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, 14563, - 14563, 14563, 14563, 14563, 14563, 14563, 721, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1037, -1000, 1745, 1181, 1181, - 532, 532, 532, 532, 532, 532, 532, 532, 532, 15038, - 9812, 7886, 1180, 1250, 1709, 11237, 11237, 13138, 13138, 12187, - 11712, 11237, 1609, 646, 948, 29765, -1000, 1086, -1000, -1000, - 14088, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 29765, 29765, 11237, 11237, 11237, 11237, 11237, - -1000, 1320, -1000, -157, 16939, 13138, 1052, 1685, 1180, 1611, - 1650, 1739, 552, 944, 1318, -1000, 875, 1685, 19315, 1370, - -1000, 1611, -1000, -1000, -1000, 29765, -1000, -1000, 22165, -1000, - -1000, 6922, 29765, 239, 29765, -1000, 1308, 1594, -1000, -1000, - -1000, 1672, 18840, 29765, 1296, 1241, -1000, -1000, 511, 8368, - -15, -1000, 8368, 1305, -1000, -29, -33, 10287, 525, -1000, - -1000, -1000, -335, 1606, 15513, 1195, 1588, 54, -1000, -1000, - -1000, 1394, -1000, 1394, 1394, 1394, 1394, 236, 236, 236, - 236, -1000, -1000, -1000, -1000, -1000, 1405, 1404, -1000, 1394, - 1394, 1394, 1394, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1699, 1210, 30068, + -1000, -1000, 2890, 1022, -1000, 1402, -1000, 1204, -1000, 1375, + 1410, 400, 1022, 389, 387, 386, -1000, -79, -1000, -1000, + -1000, -1000, -1000, 556, 556, 266, 2838, 4443, -1000, -1000, + -1000, 27218, 1401, 1022, -1000, 1399, -1000, 680, 391, 433, + 433, 1022, -1000, -1000, 30068, 1022, 667, 663, 30068, 30068, + -1000, 26743, -1000, 26268, 25793, 945, 30068, 25318, 24843, 24368, + 23893, 23418, -1000, 1457, -1000, 1374, -1000, -1000, -1000, 30068, + 30068, 30068, 204, -1000, -1000, 30068, 1022, -1000, -1000, 944, + 941, 556, 556, 929, 1034, 1033, 1030, 556, 556, 926, + 1023, 21993, 177, 922, 898, 883, 924, 1016, 129, 831, + 830, 868, 30068, 1398, 30068, -1000, 179, 503, 279, 568, + 1621, 1570, 1315, 366, 399, 1022, 340, 340, -1000, 8189, + -1000, -1000, 1013, 13441, -1000, 665, 661, 661, -1000, -1000, + -1000, -1000, -1000, -1000, 649, 30068, 665, -1000, -1000, -1000, + 661, 649, 30068, 649, 649, 649, 649, 661, 661, 661, + 649, 30068, 30068, 30068, 30068, 30068, 30068, 30068, 30068, 30068, + 7707, 7707, 7707, 528, 649, -267, -1000, 1465, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 111, -1000, -1000, -1000, + -1000, -1000, 1720, -1000, -1000, -1000, -92, 1312, 22943, -1000, + -268, -269, -272, -275, -1000, -1000, -1000, -277, -281, -1000, + -1000, -1000, 13441, 13441, 13441, 13441, 908, 539, 14866, 771, + 550, 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, + 14866, 14866, 14866, 14866, 14866, 14866, 612, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1022, -1000, 1739, 1271, 1271, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 15341, + 10115, 8189, 1158, 1200, 1702, 11540, 11540, 13441, 13441, 12490, + 12015, 11540, 1608, 598, 879, 30068, -1000, 1044, -1000, -1000, + 14391, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 30068, 30068, 11540, 11540, 11540, 11540, 11540, + -1000, 1302, -1000, -155, 17242, 13441, 1012, 1674, 1158, 1679, + 1626, 1733, 525, 722, 1295, -1000, 889, 1674, 19618, 1241, + -1000, 1679, -1000, -1000, -1000, 30068, -1000, -1000, 22468, -1000, + -1000, 7225, 30068, 226, 30068, -1000, 1305, 1499, -1000, -1000, + -1000, 1646, 19143, 30068, 1321, 1228, -1000, -1000, 467, 8671, + -25, -1000, 8671, 1253, -1000, -23, -60, 10590, 457, -1000, + -1000, -1000, -329, 2334, 15816, 1142, 1587, 36, -1000, -1000, + -1000, 1375, -1000, 1375, 1375, 1375, 1375, 204, 204, 204, + 204, -1000, -1000, -1000, -1000, -1000, 1396, 1395, -1000, 1375, + 1375, 1375, 1375, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1403, 1403, 1403, 1395, 1395, 347, -1000, 13138, 159, 29765, - 1666, 925, 180, 383, 1432, 1037, 1037, 1037, 383, -1000, - 1046, 963, -1000, 1317, -1000, -1000, 1700, -1000, -1000, 593, - 744, 737, 417, 29765, 149, 238, -1000, 363, -1000, 29765, - 1037, 698, 483, 1037, -1000, 1037, -1000, -1000, -1000, -1000, - 509, -1000, -1000, 1037, 1315, -1000, 1300, 813, 729, 762, - 727, 1315, -1000, -1000, -108, 1315, -1000, 1315, -1000, 1315, - -1000, 1315, -1000, 1315, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 602, 29765, 149, 721, -1000, 392, -1000, -1000, - 721, 721, -1000, -1000, -1000, -1000, 1050, 1049, -1000, -1000, + 1393, 1393, 1393, 1376, 1376, 319, -1000, 13441, 163, 30068, + 1634, 867, 179, 344, 1432, 1022, 1022, 1022, 344, -1000, + 1031, 1005, -1000, 1291, -1000, -1000, 1697, -1000, -1000, 599, + 701, 700, 471, 30068, 154, 218, -1000, 297, -1000, 30068, + 1022, 659, 433, 1022, -1000, 1022, -1000, -1000, -1000, -1000, + 466, -1000, -1000, 1022, 1290, -1000, 1307, 769, 699, 732, + 651, 1290, -1000, -1000, -109, 1290, -1000, 1290, -1000, 1290, + -1000, 1290, -1000, 1290, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 532, 30068, 154, 612, -1000, 362, -1000, -1000, + 612, 612, -1000, -1000, -1000, -1000, 1010, 1009, -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, -321, 29765, -1000, 173, 609, - 223, 266, 232, 29765, 163, 1679, 208, 204, 29765, 29765, - 378, 1457, 29765, 1658, 29765, -1000, -1000, -1000, -1000, 948, - 29765, -1000, -1000, 682, 682, -1000, -1000, 29765, 682, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 682, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -327, 30068, -1000, 172, 564, + 216, 265, 231, 30068, 137, 1666, 188, 207, 30068, 30068, + 340, 1463, 30068, 1637, 30068, -1000, -1000, -1000, -1000, 879, + 30068, -1000, -1000, 649, 649, -1000, -1000, 30068, 649, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 649, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1047, -1000, -1000, 29765, 29765, -1000, -1000, -1000, - -1000, -1000, 70, -40, 222, -1000, -1000, -1000, -1000, 1681, - -1000, 948, 586, 787, 598, -1000, -1000, 929, -1000, -1000, - 2452, -1000, -1000, -1000, -1000, 891, 14563, 14563, 14563, 648, - 2452, 1661, 738, 2811, 532, 765, 765, 544, 544, 544, - 544, 544, 714, 714, -1000, -1000, -1000, -1000, 1086, -1000, - -1000, -1000, 1086, 11237, 11237, 1314, 1344, 500, -1000, 1393, - -1000, -1000, 1685, 1174, 1174, 909, 1012, 659, 1724, 1174, - 655, 1723, 1174, 1174, 11237, -1000, -1000, 680, -1000, 13138, - 1086, -1000, 1204, 1310, 1307, 1174, 1086, 1086, 1174, 1174, - 29765, -1000, -231, -1000, -67, 484, 1344, -1000, 21690, 1086, - 1290, -1000, 1655, -1000, -1000, 1573, -1000, 1514, 13138, 13138, - 13138, -1000, -1000, -1000, 1655, 1687, -1000, 1536, 1535, 1718, - 11237, 21215, 1611, -1000, -1000, -1000, 492, 1718, 1284, 1344, - -1000, 29765, 21215, 21215, 21215, 21215, 21215, -1000, 1492, 1483, - -1000, 1496, 1485, 1505, 29765, -1000, 1246, 1180, 18840, 239, - 1297, 21215, 29765, -1000, -1000, 21215, 29765, 6440, -1000, 1305, - -15, -39, -1000, -1000, -1000, -1000, 948, -1000, 923, 880, - 252, -1000, -1000, -1000, -1000, 2572, -1000, 366, -1000, -1000, - -1000, -1000, 548, 1671, 1586, 51, -1000, -1000, -1000, 236, - 236, -1000, -1000, 525, 763, 525, 525, 525, 1031, 1031, - -1000, -1000, -1000, -1000, -1000, 912, -1000, -1000, -1000, 910, - -1000, -1000, 1058, 1426, 159, -1000, -1000, 604, 1030, 1591, - 29765, -1000, -1000, 1193, 173, 29765, 651, 1454, -1000, 1432, - 1432, 1432, 29765, -1000, -1000, -1000, -1000, 285, 29765, 1223, - -1000, 139, -1000, 1176, 29765, -1000, 1219, 1402, 1037, 1037, - -1000, -1000, 7886, -1000, 29765, 1344, -1000, -1000, -1000, -1000, - 426, 1623, 1622, 149, 139, 525, 1037, -1000, -1000, -1000, - -1000, -1000, -324, 1192, 415, 151, 221, 29765, 29765, 29765, - 29765, 29765, 466, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 195, 390, -1000, 29765, 29765, 444, -1000, -1000, -1000, 728, - -1000, -1000, 728, -1000, -1000, -1000, -1000, -1000, -1000, 1618, - -43, -298, -1000, -295, -1000, -1000, -1000, -1000, 648, 2452, - 1273, -1000, 14563, 14563, -1000, -1000, 1174, 1174, 11237, 7886, - 1709, 1655, -1000, -1000, 396, 721, 396, 14563, 14563, -1000, - 14563, 14563, -1000, -97, 1228, 617, -1000, 13138, 986, -1000, - -1000, 14563, 14563, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 419, 403, 398, 29765, -1000, -1000, -1000, 933, - 1028, 1507, 948, 948, -1000, -1000, 29765, -1000, -1000, -1000, - -1000, 1715, 13138, -1000, 1303, -1000, 5958, 1685, 1453, 29765, - 1344, 1729, 16464, 29765, 1279, -1000, 607, 1594, 1427, 1451, - 1396, -1000, -1000, -1000, -1000, 1470, -1000, 1469, -1000, -1000, - -1000, -1000, -1000, 1180, 1718, 21215, 1272, -1000, 1272, -1000, - 480, -1000, -1000, -1000, -57, -64, -1000, -1000, -1000, 1401, - 1371, -327, 13138, 1399, 1606, -1000, -1000, -1000, -1000, 771, - 14563, 1733, -1000, 1026, -1000, -1000, 692, 669, -1000, 29765, - 1398, -1000, -1000, -1000, 525, 525, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1168, -1000, 1166, 1302, 1164, 107, -1000, - 1374, 1605, 604, 604, -1000, 905, -1000, 1037, -1000, -1000, - 401, -1000, 1656, 29765, 1447, 1446, 1445, -1000, 1699, 1292, - -1000, 29765, -1000, -1000, 29765, -1000, 1525, 159, 29765, -1000, - -1000, -1000, -1000, 238, 29765, -1000, 1181, 139, -1000, -1000, - -1000, -1000, -1000, -1000, 29765, 165, -1000, 1397, 1082, -1000, - 1428, -1000, -1000, -1000, -1000, 134, 216, -1000, 29765, 425, - 1426, 29765, -1000, -1000, -1000, 682, 682, -1000, 1603, -1000, - 1037, -1000, 14563, 2452, 2452, -1000, -1000, 1086, -1000, 1685, - -1000, 1086, 1394, 1394, -1000, 1394, 1395, -1000, 1394, 105, - 1394, 98, 1086, 1086, 2657, 2564, 2480, 1837, 1344, -90, - -1000, 948, 13138, 1780, 1011, 1344, 1344, 1344, 1143, 1025, - 236, -1000, -1000, -1000, 1713, 1698, 948, -1000, -1000, -1000, - 1642, 1293, 1248, -1000, -1000, 10762, 1147, 1520, 476, 1143, - 1709, 29765, 13138, -1000, -1000, 13138, 1386, -1000, 13138, -1000, - -1000, -1000, 1709, 1709, 1272, -1000, -1000, 541, -1000, -1000, - -1000, 13138, 1383, 595, -334, 904, 967, 29765, -1000, -1000, - 2452, -36, -1000, -1000, -1000, 1376, 14563, -1000, -1000, 236, - 1020, 236, 898, -1000, 890, -1000, -1000, -173, -1000, -1000, - 1367, 1482, -1000, -1000, 29765, -1000, -1000, 29765, 29765, 29765, - 29765, 29765, -1000, -1000, 235, -1000, 1138, 1136, -1000, -128, - -1000, -1000, 1368, -1000, -1000, -1000, 1129, -1000, -109, 1037, - 29765, 29765, 29765, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 2452, -1000, 1655, -1000, -1000, 399, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 14563, 14563, 14563, 14563, 14563, - 1685, 1016, 948, 14563, 14563, 18364, 20740, 20740, 17889, 236, - 42, -1000, 13138, 13138, 664, -1000, 1344, -1000, 1313, 29765, - 1344, 29765, -1000, 1685, -1000, 948, 948, 29765, 948, 1685, - -1000, 959, 29765, 831, 238, 1695, -1000, -1000, 1134, -1000, - 29765, 1294, 525, -1000, 525, 1105, 1091, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1368, -1000, -1000, -1000, 1292, - -1000, 224, 249, -1000, 238, -1000, -135, -136, 1665, 29765, - -1000, -1000, 7886, -1000, -1000, 1360, 1431, -1000, -1000, -1000, - -1000, 1204, 1204, 1204, 1204, 133, 1086, -1000, 1204, 1204, - 1125, -1000, -1000, -1000, 1125, 1125, 484, -225, -1000, 1578, - 1562, 948, 1290, 1732, -1000, 1344, 1729, 473, 1248, -1000, - -1000, 1123, -1000, -327, 1119, -1000, -1000, 1287, -329, -1000, - 1114, -1000, -1000, -1000, -1000, -1000, 1660, 1344, -1000, -1000, - -1000, -1000, 1363, 1110, 1269, -1000, 587, 29765, 29765, -1000, - -1000, -1000, -1000, 1086, 192, -112, -1000, -1000, -1000, 20265, - -1000, -1000, -1000, -1000, 42, 297, -1000, 1567, 1562, -1000, - 1693, 1570, 1692, -1000, 29765, 1248, 29765, -1000, -334, -327, - 781, 1440, 580, 1363, 13613, 233, -1000, 7886, 5476, 1100, - -1000, -1000, 1504, -106, -121, -1000, -1000, 1546, 1552, 1552, - 1567, -1000, 1691, 1689, -1000, 1008, 1688, 964, 1211, -1000, - 238, -334, 1295, 1371, 1434, -1000, 1722, -1000, -1000, -1000, - 766, 949, -1000, -1000, -1000, 233, 1204, 1086, -1000, -9, - -1000, -1000, -1000, -1000, -1000, 1428, -1000, 1497, -1000, 1544, - 884, -1000, -1000, -1000, -1000, 945, 930, -1000, 881, -1000, - -1000, 238, 13138, 1205, -1000, 1731, 543, 543, -1000, -1000, - -1000, -1000, -1000, 320, -1000, -1000, -109, -110, -1000, 873, - -1000, -1000, -1000, -1000, -1000, -1000, 956, 29765, -1000, -1000, - -1000, 309, 940, -1000, 166, -1000, -118, -1000, -1000, -342, - 1094, -1000, -1000, -1000, -1000, -123, -1000, 802, -342, -1000, - -1000, -1000, + -1000, -1000, 999, -1000, -1000, 30068, 30068, -1000, -1000, -1000, + -1000, -1000, 42, -30, 210, -1000, -1000, -1000, -1000, 1671, + -1000, 879, 539, 606, 558, -1000, -1000, 778, -1000, -1000, + 2170, -1000, -1000, -1000, -1000, 771, 14866, 14866, 14866, 589, + 2170, 1908, 1014, 1056, 500, 645, 645, 520, 520, 520, + 520, 520, 835, 835, -1000, -1000, -1000, -1000, 1044, -1000, + -1000, -1000, 1044, 11540, 11540, 1288, 1341, 464, -1000, 1363, + -1000, -1000, 1674, 1174, 1174, 734, 886, 607, 1717, 1174, + 596, 1715, 1174, 1174, 11540, -1000, -1000, 652, -1000, 13441, + 1044, -1000, 805, 1269, 1268, 1174, 1044, 1044, 1174, 1174, + 30068, -1000, -232, -1000, -51, 482, 1341, -1000, 21993, 1044, + 1206, -1000, 1614, -1000, -1000, 1574, -1000, 1515, 13441, 13441, + 13441, -1000, -1000, -1000, 1614, 1687, -1000, 1528, 1527, 1708, + 11540, 21518, 1679, -1000, -1000, -1000, 439, 1708, 1300, 1341, + -1000, 30068, 21518, 21518, 21518, 21518, 21518, -1000, 1495, 1494, + -1000, 1480, 1478, 1484, 30068, -1000, 1184, 1158, 19143, 226, + 1308, 21518, 30068, -1000, -1000, 21518, 30068, 6743, -1000, 1253, + -25, -35, -1000, -1000, -1000, -1000, 879, -1000, 937, 943, + 225, -1000, -1000, -1000, -1000, 1606, -1000, 303, -1000, -1000, + -1000, -1000, 477, 1642, 1584, 18, -1000, -1000, -1000, 204, + 204, -1000, -1000, 457, 712, 457, 457, 457, 998, 998, + -1000, -1000, -1000, -1000, -1000, 864, -1000, -1000, -1000, 829, + -1000, -1000, 948, 1448, 163, -1000, -1000, 556, 992, 1589, + 30068, -1000, -1000, 1139, 172, 30068, 620, 1462, -1000, 1432, + 1432, 1432, 30068, -1000, -1000, -1000, -1000, 285, 30068, 1182, + -1000, 151, -1000, 1105, 30068, -1000, 1180, 1392, 1022, 1022, + -1000, -1000, 8189, -1000, 30068, 1341, -1000, -1000, -1000, -1000, + 376, 1620, 1618, 154, 151, 457, 1022, -1000, -1000, -1000, + -1000, -1000, -323, 1176, 372, 158, 178, 30068, 30068, 30068, + 30068, 30068, 430, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 203, 354, -1000, 30068, 30068, 395, -1000, -1000, -1000, 661, + -1000, -1000, 661, -1000, -1000, -1000, -1000, -1000, -1000, 1605, + -40, -298, -1000, -294, -1000, -1000, -1000, -1000, 589, 2170, + 1270, -1000, 14866, 14866, -1000, -1000, 1174, 1174, 11540, 8189, + 1702, 1614, -1000, -1000, 277, 612, 277, 14866, 14866, -1000, + 14866, 14866, -1000, -96, 1289, 593, -1000, 13441, 786, -1000, + -1000, 14866, 14866, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 384, 380, 378, 30068, -1000, -1000, -1000, 921, + 989, 1511, 879, 879, -1000, -1000, 30068, -1000, -1000, -1000, + -1000, 1706, 13441, -1000, 1248, -1000, 6261, 1674, 1454, 30068, + 1341, 1720, 16767, 30068, 1294, -1000, 557, 1499, 1415, 1453, + 1397, -1000, -1000, -1000, -1000, 1482, -1000, 1467, -1000, -1000, + -1000, -1000, -1000, 1158, 1708, 21518, 1172, -1000, 1172, -1000, + 426, -1000, -1000, -1000, -45, -41, -1000, -1000, -1000, 1391, + 1372, -331, 13441, 1387, 2334, -1000, -1000, -1000, -1000, 724, + 14866, 1728, -1000, 988, -1000, -1000, 656, 627, -1000, 30068, + 1384, -1000, -1000, -1000, 457, 457, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1168, -1000, 1166, 1229, 1150, 106, -1000, + 1409, 1602, 556, 556, -1000, 827, -1000, 1022, -1000, -1000, + 370, -1000, 1632, 30068, 1451, 1445, 1440, -1000, 1695, 1225, + -1000, 30068, -1000, -1000, 30068, -1000, 1523, 163, 30068, -1000, + -1000, -1000, -1000, 218, 30068, -1000, 1271, 151, -1000, -1000, + -1000, -1000, -1000, -1000, 30068, 173, -1000, 1378, 947, -1000, + 1417, -1000, -1000, -1000, -1000, 117, 215, -1000, 30068, 375, + 1448, 30068, -1000, -1000, -1000, 649, 649, -1000, 1601, -1000, + 1022, -1000, 14866, 2170, 2170, -1000, -1000, 1044, -1000, 1674, + -1000, 1044, 1375, 1375, -1000, 1375, 1376, -1000, 1375, 93, + 1375, 72, 1044, 1044, 1835, 1783, 1536, 1296, 1341, -91, + -1000, 879, 13441, 1203, 1135, 1341, 1341, 1341, 1136, 983, + 204, -1000, -1000, -1000, 1704, 1694, 879, -1000, -1000, -1000, + 1624, 1284, 1148, -1000, -1000, 11065, 1138, 1521, 424, 1136, + 1702, 30068, 13441, -1000, -1000, 13441, 1370, -1000, 13441, -1000, + -1000, -1000, 1702, 1702, 1172, -1000, -1000, 514, -1000, -1000, + -1000, 13441, 1362, 555, -339, 826, 742, 30068, -1000, -1000, + 2170, -63, -1000, -1000, -1000, 1349, 14866, -1000, -1000, 204, + 980, 204, 821, -1000, 813, -1000, -1000, -175, -1000, -1000, + 1368, 1427, -1000, -1000, 30068, -1000, -1000, 30068, 30068, 30068, + 30068, 30068, -1000, -1000, 223, -1000, 1129, 1125, -1000, -133, + -1000, -1000, 1344, -1000, -1000, -1000, 1095, -1000, -110, 1022, + 30068, 30068, 30068, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 2170, -1000, 1614, -1000, -1000, 292, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 14866, 14866, 14866, 14866, 14866, + 1674, 978, 879, 14866, 14866, 18667, 21043, 21043, 18192, 204, + 24, -1000, 13441, 13441, 610, -1000, 1341, -1000, 1311, 30068, + 1341, 30068, -1000, 1674, -1000, 879, 879, 30068, 879, 1674, + -1000, 729, 30068, 774, 1336, 1693, -1000, -1000, 1100, -1000, + 30068, 903, 457, -1000, 457, 1091, 1055, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1344, -1000, -1000, -1000, 1225, + -1000, 221, 248, -1000, 218, -1000, -140, -141, 1641, 30068, + -1000, -1000, 8189, -1000, -1000, 1343, 1431, -1000, -1000, -1000, + -1000, 805, 805, 805, 805, 195, 1044, -1000, 805, 805, + 1098, -1000, -1000, -1000, 1098, 1098, 482, -226, -1000, 1575, + 1562, 879, 1206, 1726, -1000, 1341, 1720, 422, 1148, -1000, + -1000, 1094, -1000, -331, 1090, -1000, -1000, 218, -334, -1000, + 1066, -1000, -1000, -1000, -1000, -1000, 1639, 1341, -1000, -1000, + -1000, -1000, 1348, 1063, 1187, -1000, 551, 30068, 30068, -1000, + -1000, -1000, -1000, 1044, 182, -116, -1000, -1000, -1000, 20568, + -1000, -1000, -1000, -1000, 24, 270, -1000, 1568, 1562, -1000, + 1692, 1554, 1691, -1000, 30068, 1148, 30068, -1000, -339, -331, + 1061, 783, 1437, 579, 1348, 13916, 232, -1000, 8189, 5779, + 1059, -1000, -1000, 1501, -101, -127, -1000, -1000, 1539, 1546, + 1546, 1568, -1000, 1689, 1688, -1000, 977, 1676, 972, 1057, + -1000, 1336, -339, -1000, 1340, 1372, 1434, -1000, 1713, -1000, + -1000, -1000, 711, 970, -1000, -1000, -1000, 232, 805, 1044, + -1000, -27, -1000, -1000, -1000, -1000, -1000, 1417, -1000, 1500, + -1000, 1532, 887, -1000, -1000, -1000, -1000, 963, 962, -1000, + 949, -1000, -1000, 1336, 13441, 1297, -1000, 1723, 456, 456, + -1000, -1000, -1000, -1000, -1000, 306, -1000, -1000, -110, -114, + -1000, 808, -1000, -1000, -1000, -1000, -1000, -1000, 719, 30068, + -1000, -1000, -1000, 296, 785, -1000, 175, -1000, -122, -1000, + -1000, -341, 1051, -1000, -1000, -1000, -1000, -131, -1000, 731, + -341, -1000, -1000, -1000, } var yyPgo = [...]int{ - 0, 17, 2094, 12, 1, 11, 2091, 2088, 37, 103, - 102, 2085, 2084, 2075, 2063, 142, 140, 139, 2062, 2061, - 2060, 2059, 2058, 2056, 2054, 2053, 2051, 2049, 2048, 2046, - 73, 165, 56, 59, 152, 2037, 2036, 43, 2035, 2033, - 2032, 136, 130, 636, 2031, 132, 65, 2030, 2029, 2028, - 2026, 2024, 2017, 2016, 2013, 1995, 1994, 1992, 1991, 1989, - 1971, 211, 1970, 1968, 8, 1967, 45, 1965, 1964, 1963, - 1962, 1961, 14, 1960, 1958, 106, 1956, 1955, 1954, 122, - 1953, 1951, 71, 169, 72, 89, 1950, 1949, 83, 137, - 1948, 78, 113, 1947, 1945, 3, 1942, 66, 110, 82, - 1940, 48, 1939, 1937, 67, 1929, 1928, 1913, 91, 1912, - 1911, 3436, 1908, 84, 100, 20, 64, 1907, 1905, 1904, - 1900, 47, 1014, 1899, 1898, 33, 1897, 1896, 146, 1895, - 105, 32, 1894, 23, 21, 28, 1891, 104, 1887, 76, - 41, 1886, 107, 1885, 1884, 1883, 1882, 53, 1881, 90, - 119, 101, 1878, 1877, 1876, 15, 19, 1874, 1873, 1872, - 1871, 1870, 1869, 13, 1867, 10, 1866, 35, 1864, 2, - 27, 29, 88, 114, 34, 16, 1862, 125, 1860, 50, - 127, 79, 128, 1858, 1856, 1855, 954, 166, 1854, 1851, - 36, 1850, 111, 112, 1848, 174, 1845, 1837, 74, 1332, - 1730, 24, 123, 1836, 1835, 2684, 68, 94, 39, 1834, - 85, 1833, 1830, 1829, 145, 135, 61, 895, 63, 1828, - 1824, 1821, 1820, 1818, 1817, 1816, 131, 93, 31, 126, - 40, 1812, 1795, 1794, 86, 51, 1793, 121, 120, 80, - 150, 1792, 129, 124, 75, 1791, 46, 1789, 1788, 1785, - 1784, 58, 1782, 1780, 1779, 1775, 115, 108, 81, 44, - 1774, 57, 77, 118, 117, 42, 6, 30, 143, 18, - 1773, 4, 0, 1770, 7, 133, 163, 109, 1769, 1768, - 5, 1767, 9, 1765, 1764, 99, 1763, 1762, 1759, 26, - 22, 25, 1756, 1755, 3361, 1739, 134, 1752, 138, + 0, 22, 2035, 12, 1, 10, 2034, 2033, 26, 103, + 104, 2032, 2030, 2028, 2026, 144, 139, 137, 2016, 2013, + 2011, 2010, 2008, 2005, 2003, 2001, 2000, 1999, 1997, 1993, + 73, 140, 59, 57, 143, 1992, 1991, 44, 1987, 1986, + 1984, 136, 134, 593, 1983, 132, 74, 1968, 1966, 1962, + 1961, 1960, 1958, 1957, 1956, 1955, 1954, 1953, 1951, 1950, + 1949, 209, 1945, 1942, 7, 1940, 41, 1939, 1937, 1936, + 1934, 1918, 9, 1912, 1911, 107, 1909, 1908, 1907, 118, + 1906, 1905, 71, 106, 69, 87, 1904, 1903, 89, 131, + 1902, 78, 112, 1900, 1899, 525, 1898, 61, 99, 109, + 1897, 67, 1896, 1894, 68, 1890, 1887, 1886, 90, 1885, + 1884, 3432, 1883, 80, 101, 20, 50, 1882, 1881, 1878, + 1877, 48, 2938, 1874, 1873, 35, 1871, 1870, 149, 1869, + 105, 34, 1868, 21, 19, 32, 1867, 116, 1866, 40, + 45, 1864, 102, 1863, 1862, 1860, 1858, 43, 1857, 91, + 117, 53, 1856, 1854, 1853, 13, 15, 1851, 1850, 1849, + 1848, 1845, 1843, 14, 1842, 11, 1841, 47, 1840, 2, + 24, 39, 88, 63, 37, 16, 1839, 128, 1836, 36, + 127, 79, 121, 1835, 1834, 1833, 984, 160, 1830, 1826, + 51, 1824, 110, 113, 1823, 168, 1822, 1821, 84, 1332, + 1872, 38, 126, 1820, 1819, 2680, 75, 98, 28, 1818, + 72, 1816, 1812, 1811, 147, 152, 64, 872, 66, 1809, + 1808, 1807, 1806, 1804, 1802, 1799, 93, 29, 31, 119, + 42, 1795, 1794, 1793, 86, 65, 1792, 123, 122, 82, + 124, 1791, 129, 125, 85, 1788, 46, 1784, 1782, 1780, + 1779, 81, 1777, 1775, 1774, 1773, 120, 108, 83, 56, + 1772, 58, 76, 115, 114, 18, 5, 30, 141, 17, + 1769, 3, 0, 1768, 6, 135, 166, 111, 1767, 1765, + 4, 1764, 8, 1762, 1761, 94, 1759, 1755, 1752, 25, + 33, 23, 1751, 1749, 3664, 2344, 133, 1746, 142, } //line sql.y:5478 @@ -5079,7 +5109,7 @@ var yyR2 = [...]int{ 3, 2, 2, 2, 4, 4, 2, 11, 3, 6, 8, 6, 6, 6, 13, 8, 6, 10, 5, 5, 5, 5, 0, 10, 11, 7, 0, 8, 9, 0, - 1, 0, 1, 0, 3, 1, 1, 3, 4, 0, + 3, 0, 1, 0, 3, 1, 1, 3, 4, 0, 2, 0, 2, 5, 3, 7, 4, 4, 4, 4, 3, 3, 3, 7, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 0, 2, 2, 1, 3, @@ -5402,25 +5432,25 @@ var yyChk = [...]int{ -272, -122, -122, -122, -122, -122, -151, 89, -122, -122, -171, -295, -200, 177, -171, -171, -208, -227, -156, -161, -187, -95, -131, 113, -135, 55, -8, -200, -133, -200, - -151, -169, -151, 84, -169, 90, -266, -265, 17, 84, + -151, -169, -151, 84, -169, 90, -266, 82, 17, 84, -169, 84, -228, -228, 84, 84, -170, 208, -290, -267, 358, 358, 23, -169, -270, -269, -201, 82, 75, -295, -295, -295, -295, -77, 135, 354, -295, -295, -295, 83, -295, -295, -295, -115, -159, 441, -164, 44, -162, -163, 45, -160, 46, 54, 10, -133, 157, 84, -3, 84, - -1, 84, -154, 23, -294, -8, 84, 83, 125, -169, - -111, -295, 352, 71, 355, -200, 177, -156, 49, 268, - -166, -165, 53, 45, -163, 17, 47, 17, -175, -200, - -72, -3, -272, 113, -281, -282, 74, -291, -288, 99, - 117, 96, -289, 108, 109, -8, -122, 204, -64, 354, - -269, -250, -201, 89, 90, 84, 60, 353, 356, -157, - 51, -155, 50, -155, -165, 17, 17, 89, 17, 89, - -266, -72, 82, -5, -282, 74, 11, 10, 99, 89, - -64, -295, -295, -65, 219, 445, -274, 60, -158, 52, - 74, 102, 89, 89, 89, -266, -95, 82, -280, 190, - 185, 188, 30, -280, 182, -271, 354, 74, 102, 84, - -169, 184, 29, 99, 221, 355, -4, 486, 84, 356, - 90, -4, + -265, -1, 84, -154, 23, -294, -8, 84, 83, 125, + -169, -111, -295, 352, 71, 355, -200, 177, -156, 49, + 268, -166, -165, 53, 45, -163, 17, 47, 17, -175, + -200, -72, -3, 84, -272, 113, -281, -282, 74, -291, + -288, 99, 117, 96, -289, 108, 109, -8, -122, 204, + -64, 354, -269, -250, -201, 89, 90, 84, 60, 353, + 356, -157, 51, -155, 50, -155, -165, 17, 17, 89, + 17, 89, -266, -72, 82, -5, -282, 74, 11, 10, + 99, 89, -64, -295, -295, -65, 219, 445, -274, 60, + -158, 52, 74, 102, 89, 89, 89, -266, -95, 82, + -280, 190, 185, 188, 30, -280, 182, -271, 354, 74, + 102, 84, -169, 184, 29, 99, 221, 355, -4, 486, + 84, 356, 90, -4, } var yyDef = [...]int{ @@ -5642,25 +5672,25 @@ var yyDef = [...]int{ 826, 0, 0, 0, 0, 816, 0, 840, 0, 0, 0, 690, 650, 651, 0, 0, 688, 914, 913, 926, 939, 863, 861, 0, 953, 0, 945, 948, 944, 947, - 57, 0, 58, 419, 0, 414, 405, 410, 411, 418, + 57, 0, 58, 419, 0, 414, 405, 0, 411, 418, 0, 149, 197, 198, 212, 215, 0, 0, 264, 449, 446, 447, 0, 0, 97, 98, 0, 0, 0, 781, 783, 782, 784, 0, 0, 0, 786, 804, 805, 0, 689, 691, 692, 645, 932, 0, 925, 0, -2, 934, 0, 0, 0, 940, 0, 943, 0, 661, 406, 419, - 0, 265, 269, 0, 0, 896, 647, 0, 0, 0, - 397, 785, 0, 0, 0, 652, 653, 919, 917, 917, - 927, 928, 0, 0, 935, 0, 0, 0, 951, 949, - 409, 406, 0, 413, 266, 267, 0, 136, 150, 151, - 0, 0, 154, 147, 148, 896, 0, 0, 387, 898, - 99, 100, 332, 333, 334, 93, 817, 0, 820, 922, - 0, 915, 918, 916, 929, 0, 0, 936, 0, 938, - 403, 409, 0, 0, 268, 0, 0, 0, 152, 153, - 89, 450, 451, 0, 899, 900, 96, 818, 911, 0, - 920, 921, 930, 931, 937, 404, 0, 0, 272, 274, - 275, 0, 0, 273, 0, 394, 0, 923, 924, 421, - 0, 276, 277, 278, 897, 0, 407, 0, 421, 819, - 422, 408, + 0, 0, 265, 269, 0, 0, 896, 647, 0, 0, + 0, 397, 785, 0, 0, 0, 652, 653, 919, 917, + 917, 927, 928, 0, 0, 935, 0, 0, 0, 951, + 949, 409, 406, 410, 0, 413, 266, 267, 0, 136, + 150, 151, 0, 0, 154, 147, 148, 896, 0, 0, + 387, 898, 99, 100, 332, 333, 334, 93, 817, 0, + 820, 922, 0, 915, 918, 916, 929, 0, 0, 936, + 0, 938, 403, 409, 0, 0, 268, 0, 0, 0, + 152, 153, 89, 450, 451, 0, 899, 900, 96, 818, + 911, 0, 920, 921, 930, 931, 937, 404, 0, 0, + 272, 274, 275, 0, 0, 273, 0, 394, 0, 923, + 924, 421, 0, 276, 277, 278, 897, 0, 407, 0, + 421, 819, 422, 408, } var yyTok1 = [...]int{ @@ -8967,11 +8997,11 @@ yydefault: } yyVAL.union = yyLOCAL case 410: - yyDollar = yyS[yypt-1 : yypt+1] + yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL []*PartitionDefinition //line sql.y:2356 { - yyLOCAL = yyDollar[1].partDefsUnion() + yyLOCAL = yyDollar[2].partDefsUnion() } yyVAL.union = yyLOCAL case 411: diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 8d5d2e35d98..8965325300e 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -2352,9 +2352,9 @@ partition_definition_opt: { $$ = nil } -| partition_definitions +| '(' partition_definitions ')' { - $$ = $1 + $$ = $2 } linear_opt: From 268666af61950b92bf434189caa1166f287607c6 Mon Sep 17 00:00:00 2001 From: Thirumalai-Shaktivel Date: Fri, 27 Aug 2021 12:44:24 +0530 Subject: [PATCH 07/11] Add tests Signed-off-by: Thirumalai-Shaktivel --- go/vt/sqlparser/ast_format.go | 2 +- go/vt/sqlparser/ast_format_fast.go | 2 +- go/vt/sqlparser/parse_test.go | 23 ++++++++++++++++++++++- 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index 2db0670ae14..d909a878cb7 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -474,7 +474,7 @@ func (node *SubPartition) Format(buf *TrackedBuffer) { } } if node.SubPartitions != "" { - buf.astPrintf(node, "subpartitions %s", node.SubPartitions) + buf.astPrintf(node, " subpartitions %s", node.SubPartitions) } } diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index 5a2a05fcd3c..ae06368e921 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -661,7 +661,7 @@ func (node *SubPartition) formatFast(buf *TrackedBuffer) { } } if node.SubPartitions != "" { - buf.WriteString("subpartitions ") + buf.WriteString(" subpartitions ") buf.WriteString(node.SubPartitions) } } diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 3a697469a75..b5462198892 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1240,9 +1240,30 @@ var ( }, { // Tests unicode character § input: "create table invalid_enum_value_name (\n\there_be_enum enum('$§!') default null\n)", + }, { + input: "create table t (id int) partition by hash (id) partitions 3", + output: "create table t (\n\tid int\n) partition by hash (id) partitions 3", + }, { + input: "create table t (hired date) partition by linear hash (year(hired)) partitions 4", + output: "create table t (\n\thired date\n) partition by linear hash (year(hired)) partitions 4", }, { input: "create table t (id int) partition by key (id) partitions 2", - output: "create table t (\n\tid int\n)", + output: "create table t (\n\tid int\n) partition by key (id) partitions 2", + }, { + input: "create table t (id int) partition by key algorithm = 1 (id)", + output: "create table t (\n\tid int\n) partition by key algorithm = 1 (id)", + }, { + input: "create table t (id int not null) partition by linear key (id) partitions 5", + output: "create table t (\n\tid int not null\n) partition by linear key (id) partitions 5", + }, { + input: "create table t (id int) partition by list (id)", + output: "create table t (\n\tid int\n) partition by list (id)", // TODO PARTITION BY LIST(id) (PARTITION p0 VALUES IN (1, 4, 7)) + }, { + input: "create table t (renewal date) partition by range columns (renewal) (partition p0 values less than ('2021-08-27'))", + output: "create table t (\n\trenewal date\n) partition by range columns (renewal) (partition p0 values less than ('2021-08-27'))", + }, { + input: "create table t (pur date) partition by range (year(pur)) subpartition by hash (to_days(pur)) subpartitions 2 (partition p0 values less than (2015), partition p2 values less than (2018))", + output: "create table t (\n\tpur date\n) partition by range (year(pur)) subpartition by hash (to_days(pur)) subpartitions 2 (partition p0 values less than (2015), partition p2 values less than (2018))", }, { input: "alter vschema create vindex hash_vdx using hash", }, { From 78df2b701fd2998a6ca9934ad10fb7f61ffed8b0 Mon Sep 17 00:00:00 2001 From: Thirumalai-Shaktivel Date: Wed, 1 Sep 2021 20:24:26 +0530 Subject: [PATCH 08/11] Move PartitionOption inside TableSpec Rule Signed-off-by: Thirumalai-Shaktivel --- go/vt/sqlparser/ast.go | 24 +- go/vt/sqlparser/ast_clone.go | 2 +- go/vt/sqlparser/ast_equals.go | 6 +- go/vt/sqlparser/ast_format.go | 6 +- go/vt/sqlparser/ast_format_fast.go | 8 +- go/vt/sqlparser/ast_rewrite.go | 10 +- go/vt/sqlparser/ast_visit.go | 6 +- go/vt/sqlparser/cached_size.go | 8 +- go/vt/sqlparser/sql.go | 3573 ++++++++++++++-------------- go/vt/sqlparser/sql.y | 6 +- 10 files changed, 1805 insertions(+), 1844 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 2e407e9b6f3..de2ce53cc8c 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -464,14 +464,13 @@ type ( // CreateTable represents a CREATE TABLE statement. CreateTable struct { - Temp bool - Table TableName - IfNotExists bool - TableSpec *TableSpec - OptLike *OptLike - Comments Comments - FullyParsed bool - PartitionOption *PartitionOption + Temp bool + Table TableName + IfNotExists bool + TableSpec *TableSpec + OptLike *OptLike + Comments Comments + FullyParsed bool } // CreateView represents a CREATE VIEW query @@ -1509,10 +1508,11 @@ type TableOptions []*TableOption // TableSpec describes the structure of a table from a CREATE TABLE statement type TableSpec struct { - Columns []*ColumnDefinition - Indexes []*IndexDefinition - Constraints []*ConstraintDefinition - Options TableOptions + Columns []*ColumnDefinition + Indexes []*IndexDefinition + Constraints []*ConstraintDefinition + Options TableOptions + PartitionOption *PartitionOption } // ColumnDefinition describes a column in a CREATE TABLE statement diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index e5e12b6fa46..3397dbce376 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -697,7 +697,6 @@ func CloneRefOfCreateTable(n *CreateTable) *CreateTable { out.TableSpec = CloneRefOfTableSpec(n.TableSpec) out.OptLike = CloneRefOfOptLike(n.OptLike) out.Comments = CloneComments(n.Comments) - out.PartitionOption = CloneRefOfPartitionOption(n.PartitionOption) return &out } @@ -1616,6 +1615,7 @@ func CloneRefOfTableSpec(n *TableSpec) *TableSpec { out.Indexes = CloneSliceOfRefOfIndexDefinition(n.Indexes) out.Constraints = CloneSliceOfRefOfConstraintDefinition(n.Constraints) out.Options = CloneTableOptions(n.Options) + out.PartitionOption = CloneRefOfPartitionOption(n.PartitionOption) return &out } diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index 8d1e1053f9e..d8e51551894 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -1389,8 +1389,7 @@ func EqualsRefOfCreateTable(a, b *CreateTable) bool { EqualsTableName(a.Table, b.Table) && EqualsRefOfTableSpec(a.TableSpec, b.TableSpec) && EqualsRefOfOptLike(a.OptLike, b.OptLike) && - EqualsComments(a.Comments, b.Comments) && - EqualsRefOfPartitionOption(a.PartitionOption, b.PartitionOption) + EqualsComments(a.Comments, b.Comments) } // EqualsRefOfCreateView does deep equals between the two objects. @@ -2507,7 +2506,8 @@ func EqualsRefOfTableSpec(a, b *TableSpec) bool { return EqualsSliceOfRefOfColumnDefinition(a.Columns, b.Columns) && EqualsSliceOfRefOfIndexDefinition(a.Indexes, b.Indexes) && EqualsSliceOfRefOfConstraintDefinition(a.Constraints, b.Constraints) && - EqualsTableOptions(a.Options, b.Options) + EqualsTableOptions(a.Options, b.Options) && + EqualsRefOfPartitionOption(a.PartitionOption, b.PartitionOption) } // EqualsRefOfTablespaceOperation does deep equals between the two objects. diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index d909a878cb7..542902b0a16 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -519,6 +519,9 @@ func (ts *TableSpec) Format(buf *TrackedBuffer) { buf.astPrintf(ts, " (%v)", opt.Tables) } } + if ts.PartitionOption != nil { + buf.astPrintf(ts, " %v", ts.PartitionOption) + } } // Format formats the node. @@ -1520,9 +1523,6 @@ func (node *CreateTable) Format(buf *TrackedBuffer) { if node.TableSpec != nil { buf.astPrintf(node, " %v", node.TableSpec) } - if node.PartitionOption != nil { - buf.astPrintf(node, " %v", node.PartitionOption) - } } // Format formats the node. diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index ae06368e921..a7c7ddfb452 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -719,6 +719,10 @@ func (ts *TableSpec) formatFast(buf *TrackedBuffer) { buf.WriteByte(')') } } + if ts.PartitionOption != nil { + buf.WriteByte(' ') + ts.PartitionOption.formatFast(buf) + } } // formatFast formats the node. @@ -2003,10 +2007,6 @@ func (node *CreateTable) formatFast(buf *TrackedBuffer) { buf.WriteByte(' ') node.TableSpec.formatFast(buf) } - if node.PartitionOption != nil { - buf.WriteByte(' ') - node.PartitionOption.formatFast(buf) - } } // formatFast formats the node. diff --git a/go/vt/sqlparser/ast_rewrite.go b/go/vt/sqlparser/ast_rewrite.go index bdf5d35ed3b..9814545182d 100644 --- a/go/vt/sqlparser/ast_rewrite.go +++ b/go/vt/sqlparser/ast_rewrite.go @@ -1428,11 +1428,6 @@ func (a *application) rewriteRefOfCreateTable(parent SQLNode, node *CreateTable, }) { return false } - if !a.rewriteRefOfPartitionOption(node, node.PartitionOption, func(newNode, parent SQLNode) { - parent.(*CreateTable).PartitionOption = newNode.(*PartitionOption) - }) { - return false - } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent @@ -4188,6 +4183,11 @@ func (a *application) rewriteRefOfTableSpec(parent SQLNode, node *TableSpec, rep }) { return false } + if !a.rewriteRefOfPartitionOption(node, node.PartitionOption, func(newNode, parent SQLNode) { + parent.(*TableSpec).PartitionOption = newNode.(*PartitionOption) + }) { + return false + } if a.post != nil { a.cur.replacer = replacer a.cur.parent = parent diff --git a/go/vt/sqlparser/ast_visit.go b/go/vt/sqlparser/ast_visit.go index d2f7b79b945..fc6664556fa 100644 --- a/go/vt/sqlparser/ast_visit.go +++ b/go/vt/sqlparser/ast_visit.go @@ -830,9 +830,6 @@ func VisitRefOfCreateTable(in *CreateTable, f Visit) error { if err := VisitComments(in.Comments, f); err != nil { return err } - if err := VisitRefOfPartitionOption(in.PartitionOption, f); err != nil { - return err - } return nil } func VisitRefOfCreateView(in *CreateView, f Visit) error { @@ -2083,6 +2080,9 @@ func VisitRefOfTableSpec(in *TableSpec, f Visit) error { if err := VisitTableOptions(in.Options, f); err != nil { return err } + if err := VisitRefOfPartitionOption(in.PartitionOption, f); err != nil { + return err + } return nil } func VisitRefOfTablespaceOperation(in *TablespaceOperation, f Visit) error { diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index 4642687db9a..2133ed956f3 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -654,7 +654,7 @@ func (cached *CreateTable) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(104) + size += int64(89) } // field Table vitess.io/vitess/go/vt/sqlparser.TableName size += cached.Table.CachedSize(false) @@ -669,8 +669,6 @@ func (cached *CreateTable) CachedSize(alloc bool) int64 { size += int64(len(elem)) } } - // field PartitionOption *vitess.io/vitess/go/vt/sqlparser.PartitionOption - size += cached.PartitionOption.CachedSize(true) return size } func (cached *CreateView) CachedSize(alloc bool) int64 { @@ -2164,7 +2162,7 @@ func (cached *TableSpec) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(96) + size += int64(104) } // field Columns []*vitess.io/vitess/go/vt/sqlparser.ColumnDefinition { @@ -2194,6 +2192,8 @@ func (cached *TableSpec) CachedSize(alloc bool) int64 { size += elem.CachedSize(true) } } + // field PartitionOption *vitess.io/vitess/go/vt/sqlparser.PartitionOption + size += cached.PartitionOption.CachedSize(true) return size } func (cached *TablespaceOperation) CachedSize(alloc bool) int64 { diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index e12c3840274..fba39064ea8 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1075,1133 +1075,1047 @@ var yyExca = [...]int{ -1, 765, 125, 1166, -2, 968, - -1, 803, + -1, 801, 182, 38, 187, 38, -2, 255, - -1, 880, + -1, 878, 1, 388, 487, 388, -2, 118, - -1, 1123, + -1, 1120, 111, 118, 150, 118, 265, 118, -2, 285, - -1, 1126, + -1, 1123, 23, 137, -2, 139, - -1, 1199, + -1, 1196, 112, 244, 177, 244, -2, 335, - -1, 1208, + -1, 1205, 182, 39, 187, 39, -2, 256, - -1, 1418, + -1, 1415, 157, 1003, -2, 997, - -1, 1509, + -1, 1506, 75, 66, 83, 66, -2, 70, - -1, 1535, + -1, 1527, 111, 118, 150, 118, 265, 118, -2, 286, - -1, 1972, + -1, 1961, 5, 864, 18, 864, 20, 864, 31, 864, 84, 864, -2, 643, - -1, 2228, + -1, 2206, 47, 939, -2, 933, } const yyPrivate = 57344 -const yyLast = 30555 +const yyLast = 30170 var yyAct = [...]int{ - 574, 2358, 1849, 2141, 2340, 2186, 2038, 2290, 2277, 2104, - 1982, 2262, 1984, 2303, 2229, 2168, 1754, 2205, 2027, 546, - 1721, 1952, 1529, 1797, 2138, 1804, 83, 3, 1455, 1553, - 2028, 1527, 1953, 1805, 1023, 532, 1755, 1949, 941, 2160, - 517, 1892, 1568, 1077, 1829, 1853, 833, 1070, 515, 165, - 1741, 891, 165, 587, 480, 165, 1588, 1831, 1573, 1830, - 496, 1506, 165, 1224, 1404, 770, 1911, 1964, 1104, 1412, - 165, 1681, 920, 123, 1601, 1315, 1587, 81, 1634, 1114, - 1107, 137, 798, 1575, 621, 1206, 1823, 1080, 1488, 596, - 1495, 1075, 496, 1180, 1062, 496, 165, 496, 1457, 1097, - 508, 1100, 1438, 33, 581, 1381, 1415, 959, 777, 1098, - 1312, 801, 1298, 1585, 774, 804, 519, 1471, 79, 1564, - 778, 1113, 799, 800, 811, 1213, 1087, 1111, 1554, 1320, - 618, 876, 140, 1511, 100, 1175, 101, 8, 78, 7, - 1198, 106, 1036, 107, 6, 2359, 2105, 503, 1531, 1039, - 1985, 1632, 939, 1531, 1532, 1533, 1872, 1871, 1284, 1899, - 2170, 1900, 960, 167, 168, 169, 786, 1370, 781, 1452, - 1453, 1369, 835, 1368, 603, 607, 1367, 771, 102, 1366, - 1365, 1354, 454, 582, 1358, 849, 850, 108, 853, 854, - 855, 856, 2326, 960, 859, 860, 861, 862, 863, 864, - 865, 866, 867, 868, 869, 870, 871, 872, 873, 84, - 838, 504, 506, 1719, 507, 2225, 2117, 2201, 2200, 615, - 622, 2136, 814, 2007, 2137, 2361, 837, 970, 836, 2300, - 1671, 793, 102, 2357, 792, 815, 791, 80, 1580, 2255, - 2348, 839, 840, 841, 2142, 1620, 86, 87, 88, 89, - 90, 91, 2299, 2254, 97, 1928, 2071, 162, 970, 1578, - 449, 846, 1189, 1879, 879, 1522, 1523, 1878, 559, 851, - 565, 566, 563, 564, 1720, 562, 561, 560, 35, 1978, - 580, 72, 39, 40, 1898, 567, 568, 1979, 1980, 1785, - 161, 1454, 1784, 1512, 1669, 1786, 102, 1115, 937, 1116, - 1521, 1848, 785, 910, 787, 578, 577, 1792, 790, 1813, - 885, 886, 915, 916, 103, 483, 125, 966, 898, 2259, - 958, 911, 2062, 899, 904, 1547, 1546, 145, 2040, 875, - 2214, 985, 984, 994, 995, 987, 988, 989, 990, 991, - 992, 993, 986, 2060, 1577, 996, 494, 927, 966, 929, - 1359, 1360, 1361, 1357, 71, 498, 790, 874, 135, 492, - 790, 898, 782, 124, 788, 1274, 899, 483, 1304, 784, - 783, 1645, 1643, 1644, 897, 483, 896, 167, 168, 169, - 1066, 142, 1854, 143, 1602, 926, 928, 1875, 1200, 1201, - 134, 133, 160, 2034, 1635, 936, 2356, 912, 917, 1299, - 905, 2035, 1640, 483, 2041, 919, 852, 1275, 918, 1276, - 933, 1647, 881, 1648, 794, 1649, 788, 1887, 2327, 878, - 1650, 913, 914, 1604, 858, 857, 2042, 1637, 1912, 2197, - 2131, 1489, 822, 831, 820, 830, 1639, 1809, 829, 828, - 827, 826, 825, 824, 819, 767, 129, 1202, 136, 165, - 1199, 165, 130, 131, 165, 1641, 795, 146, 1512, 965, - 962, 963, 964, 969, 971, 968, 151, 967, 1192, 484, - 789, 1914, 931, 924, 961, 832, 1638, 925, 1891, 775, - 2353, 496, 496, 496, 807, 775, 2344, 930, 2346, 773, - 965, 962, 963, 964, 969, 971, 968, 2006, 967, 496, - 496, 775, 806, 1212, 877, 961, 1800, 894, 923, 900, - 901, 902, 903, 1305, 908, 1877, 1313, 1579, 789, 1793, - 1586, 484, 789, 813, 609, 605, 932, 952, 1888, 484, - 823, 938, 821, 1916, 2253, 1920, 1626, 1915, 2260, 1913, - 1309, 946, 842, 2014, 1918, 1874, 813, 1864, 934, 2215, - 1937, 1801, 1936, 1917, 1722, 1724, 1935, 484, 1187, 1186, - 1894, 1185, 1622, 813, 1670, 1893, 1919, 1921, 1211, 848, - 1310, 1183, 138, 1803, 453, 448, 1798, 1303, 165, 2236, - 1894, 2091, 812, 1977, 813, 1893, 2291, 816, 806, 1807, - 1808, 509, 1886, 99, 1799, 1885, 1746, 817, 1286, 1285, - 1287, 1288, 1289, 1008, 1009, 812, 496, 1528, 1700, 165, - 1068, 165, 165, 73, 496, 818, 887, 895, 884, 1697, - 496, 1689, 812, 1612, 1517, 1067, 1091, 132, 806, 809, - 810, 1006, 775, 1021, 943, 944, 803, 807, 955, 126, - 953, 2342, 127, 812, 2343, 954, 2341, 889, 816, 806, - 996, 1024, 618, 907, 1806, 802, 1781, 1723, 817, 813, - 1467, 1352, 893, 1300, 909, 1301, 1809, 986, 1302, 1388, - 996, 976, 1096, 921, 973, 2283, 2249, 1321, 2281, 1063, - 2103, 834, 1962, 1386, 1387, 1385, 1081, 2285, 2286, 1636, - 976, 1807, 1808, 1306, 1621, 1117, 2282, 167, 168, 169, - 1079, 1406, 1038, 1041, 1043, 1045, 1046, 1048, 1050, 1051, - 1042, 1044, 813, 1047, 1049, 956, 1052, 1930, 812, 1439, - 847, 975, 973, 2173, 1060, 985, 984, 994, 995, 987, - 988, 989, 990, 991, 992, 993, 986, 1842, 976, 996, - 1994, 1469, 622, 139, 144, 141, 147, 148, 149, 150, - 152, 153, 154, 155, 1008, 1009, 1806, 880, 1619, 156, - 157, 158, 159, 1407, 1802, 1008, 1009, 94, 1809, 1993, - 165, 812, 1608, 1439, 1176, 1707, 1223, 806, 809, 810, - 1222, 775, 892, 1184, 1682, 803, 807, 989, 990, 991, - 992, 993, 986, 1210, 1069, 996, 922, 167, 168, 169, - 1322, 1818, 496, 2351, 1208, 1468, 1617, 822, 820, 1695, - 2320, 1084, 1217, 2183, 2354, 1614, 1221, 1694, 95, 496, - 496, 2362, 496, 1989, 496, 496, 2107, 496, 496, 496, - 496, 496, 496, 974, 975, 973, 974, 975, 973, 1618, - 1190, 1191, 496, 974, 975, 973, 165, 1257, 974, 975, - 973, 976, 1614, 71, 976, 1218, 974, 975, 973, 1293, - 1291, 976, 165, 1819, 2185, 1384, 976, 1204, 167, 168, - 169, 1197, 1112, 496, 976, 165, 1616, 1674, 1675, 1676, - 1252, 1253, 2349, 1226, 2355, 1227, 1311, 1229, 1231, 591, - 165, 1235, 1237, 1239, 1241, 1243, 2275, 1216, 1260, 1261, - 974, 975, 973, 2116, 1266, 1267, 165, 1254, 1932, 1696, - 2350, 2115, 1182, 165, 1472, 1473, 2106, 2012, 976, 1827, - 1292, 1290, 165, 165, 165, 165, 165, 165, 165, 165, - 165, 496, 496, 496, 1214, 1214, 1215, 1194, 1195, 1207, - 1193, 985, 984, 994, 995, 987, 988, 989, 990, 991, - 992, 993, 986, 1281, 1826, 996, 1325, 1583, 1294, 165, - 1270, 2332, 1939, 1329, 613, 1331, 1332, 1333, 1334, 1323, - 1324, 1255, 1338, 1279, 1317, 987, 988, 989, 990, 991, - 992, 993, 986, 1328, 608, 996, 1353, 2191, 1278, 2333, - 1335, 1336, 1337, 974, 975, 973, 1188, 1405, 1314, 1382, - 974, 975, 973, 974, 975, 973, 1408, 1376, 1378, 1379, - 1940, 976, 1277, 102, 1280, 792, 1268, 791, 976, 1262, - 496, 976, 167, 168, 169, 1377, 1788, 1364, 167, 168, - 169, 1259, 1828, 2037, 1258, 1233, 1327, 977, 2336, 985, - 984, 994, 995, 987, 988, 989, 990, 991, 992, 993, - 986, 2335, 2334, 996, 496, 496, 1790, 1409, 1410, 2321, - 1416, 2311, 974, 975, 973, 165, 2309, 2157, 1422, 2113, - 1427, 1430, 2079, 509, 610, 611, 1440, 1992, 1941, 496, - 976, 1836, 1034, 1348, 1349, 1350, 165, 1824, 1665, 496, - 167, 168, 169, 165, 1596, 165, 1383, 1417, 1630, 1629, - 1460, 1461, 1318, 165, 165, 1282, 1418, 167, 168, 169, - 496, 1024, 1269, 496, 1073, 1076, 167, 168, 169, 1265, - 1594, 1462, 1264, 1263, 935, 496, 1446, 1447, 591, 1507, - 1416, 1474, 1423, 1424, 2021, 2360, 1429, 1432, 1433, 2195, - 1961, 1419, 2021, 2297, 2134, 2273, 2021, 2247, 618, 2021, - 2242, 618, 994, 995, 987, 988, 989, 990, 991, 992, - 993, 986, 1445, 80, 996, 1448, 1449, 1486, 1555, 1556, - 1557, 1482, 1510, 2021, 2239, 2194, 1418, 2021, 2237, 2140, - 496, 2219, 591, 2021, 2189, 1742, 1589, 1590, 1591, 1855, - 1537, 1593, 1595, 984, 994, 995, 987, 988, 989, 990, - 991, 992, 993, 986, 496, 1536, 996, 1540, 2134, 591, - 496, 1217, 2021, 2132, 1217, 1484, 1217, 1570, 2074, 1614, - 591, 2089, 591, 1839, 1613, 1548, 1541, 1549, 1550, 1551, - 1552, 2086, 1519, 2004, 2003, 1576, 1603, 1518, 622, 1515, - 1513, 622, 591, 1560, 1561, 1562, 1563, 1539, 1538, 2000, - 2001, 2000, 1999, 1481, 496, 1492, 1405, 1480, 591, 1512, - 1873, 1405, 1405, 1179, 1857, 1851, 1852, 1492, 591, 1600, - 2248, 985, 984, 994, 995, 987, 988, 989, 990, 991, - 992, 993, 986, 972, 591, 996, 2073, 1179, 1178, 972, - 1571, 1566, 1567, 1124, 1123, 1584, 1607, 165, 1582, 1610, - 1581, 1611, 1592, 1514, 165, 82, 35, 1742, 2021, 165, - 165, 1516, 2002, 165, 814, 165, 2068, 35, 1606, 1623, - 1625, 165, 1571, 1605, 1480, 1627, 1628, 815, 165, 1624, - 1749, 1492, 575, 1513, 1615, 1491, 1520, 1214, 1609, 985, - 984, 994, 995, 987, 988, 989, 990, 991, 992, 993, - 986, 1712, 1711, 996, 35, 1750, 165, 496, 1950, 535, - 534, 537, 538, 539, 540, 1633, 2175, 1961, 536, 584, - 541, 1480, 1480, 1614, 1597, 1660, 1661, 1961, 1470, 2339, - 1663, 166, 71, 1775, 166, 1450, 1902, 166, 1492, 1664, - 1614, 1512, 497, 71, 166, 1362, 1514, 2118, 1308, 1109, - 797, 796, 166, 1248, 1512, 1382, 985, 984, 994, 995, - 987, 988, 989, 990, 991, 992, 993, 986, 2187, 1319, - 996, 1653, 2314, 71, 497, 2207, 2139, 497, 166, 497, - 71, 2110, 985, 984, 994, 995, 987, 988, 989, 990, - 991, 992, 993, 986, 2102, 71, 996, 2119, 2120, 2121, - 1983, 165, 2097, 1249, 1250, 1251, 2122, 1181, 1569, 165, - 2036, 1497, 1500, 1501, 1502, 1498, 1996, 1499, 1503, 1987, - 1668, 1965, 1966, 1981, 1858, 1565, 1691, 1559, 1558, 1832, - 1296, 1209, 165, 1205, 1177, 96, 1245, 1833, 879, 1965, - 1966, 1677, 2039, 165, 165, 165, 165, 165, 1371, 1372, - 1373, 1374, 1383, 2123, 2124, 165, 2208, 1580, 2317, 165, - 1728, 2278, 165, 165, 2019, 1751, 165, 165, 165, 2018, - 1686, 1687, 1735, 582, 1690, 2017, 1833, 1968, 1950, 1787, - 1789, 1971, 1756, 1246, 1247, 1773, 1843, 1654, 1747, 1355, - 1706, 1704, 1766, 1744, 1764, 1718, 1970, 1767, 1768, 1765, - 1501, 1502, 1063, 1425, 1426, 1817, 2067, 1726, 1763, 1762, - 2329, 2298, 1734, 1497, 1500, 1501, 1502, 1498, 1743, 1499, - 1503, 1942, 1745, 1776, 1731, 1078, 2090, 1778, 2024, 1814, - 1815, 496, 1740, 1739, 2331, 1816, 165, 1820, 1821, 1822, - 2302, 509, 1757, 165, 1769, 1760, 2304, 1779, 1774, 496, - 1782, 2267, 1317, 1758, 1759, 496, 1761, 2230, 2232, 1217, - 1217, 161, 1307, 2264, 1729, 496, 2233, 1795, 576, 2227, - 1796, 2263, 1730, 1811, 1835, 1544, 1837, 1870, 844, 843, - 1435, 1576, 2049, 1832, 1071, 103, 1897, 945, 165, 165, - 165, 165, 165, 1526, 1436, 1072, 1825, 1866, 145, 1865, - 103, 1861, 2084, 1465, 165, 165, 2015, 1869, 1834, 1472, - 1473, 1657, 2244, 1840, 2202, 1810, 1844, 1845, 1846, 1505, - 1868, 1197, 985, 984, 994, 995, 987, 988, 989, 990, - 991, 992, 993, 986, 585, 586, 996, 1646, 1417, 1794, - 496, 1673, 588, 2310, 1859, 1860, 1405, 1418, 1867, 1738, - 601, 597, 142, 1572, 143, 2308, 2307, 1737, 2268, 2266, - 2188, 2083, 2020, 160, 1598, 598, 1122, 589, 82, 2082, - 1945, 1742, 1889, 2319, 2318, 80, 496, 1701, 1908, 1698, - 1092, 1085, 1895, 2319, 1909, 1896, 2234, 165, 1991, 1910, - 1082, 1083, 600, 1466, 599, 584, 85, 496, 1929, 77, - 1901, 1, 2280, 496, 496, 466, 601, 597, 1907, 1451, - 1922, 1061, 479, 1923, 2276, 1283, 1951, 1273, 2143, 2204, - 1954, 598, 1574, 805, 128, 1534, 165, 1535, 146, 2293, - 93, 166, 768, 166, 92, 1908, 166, 151, 808, 1938, - 1756, 906, 1599, 2135, 1812, 1545, 594, 595, 600, 1130, - 599, 1948, 1128, 2066, 1129, 1960, 1127, 1132, 1131, 1126, - 165, 1356, 493, 497, 497, 497, 1504, 1959, 163, 1118, - 1086, 845, 456, 2005, 1351, 1973, 1631, 1975, 1969, 1976, - 462, 497, 497, 1004, 1736, 1783, 619, 1974, 2013, 612, - 1956, 2261, 2226, 2228, 165, 2169, 1997, 1998, 2231, 2224, - 2330, 2301, 496, 2243, 1542, 2065, 1464, 1074, 2081, 496, - 1944, 2026, 1705, 1033, 1437, 165, 1101, 518, 1459, 1375, - 533, 530, 544, 531, 1475, 165, 1988, 1748, 978, 2010, - 2011, 516, 510, 1093, 1496, 1494, 1493, 1655, 2008, 165, - 1105, 2009, 165, 138, 1967, 2023, 1963, 1099, 1479, 1543, - 1876, 2050, 2033, 957, 593, 505, 780, 1434, 2213, 1672, - 166, 2070, 592, 2031, 1576, 2030, 2025, 2022, 1791, 985, - 984, 994, 995, 987, 988, 989, 990, 991, 992, 993, - 986, 2044, 495, 996, 766, 2045, 61, 38, 497, 500, - 2325, 166, 948, 166, 166, 602, 497, 2047, 2048, 32, - 31, 30, 497, 29, 28, 23, 22, 21, 20, 2058, - 19, 25, 18, 2053, 620, 1708, 17, 772, 16, 779, - 2080, 985, 984, 994, 995, 987, 988, 989, 990, 991, - 992, 993, 986, 98, 48, 996, 45, 43, 496, 2085, - 2108, 105, 104, 46, 1732, 1733, 1076, 42, 2094, 882, - 27, 26, 1756, 15, 2093, 14, 2055, 2056, 13, 2057, - 12, 11, 2059, 10, 2061, 165, 9, 2099, 165, 165, - 165, 496, 496, 2129, 1683, 2100, 5, 2109, 4, 2112, - 951, 2114, 24, 1022, 2, 1530, 0, 0, 0, 0, - 2144, 496, 496, 496, 985, 984, 994, 995, 987, 988, - 989, 990, 991, 992, 993, 986, 0, 2150, 996, 0, - 0, 0, 0, 0, 139, 144, 141, 147, 148, 149, - 150, 152, 153, 154, 155, 0, 496, 496, 496, 165, - 156, 157, 158, 159, 0, 0, 2149, 0, 0, 0, - 496, 0, 496, 0, 0, 0, 0, 0, 496, 0, - 2181, 2148, 166, 496, 0, 2184, 1954, 2166, 0, 2167, - 1954, 496, 2178, 2190, 0, 2176, 2164, 2165, 2172, 2174, - 0, 0, 0, 0, 2156, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, - 496, 0, 2203, 496, 2192, 0, 2193, 2180, 0, 0, - 2196, 497, 497, 2182, 497, 0, 497, 497, 0, 497, - 497, 497, 497, 497, 497, 2199, 2198, 0, 0, 0, - 0, 0, 0, 0, 497, 0, 0, 0, 166, 0, - 0, 2206, 0, 0, 0, 0, 0, 2223, 0, 0, - 0, 0, 0, 0, 166, 1954, 2238, 2235, 0, 0, - 0, 0, 0, 0, 0, 497, 2240, 166, 496, 165, - 2250, 2241, 0, 0, 0, 0, 0, 0, 0, 0, - 496, 0, 166, 0, 0, 0, 0, 0, 0, 2246, - 0, 0, 0, 1931, 0, 0, 0, 496, 166, 0, - 2258, 0, 2274, 2265, 0, 166, 0, 0, 2271, 496, - 496, 2269, 2272, 0, 166, 166, 166, 166, 166, 166, - 166, 166, 166, 497, 497, 497, 2292, 2279, 1946, 2284, - 0, 2287, 0, 2306, 2305, 1756, 0, 2312, 0, 0, - 0, 0, 2313, 0, 0, 2316, 2315, 2206, 2294, 0, - 0, 166, 0, 0, 0, 2322, 0, 0, 0, 0, - 0, 0, 0, 0, 2328, 0, 985, 984, 994, 995, - 987, 988, 989, 990, 991, 992, 993, 986, 1986, 2337, - 996, 0, 0, 0, 2345, 0, 0, 0, 0, 0, - 0, 0, 2347, 0, 0, 0, 0, 0, 0, 161, - 496, 0, 2352, 0, 1441, 0, 0, 167, 168, 169, - 0, 0, 497, 620, 620, 620, 0, 0, 0, 0, - 0, 0, 2363, 103, 0, 0, 0, 0, 0, 0, - 0, 947, 949, 483, 0, 0, 145, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 497, 497, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 497, 0, 471, 0, 0, 0, 0, 166, 0, - 0, 497, 470, 0, 0, 166, 0, 166, 590, 0, - 142, 0, 143, 468, 0, 166, 166, 0, 0, 0, - 0, 160, 497, 0, 0, 497, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 497, 2072, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 465, 0, 0, 0, 0, 0, 0, 1089, 0, - 478, 509, 0, 0, 0, 0, 620, 0, 2095, 0, - 0, 2096, 1119, 0, 2098, 476, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 146, 2101, 0, 0, - 0, 0, 497, 0, 0, 151, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 484, 0, 0, - 0, 0, 0, 0, 0, 0, 497, 0, 0, 0, + 574, 605, 2359, 2299, 2217, 1838, 2255, 2219, 2121, 2328, + 2084, 2021, 2010, 2274, 2261, 2243, 1746, 2207, 2287, 2148, + 546, 1941, 1713, 2183, 1794, 2011, 2118, 1942, 1068, 587, + 1786, 1793, 1021, 532, 1524, 1747, 1452, 1075, 1560, 1938, + 1818, 1842, 2140, 1733, 517, 1881, 831, 515, 1580, 165, + 1565, 768, 165, 1819, 480, 165, 83, 3, 137, 939, + 496, 1545, 165, 1820, 1953, 1900, 889, 509, 1409, 1401, + 165, 81, 1673, 1102, 1593, 918, 1203, 1579, 621, 1312, + 123, 1503, 1567, 1812, 796, 1626, 1105, 1112, 1485, 1078, + 1073, 1492, 496, 1454, 596, 496, 165, 496, 508, 1435, + 1060, 33, 581, 519, 1378, 957, 1095, 1098, 775, 809, + 1210, 1309, 772, 799, 1221, 1295, 776, 1096, 802, 1577, + 1468, 1556, 797, 798, 1546, 1111, 1508, 1085, 1317, 79, + 1109, 1177, 100, 101, 140, 874, 1172, 1034, 106, 937, + 107, 78, 8, 7, 1037, 503, 6, 2360, 2086, 2087, + 2088, 618, 2256, 512, 2086, 2220, 1861, 1860, 1624, 1281, + 1888, 1889, 1367, 1195, 1366, 784, 2150, 779, 167, 168, + 169, 1365, 833, 1449, 1450, 1364, 603, 607, 454, 769, + 102, 582, 1363, 1362, 1351, 847, 848, 836, 851, 852, + 853, 854, 958, 1355, 857, 858, 859, 860, 861, 862, + 863, 864, 865, 866, 867, 868, 869, 870, 871, 504, + 108, 84, 1412, 506, 2313, 507, 622, 1711, 958, 2203, + 813, 2097, 615, 2179, 812, 2178, 2116, 791, 1990, 2117, + 2353, 835, 790, 789, 102, 834, 2284, 2348, 80, 2236, + 2336, 2122, 1612, 837, 838, 839, 844, 1663, 86, 87, + 88, 89, 90, 91, 2283, 2235, 97, 968, 1572, 162, + 1917, 2054, 449, 1186, 1712, 849, 2192, 983, 982, 992, + 993, 985, 986, 987, 988, 989, 990, 991, 984, 1570, + 1868, 994, 580, 968, 1867, 783, 1113, 785, 1114, 35, + 161, 1967, 72, 39, 40, 1451, 1887, 925, 102, 927, + 559, 1837, 565, 566, 563, 564, 1661, 562, 561, 560, + 1509, 1518, 877, 935, 103, 1802, 125, 567, 568, 908, + 1777, 578, 788, 1776, 883, 884, 1778, 145, 873, 1968, + 1969, 1519, 1520, 913, 914, 924, 926, 577, 2166, 896, + 909, 896, 2240, 788, 897, 780, 897, 964, 902, 2023, + 956, 494, 782, 781, 895, 2045, 894, 483, 135, 1356, + 1357, 1358, 2043, 124, 1569, 71, 1539, 1538, 492, 1354, + 498, 1843, 1064, 964, 483, 167, 168, 169, 786, 483, + 1864, 142, 1632, 143, 1637, 1635, 1636, 1594, 1197, 1198, + 134, 133, 160, 1301, 1271, 2017, 850, 1296, 1627, 786, + 2347, 483, 931, 2018, 788, 872, 911, 912, 917, 879, + 934, 1876, 1642, 792, 856, 855, 910, 2175, 2025, 915, + 1631, 1629, 2111, 922, 903, 2024, 1639, 923, 1640, 916, + 1641, 1596, 1189, 1782, 1486, 1633, 1272, 928, 1273, 793, + 2314, 820, 818, 829, 828, 827, 129, 1199, 136, 165, + 1196, 165, 130, 131, 165, 826, 825, 146, 921, 824, + 1630, 1509, 823, 822, 817, 1798, 151, 876, 830, 773, + 811, 2332, 929, 1880, 805, 2344, 773, 2334, 773, 804, + 771, 496, 496, 496, 787, 2193, 1310, 1578, 1209, 963, + 960, 961, 962, 967, 969, 966, 609, 965, 1877, 496, + 496, 1618, 1989, 1306, 959, 787, 944, 1714, 1716, 1789, + 840, 484, 1997, 975, 906, 963, 960, 961, 962, 967, + 969, 966, 892, 965, 898, 899, 900, 901, 484, 810, + 959, 930, 1866, 484, 814, 804, 2234, 1571, 1302, 821, + 819, 1863, 1926, 1925, 815, 811, 936, 1924, 1853, 509, + 2167, 932, 875, 1208, 1790, 484, 1184, 950, 1032, 1183, + 1182, 2241, 816, 1883, 1307, 1180, 787, 453, 1882, 448, + 1875, 811, 138, 1874, 2214, 1883, 1792, 846, 165, 1787, + 1882, 1662, 1614, 1692, 1006, 1007, 2074, 2275, 1689, 811, + 1071, 1074, 1796, 1797, 99, 1966, 1738, 1788, 1300, 1283, + 1282, 1284, 1285, 1286, 810, 1681, 496, 1604, 1514, 165, + 1715, 165, 165, 1089, 496, 885, 1901, 882, 1004, 1065, + 496, 941, 942, 893, 73, 1019, 2330, 132, 887, 2331, + 810, 2329, 1525, 994, 984, 814, 804, 994, 1773, 126, + 1066, 919, 127, 953, 951, 815, 1464, 952, 810, 1022, + 971, 1318, 1349, 905, 804, 807, 808, 1795, 773, 1903, + 891, 94, 801, 805, 907, 974, 974, 811, 2254, 1798, + 972, 973, 971, 618, 1008, 1009, 1010, 1011, 1012, 1013, + 1014, 1015, 1016, 1017, 1297, 1061, 1298, 2230, 974, 1299, + 832, 1079, 1094, 973, 971, 1951, 1919, 1036, 1039, 1041, + 1043, 1044, 1046, 1048, 1049, 1040, 1042, 1628, 1045, 1047, + 974, 1050, 95, 1303, 1613, 1115, 954, 811, 1436, 1436, + 1699, 1905, 1058, 1909, 1831, 1904, 810, 1902, 845, 1006, + 1007, 2153, 1907, 1977, 1006, 1007, 1976, 1466, 622, 1600, + 1220, 1906, 1606, 139, 144, 141, 147, 148, 149, 150, + 152, 153, 154, 155, 1908, 1910, 1219, 2357, 878, 156, + 157, 158, 159, 1385, 920, 1207, 1610, 1791, 165, 167, + 168, 169, 1173, 1403, 1319, 1606, 810, 1383, 1384, 1382, + 890, 1181, 804, 807, 808, 1611, 773, 972, 973, 971, + 801, 805, 1609, 167, 168, 169, 1067, 1807, 820, 1608, + 496, 1465, 1205, 818, 2307, 974, 1077, 71, 2337, 800, + 1214, 2345, 1972, 1687, 1218, 2319, 1082, 496, 496, 1381, + 496, 1686, 496, 496, 1110, 496, 496, 496, 496, 496, + 496, 1290, 972, 973, 971, 1404, 2338, 2362, 1187, 1188, + 496, 2298, 2257, 2320, 165, 1254, 167, 168, 169, 2096, + 974, 1201, 972, 973, 971, 2095, 1995, 1215, 1688, 1808, + 165, 1816, 985, 986, 987, 988, 989, 990, 991, 984, + 974, 496, 994, 165, 2343, 1815, 1194, 1373, 1375, 1376, + 1575, 2346, 1249, 1250, 1308, 1291, 1213, 1288, 165, 1276, + 1275, 1251, 1289, 1316, 1274, 1374, 1257, 1258, 1469, 1470, + 1265, 1278, 1263, 1264, 165, 987, 988, 989, 990, 991, + 984, 165, 608, 994, 1179, 2296, 613, 1211, 1211, 1212, + 165, 165, 165, 165, 165, 165, 165, 165, 165, 496, + 496, 496, 1223, 1192, 1224, 1190, 1226, 1228, 1204, 1259, + 1232, 1234, 1236, 1238, 1240, 972, 973, 971, 1287, 972, + 973, 971, 1928, 1267, 167, 168, 169, 165, 1191, 1666, + 1667, 1668, 1277, 974, 1256, 1252, 1314, 974, 1255, 1322, + 1320, 1321, 1368, 1369, 1370, 1371, 1326, 2258, 1328, 1329, + 1330, 1331, 2164, 2323, 1325, 1335, 1230, 972, 973, 971, + 2322, 1332, 1333, 1334, 2321, 1402, 1185, 1311, 1379, 1350, + 1929, 2308, 610, 611, 1405, 974, 2295, 972, 973, 971, + 2293, 790, 789, 102, 972, 973, 971, 2137, 496, 167, + 168, 169, 1921, 1780, 2093, 974, 1817, 1422, 1423, 2062, + 1361, 591, 974, 1324, 1975, 983, 982, 992, 993, 985, + 986, 987, 988, 989, 990, 991, 984, 1930, 1825, 994, + 1813, 1657, 496, 496, 1406, 1407, 972, 973, 971, 1622, + 1419, 1621, 1458, 165, 1315, 509, 1279, 1266, 1345, 1346, + 1347, 1262, 1424, 1427, 974, 1261, 1260, 496, 1437, 1413, + 933, 1380, 2020, 2173, 165, 2004, 2361, 496, 167, 168, + 169, 165, 1588, 165, 1674, 1459, 1457, 2267, 1415, 1414, + 2265, 165, 165, 2114, 2341, 1471, 2172, 1022, 496, 2269, + 2270, 496, 80, 1796, 1797, 2004, 2325, 1523, 2266, 167, + 168, 169, 496, 1443, 1444, 167, 168, 169, 2120, 1586, + 1377, 2004, 2302, 1386, 1387, 1388, 1389, 1390, 1391, 1392, + 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1844, 1413, + 1416, 535, 534, 537, 538, 539, 540, 1504, 2004, 2281, + 536, 1734, 541, 2004, 2228, 2004, 2223, 618, 1415, 1483, + 618, 2004, 2215, 1529, 1479, 1507, 1564, 496, 1795, 1528, + 2197, 591, 1828, 1581, 1582, 1583, 2114, 591, 1585, 1587, + 1798, 591, 1439, 2004, 2112, 1606, 591, 1547, 1548, 1549, + 1939, 496, 2072, 591, 1987, 1986, 1532, 496, 1214, 1950, + 1562, 1214, 35, 1214, 1481, 1983, 1984, 1983, 1982, 1477, + 591, 1605, 1509, 1862, 1568, 1176, 1846, 1533, 1595, 1510, + 1512, 1489, 622, 1510, 1516, 622, 1420, 1421, 1515, 1950, + 1426, 1429, 1430, 1478, 1531, 1530, 1840, 1841, 1489, 591, + 2069, 496, 1592, 1402, 970, 591, 1176, 1175, 1402, 1402, + 1540, 2155, 1541, 1542, 1543, 1544, 1442, 1121, 1120, 1445, + 1446, 1734, 2229, 970, 1767, 35, 35, 591, 1552, 1553, + 1554, 1555, 1509, 82, 1599, 1563, 1607, 1602, 71, 1603, + 1558, 1559, 1511, 1573, 165, 1576, 1511, 2098, 1574, 1741, + 1513, 165, 1615, 2169, 1509, 1584, 165, 165, 2004, 813, + 165, 1985, 165, 812, 1477, 1598, 1489, 1563, 165, 1211, + 1601, 575, 1617, 1597, 1742, 165, 1616, 1619, 1620, 983, + 982, 992, 993, 985, 986, 987, 988, 989, 990, 991, + 984, 1950, 1606, 994, 1488, 1517, 1704, 2099, 2100, 2101, + 1477, 71, 71, 165, 496, 983, 982, 992, 993, 985, + 986, 987, 988, 989, 990, 991, 984, 1625, 2057, 994, + 166, 1703, 1477, 166, 584, 1606, 166, 1589, 1467, 1447, + 1359, 497, 1305, 166, 1107, 795, 794, 1652, 1653, 1245, + 2356, 166, 1655, 2300, 2351, 2253, 2022, 1489, 71, 2222, + 2216, 1656, 2185, 1379, 1494, 1497, 1498, 1499, 1495, 2119, + 1496, 1500, 2090, 497, 1954, 1955, 497, 166, 497, 1645, + 2080, 983, 982, 992, 993, 985, 986, 987, 988, 989, + 990, 991, 984, 1178, 1561, 994, 2019, 1979, 1700, 1246, + 1247, 1248, 1821, 1847, 1557, 1551, 1550, 1293, 165, 1683, + 71, 1206, 1202, 1174, 96, 2218, 165, 2102, 1822, 877, + 1242, 1954, 1955, 2186, 1572, 1660, 2304, 1724, 1725, 1074, + 1494, 1497, 1498, 1499, 1495, 2262, 1496, 1500, 2002, 165, + 1758, 2001, 2000, 1957, 1939, 1759, 1380, 1669, 1720, 1822, + 165, 165, 165, 165, 165, 1832, 1646, 1352, 1756, 1960, + 1727, 1959, 165, 1757, 2103, 2104, 165, 1243, 1244, 165, + 165, 1755, 1754, 165, 165, 165, 1076, 2316, 582, 1682, + 1760, 2282, 1498, 1499, 1931, 1723, 1779, 2073, 1739, 2007, + 1732, 2208, 2210, 1748, 1698, 601, 597, 1670, 1671, 1672, + 2211, 2318, 1743, 1731, 2245, 2286, 2288, 1806, 1710, 1718, + 598, 1721, 2244, 2248, 2205, 1061, 1800, 1304, 1726, 1722, + 1736, 576, 1765, 1536, 1826, 842, 841, 1735, 2032, 1821, + 1069, 1886, 943, 496, 1737, 1080, 1081, 600, 165, 599, + 1805, 1070, 1809, 1810, 1811, 165, 1784, 1855, 1854, 103, + 1768, 496, 1761, 1314, 1770, 1766, 1749, 496, 1432, 1752, + 1771, 1214, 1214, 1803, 1804, 1774, 2067, 496, 1750, 1751, + 1462, 1753, 1433, 1998, 1785, 1568, 1824, 1469, 1470, 1859, + 1649, 2225, 2180, 1678, 1679, 601, 597, 1665, 1799, 1502, + 165, 165, 165, 165, 165, 1814, 585, 586, 1638, 588, + 598, 2301, 1730, 2294, 1696, 2292, 165, 165, 2291, 1823, + 1729, 2249, 1858, 2247, 2066, 2003, 1970, 1590, 1857, 1833, + 1834, 1835, 1829, 589, 1850, 594, 595, 600, 82, 599, + 1194, 2065, 1934, 1734, 2306, 2305, 2306, 1848, 1849, 1693, + 1690, 1090, 496, 1415, 1414, 1083, 2212, 1974, 1402, 1463, + 1856, 992, 993, 985, 986, 987, 988, 989, 990, 991, + 984, 1920, 584, 994, 80, 85, 77, 1, 2264, 466, + 1448, 1059, 1899, 479, 2260, 1280, 1270, 2123, 496, 1878, + 1898, 2182, 1566, 803, 128, 1526, 1527, 1884, 2277, 165, + 1885, 93, 766, 92, 1918, 806, 1935, 904, 1591, 496, + 2115, 1897, 1801, 1890, 1537, 496, 496, 1127, 1125, 1896, + 1126, 1124, 1129, 1128, 1912, 1123, 1353, 1911, 1940, 493, + 1501, 163, 1116, 1943, 1084, 843, 456, 1988, 165, 1937, + 166, 1348, 166, 1623, 462, 166, 1002, 1728, 1775, 619, + 612, 1945, 2242, 2204, 2206, 2149, 1748, 1438, 2209, 2202, + 1949, 2317, 2285, 2224, 1534, 1461, 1072, 2064, 1897, 165, + 1933, 1697, 497, 497, 497, 1031, 1434, 1099, 518, 1456, + 1962, 1372, 1964, 533, 1965, 530, 531, 1958, 1472, 1740, + 497, 497, 976, 516, 510, 1091, 1493, 1996, 1892, 1893, + 1491, 1490, 1927, 165, 1647, 1103, 1956, 1952, 1980, 1981, + 1097, 496, 1971, 1913, 1914, 2051, 1915, 1916, 496, 1963, + 1476, 2056, 1535, 2009, 165, 1865, 2016, 1922, 1923, 955, + 1948, 593, 505, 778, 165, 1431, 2191, 1664, 1993, 1994, + 2053, 590, 592, 2165, 1992, 1781, 61, 38, 165, 500, + 2312, 165, 946, 1991, 602, 32, 31, 544, 2006, 30, + 2033, 29, 2005, 28, 23, 1568, 22, 2008, 2014, 166, + 21, 20, 19, 2013, 983, 982, 992, 993, 985, 986, + 987, 988, 989, 990, 991, 984, 25, 18, 994, 17, + 2028, 16, 98, 2055, 2027, 48, 45, 497, 2036, 43, + 166, 105, 166, 166, 104, 497, 46, 42, 880, 27, + 26, 497, 15, 1973, 2041, 14, 509, 495, 13, 12, + 11, 2030, 2031, 2078, 10, 9, 2079, 5, 4, 2081, + 949, 983, 982, 992, 993, 985, 986, 987, 988, 989, + 990, 991, 984, 24, 1020, 994, 2, 2085, 0, 620, + 2068, 0, 770, 0, 777, 0, 2077, 2076, 0, 0, + 0, 2063, 0, 0, 0, 1748, 0, 0, 165, 0, + 2082, 165, 165, 165, 496, 496, 0, 2083, 2089, 2109, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 2124, 496, 496, 496, 0, 0, 0, + 0, 0, 0, 2038, 2039, 0, 2040, 0, 0, 2042, + 2130, 2044, 0, 0, 2092, 2034, 2094, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 496, + 496, 496, 165, 0, 0, 2128, 0, 2151, 509, 0, + 0, 0, 0, 496, 0, 496, 0, 0, 0, 0, + 0, 496, 0, 2136, 0, 2163, 2161, 0, 0, 166, + 1943, 496, 0, 0, 1943, 2158, 2168, 2154, 2146, 2152, + 0, 2129, 2144, 2145, 0, 0, 2160, 0, 0, 0, + 0, 0, 2162, 0, 0, 0, 0, 0, 0, 0, + 496, 497, 0, 496, 2147, 2181, 0, 2170, 2156, 2171, + 0, 0, 2174, 2091, 0, 0, 0, 2176, 497, 497, + 2177, 497, 0, 497, 497, 0, 497, 497, 497, 497, + 497, 497, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 497, 0, 0, 0, 166, 0, 0, 2221, 2201, + 0, 0, 0, 0, 0, 0, 1943, 2213, 0, 0, + 0, 166, 2184, 0, 0, 0, 496, 165, 0, 0, + 0, 2231, 497, 0, 166, 0, 0, 0, 496, 0, + 0, 0, 2131, 2132, 2133, 2134, 2135, 0, 0, 166, + 2138, 2139, 0, 0, 0, 496, 0, 0, 2252, 0, + 0, 0, 2239, 496, 2246, 166, 0, 0, 2259, 2250, + 496, 496, 166, 0, 0, 0, 0, 2227, 0, 0, + 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, + 497, 497, 497, 2276, 496, 2263, 2268, 1748, 2290, 2297, + 2289, 0, 983, 982, 992, 993, 985, 986, 987, 988, + 989, 990, 991, 984, 0, 2303, 994, 0, 166, 0, + 0, 0, 2271, 0, 0, 2309, 0, 0, 0, 2184, + 2278, 0, 0, 2315, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2324, 0, 0, 0, 0, 0, + 0, 0, 2327, 2326, 0, 0, 2333, 0, 0, 0, + 0, 0, 0, 0, 2335, 167, 168, 169, 2342, 0, + 0, 2339, 0, 2340, 0, 0, 0, 0, 0, 497, + 0, 0, 0, 2349, 2050, 0, 0, 2350, 2352, 0, + 0, 483, 0, 2355, 2354, 0, 0, 496, 0, 2049, + 0, 0, 2358, 0, 2363, 0, 0, 0, 620, 620, + 620, 0, 0, 497, 497, 0, 0, 0, 0, 0, + 2272, 0, 0, 0, 166, 0, 945, 947, 0, 0, + 0, 471, 0, 0, 0, 0, 0, 0, 497, 0, + 470, 0, 0, 0, 0, 166, 0, 0, 497, 0, + 0, 468, 166, 0, 166, 0, 0, 161, 0, 0, + 0, 0, 166, 166, 0, 0, 0, 0, 0, 497, 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 455, 0, 457, 472, 0, - 486, 0, 485, 461, 0, 459, 463, 473, 464, 0, - 458, 0, 469, 0, 0, 460, 474, 475, 490, 489, - 477, 0, 467, 487, 0, 0, 497, 0, 0, 0, + 0, 103, 0, 497, 0, 0, 0, 0, 0, 465, + 0, 0, 0, 0, 145, 0, 0, 0, 478, 0, + 983, 982, 992, 993, 985, 986, 987, 988, 989, 990, + 991, 984, 0, 476, 994, 983, 982, 992, 993, 985, + 986, 987, 988, 989, 990, 991, 984, 0, 0, 994, + 0, 0, 0, 1087, 0, 1783, 0, 0, 497, 0, + 0, 620, 0, 0, 0, 484, 0, 1117, 142, 0, + 143, 0, 0, 0, 0, 0, 0, 0, 0, 160, + 0, 0, 497, 0, 0, 0, 0, 0, 497, 0, + 0, 2048, 0, 455, 0, 457, 472, 0, 486, 0, + 485, 461, 0, 459, 463, 473, 464, 0, 458, 0, + 469, 0, 0, 460, 474, 475, 490, 489, 477, 0, + 467, 487, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 497, 0, 0, 0, 0, 0, 978, 0, + 981, 0, 0, 0, 146, 0, 995, 996, 997, 998, + 999, 1000, 1001, 151, 979, 980, 977, 983, 982, 992, + 993, 985, 986, 987, 988, 989, 990, 991, 984, 0, + 0, 994, 0, 0, 0, 166, 0, 0, 0, 0, + 0, 0, 166, 0, 0, 0, 0, 166, 166, 0, + 0, 166, 0, 166, 0, 0, 0, 0, 0, 166, + 0, 0, 1891, 0, 0, 0, 166, 983, 982, 992, + 993, 985, 986, 987, 988, 989, 990, 991, 984, 0, + 0, 994, 983, 982, 992, 993, 985, 986, 987, 988, + 989, 990, 991, 984, 166, 497, 994, 0, 0, 0, + 0, 0, 0, 0, 0, 488, 0, 770, 982, 992, + 993, 985, 986, 987, 988, 989, 990, 991, 984, 138, + 1216, 994, 0, 481, 1222, 1222, 0, 1222, 1675, 1222, + 1222, 0, 1231, 1222, 1222, 1222, 1222, 1222, 482, 0, + 0, 0, 0, 0, 0, 1216, 1216, 770, 983, 982, + 992, 993, 985, 986, 987, 988, 989, 990, 991, 984, + 0, 0, 994, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1292, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, + 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2171, 509, + 0, 0, 0, 0, 0, 0, 0, 545, 0, 0, + 166, 0, 0, 0, 0, 0, 0, 0, 1417, 1418, + 0, 166, 166, 166, 166, 166, 620, 620, 620, 0, + 0, 0, 0, 166, 161, 0, 0, 166, 0, 0, + 166, 166, 0, 0, 166, 166, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 161, 164, 0, 103, 452, + 125, 0, 491, 0, 1460, 0, 0, 0, 0, 452, + 0, 145, 0, 0, 0, 0, 0, 452, 0, 103, + 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, + 155, 0, 145, 0, 606, 606, 156, 157, 158, 159, + 0, 0, 135, 452, 497, 0, 0, 124, 0, 166, + 0, 0, 0, 0, 0, 1408, 166, 620, 0, 0, + 0, 0, 497, 0, 0, 142, 0, 143, 497, 0, + 0, 1216, 112, 113, 134, 133, 160, 0, 497, 0, + 0, 0, 0, 0, 0, 0, 142, 0, 143, 1440, + 1441, 0, 0, 0, 0, 0, 0, 160, 0, 0, + 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, + 0, 0, 0, 0, 1473, 0, 0, 166, 166, 0, + 0, 0, 0, 0, 1087, 0, 0, 620, 0, 0, + 129, 110, 136, 117, 109, 0, 130, 131, 0, 0, + 0, 146, 0, 0, 0, 620, 0, 0, 620, 0, + 151, 118, 0, 497, 0, 0, 0, 0, 0, 770, + 0, 0, 146, 0, 0, 121, 119, 114, 115, 116, + 120, 151, 0, 0, 0, 111, 0, 0, 547, 34, + 0, 0, 0, 0, 122, 0, 0, 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 138, 0, 0, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, - 0, 166, 166, 0, 0, 166, 0, 166, 0, 0, - 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 772, 0, 0, 0, 0, 0, - 545, 0, 0, 0, 0, 0, 0, 1219, 166, 497, - 0, 1225, 1225, 0, 1225, 0, 1225, 1225, 0, 1234, - 1225, 1225, 1225, 1225, 1225, 0, 0, 488, 0, 0, - 0, 0, 1219, 1219, 772, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 481, 0, 0, 0, 164, - 0, 0, 452, 0, 0, 491, 0, 0, 0, 0, - 482, 0, 452, 0, 0, 1295, 0, 0, 0, 0, - 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 606, 606, 0, - 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, - 0, 0, 0, 166, 0, 0, 0, 0, 0, 0, - 0, 166, 139, 144, 141, 147, 148, 149, 150, 152, - 153, 154, 155, 620, 620, 620, 0, 0, 156, 157, - 158, 159, 0, 0, 166, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 166, 166, 166, 166, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 2338, 166, 0, 161, 166, 166, 0, 0, 166, 166, 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 103, 0, 125, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 145, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1411, 0, 620, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1219, 0, - 0, 135, 0, 497, 0, 0, 124, 0, 166, 0, - 1147, 0, 0, 0, 0, 166, 1443, 1444, 0, 0, - 0, 497, 0, 0, 142, 0, 143, 497, 512, 0, - 0, 112, 113, 134, 133, 160, 0, 497, 0, 0, - 0, 1476, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1089, 0, 0, 620, 0, 0, 0, 0, 0, - 166, 166, 166, 166, 166, 0, 0, 0, 0, 0, - 0, 0, 620, 0, 0, 620, 166, 166, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 772, 0, 129, - 110, 136, 117, 109, 0, 130, 131, 0, 0, 0, - 146, 0, 0, 0, 0, 0, 0, 0, 0, 151, - 118, 0, 497, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 121, 119, 114, 115, 116, 120, - 0, 1135, 0, 0, 111, 0, 35, 36, 37, 72, - 39, 40, 779, 122, 0, 0, 0, 0, 497, 0, - 0, 0, 0, 0, 0, 0, 76, 0, 0, 166, - 41, 67, 68, 0, 65, 69, 772, 0, 0, 497, - 0, 0, 779, 66, 1148, 497, 497, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 166, 0, - 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 71, 0, 0, 138, 772, 0, 0, 452, - 0, 452, 0, 0, 452, 1161, 1164, 1165, 1166, 1167, - 1168, 1169, 166, 1170, 1171, 1172, 1173, 1174, 1149, 1150, - 1151, 1152, 1133, 1134, 1162, 0, 1136, 0, 1137, 1138, - 1139, 1140, 1141, 1142, 1143, 1144, 1145, 1146, 1153, 1154, - 1155, 1156, 1157, 1158, 1159, 1160, 166, 0, 0, 0, - 132, 0, 0, 0, 497, 0, 0, 0, 0, 0, - 0, 497, 126, 0, 0, 127, 0, 166, 0, 0, - 44, 47, 50, 49, 52, 0, 64, 166, 0, 70, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 166, 0, 0, 166, 0, 0, 0, 0, 1667, - 0, 53, 75, 74, 0, 0, 62, 63, 51, 0, - 0, 0, 1163, 980, 0, 983, 0, 0, 0, 0, - 0, 997, 998, 999, 1000, 1001, 1002, 1003, 452, 981, - 982, 979, 985, 984, 994, 995, 987, 988, 989, 990, - 991, 992, 993, 986, 606, 0, 996, 55, 56, 0, - 57, 58, 59, 60, 0, 0, 0, 0, 0, 452, - 0, 452, 1108, 0, 0, 0, 139, 144, 141, 147, - 148, 149, 150, 152, 153, 154, 155, 0, 0, 0, - 0, 0, 156, 157, 158, 159, 0, 0, 0, 0, - 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 166, 166, 166, 497, 497, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1219, 0, 0, 1420, 1421, 0, - 0, 0, 0, 497, 497, 497, 0, 0, 0, 0, - 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 497, 497, - 497, 166, 0, 1463, 0, 0, 0, 0, 0, 0, - 0, 0, 497, 0, 497, 0, 0, 0, 0, 0, - 497, 0, 1064, 0, 0, 497, 0, 0, 0, 0, - 0, 0, 0, 497, 0, 0, 0, 0, 0, 0, - 452, 0, 0, 1838, 0, 0, 0, 0, 0, 1010, - 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 0, - 0, 1850, 497, 0, 0, 497, 0, 1856, 0, 0, - 0, 0, 0, 0, 451, 620, 0, 1862, 0, 0, - 0, 0, 0, 0, 499, 1220, 0, 0, 0, 0, - 0, 0, 579, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1220, 1220, 0, 0, 0, 0, 452, 0, 776, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 497, 166, 1271, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 497, 0, 0, 452, 0, 0, 0, 0, - 0, 0, 620, 0, 0, 0, 0, 0, 0, 497, - 1316, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 497, 497, 0, 0, 0, 452, 0, 0, 0, - 0, 0, 0, 452, 0, 0, 0, 0, 1225, 0, - 0, 0, 1339, 1340, 452, 452, 452, 452, 452, 452, - 452, 0, 0, 0, 0, 0, 0, 0, 0, 620, - 0, 0, 1219, 0, 0, 1958, 1225, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 547, 34, 0, 0, 0, 0, + 497, 0, 0, 34, 777, 0, 497, 497, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 770, 166, + 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 138, 0, 583, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 0, 0, 0, 0, 138, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 770, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, + 0, 132, 497, 0, 0, 0, 0, 0, 0, 497, + 0, 0, 0, 126, 0, 166, 127, 0, 0, 0, + 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, + 0, 0, 0, 1676, 0, 0, 0, 1677, 0, 166, + 0, 0, 166, 0, 0, 0, 0, 0, 1684, 1685, + 0, 0, 0, 0, 1691, 0, 0, 1694, 1695, 0, + 0, 0, 0, 0, 0, 1701, 0, 1702, 0, 0, + 1705, 1706, 1707, 1708, 1709, 0, 0, 0, 0, 0, + 0, 1659, 0, 0, 1719, 0, 452, 0, 452, 0, + 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, + 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, + 0, 1763, 1764, 156, 157, 158, 159, 0, 139, 144, + 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 156, 157, 158, 159, 0, 166, + 0, 0, 166, 166, 166, 497, 497, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 497, 497, 497, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 452, 1216, 0, 0, 0, + 497, 497, 497, 166, 0, 0, 0, 0, 0, 0, + 0, 606, 0, 1062, 497, 0, 497, 0, 0, 0, + 0, 0, 497, 0, 0, 0, 452, 0, 452, 1106, 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 0, 606, 1316, 0, 0, 0, 606, 606, 0, 0, - 606, 606, 606, 0, 0, 0, 1220, 0, 0, 0, - 0, 0, 0, 0, 772, 0, 0, 1219, 0, 0, - 0, 1850, 0, 0, 0, 0, 606, 606, 606, 606, - 606, 0, 0, 0, 583, 1271, 0, 0, 0, 0, - 0, 0, 0, 1684, 0, 0, 0, 1685, 0, 0, - 0, 0, 0, 0, 0, 0, 452, 0, 1692, 1693, - 0, 0, 1316, 452, 1699, 452, 0, 1702, 1703, 0, - 0, 0, 0, 452, 452, 1709, 0, 1710, 0, 0, - 1713, 1714, 1715, 1716, 1717, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1727, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1219, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1771, 1772, 0, 0, 0, 0, 0, 0, 0, - 1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 883, 0, 888, 0, 0, 890, 0, 0, 0, - 0, 0, 0, 1850, 2130, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2145, 2146, 2147, 0, 1380, 0, 0, - 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, - 1399, 1400, 1401, 1402, 1403, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2162, 2162, - 2162, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2177, 0, 2179, 0, 0, 0, 0, 0, - 1850, 0, 0, 0, 0, 1850, 0, 452, 0, 1442, - 0, 0, 0, 1850, 452, 0, 0, 0, 0, 452, - 452, 0, 0, 452, 0, 1658, 0, 0, 0, 0, - 0, 452, 0, 0, 0, 0, 0, 0, 452, 0, - 0, 0, 1850, 0, 0, 620, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1905, 1906, 0, 0, 0, 452, 0, 0, 0, - 0, 1095, 0, 0, 1106, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1850, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2256, 0, 606, 606, 0, 1957, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1219, 0, 2270, - 0, 0, 0, 0, 0, 606, 0, 0, 1972, 0, - 0, 620, 620, 0, 0, 0, 0, 0, 0, 0, - 0, 452, 0, 0, 0, 0, 0, 0, 0, 1271, - 0, 0, 0, 0, 0, 940, 940, 940, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 606, 452, 0, 0, 34, 0, 0, 0, 0, - 0, 0, 1220, 452, 452, 452, 452, 452, 1005, 1007, - 0, 0, 0, 0, 0, 1770, 0, 0, 0, 452, - 0, 0, 452, 452, 0, 0, 452, 1780, 1316, 0, - 0, 0, 1125, 0, 0, 0, 0, 0, 0, 1020, - 0, 0, 1850, 1025, 1026, 1027, 1028, 1029, 1030, 1031, - 1032, 0, 1035, 1037, 1040, 1040, 1040, 1037, 1040, 1040, - 1037, 1040, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 0, - 0, 0, 0, 0, 1065, 0, 0, 0, 34, 0, - 0, 0, 2052, 0, 0, 0, 2054, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 452, 2063, 2064, 0, - 0, 0, 0, 1847, 0, 1102, 0, 0, 1256, 0, - 0, 0, 0, 2078, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1316, 0, 0, 0, 0, 0, 0, - 2087, 2088, 0, 0, 2092, 0, 0, 1297, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 452, 452, - 452, 452, 452, 0, 0, 1678, 1679, 1680, 0, 0, - 0, 0, 0, 0, 452, 452, 0, 0, 1326, 0, - 0, 0, 0, 0, 0, 1330, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1341, 1342, 1343, 1344, - 1345, 1346, 1347, 0, 0, 0, 0, 0, 0, 606, - 0, 0, 2133, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1106, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 452, 0, 0, - 2161, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1220, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 161, 0, - 0, 0, 0, 0, 0, 0, 452, 0, 0, 1196, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 103, 0, 125, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, - 452, 0, 0, 0, 0, 0, 2209, 2210, 2211, 2212, - 0, 2216, 0, 2217, 2218, 2220, 0, 0, 0, 2221, - 2222, 0, 0, 0, 0, 0, 135, 0, 1483, 0, - 0, 124, 0, 0, 452, 1487, 0, 1490, 0, 0, - 0, 0, 0, 0, 0, 1220, 1509, 0, 0, 142, - 0, 143, 0, 0, 0, 452, 1200, 1201, 134, 133, - 160, 0, 0, 0, 0, 452, 0, 0, 2252, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, - 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 940, 940, 940, 0, 0, - 0, 0, 0, 0, 129, 1202, 136, 0, 1199, 0, - 130, 131, 0, 0, 0, 146, 0, 0, 0, 0, - 0, 1903, 1904, 0, 151, 0, 0, 0, 0, 0, - 0, 0, 0, 2323, 2324, 0, 1924, 1925, 0, 1926, - 1927, 0, 1220, 0, 0, 0, 0, 0, 0, 0, - 1933, 1934, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 452, 0, 0, 452, 452, - 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1106, - 138, 0, 0, 0, 0, 0, 1642, 0, 0, 1990, - 0, 1651, 1652, 0, 0, 1656, 0, 0, 0, 0, - 0, 0, 0, 1659, 0, 0, 0, 0, 0, 1271, - 1662, 0, 0, 0, 0, 0, 0, 1508, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 132, 0, 0, 1666, 0, - 0, 0, 0, 0, 0, 0, 0, 126, 0, 0, - 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2051, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 452, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, - 154, 155, 0, 0, 0, 1220, 0, 156, 157, 158, - 159, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2111, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1777, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2151, 2152, 2153, 2154, 2155, 0, - 0, 0, 2158, 2159, 0, 0, 0, 0, 1841, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1880, 1881, 1882, 1883, 1884, 0, 0, 0, 0, 0, - 0, 1688, 0, 0, 583, 0, 1106, 1890, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1725, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1102, 0, 0, 0, - 0, 0, 0, 1752, 1753, 0, 0, 1102, 1102, 1102, - 1102, 1102, 0, 0, 0, 0, 0, 0, 0, 1943, - 0, 0, 0, 1508, 0, 0, 1102, 0, 0, 0, - 1102, 0, 0, 0, 2288, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 497, 0, 0, 497, 451, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, + 1827, 0, 0, 579, 0, 0, 1894, 1895, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1839, 0, + 0, 0, 0, 0, 1845, 0, 0, 0, 0, 774, + 0, 0, 620, 0, 1851, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 497, 166, 938, + 938, 938, 0, 0, 0, 0, 0, 0, 0, 497, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, + 0, 0, 1946, 0, 0, 0, 497, 0, 0, 0, + 1144, 0, 1003, 1005, 497, 0, 0, 0, 0, 0, + 0, 497, 497, 1961, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 452, 0, 0, 0, 620, + 0, 0, 0, 1018, 0, 497, 0, 1023, 1024, 1025, + 1026, 1027, 1028, 1029, 1030, 0, 1033, 1035, 1038, 1038, + 1038, 1035, 1038, 1038, 1035, 1038, 1051, 1052, 1053, 1054, + 1055, 1056, 1057, 0, 0, 1222, 0, 0, 1063, 0, + 1217, 0, 34, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 620, 0, 0, 1216, + 0, 0, 1947, 1222, 0, 1217, 1217, 0, 0, 1100, + 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1268, 0, 0, + 0, 1132, 0, 0, 0, 0, 0, 0, 0, 0, + 452, 0, 0, 0, 0, 0, 0, 0, 497, 0, + 0, 0, 0, 0, 2035, 1313, 0, 0, 2037, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2046, + 2047, 452, 0, 0, 1145, 0, 0, 0, 452, 0, + 0, 0, 0, 0, 0, 2061, 0, 1336, 1337, 452, + 452, 452, 452, 452, 452, 452, 0, 0, 770, 0, + 0, 1216, 2070, 2071, 0, 1839, 2075, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 452, 1158, 1161, 1162, 1163, 1164, + 1165, 1166, 0, 1167, 1168, 1169, 1170, 1171, 1146, 1147, + 1148, 1149, 1130, 1131, 1159, 0, 1133, 0, 1134, 1135, + 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1150, 1151, + 1152, 1153, 1154, 1155, 1156, 1157, 0, 0, 2113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 606, 1313, 0, 0, + 0, 606, 606, 0, 0, 606, 606, 606, 0, 0, + 0, 1217, 0, 0, 0, 0, 0, 0, 1216, 0, + 0, 0, 881, 0, 886, 0, 2141, 888, 0, 0, + 0, 606, 606, 606, 606, 606, 0, 0, 0, 0, + 1268, 0, 1160, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 452, 0, 0, 0, 0, 0, 1313, 452, 0, + 452, 1839, 2110, 0, 0, 0, 0, 0, 452, 452, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2125, 2126, 2127, 0, 0, 0, 0, 0, 2187, + 2188, 2189, 2190, 0, 2194, 0, 2195, 2196, 2198, 0, + 0, 0, 2199, 2200, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2142, 2142, 2142, 0, + 0, 0, 0, 0, 0, 0, 0, 938, 938, 938, + 2157, 0, 2159, 0, 0, 0, 0, 0, 1839, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1839, 2233, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, + 0, 0, 1093, 0, 0, 1104, 1193, 1839, 0, 0, + 620, 0, 0, 0, 0, 0, 0, 0, 0, 103, + 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2310, 2311, 0, 135, 0, 0, 0, 0, 124, 0, + 0, 0, 0, 1839, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2237, 142, 0, 143, 0, + 0, 452, 0, 1197, 1198, 134, 133, 160, 452, 0, + 1216, 0, 2251, 452, 452, 0, 0, 452, 0, 1650, + 1839, 0, 0, 0, 0, 452, 0, 620, 620, 0, + 0, 0, 452, 0, 0, 0, 0, 0, 0, 1505, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1839, 0, 0, 0, 0, 0, 0, 0, 0, + 452, 129, 1199, 136, 0, 1196, 0, 130, 131, 0, + 0, 1122, 146, 0, 0, 0, 0, 0, 0, 0, + 0, 151, 0, 35, 36, 37, 72, 39, 40, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 76, 0, 0, 0, 41, 67, 68, + 0, 65, 69, 0, 0, 0, 0, 0, 606, 606, + 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, + 0, 0, 0, 0, 0, 0, 0, 1253, 0, 54, + 0, 0, 0, 0, 1839, 452, 0, 0, 0, 71, + 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1294, 0, 0, 0, + 0, 0, 0, 0, 0, 606, 452, 138, 0, 0, + 0, 0, 0, 0, 0, 0, 1217, 452, 452, 452, + 452, 452, 0, 0, 0, 0, 0, 1323, 0, 1762, + 0, 0, 0, 452, 1327, 0, 452, 452, 0, 0, + 452, 1772, 1313, 0, 0, 1338, 1339, 1340, 1341, 1342, + 1343, 1344, 0, 0, 0, 0, 0, 44, 47, 50, + 49, 52, 132, 64, 0, 0, 70, 0, 0, 0, + 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, + 1104, 0, 0, 0, 0, 0, 0, 0, 53, 75, + 74, 0, 0, 62, 63, 51, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, + 0, 0, 1836, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1313, 0, 55, 56, 0, 57, 58, 59, + 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 452, 452, 452, + 452, 452, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1680, 452, 452, 583, 0, 0, 139, 144, + 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, + 0, 0, 0, 0, 156, 157, 158, 159, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1480, 606, 0, + 0, 0, 1717, 0, 1484, 0, 1487, 0, 0, 0, + 0, 0, 0, 0, 0, 1506, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1100, 73, 0, + 0, 0, 0, 0, 1744, 1745, 0, 0, 1100, 1100, + 1100, 1100, 1100, 0, 0, 0, 452, 0, 0, 0, + 0, 0, 0, 0, 1505, 0, 0, 1100, 0, 1217, + 0, 1100, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1995, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 452, 0, 0, 0, 0, 0, 1852, 0, 0, 0, + 0, 1217, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 452, 0, 0, 452, 0, + 0, 0, 0, 0, 0, 0, 0, 1104, 0, 0, + 0, 0, 0, 0, 1634, 0, 0, 0, 0, 1643, + 1644, 0, 0, 1648, 0, 0, 0, 0, 0, 0, + 0, 1651, 0, 0, 0, 0, 0, 0, 1654, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2016, 0, 0, 0, - 1863, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2029, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2032, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2043, 0, 0, 2046, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1658, 0, 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1944, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 452, 1100, 0, 452, 452, + 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1955, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1102, 0, 0, 0, 0, 0, 0, 2125, 0, 0, - 2126, 2127, 2128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1769, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, + 0, 0, 0, 2058, 2059, 2060, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1830, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1869, 1870, 1871, 1872, 1873, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1104, + 1879, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1944, 0, + 34, 0, 1944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1932, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2069, 0, 0, 0, 0, 0, 0, - 2075, 2076, 2077, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2251, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1944, 0, 0, 0, 0, 0, + 0, 0, 1978, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2226, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1999, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2012, 0, 0, + 0, 0, 0, 0, 34, 0, 0, 2015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2026, 0, 0, 2029, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1955, 0, 34, 0, 1955, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 748, 734, 395, 0, 681, 751, - 652, 669, 761, 672, 675, 716, 631, 694, 318, 666, - 0, 656, 627, 662, 628, 654, 683, 224, 651, 736, - 698, 750, 275, 221, 633, 657, 332, 671, 176, 718, - 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, - 291, 330, 389, 324, 757, 279, 705, 0, 380, 303, - 1955, 0, 0, 685, 740, 692, 730, 680, 717, 641, - 704, 752, 667, 713, 753, 265, 207, 175, 315, 381, - 239, 0, 2245, 0, 167, 168, 169, 34, 2295, 2296, - 0, 0, 0, 0, 0, 198, 0, 205, 710, 747, - 664, 712, 219, 263, 226, 218, 399, 758, 739, 0, - 191, 749, 687, 715, 764, 626, 707, 0, 629, 632, - 760, 743, 660, 229, 0, 0, 0, 0, 0, 34, - 0, 684, 693, 727, 678, 0, 0, 0, 0, 0, - 0, 0, 0, 658, 0, 703, 0, 0, 0, 637, - 630, 0, 0, 0, 0, 682, 0, 0, 0, 640, - 0, 659, 728, 0, 624, 247, 634, 304, 0, 732, - 742, 679, 431, 746, 677, 676, 722, 638, 738, 670, - 274, 636, 271, 171, 187, 0, 668, 314, 354, 360, - 737, 655, 663, 210, 661, 358, 328, 416, 194, 237, - 351, 333, 356, 702, 720, 357, 280, 404, 346, 414, - 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, - 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, - 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, - 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, - 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, - 446, 190, 427, 183, 942, 426, 310, 403, 411, 299, - 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, - 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, - 447, 195, 196, 197, 650, 232, 236, 242, 244, 250, - 251, 258, 276, 321, 343, 341, 347, 733, 398, 415, - 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, - 378, 272, 281, 725, 763, 327, 359, 200, 418, 379, - 645, 649, 643, 644, 696, 697, 646, 754, 755, 756, - 729, 639, 0, 647, 648, 0, 735, 744, 745, 701, - 170, 184, 277, 759, 348, 240, 444, 425, 421, 625, - 642, 216, 653, 0, 0, 665, 673, 674, 686, 688, - 689, 690, 691, 700, 708, 709, 711, 719, 721, 724, - 726, 731, 741, 762, 172, 173, 185, 193, 203, 215, - 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, - 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, - 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, - 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, - 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, - 249, 413, 435, 0, 286, 699, 706, 288, 234, 252, - 262, 714, 424, 384, 189, 355, 241, 178, 206, 192, - 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, - 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, - 334, 695, 723, 284, 396, 397, 748, 734, 395, 0, - 681, 751, 652, 669, 761, 672, 675, 716, 631, 694, - 318, 666, 0, 656, 627, 662, 628, 654, 683, 224, - 651, 736, 698, 750, 275, 221, 633, 657, 332, 671, - 176, 718, 371, 209, 285, 282, 402, 235, 227, 223, - 208, 259, 291, 330, 389, 324, 757, 279, 705, 0, - 380, 303, 0, 0, 0, 685, 740, 692, 730, 680, - 717, 641, 704, 752, 667, 713, 753, 265, 207, 175, - 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 710, 747, 664, 712, 219, 263, 226, 218, 399, 758, - 739, 0, 191, 749, 687, 715, 764, 626, 707, 0, - 629, 632, 760, 743, 660, 229, 0, 0, 0, 0, - 0, 0, 0, 684, 693, 727, 678, 0, 0, 0, - 0, 0, 0, 1947, 0, 658, 0, 703, 0, 0, - 0, 637, 630, 0, 0, 0, 0, 682, 0, 0, - 0, 640, 0, 659, 728, 0, 624, 247, 634, 304, - 0, 732, 742, 679, 431, 746, 677, 676, 722, 638, - 738, 670, 274, 636, 271, 171, 187, 0, 668, 314, - 354, 360, 737, 655, 663, 210, 661, 358, 328, 416, - 194, 237, 351, 333, 356, 702, 720, 357, 280, 404, - 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, - 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, - 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, - 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, - 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, - 408, 211, 446, 190, 427, 183, 942, 426, 310, 403, - 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, - 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, - 382, 420, 447, 195, 196, 197, 650, 232, 236, 242, - 244, 250, 251, 258, 276, 321, 343, 341, 347, 733, - 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, - 309, 257, 378, 272, 281, 725, 763, 327, 359, 200, - 418, 379, 645, 649, 643, 644, 696, 697, 646, 754, - 755, 756, 729, 639, 0, 647, 648, 0, 735, 744, - 745, 701, 170, 184, 277, 759, 348, 240, 444, 425, - 421, 625, 642, 216, 653, 0, 0, 665, 673, 674, - 686, 688, 689, 690, 691, 700, 708, 709, 711, 719, - 721, 724, 726, 731, 741, 762, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, - 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, - 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, - 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, - 429, 434, 249, 413, 435, 0, 286, 699, 706, 288, - 234, 252, 262, 714, 424, 384, 189, 355, 241, 178, - 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, - 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, - 300, 220, 334, 695, 723, 284, 396, 397, 748, 734, - 395, 0, 681, 751, 652, 669, 761, 672, 675, 716, - 631, 694, 318, 666, 0, 656, 627, 662, 628, 654, - 683, 224, 651, 736, 698, 750, 275, 221, 633, 657, - 332, 671, 176, 718, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 757, 279, - 705, 0, 380, 303, 0, 0, 0, 685, 740, 692, - 730, 680, 717, 641, 704, 752, 667, 713, 753, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 710, 747, 664, 712, 219, 263, 226, 218, - 399, 758, 739, 0, 191, 749, 687, 715, 764, 626, - 707, 0, 629, 632, 760, 743, 660, 229, 0, 0, - 0, 0, 0, 0, 0, 684, 693, 727, 678, 0, - 0, 0, 0, 0, 0, 1781, 0, 658, 0, 703, - 0, 0, 0, 637, 630, 0, 0, 0, 0, 682, - 0, 0, 0, 640, 0, 659, 728, 0, 624, 247, - 634, 304, 0, 732, 742, 679, 431, 746, 677, 676, - 722, 638, 738, 670, 274, 636, 271, 171, 187, 0, - 668, 314, 354, 360, 737, 655, 663, 210, 661, 358, - 328, 416, 194, 237, 351, 333, 356, 702, 720, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 942, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 650, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 733, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 725, 763, 327, - 359, 200, 418, 379, 645, 649, 643, 644, 696, 697, - 646, 754, 755, 756, 729, 639, 0, 647, 648, 0, - 735, 744, 745, 701, 170, 184, 277, 759, 348, 240, - 444, 425, 421, 625, 642, 216, 653, 0, 0, 665, - 673, 674, 686, 688, 689, 690, 691, 700, 708, 709, - 711, 719, 721, 724, 726, 731, 741, 762, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 699, - 706, 288, 234, 252, 262, 714, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 695, 723, 284, 396, 397, - 748, 734, 395, 0, 681, 751, 652, 669, 761, 672, - 675, 716, 631, 694, 318, 666, 0, 656, 627, 662, - 628, 654, 683, 224, 651, 736, 698, 750, 275, 221, - 633, 657, 332, 671, 176, 718, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 757, 279, 705, 0, 380, 303, 0, 0, 0, 685, - 740, 692, 730, 680, 717, 641, 704, 752, 667, 713, - 753, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 710, 747, 664, 712, 219, 263, - 226, 218, 399, 758, 739, 0, 191, 749, 687, 715, - 764, 626, 707, 0, 629, 632, 760, 743, 660, 229, - 0, 0, 0, 0, 0, 0, 0, 684, 693, 727, - 678, 0, 0, 0, 0, 0, 0, 1485, 0, 658, - 0, 703, 0, 0, 0, 637, 630, 0, 0, 0, - 0, 682, 0, 0, 0, 640, 0, 659, 728, 0, - 624, 247, 634, 304, 0, 732, 742, 679, 431, 746, - 677, 676, 722, 638, 738, 670, 274, 636, 271, 171, - 187, 0, 668, 314, 354, 360, 737, 655, 663, 210, - 661, 358, 328, 416, 194, 237, 351, 333, 356, 702, - 720, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 942, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 650, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 733, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 725, - 763, 327, 359, 200, 418, 379, 645, 649, 643, 644, - 696, 697, 646, 754, 755, 756, 729, 639, 0, 647, - 648, 0, 735, 744, 745, 701, 170, 184, 277, 759, - 348, 240, 444, 425, 421, 625, 642, 216, 653, 0, - 0, 665, 673, 674, 686, 688, 689, 690, 691, 700, - 708, 709, 711, 719, 721, 724, 726, 731, 741, 762, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 699, 706, 288, 234, 252, 262, 714, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 695, 723, 284, - 396, 397, 748, 734, 395, 0, 681, 751, 652, 669, - 761, 672, 675, 716, 631, 694, 318, 666, 0, 656, - 627, 662, 628, 654, 683, 224, 651, 736, 698, 750, - 275, 221, 633, 657, 332, 671, 176, 718, 371, 209, - 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, - 389, 324, 757, 279, 705, 0, 380, 303, 0, 0, - 0, 685, 740, 692, 730, 680, 717, 641, 704, 752, - 667, 713, 753, 265, 207, 175, 315, 381, 239, 71, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 710, 747, 664, 712, - 219, 263, 226, 218, 399, 758, 739, 0, 191, 749, - 687, 715, 764, 626, 707, 0, 629, 632, 760, 743, - 660, 229, 0, 0, 0, 0, 0, 0, 0, 684, - 693, 727, 678, 0, 0, 0, 0, 0, 0, 0, - 0, 658, 0, 703, 0, 0, 0, 637, 630, 0, - 0, 0, 0, 682, 0, 0, 0, 640, 0, 659, - 728, 0, 624, 247, 634, 304, 0, 732, 742, 679, - 431, 746, 677, 676, 722, 638, 738, 670, 274, 636, - 271, 171, 187, 0, 668, 314, 354, 360, 737, 655, - 663, 210, 661, 358, 328, 416, 194, 237, 351, 333, - 356, 702, 720, 357, 280, 404, 346, 414, 432, 433, - 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, - 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, - 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, - 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, - 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, - 427, 183, 942, 426, 310, 403, 411, 299, 290, 182, - 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, - 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, - 196, 197, 650, 232, 236, 242, 244, 250, 251, 258, - 276, 321, 343, 341, 347, 733, 398, 415, 423, 430, - 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, - 281, 725, 763, 327, 359, 200, 418, 379, 645, 649, - 643, 644, 696, 697, 646, 754, 755, 756, 729, 639, - 0, 647, 648, 0, 735, 744, 745, 701, 170, 184, - 277, 759, 348, 240, 444, 425, 421, 625, 642, 216, - 653, 0, 0, 665, 673, 674, 686, 688, 689, 690, - 691, 700, 708, 709, 711, 719, 721, 724, 726, 731, - 741, 762, 172, 173, 185, 193, 203, 215, 230, 238, - 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, - 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, - 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, - 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, - 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, - 435, 0, 286, 699, 706, 288, 234, 252, 262, 714, - 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, - 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, - 201, 370, 390, 391, 392, 394, 300, 220, 334, 695, - 723, 284, 396, 397, 748, 734, 395, 0, 681, 751, - 652, 669, 761, 672, 675, 716, 631, 694, 318, 666, - 0, 656, 627, 662, 628, 654, 683, 224, 651, 736, - 698, 750, 275, 221, 633, 657, 332, 671, 176, 718, - 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, - 291, 330, 389, 324, 757, 279, 705, 0, 380, 303, - 0, 0, 0, 685, 740, 692, 730, 680, 717, 641, - 704, 752, 667, 713, 753, 265, 207, 175, 315, 381, - 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, - 0, 0, 0, 0, 0, 198, 0, 205, 710, 747, - 664, 712, 219, 263, 226, 218, 399, 758, 739, 0, - 191, 749, 687, 715, 764, 626, 707, 0, 629, 632, - 760, 743, 660, 229, 0, 0, 0, 0, 0, 0, - 0, 684, 693, 727, 678, 0, 0, 0, 0, 0, - 0, 0, 0, 658, 0, 703, 0, 0, 0, 637, - 630, 0, 0, 0, 0, 682, 0, 0, 0, 640, - 0, 659, 728, 0, 624, 247, 634, 304, 0, 732, - 742, 679, 431, 746, 677, 676, 722, 638, 738, 670, - 274, 636, 271, 171, 187, 0, 668, 314, 354, 360, - 737, 655, 663, 210, 661, 358, 328, 416, 194, 237, - 351, 333, 356, 702, 720, 357, 280, 404, 346, 414, - 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, - 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, - 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, - 369, 0, 0, 445, 181, 410, 385, 298, 267, 268, - 180, 0, 350, 222, 243, 212, 317, 407, 408, 211, - 446, 190, 427, 183, 942, 426, 310, 403, 411, 299, - 290, 182, 409, 297, 289, 273, 233, 254, 344, 283, - 345, 255, 306, 305, 307, 0, 177, 0, 382, 420, - 447, 195, 196, 197, 650, 232, 236, 242, 244, 250, - 251, 258, 276, 321, 343, 341, 347, 733, 398, 415, - 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, - 378, 272, 281, 725, 763, 327, 359, 200, 418, 379, - 645, 649, 643, 644, 696, 697, 646, 754, 755, 756, - 729, 639, 0, 647, 648, 0, 735, 744, 745, 701, - 170, 184, 277, 759, 348, 240, 444, 425, 421, 625, - 642, 216, 653, 0, 0, 665, 673, 674, 686, 688, - 689, 690, 691, 700, 708, 709, 711, 719, 721, 724, - 726, 731, 741, 762, 172, 173, 185, 193, 203, 215, - 230, 238, 248, 253, 256, 260, 261, 264, 269, 287, - 292, 293, 294, 295, 311, 312, 313, 316, 319, 320, - 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, - 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, - 373, 374, 375, 383, 387, 405, 406, 417, 429, 434, - 249, 413, 435, 0, 286, 699, 706, 288, 234, 252, - 262, 714, 424, 384, 189, 355, 241, 178, 206, 192, - 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, - 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, - 334, 695, 723, 284, 396, 397, 748, 734, 395, 0, - 681, 751, 652, 669, 761, 672, 675, 716, 631, 694, - 318, 666, 0, 656, 627, 662, 628, 654, 683, 224, - 651, 736, 698, 750, 275, 221, 633, 657, 332, 671, - 176, 718, 371, 209, 285, 282, 402, 235, 227, 223, - 208, 259, 291, 330, 389, 324, 757, 279, 705, 0, - 380, 303, 0, 0, 0, 685, 740, 692, 730, 680, - 717, 641, 704, 752, 667, 713, 753, 265, 207, 175, - 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 710, 747, 664, 712, 219, 263, 226, 218, 399, 758, - 739, 0, 765, 749, 687, 715, 764, 626, 707, 0, - 629, 632, 760, 743, 660, 229, 0, 0, 0, 0, - 0, 0, 0, 684, 693, 727, 678, 0, 0, 0, - 0, 0, 0, 0, 0, 658, 0, 703, 0, 0, - 0, 637, 630, 0, 0, 0, 0, 682, 0, 0, - 0, 640, 0, 659, 728, 0, 624, 247, 634, 304, - 0, 732, 742, 679, 431, 746, 677, 676, 722, 638, - 738, 670, 274, 636, 271, 171, 187, 0, 668, 314, - 354, 360, 737, 655, 663, 210, 661, 358, 328, 416, - 194, 237, 351, 333, 356, 702, 720, 357, 280, 404, - 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, - 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, - 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, - 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, - 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, - 408, 211, 446, 190, 427, 183, 635, 426, 310, 403, - 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, - 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, - 382, 420, 447, 195, 196, 197, 650, 232, 236, 242, - 244, 250, 251, 258, 276, 321, 343, 341, 347, 733, - 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, - 623, 617, 616, 272, 281, 725, 763, 327, 359, 200, - 418, 379, 645, 649, 643, 644, 696, 697, 646, 754, - 755, 756, 729, 639, 0, 647, 648, 0, 735, 744, - 745, 701, 170, 184, 277, 759, 348, 240, 444, 425, - 421, 625, 642, 216, 653, 0, 0, 665, 673, 674, - 686, 688, 689, 690, 691, 700, 708, 709, 711, 719, - 721, 724, 726, 731, 741, 762, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, - 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, - 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, - 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, - 429, 434, 249, 413, 435, 0, 286, 699, 706, 288, - 234, 252, 262, 714, 424, 384, 189, 355, 241, 178, - 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, - 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, - 300, 220, 334, 695, 723, 284, 396, 397, 748, 734, - 395, 0, 681, 751, 652, 669, 761, 672, 675, 716, - 631, 694, 318, 666, 0, 656, 627, 662, 628, 654, - 683, 224, 651, 736, 698, 750, 275, 221, 633, 657, - 332, 671, 176, 718, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 757, 279, - 705, 0, 380, 303, 0, 0, 0, 685, 740, 692, - 730, 680, 717, 641, 704, 752, 667, 713, 753, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 710, 747, 664, 712, 219, 263, 226, 218, - 399, 758, 739, 0, 765, 749, 687, 715, 764, 626, - 707, 0, 629, 632, 760, 743, 660, 229, 0, 0, - 0, 0, 0, 0, 0, 684, 693, 727, 678, 0, - 0, 0, 0, 0, 0, 0, 0, 658, 0, 703, - 0, 0, 0, 637, 630, 0, 0, 0, 0, 682, - 0, 0, 0, 640, 0, 659, 728, 0, 624, 247, - 634, 304, 0, 732, 742, 679, 431, 746, 677, 676, - 722, 638, 738, 670, 274, 636, 271, 171, 187, 0, - 668, 314, 354, 360, 737, 655, 663, 210, 661, 358, - 328, 416, 194, 237, 351, 333, 356, 702, 720, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 1110, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 635, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 650, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 733, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 623, 617, 616, 272, 281, 725, 763, 327, - 359, 200, 418, 379, 645, 649, 643, 644, 696, 697, - 646, 754, 755, 756, 729, 639, 0, 647, 648, 0, - 735, 744, 745, 701, 170, 184, 277, 759, 348, 240, - 444, 425, 421, 625, 642, 216, 653, 0, 0, 665, - 673, 674, 686, 688, 689, 690, 691, 700, 708, 709, - 711, 719, 721, 724, 726, 731, 741, 762, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 699, - 706, 288, 234, 252, 262, 714, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 695, 723, 284, 396, 397, - 748, 734, 395, 0, 681, 751, 652, 669, 761, 672, - 675, 716, 631, 694, 318, 666, 0, 656, 627, 662, - 628, 654, 683, 224, 651, 736, 698, 750, 275, 221, - 633, 657, 332, 671, 176, 718, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 757, 279, 705, 0, 380, 303, 0, 0, 0, 685, - 740, 692, 730, 680, 717, 641, 704, 752, 667, 713, - 753, 265, 207, 175, 315, 381, 239, 0, 0, 0, - 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, - 0, 198, 0, 205, 710, 747, 664, 712, 219, 263, - 226, 218, 399, 758, 739, 0, 765, 749, 687, 715, - 764, 626, 707, 0, 629, 632, 760, 743, 660, 229, - 0, 0, 0, 0, 0, 0, 0, 684, 693, 727, - 678, 0, 0, 0, 0, 0, 0, 0, 0, 658, - 0, 703, 0, 0, 0, 637, 630, 0, 0, 0, - 0, 682, 0, 0, 0, 640, 0, 659, 728, 0, - 624, 247, 634, 304, 0, 732, 742, 679, 431, 746, - 677, 676, 722, 638, 738, 670, 274, 636, 271, 171, - 187, 0, 668, 314, 354, 360, 737, 655, 663, 210, - 661, 358, 328, 416, 194, 237, 351, 333, 356, 702, - 720, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 614, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 635, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 650, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 733, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 623, 617, 616, 272, 281, 725, - 763, 327, 359, 200, 418, 379, 645, 649, 643, 644, - 696, 697, 646, 754, 755, 756, 729, 639, 0, 647, - 648, 0, 735, 744, 745, 701, 170, 184, 277, 759, - 348, 240, 444, 425, 421, 625, 642, 216, 653, 0, - 0, 665, 673, 674, 686, 688, 689, 690, 691, 700, - 708, 709, 711, 719, 721, 724, 726, 731, 741, 762, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 699, 706, 288, 234, 252, 262, 714, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 695, 723, 284, - 396, 397, 395, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 1413, 0, 514, - 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, - 0, 1414, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, - 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, - 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, - 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 525, 526, 604, 0, 0, - 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, - 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, - 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 559, 570, 565, 566, - 563, 564, 558, 562, 561, 560, 573, 550, 551, 552, - 553, 555, 0, 567, 568, 554, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 514, 0, 0, 0, 224, 513, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, + 0, 2105, 0, 0, 2106, 2107, 2108, 0, 0, 748, + 734, 395, 0, 681, 751, 652, 669, 761, 672, 675, + 716, 631, 694, 318, 666, 0, 656, 627, 662, 628, + 654, 683, 224, 651, 736, 698, 750, 275, 221, 633, + 657, 332, 671, 176, 718, 371, 209, 285, 282, 402, + 235, 227, 223, 208, 259, 291, 330, 389, 324, 757, + 279, 705, 0, 380, 303, 0, 0, 0, 685, 740, + 692, 730, 680, 717, 641, 704, 752, 667, 713, 753, + 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, + 168, 169, 0, 2279, 2280, 0, 0, 0, 0, 0, + 198, 0, 205, 710, 747, 664, 712, 219, 263, 226, + 218, 399, 758, 739, 0, 191, 749, 687, 715, 764, + 626, 707, 0, 629, 632, 760, 743, 660, 229, 0, + 0, 0, 0, 0, 0, 0, 684, 693, 727, 678, + 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, + 703, 0, 0, 0, 637, 630, 0, 0, 0, 0, + 682, 0, 0, 0, 640, 0, 659, 728, 0, 624, + 247, 634, 304, 0, 732, 742, 679, 431, 746, 677, + 676, 722, 638, 738, 670, 274, 636, 271, 171, 187, + 2232, 668, 314, 354, 360, 737, 655, 663, 210, 661, + 358, 328, 416, 194, 237, 351, 333, 356, 702, 720, + 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, + 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, + 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, + 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, + 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, + 212, 317, 407, 408, 211, 446, 190, 427, 183, 940, + 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, + 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, + 0, 177, 0, 382, 420, 447, 195, 196, 197, 650, + 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, + 341, 347, 733, 398, 415, 423, 430, 436, 437, 441, + 438, 439, 442, 309, 257, 378, 272, 281, 725, 763, + 327, 359, 200, 418, 379, 645, 649, 643, 644, 696, + 697, 646, 754, 755, 756, 729, 639, 0, 647, 648, + 0, 735, 744, 745, 701, 170, 184, 277, 759, 348, + 240, 444, 425, 421, 625, 642, 216, 653, 0, 0, + 665, 673, 674, 686, 688, 689, 690, 691, 700, 708, + 709, 711, 719, 721, 724, 726, 731, 741, 762, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, + 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, + 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, + 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, + 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, + 699, 706, 288, 234, 252, 262, 714, 424, 384, 189, + 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, + 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, + 391, 392, 394, 300, 220, 334, 695, 723, 284, 396, + 397, 748, 734, 395, 0, 681, 751, 652, 669, 761, + 672, 675, 716, 631, 694, 318, 666, 0, 656, 627, + 662, 628, 654, 683, 224, 651, 736, 698, 750, 275, + 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 757, 279, 705, 0, 380, 303, 0, 0, 0, + 685, 740, 692, 730, 680, 717, 641, 704, 752, 667, + 713, 753, 265, 207, 175, 315, 381, 239, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 710, 747, 664, 712, 219, + 263, 226, 218, 399, 758, 739, 0, 191, 749, 687, + 715, 764, 626, 707, 0, 629, 632, 760, 743, 660, + 229, 0, 0, 0, 0, 0, 0, 0, 684, 693, + 727, 678, 0, 0, 0, 0, 0, 0, 1936, 0, + 658, 0, 703, 0, 0, 0, 637, 630, 0, 0, + 0, 0, 682, 0, 0, 0, 640, 0, 659, 728, + 0, 624, 247, 634, 304, 0, 732, 742, 679, 431, + 746, 677, 676, 722, 638, 738, 670, 274, 636, 271, + 171, 187, 0, 668, 314, 354, 360, 737, 655, 663, + 210, 661, 358, 328, 416, 194, 237, 351, 333, 356, + 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 940, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 650, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, + 725, 763, 327, 359, 200, 418, 379, 645, 649, 643, + 644, 696, 697, 646, 754, 755, 756, 729, 639, 0, + 647, 648, 0, 735, 744, 745, 701, 170, 184, 277, + 759, 348, 240, 444, 425, 421, 625, 642, 216, 653, + 0, 0, 665, 673, 674, 686, 688, 689, 690, 691, + 700, 708, 709, 711, 719, 721, 724, 726, 731, 741, + 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 695, 723, + 284, 396, 397, 748, 734, 395, 0, 681, 751, 652, + 669, 761, 672, 675, 716, 631, 694, 318, 666, 0, + 656, 627, 662, 628, 654, 683, 224, 651, 736, 698, + 750, 275, 221, 633, 657, 332, 671, 176, 718, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 757, 279, 705, 0, 380, 303, 0, + 0, 0, 685, 740, 692, 730, 680, 717, 641, 704, + 752, 667, 713, 753, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 710, 747, 664, + 712, 219, 263, 226, 218, 399, 758, 739, 0, 191, + 749, 687, 715, 764, 626, 707, 0, 629, 632, 760, + 743, 660, 229, 0, 0, 0, 0, 0, 0, 0, + 684, 693, 727, 678, 0, 0, 0, 0, 0, 0, + 1773, 0, 658, 0, 703, 0, 0, 0, 637, 630, + 0, 0, 0, 0, 682, 0, 0, 0, 640, 0, + 659, 728, 0, 624, 247, 634, 304, 0, 732, 742, + 679, 431, 746, 677, 676, 722, 638, 738, 670, 274, + 636, 271, 171, 187, 0, 668, 314, 354, 360, 737, + 655, 663, 210, 661, 358, 328, 416, 194, 237, 351, + 333, 356, 702, 720, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 940, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 650, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 733, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, + 272, 281, 725, 763, 327, 359, 200, 418, 379, 645, + 649, 643, 644, 696, 697, 646, 754, 755, 756, 729, + 639, 0, 647, 648, 0, 735, 744, 745, 701, 170, + 184, 277, 759, 348, 240, 444, 425, 421, 625, 642, + 216, 653, 0, 0, 665, 673, 674, 686, 688, 689, + 690, 691, 700, 708, 709, 711, 719, 721, 724, 726, + 731, 741, 762, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 699, 706, 288, 234, 252, 262, + 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 695, 723, 284, 396, 397, 748, 734, 395, 0, 681, + 751, 652, 669, 761, 672, 675, 716, 631, 694, 318, + 666, 0, 656, 627, 662, 628, 654, 683, 224, 651, + 736, 698, 750, 275, 221, 633, 657, 332, 671, 176, + 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 757, 279, 705, 0, 380, + 303, 0, 0, 0, 685, 740, 692, 730, 680, 717, + 641, 704, 752, 667, 713, 753, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 710, + 747, 664, 712, 219, 263, 226, 218, 399, 758, 739, + 0, 191, 749, 687, 715, 764, 626, 707, 0, 629, + 632, 760, 743, 660, 229, 0, 0, 0, 0, 0, + 0, 0, 684, 693, 727, 678, 0, 0, 0, 0, + 0, 0, 1482, 0, 658, 0, 703, 0, 0, 0, + 637, 630, 0, 0, 0, 0, 682, 0, 0, 0, + 640, 0, 659, 728, 0, 624, 247, 634, 304, 0, + 732, 742, 679, 431, 746, 677, 676, 722, 638, 738, + 670, 274, 636, 271, 171, 187, 0, 668, 314, 354, + 360, 737, 655, 663, 210, 661, 358, 328, 416, 194, + 237, 351, 333, 356, 702, 720, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 940, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 650, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 733, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, + 257, 378, 272, 281, 725, 763, 327, 359, 200, 418, + 379, 645, 649, 643, 644, 696, 697, 646, 754, 755, + 756, 729, 639, 0, 647, 648, 0, 735, 744, 745, + 701, 170, 184, 277, 759, 348, 240, 444, 425, 421, + 625, 642, 216, 653, 0, 0, 665, 673, 674, 686, + 688, 689, 690, 691, 700, 708, 709, 711, 719, 721, + 724, 726, 731, 741, 762, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 699, 706, 288, 234, + 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 695, 723, 284, 396, 397, 748, 734, 395, + 0, 681, 751, 652, 669, 761, 672, 675, 716, 631, + 694, 318, 666, 0, 656, 627, 662, 628, 654, 683, + 224, 651, 736, 698, 750, 275, 221, 633, 657, 332, + 671, 176, 718, 371, 209, 285, 282, 402, 235, 227, + 223, 208, 259, 291, 330, 389, 324, 757, 279, 705, + 0, 380, 303, 0, 0, 0, 685, 740, 692, 730, + 680, 717, 641, 704, 752, 667, 713, 753, 265, 207, + 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 710, 747, 664, 712, 219, 263, 226, 218, 399, + 758, 739, 0, 191, 749, 687, 715, 764, 626, 707, + 0, 629, 632, 760, 743, 660, 229, 0, 0, 0, + 0, 0, 0, 0, 684, 693, 727, 678, 0, 0, + 0, 0, 0, 0, 0, 0, 658, 0, 703, 0, + 0, 0, 637, 630, 0, 0, 0, 0, 682, 0, + 0, 0, 640, 0, 659, 728, 0, 624, 247, 634, + 304, 0, 732, 742, 679, 431, 746, 677, 676, 722, + 638, 738, 670, 274, 636, 271, 171, 187, 0, 668, + 314, 354, 360, 737, 655, 663, 210, 661, 358, 328, + 416, 194, 237, 351, 333, 356, 702, 720, 357, 280, + 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, + 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, + 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, + 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, + 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, + 407, 408, 211, 446, 190, 427, 183, 940, 426, 310, + 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, + 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, + 0, 382, 420, 447, 195, 196, 197, 650, 232, 236, + 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, + 733, 398, 415, 423, 430, 436, 437, 441, 438, 439, + 442, 309, 257, 378, 272, 281, 725, 763, 327, 359, + 200, 418, 379, 645, 649, 643, 644, 696, 697, 646, + 754, 755, 756, 729, 639, 0, 647, 648, 0, 735, + 744, 745, 701, 170, 184, 277, 759, 348, 240, 444, + 425, 421, 625, 642, 216, 653, 0, 0, 665, 673, + 674, 686, 688, 689, 690, 691, 700, 708, 709, 711, + 719, 721, 724, 726, 731, 741, 762, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, + 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, + 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, + 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, + 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, + 417, 429, 434, 249, 413, 435, 0, 286, 699, 706, + 288, 234, 252, 262, 714, 424, 384, 189, 355, 241, + 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, + 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, + 394, 300, 220, 334, 695, 723, 284, 396, 397, 748, + 734, 395, 0, 681, 751, 652, 669, 761, 672, 675, + 716, 631, 694, 318, 666, 0, 656, 627, 662, 628, + 654, 683, 224, 651, 736, 698, 750, 275, 221, 633, + 657, 332, 671, 176, 718, 371, 209, 285, 282, 402, + 235, 227, 223, 208, 259, 291, 330, 389, 324, 757, + 279, 705, 0, 380, 303, 0, 0, 0, 685, 740, + 692, 730, 680, 717, 641, 704, 752, 667, 713, 753, + 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, + 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, + 198, 0, 205, 710, 747, 664, 712, 219, 263, 226, + 218, 399, 758, 739, 0, 191, 749, 687, 715, 764, + 626, 707, 0, 629, 632, 760, 743, 660, 229, 0, + 0, 0, 0, 0, 0, 0, 684, 693, 727, 678, + 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, + 703, 0, 0, 0, 637, 630, 0, 0, 0, 0, + 682, 0, 0, 0, 640, 0, 659, 728, 0, 624, + 247, 634, 304, 0, 732, 742, 679, 431, 746, 677, + 676, 722, 638, 738, 670, 274, 636, 271, 171, 187, + 0, 668, 314, 354, 360, 737, 655, 663, 210, 661, + 358, 328, 416, 194, 237, 351, 333, 356, 702, 720, + 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, + 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, + 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, + 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, + 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, + 212, 317, 407, 408, 211, 446, 190, 427, 183, 940, + 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, + 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, + 0, 177, 0, 382, 420, 447, 195, 196, 197, 650, + 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, + 341, 347, 733, 398, 415, 423, 430, 436, 437, 441, + 438, 439, 442, 309, 257, 378, 272, 281, 725, 763, + 327, 359, 200, 418, 379, 645, 649, 643, 644, 696, + 697, 646, 754, 755, 756, 729, 639, 0, 647, 648, + 0, 735, 744, 745, 701, 170, 184, 277, 759, 348, + 240, 444, 425, 421, 625, 642, 216, 653, 0, 0, + 665, 673, 674, 686, 688, 689, 690, 691, 700, 708, + 709, 711, 719, 721, 724, 726, 731, 741, 762, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, + 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, + 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, + 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, + 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, + 699, 706, 288, 234, 252, 262, 714, 424, 384, 189, + 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, + 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, + 391, 392, 394, 300, 220, 334, 695, 723, 284, 396, + 397, 748, 734, 395, 0, 681, 751, 652, 669, 761, + 672, 675, 716, 631, 694, 318, 666, 0, 656, 627, + 662, 628, 654, 683, 224, 651, 736, 698, 750, 275, + 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 757, 279, 705, 0, 380, 303, 0, 0, 0, + 685, 740, 692, 730, 680, 717, 641, 704, 752, 667, + 713, 753, 265, 207, 175, 315, 381, 239, 0, 0, + 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 710, 747, 664, 712, 219, + 263, 226, 218, 399, 758, 739, 0, 765, 749, 687, + 715, 764, 626, 707, 0, 629, 632, 760, 743, 660, + 229, 0, 0, 0, 0, 0, 0, 0, 684, 693, + 727, 678, 0, 0, 0, 0, 0, 0, 0, 0, + 658, 0, 703, 0, 0, 0, 637, 630, 0, 0, + 0, 0, 682, 0, 0, 0, 640, 0, 659, 728, + 0, 624, 247, 634, 304, 0, 732, 742, 679, 431, + 746, 677, 676, 722, 638, 738, 670, 274, 636, 271, + 171, 187, 0, 668, 314, 354, 360, 737, 655, 663, + 210, 661, 358, 328, 416, 194, 237, 351, 333, 356, + 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 635, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 650, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 623, 617, 616, 272, 281, + 725, 763, 327, 359, 200, 418, 379, 645, 649, 643, + 644, 696, 697, 646, 754, 755, 756, 729, 639, 0, + 647, 648, 0, 735, 744, 745, 701, 170, 184, 277, + 759, 348, 240, 444, 425, 421, 625, 642, 216, 653, + 0, 0, 665, 673, 674, 686, 688, 689, 690, 691, + 700, 708, 709, 711, 719, 721, 724, 726, 731, 741, + 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 695, 723, + 284, 396, 397, 748, 734, 395, 0, 681, 751, 652, + 669, 761, 672, 675, 716, 631, 694, 318, 666, 0, + 656, 627, 662, 628, 654, 683, 224, 651, 736, 698, + 750, 275, 221, 633, 657, 332, 671, 176, 718, 371, + 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, + 330, 389, 324, 757, 279, 705, 0, 380, 303, 0, + 0, 0, 685, 740, 692, 730, 680, 717, 641, 704, + 752, 667, 713, 753, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 710, 747, 664, + 712, 219, 263, 226, 218, 399, 758, 739, 0, 765, + 749, 687, 715, 764, 626, 707, 0, 629, 632, 760, + 743, 660, 229, 0, 0, 0, 0, 0, 0, 0, + 684, 693, 727, 678, 0, 0, 0, 0, 0, 0, + 0, 0, 658, 0, 703, 0, 0, 0, 637, 630, + 0, 0, 0, 0, 682, 0, 0, 0, 640, 0, + 659, 728, 0, 624, 247, 634, 304, 0, 732, 742, + 679, 431, 746, 677, 676, 722, 638, 738, 670, 274, + 636, 271, 171, 187, 0, 668, 314, 354, 360, 737, + 655, 663, 210, 661, 358, 328, 416, 194, 237, 351, + 333, 356, 702, 720, 357, 280, 404, 346, 414, 432, + 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, + 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, + 278, 440, 186, 366, 202, 179, 388, 1108, 199, 369, + 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, + 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, + 190, 427, 183, 635, 426, 310, 403, 411, 299, 290, + 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, + 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 195, 196, 197, 650, 232, 236, 242, 244, 250, 251, + 258, 276, 321, 343, 341, 347, 733, 398, 415, 423, + 430, 436, 437, 441, 438, 439, 442, 623, 617, 616, + 272, 281, 725, 763, 327, 359, 200, 418, 379, 645, + 649, 643, 644, 696, 697, 646, 754, 755, 756, 729, + 639, 0, 647, 648, 0, 735, 744, 745, 701, 170, + 184, 277, 759, 348, 240, 444, 425, 421, 625, 642, + 216, 653, 0, 0, 665, 673, 674, 686, 688, 689, + 690, 691, 700, 708, 709, 711, 719, 721, 724, 726, + 731, 741, 762, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, + 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, + 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, + 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, + 413, 435, 0, 286, 699, 706, 288, 234, 252, 262, + 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, + 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, + 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, + 695, 723, 284, 396, 397, 748, 734, 395, 0, 681, + 751, 652, 669, 761, 672, 675, 716, 631, 694, 318, + 666, 0, 656, 627, 662, 628, 654, 683, 224, 651, + 736, 698, 750, 275, 221, 633, 657, 332, 671, 176, + 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, + 259, 291, 330, 389, 324, 757, 279, 705, 0, 380, + 303, 0, 0, 0, 685, 740, 692, 730, 680, 717, + 641, 704, 752, 667, 713, 753, 265, 207, 175, 315, + 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 710, + 747, 664, 712, 219, 263, 226, 218, 399, 758, 739, + 0, 765, 749, 687, 715, 764, 626, 707, 0, 629, + 632, 760, 743, 660, 229, 0, 0, 0, 0, 0, + 0, 0, 684, 693, 727, 678, 0, 0, 0, 0, + 0, 0, 0, 0, 658, 0, 703, 0, 0, 0, + 637, 630, 0, 0, 0, 0, 682, 0, 0, 0, + 640, 0, 659, 728, 0, 624, 247, 634, 304, 0, + 732, 742, 679, 431, 746, 677, 676, 722, 638, 738, + 670, 274, 636, 271, 171, 187, 0, 668, 314, 354, + 360, 737, 655, 663, 210, 661, 358, 328, 416, 194, + 237, 351, 333, 356, 702, 720, 357, 280, 404, 346, + 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, + 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, + 245, 174, 278, 440, 186, 366, 202, 179, 388, 614, + 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, + 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, + 211, 446, 190, 427, 183, 635, 426, 310, 403, 411, + 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, + 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, + 420, 447, 195, 196, 197, 650, 232, 236, 242, 244, + 250, 251, 258, 276, 321, 343, 341, 347, 733, 398, + 415, 423, 430, 436, 437, 441, 438, 439, 442, 623, + 617, 616, 272, 281, 725, 763, 327, 359, 200, 418, + 379, 645, 649, 643, 644, 696, 697, 646, 754, 755, + 756, 729, 639, 0, 647, 648, 0, 735, 744, 745, + 701, 170, 184, 277, 759, 348, 240, 444, 425, 421, + 625, 642, 216, 653, 0, 0, 665, 673, 674, 686, + 688, 689, 690, 691, 700, 708, 709, 711, 719, 721, + 724, 726, 731, 741, 762, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, + 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, + 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, + 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, + 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, + 434, 249, 413, 435, 0, 286, 699, 706, 288, 234, + 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, + 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, + 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, + 220, 334, 695, 723, 284, 396, 397, 395, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, + 0, 0, 1410, 0, 514, 0, 0, 0, 224, 513, + 0, 0, 0, 275, 221, 0, 1411, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, - 0, 0, 0, 0, 1524, 0, 265, 207, 175, 315, + 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, - 542, 543, 1525, 219, 263, 226, 218, 399, 0, 0, + 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 525, 526, 0, 0, 0, 0, 572, 0, 527, 0, + 525, 526, 604, 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, @@ -2241,10 +2155,10 @@ var yyAct = [...]int{ 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, - 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 71, 0, 591, + 0, 548, 549, 0, 0, 0, 0, 0, 0, 1521, + 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, - 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, + 0, 198, 536, 205, 541, 542, 543, 1522, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -2290,13 +2204,13 @@ var yyAct = [...]int{ 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 71, 0, 0, 167, 168, 169, 535, 534, + 381, 239, 71, 0, 591, 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 525, 526, 604, 0, 0, 0, 572, 0, 527, 0, + 525, 526, 0, 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, @@ -2338,7 +2252,7 @@ var yyAct = [...]int{ 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, - 167, 168, 169, 535, 1431, 537, 538, 539, 540, 0, + 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, @@ -2425,55 +2339,55 @@ var yyAct = [...]int{ 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 584, 395, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, - 514, 0, 0, 0, 224, 513, 0, 0, 0, 275, - 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, - 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, - 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, - 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, - 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 511, 528, 0, 556, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 525, 526, 0, 0, - 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, - 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 304, 0, 571, 0, 0, 431, - 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, - 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, - 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, - 0, 0, 327, 359, 200, 418, 379, 559, 570, 565, - 566, 563, 564, 558, 562, 561, 560, 573, 550, 551, - 552, 553, 555, 0, 567, 568, 554, 170, 184, 277, - 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, + 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, + 0, 0, 0, 0, 318, 0, 0, 0, 0, 514, + 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, + 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, + 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, + 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, + 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, + 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, + 167, 168, 169, 535, 1425, 537, 538, 539, 540, 0, + 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, + 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 525, 526, 604, 0, 0, + 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, + 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, + 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, + 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, + 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, + 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, + 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, + 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, + 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, + 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, + 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, + 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, + 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, + 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, + 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, + 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, + 0, 327, 359, 200, 418, 379, 559, 570, 565, 566, + 563, 564, 558, 562, 561, 560, 573, 550, 551, 552, + 553, 555, 0, 567, 568, 554, 170, 184, 277, 0, + 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, - 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, + 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, + 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, + 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, + 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, + 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, + 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, + 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, + 390, 391, 392, 394, 300, 220, 334, 584, 395, 284, + 396, 397, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 514, 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, @@ -2522,7 +2436,7 @@ var yyAct = [...]int{ 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, + 514, 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, @@ -2531,7 +2445,7 @@ var yyAct = [...]int{ 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 0, 528, 0, 556, 0, 0, 0, + 0, 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 525, 526, 0, 0, 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, @@ -2540,7 +2454,7 @@ var yyAct = [...]int{ 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, - 2289, 0, 357, 280, 404, 346, 414, 432, 433, 217, + 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, @@ -2575,7 +2489,7 @@ var yyAct = [...]int{ 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 315, 381, 239, 71, 0, 591, 167, 168, 169, 535, + 315, 381, 239, 71, 0, 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 528, @@ -2587,7 +2501,7 @@ var yyAct = [...]int{ 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, - 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, + 194, 237, 351, 333, 356, 2273, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, @@ -2623,7 +2537,7 @@ var yyAct = [...]int{ 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, - 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, + 591, 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 528, 0, 556, 0, 0, 0, @@ -2667,19 +2581,19 @@ var yyAct = [...]int{ 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, - 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, - 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, + 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, + 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, - 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 985, 984, 994, - 995, 987, 988, 989, 990, 991, 992, 993, 986, 0, - 0, 996, 0, 0, 0, 0, 0, 0, 0, 0, + 315, 381, 239, 71, 0, 0, 167, 168, 169, 535, + 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, + 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 0, 528, + 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 525, 526, 0, 0, 0, 0, 572, 0, 527, + 0, 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, - 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, + 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, @@ -2695,9 +2609,9 @@ var yyAct = [...]int{ 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, - 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 277, 0, 348, 240, 444, 425, + 418, 379, 559, 570, 565, 566, 563, 564, 558, 562, + 561, 560, 573, 550, 551, 552, 553, 555, 0, 567, + 568, 554, 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, @@ -2720,15 +2634,15 @@ var yyAct = [...]int{ 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 399, 0, 0, 0, 191, 0, 813, + 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 983, 982, 992, 993, 985, 986, 987, 988, + 989, 990, 991, 984, 0, 0, 994, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 304, 0, 0, 0, 812, 431, - 0, 0, 0, 0, 0, 809, 810, 274, 775, 271, - 171, 187, 803, 807, 314, 354, 360, 0, 0, 0, + 0, 0, 247, 0, 304, 0, 0, 0, 0, 431, + 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, + 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, @@ -2759,23 +2673,23 @@ var yyAct = [...]int{ 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, - 318, 0, 0, 0, 1088, 0, 0, 0, 0, 224, + 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, - 1090, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, - 0, 0, 191, 0, 0, 974, 975, 973, 0, 0, + 0, 0, 191, 0, 811, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 976, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, - 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, - 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, + 0, 0, 0, 810, 431, 0, 0, 0, 0, 0, + 807, 808, 274, 773, 271, 171, 187, 801, 805, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, @@ -2805,63 +2719,63 @@ var yyAct = [...]int{ 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, - 300, 220, 334, 35, 395, 284, 396, 397, 0, 0, - 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, - 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, - 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, - 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, - 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 265, 207, 175, 315, 381, 239, 71, - 0, 591, 167, 168, 169, 0, 0, 0, 0, 0, - 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, + 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, + 0, 0, 0, 0, 0, 318, 0, 0, 0, 1086, + 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, + 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, + 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, + 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, + 0, 167, 168, 169, 0, 1088, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, + 972, 973, 971, 0, 0, 0, 0, 0, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 974, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, - 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, - 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, - 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, - 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, - 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, - 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, - 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, - 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, - 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, - 427, 183, 0, 426, 310, 403, 411, 299, 290, 182, - 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, - 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, - 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, - 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, - 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, - 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, + 0, 0, 247, 0, 304, 0, 0, 0, 0, 431, + 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, + 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, + 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, + 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, + 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, + 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, + 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, + 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, + 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, + 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, + 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, + 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, + 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, + 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, + 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, + 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, + 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, - 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, - 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, - 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, - 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, - 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, - 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, - 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, - 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, - 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, - 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 1458, 0, 0, 0, 0, + 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, + 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, + 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, + 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, + 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, + 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, + 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, + 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, + 370, 390, 391, 392, 394, 300, 220, 334, 35, 395, + 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, + 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, - 0, 1272, 0, 0, 0, 0, 0, 0, 198, 0, + 175, 315, 381, 239, 71, 0, 591, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, @@ -2872,7 +2786,7 @@ var yyAct = [...]int{ 304, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, - 416, 194, 237, 351, 333, 356, 0, 1456, 357, 280, + 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, @@ -2902,25 +2816,25 @@ var yyAct = [...]int{ 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, - 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 1455, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, - 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 167, 168, 169, 0, 1269, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, - 769, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, - 431, 0, 0, 0, 0, 0, 0, 0, 274, 775, - 271, 171, 187, 773, 0, 314, 354, 360, 0, 0, + 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, + 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, - 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, + 356, 0, 1453, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, @@ -2949,23 +2863,23 @@ var yyAct = [...]int{ 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 1458, 0, 0, 0, 0, + 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, - 0, 1272, 0, 0, 0, 0, 0, 0, 198, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, 0, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, + 0, 0, 0, 274, 773, 271, 171, 187, 771, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, @@ -2997,13 +2911,13 @@ var yyAct = [...]int{ 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, - 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 1455, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, - 0, 591, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 167, 168, 169, 0, 1269, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3012,7 +2926,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, - 431, 0, 0, 0, 2163, 0, 0, 0, 274, 0, + 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, @@ -3042,55 +2956,55 @@ var yyAct = [...]int{ 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, - 201, 370, 390, 391, 392, 394, 300, 220, 334, 35, - 395, 284, 396, 397, 0, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, + 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, + 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, + 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, + 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, + 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, + 175, 315, 381, 239, 0, 0, 591, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 304, 0, 0, 0, 0, 431, 0, 0, 0, 2143, + 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, + 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, + 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, + 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, + 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, + 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, + 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, + 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, + 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, + 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, + 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, + 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, + 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, + 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, + 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, + 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, + 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, + 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, + 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, + 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, + 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, + 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, + 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, + 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, + 394, 300, 220, 334, 35, 395, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, @@ -3098,8 +3012,8 @@ var yyAct = [...]int{ 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 1477, 0, - 0, 1478, 0, 0, 198, 0, 205, 0, 0, 0, + 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, @@ -3140,13 +3054,13 @@ var yyAct = [...]int{ 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 1121, 0, 0, 0, 275, 221, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 1120, 0, 0, 0, 0, 0, 0, 198, + 169, 0, 0, 1474, 0, 0, 1475, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, @@ -3187,13 +3101,13 @@ var yyAct = [...]int{ 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 1119, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 1118, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3202,7 +3116,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 2257, 0, 0, 0, 274, + 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, @@ -3250,7 +3164,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 2163, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 2238, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, @@ -3288,7 +3202,7 @@ var yyAct = [...]int{ 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3297,7 +3211,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, + 0, 431, 0, 0, 0, 2143, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, @@ -3335,8 +3249,8 @@ var yyAct = [...]int{ 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 1272, 0, 0, 0, 0, 0, 0, 198, + 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, @@ -3383,7 +3297,7 @@ var yyAct = [...]int{ 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 1090, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 1269, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3431,7 +3345,7 @@ var yyAct = [...]int{ 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 169, 0, 1088, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, @@ -3457,7 +3371,7 @@ var yyAct = [...]int{ 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 1363, 348, 240, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, @@ -3471,7 +3385,7 @@ var yyAct = [...]int{ 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 1244, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, @@ -3505,7 +3419,7 @@ var yyAct = [...]int{ 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 184, 277, 1360, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, @@ -3519,7 +3433,7 @@ var yyAct = [...]int{ 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 1242, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 1241, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, @@ -3566,7 +3480,7 @@ var yyAct = [...]int{ 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 1240, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 1239, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, @@ -3614,7 +3528,7 @@ var yyAct = [...]int{ 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 1238, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 1237, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, @@ -3661,7 +3575,7 @@ var yyAct = [...]int{ 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 1236, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 1235, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, @@ -3709,7 +3623,7 @@ var yyAct = [...]int{ 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 1232, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 1233, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, @@ -3756,7 +3670,7 @@ var yyAct = [...]int{ 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 1230, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 1229, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, @@ -3804,7 +3718,7 @@ var yyAct = [...]int{ 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 1228, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 1227, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, @@ -3851,14 +3765,14 @@ var yyAct = [...]int{ 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 318, 0, 1225, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 1203, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3898,14 +3812,14 @@ var yyAct = [...]int{ 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 1103, 0, 0, 0, 0, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 207, 175, 315, 381, 239, 1200, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, @@ -3946,8 +3860,8 @@ var yyAct = [...]int{ 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 1094, 224, 0, 0, 0, + 1101, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, @@ -3995,13 +3909,13 @@ var yyAct = [...]int{ 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 1092, 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 950, 0, 0, 0, 0, 0, 0, 198, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, @@ -4048,7 +3962,7 @@ var yyAct = [...]int{ 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, + 0, 0, 0, 167, 168, 169, 0, 948, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4056,7 +3970,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 502, 0, 247, 0, 304, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, @@ -4083,7 +3997,7 @@ var yyAct = [...]int{ 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 501, + 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, @@ -4103,8 +4017,8 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 450, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 502, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, @@ -4131,7 +4045,7 @@ var yyAct = [...]int{ 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 406, 417, 429, 434, 501, 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, @@ -4151,7 +4065,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, + 0, 0, 0, 0, 247, 0, 304, 0, 0, 450, 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, @@ -4183,27 +4097,74 @@ var yyAct = [...]int{ 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 0, 0, 284, 396, 397, + 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, + 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, + 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, + 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, + 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, + 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, + 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, + 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, + 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, + 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, + 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, + 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, + 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, + 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, + 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, + 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, + 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, + 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, + 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, + 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, + 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, + 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, + 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, + 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, + 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, + 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, + 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, + 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, + 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, + 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, + 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, + 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, + 392, 394, 300, 220, 334, 0, 0, 284, 396, 397, } var yyPact = [...]int{ - 3040, -1000, -349, 1720, -1000, -1000, -1000, -1000, -1000, -1000, + 4167, -1000, -346, 1699, -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, 1702, 1348, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 685, 1403, -1000, 1621, 2838, -1000, 30068, 404, - -1000, 29593, 403, 2262, 30068, -1000, 120, -1000, 102, 30068, - 113, 29118, -1000, -1000, -233, 13441, 1576, -3, -4, 30068, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1363, - 1663, 1674, 1700, 1158, 1735, -1000, 11540, 11540, 349, 349, - 349, 9635, 240, -1000, 17717, 30068, 30068, 190, -1000, 1621, - -1000, -1000, 264, -1000, 253, 1318, -1000, 1317, -1000, 450, - 410, 239, 327, 325, 238, 237, 236, 235, 234, 233, - 230, 228, 273, -1000, 556, 556, -130, -132, 2334, 324, - 324, 324, 368, 1596, 1595, -1000, 546, -1000, 556, 556, - 256, 556, 556, 556, 556, 212, 211, 556, 556, 556, - 556, 556, 556, 556, 556, 556, 556, 556, 556, 556, - 556, 556, 186, 1621, 197, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1652, 1270, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 579, 1372, -1000, 1560, 2819, -1000, 29683, 398, + -1000, 29208, 396, 2240, 29683, -1000, 129, -1000, 107, 29683, + 128, 28733, -1000, -1000, -232, 13056, 1519, 28, 12, 29683, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1368, + 1615, 1621, 1646, 1107, 1604, -1000, 11155, 11155, 321, 321, + 321, 9250, -1000, -1000, 17332, 29683, 29683, 173, -1000, 1560, + -1000, -1000, 263, -1000, 236, 1303, -1000, 1302, -1000, 604, + 357, 259, 335, 334, 258, 257, 254, 251, 250, 240, + 239, 238, 266, -1000, 565, 565, -123, -127, 2840, 301, + 301, 301, 336, 1533, 1532, -1000, 554, -1000, 565, 565, + 246, 565, 565, 565, 565, 202, 201, 565, 565, 565, + 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, + 565, 565, 234, 1560, 194, -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, @@ -4231,26 +4192,26 @@ 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, -1000, 30068, 138, - 30068, -1000, 490, 30068, 649, 649, 67, 649, 649, 649, - 649, 108, 481, -6, -1000, 105, 205, 96, 189, 661, - 176, 78, -1000, -1000, 193, 661, 1035, 86, -1000, 649, - 7707, 7707, 7707, -1000, 1607, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 367, -1000, -1000, -1000, -1000, 30068, 28643, - 272, 590, -1000, -1000, -1000, 11, -1000, -1000, 1206, 879, - -1000, 13441, 3126, 1341, 1341, -1000, -1000, 445, -1000, -1000, - 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 29683, 152, + 29683, -1000, 471, 29683, 647, 647, 47, 647, 647, 647, + 647, 132, 481, 10, -1000, 124, 190, 117, 192, 629, + 126, 83, -1000, -1000, 185, 629, 991, 101, -1000, 647, + 7322, 7322, 7322, -1000, 1542, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 332, -1000, -1000, -1000, -1000, 29683, 28258, + 283, 591, -1000, -1000, -1000, 41, -1000, -1000, 1190, 556, + -1000, 13056, 2461, 1316, 1316, -1000, -1000, 426, -1000, -1000, + 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1341, 476, -1000, 12966, 1341, 1341, - 1341, 1341, 1341, 1341, 1341, 1341, 13441, 1341, 1341, 1341, - 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, 1341, - 1341, 1341, 1341, 1341, -1000, -1000, -1000, 30068, -1000, 1341, - 147, 1702, -1000, 1348, -1000, -1000, -1000, 1614, 13441, 13441, - 1702, -1000, 1518, 11540, -1000, -1000, 1679, -1000, -1000, -1000, - -1000, -1000, 716, 1719, -1000, 16291, 469, 1718, 28168, -1000, - 21518, 27693, 1316, 9153, -25, -1000, -1000, -1000, 570, 20093, + -1000, -1000, -1000, -1000, 1316, 468, -1000, 12581, 1316, 1316, + 1316, 1316, 1316, 1316, 1316, 1316, 13056, 1316, 1316, 1316, + 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, + 1316, 1316, 1316, 1316, -1000, -1000, -1000, 29683, -1000, 1316, + 139, 1652, -1000, 1270, -1000, -1000, -1000, 1550, 13056, 13056, + 1652, -1000, 1459, 11155, -1000, -1000, 1514, -1000, -1000, -1000, + -1000, -1000, 721, 1673, -1000, 15906, 456, 1669, 27783, -1000, + 21133, 27308, 1301, 8768, -36, -1000, -1000, -1000, 590, 19708, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1607, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1542, -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, @@ -4263,200 +4224,200 @@ 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, 1699, 1210, 30068, - -1000, -1000, 2890, 1022, -1000, 1402, -1000, 1204, -1000, 1375, - 1410, 400, 1022, 389, 387, 386, -1000, -79, -1000, -1000, - -1000, -1000, -1000, 556, 556, 266, 2838, 4443, -1000, -1000, - -1000, 27218, 1401, 1022, -1000, 1399, -1000, 680, 391, 433, - 433, 1022, -1000, -1000, 30068, 1022, 667, 663, 30068, 30068, - -1000, 26743, -1000, 26268, 25793, 945, 30068, 25318, 24843, 24368, - 23893, 23418, -1000, 1457, -1000, 1374, -1000, -1000, -1000, 30068, - 30068, 30068, 204, -1000, -1000, 30068, 1022, -1000, -1000, 944, - 941, 556, 556, 929, 1034, 1033, 1030, 556, 556, 926, - 1023, 21993, 177, 922, 898, 883, 924, 1016, 129, 831, - 830, 868, 30068, 1398, 30068, -1000, 179, 503, 279, 568, - 1621, 1570, 1315, 366, 399, 1022, 340, 340, -1000, 8189, - -1000, -1000, 1013, 13441, -1000, 665, 661, 661, -1000, -1000, - -1000, -1000, -1000, -1000, 649, 30068, 665, -1000, -1000, -1000, - 661, 649, 30068, 649, 649, 649, 649, 661, 661, 661, - 649, 30068, 30068, 30068, 30068, 30068, 30068, 30068, 30068, 30068, - 7707, 7707, 7707, 528, 649, -267, -1000, 1465, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 111, -1000, -1000, -1000, - -1000, -1000, 1720, -1000, -1000, -1000, -92, 1312, 22943, -1000, - -268, -269, -272, -275, -1000, -1000, -1000, -277, -281, -1000, - -1000, -1000, 13441, 13441, 13441, 13441, 908, 539, 14866, 771, - 550, 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, 14866, - 14866, 14866, 14866, 14866, 14866, 14866, 612, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1022, -1000, 1739, 1271, 1271, - 500, 500, 500, 500, 500, 500, 500, 500, 500, 15341, - 10115, 8189, 1158, 1200, 1702, 11540, 11540, 13441, 13441, 12490, - 12015, 11540, 1608, 598, 879, 30068, -1000, 1044, -1000, -1000, - 14391, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 30068, 30068, 11540, 11540, 11540, 11540, 11540, - -1000, 1302, -1000, -155, 17242, 13441, 1012, 1674, 1158, 1679, - 1626, 1733, 525, 722, 1295, -1000, 889, 1674, 19618, 1241, - -1000, 1679, -1000, -1000, -1000, 30068, -1000, -1000, 22468, -1000, - -1000, 7225, 30068, 226, 30068, -1000, 1305, 1499, -1000, -1000, - -1000, 1646, 19143, 30068, 1321, 1228, -1000, -1000, 467, 8671, - -25, -1000, 8671, 1253, -1000, -23, -60, 10590, 457, -1000, - -1000, -1000, -329, 2334, 15816, 1142, 1587, 36, -1000, -1000, - -1000, 1375, -1000, 1375, 1375, 1375, 1375, 204, 204, 204, - 204, -1000, -1000, -1000, -1000, -1000, 1396, 1395, -1000, 1375, - 1375, 1375, 1375, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1184, 29683, -1000, -1000, + 3510, 1034, -1000, 1371, -1000, 1173, -1000, 1351, 1381, 394, + 1034, 388, 387, 384, -1000, -78, -1000, -1000, -1000, -1000, + -1000, 565, 565, 230, 2819, 3990, -1000, -1000, -1000, 26833, + 1370, 1034, -1000, 1369, -1000, 652, 376, 432, 432, 1034, + -1000, -1000, 29683, 1034, 643, 627, 29683, 29683, -1000, 26358, + -1000, 25883, 25408, 896, 29683, 24933, 24458, 23983, 23508, 23033, + -1000, 1431, -1000, 1360, -1000, -1000, -1000, 29683, 29683, 29683, + 268, -1000, -1000, 29683, 1034, -1000, -1000, 878, 874, 565, + 565, 849, 987, 986, 982, 565, 565, 810, 978, 21608, + 206, 804, 800, 799, 872, 977, 130, 858, 802, 795, + 29683, 1365, 29683, -1000, 177, 524, 304, 588, 1560, 1515, + 1299, 329, 393, 1034, 310, 310, -1000, 7804, -1000, -1000, + 975, 13056, -1000, 639, 629, 629, -1000, -1000, -1000, -1000, + -1000, -1000, 647, 29683, 639, -1000, -1000, -1000, 629, 647, + 29683, 647, 647, 647, 647, 629, 629, 629, 647, 29683, + 29683, 29683, 29683, 29683, 29683, 29683, 29683, 29683, 7322, 7322, + 7322, 519, 647, -264, -1000, 1423, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 127, -1000, -1000, -1000, -1000, -1000, + 1699, -1000, -1000, -1000, -83, 1297, 22558, -1000, -265, -266, + -273, -277, -1000, -1000, -1000, -284, -286, -1000, -1000, -1000, + 13056, 13056, 13056, 13056, 778, 533, 14481, 725, 644, 14481, + 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, + 14481, 14481, 14481, 14481, 684, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1034, -1000, 1696, 1063, 1063, 483, 483, + 483, 483, 483, 483, 483, 483, 483, 14956, 9730, 7804, + 1107, 1171, 1652, 11155, 11155, 13056, 13056, 12105, 11630, 11155, + 1576, 598, 556, 29683, -1000, 947, -1000, -1000, 14006, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1393, 1393, 1393, 1376, 1376, 319, -1000, 13441, 163, 30068, - 1634, 867, 179, 344, 1432, 1022, 1022, 1022, 344, -1000, - 1031, 1005, -1000, 1291, -1000, -1000, 1697, -1000, -1000, 599, - 701, 700, 471, 30068, 154, 218, -1000, 297, -1000, 30068, - 1022, 659, 433, 1022, -1000, 1022, -1000, -1000, -1000, -1000, - 466, -1000, -1000, 1022, 1290, -1000, 1307, 769, 699, 732, - 651, 1290, -1000, -1000, -109, 1290, -1000, 1290, -1000, 1290, - -1000, 1290, -1000, 1290, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 532, 30068, 154, 612, -1000, 362, -1000, -1000, - 612, 612, -1000, -1000, -1000, -1000, 1010, 1009, -1000, -1000, + -1000, 29683, 29683, 11155, 11155, 11155, 11155, 11155, -1000, 1296, + -1000, -151, 16857, 13056, 973, 1621, 1107, 1514, 1583, 1679, + 511, 718, 1295, -1000, 873, 1621, 19233, 1231, -1000, 1514, + -1000, -1000, -1000, 29683, -1000, -1000, 22083, -1000, -1000, 6840, + 29683, 229, 29683, -1000, 1314, 1406, -1000, -1000, -1000, 1606, + 18758, 29683, 1221, 1217, -1000, -1000, 451, 8286, -36, -1000, + 8286, 1262, -1000, -12, 6, 10205, 482, -1000, -1000, -1000, + 2840, 15431, 1143, 1525, 77, -1000, -1000, -1000, 1351, -1000, + 1351, 1351, 1351, 1351, 268, 268, 268, 268, -1000, -1000, + -1000, -1000, -1000, 1364, 1363, -1000, 1351, 1351, 1351, 1351, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1362, 1362, 1362, + 1352, 1352, 296, -1000, 13056, 183, 29683, 1592, 790, 177, + 311, 1389, 1034, 1034, 1034, 311, -1000, 1040, 1003, -1000, + 1294, -1000, -1000, 1640, -1000, -1000, 476, 696, 691, 458, + 29683, 157, 226, -1000, 287, -1000, 29683, 1034, 626, 432, + 1034, -1000, 1034, -1000, -1000, -1000, -1000, 450, -1000, -1000, + 1034, 1292, -1000, 1259, 692, 685, 659, 678, 1292, -1000, + -1000, -112, 1292, -1000, 1292, -1000, 1292, -1000, 1292, -1000, + 1292, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 552, + 29683, 157, 684, -1000, 327, -1000, -1000, 684, 684, -1000, + -1000, -1000, -1000, 972, 970, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -327, 30068, -1000, 172, 564, - 216, 265, 231, 30068, 137, 1666, 188, 207, 30068, 30068, - 340, 1463, 30068, 1637, 30068, -1000, -1000, -1000, -1000, 879, - 30068, -1000, -1000, 649, 649, -1000, -1000, 30068, 649, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 649, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 999, -1000, -1000, 30068, 30068, -1000, -1000, -1000, - -1000, -1000, 42, -30, 210, -1000, -1000, -1000, -1000, 1671, - -1000, 879, 539, 606, 558, -1000, -1000, 778, -1000, -1000, - 2170, -1000, -1000, -1000, -1000, 771, 14866, 14866, 14866, 589, - 2170, 1908, 1014, 1056, 500, 645, 645, 520, 520, 520, - 520, 520, 835, 835, -1000, -1000, -1000, -1000, 1044, -1000, - -1000, -1000, 1044, 11540, 11540, 1288, 1341, 464, -1000, 1363, - -1000, -1000, 1674, 1174, 1174, 734, 886, 607, 1717, 1174, - 596, 1715, 1174, 1174, 11540, -1000, -1000, 652, -1000, 13441, - 1044, -1000, 805, 1269, 1268, 1174, 1044, 1044, 1174, 1174, - 30068, -1000, -232, -1000, -51, 482, 1341, -1000, 21993, 1044, - 1206, -1000, 1614, -1000, -1000, 1574, -1000, 1515, 13441, 13441, - 13441, -1000, -1000, -1000, 1614, 1687, -1000, 1528, 1527, 1708, - 11540, 21518, 1679, -1000, -1000, -1000, 439, 1708, 1300, 1341, - -1000, 30068, 21518, 21518, 21518, 21518, 21518, -1000, 1495, 1494, - -1000, 1480, 1478, 1484, 30068, -1000, 1184, 1158, 19143, 226, - 1308, 21518, 30068, -1000, -1000, 21518, 30068, 6743, -1000, 1253, - -25, -35, -1000, -1000, -1000, -1000, 879, -1000, 937, 943, - 225, -1000, -1000, -1000, -1000, 1606, -1000, 303, -1000, -1000, - -1000, -1000, 477, 1642, 1584, 18, -1000, -1000, -1000, 204, - 204, -1000, -1000, 457, 712, 457, 457, 457, 998, 998, - -1000, -1000, -1000, -1000, -1000, 864, -1000, -1000, -1000, 829, - -1000, -1000, 948, 1448, 163, -1000, -1000, 556, 992, 1589, - 30068, -1000, -1000, 1139, 172, 30068, 620, 1462, -1000, 1432, - 1432, 1432, 30068, -1000, -1000, -1000, -1000, 285, 30068, 1182, - -1000, 151, -1000, 1105, 30068, -1000, 1180, 1392, 1022, 1022, - -1000, -1000, 8189, -1000, 30068, 1341, -1000, -1000, -1000, -1000, - 376, 1620, 1618, 154, 151, 457, 1022, -1000, -1000, -1000, - -1000, -1000, -323, 1176, 372, 158, 178, 30068, 30068, 30068, - 30068, 30068, 430, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 203, 354, -1000, 30068, 30068, 395, -1000, -1000, -1000, 661, - -1000, -1000, 661, -1000, -1000, -1000, -1000, -1000, -1000, 1605, - -40, -298, -1000, -294, -1000, -1000, -1000, -1000, 589, 2170, - 1270, -1000, 14866, 14866, -1000, -1000, 1174, 1174, 11540, 8189, - 1702, 1614, -1000, -1000, 277, 612, 277, 14866, 14866, -1000, - 14866, 14866, -1000, -96, 1289, 593, -1000, 13441, 786, -1000, - -1000, 14866, 14866, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 384, 380, 378, 30068, -1000, -1000, -1000, 921, - 989, 1511, 879, 879, -1000, -1000, 30068, -1000, -1000, -1000, - -1000, 1706, 13441, -1000, 1248, -1000, 6261, 1674, 1454, 30068, - 1341, 1720, 16767, 30068, 1294, -1000, 557, 1499, 1415, 1453, - 1397, -1000, -1000, -1000, -1000, 1482, -1000, 1467, -1000, -1000, - -1000, -1000, -1000, 1158, 1708, 21518, 1172, -1000, 1172, -1000, - 426, -1000, -1000, -1000, -45, -41, -1000, -1000, -1000, 1391, - 1372, -331, 13441, 1387, 2334, -1000, -1000, -1000, -1000, 724, - 14866, 1728, -1000, 988, -1000, -1000, 656, 627, -1000, 30068, - 1384, -1000, -1000, -1000, 457, 457, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1168, -1000, 1166, 1229, 1150, 106, -1000, - 1409, 1602, 556, 556, -1000, 827, -1000, 1022, -1000, -1000, - 370, -1000, 1632, 30068, 1451, 1445, 1440, -1000, 1695, 1225, - -1000, 30068, -1000, -1000, 30068, -1000, 1523, 163, 30068, -1000, - -1000, -1000, -1000, 218, 30068, -1000, 1271, 151, -1000, -1000, - -1000, -1000, -1000, -1000, 30068, 173, -1000, 1378, 947, -1000, - 1417, -1000, -1000, -1000, -1000, 117, 215, -1000, 30068, 375, - 1448, 30068, -1000, -1000, -1000, 649, 649, -1000, 1601, -1000, - 1022, -1000, 14866, 2170, 2170, -1000, -1000, 1044, -1000, 1674, - -1000, 1044, 1375, 1375, -1000, 1375, 1376, -1000, 1375, 93, - 1375, 72, 1044, 1044, 1835, 1783, 1536, 1296, 1341, -91, - -1000, 879, 13441, 1203, 1135, 1341, 1341, 1341, 1136, 983, - 204, -1000, -1000, -1000, 1704, 1694, 879, -1000, -1000, -1000, - 1624, 1284, 1148, -1000, -1000, 11065, 1138, 1521, 424, 1136, - 1702, 30068, 13441, -1000, -1000, 13441, 1370, -1000, 13441, -1000, - -1000, -1000, 1702, 1702, 1172, -1000, -1000, 514, -1000, -1000, - -1000, 13441, 1362, 555, -339, 826, 742, 30068, -1000, -1000, - 2170, -63, -1000, -1000, -1000, 1349, 14866, -1000, -1000, 204, - 980, 204, 821, -1000, 813, -1000, -1000, -175, -1000, -1000, - 1368, 1427, -1000, -1000, 30068, -1000, -1000, 30068, 30068, 30068, - 30068, 30068, -1000, -1000, 223, -1000, 1129, 1125, -1000, -133, - -1000, -1000, 1344, -1000, -1000, -1000, 1095, -1000, -110, 1022, - 30068, 30068, 30068, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 2170, -1000, 1614, -1000, -1000, 292, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 14866, 14866, 14866, 14866, 14866, - 1674, 978, 879, 14866, 14866, 18667, 21043, 21043, 18192, 204, - 24, -1000, 13441, 13441, 610, -1000, 1341, -1000, 1311, 30068, - 1341, 30068, -1000, 1674, -1000, 879, 879, 30068, 879, 1674, - -1000, 729, 30068, 774, 1336, 1693, -1000, -1000, 1100, -1000, - 30068, 903, 457, -1000, 457, 1091, 1055, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1344, -1000, -1000, -1000, 1225, - -1000, 221, 248, -1000, 218, -1000, -140, -141, 1641, 30068, - -1000, -1000, 8189, -1000, -1000, 1343, 1431, -1000, -1000, -1000, - -1000, 805, 805, 805, 805, 195, 1044, -1000, 805, 805, - 1098, -1000, -1000, -1000, 1098, 1098, 482, -226, -1000, 1575, - 1562, 879, 1206, 1726, -1000, 1341, 1720, 422, 1148, -1000, - -1000, 1094, -1000, -331, 1090, -1000, -1000, 218, -334, -1000, - 1066, -1000, -1000, -1000, -1000, -1000, 1639, 1341, -1000, -1000, - -1000, -1000, 1348, 1063, 1187, -1000, 551, 30068, 30068, -1000, - -1000, -1000, -1000, 1044, 182, -116, -1000, -1000, -1000, 20568, - -1000, -1000, -1000, -1000, 24, 270, -1000, 1568, 1562, -1000, - 1692, 1554, 1691, -1000, 30068, 1148, 30068, -1000, -339, -331, - 1061, 783, 1437, 579, 1348, 13916, 232, -1000, 8189, 5779, - 1059, -1000, -1000, 1501, -101, -127, -1000, -1000, 1539, 1546, - 1546, 1568, -1000, 1689, 1688, -1000, 977, 1676, 972, 1057, - -1000, 1336, -339, -1000, 1340, 1372, 1434, -1000, 1713, -1000, - -1000, -1000, 711, 970, -1000, -1000, -1000, 232, 805, 1044, - -1000, -27, -1000, -1000, -1000, -1000, -1000, 1417, -1000, 1500, - -1000, 1532, 887, -1000, -1000, -1000, -1000, 963, 962, -1000, - 949, -1000, -1000, 1336, 13441, 1297, -1000, 1723, 456, 456, - -1000, -1000, -1000, -1000, -1000, 306, -1000, -1000, -110, -114, - -1000, 808, -1000, -1000, -1000, -1000, -1000, -1000, 719, 30068, - -1000, -1000, -1000, 296, 785, -1000, 175, -1000, -122, -1000, - -1000, -341, 1051, -1000, -1000, -1000, -1000, -131, -1000, 731, - -341, -1000, -1000, -1000, + -1000, -1000, -320, 29683, -1000, 176, 582, 210, 249, 211, + 29683, 150, 1617, 203, 199, 29683, 29683, 310, 1422, 29683, + 1596, 29683, -1000, -1000, -1000, -1000, 556, 29683, -1000, -1000, + 647, 647, -1000, -1000, 29683, 647, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 647, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 962, + -1000, -1000, 29683, 29683, -1000, -1000, -1000, -1000, -1000, 67, + -18, 227, -1000, -1000, -1000, -1000, 1607, -1000, 556, 533, + 578, 534, -1000, -1000, 860, -1000, -1000, 2126, -1000, -1000, + -1000, -1000, 725, 14481, 14481, 14481, 899, 2126, 2592, 1553, + 2551, 483, 763, 763, 487, 487, 487, 487, 487, 722, + 722, -1000, -1000, -1000, -1000, 947, -1000, -1000, -1000, 947, + 11155, 11155, 1289, 1316, 448, -1000, 1368, -1000, -1000, 1621, + 1136, 1136, 738, 835, 576, 1668, 1136, 571, 1667, 1136, + 1136, 11155, -1000, -1000, 597, -1000, 13056, 947, -1000, 1193, + 1288, 1263, 1136, 947, 947, 1136, 1136, 29683, -1000, -228, + -1000, -61, 435, 1316, -1000, 21608, 947, 1190, -1000, 1550, + -1000, -1000, 1511, -1000, 1466, 13056, 13056, 13056, -1000, -1000, + -1000, 1550, 1630, -1000, 1488, 1475, 1660, 11155, 21133, 1514, + -1000, -1000, -1000, 439, 1660, 1269, 1316, -1000, 29683, 21133, + 21133, 21133, 21133, 21133, -1000, 1448, 1447, -1000, 1434, 1416, + 1456, 29683, -1000, 1165, 1107, 18758, 229, 1199, 21133, 29683, + -1000, -1000, 21133, 29683, 6358, -1000, 1262, -36, -4, -1000, + -1000, -1000, -1000, 556, -1000, 934, 228, 2412, -1000, 294, + -1000, -1000, -1000, -1000, 480, 1605, 1517, 24, -1000, -1000, + -1000, 268, 268, -1000, -1000, 482, 708, 482, 482, 482, + 961, 961, -1000, -1000, -1000, -1000, -1000, 785, -1000, -1000, + -1000, 771, -1000, -1000, 942, 1411, 183, -1000, -1000, 565, + 959, 1527, 29683, -1000, -1000, 1098, 176, 29683, 607, 1421, + -1000, 1389, 1389, 1389, 29683, -1000, -1000, -1000, -1000, 285, + 29683, 1163, -1000, 140, -1000, 1064, 29683, -1000, 1142, 1361, + 1034, 1034, -1000, -1000, 7804, -1000, 29683, 1316, -1000, -1000, + -1000, -1000, 377, 1559, 1558, 157, 140, 482, 1034, -1000, + -1000, -1000, -1000, -1000, -323, 1139, 368, 151, 195, 29683, + 29683, 29683, 29683, 29683, 408, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 197, 324, -1000, 29683, 29683, 390, -1000, -1000, + -1000, 629, -1000, -1000, 629, -1000, -1000, -1000, -1000, -1000, + -1000, 1540, -28, -297, -1000, -294, -1000, -1000, -1000, -1000, + 899, 2126, 2526, -1000, 14481, 14481, -1000, -1000, 1136, 1136, + 11155, 7804, 1652, 1550, -1000, -1000, 465, 684, 465, 14481, + 14481, -1000, 14481, 14481, -1000, -91, 1267, 572, -1000, 13056, + 900, -1000, -1000, 14481, 14481, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 375, 371, 370, 29683, -1000, -1000, + -1000, 911, 958, 1464, 556, 556, -1000, -1000, 29683, -1000, + -1000, -1000, -1000, 1658, 13056, -1000, 1233, -1000, 5876, 1621, + 1410, 29683, 1316, 1699, 16382, 29683, 1258, -1000, 570, 1406, + 1387, 1409, 1340, -1000, -1000, -1000, -1000, 1437, -1000, 1435, + -1000, -1000, -1000, -1000, -1000, 1107, 1660, 21133, 1148, -1000, + 1148, -1000, 438, -1000, -1000, -1000, -33, 1, -1000, -1000, + -1000, -1000, 1639, 2840, -1000, -1000, -1000, -1000, 713, 14481, + 1677, -1000, 945, -1000, -1000, 623, 620, -1000, 29683, 1355, + -1000, -1000, -1000, 482, 482, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 1134, -1000, 1132, 1228, 1121, 111, -1000, 1380, + 1538, 565, 565, -1000, 766, -1000, 1034, -1000, -1000, 339, + -1000, 1589, 29683, 1408, 1407, 1404, -1000, 1638, 1225, -1000, + 29683, -1000, -1000, 29683, -1000, 1474, 183, 29683, -1000, -1000, + -1000, -1000, 226, 29683, -1000, 1063, 140, -1000, -1000, -1000, + -1000, -1000, -1000, 29683, 175, -1000, 1354, 996, -1000, 1321, + -1000, -1000, -1000, -1000, 138, 207, -1000, 29683, 378, 1411, + 29683, -1000, -1000, -1000, 647, 647, -1000, 1537, -1000, 1034, + -1000, 14481, 2126, 2126, -1000, -1000, 947, -1000, 1621, -1000, + 947, 1351, 1351, -1000, 1351, 1352, -1000, 1351, 112, 1351, + 105, 947, 947, 2511, 2339, 2324, 1825, 1316, -86, -1000, + 556, 13056, 1768, 1285, 1316, 1316, 1316, 1112, 940, 268, + -1000, -1000, -1000, 1656, 1637, 556, -1000, -1000, -1000, 1578, + 1126, 1167, -1000, -1000, 10680, 1119, 1472, 429, 1112, 1652, + 29683, 13056, -1000, -1000, 13056, 1338, -1000, 13056, -1000, -1000, + -1000, 1652, 1652, 1148, -1000, -1000, 496, -1000, -1000, -1000, + -334, -1000, -1000, 2126, -31, -1000, -1000, -1000, 1330, 14481, + -1000, -1000, 268, 935, 268, 765, -1000, 759, -1000, -1000, + -170, -1000, -1000, 1268, 1428, -1000, -1000, 29683, -1000, -1000, + 29683, 29683, 29683, 29683, 29683, -1000, -1000, 215, -1000, 1110, + 1103, -1000, -128, -1000, -1000, 1327, -1000, -1000, -1000, 1044, + -1000, -113, 1034, 29683, 29683, 29683, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 2126, -1000, 1550, -1000, -1000, 290, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14481, 14481, + 14481, 14481, 14481, 1621, 928, 556, 14481, 14481, 18282, 20658, + 20658, 17807, 268, 45, -1000, 13056, 13056, 618, -1000, 1316, + -1000, 1206, 29683, 1316, 29683, -1000, 1621, -1000, 556, 556, + 29683, 556, 1621, -1000, 869, 256, -1000, -1000, -1000, -1000, + 29683, 1219, 482, -1000, 482, 1022, 999, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1327, -1000, -1000, -1000, 1225, + -1000, 209, 276, -1000, 226, -1000, -133, -135, 1599, 29683, + -1000, -1000, 7804, -1000, -1000, 1320, 1388, -1000, -1000, -1000, + -1000, 1193, 1193, 1193, 1193, 131, 947, -1000, 1193, 1193, + 1097, -1000, -1000, -1000, 1097, 1097, 435, -222, -1000, 1510, + 1486, 556, 1190, 1676, -1000, 1316, 1699, 417, 1167, -1000, + -1000, 1088, -1000, 1318, 1377, -326, 13056, 1317, 1082, -1000, + -1000, -1000, -1000, -1000, 1598, 1316, -1000, -1000, -1000, -1000, + 1270, 1080, 1189, -1000, 562, 29683, 29683, -1000, -1000, -1000, + -1000, 947, 184, -116, -1000, -1000, -1000, 20183, -1000, -1000, + -1000, -1000, 45, 293, -1000, 1499, 1486, -1000, 1636, 1506, + 1634, -1000, 29683, 1167, 29683, -1000, 13056, 1313, 543, -333, + 752, 893, 29683, 1401, 1001, 1270, 13531, 233, -1000, 7804, + 5394, 1075, -1000, -1000, 1461, -99, -120, -1000, -1000, 1494, + 1496, 1496, 1499, -1000, 1631, 1628, -1000, 921, 1626, 917, + 1156, -1000, 831, 29683, 751, 1311, 1624, -1000, -1000, 1048, + 1392, -1000, 1664, -1000, -1000, -1000, 705, 912, -1000, -1000, + -1000, 233, 1193, 947, -1000, -5, -1000, -1000, -1000, -1000, + -1000, 1321, -1000, 1457, -1000, 1489, 741, -1000, -1000, -1000, + -1000, 905, 901, -1000, 894, -1000, -326, 1032, -1000, -1000, + 226, -328, -1000, -1000, 1666, 441, 441, -1000, -1000, -1000, + -1000, -1000, 295, -1000, -1000, -113, -114, -1000, 734, -1000, + -1000, -1000, -1000, -1000, -333, -326, 1020, 761, -1000, -1000, + -1000, 291, 782, -1000, 179, -1000, -118, -1000, -1000, 1311, + -333, -1000, 1312, 1377, -1000, -1000, -1000, -1000, -126, -1000, + 1311, 13056, 1308, -1000, -1000, 673, 29683, -339, 1002, -1000, + 747, -339, -1000, -1000, } var yyPgo = [...]int{ - 0, 22, 2035, 12, 1, 10, 2034, 2033, 26, 103, - 104, 2032, 2030, 2028, 2026, 144, 139, 137, 2016, 2013, - 2011, 2010, 2008, 2005, 2003, 2001, 2000, 1999, 1997, 1993, - 73, 140, 59, 57, 143, 1992, 1991, 44, 1987, 1986, - 1984, 136, 134, 593, 1983, 132, 74, 1968, 1966, 1962, - 1961, 1960, 1958, 1957, 1956, 1955, 1954, 1953, 1951, 1950, - 1949, 209, 1945, 1942, 7, 1940, 41, 1939, 1937, 1936, - 1934, 1918, 9, 1912, 1911, 107, 1909, 1908, 1907, 118, - 1906, 1905, 71, 106, 69, 87, 1904, 1903, 89, 131, - 1902, 78, 112, 1900, 1899, 525, 1898, 61, 99, 109, - 1897, 67, 1896, 1894, 68, 1890, 1887, 1886, 90, 1885, - 1884, 3432, 1883, 80, 101, 20, 50, 1882, 1881, 1878, - 1877, 48, 2938, 1874, 1873, 35, 1871, 1870, 149, 1869, - 105, 34, 1868, 21, 19, 32, 1867, 116, 1866, 40, - 45, 1864, 102, 1863, 1862, 1860, 1858, 43, 1857, 91, - 117, 53, 1856, 1854, 1853, 13, 15, 1851, 1850, 1849, - 1848, 1845, 1843, 14, 1842, 11, 1841, 47, 1840, 2, - 24, 39, 88, 63, 37, 16, 1839, 128, 1836, 36, - 127, 79, 121, 1835, 1834, 1833, 984, 160, 1830, 1826, - 51, 1824, 110, 113, 1823, 168, 1822, 1821, 84, 1332, - 1872, 38, 126, 1820, 1819, 2680, 75, 98, 28, 1818, - 72, 1816, 1812, 1811, 147, 152, 64, 872, 66, 1809, - 1808, 1807, 1806, 1804, 1802, 1799, 93, 29, 31, 119, - 42, 1795, 1794, 1793, 86, 65, 1792, 123, 122, 82, - 124, 1791, 129, 125, 85, 1788, 46, 1784, 1782, 1780, - 1779, 81, 1777, 1775, 1774, 1773, 120, 108, 83, 56, - 1772, 58, 76, 115, 114, 18, 5, 30, 141, 17, - 1769, 3, 0, 1768, 6, 135, 166, 111, 1767, 1765, - 4, 1764, 8, 1762, 1761, 94, 1759, 1755, 1752, 25, - 33, 23, 1751, 1749, 3664, 2344, 133, 1746, 142, + 0, 10, 1977, 7, 2, 4, 1976, 1974, 56, 101, + 102, 1973, 1960, 1958, 1957, 146, 143, 142, 1955, 1954, + 1950, 1949, 1948, 1945, 1942, 1940, 1939, 1938, 1937, 1936, + 80, 163, 53, 63, 140, 1934, 1931, 40, 1929, 1926, + 1925, 133, 132, 594, 1922, 134, 74, 1921, 1919, 1917, + 1916, 1902, 1901, 1900, 1896, 1894, 1893, 1891, 1889, 1886, + 1885, 211, 1884, 1882, 13, 1880, 45, 1879, 1877, 1876, + 1875, 1873, 6, 1872, 1870, 105, 1867, 1866, 1865, 129, + 1863, 1862, 72, 212, 68, 89, 1861, 1859, 94, 135, + 1856, 85, 115, 1855, 1852, 1, 1850, 81, 106, 117, + 1840, 64, 1837, 1836, 73, 1835, 1834, 1831, 91, 1830, + 1826, 3393, 1825, 86, 107, 22, 43, 1824, 1823, 1822, + 1819, 47, 153, 1818, 1816, 33, 1815, 1813, 144, 1811, + 104, 32, 1809, 21, 20, 27, 1808, 103, 1807, 44, + 41, 1806, 99, 1805, 1801, 1800, 1797, 37, 1796, 90, + 120, 29, 1795, 1794, 1793, 18, 19, 1792, 1791, 1789, + 1788, 1785, 1784, 17, 1783, 15, 1782, 28, 1781, 5, + 26, 42, 88, 114, 39, 16, 1780, 124, 1779, 35, + 130, 87, 125, 1778, 1777, 1776, 912, 166, 1774, 1773, + 66, 1771, 111, 119, 1767, 167, 1766, 1765, 78, 1321, + 1887, 59, 127, 1764, 1762, 2797, 79, 93, 36, 1761, + 75, 1760, 1759, 1756, 145, 139, 69, 824, 65, 1755, + 1753, 1752, 1751, 1750, 1748, 1747, 131, 61, 34, 121, + 38, 1744, 1742, 1740, 83, 51, 1738, 123, 122, 84, + 109, 1737, 128, 110, 76, 1735, 46, 1733, 1732, 1731, + 1728, 58, 1726, 1725, 1724, 1723, 116, 108, 82, 48, + 1722, 50, 77, 118, 112, 12, 3, 25, 138, 23, + 1721, 8, 0, 1717, 11, 136, 165, 113, 1716, 1715, + 9, 1714, 14, 1713, 1711, 100, 1710, 1709, 1708, 31, + 24, 30, 1707, 1706, 3028, 1787, 126, 1705, 137, } //line sql.y:5478 @@ -5076,10 +5037,10 @@ var yyR2 = [...]int{ 8, 1, 3, 7, 8, 1, 1, 9, 9, 8, 7, 7, 1, 1, 1, 3, 1, 3, 1, 3, 0, 4, 3, 5, 4, 1, 3, 3, 2, 2, - 2, 2, 2, 1, 1, 1, 3, 2, 6, 12, + 2, 2, 2, 1, 1, 1, 2, 2, 6, 12, 2, 0, 2, 0, 2, 1, 0, 2, 1, 3, 3, 6, 4, 7, 8, 8, 8, 6, 3, 1, - 1, 4, 0, 1, 1, 1, 2, 2, 0, 1, + 1, 5, 0, 1, 1, 1, 2, 2, 0, 1, 4, 4, 4, 4, 2, 4, 1, 3, 1, 1, 3, 4, 3, 3, 3, 4, 9, 0, 2, 0, 2, 3, 3, 4, 2, 3, 2, 1, 1, 0, @@ -5290,141 +5251,139 @@ var yyChk = [...]int{ 67, 382, 170, 308, 6, 347, 30, 191, 179, 109, 65, 383, 171, 122, 348, 349, 174, 100, 5, 112, 32, 10, 72, 75, 338, 339, 340, 55, 108, 354, - 121, 13, 384, 325, 115, 111, -70, 205, -248, 133, - -235, -239, -200, 186, -264, 182, -111, -257, -256, -200, - -80, -195, 172, 180, 179, 112, -276, 114, 226, 332, - 170, -41, -42, -177, 150, 203, 83, 83, -239, -238, - -237, -277, 205, 186, -263, -255, 178, 187, -245, 179, - 180, -240, 172, 113, -277, -240, 177, 187, 205, 205, - 107, 205, 107, 205, 205, 205, 205, 205, 205, 205, - 205, 205, 202, -246, 125, -246, 358, 358, -251, -277, - -277, -277, 174, 33, 33, -197, -240, 174, 23, -246, - -246, -177, 150, -246, -246, -246, -246, 213, 213, -246, + 121, 13, 384, 325, 115, 111, -248, 133, -235, -239, + -200, 186, -264, 182, -111, -257, -256, -200, -80, -195, + 172, 180, 179, 112, -276, 114, 226, 332, 170, -41, + -42, -177, 150, 203, 83, 83, -239, -238, -237, -277, + 205, 186, -263, -255, 178, 187, -245, 179, 180, -240, + 172, 113, -277, -240, 177, 187, 205, 205, 107, 205, + 107, 205, 205, 205, 205, 205, 205, 205, 205, 205, + 202, -246, 125, -246, 358, 358, -251, -277, -277, -277, + 174, 33, 33, -197, -240, 174, 23, -246, -246, -177, + 150, -246, -246, -246, -246, 213, 213, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, - -246, -246, -246, -246, 171, -276, -89, 318, 233, 78, - -43, 215, -27, -111, -195, 172, 173, -276, -111, 157, - -111, -190, 133, 13, -190, -187, 309, 307, 294, 299, - -190, -190, -190, -190, 216, 292, -241, 172, 33, 183, - 309, 216, 292, 216, 217, 216, 217, 302, 312, 216, - -210, 12, 135, 332, 297, 301, 209, 171, 210, 173, - 311, -272, 448, 217, -210, 89, 309, 212, -190, -215, - -294, -201, 265, -215, -215, 30, 174, -200, -63, -200, - 89, -12, -8, -16, -15, -17, 125, -87, 309, -75, - 151, 463, 449, 450, 451, 448, 306, 456, 454, 452, - 216, 453, 83, 116, 114, 115, 132, -95, -119, 135, - 117, 133, 134, 119, 137, 136, 147, 140, 141, 142, - 143, 144, 145, 146, 138, 139, 150, 125, 126, 127, - 128, 129, 130, 131, -185, -294, -137, -294, 158, 159, - -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, - -294, 157, -7, -131, -9, -294, -294, -294, -294, -294, - -294, -294, -294, -143, -95, -294, -298, -294, -298, -128, - -294, -298, -128, -298, -128, -298, -298, -128, -298, -128, - -298, -298, -128, -294, -294, -294, -294, -294, -294, -294, - -214, -284, -285, -114, -111, -294, 233, -147, -8, -61, - -167, 20, 31, -95, -148, -149, -95, -147, 57, -83, - -85, -88, 61, 62, 95, 12, -203, -202, 23, -200, - 89, 157, 12, -112, 27, -111, -97, -98, -99, -100, - -114, -138, -294, 12, -104, -105, -111, -113, -205, 83, - 239, -180, -217, -182, -181, 322, 324, 125, -204, -200, - 89, 29, 17, 84, 83, -111, -219, -222, -224, -223, - -225, -220, -221, 262, 263, 151, 266, 268, 269, 270, - 271, 272, 273, 274, 275, 276, 277, 30, 194, 258, - 259, 260, 261, 278, 279, 280, 281, 282, 283, 284, - 285, 245, 264, 352, 246, 247, 248, 249, 250, 251, - 253, 254, 255, 256, 257, -275, -272, 82, 84, 83, - -226, 82, -89, 171, -272, 172, 172, 172, -61, 341, - -246, -246, 202, -34, -31, -268, 16, -30, -31, 165, - 103, 104, 162, 82, -235, 82, -244, -275, -272, 82, - 113, 177, 112, -243, -240, -243, -244, -272, -139, -200, - -205, -272, 113, 113, -173, -200, -173, -173, 21, -173, - 21, -173, 21, 90, -200, -173, 21, -173, 21, -173, - 21, -173, 21, -173, 21, 29, 76, 77, 29, 79, - 80, 81, -139, -139, -235, -177, -111, -272, 90, 90, - -246, -246, 90, 89, 89, 89, -246, -246, 90, 89, - -207, -205, 89, -278, 188, 230, 232, 90, 90, 90, - 90, 29, 89, -279, 29, 470, 469, 471, 472, 473, - 90, 29, 90, 29, 90, -200, 82, -111, -92, 220, - 160, 162, 165, 74, 89, 234, 125, 42, 83, 174, - 171, -272, -192, 176, -192, -206, -205, -198, 89, -95, - -242, 12, 135, -210, -210, -190, -111, -242, -210, -190, - -111, -190, -190, -190, -190, -210, -210, -210, -190, -205, - -205, -111, -111, -111, -111, -111, -111, -111, -215, -215, - -215, -191, 133, -190, 448, 74, -213, 242, 276, 442, - 443, 444, 83, 354, -104, 448, 448, 448, 448, 448, - 448, -95, -95, -95, -95, -129, 99, 117, 100, 101, - -122, -130, -134, -137, 94, 135, 133, 134, 119, -122, + -246, -246, 171, -276, -89, 318, 233, 78, -43, 215, + -27, -111, -195, 172, 173, -276, -111, 157, -111, -190, + 133, 13, -190, -187, 309, 307, 294, 299, -190, -190, + -190, -190, 216, 292, -241, 172, 33, 183, 309, 216, + 292, 216, 217, 216, 217, 302, 312, 216, -210, 12, + 135, 332, 297, 301, 209, 171, 210, 173, 311, -272, + 448, 217, -210, 89, 309, 212, -190, -215, -294, -201, + 265, -215, -215, 30, 174, -200, -63, -200, 89, -12, + -8, -16, -15, -17, 125, -87, 309, -75, 151, 463, + 449, 450, 451, 448, 306, 456, 454, 452, 216, 453, + 83, 116, 114, 115, 132, -95, -119, 135, 117, 133, + 134, 119, 137, 136, 147, 140, 141, 142, 143, 144, + 145, 146, 138, 139, 150, 125, 126, 127, 128, 129, + 130, 131, -185, -294, -137, -294, 158, 159, -122, -122, + -122, -122, -122, -122, -122, -122, -122, -122, -294, 157, + -7, -131, -9, -294, -294, -294, -294, -294, -294, -294, + -294, -143, -95, -294, -298, -294, -298, -128, -294, -298, + -128, -298, -128, -298, -298, -128, -298, -128, -298, -298, + -128, -294, -294, -294, -294, -294, -294, -294, -214, -284, + -285, -114, -111, -294, 233, -147, -8, -61, -167, 20, + 31, -95, -148, -149, -95, -147, 57, -83, -85, -88, + 61, 62, 95, 12, -203, -202, 23, -200, 89, 157, + 12, -112, 27, -111, -97, -98, -99, -100, -114, -138, + -294, 12, -104, -105, -111, -113, -205, 83, 239, -180, + -217, -182, -181, 322, 324, 125, -204, -200, 89, 29, + 84, 83, -111, -219, -222, -224, -223, -225, -220, -221, + 262, 263, 151, 266, 268, 269, 270, 271, 272, 273, + 274, 275, 276, 277, 30, 194, 258, 259, 260, 261, + 278, 279, 280, 281, 282, 283, 284, 285, 245, 264, + 352, 246, 247, 248, 249, 250, 251, 253, 254, 255, + 256, 257, -275, -272, 82, 84, 83, -226, 82, -89, + 171, -272, 172, 172, 172, -61, 341, -246, -246, 202, + -34, -31, -268, 16, -30, -31, 165, 103, 104, 162, + 82, -235, 82, -244, -275, -272, 82, 113, 177, 112, + -243, -240, -243, -244, -272, -139, -200, -205, -272, 113, + 113, -173, -200, -173, -173, 21, -173, 21, -173, 21, + 90, -200, -173, 21, -173, 21, -173, 21, -173, 21, + -173, 21, 29, 76, 77, 29, 79, 80, 81, -139, + -139, -235, -177, -111, -272, 90, 90, -246, -246, 90, + 89, 89, 89, -246, -246, 90, 89, -207, -205, 89, + -278, 188, 230, 232, 90, 90, 90, 90, 29, 89, + -279, 29, 470, 469, 471, 472, 473, 90, 29, 90, + 29, 90, -200, 82, -111, -92, 220, 160, 162, 165, + 74, 89, 234, 125, 42, 83, 174, 171, -272, -192, + 176, -192, -206, -205, -198, 89, -95, -242, 12, 135, + -210, -210, -190, -111, -242, -210, -190, -111, -190, -190, + -190, -190, -210, -210, -210, -190, -205, -205, -111, -111, + -111, -111, -111, -111, -111, -215, -215, -215, -191, 133, + -190, 448, 74, -213, 242, 276, 442, 443, 444, 83, + 354, -104, 448, 448, 448, 448, 448, 448, -95, -95, + -95, -95, -129, 99, 117, 100, 101, -122, -130, -134, + -137, 94, 135, 133, 134, 119, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, - -122, -122, -122, -122, -216, -272, 89, 151, -272, -121, - -121, -200, -84, 22, 36, -83, -201, -206, -198, -79, - -295, -295, -147, -83, -83, -95, -95, -139, 89, -83, - -139, 89, -83, -83, -78, 22, 36, -141, -142, 121, - -139, -295, -122, -200, -200, -83, -84, -84, -83, -83, - 83, -286, 324, 325, 446, -208, 205, -207, 23, -132, - -131, 89, -151, -295, -152, 27, 10, 135, 83, 19, - 83, -150, 25, 26, -151, -123, -200, 90, 93, -96, - 83, 12, -88, -111, -202, 142, -206, -111, -172, 205, - -111, 30, 83, -107, -109, -108, -110, 64, 68, 70, - 65, 66, 67, 71, -211, 23, -97, -8, -294, -111, - -104, -296, 83, 12, 75, -296, 83, 157, -180, -182, - 83, 323, 325, 326, 74, 102, -95, -228, 150, -1, - -2, 482, 483, 484, -253, -252, -251, -235, -237, -238, - -239, 84, -153, -94, 38, -231, 290, 289, -226, -226, - -226, -226, -226, -227, -177, -227, -227, -227, 82, 82, - -226, -226, -226, -226, -229, 82, -229, -229, -230, 82, - -230, -264, -95, -261, -260, -258, -259, 181, 96, 354, - 75, -256, -150, 90, -92, -193, 176, -262, -259, -272, - -272, -272, -193, -272, 89, -272, 89, 83, 17, -236, - -235, -46, 230, -267, 205, -263, -257, -244, 113, -243, - -244, -244, 157, -272, 83, 27, 107, 107, 107, 107, - 354, 162, 30, -235, -46, -216, 174, -216, -216, 89, - 89, -189, 478, -104, -91, 222, 125, 211, 211, 171, - 171, 224, -111, 235, 236, 234, 21, 223, 225, 227, - 213, -111, -111, -192, 74, -106, -111, 24, -205, -111, - -190, -190, -111, -190, -190, 89, -111, -200, -75, 324, - 354, 20, -76, 20, 99, 100, 101, -130, -122, -122, - -122, -82, 195, 116, -295, -295, -83, -83, -294, 157, - -10, -151, -295, -295, 83, 75, 23, 12, 12, -295, - 12, 12, -295, -295, -83, -144, -142, 123, -95, -295, - -295, 83, 83, -295, -295, -295, -295, -295, -285, 445, - 325, -115, 72, 175, 73, -294, -207, -295, -167, 40, - 48, 59, -95, -95, -149, -167, -184, 20, 12, 55, - 55, -116, 13, -85, -97, -88, 157, -116, -120, 30, - 55, -8, -294, -294, -175, -179, -139, -98, -99, -99, - -98, -99, 64, 64, 64, 69, 64, 69, 64, -108, - -205, -295, -295, -8, -172, 75, -97, -111, -97, -113, - -205, 142, -181, -183, 327, 324, 330, -272, 89, -272, - 113, -71, 82, 294, 83, -251, -239, -291, 99, 117, - 29, 74, 287, 96, -289, -290, 177, 112, 113, 189, - 23, 39, -232, 291, -227, -227, -228, -272, 89, 151, - -228, -228, -228, -234, 89, -234, 90, 90, 84, -37, - -32, -33, 31, 78, -258, -246, 89, 37, -200, 84, - -91, -111, 117, 74, -262, -262, -262, -205, 16, -169, - -200, 83, 84, -140, 231, 84, -200, 84, 82, -244, - -244, -201, -200, -294, 171, 29, 29, -46, -140, -228, - -272, 480, 479, 84, 173, 229, -93, 337, 89, 85, - -111, -111, -111, -111, -111, 165, 162, 214, 174, -104, - -111, 83, -66, 190, 185, -210, -210, 31, 324, 457, - 455, -82, 116, -122, -122, -295, -295, -84, -201, -147, - -167, -218, 151, 262, 194, 260, 256, 276, 267, 289, - 258, 290, -216, -218, -122, -122, -122, -122, 351, -147, - 124, -95, 122, -122, -122, 172, 172, 172, -173, 41, - 89, 89, 60, -111, -145, 14, -95, 142, -151, -174, - 74, -175, -133, -135, -134, -294, -168, -295, -200, -173, - -116, 83, 125, -102, -101, 74, 75, -103, 74, -101, - 64, 64, -295, -116, -97, -116, -116, 157, 324, 328, - 329, 82, -5, 78, -3, 481, -95, 82, -251, 99, - -122, 10, 89, 113, 113, -111, 82, -228, -228, 84, - 83, 84, 83, 84, 83, -194, 391, 117, -33, -32, - -246, -246, 90, -272, 173, 24, -111, 74, 74, 74, - 17, 83, -235, -139, 55, -261, -169, -265, -267, -111, - -121, -140, -111, -90, 220, 228, 82, 86, -274, 75, - 211, 287, 211, -111, -66, -37, -111, -190, -190, 31, - -272, -122, -295, -151, -295, -226, -226, -226, -230, -226, - 250, -226, 250, -295, -295, 20, 20, 20, 20, -294, - -74, 347, -95, 83, 83, -294, -294, -294, -295, 89, - -227, -146, 15, 17, 28, -174, 83, -295, -295, 83, - 55, 157, -295, -147, -179, -95, -95, 82, -95, -147, - -116, -95, 82, 125, -72, 485, 90, 84, -169, -125, + -122, -216, -272, 89, 151, -272, -121, -121, -200, -84, + 22, 36, -83, -201, -206, -198, -79, -295, -295, -147, + -83, -83, -95, -95, -139, 89, -83, -139, 89, -83, + -83, -78, 22, 36, -141, -142, 121, -139, -295, -122, + -200, -200, -83, -84, -84, -83, -83, 83, -286, 324, + 325, 446, -208, 205, -207, 23, -132, -131, 89, -151, + -295, -152, 27, 10, 135, 83, 19, 83, -150, 25, + 26, -151, -123, -200, 90, 93, -96, 83, 12, -88, + -111, -202, 142, -206, -111, -172, 205, -111, 30, 83, + -107, -109, -108, -110, 64, 68, 70, 65, 66, 67, + 71, -211, 23, -97, -8, -294, -111, -104, -296, 83, + 12, 75, -296, 83, 157, -180, -182, 83, 323, 325, + 326, 74, 102, -95, -228, 150, -253, -252, -251, -235, + -237, -238, -239, 84, -153, -94, 38, -231, 290, 289, + -226, -226, -226, -226, -226, -227, -177, -227, -227, -227, + 82, 82, -226, -226, -226, -226, -229, 82, -229, -229, + -230, 82, -230, -264, -95, -261, -260, -258, -259, 181, + 96, 354, 75, -256, -150, 90, -92, -193, 176, -262, + -259, -272, -272, -272, -193, -272, 89, -272, 89, 83, + 17, -236, -235, -46, 230, -267, 205, -263, -257, -244, + 113, -243, -244, -244, 157, -272, 83, 27, 107, 107, + 107, 107, 354, 162, 30, -235, -46, -216, 174, -216, + -216, 89, 89, -189, 478, -104, -91, 222, 125, 211, + 211, 171, 171, 224, -111, 235, 236, 234, 21, 223, + 225, 227, 213, -111, -111, -192, 74, -106, -111, 24, + -205, -111, -190, -190, -111, -190, -190, 89, -111, -200, + -75, 324, 354, 20, -76, 20, 99, 100, 101, -130, + -122, -122, -122, -82, 195, 116, -295, -295, -83, -83, + -294, 157, -10, -151, -295, -295, 83, 75, 23, 12, + 12, -295, 12, 12, -295, -295, -83, -144, -142, 123, + -95, -295, -295, 83, 83, -295, -295, -295, -295, -295, + -285, 445, 325, -115, 72, 175, 73, -294, -207, -295, + -167, 40, 48, 59, -95, -95, -149, -167, -184, 20, + 12, 55, 55, -116, 13, -85, -97, -88, 157, -116, + -120, 30, 55, -8, -294, -294, -175, -179, -139, -98, + -99, -99, -98, -99, 64, 64, 64, 69, 64, 69, + 64, -108, -205, -295, -295, -8, -172, 75, -97, -111, + -97, -113, -205, 142, -181, -183, 327, 324, 330, -272, + 89, -70, 205, 83, -251, -239, -291, 99, 117, 29, + 74, 287, 96, -289, -290, 177, 112, 113, 189, 23, + 39, -232, 291, -227, -227, -228, -272, 89, 151, -228, + -228, -228, -234, 89, -234, 90, 90, 84, -37, -32, + -33, 31, 78, -258, -246, 89, 37, -200, 84, -91, + -111, 117, 74, -262, -262, -262, -205, 16, -169, -200, + 83, 84, -140, 231, 84, -200, 84, 82, -244, -244, + -201, -200, -294, 171, 29, 29, -46, -140, -228, -272, + 480, 479, 84, 173, 229, -93, 337, 89, 85, -111, + -111, -111, -111, -111, 165, 162, 214, 174, -104, -111, + 83, -66, 190, 185, -210, -210, 31, 324, 457, 455, + -82, 116, -122, -122, -295, -295, -84, -201, -147, -167, + -218, 151, 262, 194, 260, 256, 276, 267, 289, 258, + 290, -216, -218, -122, -122, -122, -122, 351, -147, 124, + -95, 122, -122, -122, 172, 172, 172, -173, 41, 89, + 89, 60, -111, -145, 14, -95, 142, -151, -174, 74, + -175, -133, -135, -134, -294, -168, -295, -200, -173, -116, + 83, 125, -102, -101, 74, 75, -103, 74, -101, 64, + 64, -295, -116, -97, -116, -116, 157, 324, 328, 329, + 17, -251, 99, -122, 10, 89, 113, 113, -111, 82, + -228, -228, 84, 83, 84, 83, 84, 83, -194, 391, + 117, -33, -32, -246, -246, 90, -272, 173, 24, -111, + 74, 74, 74, 17, 83, -235, -139, 55, -261, -169, + -265, -267, -111, -121, -140, -111, -90, 220, 228, 82, + 86, -274, 75, 211, 287, 211, -111, -66, -37, -111, + -190, -190, 31, -272, -122, -295, -151, -295, -226, -226, + -226, -230, -226, 250, -226, 250, -295, -295, 20, 20, + 20, 20, -294, -74, 347, -95, 83, 83, -294, -294, + -294, -295, 89, -227, -146, 15, 17, 28, -174, 83, + -295, -295, 83, 55, 157, -295, -147, -179, -95, -95, + 82, -95, -147, -116, -1, -2, 482, 483, 484, -125, 82, -122, -227, 89, -227, 90, 90, 391, 29, 79, 80, 81, 29, 76, 77, -111, -111, -111, -111, -169, -200, 207, 84, -295, 83, -233, 354, 357, -170, 82, @@ -5432,25 +5391,27 @@ var yyChk = [...]int{ -272, -122, -122, -122, -122, -122, -151, 89, -122, -122, -171, -295, -200, 177, -171, -171, -208, -227, -156, -161, -187, -95, -131, 113, -135, 55, -8, -200, -133, -200, - -151, -169, -151, 84, -169, 90, -266, 82, 17, 84, - -169, 84, -228, -228, 84, 84, -170, 208, -290, -267, - 358, 358, 23, -169, -270, -269, -201, 82, 75, -295, - -295, -295, -295, -77, 135, 354, -295, -295, -295, 83, - -295, -295, -295, -115, -159, 441, -164, 44, -162, -163, - 45, -160, 46, 54, 10, -133, 157, 84, -3, 84, - -265, -1, 84, -154, 23, -294, -8, 84, 83, 125, - -169, -111, -295, 352, 71, 355, -200, 177, -156, 49, - 268, -166, -165, 53, 45, -163, 17, 47, 17, -175, - -200, -72, -3, 84, -272, 113, -281, -282, 74, -291, - -288, 99, 117, 96, -289, 108, 109, -8, -122, 204, - -64, 354, -269, -250, -201, 89, 90, 84, 60, 353, - 356, -157, 51, -155, 50, -155, -165, 17, 17, 89, - 17, 89, -266, -72, 82, -5, -282, 74, 11, 10, - 99, 89, -64, -295, -295, -65, 219, 445, -274, 60, - -158, 52, 74, 102, 89, 89, 89, -266, -95, 82, - -280, 190, 185, 188, 30, -280, 182, -271, 354, 74, - 102, 84, -169, 184, 29, 99, 221, 355, -4, 486, - 84, 356, 90, -4, + -151, -169, -151, -272, 113, -71, 82, 294, -169, 84, + -228, -228, 84, 84, -170, 208, -290, -267, 358, 358, + 23, -169, -270, -269, -201, 82, 75, -295, -295, -295, + -295, -77, 135, 354, -295, -295, -295, 83, -295, -295, + -295, -115, -159, 441, -164, 44, -162, -163, 45, -160, + 46, 54, 10, -133, 157, 84, 82, -5, 78, -3, + 481, -95, 82, 84, -154, 23, -294, -8, 84, 83, + 125, -169, -111, -295, 352, 71, 355, -200, 177, -156, + 49, 268, -166, -165, 53, 45, -163, 17, 47, 17, + -175, -200, -95, 82, 125, -72, 485, 90, 84, -169, + -281, -282, 74, -291, -288, 99, 117, 96, -289, 108, + 109, -8, -122, 204, -64, 354, -269, -250, -201, 89, + 90, 84, 60, 353, 356, -157, 51, -155, 50, -155, + -165, 17, 17, 89, 17, 89, 84, -169, 90, -266, + 82, 17, 84, -282, 74, 11, 10, 99, 89, -64, + -295, -295, -65, 219, 445, -274, 60, -158, 52, 74, + 102, 89, 89, 89, -3, 84, -265, -1, -280, 190, + 185, 188, 30, -280, 182, -271, 354, 74, 102, -72, + -3, 84, -272, 113, 184, 29, 99, 221, 355, -266, + -72, 82, -5, 356, -266, -95, 82, 84, -169, -4, + 486, 84, 90, -4, } var yyDef = [...]int{ @@ -5463,7 +5424,7 @@ var yyDef = [...]int{ 0, 541, 1425, 1425, 591, 0, 0, 0, 0, 0, 596, 1423, 55, 56, 547, 548, 549, 1, 3, 0, 600, 872, 0, 0, -2, 598, 0, 0, 983, 983, - 983, 0, 402, 87, 0, 0, 0, -2, 90, -2, + 983, 0, 86, 87, 0, 0, 0, -2, 90, -2, 114, 115, 0, 119, 383, 344, 386, 342, 372, -2, 335, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 347, 237, 237, 0, 0, -2, 335, @@ -5530,141 +5491,139 @@ var yyDef = [...]int{ 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, -2, 86, 0, 0, 0, - 128, 129, 0, 38, 263, 0, 124, 0, 257, 209, - 888, 0, 0, 0, 0, 0, 596, 0, 978, 109, - 110, 116, 117, 237, 237, 0, 118, 118, 351, 352, - 353, 0, 0, -2, 261, 0, 336, 0, 0, 251, - 251, 255, 253, 254, 0, 0, 0, 0, 0, 0, - 363, 0, 364, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 444, 0, 238, 0, 381, 382, 291, 0, - 0, 0, 0, 361, 362, 0, 0, 986, 987, 0, - 0, 237, 237, 0, 0, 0, 0, 237, 237, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 108, 901, 0, 0, 0, - -2, 0, 452, 0, 0, 0, 979, 979, 459, 0, - 461, 462, 0, 0, 463, 0, 517, 517, 515, 516, - 465, 466, 467, 468, 520, 0, 0, 246, 247, 248, - 517, 520, 0, 520, 520, 520, 520, 517, 517, 517, - 520, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1426, 1426, 1426, 523, 520, 0, 501, 502, 505, 506, - 1427, 1428, 1015, 507, 508, 969, 537, 540, 557, 555, - 556, 558, 550, 551, 552, 553, 0, 571, 572, 577, - 0, 0, 0, 0, 583, 584, 585, 0, 0, 588, - 589, 590, 0, 0, 0, 0, 0, 699, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 723, 724, 725, - 726, 727, 728, 729, 702, 0, 716, 0, 0, 0, - 758, 759, 760, 761, 762, 763, 764, 765, 766, 0, - 609, 0, 0, 0, 864, 0, 0, 0, 0, 0, - 0, 0, 606, 0, 838, 0, 789, 0, 790, 798, - 0, 791, 799, 792, 800, 793, 794, 801, 795, 802, - 796, 797, 803, 0, 0, 0, 609, 609, 0, 0, - 41, 561, 562, 0, 668, 989, 0, 872, 0, 611, - 910, 0, 0, 873, 865, 866, 869, 872, 0, 634, - 623, 613, 616, 617, 599, 0, 626, 630, 0, 632, - 633, 0, 0, 70, 0, 684, 0, 636, 638, 639, - 640, 666, 0, 0, 0, 0, 66, 68, 685, 0, - 1387, 967, 0, 74, 75, 0, 0, 0, 225, 972, - 973, 974, 411, -2, 244, 0, -2, 216, 160, 161, - 162, 209, 164, 209, 209, 209, 209, 221, 221, 221, - 221, 192, 193, 194, 195, 196, 0, 0, 179, 209, - 209, 209, 209, 199, 200, 201, 202, 203, 204, 205, - 206, 165, 166, 167, 168, 169, 170, 171, 172, 173, - 211, 211, 211, 213, 213, 0, 39, 0, 229, 0, - 869, 0, 901, 981, 991, 0, 0, 0, 981, 92, - 0, 0, 384, 345, 373, 385, 0, 348, 349, -2, - 0, 0, 335, 0, 337, 0, 245, 0, -2, 0, - 255, 0, 251, 255, 252, 255, 243, 256, 365, 846, - 0, 366, 367, 0, 424, 654, 0, 0, 0, 0, - 0, 430, 431, 432, 0, 434, 435, 436, 437, 438, - 439, 440, 441, 442, 443, 374, 375, 376, 377, 378, - 379, 380, 0, 0, 337, 0, 370, 0, 292, 293, - 0, 0, 296, 297, 298, 299, 0, 0, 302, 303, - 304, 671, 672, 305, 329, 330, 331, 306, 307, 308, - 309, 310, 311, 312, 323, 324, 325, 326, 327, 328, - 313, 314, 315, 316, 317, 320, 0, 102, 892, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 979, 0, 0, 0, 0, 686, 1002, 1003, 521, 522, - 0, 249, 250, 520, 520, 469, 492, 0, 520, 473, - 494, 474, 476, 475, 477, 496, 497, 520, 480, 518, - 519, 481, 482, 483, 484, 485, 486, 487, 488, 489, - 490, 498, 0, 499, 500, 0, 0, 538, 542, 543, - 544, 545, 0, 0, 574, 579, 580, 581, 582, 594, - 587, 737, 696, 697, 698, 700, 717, 0, 719, 721, - 707, 708, 732, 733, 734, 0, 0, 0, 0, 730, - 712, 0, 743, 744, 745, 746, 747, 748, 749, 750, - 751, 752, 753, 754, 757, 821, 822, 823, 0, 755, - 756, 767, 0, 0, 0, 610, 847, 0, -2, 0, - 735, 956, 872, 0, 0, 0, 0, 740, 849, 0, - 740, 849, 0, 0, 0, 607, 608, 844, 841, 0, - 0, 807, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 564, 565, 567, 0, 688, 0, 669, 0, 0, - 990, 570, 907, 52, 42, 0, 908, 0, 0, 0, - 0, 868, 870, 871, 907, 0, 857, 0, 0, 693, - 0, 0, 614, 48, 631, 627, 0, 693, 0, 0, - 683, 0, 0, 0, 0, 0, 0, 673, 0, 0, - 676, 0, 0, 0, 0, 667, 0, 0, 0, -2, - 0, 0, 0, 62, 63, 0, 0, 0, 962, 73, - 0, 0, 78, 79, 963, 964, 965, 966, 0, 0, - 0, 412, 415, 416, 111, -2, 287, 130, 132, 133, - 134, 125, 269, 0, 0, 219, 217, 218, 163, 221, - 221, 186, 187, 225, 0, 225, 225, 225, 0, 0, - 180, 181, 182, 183, 174, 0, 175, 176, 177, 0, - 178, 262, 0, 876, 230, 231, 233, 237, 0, 0, - 0, 258, 259, 0, 892, 0, 0, 0, 992, 991, - 991, 991, 0, 120, 121, 122, 123, 118, 0, 0, - 126, 339, 338, 0, 0, 260, 0, 0, 255, 255, - 240, 241, 0, 368, 0, 0, 426, 427, 428, 429, - 0, 0, 0, 337, 339, 225, 0, 294, 295, 300, - 301, 318, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 398, 399, 400, 401, 889, 890, 891, - 0, 0, 453, 0, 0, 279, 64, 980, 458, 517, - 479, 495, 517, 471, 478, 524, 503, 534, 578, 0, - 0, 0, 586, 0, 718, 720, 722, 709, 730, 713, - 0, 710, 0, 0, 704, 772, 0, 0, 609, 0, - 864, 907, 776, 777, 0, 0, 0, 0, 0, 814, - 0, 0, 815, 0, 864, 0, 842, 0, 0, 788, - 808, 0, 0, 809, 810, 811, 812, 813, 563, 566, - 568, 644, 0, 0, 0, 0, 670, 988, 44, 0, - 0, 0, 874, 875, 867, 43, 0, 975, 976, 858, - 859, 860, 0, 624, 635, 615, 0, 872, 950, 0, - 0, 942, 0, 0, 693, 958, 0, 637, 662, 664, - 0, 659, 674, 675, 677, 0, 679, 0, 681, 682, - 641, 642, 643, 0, 693, 0, 693, 67, 693, 69, - 0, 687, 76, 77, 0, 0, 83, 226, 227, 0, - 413, 419, 0, 0, 118, 289, 131, 135, 140, 0, - 0, 0, 144, 0, 146, 270, 0, 156, 158, 0, - 0, 138, 159, 220, 225, 225, 188, 222, 223, 224, - 189, 190, 191, 0, 207, 0, 0, 0, 282, 88, - 880, 879, 237, 237, 232, 0, 235, 0, 993, 210, - 0, 101, 0, 0, 0, 0, 0, 107, 0, 343, - 648, 0, 354, 355, 0, 423, 0, 229, 0, 239, - 242, 847, 655, 0, 0, 356, 0, 339, 359, 360, - 371, 321, 322, 319, 0, 0, 902, 903, 0, 906, - 93, 391, 393, 392, 396, 0, 0, 389, 0, 279, - 876, 0, 457, 280, 281, 520, 520, 573, 0, 576, - 0, 711, 0, 731, 714, 773, 774, 0, 848, 872, - 46, 0, 209, 209, 827, 209, 213, 830, 209, 832, - 209, 835, 0, 0, 0, 0, 0, 0, 0, 839, - 787, 845, 0, 0, 0, 0, 0, 0, 0, 0, - 221, 912, 909, 45, 862, 0, 694, 628, 49, 53, - 0, 950, 941, 952, 954, 0, 0, 0, 946, 0, - 864, 0, 0, 656, 663, 0, 0, 657, 0, 658, - 678, 680, -2, 864, 693, 60, 61, 0, 80, 81, - 82, 0, 0, 0, 406, 0, 0, 0, 288, 141, - 142, 0, 145, 155, 157, 0, 0, 184, 185, 221, - 0, 221, 0, 214, 0, 271, 283, 0, 877, 878, - 0, 0, 234, 236, 0, 982, 103, 0, 0, 0, - 0, 0, 127, 340, 0, 228, 0, 0, 448, 445, - 357, 358, 646, 893, 894, 895, 0, 905, 96, 0, - 0, 0, 0, 454, 455, 456, 65, 464, 470, 575, - 595, 715, 775, 907, 778, 824, 221, 828, 829, 831, - 833, 834, 836, 780, 779, 0, 0, 0, 0, 0, - 872, 0, 843, 0, 0, 0, 0, 0, 668, 221, - 932, 50, 0, 0, 0, 54, 0, 955, 0, 0, - 0, 0, 71, 872, 959, 960, 660, 0, 665, 872, - 59, 0, 0, 0, 409, 0, 420, 417, 0, 143, + 1140, 1141, 1142, 1143, 1144, -2, 0, 0, 128, 129, + 0, 38, 263, 0, 124, 0, 257, 209, 888, 0, + 0, 0, 0, 0, 596, 0, 978, 109, 110, 116, + 117, 237, 237, 0, 118, 118, 351, 352, 353, 0, + 0, -2, 261, 0, 336, 0, 0, 251, 251, 255, + 253, 254, 0, 0, 0, 0, 0, 0, 363, 0, + 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 444, 0, 238, 0, 381, 382, 291, 0, 0, 0, + 0, 361, 362, 0, 0, 986, 987, 0, 0, 237, + 237, 0, 0, 0, 0, 237, 237, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 108, 901, 0, 0, 0, -2, 0, + 452, 0, 0, 0, 979, 979, 459, 0, 461, 462, + 0, 0, 463, 0, 517, 517, 515, 516, 465, 466, + 467, 468, 520, 0, 0, 246, 247, 248, 517, 520, + 0, 520, 520, 520, 520, 517, 517, 517, 520, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1426, 1426, + 1426, 523, 520, 0, 501, 502, 505, 506, 1427, 1428, + 1015, 507, 508, 969, 537, 540, 557, 555, 556, 558, + 550, 551, 552, 553, 0, 571, 572, 577, 0, 0, + 0, 0, 583, 584, 585, 0, 0, 588, 589, 590, + 0, 0, 0, 0, 0, 699, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 723, 724, 725, 726, 727, + 728, 729, 702, 0, 716, 0, 0, 0, 758, 759, + 760, 761, 762, 763, 764, 765, 766, 0, 609, 0, + 0, 0, 864, 0, 0, 0, 0, 0, 0, 0, + 606, 0, 838, 0, 789, 0, 790, 798, 0, 791, + 799, 792, 800, 793, 794, 801, 795, 802, 796, 797, + 803, 0, 0, 0, 609, 609, 0, 0, 41, 561, + 562, 0, 668, 989, 0, 872, 0, 611, 910, 0, + 0, 873, 865, 866, 869, 872, 0, 634, 623, 613, + 616, 617, 599, 0, 626, 630, 0, 632, 633, 0, + 0, 70, 0, 684, 0, 636, 638, 639, 640, 666, + 0, 0, 0, 0, 66, 68, 685, 0, 1387, 967, + 0, 74, 75, 0, 0, 0, 225, 972, 973, 974, + -2, 244, 0, -2, 216, 160, 161, 162, 209, 164, + 209, 209, 209, 209, 221, 221, 221, 221, 192, 193, + 194, 195, 196, 0, 0, 179, 209, 209, 209, 209, + 199, 200, 201, 202, 203, 204, 205, 206, 165, 166, + 167, 168, 169, 170, 171, 172, 173, 211, 211, 211, + 213, 213, 0, 39, 0, 229, 0, 869, 0, 901, + 981, 991, 0, 0, 0, 981, 92, 0, 0, 384, + 345, 373, 385, 0, 348, 349, -2, 0, 0, 335, + 0, 337, 0, 245, 0, -2, 0, 255, 0, 251, + 255, 252, 255, 243, 256, 365, 846, 0, 366, 367, + 0, 424, 654, 0, 0, 0, 0, 0, 430, 431, + 432, 0, 434, 435, 436, 437, 438, 439, 440, 441, + 442, 443, 374, 375, 376, 377, 378, 379, 380, 0, + 0, 337, 0, 370, 0, 292, 293, 0, 0, 296, + 297, 298, 299, 0, 0, 302, 303, 304, 671, 672, + 305, 329, 330, 331, 306, 307, 308, 309, 310, 311, + 312, 323, 324, 325, 326, 327, 328, 313, 314, 315, + 316, 317, 320, 0, 102, 892, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 979, 0, 0, + 0, 0, 686, 1002, 1003, 521, 522, 0, 249, 250, + 520, 520, 469, 492, 0, 520, 473, 494, 474, 476, + 475, 477, 496, 497, 520, 480, 518, 519, 481, 482, + 483, 484, 485, 486, 487, 488, 489, 490, 498, 0, + 499, 500, 0, 0, 538, 542, 543, 544, 545, 0, + 0, 574, 579, 580, 581, 582, 594, 587, 737, 696, + 697, 698, 700, 717, 0, 719, 721, 707, 708, 732, + 733, 734, 0, 0, 0, 0, 730, 712, 0, 743, + 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, + 754, 757, 821, 822, 823, 0, 755, 756, 767, 0, + 0, 0, 610, 847, 0, -2, 0, 735, 956, 872, + 0, 0, 0, 0, 740, 849, 0, 740, 849, 0, + 0, 0, 607, 608, 844, 841, 0, 0, 807, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 564, 565, + 567, 0, 688, 0, 669, 0, 0, 990, 570, 907, + 52, 42, 0, 908, 0, 0, 0, 0, 868, 870, + 871, 907, 0, 857, 0, 0, 693, 0, 0, 614, + 48, 631, 627, 0, 693, 0, 0, 683, 0, 0, + 0, 0, 0, 0, 673, 0, 0, 676, 0, 0, + 0, 0, 667, 0, 0, 0, -2, 0, 0, 0, + 62, 63, 0, 0, 0, 962, 73, 0, 0, 78, + 79, 963, 964, 965, 966, 0, 402, -2, 287, 130, + 132, 133, 134, 125, 269, 0, 0, 219, 217, 218, + 163, 221, 221, 186, 187, 225, 0, 225, 225, 225, + 0, 0, 180, 181, 182, 183, 174, 0, 175, 176, + 177, 0, 178, 262, 0, 876, 230, 231, 233, 237, + 0, 0, 0, 258, 259, 0, 892, 0, 0, 0, + 992, 991, 991, 991, 0, 120, 121, 122, 123, 118, + 0, 0, 126, 339, 338, 0, 0, 260, 0, 0, + 255, 255, 240, 241, 0, 368, 0, 0, 426, 427, + 428, 429, 0, 0, 0, 337, 339, 225, 0, 294, + 295, 300, 301, 318, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 398, 399, 400, 401, 889, + 890, 891, 0, 0, 453, 0, 0, 279, 64, 980, + 458, 517, 479, 495, 517, 471, 478, 524, 503, 534, + 578, 0, 0, 0, 586, 0, 718, 720, 722, 709, + 730, 713, 0, 710, 0, 0, 704, 772, 0, 0, + 609, 0, 864, 907, 776, 777, 0, 0, 0, 0, + 0, 814, 0, 0, 815, 0, 864, 0, 842, 0, + 0, 788, 808, 0, 0, 809, 810, 811, 812, 813, + 563, 566, 568, 644, 0, 0, 0, 0, 670, 988, + 44, 0, 0, 0, 874, 875, 867, 43, 0, 975, + 976, 858, 859, 860, 0, 624, 635, 615, 0, 872, + 950, 0, 0, 942, 0, 0, 693, 958, 0, 637, + 662, 664, 0, 659, 674, 675, 677, 0, 679, 0, + 681, 682, 641, 642, 643, 0, 693, 0, 693, 67, + 693, 69, 0, 687, 76, 77, 0, 0, 83, 226, + 227, 111, 0, 118, 289, 131, 135, 140, 0, 0, + 0, 144, 0, 146, 270, 0, 156, 158, 0, 0, + 138, 159, 220, 225, 225, 188, 222, 223, 224, 189, + 190, 191, 0, 207, 0, 0, 0, 282, 88, 880, + 879, 237, 237, 232, 0, 235, 0, 993, 210, 0, + 101, 0, 0, 0, 0, 0, 107, 0, 343, 648, + 0, 354, 355, 0, 423, 0, 229, 0, 239, 242, + 847, 655, 0, 0, 356, 0, 339, 359, 360, 371, + 321, 322, 319, 0, 0, 902, 903, 0, 906, 93, + 391, 393, 392, 396, 0, 0, 389, 0, 279, 876, + 0, 457, 280, 281, 520, 520, 573, 0, 576, 0, + 711, 0, 731, 714, 773, 774, 0, 848, 872, 46, + 0, 209, 209, 827, 209, 213, 830, 209, 832, 209, + 835, 0, 0, 0, 0, 0, 0, 0, 839, 787, + 845, 0, 0, 0, 0, 0, 0, 0, 0, 221, + 912, 909, 45, 862, 0, 694, 628, 49, 53, 0, + 950, 941, 952, 954, 0, 0, 0, 946, 0, 864, + 0, 0, 656, 663, 0, 0, 657, 0, 658, 678, + 680, -2, 864, 693, 60, 61, 0, 80, 81, 82, + 411, 288, 141, 142, 0, 145, 155, 157, 0, 0, + 184, 185, 221, 0, 221, 0, 214, 0, 271, 283, + 0, 877, 878, 0, 0, 234, 236, 0, 982, 103, + 0, 0, 0, 0, 0, 127, 340, 0, 228, 0, + 0, 448, 445, 357, 358, 646, 893, 894, 895, 0, + 905, 96, 0, 0, 0, 0, 454, 455, 456, 65, + 464, 470, 575, 595, 715, 775, 907, 778, 824, 221, + 828, 829, 831, 833, 834, 836, 780, 779, 0, 0, + 0, 0, 0, 872, 0, 843, 0, 0, 0, 0, + 0, 668, 221, 932, 50, 0, 0, 0, 54, 0, + 955, 0, 0, 0, 0, 71, 872, 959, 960, 660, + 0, 665, 872, 59, 0, 0, 412, 415, 416, 143, 0, 0, 225, 208, 225, 0, 0, 284, 881, 882, 883, 884, 885, 886, 887, 646, 104, 105, 106, 346, 649, 0, 0, 425, 0, 433, 0, 0, 0, 0, @@ -5672,25 +5631,27 @@ var yyDef = [...]int{ 826, 0, 0, 0, 0, 816, 0, 840, 0, 0, 0, 690, 650, 651, 0, 0, 688, 914, 913, 926, 939, 863, 861, 0, 953, 0, 945, 948, 944, 947, - 57, 0, 58, 419, 0, 414, 405, 0, 411, 418, - 0, 149, 197, 198, 212, 215, 0, 0, 264, 449, - 446, 447, 0, 0, 97, 98, 0, 0, 0, 781, - 783, 782, 784, 0, 0, 0, 786, 804, 805, 0, - 689, 691, 692, 645, 932, 0, 925, 0, -2, 934, - 0, 0, 0, 940, 0, 943, 0, 661, 406, 419, - 0, 0, 265, 269, 0, 0, 896, 647, 0, 0, - 0, 397, 785, 0, 0, 0, 652, 653, 919, 917, - 917, 927, 928, 0, 0, 935, 0, 0, 0, 951, - 949, 409, 406, 410, 0, 413, 266, 267, 0, 136, - 150, 151, 0, 0, 154, 147, 148, 896, 0, 0, - 387, 898, 99, 100, 332, 333, 334, 93, 817, 0, - 820, 922, 0, 915, 918, 916, 929, 0, 0, 936, - 0, 938, 403, 409, 0, 0, 268, 0, 0, 0, - 152, 153, 89, 450, 451, 0, 899, 900, 96, 818, - 911, 0, 920, 921, 930, 931, 937, 404, 0, 0, - 272, 274, 275, 0, 0, 273, 0, 394, 0, 923, - 924, 421, 0, 276, 277, 278, 897, 0, 407, 0, - 421, 819, 422, 408, + 57, 0, 58, 0, 413, 419, 0, 0, 0, 149, + 197, 198, 212, 215, 0, 0, 264, 449, 446, 447, + 0, 0, 97, 98, 0, 0, 0, 781, 783, 782, + 784, 0, 0, 0, 786, 804, 805, 0, 689, 691, + 692, 645, 932, 0, 925, 0, -2, 934, 0, 0, + 0, 940, 0, 943, 0, 661, 0, 0, 0, 406, + 0, 0, 0, 265, 269, 0, 0, 896, 647, 0, + 0, 0, 397, 785, 0, 0, 0, 652, 653, 919, + 917, 917, 927, 928, 0, 0, 935, 0, 0, 0, + 951, 949, 0, 0, 0, 409, 0, 420, 417, 0, + 266, 267, 0, 136, 150, 151, 0, 0, 154, 147, + 148, 896, 0, 0, 387, 898, 99, 100, 332, 333, + 334, 93, 817, 0, 820, 922, 0, 915, 918, 916, + 929, 0, 0, 936, 0, 938, 419, 0, 414, 405, + 0, 411, 418, 268, 0, 0, 0, 152, 153, 89, + 450, 451, 0, 899, 900, 96, 818, 911, 0, 920, + 921, 930, 931, 937, 406, 419, 0, 0, 272, 274, + 275, 0, 0, 273, 0, 394, 0, 923, 924, 409, + 406, 410, 0, 413, 276, 277, 278, 897, 0, 403, + 409, 0, 0, 819, 404, 0, 0, 421, 0, 407, + 0, 421, 422, 408, } var yyTok1 = [...]int{ @@ -6571,20 +6532,19 @@ yydefault: } yyVAL.union = yyLOCAL case 86: - yyDollar = yyS[yypt-3 : yypt+1] + yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement //line sql.y:784 { yyDollar[1].createTableUnion().TableSpec = yyDollar[2].tableSpecUnion() yyDollar[1].createTableUnion().FullyParsed = true - yyDollar[1].createTableUnion().PartitionOption = yyDollar[3].partitionOptionUnion() yyLOCAL = yyDollar[1].createTableUnion() } yyVAL.union = yyLOCAL case 87: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:791 +//line sql.y:790 { // Create table [name] like [name] yyDollar[1].createTableUnion().OptLike = yyDollar[2].optLikeUnion() @@ -6595,7 +6555,7 @@ yydefault: case 88: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL Statement -//line sql.y:798 +//line sql.y:797 { indexDef := yyDollar[1].alterTableUnion().AlterOptions[0].(*AddIndexDefinition).IndexDefinition indexDef.Columns = yyDollar[3].indexColumnsUnion() @@ -6608,7 +6568,7 @@ yydefault: case 89: yyDollar = yyS[yypt-12 : yypt+1] var yyLOCAL Statement -//line sql.y:807 +//line sql.y:806 { yyLOCAL = &CreateView{ViewName: yyDollar[8].tableName.ToViewName(), IsReplace: yyDollar[3].booleanUnion(), Algorithm: yyDollar[4].str, Definer: yyDollar[5].str, Security: yyDollar[6].str, Columns: yyDollar[9].columnsUnion(), Select: yyDollar[11].selStmtUnion(), CheckOption: yyDollar[12].str} } @@ -6616,7 +6576,7 @@ yydefault: case 90: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL Statement -//line sql.y:811 +//line sql.y:810 { yyDollar[1].createDatabaseUnion().FullyParsed = true yyDollar[1].createDatabaseUnion().CreateOptions = yyDollar[2].collateAndCharsetsUnion() @@ -6626,7 +6586,7 @@ yydefault: case 91: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL bool -//line sql.y:818 +//line sql.y:817 { yyLOCAL = false } @@ -6634,33 +6594,33 @@ yydefault: case 92: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL bool -//line sql.y:822 +//line sql.y:821 { yyLOCAL = true } yyVAL.union = yyLOCAL case 93: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:827 +//line sql.y:826 { yyVAL.colIdent = NewColIdent("") } case 94: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:831 +//line sql.y:830 { yyVAL.colIdent = yyDollar[2].colIdent } case 95: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:837 +//line sql.y:836 { yyVAL.colIdent = yyDollar[1].colIdent } case 96: yyDollar = yyS[yypt-0 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:842 +//line sql.y:841 { var v []VindexParam yyLOCAL = v @@ -6669,7 +6629,7 @@ yydefault: case 97: yyDollar = yyS[yypt-2 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:847 +//line sql.y:846 { yyLOCAL = yyDollar[2].vindexParamsUnion() } @@ -6677,7 +6637,7 @@ yydefault: case 98: yyDollar = yyS[yypt-1 : yypt+1] var yyLOCAL []VindexParam -//line sql.y:853 +//line sql.y:852 { yyLOCAL = make([]VindexParam, 0, 4) yyLOCAL = append(yyLOCAL, yyDollar[1].vindexParam) @@ -6685,21 +6645,21 @@ yydefault: yyVAL.union = yyLOCAL case 99: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:858 +//line sql.y:857 { yySLICE := (*[]VindexParam)(yyIaddr(yyVAL.union)) *yySLICE = append(*yySLICE, yyDollar[3].vindexParam) } case 100: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:864 +//line sql.y:863 { yyVAL.vindexParam = VindexParam{Key: yyDollar[1].colIdent, Val: yyDollar[3].str} } case 101: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateTable -//line sql.y:870 +//line sql.y:869 { yyLOCAL = &CreateTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[6].tableName, IfNotExists: yyDollar[5].booleanUnion(), Temp: yyDollar[3].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -6708,7 +6668,7 @@ yydefault: case 102: yyDollar = yyS[yypt-4 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:877 +//line sql.y:876 { yyLOCAL = &AlterTable{Comments: Comments(yyDollar[2].strs), Table: yyDollar[4].tableName} setDDL(yylex, yyLOCAL) @@ -6717,7 +6677,7 @@ yydefault: case 103: yyDollar = yyS[yypt-7 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:884 +//line sql.y:883 { yyLOCAL = &AlterTable{Table: yyDollar[7].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[4].colIdent, Type: string(yyDollar[3].str)}, Options: yyDollar[5].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6726,7 +6686,7 @@ yydefault: case 104: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:889 +//line sql.y:888 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Fulltext: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6735,7 +6695,7 @@ yydefault: case 105: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:894 +//line sql.y:893 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Spatial: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6744,7 +6704,7 @@ yydefault: case 106: yyDollar = yyS[yypt-8 : yypt+1] var yyLOCAL *AlterTable -//line sql.y:899 +//line sql.y:898 { yyLOCAL = &AlterTable{Table: yyDollar[8].tableName, AlterOptions: []AlterOption{&AddIndexDefinition{IndexDefinition: &IndexDefinition{Info: &IndexInfo{Name: yyDollar[5].colIdent, Type: string(yyDollar[3].str) + " " + string(yyDollar[4].str), Unique: true}, Options: yyDollar[6].indexOptionsUnion()}}}} setDDL(yylex, yyLOCAL) @@ -6753,7 +6713,7 @@ yydefault: case 107: yyDollar = yyS[yypt-6 : yypt+1] var yyLOCAL *CreateDatabase -//line sql.y:906 +//line sql.y:905 { yyLOCAL = &CreateDatabase{Comments: Comments(yyDollar[4].strs), DBName: yyDollar[6].tableIdent, IfNotExists: yyDollar[5].booleanUnion()} setDDL(yylex, yyLOCAL) @@ -6762,19 +6722,20 @@ yydefault: case 108: yyDollar = yyS[yypt-3 : yypt+1] var yyLOCAL *AlterDatabase -//line sql.y:913 +//line sql.y:912 { yyLOCAL = &AlterDatabase{} setDDL(yylex, yyLOCAL) } yyVAL.union = yyLOCAL case 111: - yyDollar = yyS[yypt-4 : yypt+1] + yyDollar = yyS[yypt-5 : yypt+1] var yyLOCAL *TableSpec -//line sql.y:924 +//line sql.y:923 { yyLOCAL = yyDollar[2].tableSpecUnion() yyLOCAL.Options = yyDollar[4].tableOptionsUnion() + yyLOCAL.PartitionOption = yyDollar[5].partitionOptionUnion() } yyVAL.union = yyLOCAL case 112: diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index 8965325300e..e93a2bd3ade 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -780,11 +780,10 @@ set_session_or_global: } create_statement: - create_table_prefix table_spec partitions_options_opt + create_table_prefix table_spec { $1.TableSpec = $2 $1.FullyParsed = true - $1.PartitionOption = $3 $$ = $1 } | create_table_prefix create_like @@ -920,10 +919,11 @@ database_or_schema: | SCHEMA table_spec: - '(' table_column_list ')' table_option_list_opt + '(' table_column_list ')' table_option_list_opt partitions_options_opt { $$ = $2 $$.Options = $4 + $$.PartitionOption = $5 } create_options_opt: From 069f92da466717676cacda7653dd25872da9a306 Mon Sep 17 00:00:00 2001 From: Thirumalai-Shaktivel Date: Wed, 1 Sep 2021 20:53:05 +0530 Subject: [PATCH 09/11] Use Keyword 'HASH' instead of id_or_var Signed-off-by: Thirumalai-Shaktivel --- go/vt/sqlparser/ast.go | 4 +- go/vt/sqlparser/ast_clone.go | 2 - go/vt/sqlparser/ast_equals.go | 4 +- go/vt/sqlparser/ast_format.go | 8 +- go/vt/sqlparser/ast_format_fast.go | 10 +- go/vt/sqlparser/ast_rewrite.go | 10 - go/vt/sqlparser/ast_visit.go | 6 - go/vt/sqlparser/cached_size.go | 8 +- go/vt/sqlparser/keywords.go | 1 + go/vt/sqlparser/parse_test.go | 26 +- go/vt/sqlparser/sql.go | 6812 ++++++++++++++-------------- go/vt/sqlparser/sql.y | 11 +- 12 files changed, 3430 insertions(+), 3472 deletions(-) diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index de2ce53cc8c..df9ff2a0355 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -1474,7 +1474,7 @@ type PartitionDefinition struct { // PartitionOption describes partitioning control (for create table statements) type PartitionOption struct { Linear string - HASH ColIdent + isHASH bool isKEY bool KeyAlgorithm string KeyColList Columns @@ -1495,7 +1495,7 @@ type ExprOrColumns struct { // SubPartition describes subpartitions control type SubPartition struct { Linear string - HASH ColIdent + isHASH bool isKEY bool KeyAlgorithm string KeyColList Columns diff --git a/go/vt/sqlparser/ast_clone.go b/go/vt/sqlparser/ast_clone.go index 3397dbce376..d767a651a19 100644 --- a/go/vt/sqlparser/ast_clone.go +++ b/go/vt/sqlparser/ast_clone.go @@ -1232,7 +1232,6 @@ func CloneRefOfPartitionOption(n *PartitionOption) *PartitionOption { return nil } out := *n - out.HASH = CloneColIdent(n.HASH) out.KeyColList = CloneColumns(n.KeyColList) out.ExprOrCol = CloneRefOfExprOrColumns(n.ExprOrCol) out.Expr = CloneExpr(n.Expr) @@ -1539,7 +1538,6 @@ func CloneRefOfSubPartition(n *SubPartition) *SubPartition { return nil } out := *n - out.HASH = CloneColIdent(n.HASH) out.KeyColList = CloneColumns(n.KeyColList) out.Expr = CloneExpr(n.Expr) return &out diff --git a/go/vt/sqlparser/ast_equals.go b/go/vt/sqlparser/ast_equals.go index d8e51551894..9aecb47f3a4 100644 --- a/go/vt/sqlparser/ast_equals.go +++ b/go/vt/sqlparser/ast_equals.go @@ -2034,11 +2034,11 @@ func EqualsRefOfPartitionOption(a, b *PartitionOption) bool { return false } return a.Linear == b.Linear && + a.isHASH == b.isHASH && a.isKEY == b.isKEY && a.KeyAlgorithm == b.KeyAlgorithm && a.RangeOrList == b.RangeOrList && a.Partitions == b.Partitions && - EqualsColIdent(a.HASH, b.HASH) && EqualsColumns(a.KeyColList, b.KeyColList) && EqualsRefOfExprOrColumns(a.ExprOrCol, b.ExprOrCol) && EqualsExpr(a.Expr, b.Expr) && @@ -2412,10 +2412,10 @@ func EqualsRefOfSubPartition(a, b *SubPartition) bool { return false } return a.Linear == b.Linear && + a.isHASH == b.isHASH && a.isKEY == b.isKEY && a.KeyAlgorithm == b.KeyAlgorithm && a.SubPartitions == b.SubPartitions && - EqualsColIdent(a.HASH, b.HASH) && EqualsColumns(a.KeyColList, b.KeyColList) && EqualsExpr(a.Expr, b.Expr) } diff --git a/go/vt/sqlparser/ast_format.go b/go/vt/sqlparser/ast_format.go index 542902b0a16..f71e5a13039 100644 --- a/go/vt/sqlparser/ast_format.go +++ b/go/vt/sqlparser/ast_format.go @@ -406,11 +406,11 @@ func (node *PartitionDefinition) Format(buf *TrackedBuffer) { // Format formats the node. func (node *PartitionOption) Format(buf *TrackedBuffer) { buf.WriteString("partition by") - if !node.HASH.IsEmpty() { + if node.isHASH { if node.Linear != "" { buf.astPrintf(node, " %s", node.Linear) } - buf.astPrintf(node, " %v", node.HASH) + buf.WriteString(" hash") if node.Expr != nil { buf.astPrintf(node, " (%v)", node.Expr) } @@ -452,11 +452,11 @@ func (node *PartitionOption) Format(buf *TrackedBuffer) { // Format formats the node. func (node *SubPartition) Format(buf *TrackedBuffer) { buf.WriteString("subpartition by") - if !node.HASH.IsEmpty() { + if node.isHASH { if node.Linear != "" { buf.astPrintf(node, " %s", node.Linear) } - buf.astPrintf(node, " %v", node.HASH) + buf.WriteString(" hash") if node.Expr != nil { buf.astPrintf(node, " (%v)", node.Expr) } diff --git a/go/vt/sqlparser/ast_format_fast.go b/go/vt/sqlparser/ast_format_fast.go index a7c7ddfb452..9b6e81f51f8 100644 --- a/go/vt/sqlparser/ast_format_fast.go +++ b/go/vt/sqlparser/ast_format_fast.go @@ -574,13 +574,12 @@ func (node *PartitionDefinition) formatFast(buf *TrackedBuffer) { // formatFast formats the node. func (node *PartitionOption) formatFast(buf *TrackedBuffer) { buf.WriteString("partition by") - if !node.HASH.IsEmpty() { + if node.isHASH { if node.Linear != "" { buf.WriteByte(' ') buf.WriteString(node.Linear) } - buf.WriteByte(' ') - node.HASH.formatFast(buf) + buf.WriteString(" hash") if node.Expr != nil { buf.WriteString(" (") node.Expr.formatFast(buf) @@ -631,13 +630,12 @@ func (node *PartitionOption) formatFast(buf *TrackedBuffer) { // formatFast formats the node. func (node *SubPartition) formatFast(buf *TrackedBuffer) { buf.WriteString("subpartition by") - if !node.HASH.IsEmpty() { + if node.isHASH { if node.Linear != "" { buf.WriteByte(' ') buf.WriteString(node.Linear) } - buf.WriteByte(' ') - node.HASH.formatFast(buf) + buf.WriteString(" hash") if node.Expr != nil { buf.WriteString(" (") node.Expr.formatFast(buf) diff --git a/go/vt/sqlparser/ast_rewrite.go b/go/vt/sqlparser/ast_rewrite.go index 9814545182d..e468ab9ed50 100644 --- a/go/vt/sqlparser/ast_rewrite.go +++ b/go/vt/sqlparser/ast_rewrite.go @@ -2974,11 +2974,6 @@ func (a *application) rewriteRefOfPartitionOption(parent SQLNode, node *Partitio return true } } - if !a.rewriteColIdent(node, node.HASH, func(newNode, parent SQLNode) { - parent.(*PartitionOption).HASH = newNode.(ColIdent) - }) { - return false - } if !a.rewriteColumns(node, node.KeyColList, func(newNode, parent SQLNode) { parent.(*PartitionOption).KeyColList = newNode.(Columns) }) { @@ -3909,11 +3904,6 @@ func (a *application) rewriteRefOfSubPartition(parent SQLNode, node *SubPartitio return true } } - if !a.rewriteColIdent(node, node.HASH, func(newNode, parent SQLNode) { - parent.(*SubPartition).HASH = newNode.(ColIdent) - }) { - return false - } if !a.rewriteColumns(node, node.KeyColList, func(newNode, parent SQLNode) { parent.(*SubPartition).KeyColList = newNode.(Columns) }) { diff --git a/go/vt/sqlparser/ast_visit.go b/go/vt/sqlparser/ast_visit.go index fc6664556fa..d47c598ee7c 100644 --- a/go/vt/sqlparser/ast_visit.go +++ b/go/vt/sqlparser/ast_visit.go @@ -1524,9 +1524,6 @@ func VisitRefOfPartitionOption(in *PartitionOption, f Visit) error { if cont, err := f(in); err != nil || !cont { return err } - if err := VisitColIdent(in.HASH, f); err != nil { - return err - } if err := VisitColumns(in.KeyColList, f); err != nil { return err } @@ -1961,9 +1958,6 @@ func VisitRefOfSubPartition(in *SubPartition, f Visit) error { if cont, err := f(in); err != nil || !cont { return err } - if err := VisitColIdent(in.HASH, f); err != nil { - return err - } if err := VisitColumns(in.KeyColList, f); err != nil { return err } diff --git a/go/vt/sqlparser/cached_size.go b/go/vt/sqlparser/cached_size.go index 2133ed956f3..805b70ac99a 100644 --- a/go/vt/sqlparser/cached_size.go +++ b/go/vt/sqlparser/cached_size.go @@ -1506,12 +1506,10 @@ func (cached *PartitionOption) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(192) + size += int64(152) } // field Linear string size += int64(len(cached.Linear)) - // field HASH vitess.io/vitess/go/vt/sqlparser.ColIdent - size += cached.HASH.CachedSize(false) // field KeyAlgorithm string size += int64(len(cached.KeyAlgorithm)) // field KeyColList vitess.io/vitess/go/vt/sqlparser.Columns @@ -2034,12 +2032,10 @@ func (cached *SubPartition) CachedSize(alloc bool) int64 { } size := int64(0) if alloc { - size += int64(136) + size += int64(96) } // field Linear string size += int64(len(cached.Linear)) - // field HASH vitess.io/vitess/go/vt/sqlparser.ColIdent - size += cached.HASH.CachedSize(false) // field KeyAlgorithm string size += int64(len(cached.KeyAlgorithm)) // field KeyColList vitess.io/vitess/go/vt/sqlparser.Columns diff --git a/go/vt/sqlparser/keywords.go b/go/vt/sqlparser/keywords.go index 752b5c1f3ac..3d3dd3a6330 100644 --- a/go/vt/sqlparser/keywords.go +++ b/go/vt/sqlparser/keywords.go @@ -237,6 +237,7 @@ var keywords = []keyword{ {"grouping", UNUSED}, {"groups", UNUSED}, {"group_concat", GROUP_CONCAT}, + {"hash", HASH}, {"having", HAVING}, {"header", HEADER}, {"high_priority", UNUSED}, diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index b5462198892..a91552c0192 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1265,9 +1265,9 @@ var ( input: "create table t (pur date) partition by range (year(pur)) subpartition by hash (to_days(pur)) subpartitions 2 (partition p0 values less than (2015), partition p2 values less than (2018))", output: "create table t (\n\tpur date\n) partition by range (year(pur)) subpartition by hash (to_days(pur)) subpartitions 2 (partition p0 values less than (2015), partition p2 values less than (2018))", }, { - input: "alter vschema create vindex hash_vdx using hash", + input: "alter vschema create vindex hash_vdx using `hash`", }, { - input: "alter vschema create vindex keyspace.hash_vdx using hash", + input: "alter vschema create vindex keyspace.hash_vdx using `hash`", }, { input: "alter vschema create vindex lookup_vdx using lookup with owner=user, table=name_user_idx, from=name, to=user_id", }, { @@ -1293,25 +1293,25 @@ var ( }, { input: "alter vschema drop table ks.a", }, { - input: "alter vschema on a add vindex hash (id)", + input: "alter vschema on a add vindex `hash` (id)", }, { - input: "alter vschema on ks.a add vindex hash (id)", + input: "alter vschema on ks.a add vindex `hash` (id)", }, { input: "alter vschema on a add vindex `hash` (`id`)", - output: "alter vschema on a add vindex hash (id)", + output: "alter vschema on a add vindex `hash` (id)", }, { input: "alter vschema on `ks`.a add vindex `hash` (`id`)", - output: "alter vschema on ks.a add vindex hash (id)", + output: "alter vschema on ks.a add vindex `hash` (id)", }, { input: "alter vschema on a add vindex hash (id) using `hash`", - output: "alter vschema on a add vindex hash (id) using hash", + output: "alter vschema on a add vindex `hash` (id) using `hash`", }, { input: "alter vschema on a add vindex `add` (`add`)", }, { - input: "alter vschema on a add vindex hash (id) using hash", + input: "alter vschema on a add vindex `hash` (id) using `hash`", }, { input: "alter vschema on a add vindex hash (id) using `hash`", - output: "alter vschema on a add vindex hash (id) using hash", + output: "alter vschema on a add vindex `hash` (id) using `hash`", }, { input: "alter vschema on user add vindex name_lookup_vdx (name) using lookup_hash with owner=user, table=name_user_idx, from=name, to=user_id", output: "alter vschema on `user` add vindex name_lookup_vdx (`name`) using lookup_hash with owner=user, table=name_user_idx, from=name, to=user_id", @@ -1319,15 +1319,15 @@ var ( input: "alter vschema on user2 add vindex name_lastname_lookup_vdx (name,lastname) using lookup with owner=`user`, table=`name_lastname_keyspace_id_map`, from=`name,lastname`, to=`keyspace_id`", output: "alter vschema on user2 add vindex name_lastname_lookup_vdx (`name`, lastname) using lookup with owner=user, table=name_lastname_keyspace_id_map, from=name,lastname, to=keyspace_id", }, { - input: "alter vschema on a drop vindex hash", + input: "alter vschema on a drop vindex `hash`", }, { - input: "alter vschema on ks.a drop vindex hash", + input: "alter vschema on ks.a drop vindex `hash`", }, { input: "alter vschema on a drop vindex `hash`", - output: "alter vschema on a drop vindex hash", + output: "alter vschema on a drop vindex `hash`", }, { input: "alter vschema on a drop vindex hash", - output: "alter vschema on a drop vindex hash", + output: "alter vschema on a drop vindex `hash`", }, { input: "alter vschema on a drop vindex `add`", output: "alter vschema on a drop vindex `add`", diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index fba39064ea8..5fb02312077 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -511,6 +511,7 @@ const RANGE = 57808 const LIST = 57809 const SUBPARTITION = 57810 const SUBPARTITIONS = 57811 +const HASH = 57812 var yyToknames = [...]string{ "$end", @@ -999,6 +1000,7 @@ var yyToknames = [...]string{ "LIST", "SUBPARTITION", "SUBPARTITIONS", + "HASH", "';'", } @@ -1015,7 +1017,7 @@ var yyExca = [...]int{ -2, 0, -1, 45, 1, 112, - 487, 112, + 488, 112, -2, 118, -1, 46, 111, 118, @@ -1040,7 +1042,7 @@ var yyExca = [...]int{ -2, 91, -1, 99, 1, 113, - 487, 113, + 488, 113, -2, 118, -1, 109, 112, 244, @@ -1051,611 +1053,587 @@ var yyExca = [...]int{ 150, 118, 265, 118, -2, 350, - -1, 574, + -1, 575, 157, 998, -2, 994, - -1, 575, + -1, 576, 157, 999, -2, 995, - -1, 594, + -1, 595, 57, 604, -2, 616, - -1, 595, + -1, 596, 57, 605, -2, 617, - -1, 616, - 125, 1353, - -2, 84, -1, 617, + 125, 1354, + -2, 84, + -1, 618, 125, 1232, -2, 85, - -1, 623, - 125, 1284, + -1, 624, + 125, 1285, -2, 971, - -1, 765, + -1, 766, 125, 1166, -2, 968, - -1, 801, + -1, 802, 182, 38, 187, 38, -2, 255, - -1, 878, + -1, 879, 1, 388, - 487, 388, + 488, 388, -2, 118, - -1, 1120, + -1, 1121, 111, 118, 150, 118, 265, 118, -2, 285, - -1, 1123, + -1, 1124, 23, 137, -2, 139, - -1, 1196, + -1, 1197, 112, 244, 177, 244, -2, 335, - -1, 1205, + -1, 1206, 182, 39, 187, 39, -2, 256, - -1, 1415, + -1, 1416, 157, 1003, -2, 997, - -1, 1506, + -1, 1507, 75, 66, 83, 66, -2, 70, - -1, 1527, + -1, 1528, 111, 118, 150, 118, 265, 118, -2, 286, - -1, 1961, + -1, 1962, 5, 864, 18, 864, 20, 864, 31, 864, 84, 864, -2, 643, - -1, 2206, + -1, 2207, 47, 939, -2, 933, } const yyPrivate = 57344 -const yyLast = 30170 +const yyLast = 29941 var yyAct = [...]int{ - 574, 605, 2359, 2299, 2217, 1838, 2255, 2219, 2121, 2328, - 2084, 2021, 2010, 2274, 2261, 2243, 1746, 2207, 2287, 2148, - 546, 1941, 1713, 2183, 1794, 2011, 2118, 1942, 1068, 587, - 1786, 1793, 1021, 532, 1524, 1747, 1452, 1075, 1560, 1938, - 1818, 1842, 2140, 1733, 517, 1881, 831, 515, 1580, 165, - 1565, 768, 165, 1819, 480, 165, 83, 3, 137, 939, - 496, 1545, 165, 1820, 1953, 1900, 889, 509, 1409, 1401, - 165, 81, 1673, 1102, 1593, 918, 1203, 1579, 621, 1312, - 123, 1503, 1567, 1812, 796, 1626, 1105, 1112, 1485, 1078, - 1073, 1492, 496, 1454, 596, 496, 165, 496, 508, 1435, - 1060, 33, 581, 519, 1378, 957, 1095, 1098, 775, 809, - 1210, 1309, 772, 799, 1221, 1295, 776, 1096, 802, 1577, - 1468, 1556, 797, 798, 1546, 1111, 1508, 1085, 1317, 79, - 1109, 1177, 100, 101, 140, 874, 1172, 1034, 106, 937, - 107, 78, 8, 7, 1037, 503, 6, 2360, 2086, 2087, - 2088, 618, 2256, 512, 2086, 2220, 1861, 1860, 1624, 1281, - 1888, 1889, 1367, 1195, 1366, 784, 2150, 779, 167, 168, - 169, 1365, 833, 1449, 1450, 1364, 603, 607, 454, 769, - 102, 582, 1363, 1362, 1351, 847, 848, 836, 851, 852, - 853, 854, 958, 1355, 857, 858, 859, 860, 861, 862, - 863, 864, 865, 866, 867, 868, 869, 870, 871, 504, - 108, 84, 1412, 506, 2313, 507, 622, 1711, 958, 2203, - 813, 2097, 615, 2179, 812, 2178, 2116, 791, 1990, 2117, - 2353, 835, 790, 789, 102, 834, 2284, 2348, 80, 2236, - 2336, 2122, 1612, 837, 838, 839, 844, 1663, 86, 87, - 88, 89, 90, 91, 2283, 2235, 97, 968, 1572, 162, - 1917, 2054, 449, 1186, 1712, 849, 2192, 983, 982, 992, - 993, 985, 986, 987, 988, 989, 990, 991, 984, 1570, - 1868, 994, 580, 968, 1867, 783, 1113, 785, 1114, 35, - 161, 1967, 72, 39, 40, 1451, 1887, 925, 102, 927, - 559, 1837, 565, 566, 563, 564, 1661, 562, 561, 560, - 1509, 1518, 877, 935, 103, 1802, 125, 567, 568, 908, - 1777, 578, 788, 1776, 883, 884, 1778, 145, 873, 1968, - 1969, 1519, 1520, 913, 914, 924, 926, 577, 2166, 896, - 909, 896, 2240, 788, 897, 780, 897, 964, 902, 2023, - 956, 494, 782, 781, 895, 2045, 894, 483, 135, 1356, - 1357, 1358, 2043, 124, 1569, 71, 1539, 1538, 492, 1354, - 498, 1843, 1064, 964, 483, 167, 168, 169, 786, 483, - 1864, 142, 1632, 143, 1637, 1635, 1636, 1594, 1197, 1198, - 134, 133, 160, 1301, 1271, 2017, 850, 1296, 1627, 786, - 2347, 483, 931, 2018, 788, 872, 911, 912, 917, 879, - 934, 1876, 1642, 792, 856, 855, 910, 2175, 2025, 915, - 1631, 1629, 2111, 922, 903, 2024, 1639, 923, 1640, 916, - 1641, 1596, 1189, 1782, 1486, 1633, 1272, 928, 1273, 793, - 2314, 820, 818, 829, 828, 827, 129, 1199, 136, 165, - 1196, 165, 130, 131, 165, 826, 825, 146, 921, 824, - 1630, 1509, 823, 822, 817, 1798, 151, 876, 830, 773, - 811, 2332, 929, 1880, 805, 2344, 773, 2334, 773, 804, - 771, 496, 496, 496, 787, 2193, 1310, 1578, 1209, 963, - 960, 961, 962, 967, 969, 966, 609, 965, 1877, 496, - 496, 1618, 1989, 1306, 959, 787, 944, 1714, 1716, 1789, - 840, 484, 1997, 975, 906, 963, 960, 961, 962, 967, - 969, 966, 892, 965, 898, 899, 900, 901, 484, 810, - 959, 930, 1866, 484, 814, 804, 2234, 1571, 1302, 821, - 819, 1863, 1926, 1925, 815, 811, 936, 1924, 1853, 509, - 2167, 932, 875, 1208, 1790, 484, 1184, 950, 1032, 1183, - 1182, 2241, 816, 1883, 1307, 1180, 787, 453, 1882, 448, - 1875, 811, 138, 1874, 2214, 1883, 1792, 846, 165, 1787, - 1882, 1662, 1614, 1692, 1006, 1007, 2074, 2275, 1689, 811, - 1071, 1074, 1796, 1797, 99, 1966, 1738, 1788, 1300, 1283, - 1282, 1284, 1285, 1286, 810, 1681, 496, 1604, 1514, 165, - 1715, 165, 165, 1089, 496, 885, 1901, 882, 1004, 1065, - 496, 941, 942, 893, 73, 1019, 2330, 132, 887, 2331, - 810, 2329, 1525, 994, 984, 814, 804, 994, 1773, 126, - 1066, 919, 127, 953, 951, 815, 1464, 952, 810, 1022, - 971, 1318, 1349, 905, 804, 807, 808, 1795, 773, 1903, - 891, 94, 801, 805, 907, 974, 974, 811, 2254, 1798, - 972, 973, 971, 618, 1008, 1009, 1010, 1011, 1012, 1013, - 1014, 1015, 1016, 1017, 1297, 1061, 1298, 2230, 974, 1299, - 832, 1079, 1094, 973, 971, 1951, 1919, 1036, 1039, 1041, - 1043, 1044, 1046, 1048, 1049, 1040, 1042, 1628, 1045, 1047, - 974, 1050, 95, 1303, 1613, 1115, 954, 811, 1436, 1436, - 1699, 1905, 1058, 1909, 1831, 1904, 810, 1902, 845, 1006, - 1007, 2153, 1907, 1977, 1006, 1007, 1976, 1466, 622, 1600, - 1220, 1906, 1606, 139, 144, 141, 147, 148, 149, 150, - 152, 153, 154, 155, 1908, 1910, 1219, 2357, 878, 156, - 157, 158, 159, 1385, 920, 1207, 1610, 1791, 165, 167, - 168, 169, 1173, 1403, 1319, 1606, 810, 1383, 1384, 1382, - 890, 1181, 804, 807, 808, 1611, 773, 972, 973, 971, - 801, 805, 1609, 167, 168, 169, 1067, 1807, 820, 1608, - 496, 1465, 1205, 818, 2307, 974, 1077, 71, 2337, 800, - 1214, 2345, 1972, 1687, 1218, 2319, 1082, 496, 496, 1381, - 496, 1686, 496, 496, 1110, 496, 496, 496, 496, 496, - 496, 1290, 972, 973, 971, 1404, 2338, 2362, 1187, 1188, - 496, 2298, 2257, 2320, 165, 1254, 167, 168, 169, 2096, - 974, 1201, 972, 973, 971, 2095, 1995, 1215, 1688, 1808, - 165, 1816, 985, 986, 987, 988, 989, 990, 991, 984, - 974, 496, 994, 165, 2343, 1815, 1194, 1373, 1375, 1376, - 1575, 2346, 1249, 1250, 1308, 1291, 1213, 1288, 165, 1276, - 1275, 1251, 1289, 1316, 1274, 1374, 1257, 1258, 1469, 1470, - 1265, 1278, 1263, 1264, 165, 987, 988, 989, 990, 991, - 984, 165, 608, 994, 1179, 2296, 613, 1211, 1211, 1212, - 165, 165, 165, 165, 165, 165, 165, 165, 165, 496, - 496, 496, 1223, 1192, 1224, 1190, 1226, 1228, 1204, 1259, - 1232, 1234, 1236, 1238, 1240, 972, 973, 971, 1287, 972, - 973, 971, 1928, 1267, 167, 168, 169, 165, 1191, 1666, - 1667, 1668, 1277, 974, 1256, 1252, 1314, 974, 1255, 1322, - 1320, 1321, 1368, 1369, 1370, 1371, 1326, 2258, 1328, 1329, - 1330, 1331, 2164, 2323, 1325, 1335, 1230, 972, 973, 971, - 2322, 1332, 1333, 1334, 2321, 1402, 1185, 1311, 1379, 1350, - 1929, 2308, 610, 611, 1405, 974, 2295, 972, 973, 971, - 2293, 790, 789, 102, 972, 973, 971, 2137, 496, 167, - 168, 169, 1921, 1780, 2093, 974, 1817, 1422, 1423, 2062, - 1361, 591, 974, 1324, 1975, 983, 982, 992, 993, 985, - 986, 987, 988, 989, 990, 991, 984, 1930, 1825, 994, - 1813, 1657, 496, 496, 1406, 1407, 972, 973, 971, 1622, - 1419, 1621, 1458, 165, 1315, 509, 1279, 1266, 1345, 1346, - 1347, 1262, 1424, 1427, 974, 1261, 1260, 496, 1437, 1413, - 933, 1380, 2020, 2173, 165, 2004, 2361, 496, 167, 168, - 169, 165, 1588, 165, 1674, 1459, 1457, 2267, 1415, 1414, - 2265, 165, 165, 2114, 2341, 1471, 2172, 1022, 496, 2269, - 2270, 496, 80, 1796, 1797, 2004, 2325, 1523, 2266, 167, - 168, 169, 496, 1443, 1444, 167, 168, 169, 2120, 1586, - 1377, 2004, 2302, 1386, 1387, 1388, 1389, 1390, 1391, 1392, - 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1844, 1413, - 1416, 535, 534, 537, 538, 539, 540, 1504, 2004, 2281, - 536, 1734, 541, 2004, 2228, 2004, 2223, 618, 1415, 1483, - 618, 2004, 2215, 1529, 1479, 1507, 1564, 496, 1795, 1528, - 2197, 591, 1828, 1581, 1582, 1583, 2114, 591, 1585, 1587, - 1798, 591, 1439, 2004, 2112, 1606, 591, 1547, 1548, 1549, - 1939, 496, 2072, 591, 1987, 1986, 1532, 496, 1214, 1950, - 1562, 1214, 35, 1214, 1481, 1983, 1984, 1983, 1982, 1477, - 591, 1605, 1509, 1862, 1568, 1176, 1846, 1533, 1595, 1510, - 1512, 1489, 622, 1510, 1516, 622, 1420, 1421, 1515, 1950, - 1426, 1429, 1430, 1478, 1531, 1530, 1840, 1841, 1489, 591, - 2069, 496, 1592, 1402, 970, 591, 1176, 1175, 1402, 1402, - 1540, 2155, 1541, 1542, 1543, 1544, 1442, 1121, 1120, 1445, - 1446, 1734, 2229, 970, 1767, 35, 35, 591, 1552, 1553, - 1554, 1555, 1509, 82, 1599, 1563, 1607, 1602, 71, 1603, - 1558, 1559, 1511, 1573, 165, 1576, 1511, 2098, 1574, 1741, - 1513, 165, 1615, 2169, 1509, 1584, 165, 165, 2004, 813, - 165, 1985, 165, 812, 1477, 1598, 1489, 1563, 165, 1211, - 1601, 575, 1617, 1597, 1742, 165, 1616, 1619, 1620, 983, - 982, 992, 993, 985, 986, 987, 988, 989, 990, 991, - 984, 1950, 1606, 994, 1488, 1517, 1704, 2099, 2100, 2101, - 1477, 71, 71, 165, 496, 983, 982, 992, 993, 985, - 986, 987, 988, 989, 990, 991, 984, 1625, 2057, 994, - 166, 1703, 1477, 166, 584, 1606, 166, 1589, 1467, 1447, - 1359, 497, 1305, 166, 1107, 795, 794, 1652, 1653, 1245, - 2356, 166, 1655, 2300, 2351, 2253, 2022, 1489, 71, 2222, - 2216, 1656, 2185, 1379, 1494, 1497, 1498, 1499, 1495, 2119, - 1496, 1500, 2090, 497, 1954, 1955, 497, 166, 497, 1645, - 2080, 983, 982, 992, 993, 985, 986, 987, 988, 989, - 990, 991, 984, 1178, 1561, 994, 2019, 1979, 1700, 1246, - 1247, 1248, 1821, 1847, 1557, 1551, 1550, 1293, 165, 1683, - 71, 1206, 1202, 1174, 96, 2218, 165, 2102, 1822, 877, - 1242, 1954, 1955, 2186, 1572, 1660, 2304, 1724, 1725, 1074, - 1494, 1497, 1498, 1499, 1495, 2262, 1496, 1500, 2002, 165, - 1758, 2001, 2000, 1957, 1939, 1759, 1380, 1669, 1720, 1822, - 165, 165, 165, 165, 165, 1832, 1646, 1352, 1756, 1960, - 1727, 1959, 165, 1757, 2103, 2104, 165, 1243, 1244, 165, - 165, 1755, 1754, 165, 165, 165, 1076, 2316, 582, 1682, - 1760, 2282, 1498, 1499, 1931, 1723, 1779, 2073, 1739, 2007, - 1732, 2208, 2210, 1748, 1698, 601, 597, 1670, 1671, 1672, - 2211, 2318, 1743, 1731, 2245, 2286, 2288, 1806, 1710, 1718, - 598, 1721, 2244, 2248, 2205, 1061, 1800, 1304, 1726, 1722, - 1736, 576, 1765, 1536, 1826, 842, 841, 1735, 2032, 1821, - 1069, 1886, 943, 496, 1737, 1080, 1081, 600, 165, 599, - 1805, 1070, 1809, 1810, 1811, 165, 1784, 1855, 1854, 103, - 1768, 496, 1761, 1314, 1770, 1766, 1749, 496, 1432, 1752, - 1771, 1214, 1214, 1803, 1804, 1774, 2067, 496, 1750, 1751, - 1462, 1753, 1433, 1998, 1785, 1568, 1824, 1469, 1470, 1859, - 1649, 2225, 2180, 1678, 1679, 601, 597, 1665, 1799, 1502, - 165, 165, 165, 165, 165, 1814, 585, 586, 1638, 588, - 598, 2301, 1730, 2294, 1696, 2292, 165, 165, 2291, 1823, - 1729, 2249, 1858, 2247, 2066, 2003, 1970, 1590, 1857, 1833, - 1834, 1835, 1829, 589, 1850, 594, 595, 600, 82, 599, - 1194, 2065, 1934, 1734, 2306, 2305, 2306, 1848, 1849, 1693, - 1690, 1090, 496, 1415, 1414, 1083, 2212, 1974, 1402, 1463, - 1856, 992, 993, 985, 986, 987, 988, 989, 990, 991, - 984, 1920, 584, 994, 80, 85, 77, 1, 2264, 466, - 1448, 1059, 1899, 479, 2260, 1280, 1270, 2123, 496, 1878, - 1898, 2182, 1566, 803, 128, 1526, 1527, 1884, 2277, 165, - 1885, 93, 766, 92, 1918, 806, 1935, 904, 1591, 496, - 2115, 1897, 1801, 1890, 1537, 496, 496, 1127, 1125, 1896, - 1126, 1124, 1129, 1128, 1912, 1123, 1353, 1911, 1940, 493, - 1501, 163, 1116, 1943, 1084, 843, 456, 1988, 165, 1937, - 166, 1348, 166, 1623, 462, 166, 1002, 1728, 1775, 619, - 612, 1945, 2242, 2204, 2206, 2149, 1748, 1438, 2209, 2202, - 1949, 2317, 2285, 2224, 1534, 1461, 1072, 2064, 1897, 165, - 1933, 1697, 497, 497, 497, 1031, 1434, 1099, 518, 1456, - 1962, 1372, 1964, 533, 1965, 530, 531, 1958, 1472, 1740, - 497, 497, 976, 516, 510, 1091, 1493, 1996, 1892, 1893, - 1491, 1490, 1927, 165, 1647, 1103, 1956, 1952, 1980, 1981, - 1097, 496, 1971, 1913, 1914, 2051, 1915, 1916, 496, 1963, - 1476, 2056, 1535, 2009, 165, 1865, 2016, 1922, 1923, 955, - 1948, 593, 505, 778, 165, 1431, 2191, 1664, 1993, 1994, - 2053, 590, 592, 2165, 1992, 1781, 61, 38, 165, 500, - 2312, 165, 946, 1991, 602, 32, 31, 544, 2006, 30, - 2033, 29, 2005, 28, 23, 1568, 22, 2008, 2014, 166, - 21, 20, 19, 2013, 983, 982, 992, 993, 985, 986, - 987, 988, 989, 990, 991, 984, 25, 18, 994, 17, - 2028, 16, 98, 2055, 2027, 48, 45, 497, 2036, 43, - 166, 105, 166, 166, 104, 497, 46, 42, 880, 27, - 26, 497, 15, 1973, 2041, 14, 509, 495, 13, 12, - 11, 2030, 2031, 2078, 10, 9, 2079, 5, 4, 2081, - 949, 983, 982, 992, 993, 985, 986, 987, 988, 989, - 990, 991, 984, 24, 1020, 994, 2, 2085, 0, 620, - 2068, 0, 770, 0, 777, 0, 2077, 2076, 0, 0, - 0, 2063, 0, 0, 0, 1748, 0, 0, 165, 0, - 2082, 165, 165, 165, 496, 496, 0, 2083, 2089, 2109, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2124, 496, 496, 496, 0, 0, 0, - 0, 0, 0, 2038, 2039, 0, 2040, 0, 0, 2042, - 2130, 2044, 0, 0, 2092, 2034, 2094, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 496, - 496, 496, 165, 0, 0, 2128, 0, 2151, 509, 0, - 0, 0, 0, 496, 0, 496, 0, 0, 0, 0, - 0, 496, 0, 2136, 0, 2163, 2161, 0, 0, 166, - 1943, 496, 0, 0, 1943, 2158, 2168, 2154, 2146, 2152, - 0, 2129, 2144, 2145, 0, 0, 2160, 0, 0, 0, - 0, 0, 2162, 0, 0, 0, 0, 0, 0, 0, - 496, 497, 0, 496, 2147, 2181, 0, 2170, 2156, 2171, - 0, 0, 2174, 2091, 0, 0, 0, 2176, 497, 497, - 2177, 497, 0, 497, 497, 0, 497, 497, 497, 497, - 497, 497, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 497, 0, 0, 0, 166, 0, 0, 2221, 2201, - 0, 0, 0, 0, 0, 0, 1943, 2213, 0, 0, - 0, 166, 2184, 0, 0, 0, 496, 165, 0, 0, - 0, 2231, 497, 0, 166, 0, 0, 0, 496, 0, - 0, 0, 2131, 2132, 2133, 2134, 2135, 0, 0, 166, - 2138, 2139, 0, 0, 0, 496, 0, 0, 2252, 0, - 0, 0, 2239, 496, 2246, 166, 0, 0, 2259, 2250, - 496, 496, 166, 0, 0, 0, 0, 2227, 0, 0, - 0, 166, 166, 166, 166, 166, 166, 166, 166, 166, - 497, 497, 497, 2276, 496, 2263, 2268, 1748, 2290, 2297, - 2289, 0, 983, 982, 992, 993, 985, 986, 987, 988, - 989, 990, 991, 984, 0, 2303, 994, 0, 166, 0, - 0, 0, 2271, 0, 0, 2309, 0, 0, 0, 2184, - 2278, 0, 0, 2315, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2324, 0, 0, 0, 0, 0, - 0, 0, 2327, 2326, 0, 0, 2333, 0, 0, 0, - 0, 0, 0, 0, 2335, 167, 168, 169, 2342, 0, - 0, 2339, 0, 2340, 0, 0, 0, 0, 0, 497, - 0, 0, 0, 2349, 2050, 0, 0, 2350, 2352, 0, - 0, 483, 0, 2355, 2354, 0, 0, 496, 0, 2049, - 0, 0, 2358, 0, 2363, 0, 0, 0, 620, 620, - 620, 0, 0, 497, 497, 0, 0, 0, 0, 0, - 2272, 0, 0, 0, 166, 0, 945, 947, 0, 0, - 0, 471, 0, 0, 0, 0, 0, 0, 497, 0, - 470, 0, 0, 0, 0, 166, 0, 0, 497, 0, - 0, 468, 166, 0, 166, 0, 0, 161, 0, 0, - 0, 0, 166, 166, 0, 0, 0, 0, 0, 497, - 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, - 0, 103, 0, 497, 0, 0, 0, 0, 0, 465, - 0, 0, 0, 0, 145, 0, 0, 0, 478, 0, - 983, 982, 992, 993, 985, 986, 987, 988, 989, 990, - 991, 984, 0, 476, 994, 983, 982, 992, 993, 985, - 986, 987, 988, 989, 990, 991, 984, 0, 0, 994, - 0, 0, 0, 1087, 0, 1783, 0, 0, 497, 0, - 0, 620, 0, 0, 0, 484, 0, 1117, 142, 0, - 143, 0, 0, 0, 0, 0, 0, 0, 0, 160, - 0, 0, 497, 0, 0, 0, 0, 0, 497, 0, - 0, 2048, 0, 455, 0, 457, 472, 0, 486, 0, - 485, 461, 0, 459, 463, 473, 464, 0, 458, 0, - 469, 0, 0, 460, 474, 475, 490, 489, 477, 0, - 467, 487, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 497, 0, 0, 0, 0, 0, 978, 0, - 981, 0, 0, 0, 146, 0, 995, 996, 997, 998, - 999, 1000, 1001, 151, 979, 980, 977, 983, 982, 992, - 993, 985, 986, 987, 988, 989, 990, 991, 984, 0, - 0, 994, 0, 0, 0, 166, 0, 0, 0, 0, - 0, 0, 166, 0, 0, 0, 0, 166, 166, 0, - 0, 166, 0, 166, 0, 0, 0, 0, 0, 166, - 0, 0, 1891, 0, 0, 0, 166, 983, 982, 992, - 993, 985, 986, 987, 988, 989, 990, 991, 984, 0, - 0, 994, 983, 982, 992, 993, 985, 986, 987, 988, - 989, 990, 991, 984, 166, 497, 994, 0, 0, 0, - 0, 0, 0, 0, 0, 488, 0, 770, 982, 992, - 993, 985, 986, 987, 988, 989, 990, 991, 984, 138, - 1216, 994, 0, 481, 1222, 1222, 0, 1222, 1675, 1222, - 1222, 0, 1231, 1222, 1222, 1222, 1222, 1222, 482, 0, - 0, 0, 0, 0, 0, 1216, 1216, 770, 983, 982, - 992, 993, 985, 986, 987, 988, 989, 990, 991, 984, - 0, 0, 994, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1292, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, - 0, 0, 0, 0, 0, 0, 0, 166, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 545, 0, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 1417, 1418, - 0, 166, 166, 166, 166, 166, 620, 620, 620, 0, - 0, 0, 0, 166, 161, 0, 0, 166, 0, 0, - 166, 166, 0, 0, 166, 166, 166, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 164, 0, 103, 452, - 125, 0, 491, 0, 1460, 0, 0, 0, 0, 452, - 0, 145, 0, 0, 0, 0, 0, 452, 0, 103, - 139, 144, 141, 147, 148, 149, 150, 152, 153, 154, - 155, 0, 145, 0, 606, 606, 156, 157, 158, 159, - 0, 0, 135, 452, 497, 0, 0, 124, 0, 166, - 0, 0, 0, 0, 0, 1408, 166, 620, 0, 0, - 0, 0, 497, 0, 0, 142, 0, 143, 497, 0, - 0, 1216, 112, 113, 134, 133, 160, 0, 497, 0, - 0, 0, 0, 0, 0, 0, 142, 0, 143, 1440, - 1441, 0, 0, 0, 0, 0, 0, 160, 0, 0, - 0, 166, 166, 166, 166, 166, 0, 0, 0, 0, - 0, 0, 0, 0, 1473, 0, 0, 166, 166, 0, - 0, 0, 0, 0, 1087, 0, 0, 620, 0, 0, - 129, 110, 136, 117, 109, 0, 130, 131, 0, 0, - 0, 146, 0, 0, 0, 620, 0, 0, 620, 0, - 151, 118, 0, 497, 0, 0, 0, 0, 0, 770, - 0, 0, 146, 0, 0, 121, 119, 114, 115, 116, - 120, 151, 0, 0, 0, 111, 0, 0, 547, 34, - 0, 0, 0, 0, 122, 0, 0, 0, 0, 497, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 497, 0, 0, 34, 777, 0, 497, 497, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 770, 166, - 0, 0, 0, 0, 777, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 138, 0, 583, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 166, 0, 0, 0, 0, 0, 0, 138, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 770, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 166, 0, 0, 0, 0, 0, - 0, 132, 497, 0, 0, 0, 0, 0, 0, 497, - 0, 0, 0, 126, 0, 166, 127, 0, 0, 0, - 0, 0, 0, 0, 0, 166, 0, 0, 0, 0, - 0, 0, 0, 1676, 0, 0, 0, 1677, 0, 166, - 0, 0, 166, 0, 0, 0, 0, 0, 1684, 1685, - 0, 0, 0, 0, 1691, 0, 0, 1694, 1695, 0, - 0, 0, 0, 0, 0, 1701, 0, 1702, 0, 0, - 1705, 1706, 1707, 1708, 1709, 0, 0, 0, 0, 0, - 0, 1659, 0, 0, 1719, 0, 452, 0, 452, 0, - 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 139, 144, 141, - 147, 148, 149, 150, 152, 153, 154, 155, 0, 0, - 0, 1763, 1764, 156, 157, 158, 159, 0, 139, 144, - 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 0, 166, - 0, 0, 166, 166, 166, 497, 497, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 497, 497, 497, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 452, 1216, 0, 0, 0, - 497, 497, 497, 166, 0, 0, 0, 0, 0, 0, - 0, 606, 0, 1062, 497, 0, 497, 0, 0, 0, - 0, 0, 497, 0, 0, 0, 452, 0, 452, 1106, - 0, 0, 497, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 497, 0, 0, 497, 451, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 499, 0, 0, 0, 0, - 1827, 0, 0, 579, 0, 0, 1894, 1895, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1839, 0, - 0, 0, 0, 0, 1845, 0, 0, 0, 0, 774, - 0, 0, 620, 0, 1851, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 497, 166, 938, - 938, 938, 0, 0, 0, 0, 0, 0, 0, 497, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 34, - 0, 0, 1946, 0, 0, 0, 497, 0, 0, 0, - 1144, 0, 1003, 1005, 497, 0, 0, 0, 0, 0, - 0, 497, 497, 1961, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 452, 0, 0, 0, 620, - 0, 0, 0, 1018, 0, 497, 0, 1023, 1024, 1025, - 1026, 1027, 1028, 1029, 1030, 0, 1033, 1035, 1038, 1038, - 1038, 1035, 1038, 1038, 1035, 1038, 1051, 1052, 1053, 1054, - 1055, 1056, 1057, 0, 0, 1222, 0, 0, 1063, 0, - 1217, 0, 34, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 620, 0, 0, 1216, - 0, 0, 1947, 1222, 0, 1217, 1217, 0, 0, 1100, - 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1268, 0, 0, - 0, 1132, 0, 0, 0, 0, 0, 0, 0, 0, - 452, 0, 0, 0, 0, 0, 0, 0, 497, 0, - 0, 0, 0, 0, 2035, 1313, 0, 0, 2037, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2046, - 2047, 452, 0, 0, 1145, 0, 0, 0, 452, 0, - 0, 0, 0, 0, 0, 2061, 0, 1336, 1337, 452, - 452, 452, 452, 452, 452, 452, 0, 0, 770, 0, - 0, 1216, 2070, 2071, 0, 1839, 2075, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 452, 1158, 1161, 1162, 1163, 1164, - 1165, 1166, 0, 1167, 1168, 1169, 1170, 1171, 1146, 1147, - 1148, 1149, 1130, 1131, 1159, 0, 1133, 0, 1134, 1135, - 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1150, 1151, - 1152, 1153, 1154, 1155, 1156, 1157, 0, 0, 2113, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 606, 1313, 0, 0, - 0, 606, 606, 0, 0, 606, 606, 606, 0, 0, - 0, 1217, 0, 0, 0, 0, 0, 0, 1216, 0, - 0, 0, 881, 0, 886, 0, 2141, 888, 0, 0, - 0, 606, 606, 606, 606, 606, 0, 0, 0, 0, - 1268, 0, 1160, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 452, 0, 0, 0, 0, 0, 1313, 452, 0, - 452, 1839, 2110, 0, 0, 0, 0, 0, 452, 452, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2125, 2126, 2127, 0, 0, 0, 0, 0, 2187, - 2188, 2189, 2190, 0, 2194, 0, 2195, 2196, 2198, 0, - 0, 0, 2199, 2200, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2142, 2142, 2142, 0, - 0, 0, 0, 0, 0, 0, 0, 938, 938, 938, - 2157, 0, 2159, 0, 0, 0, 0, 0, 1839, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1839, 2233, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 161, 0, 0, 0, 0, - 0, 0, 1093, 0, 0, 1104, 1193, 1839, 0, 0, - 620, 0, 0, 0, 0, 0, 0, 0, 0, 103, - 0, 125, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 145, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 2310, 2311, 0, 135, 0, 0, 0, 0, 124, 0, - 0, 0, 0, 1839, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2237, 142, 0, 143, 0, - 0, 452, 0, 1197, 1198, 134, 133, 160, 452, 0, - 1216, 0, 2251, 452, 452, 0, 0, 452, 0, 1650, - 1839, 0, 0, 0, 0, 452, 0, 620, 620, 0, - 0, 0, 452, 0, 0, 0, 0, 0, 0, 1505, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1839, 0, 0, 0, 0, 0, 0, 0, 0, - 452, 129, 1199, 136, 0, 1196, 0, 130, 131, 0, - 0, 1122, 146, 0, 0, 0, 0, 0, 0, 0, - 0, 151, 0, 35, 36, 37, 72, 39, 40, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 76, 0, 0, 0, 41, 67, 68, - 0, 65, 69, 0, 0, 0, 0, 0, 606, 606, - 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 606, - 0, 0, 0, 0, 0, 0, 0, 1253, 0, 54, - 0, 0, 0, 0, 1839, 452, 0, 0, 0, 71, - 0, 0, 0, 1268, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1294, 0, 0, 0, - 0, 0, 0, 0, 0, 606, 452, 138, 0, 0, - 0, 0, 0, 0, 0, 0, 1217, 452, 452, 452, - 452, 452, 0, 0, 0, 0, 0, 1323, 0, 1762, - 0, 0, 0, 452, 1327, 0, 452, 452, 0, 0, - 452, 1772, 1313, 0, 0, 1338, 1339, 1340, 1341, 1342, - 1343, 1344, 0, 0, 0, 0, 0, 44, 47, 50, - 49, 52, 132, 64, 0, 0, 70, 0, 0, 0, - 0, 0, 0, 0, 126, 0, 0, 127, 0, 0, - 1104, 0, 0, 0, 0, 0, 0, 0, 53, 75, - 74, 0, 0, 62, 63, 51, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, - 0, 0, 1836, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1313, 0, 55, 56, 0, 57, 58, 59, - 60, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 452, 452, 452, - 452, 452, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1680, 452, 452, 583, 0, 0, 139, 144, - 141, 147, 148, 149, 150, 152, 153, 154, 155, 0, - 0, 0, 0, 0, 156, 157, 158, 159, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1480, 606, 0, - 0, 0, 1717, 0, 1484, 0, 1487, 0, 0, 0, - 0, 0, 0, 0, 0, 1506, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 1100, 73, 0, - 0, 0, 0, 0, 1744, 1745, 0, 0, 1100, 1100, - 1100, 1100, 1100, 0, 0, 0, 452, 0, 0, 0, - 0, 0, 0, 0, 1505, 0, 0, 1100, 0, 1217, - 0, 1100, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 452, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 452, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 452, 0, 0, 0, 0, 0, 1852, 0, 0, 0, - 0, 1217, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 452, 0, 0, 452, 0, - 0, 0, 0, 0, 0, 0, 0, 1104, 0, 0, - 0, 0, 0, 0, 1634, 0, 0, 0, 0, 1643, - 1644, 0, 0, 1648, 0, 0, 0, 0, 0, 0, - 0, 1651, 0, 0, 0, 0, 0, 0, 1654, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1658, 0, 1217, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 575, 606, 2360, 2300, 1839, 2218, 2256, 2220, 2329, 2085, + 2022, 2122, 2275, 2262, 2244, 1787, 2011, 2288, 2149, 2208, + 1747, 2012, 547, 2184, 1942, 1714, 2119, 1795, 1453, 588, + 1794, 1943, 1022, 1525, 533, 1748, 890, 1076, 1561, 1069, + 1939, 1882, 516, 2141, 1819, 1843, 1734, 83, 3, 165, + 1581, 769, 165, 1566, 481, 165, 1820, 1504, 137, 940, + 497, 1954, 165, 1821, 1901, 1594, 1674, 510, 1402, 518, + 165, 81, 1222, 1410, 622, 919, 1103, 1580, 1627, 1313, + 797, 1568, 123, 1813, 832, 1113, 1106, 1486, 597, 1079, + 1436, 1074, 497, 1455, 1493, 497, 165, 497, 509, 582, + 1061, 33, 520, 1204, 1379, 958, 1096, 1578, 1099, 1211, + 1310, 1469, 1296, 777, 1097, 776, 798, 799, 773, 803, + 1112, 1509, 1110, 8, 1318, 1086, 1557, 875, 504, 79, + 1173, 100, 1035, 1413, 2344, 2165, 1178, 800, 1196, 938, + 78, 106, 107, 2361, 1546, 1038, 7, 140, 2257, 2087, + 810, 619, 101, 513, 6, 2087, 2088, 2089, 2221, 1862, + 1861, 1625, 1282, 1889, 1890, 780, 2151, 1368, 1547, 167, + 168, 169, 1367, 1450, 1451, 770, 604, 608, 1366, 1365, + 785, 583, 161, 1364, 1363, 108, 1352, 837, 507, 1356, + 508, 2314, 505, 102, 1712, 2204, 2098, 1991, 2180, 2179, + 2117, 836, 835, 2118, 2354, 2349, 103, 2285, 125, 1664, + 834, 2237, 2337, 2123, 616, 1613, 2284, 1918, 80, 145, + 2055, 2236, 455, 848, 849, 1187, 852, 853, 854, 855, + 1713, 791, 858, 859, 860, 861, 862, 863, 864, 865, + 866, 867, 868, 869, 870, 871, 872, 102, 813, 1968, + 135, 84, 790, 1869, 1888, 124, 1573, 1868, 1662, 1778, + 623, 814, 1777, 959, 1114, 1779, 1115, 838, 839, 840, + 1519, 792, 1510, 142, 909, 143, 579, 1571, 1969, 1970, + 112, 113, 134, 133, 160, 959, 578, 845, 86, 87, + 88, 89, 90, 91, 161, 1452, 97, 936, 926, 162, + 928, 897, 450, 1520, 1521, 789, 898, 884, 885, 850, + 2167, 102, 560, 2046, 566, 567, 564, 565, 103, 563, + 562, 561, 581, 1803, 1540, 1539, 914, 915, 969, 568, + 569, 145, 2241, 484, 495, 910, 925, 927, 129, 110, + 136, 117, 109, 874, 130, 131, 2044, 903, 1355, 146, + 969, 499, 493, 1272, 2024, 1357, 1358, 1359, 151, 118, + 1595, 787, 1570, 1638, 1636, 1637, 35, 1302, 1844, 72, + 39, 40, 1784, 121, 119, 114, 115, 116, 120, 1065, + 2018, 1865, 1640, 111, 1641, 142, 1642, 143, 2019, 784, + 1633, 786, 122, 878, 935, 1273, 160, 1274, 2193, 984, + 983, 993, 994, 986, 987, 988, 989, 990, 991, 992, + 985, 911, 916, 995, 897, 1628, 2348, 2315, 965, 898, + 1297, 957, 917, 904, 923, 912, 913, 896, 924, 895, + 2025, 1902, 932, 918, 167, 168, 169, 1877, 929, 880, + 965, 484, 71, 1634, 1643, 857, 856, 789, 2026, 781, + 165, 1630, 165, 2176, 2112, 165, 783, 782, 1597, 922, + 484, 146, 1783, 1487, 138, 484, 1632, 788, 794, 830, + 151, 1990, 829, 930, 1904, 821, 819, 828, 827, 826, + 851, 825, 497, 497, 497, 789, 873, 485, 1799, 824, + 823, 818, 1190, 893, 831, 899, 900, 901, 902, 2335, + 497, 497, 2235, 787, 793, 1867, 1631, 2333, 2343, 2164, + 1790, 774, 1303, 1210, 976, 2345, 806, 937, 907, 132, + 774, 774, 2168, 805, 772, 1715, 1717, 1510, 1311, 1579, + 610, 126, 931, 1878, 127, 1572, 1906, 1619, 1910, 1307, + 1905, 945, 1903, 1663, 841, 1998, 1864, 1908, 877, 951, + 510, 2242, 933, 1881, 1927, 1791, 1907, 1926, 1925, 1033, + 964, 961, 962, 963, 968, 970, 967, 2276, 966, 1909, + 1911, 847, 1185, 822, 820, 960, 138, 1793, 1209, 165, + 1788, 1184, 964, 961, 962, 963, 968, 970, 967, 1183, + 966, 1072, 1075, 1797, 1798, 485, 1854, 960, 1789, 1308, + 812, 1181, 1284, 1283, 1285, 1286, 1287, 497, 454, 788, + 165, 449, 165, 165, 485, 497, 883, 2194, 1005, 485, + 1066, 497, 942, 943, 894, 954, 2215, 1615, 1716, 1884, + 1301, 886, 1067, 876, 1883, 139, 144, 141, 147, 148, + 149, 150, 152, 153, 154, 155, 1876, 788, 952, 1875, + 1023, 156, 157, 158, 159, 1884, 953, 906, 1796, 811, + 1883, 812, 2331, 1693, 2075, 2332, 812, 2330, 908, 1095, + 1799, 99, 1007, 1008, 619, 1009, 1010, 1011, 1012, 1013, + 1014, 1015, 1016, 1017, 1018, 1967, 1080, 1062, 1739, 1682, + 1605, 1515, 1090, 1037, 1040, 1042, 1044, 1045, 1047, 1049, + 1050, 73, 1020, 888, 1526, 995, 1059, 1041, 1043, 1690, + 1046, 1048, 812, 1051, 985, 1774, 1298, 995, 1299, 920, + 811, 1300, 846, 1465, 892, 811, 1350, 94, 1078, 2255, + 975, 805, 808, 809, 2231, 774, 1319, 833, 1952, 802, + 806, 167, 168, 169, 1629, 1404, 1386, 139, 144, 141, + 147, 148, 149, 150, 152, 153, 154, 155, 801, 1614, + 1384, 1385, 1383, 156, 157, 158, 159, 1304, 1792, 165, + 1920, 811, 1116, 1174, 812, 955, 815, 805, 95, 1437, + 1437, 1700, 1182, 623, 812, 1832, 816, 2154, 984, 983, + 993, 994, 986, 987, 988, 989, 990, 991, 992, 985, + 972, 497, 995, 1206, 817, 974, 972, 1405, 1978, 1007, + 1008, 1215, 1977, 1601, 1221, 1219, 975, 1220, 497, 497, + 1612, 497, 975, 497, 497, 1208, 497, 497, 497, 497, + 497, 497, 1610, 811, 821, 879, 1607, 1068, 815, 805, + 819, 497, 921, 811, 891, 165, 1255, 1675, 816, 805, + 808, 809, 1202, 774, 2308, 1007, 1008, 802, 806, 1320, + 1611, 165, 2338, 986, 987, 988, 989, 990, 991, 992, + 985, 2324, 497, 995, 165, 1973, 1083, 1188, 1189, 1195, + 167, 168, 169, 1216, 1808, 1309, 973, 974, 972, 165, + 2339, 1224, 1252, 1225, 1317, 1227, 1229, 1689, 71, 1233, + 1235, 1237, 1239, 1241, 975, 165, 2021, 1180, 1250, 1251, + 1382, 1111, 165, 2358, 1214, 1607, 1667, 1668, 1669, 1213, + 2320, 165, 165, 165, 165, 165, 165, 165, 165, 165, + 497, 497, 497, 1205, 1192, 1258, 1259, 1193, 1191, 1609, + 1323, 1264, 1265, 973, 974, 972, 1809, 1327, 2321, 1329, + 1330, 1331, 1332, 2363, 1268, 2346, 1336, 1291, 165, 1212, + 1212, 975, 2299, 1315, 2323, 2268, 1470, 1471, 2266, 2258, + 1351, 1321, 1322, 1369, 1370, 1371, 1372, 2270, 2271, 2097, + 1467, 1797, 1798, 1688, 2096, 1326, 2267, 1996, 973, 974, + 972, 1687, 1333, 1334, 1335, 1817, 1403, 1312, 167, 168, + 169, 1380, 1781, 614, 1929, 1406, 975, 1289, 1816, 1576, + 1253, 791, 988, 989, 990, 991, 992, 985, 1290, 497, + 995, 1279, 973, 974, 972, 2347, 1292, 102, 1423, 1424, + 1325, 609, 790, 1277, 1362, 1276, 1275, 1186, 592, 1266, + 975, 167, 168, 169, 1466, 1589, 1796, 1374, 1376, 1377, + 1407, 1408, 1930, 497, 497, 973, 974, 972, 1799, 2297, + 1260, 1420, 1257, 1256, 165, 1375, 510, 1231, 1288, 1346, + 1347, 1348, 2322, 975, 2309, 973, 974, 972, 497, 2296, + 1414, 1381, 1278, 2294, 2259, 165, 2138, 2094, 497, 973, + 974, 972, 165, 975, 165, 1416, 1460, 1458, 1425, 1428, + 1415, 2063, 165, 165, 1438, 1976, 1472, 975, 1023, 497, + 1931, 1826, 497, 1814, 973, 974, 972, 1658, 1524, 1623, + 1622, 611, 612, 497, 1818, 1459, 167, 168, 169, 1444, + 1445, 1378, 975, 1316, 1387, 1388, 1389, 1390, 1391, 1392, + 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1505, + 1414, 1417, 1280, 1267, 973, 974, 972, 1263, 1421, 1422, + 1262, 1261, 1427, 1430, 1431, 1416, 934, 1951, 619, 1480, + 1484, 619, 975, 2174, 1530, 2005, 2362, 1565, 497, 1508, + 1529, 2115, 2342, 2173, 1582, 1583, 1584, 2121, 1443, 1586, + 1588, 1446, 1447, 1440, 2005, 2326, 1845, 973, 974, 972, + 2005, 2303, 497, 1533, 1829, 1922, 2005, 2282, 497, 1215, + 80, 1563, 1215, 1482, 1215, 975, 167, 168, 169, 1534, + 1587, 2070, 1606, 2005, 2229, 1596, 1513, 1569, 2005, 2224, + 1517, 1516, 536, 535, 538, 539, 540, 541, 161, 1532, + 1531, 537, 2230, 542, 2005, 2216, 2198, 592, 2115, 592, + 2005, 2113, 497, 1593, 1403, 1607, 592, 2073, 592, 1403, + 1403, 971, 103, 1988, 1987, 2005, 1541, 1986, 1542, 1543, + 1544, 1545, 1984, 1985, 1511, 145, 1511, 623, 1984, 1983, + 623, 1548, 1549, 1550, 1553, 1554, 1555, 1556, 2357, 592, + 1575, 1574, 1564, 1577, 1585, 165, 1559, 1560, 1478, 592, + 1510, 1863, 165, 1616, 1177, 1847, 1479, 165, 165, 1841, + 1842, 165, 1600, 165, 1735, 1603, 35, 1604, 1617, 165, + 1602, 576, 1618, 1599, 1564, 1598, 165, 1620, 1621, 142, + 1490, 143, 1490, 592, 971, 592, 35, 1512, 813, 1512, + 160, 592, 1177, 1176, 1940, 1514, 1518, 1510, 1122, 1121, + 1705, 814, 1608, 1951, 165, 497, 1768, 1489, 1653, 1654, + 1742, 1212, 1735, 1656, 1510, 2156, 82, 2301, 2170, 35, + 166, 1626, 1657, 166, 1704, 585, 166, 1478, 1478, 1607, + 1590, 498, 1468, 166, 1490, 1743, 2099, 1448, 1360, 1306, + 1246, 166, 71, 984, 983, 993, 994, 986, 987, 988, + 989, 990, 991, 992, 985, 146, 1380, 995, 1607, 1108, + 1490, 796, 71, 498, 151, 795, 498, 166, 498, 1646, + 984, 983, 993, 994, 986, 987, 988, 989, 990, 991, + 992, 985, 1951, 1478, 995, 2352, 2100, 2101, 2102, 1701, + 1247, 1248, 1249, 1822, 2254, 71, 71, 2223, 2217, 165, + 1684, 71, 1495, 1498, 1499, 1500, 1496, 165, 1497, 1501, + 2186, 2120, 1955, 1956, 2091, 2081, 1661, 1179, 1725, 1726, + 1075, 1562, 2020, 1980, 1848, 1558, 1552, 1551, 1294, 1207, + 165, 1203, 1175, 96, 2219, 1823, 1381, 878, 1670, 2023, + 1823, 165, 165, 165, 165, 165, 545, 1955, 1956, 2187, + 1721, 1573, 2305, 165, 2103, 2263, 2003, 165, 2002, 2001, + 165, 165, 1728, 1958, 165, 165, 165, 1683, 1940, 583, + 138, 1833, 1647, 1353, 1759, 1243, 1699, 1780, 1757, 1760, + 1961, 1960, 1740, 1758, 1744, 1756, 1755, 1737, 1671, 1672, + 1673, 1761, 2317, 1499, 1500, 1679, 1680, 2283, 1807, 1711, + 1719, 2104, 2105, 1932, 1766, 1077, 496, 1062, 1724, 1749, + 1727, 2209, 2211, 2074, 2008, 1733, 1697, 1769, 1736, 1738, + 2212, 1771, 1244, 1245, 497, 1732, 2319, 2246, 2287, 165, + 1806, 2289, 1810, 1811, 1812, 2245, 165, 1785, 621, 2249, + 1315, 771, 497, 778, 2206, 1767, 1762, 1750, 497, 1801, + 1753, 1772, 1215, 1215, 1775, 1722, 1751, 1752, 497, 1754, + 1305, 1786, 577, 1723, 1537, 1827, 1433, 843, 1569, 842, + 1860, 1495, 1498, 1499, 1500, 1496, 1070, 1497, 1501, 2033, + 1434, 165, 165, 165, 165, 165, 1815, 1071, 1822, 1887, + 944, 1856, 1855, 103, 2068, 1470, 1471, 165, 165, 1824, + 1463, 1999, 1859, 1650, 2226, 1825, 1830, 2181, 1800, 1503, + 1834, 1835, 1836, 1858, 1639, 1851, 586, 587, 1731, 1439, + 589, 602, 598, 1195, 1666, 2302, 1730, 2295, 2293, 2292, + 1416, 2250, 1857, 497, 2248, 1415, 599, 1804, 1805, 1403, + 2067, 139, 144, 141, 147, 148, 149, 150, 152, 153, + 154, 155, 1921, 2004, 1971, 1849, 1850, 156, 157, 158, + 159, 1081, 1082, 601, 1591, 600, 590, 82, 2066, 497, + 1935, 1899, 1735, 1879, 1900, 2058, 2307, 2306, 1885, 1694, + 165, 1886, 1691, 1091, 1084, 1919, 2307, 1936, 1891, 2213, + 497, 1975, 1898, 1464, 585, 80, 497, 497, 85, 77, + 1, 2265, 467, 591, 1913, 1897, 1449, 1912, 1060, 480, + 2261, 1281, 1271, 1941, 2124, 2183, 1944, 1567, 804, 165, + 1938, 166, 128, 166, 1527, 1528, 166, 2278, 984, 983, + 993, 994, 986, 987, 988, 989, 990, 991, 992, 985, + 93, 1928, 995, 767, 1950, 92, 807, 905, 1592, 1898, + 165, 2116, 1802, 498, 498, 498, 1538, 1128, 1126, 1127, + 602, 598, 1749, 2057, 1963, 1959, 1965, 1125, 1966, 1949, + 1130, 498, 498, 1129, 1124, 599, 1964, 1354, 1997, 1893, + 1894, 494, 1502, 163, 165, 1117, 1085, 844, 1981, 1982, + 457, 1989, 497, 1972, 1914, 1915, 2052, 1916, 1917, 497, + 595, 596, 601, 2010, 600, 165, 1349, 1624, 1923, 1924, + 463, 1003, 1729, 1776, 620, 165, 984, 983, 993, 994, + 986, 987, 988, 989, 990, 991, 992, 985, 1993, 165, + 995, 613, 165, 1946, 1992, 2243, 2205, 2207, 2150, 2210, + 2203, 2034, 2318, 2006, 2286, 2225, 1535, 1462, 1569, 2014, + 166, 2009, 1073, 2015, 2065, 1934, 1698, 1994, 1995, 1032, + 1435, 1100, 519, 1457, 2007, 1373, 534, 531, 532, 1473, + 1741, 2028, 2031, 2032, 2056, 2029, 977, 517, 498, 2037, + 511, 166, 1092, 166, 166, 1494, 498, 1492, 1491, 1648, + 1104, 1957, 498, 1953, 1974, 2042, 1098, 510, 1477, 1536, + 1866, 2017, 956, 594, 2079, 506, 779, 2080, 1432, 2192, + 2082, 1665, 984, 983, 993, 994, 986, 987, 988, 989, + 990, 991, 992, 985, 2054, 593, 995, 2166, 621, 621, + 621, 1782, 2069, 61, 38, 501, 2313, 2078, 2077, 947, + 603, 32, 31, 30, 29, 28, 946, 948, 23, 165, + 22, 2083, 165, 165, 165, 497, 497, 21, 20, 2110, + 2090, 2084, 19, 25, 18, 17, 16, 98, 48, 45, + 43, 1749, 105, 104, 2125, 497, 497, 497, 46, 42, + 881, 27, 26, 15, 14, 13, 12, 11, 10, 2039, + 2040, 2131, 2041, 9, 5, 2043, 2035, 2045, 4, 950, + 24, 1021, 2, 2086, 0, 0, 0, 0, 0, 0, + 497, 497, 497, 165, 0, 0, 0, 0, 2152, 510, + 0, 0, 0, 0, 497, 2064, 497, 2129, 0, 0, + 0, 0, 497, 0, 2137, 0, 2162, 0, 0, 0, + 166, 2147, 497, 1944, 0, 0, 2169, 1944, 0, 2159, + 2153, 0, 2155, 1088, 2145, 2146, 0, 2161, 0, 0, + 0, 621, 0, 2163, 0, 0, 0, 1118, 0, 0, + 2157, 497, 498, 0, 497, 2182, 0, 2171, 2093, 2172, + 2095, 0, 0, 2175, 2092, 0, 0, 2178, 0, 498, + 498, 2177, 498, 0, 498, 498, 2051, 498, 498, 498, + 498, 498, 498, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 498, 0, 0, 0, 166, 0, 0, 2222, + 0, 0, 0, 2202, 0, 0, 0, 0, 0, 1944, + 0, 2214, 166, 2185, 0, 2130, 0, 497, 165, 0, + 0, 2232, 0, 498, 0, 166, 0, 0, 0, 497, + 0, 0, 0, 2132, 2133, 2134, 2135, 2136, 2148, 0, + 166, 2139, 2140, 0, 0, 0, 497, 0, 0, 2253, + 0, 0, 2240, 0, 497, 0, 166, 2247, 2260, 2228, + 0, 497, 497, 166, 2251, 0, 0, 0, 0, 0, + 0, 2264, 166, 166, 166, 166, 166, 166, 166, 166, + 166, 498, 498, 498, 2277, 497, 2269, 0, 2291, 2298, + 2290, 0, 984, 983, 993, 994, 986, 987, 988, 989, + 990, 991, 992, 985, 2272, 2304, 995, 0, 0, 166, + 0, 0, 0, 1749, 0, 2310, 0, 0, 0, 0, + 2185, 2279, 0, 2316, 0, 0, 0, 771, 0, 0, + 0, 0, 0, 0, 0, 2325, 0, 0, 0, 0, + 1217, 0, 2328, 0, 1223, 1223, 2334, 1223, 2327, 1223, + 1223, 0, 1232, 1223, 1223, 1223, 1223, 1223, 2336, 0, + 0, 0, 2340, 0, 2341, 1217, 1217, 771, 0, 0, + 498, 0, 0, 0, 2350, 0, 0, 2050, 2351, 0, + 2353, 0, 0, 0, 2356, 2355, 0, 0, 497, 0, + 0, 0, 2359, 2049, 0, 2364, 1892, 0, 1293, 0, + 0, 0, 0, 0, 498, 498, 0, 0, 0, 0, + 0, 2273, 0, 0, 0, 166, 984, 983, 993, 994, + 986, 987, 988, 989, 990, 991, 992, 985, 0, 498, + 995, 0, 0, 0, 0, 0, 166, 0, 0, 498, + 0, 0, 0, 166, 0, 166, 0, 0, 0, 0, + 0, 0, 0, 166, 166, 0, 621, 621, 621, 979, + 498, 982, 0, 498, 0, 0, 0, 996, 997, 998, + 999, 1000, 1001, 1002, 498, 980, 981, 978, 984, 983, + 993, 994, 986, 987, 988, 989, 990, 991, 992, 985, + 548, 34, 995, 984, 983, 993, 994, 986, 987, 988, + 989, 990, 991, 992, 985, 0, 0, 995, 0, 984, + 983, 993, 994, 986, 987, 988, 989, 990, 991, 992, + 985, 0, 0, 995, 0, 34, 0, 0, 0, 498, + 167, 168, 169, 983, 993, 994, 986, 987, 988, 989, + 990, 991, 992, 985, 0, 1409, 995, 621, 0, 0, + 0, 0, 0, 498, 0, 0, 484, 0, 0, 498, + 0, 1217, 0, 1676, 0, 0, 0, 0, 0, 0, + 584, 0, 0, 0, 0, 0, 0, 0, 0, 1441, + 1442, 0, 0, 984, 983, 993, 994, 986, 987, 988, + 989, 990, 991, 992, 985, 0, 472, 995, 0, 0, + 0, 0, 0, 498, 1474, 471, 0, 0, 0, 0, + 0, 0, 0, 0, 1088, 0, 469, 621, 984, 983, + 993, 994, 986, 987, 988, 989, 990, 991, 992, 985, + 0, 0, 995, 0, 0, 621, 0, 0, 621, 0, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 771, + 0, 0, 0, 166, 466, 0, 0, 0, 166, 166, + 0, 0, 166, 479, 166, 0, 0, 0, 0, 0, + 166, 0, 0, 0, 0, 0, 0, 166, 477, 993, + 994, 986, 987, 988, 989, 990, 991, 992, 985, 0, + 0, 995, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 778, 166, 498, 0, 0, 0, + 485, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1418, 1419, 0, 0, 0, 0, 0, 771, 0, + 0, 0, 0, 0, 778, 0, 0, 0, 456, 0, + 458, 473, 0, 487, 0, 486, 462, 0, 460, 464, + 474, 465, 0, 459, 0, 470, 0, 0, 461, 475, + 476, 491, 490, 478, 0, 468, 488, 1461, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 771, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 0, 0, 0, 0, 0, 166, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 0, 0, 0, + 546, 0, 166, 166, 166, 166, 166, 0, 0, 0, + 0, 0, 0, 0, 166, 0, 0, 0, 166, 0, + 0, 166, 166, 0, 0, 166, 166, 166, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1660, 0, 0, 0, 0, 0, 0, 0, 164, + 489, 0, 453, 0, 0, 492, 0, 0, 0, 0, + 0, 0, 453, 0, 0, 0, 0, 0, 482, 0, + 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 483, 0, 498, 0, 607, 607, 0, + 166, 0, 0, 0, 0, 0, 453, 166, 0, 0, + 0, 0, 0, 498, 0, 0, 0, 0, 0, 498, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 498, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 939, 939, 939, 0, 0, 0, 0, 0, + 0, 0, 166, 166, 166, 166, 166, 0, 0, 0, + 0, 0, 34, 0, 0, 0, 0, 0, 166, 166, + 0, 0, 0, 0, 0, 1004, 1006, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1217, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 498, 0, 1019, 0, 0, 0, + 1024, 1025, 1026, 1027, 1028, 1029, 1030, 1031, 0, 1034, + 1036, 1039, 1039, 1039, 1036, 1039, 1039, 1036, 1039, 1052, + 1053, 1054, 1055, 1056, 1057, 1058, 0, 0, 0, 0, + 498, 1064, 0, 0, 0, 34, 0, 0, 0, 0, + 0, 166, 1145, 0, 0, 0, 0, 0, 0, 0, + 0, 498, 0, 0, 0, 0, 0, 498, 498, 0, + 1828, 0, 1101, 0, 0, 0, 1677, 0, 0, 0, + 1678, 0, 0, 0, 0, 0, 0, 0, 1840, 0, + 166, 1685, 1686, 0, 1846, 0, 0, 1692, 0, 0, + 1695, 1696, 621, 0, 1852, 0, 0, 0, 1702, 0, + 1703, 0, 0, 1706, 1707, 1708, 1709, 1710, 0, 0, + 0, 166, 0, 0, 0, 0, 0, 1720, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1063, 0, 0, 166, 0, 0, 0, 0, + 0, 0, 0, 498, 0, 0, 0, 0, 0, 0, + 498, 0, 0, 1133, 1764, 1765, 166, 0, 0, 621, + 0, 0, 0, 0, 0, 0, 166, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 166, 452, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 500, 1223, 1146, 0, 0, 0, + 0, 0, 580, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 621, 0, 0, 1217, + 0, 0, 1948, 1223, 0, 0, 0, 0, 775, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 453, 0, 453, 0, 0, 453, 0, 1159, 1162, 1163, + 1164, 1165, 1166, 1167, 0, 1168, 1169, 1170, 1171, 1172, + 1147, 1148, 1149, 1150, 1131, 1132, 1160, 0, 1134, 0, + 1135, 1136, 1137, 1138, 1139, 1140, 1141, 1142, 1143, 1144, + 1151, 1152, 1153, 1154, 1155, 1156, 1157, 1158, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 166, 0, 0, 166, 166, 166, 498, 498, 161, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 771, 1838, + 0, 1217, 0, 0, 0, 1840, 498, 498, 498, 1895, + 1896, 0, 103, 0, 125, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 145, 0, 0, 0, 0, + 0, 0, 0, 0, 1161, 0, 0, 0, 0, 0, + 0, 498, 498, 498, 166, 0, 0, 0, 0, 453, + 939, 939, 939, 0, 0, 498, 135, 498, 0, 0, + 0, 124, 0, 498, 0, 607, 0, 0, 0, 0, + 0, 0, 0, 498, 0, 1947, 0, 0, 0, 142, + 453, 143, 453, 1107, 0, 0, 1198, 1199, 134, 133, + 160, 0, 0, 0, 0, 0, 1962, 0, 0, 0, + 0, 0, 498, 0, 0, 498, 0, 0, 1217, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 129, 1200, 136, 0, 1197, 0, + 130, 131, 0, 0, 0, 146, 0, 0, 0, 0, + 0, 1840, 2111, 0, 151, 0, 0, 0, 498, 166, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 498, 2126, 2127, 2128, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 498, 0, 0, + 0, 0, 0, 0, 0, 498, 0, 0, 0, 0, + 0, 0, 498, 498, 0, 0, 2143, 2143, 2143, 0, + 0, 0, 1506, 0, 0, 0, 0, 2036, 0, 0, + 2158, 2038, 2160, 0, 0, 0, 498, 0, 1840, 453, + 0, 0, 2047, 2048, 0, 0, 0, 0, 1840, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 2062, 0, + 0, 0, 882, 0, 887, 0, 0, 889, 0, 0, + 138, 0, 0, 0, 0, 2071, 2072, 1840, 0, 2076, + 621, 0, 0, 0, 1218, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1218, + 1218, 0, 0, 0, 0, 453, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 132, 0, 0, 0, 0, + 0, 1269, 0, 0, 0, 0, 0, 126, 0, 498, + 127, 2114, 0, 1840, 453, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 2238, 0, 0, 0, 1314, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1217, 0, 2252, 0, 0, 453, 0, 0, 0, 0, + 1840, 0, 453, 0, 0, 0, 0, 621, 621, 2142, + 0, 1337, 1338, 453, 453, 453, 453, 453, 453, 453, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1840, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1094, 0, 0, 1105, 0, 0, 453, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 139, 144, 141, 147, 148, 149, 150, 152, 153, + 154, 155, 0, 0, 0, 0, 0, 156, 157, 158, + 159, 0, 2188, 2189, 2190, 2191, 0, 2195, 0, 2196, + 2197, 2199, 0, 0, 0, 2200, 2201, 0, 0, 0, + 0, 0, 0, 0, 35, 36, 37, 72, 39, 40, + 607, 1314, 0, 0, 0, 607, 607, 0, 0, 607, + 607, 607, 0, 0, 76, 1218, 0, 0, 41, 67, + 68, 0, 65, 69, 1840, 0, 0, 0, 0, 0, + 0, 66, 2234, 0, 0, 607, 607, 607, 607, 607, + 0, 0, 0, 0, 1269, 1681, 0, 0, 584, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 54, 0, 0, 0, 0, 453, 0, 0, 0, 0, + 71, 1314, 453, 0, 453, 0, 0, 0, 0, 0, + 0, 0, 453, 453, 0, 1718, 0, 0, 0, 0, + 0, 1123, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1101, 0, 0, 2311, 2312, 0, 0, 1745, 1746, 0, + 0, 1101, 1101, 1101, 1101, 1101, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1506, 0, 0, + 1101, 0, 0, 0, 1101, 0, 0, 0, 44, 47, + 50, 49, 52, 0, 64, 0, 0, 70, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1254, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, + 75, 74, 0, 0, 62, 63, 51, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1295, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 55, 56, 1324, 57, 58, + 59, 60, 0, 0, 1328, 0, 0, 0, 0, 1853, + 0, 0, 0, 0, 0, 1339, 1340, 1341, 1342, 1343, + 1344, 1345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1944, 0, 34, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, + 1105, 0, 453, 0, 0, 0, 0, 453, 453, 0, + 0, 453, 0, 1651, 0, 0, 0, 0, 0, 453, + 0, 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 452, 1100, 0, 452, 452, - 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, + 0, 0, 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1945, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1268, + 0, 0, 607, 607, 0, 0, 0, 0, 0, 1101, + 0, 0, 0, 0, 0, 0, 0, 1481, 0, 0, + 0, 0, 0, 607, 1485, 0, 1488, 0, 0, 0, + 161, 0, 0, 0, 0, 1507, 0, 0, 0, 453, + 0, 1194, 0, 0, 0, 0, 0, 1269, 0, 0, + 0, 0, 0, 0, 103, 0, 125, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 145, 0, 607, + 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1218, 453, 453, 453, 453, 453, 0, 0, 0, 0, + 0, 0, 0, 1763, 0, 0, 0, 453, 135, 0, + 453, 453, 0, 124, 453, 1773, 1314, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 142, 0, 143, 0, 0, 0, 0, 1198, 1199, + 134, 133, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2053, + 0, 0, 0, 0, 0, 0, 2059, 2060, 2061, 453, + 0, 0, 0, 0, 0, 0, 1837, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 129, 1200, 136, 0, + 1197, 0, 130, 131, 0, 0, 1314, 146, 0, 0, + 0, 0, 0, 0, 0, 0, 151, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 453, 453, 453, 453, 453, 0, 1105, 0, 0, + 0, 0, 0, 0, 1635, 0, 0, 453, 453, 1644, + 1645, 0, 0, 1649, 0, 0, 0, 0, 0, 0, + 0, 1652, 0, 0, 0, 0, 0, 0, 1655, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1769, 0, 0, 0, 0, 0, 0, + 0, 0, 607, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1659, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1945, 138, 34, 0, 1945, 0, 0, 0, 0, + 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1218, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 453, + 0, 0, 0, 0, 0, 0, 0, 132, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 126, + 0, 0, 127, 0, 0, 0, 0, 0, 0, 0, + 453, 0, 0, 0, 0, 0, 0, 1945, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2052, 0, 0, 0, - 0, 0, 0, 2058, 2059, 2060, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2227, 0, 0, + 0, 0, 34, 0, 453, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1218, 0, 0, 0, 0, + 0, 0, 0, 1770, 0, 453, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 453, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 34, 0, 453, + 0, 0, 453, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 139, 144, 141, 147, 148, 149, 150, + 152, 153, 154, 155, 0, 0, 0, 0, 0, 156, + 157, 158, 159, 0, 0, 0, 0, 0, 0, 0, + 0, 1831, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1830, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 452, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1218, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1217, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1869, 1870, 1871, 1872, 1873, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1104, - 1879, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1870, 1871, 1872, 1873, 1874, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1105, + 1880, 0, 0, 0, 0, 0, 0, 0, 0, 453, + 0, 0, 453, 453, 453, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1944, 0, - 34, 0, 1944, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1932, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1269, 0, 0, 0, 0, 0, 0, + 0, 0, 1933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1944, 0, 0, 0, 0, 0, - 0, 0, 1978, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 2226, 0, 0, 0, 0, 34, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1999, 0, 0, 0, + 0, 0, 1979, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2012, 0, 0, - 0, 0, 0, 0, 34, 0, 0, 2015, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2026, 0, 0, 2029, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2000, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 453, 0, + 0, 0, 0, 0, 0, 0, 0, 2013, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2016, 0, 0, + 0, 0, 0, 0, 1218, 0, 0, 0, 0, 0, + 0, 2027, 0, 0, 2030, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1667,2504 +1645,2506 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2105, 0, 0, 2106, 2107, 2108, 0, 0, 748, - 734, 395, 0, 681, 751, 652, 669, 761, 672, 675, - 716, 631, 694, 318, 666, 0, 656, 627, 662, 628, - 654, 683, 224, 651, 736, 698, 750, 275, 221, 633, - 657, 332, 671, 176, 718, 371, 209, 285, 282, 402, - 235, 227, 223, 208, 259, 291, 330, 389, 324, 757, - 279, 705, 0, 380, 303, 0, 0, 0, 685, 740, - 692, 730, 680, 717, 641, 704, 752, 667, 713, 753, - 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, - 168, 169, 0, 2279, 2280, 0, 0, 0, 0, 0, - 198, 0, 205, 710, 747, 664, 712, 219, 263, 226, - 218, 399, 758, 739, 0, 191, 749, 687, 715, 764, - 626, 707, 0, 629, 632, 760, 743, 660, 229, 0, - 0, 0, 0, 0, 0, 0, 684, 693, 727, 678, - 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, - 703, 0, 0, 0, 637, 630, 0, 0, 0, 0, - 682, 0, 0, 0, 640, 0, 659, 728, 0, 624, - 247, 634, 304, 0, 732, 742, 679, 431, 746, 677, - 676, 722, 638, 738, 670, 274, 636, 271, 171, 187, - 2232, 668, 314, 354, 360, 737, 655, 663, 210, 661, - 358, 328, 416, 194, 237, 351, 333, 356, 702, 720, - 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, - 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, - 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, - 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, - 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, - 212, 317, 407, 408, 211, 446, 190, 427, 183, 940, - 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, - 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, - 0, 177, 0, 382, 420, 447, 195, 196, 197, 650, - 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, - 341, 347, 733, 398, 415, 423, 430, 436, 437, 441, - 438, 439, 442, 309, 257, 378, 272, 281, 725, 763, - 327, 359, 200, 418, 379, 645, 649, 643, 644, 696, - 697, 646, 754, 755, 756, 729, 639, 0, 647, 648, - 0, 735, 744, 745, 701, 170, 184, 277, 759, 348, - 240, 444, 425, 421, 625, 642, 216, 653, 0, 0, - 665, 673, 674, 686, 688, 689, 690, 691, 700, 708, - 709, 711, 719, 721, 724, 726, 731, 741, 762, 172, + 0, 2106, 0, 0, 2107, 2108, 2109, 0, 0, 749, + 735, 396, 0, 682, 752, 653, 670, 762, 673, 676, + 717, 632, 695, 319, 667, 0, 657, 628, 663, 629, + 655, 684, 224, 652, 737, 699, 751, 276, 221, 634, + 658, 333, 672, 176, 719, 372, 209, 286, 283, 403, + 235, 227, 223, 208, 260, 292, 331, 390, 325, 758, + 280, 706, 0, 381, 304, 0, 0, 0, 686, 741, + 693, 731, 681, 718, 642, 705, 753, 668, 714, 754, + 266, 207, 175, 316, 382, 239, 0, 0, 0, 167, + 168, 169, 0, 2280, 2281, 0, 0, 0, 0, 0, + 198, 0, 205, 711, 748, 665, 713, 219, 264, 226, + 218, 400, 759, 740, 0, 191, 750, 688, 716, 765, + 627, 708, 0, 630, 633, 761, 744, 661, 229, 0, + 0, 0, 0, 0, 0, 0, 685, 694, 728, 679, + 0, 0, 0, 0, 0, 0, 0, 0, 659, 0, + 704, 0, 0, 0, 638, 631, 0, 0, 0, 0, + 683, 0, 0, 0, 641, 0, 660, 729, 0, 625, + 247, 635, 305, 0, 733, 743, 680, 432, 747, 678, + 677, 723, 639, 739, 671, 275, 637, 272, 171, 187, + 2233, 669, 315, 355, 361, 738, 656, 664, 210, 662, + 359, 329, 417, 194, 237, 352, 334, 357, 703, 721, + 358, 281, 405, 347, 415, 433, 434, 217, 309, 423, + 394, 429, 444, 188, 214, 323, 387, 420, 378, 302, + 401, 402, 271, 377, 245, 174, 279, 441, 186, 367, + 202, 179, 389, 413, 199, 370, 0, 0, 446, 181, + 411, 386, 299, 268, 269, 180, 0, 351, 222, 243, + 212, 318, 408, 409, 211, 447, 190, 428, 183, 941, + 427, 311, 404, 412, 300, 291, 182, 410, 298, 290, + 274, 233, 254, 345, 284, 346, 255, 307, 306, 308, + 0, 177, 0, 383, 421, 448, 195, 196, 197, 651, + 232, 236, 242, 244, 250, 251, 258, 277, 322, 344, + 342, 348, 734, 399, 416, 424, 431, 437, 438, 442, + 439, 440, 443, 310, 257, 379, 273, 282, 726, 764, + 328, 360, 200, 419, 380, 646, 650, 644, 645, 697, + 698, 647, 755, 756, 757, 730, 640, 0, 648, 649, + 0, 736, 745, 746, 702, 170, 184, 278, 760, 349, + 240, 445, 426, 422, 626, 643, 216, 654, 0, 0, + 666, 674, 675, 687, 689, 690, 691, 692, 701, 709, + 710, 712, 720, 722, 725, 727, 732, 742, 763, 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, - 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, - 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, - 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, - 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, - 699, 706, 288, 234, 252, 262, 714, 424, 384, 189, - 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, - 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, - 391, 392, 394, 300, 220, 334, 695, 723, 284, 396, - 397, 748, 734, 395, 0, 681, 751, 652, 669, 761, - 672, 675, 716, 631, 694, 318, 666, 0, 656, 627, - 662, 628, 654, 683, 224, 651, 736, 698, 750, 275, - 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 757, 279, 705, 0, 380, 303, 0, 0, 0, - 685, 740, 692, 730, 680, 717, 641, 704, 752, 667, - 713, 753, 265, 207, 175, 315, 381, 239, 0, 0, + 261, 262, 265, 270, 288, 293, 294, 295, 296, 312, + 313, 314, 317, 320, 321, 324, 326, 327, 330, 337, + 338, 339, 340, 341, 343, 350, 354, 362, 363, 364, + 365, 366, 368, 369, 373, 374, 375, 376, 384, 388, + 406, 407, 418, 430, 435, 249, 414, 436, 0, 287, + 700, 707, 289, 234, 252, 263, 715, 425, 385, 189, + 356, 241, 178, 206, 192, 213, 228, 231, 267, 297, + 303, 332, 336, 246, 225, 204, 353, 201, 371, 391, + 392, 393, 395, 301, 220, 335, 696, 724, 285, 397, + 398, 259, 749, 735, 396, 0, 682, 752, 653, 670, + 762, 673, 676, 717, 632, 695, 319, 667, 0, 657, + 628, 663, 629, 655, 684, 224, 652, 737, 699, 751, + 276, 221, 634, 658, 333, 672, 176, 719, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 758, 280, 706, 0, 381, 304, 0, 0, + 0, 686, 741, 693, 731, 681, 718, 642, 705, 753, + 668, 714, 754, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 711, 748, 665, 713, + 219, 264, 226, 218, 400, 759, 740, 0, 191, 750, + 688, 716, 765, 627, 708, 0, 630, 633, 761, 744, + 661, 229, 0, 0, 0, 0, 0, 0, 0, 685, + 694, 728, 679, 0, 0, 0, 0, 0, 0, 1937, + 0, 659, 0, 704, 0, 0, 0, 638, 631, 0, + 0, 0, 0, 683, 0, 0, 0, 641, 0, 660, + 729, 0, 625, 247, 635, 305, 0, 733, 743, 680, + 432, 747, 678, 677, 723, 639, 739, 671, 275, 637, + 272, 171, 187, 0, 669, 315, 355, 361, 738, 656, + 664, 210, 662, 359, 329, 417, 194, 237, 352, 334, + 357, 703, 721, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 941, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, + 196, 197, 651, 232, 236, 242, 244, 250, 251, 258, + 277, 322, 344, 342, 348, 734, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 726, 764, 328, 360, 200, 419, 380, 646, 650, + 644, 645, 697, 698, 647, 755, 756, 757, 730, 640, + 0, 648, 649, 0, 736, 745, 746, 702, 170, 184, + 278, 760, 349, 240, 445, 426, 422, 626, 643, 216, + 654, 0, 0, 666, 674, 675, 687, 689, 690, 691, + 692, 701, 709, 710, 712, 720, 722, 725, 727, 732, + 742, 763, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 700, 707, 289, 234, 252, 263, 715, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 696, + 724, 285, 397, 398, 259, 749, 735, 396, 0, 682, + 752, 653, 670, 762, 673, 676, 717, 632, 695, 319, + 667, 0, 657, 628, 663, 629, 655, 684, 224, 652, + 737, 699, 751, 276, 221, 634, 658, 333, 672, 176, + 719, 372, 209, 286, 283, 403, 235, 227, 223, 208, + 260, 292, 331, 390, 325, 758, 280, 706, 0, 381, + 304, 0, 0, 0, 686, 741, 693, 731, 681, 718, + 642, 705, 753, 668, 714, 754, 266, 207, 175, 316, + 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 711, + 748, 665, 713, 219, 264, 226, 218, 400, 759, 740, + 0, 191, 750, 688, 716, 765, 627, 708, 0, 630, + 633, 761, 744, 661, 229, 0, 0, 0, 0, 0, + 0, 0, 685, 694, 728, 679, 0, 0, 0, 0, + 0, 0, 1774, 0, 659, 0, 704, 0, 0, 0, + 638, 631, 0, 0, 0, 0, 683, 0, 0, 0, + 641, 0, 660, 729, 0, 625, 247, 635, 305, 0, + 733, 743, 680, 432, 747, 678, 677, 723, 639, 739, + 671, 275, 637, 272, 171, 187, 0, 669, 315, 355, + 361, 738, 656, 664, 210, 662, 359, 329, 417, 194, + 237, 352, 334, 357, 703, 721, 358, 281, 405, 347, + 415, 433, 434, 217, 309, 423, 394, 429, 444, 188, + 214, 323, 387, 420, 378, 302, 401, 402, 271, 377, + 245, 174, 279, 441, 186, 367, 202, 179, 389, 413, + 199, 370, 0, 0, 446, 181, 411, 386, 299, 268, + 269, 180, 0, 351, 222, 243, 212, 318, 408, 409, + 211, 447, 190, 428, 183, 941, 427, 311, 404, 412, + 300, 291, 182, 410, 298, 290, 274, 233, 254, 345, + 284, 346, 255, 307, 306, 308, 0, 177, 0, 383, + 421, 448, 195, 196, 197, 651, 232, 236, 242, 244, + 250, 251, 258, 277, 322, 344, 342, 348, 734, 399, + 416, 424, 431, 437, 438, 442, 439, 440, 443, 310, + 257, 379, 273, 282, 726, 764, 328, 360, 200, 419, + 380, 646, 650, 644, 645, 697, 698, 647, 755, 756, + 757, 730, 640, 0, 648, 649, 0, 736, 745, 746, + 702, 170, 184, 278, 760, 349, 240, 445, 426, 422, + 626, 643, 216, 654, 0, 0, 666, 674, 675, 687, + 689, 690, 691, 692, 701, 709, 710, 712, 720, 722, + 725, 727, 732, 742, 763, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 261, 262, 265, 270, + 288, 293, 294, 295, 296, 312, 313, 314, 317, 320, + 321, 324, 326, 327, 330, 337, 338, 339, 340, 341, + 343, 350, 354, 362, 363, 364, 365, 366, 368, 369, + 373, 374, 375, 376, 384, 388, 406, 407, 418, 430, + 435, 249, 414, 436, 0, 287, 700, 707, 289, 234, + 252, 263, 715, 425, 385, 189, 356, 241, 178, 206, + 192, 213, 228, 231, 267, 297, 303, 332, 336, 246, + 225, 204, 353, 201, 371, 391, 392, 393, 395, 301, + 220, 335, 696, 724, 285, 397, 398, 259, 749, 735, + 396, 0, 682, 752, 653, 670, 762, 673, 676, 717, + 632, 695, 319, 667, 0, 657, 628, 663, 629, 655, + 684, 224, 652, 737, 699, 751, 276, 221, 634, 658, + 333, 672, 176, 719, 372, 209, 286, 283, 403, 235, + 227, 223, 208, 260, 292, 331, 390, 325, 758, 280, + 706, 0, 381, 304, 0, 0, 0, 686, 741, 693, + 731, 681, 718, 642, 705, 753, 668, 714, 754, 266, + 207, 175, 316, 382, 239, 0, 0, 0, 167, 168, + 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, + 0, 205, 711, 748, 665, 713, 219, 264, 226, 218, + 400, 759, 740, 0, 191, 750, 688, 716, 765, 627, + 708, 0, 630, 633, 761, 744, 661, 229, 0, 0, + 0, 0, 0, 0, 0, 685, 694, 728, 679, 0, + 0, 0, 0, 0, 0, 1483, 0, 659, 0, 704, + 0, 0, 0, 638, 631, 0, 0, 0, 0, 683, + 0, 0, 0, 641, 0, 660, 729, 0, 625, 247, + 635, 305, 0, 733, 743, 680, 432, 747, 678, 677, + 723, 639, 739, 671, 275, 637, 272, 171, 187, 0, + 669, 315, 355, 361, 738, 656, 664, 210, 662, 359, + 329, 417, 194, 237, 352, 334, 357, 703, 721, 358, + 281, 405, 347, 415, 433, 434, 217, 309, 423, 394, + 429, 444, 188, 214, 323, 387, 420, 378, 302, 401, + 402, 271, 377, 245, 174, 279, 441, 186, 367, 202, + 179, 389, 413, 199, 370, 0, 0, 446, 181, 411, + 386, 299, 268, 269, 180, 0, 351, 222, 243, 212, + 318, 408, 409, 211, 447, 190, 428, 183, 941, 427, + 311, 404, 412, 300, 291, 182, 410, 298, 290, 274, + 233, 254, 345, 284, 346, 255, 307, 306, 308, 0, + 177, 0, 383, 421, 448, 195, 196, 197, 651, 232, + 236, 242, 244, 250, 251, 258, 277, 322, 344, 342, + 348, 734, 399, 416, 424, 431, 437, 438, 442, 439, + 440, 443, 310, 257, 379, 273, 282, 726, 764, 328, + 360, 200, 419, 380, 646, 650, 644, 645, 697, 698, + 647, 755, 756, 757, 730, 640, 0, 648, 649, 0, + 736, 745, 746, 702, 170, 184, 278, 760, 349, 240, + 445, 426, 422, 626, 643, 216, 654, 0, 0, 666, + 674, 675, 687, 689, 690, 691, 692, 701, 709, 710, + 712, 720, 722, 725, 727, 732, 742, 763, 172, 173, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 261, + 262, 265, 270, 288, 293, 294, 295, 296, 312, 313, + 314, 317, 320, 321, 324, 326, 327, 330, 337, 338, + 339, 340, 341, 343, 350, 354, 362, 363, 364, 365, + 366, 368, 369, 373, 374, 375, 376, 384, 388, 406, + 407, 418, 430, 435, 249, 414, 436, 0, 287, 700, + 707, 289, 234, 252, 263, 715, 425, 385, 189, 356, + 241, 178, 206, 192, 213, 228, 231, 267, 297, 303, + 332, 336, 246, 225, 204, 353, 201, 371, 391, 392, + 393, 395, 301, 220, 335, 696, 724, 285, 397, 398, + 259, 749, 735, 396, 0, 682, 752, 653, 670, 762, + 673, 676, 717, 632, 695, 319, 667, 0, 657, 628, + 663, 629, 655, 684, 224, 652, 737, 699, 751, 276, + 221, 634, 658, 333, 672, 176, 719, 372, 209, 286, + 283, 403, 235, 227, 223, 208, 260, 292, 331, 390, + 325, 758, 280, 706, 0, 381, 304, 0, 0, 0, + 686, 741, 693, 731, 681, 718, 642, 705, 753, 668, + 714, 754, 266, 207, 175, 316, 382, 239, 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 710, 747, 664, 712, 219, - 263, 226, 218, 399, 758, 739, 0, 191, 749, 687, - 715, 764, 626, 707, 0, 629, 632, 760, 743, 660, - 229, 0, 0, 0, 0, 0, 0, 0, 684, 693, - 727, 678, 0, 0, 0, 0, 0, 0, 1936, 0, - 658, 0, 703, 0, 0, 0, 637, 630, 0, 0, - 0, 0, 682, 0, 0, 0, 640, 0, 659, 728, - 0, 624, 247, 634, 304, 0, 732, 742, 679, 431, - 746, 677, 676, 722, 638, 738, 670, 274, 636, 271, - 171, 187, 0, 668, 314, 354, 360, 737, 655, 663, - 210, 661, 358, 328, 416, 194, 237, 351, 333, 356, - 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 940, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 650, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, - 725, 763, 327, 359, 200, 418, 379, 645, 649, 643, - 644, 696, 697, 646, 754, 755, 756, 729, 639, 0, - 647, 648, 0, 735, 744, 745, 701, 170, 184, 277, - 759, 348, 240, 444, 425, 421, 625, 642, 216, 653, - 0, 0, 665, 673, 674, 686, 688, 689, 690, 691, - 700, 708, 709, 711, 719, 721, 724, 726, 731, 741, - 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 695, 723, - 284, 396, 397, 748, 734, 395, 0, 681, 751, 652, - 669, 761, 672, 675, 716, 631, 694, 318, 666, 0, - 656, 627, 662, 628, 654, 683, 224, 651, 736, 698, - 750, 275, 221, 633, 657, 332, 671, 176, 718, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 757, 279, 705, 0, 380, 303, 0, - 0, 0, 685, 740, 692, 730, 680, 717, 641, 704, - 752, 667, 713, 753, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 710, 747, 664, - 712, 219, 263, 226, 218, 399, 758, 739, 0, 191, - 749, 687, 715, 764, 626, 707, 0, 629, 632, 760, - 743, 660, 229, 0, 0, 0, 0, 0, 0, 0, - 684, 693, 727, 678, 0, 0, 0, 0, 0, 0, - 1773, 0, 658, 0, 703, 0, 0, 0, 637, 630, - 0, 0, 0, 0, 682, 0, 0, 0, 640, 0, - 659, 728, 0, 624, 247, 634, 304, 0, 732, 742, - 679, 431, 746, 677, 676, 722, 638, 738, 670, 274, - 636, 271, 171, 187, 0, 668, 314, 354, 360, 737, - 655, 663, 210, 661, 358, 328, 416, 194, 237, 351, - 333, 356, 702, 720, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 940, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 650, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 733, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 725, 763, 327, 359, 200, 418, 379, 645, - 649, 643, 644, 696, 697, 646, 754, 755, 756, 729, - 639, 0, 647, 648, 0, 735, 744, 745, 701, 170, - 184, 277, 759, 348, 240, 444, 425, 421, 625, 642, - 216, 653, 0, 0, 665, 673, 674, 686, 688, 689, - 690, 691, 700, 708, 709, 711, 719, 721, 724, 726, - 731, 741, 762, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 699, 706, 288, 234, 252, 262, - 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 695, 723, 284, 396, 397, 748, 734, 395, 0, 681, - 751, 652, 669, 761, 672, 675, 716, 631, 694, 318, - 666, 0, 656, 627, 662, 628, 654, 683, 224, 651, - 736, 698, 750, 275, 221, 633, 657, 332, 671, 176, - 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 757, 279, 705, 0, 380, - 303, 0, 0, 0, 685, 740, 692, 730, 680, 717, - 641, 704, 752, 667, 713, 753, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 710, - 747, 664, 712, 219, 263, 226, 218, 399, 758, 739, - 0, 191, 749, 687, 715, 764, 626, 707, 0, 629, - 632, 760, 743, 660, 229, 0, 0, 0, 0, 0, - 0, 0, 684, 693, 727, 678, 0, 0, 0, 0, - 0, 0, 1482, 0, 658, 0, 703, 0, 0, 0, - 637, 630, 0, 0, 0, 0, 682, 0, 0, 0, - 640, 0, 659, 728, 0, 624, 247, 634, 304, 0, - 732, 742, 679, 431, 746, 677, 676, 722, 638, 738, - 670, 274, 636, 271, 171, 187, 0, 668, 314, 354, - 360, 737, 655, 663, 210, 661, 358, 328, 416, 194, - 237, 351, 333, 356, 702, 720, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 940, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 650, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 733, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 725, 763, 327, 359, 200, 418, - 379, 645, 649, 643, 644, 696, 697, 646, 754, 755, - 756, 729, 639, 0, 647, 648, 0, 735, 744, 745, - 701, 170, 184, 277, 759, 348, 240, 444, 425, 421, - 625, 642, 216, 653, 0, 0, 665, 673, 674, 686, - 688, 689, 690, 691, 700, 708, 709, 711, 719, 721, - 724, 726, 731, 741, 762, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 699, 706, 288, 234, - 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 695, 723, 284, 396, 397, 748, 734, 395, - 0, 681, 751, 652, 669, 761, 672, 675, 716, 631, - 694, 318, 666, 0, 656, 627, 662, 628, 654, 683, - 224, 651, 736, 698, 750, 275, 221, 633, 657, 332, - 671, 176, 718, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 757, 279, 705, - 0, 380, 303, 0, 0, 0, 685, 740, 692, 730, - 680, 717, 641, 704, 752, 667, 713, 753, 265, 207, - 175, 315, 381, 239, 71, 0, 0, 167, 168, 169, + 0, 0, 198, 0, 205, 711, 748, 665, 713, 219, + 264, 226, 218, 400, 759, 740, 0, 191, 750, 688, + 716, 765, 627, 708, 0, 630, 633, 761, 744, 661, + 229, 0, 0, 0, 0, 0, 0, 0, 685, 694, + 728, 679, 0, 0, 0, 0, 0, 0, 0, 0, + 659, 0, 704, 0, 0, 0, 638, 631, 0, 0, + 0, 0, 683, 0, 0, 0, 641, 0, 660, 729, + 0, 625, 247, 635, 305, 0, 733, 743, 680, 432, + 747, 678, 677, 723, 639, 739, 671, 275, 637, 272, + 171, 187, 0, 669, 315, 355, 361, 738, 656, 664, + 210, 662, 359, 329, 417, 194, 237, 352, 334, 357, + 703, 721, 358, 281, 405, 347, 415, 433, 434, 217, + 309, 423, 394, 429, 444, 188, 214, 323, 387, 420, + 378, 302, 401, 402, 271, 377, 245, 174, 279, 441, + 186, 367, 202, 179, 389, 413, 199, 370, 0, 0, + 446, 181, 411, 386, 299, 268, 269, 180, 0, 351, + 222, 243, 212, 318, 408, 409, 211, 447, 190, 428, + 183, 941, 427, 311, 404, 412, 300, 291, 182, 410, + 298, 290, 274, 233, 254, 345, 284, 346, 255, 307, + 306, 308, 0, 177, 0, 383, 421, 448, 195, 196, + 197, 651, 232, 236, 242, 244, 250, 251, 258, 277, + 322, 344, 342, 348, 734, 399, 416, 424, 431, 437, + 438, 442, 439, 440, 443, 310, 257, 379, 273, 282, + 726, 764, 328, 360, 200, 419, 380, 646, 650, 644, + 645, 697, 698, 647, 755, 756, 757, 730, 640, 0, + 648, 649, 0, 736, 745, 746, 702, 170, 184, 278, + 760, 349, 240, 445, 426, 422, 626, 643, 216, 654, + 0, 0, 666, 674, 675, 687, 689, 690, 691, 692, + 701, 709, 710, 712, 720, 722, 725, 727, 732, 742, + 763, 172, 173, 185, 193, 203, 215, 230, 238, 248, + 253, 256, 261, 262, 265, 270, 288, 293, 294, 295, + 296, 312, 313, 314, 317, 320, 321, 324, 326, 327, + 330, 337, 338, 339, 340, 341, 343, 350, 354, 362, + 363, 364, 365, 366, 368, 369, 373, 374, 375, 376, + 384, 388, 406, 407, 418, 430, 435, 249, 414, 436, + 0, 287, 700, 707, 289, 234, 252, 263, 715, 425, + 385, 189, 356, 241, 178, 206, 192, 213, 228, 231, + 267, 297, 303, 332, 336, 246, 225, 204, 353, 201, + 371, 391, 392, 393, 395, 301, 220, 335, 696, 724, + 285, 397, 398, 259, 749, 735, 396, 0, 682, 752, + 653, 670, 762, 673, 676, 717, 632, 695, 319, 667, + 0, 657, 628, 663, 629, 655, 684, 224, 652, 737, + 699, 751, 276, 221, 634, 658, 333, 672, 176, 719, + 372, 209, 286, 283, 403, 235, 227, 223, 208, 260, + 292, 331, 390, 325, 758, 280, 706, 0, 381, 304, + 0, 0, 0, 686, 741, 693, 731, 681, 718, 642, + 705, 753, 668, 714, 754, 266, 207, 175, 316, 382, + 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, + 0, 0, 0, 0, 0, 198, 0, 205, 711, 748, + 665, 713, 219, 264, 226, 218, 400, 759, 740, 0, + 191, 750, 688, 716, 765, 627, 708, 0, 630, 633, + 761, 744, 661, 229, 0, 0, 0, 0, 0, 0, + 0, 685, 694, 728, 679, 0, 0, 0, 0, 0, + 0, 0, 0, 659, 0, 704, 0, 0, 0, 638, + 631, 0, 0, 0, 0, 683, 0, 0, 0, 641, + 0, 660, 729, 0, 625, 247, 635, 305, 0, 733, + 743, 680, 432, 747, 678, 677, 723, 639, 739, 671, + 275, 637, 272, 171, 187, 0, 669, 315, 355, 361, + 738, 656, 664, 210, 662, 359, 329, 417, 194, 237, + 352, 334, 357, 703, 721, 358, 281, 405, 347, 415, + 433, 434, 217, 309, 423, 394, 429, 444, 188, 214, + 323, 387, 420, 378, 302, 401, 402, 271, 377, 245, + 174, 279, 441, 186, 367, 202, 179, 389, 413, 199, + 370, 0, 0, 446, 181, 411, 386, 299, 268, 269, + 180, 0, 351, 222, 243, 212, 318, 408, 409, 211, + 447, 190, 428, 183, 941, 427, 311, 404, 412, 300, + 291, 182, 410, 298, 290, 274, 233, 254, 345, 284, + 346, 255, 307, 306, 308, 0, 177, 0, 383, 421, + 448, 195, 196, 197, 651, 232, 236, 242, 244, 250, + 251, 258, 277, 322, 344, 342, 348, 734, 399, 416, + 424, 431, 437, 438, 442, 439, 440, 443, 310, 257, + 379, 273, 282, 726, 764, 328, 360, 200, 419, 380, + 646, 650, 644, 645, 697, 698, 647, 755, 756, 757, + 730, 640, 0, 648, 649, 0, 736, 745, 746, 702, + 170, 184, 278, 760, 349, 240, 445, 426, 422, 626, + 643, 216, 654, 0, 0, 666, 674, 675, 687, 689, + 690, 691, 692, 701, 709, 710, 712, 720, 722, 725, + 727, 732, 742, 763, 172, 173, 185, 193, 203, 215, + 230, 238, 248, 253, 256, 261, 262, 265, 270, 288, + 293, 294, 295, 296, 312, 313, 314, 317, 320, 321, + 324, 326, 327, 330, 337, 338, 339, 340, 341, 343, + 350, 354, 362, 363, 364, 365, 366, 368, 369, 373, + 374, 375, 376, 384, 388, 406, 407, 418, 430, 435, + 249, 414, 436, 0, 287, 700, 707, 289, 234, 252, + 263, 715, 425, 385, 189, 356, 241, 178, 206, 192, + 213, 228, 231, 267, 297, 303, 332, 336, 246, 225, + 204, 353, 201, 371, 391, 392, 393, 395, 301, 220, + 335, 696, 724, 285, 397, 398, 259, 749, 735, 396, + 0, 682, 752, 653, 670, 762, 673, 676, 717, 632, + 695, 319, 667, 0, 657, 628, 663, 629, 655, 684, + 224, 652, 737, 699, 751, 276, 221, 634, 658, 333, + 672, 176, 719, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 758, 280, 706, + 0, 381, 304, 0, 0, 0, 686, 741, 693, 731, + 681, 718, 642, 705, 753, 668, 714, 754, 266, 207, + 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 710, 747, 664, 712, 219, 263, 226, 218, 399, - 758, 739, 0, 191, 749, 687, 715, 764, 626, 707, - 0, 629, 632, 760, 743, 660, 229, 0, 0, 0, - 0, 0, 0, 0, 684, 693, 727, 678, 0, 0, - 0, 0, 0, 0, 0, 0, 658, 0, 703, 0, - 0, 0, 637, 630, 0, 0, 0, 0, 682, 0, - 0, 0, 640, 0, 659, 728, 0, 624, 247, 634, - 304, 0, 732, 742, 679, 431, 746, 677, 676, 722, - 638, 738, 670, 274, 636, 271, 171, 187, 0, 668, - 314, 354, 360, 737, 655, 663, 210, 661, 358, 328, - 416, 194, 237, 351, 333, 356, 702, 720, 357, 280, - 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, - 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, - 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, - 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, - 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, - 407, 408, 211, 446, 190, 427, 183, 940, 426, 310, - 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, - 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, - 0, 382, 420, 447, 195, 196, 197, 650, 232, 236, - 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, - 733, 398, 415, 423, 430, 436, 437, 441, 438, 439, - 442, 309, 257, 378, 272, 281, 725, 763, 327, 359, - 200, 418, 379, 645, 649, 643, 644, 696, 697, 646, - 754, 755, 756, 729, 639, 0, 647, 648, 0, 735, - 744, 745, 701, 170, 184, 277, 759, 348, 240, 444, - 425, 421, 625, 642, 216, 653, 0, 0, 665, 673, - 674, 686, 688, 689, 690, 691, 700, 708, 709, 711, - 719, 721, 724, 726, 731, 741, 762, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, - 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, - 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, - 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, - 417, 429, 434, 249, 413, 435, 0, 286, 699, 706, - 288, 234, 252, 262, 714, 424, 384, 189, 355, 241, - 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, - 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, - 394, 300, 220, 334, 695, 723, 284, 396, 397, 748, - 734, 395, 0, 681, 751, 652, 669, 761, 672, 675, - 716, 631, 694, 318, 666, 0, 656, 627, 662, 628, - 654, 683, 224, 651, 736, 698, 750, 275, 221, 633, - 657, 332, 671, 176, 718, 371, 209, 285, 282, 402, - 235, 227, 223, 208, 259, 291, 330, 389, 324, 757, - 279, 705, 0, 380, 303, 0, 0, 0, 685, 740, - 692, 730, 680, 717, 641, 704, 752, 667, 713, 753, - 265, 207, 175, 315, 381, 239, 0, 0, 0, 167, - 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, - 198, 0, 205, 710, 747, 664, 712, 219, 263, 226, - 218, 399, 758, 739, 0, 191, 749, 687, 715, 764, - 626, 707, 0, 629, 632, 760, 743, 660, 229, 0, - 0, 0, 0, 0, 0, 0, 684, 693, 727, 678, - 0, 0, 0, 0, 0, 0, 0, 0, 658, 0, - 703, 0, 0, 0, 637, 630, 0, 0, 0, 0, - 682, 0, 0, 0, 640, 0, 659, 728, 0, 624, - 247, 634, 304, 0, 732, 742, 679, 431, 746, 677, - 676, 722, 638, 738, 670, 274, 636, 271, 171, 187, - 0, 668, 314, 354, 360, 737, 655, 663, 210, 661, - 358, 328, 416, 194, 237, 351, 333, 356, 702, 720, - 357, 280, 404, 346, 414, 432, 433, 217, 308, 422, - 393, 428, 443, 188, 214, 322, 386, 419, 377, 301, - 400, 401, 270, 376, 245, 174, 278, 440, 186, 366, - 202, 179, 388, 412, 199, 369, 0, 0, 445, 181, - 410, 385, 298, 267, 268, 180, 0, 350, 222, 243, - 212, 317, 407, 408, 211, 446, 190, 427, 183, 940, - 426, 310, 403, 411, 299, 290, 182, 409, 297, 289, - 273, 233, 254, 344, 283, 345, 255, 306, 305, 307, - 0, 177, 0, 382, 420, 447, 195, 196, 197, 650, - 232, 236, 242, 244, 250, 251, 258, 276, 321, 343, - 341, 347, 733, 398, 415, 423, 430, 436, 437, 441, - 438, 439, 442, 309, 257, 378, 272, 281, 725, 763, - 327, 359, 200, 418, 379, 645, 649, 643, 644, 696, - 697, 646, 754, 755, 756, 729, 639, 0, 647, 648, - 0, 735, 744, 745, 701, 170, 184, 277, 759, 348, - 240, 444, 425, 421, 625, 642, 216, 653, 0, 0, - 665, 673, 674, 686, 688, 689, 690, 691, 700, 708, - 709, 711, 719, 721, 724, 726, 731, 741, 762, 172, - 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, - 260, 261, 264, 269, 287, 292, 293, 294, 295, 311, - 312, 313, 316, 319, 320, 323, 325, 326, 329, 336, - 337, 338, 339, 340, 342, 349, 353, 361, 362, 363, - 364, 365, 367, 368, 372, 373, 374, 375, 383, 387, - 405, 406, 417, 429, 434, 249, 413, 435, 0, 286, - 699, 706, 288, 234, 252, 262, 714, 424, 384, 189, - 355, 241, 178, 206, 192, 213, 228, 231, 266, 296, - 302, 331, 335, 246, 225, 204, 352, 201, 370, 390, - 391, 392, 394, 300, 220, 334, 695, 723, 284, 396, - 397, 748, 734, 395, 0, 681, 751, 652, 669, 761, - 672, 675, 716, 631, 694, 318, 666, 0, 656, 627, - 662, 628, 654, 683, 224, 651, 736, 698, 750, 275, - 221, 633, 657, 332, 671, 176, 718, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 757, 279, 705, 0, 380, 303, 0, 0, 0, - 685, 740, 692, 730, 680, 717, 641, 704, 752, 667, - 713, 753, 265, 207, 175, 315, 381, 239, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 710, 747, 664, 712, 219, - 263, 226, 218, 399, 758, 739, 0, 765, 749, 687, - 715, 764, 626, 707, 0, 629, 632, 760, 743, 660, - 229, 0, 0, 0, 0, 0, 0, 0, 684, 693, - 727, 678, 0, 0, 0, 0, 0, 0, 0, 0, - 658, 0, 703, 0, 0, 0, 637, 630, 0, 0, - 0, 0, 682, 0, 0, 0, 640, 0, 659, 728, - 0, 624, 247, 634, 304, 0, 732, 742, 679, 431, - 746, 677, 676, 722, 638, 738, 670, 274, 636, 271, - 171, 187, 0, 668, 314, 354, 360, 737, 655, 663, - 210, 661, 358, 328, 416, 194, 237, 351, 333, 356, - 702, 720, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 635, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 650, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 733, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 623, 617, 616, 272, 281, - 725, 763, 327, 359, 200, 418, 379, 645, 649, 643, - 644, 696, 697, 646, 754, 755, 756, 729, 639, 0, - 647, 648, 0, 735, 744, 745, 701, 170, 184, 277, - 759, 348, 240, 444, 425, 421, 625, 642, 216, 653, - 0, 0, 665, 673, 674, 686, 688, 689, 690, 691, - 700, 708, 709, 711, 719, 721, 724, 726, 731, 741, - 762, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 699, 706, 288, 234, 252, 262, 714, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 695, 723, - 284, 396, 397, 748, 734, 395, 0, 681, 751, 652, - 669, 761, 672, 675, 716, 631, 694, 318, 666, 0, - 656, 627, 662, 628, 654, 683, 224, 651, 736, 698, - 750, 275, 221, 633, 657, 332, 671, 176, 718, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 757, 279, 705, 0, 380, 303, 0, - 0, 0, 685, 740, 692, 730, 680, 717, 641, 704, - 752, 667, 713, 753, 265, 207, 175, 315, 381, 239, + 205, 711, 748, 665, 713, 219, 264, 226, 218, 400, + 759, 740, 0, 766, 750, 688, 716, 765, 627, 708, + 0, 630, 633, 761, 744, 661, 229, 0, 0, 0, + 0, 0, 0, 0, 685, 694, 728, 679, 0, 0, + 0, 0, 0, 0, 0, 0, 659, 0, 704, 0, + 0, 0, 638, 631, 0, 0, 0, 0, 683, 0, + 0, 0, 641, 0, 660, 729, 0, 625, 247, 635, + 305, 0, 733, 743, 680, 432, 747, 678, 677, 723, + 639, 739, 671, 275, 637, 272, 171, 187, 0, 669, + 315, 355, 361, 738, 656, 664, 210, 662, 359, 329, + 417, 194, 237, 352, 334, 357, 703, 721, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 636, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 651, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 734, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 624, 618, 617, 273, 282, 726, 764, 328, 360, + 200, 419, 380, 646, 650, 644, 645, 697, 698, 647, + 755, 756, 757, 730, 640, 0, 648, 649, 0, 736, + 745, 746, 702, 170, 184, 278, 760, 349, 240, 445, + 426, 422, 626, 643, 216, 654, 0, 0, 666, 674, + 675, 687, 689, 690, 691, 692, 701, 709, 710, 712, + 720, 722, 725, 727, 732, 742, 763, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 700, 707, + 289, 234, 252, 263, 715, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 696, 724, 285, 397, 398, 259, + 749, 735, 396, 0, 682, 752, 653, 670, 762, 673, + 676, 717, 632, 695, 319, 667, 0, 657, 628, 663, + 629, 655, 684, 224, 652, 737, 699, 751, 276, 221, + 634, 658, 333, 672, 176, 719, 372, 209, 286, 283, + 403, 235, 227, 223, 208, 260, 292, 331, 390, 325, + 758, 280, 706, 0, 381, 304, 0, 0, 0, 686, + 741, 693, 731, 681, 718, 642, 705, 753, 668, 714, + 754, 266, 207, 175, 316, 382, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 711, 748, 665, 713, 219, 264, + 226, 218, 400, 759, 740, 0, 766, 750, 688, 716, + 765, 627, 708, 0, 630, 633, 761, 744, 661, 229, + 0, 0, 0, 0, 0, 0, 0, 685, 694, 728, + 679, 0, 0, 0, 0, 0, 0, 0, 0, 659, + 0, 704, 0, 0, 0, 638, 631, 0, 0, 0, + 0, 683, 0, 0, 0, 641, 0, 660, 729, 0, + 625, 247, 635, 305, 0, 733, 743, 680, 432, 747, + 678, 677, 723, 639, 739, 671, 275, 637, 272, 171, + 187, 0, 669, 315, 355, 361, 738, 656, 664, 210, + 662, 359, 329, 417, 194, 237, 352, 334, 357, 703, + 721, 358, 281, 405, 347, 415, 433, 434, 217, 309, + 423, 394, 429, 444, 188, 214, 323, 387, 420, 378, + 302, 401, 402, 271, 377, 245, 174, 279, 441, 186, + 367, 202, 179, 389, 1109, 199, 370, 0, 0, 446, + 181, 411, 386, 299, 268, 269, 180, 0, 351, 222, + 243, 212, 318, 408, 409, 211, 447, 190, 428, 183, + 636, 427, 311, 404, 412, 300, 291, 182, 410, 298, + 290, 274, 233, 254, 345, 284, 346, 255, 307, 306, + 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, + 651, 232, 236, 242, 244, 250, 251, 258, 277, 322, + 344, 342, 348, 734, 399, 416, 424, 431, 437, 438, + 442, 439, 440, 443, 624, 618, 617, 273, 282, 726, + 764, 328, 360, 200, 419, 380, 646, 650, 644, 645, + 697, 698, 647, 755, 756, 757, 730, 640, 0, 648, + 649, 0, 736, 745, 746, 702, 170, 184, 278, 760, + 349, 240, 445, 426, 422, 626, 643, 216, 654, 0, + 0, 666, 674, 675, 687, 689, 690, 691, 692, 701, + 709, 710, 712, 720, 722, 725, 727, 732, 742, 763, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 261, 262, 265, 270, 288, 293, 294, 295, 296, + 312, 313, 314, 317, 320, 321, 324, 326, 327, 330, + 337, 338, 339, 340, 341, 343, 350, 354, 362, 363, + 364, 365, 366, 368, 369, 373, 374, 375, 376, 384, + 388, 406, 407, 418, 430, 435, 249, 414, 436, 0, + 287, 700, 707, 289, 234, 252, 263, 715, 425, 385, + 189, 356, 241, 178, 206, 192, 213, 228, 231, 267, + 297, 303, 332, 336, 246, 225, 204, 353, 201, 371, + 391, 392, 393, 395, 301, 220, 335, 696, 724, 285, + 397, 398, 259, 749, 735, 396, 0, 682, 752, 653, + 670, 762, 673, 676, 717, 632, 695, 319, 667, 0, + 657, 628, 663, 629, 655, 684, 224, 652, 737, 699, + 751, 276, 221, 634, 658, 333, 672, 176, 719, 372, + 209, 286, 283, 403, 235, 227, 223, 208, 260, 292, + 331, 390, 325, 758, 280, 706, 0, 381, 304, 0, + 0, 0, 686, 741, 693, 731, 681, 718, 642, 705, + 753, 668, 714, 754, 266, 207, 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 710, 747, 664, - 712, 219, 263, 226, 218, 399, 758, 739, 0, 765, - 749, 687, 715, 764, 626, 707, 0, 629, 632, 760, - 743, 660, 229, 0, 0, 0, 0, 0, 0, 0, - 684, 693, 727, 678, 0, 0, 0, 0, 0, 0, - 0, 0, 658, 0, 703, 0, 0, 0, 637, 630, - 0, 0, 0, 0, 682, 0, 0, 0, 640, 0, - 659, 728, 0, 624, 247, 634, 304, 0, 732, 742, - 679, 431, 746, 677, 676, 722, 638, 738, 670, 274, - 636, 271, 171, 187, 0, 668, 314, 354, 360, 737, - 655, 663, 210, 661, 358, 328, 416, 194, 237, 351, - 333, 356, 702, 720, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 1108, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 635, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 650, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 733, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 623, 617, 616, - 272, 281, 725, 763, 327, 359, 200, 418, 379, 645, - 649, 643, 644, 696, 697, 646, 754, 755, 756, 729, - 639, 0, 647, 648, 0, 735, 744, 745, 701, 170, - 184, 277, 759, 348, 240, 444, 425, 421, 625, 642, - 216, 653, 0, 0, 665, 673, 674, 686, 688, 689, - 690, 691, 700, 708, 709, 711, 719, 721, 724, 726, - 731, 741, 762, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 699, 706, 288, 234, 252, 262, - 714, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 695, 723, 284, 396, 397, 748, 734, 395, 0, 681, - 751, 652, 669, 761, 672, 675, 716, 631, 694, 318, - 666, 0, 656, 627, 662, 628, 654, 683, 224, 651, - 736, 698, 750, 275, 221, 633, 657, 332, 671, 176, - 718, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 757, 279, 705, 0, 380, - 303, 0, 0, 0, 685, 740, 692, 730, 680, 717, - 641, 704, 752, 667, 713, 753, 265, 207, 175, 315, - 381, 239, 0, 0, 0, 167, 168, 169, 0, 0, - 0, 0, 0, 0, 0, 0, 198, 0, 205, 710, - 747, 664, 712, 219, 263, 226, 218, 399, 758, 739, - 0, 765, 749, 687, 715, 764, 626, 707, 0, 629, - 632, 760, 743, 660, 229, 0, 0, 0, 0, 0, - 0, 0, 684, 693, 727, 678, 0, 0, 0, 0, - 0, 0, 0, 0, 658, 0, 703, 0, 0, 0, - 637, 630, 0, 0, 0, 0, 682, 0, 0, 0, - 640, 0, 659, 728, 0, 624, 247, 634, 304, 0, - 732, 742, 679, 431, 746, 677, 676, 722, 638, 738, - 670, 274, 636, 271, 171, 187, 0, 668, 314, 354, - 360, 737, 655, 663, 210, 661, 358, 328, 416, 194, - 237, 351, 333, 356, 702, 720, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 614, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 635, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 650, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 733, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 623, - 617, 616, 272, 281, 725, 763, 327, 359, 200, 418, - 379, 645, 649, 643, 644, 696, 697, 646, 754, 755, - 756, 729, 639, 0, 647, 648, 0, 735, 744, 745, - 701, 170, 184, 277, 759, 348, 240, 444, 425, 421, - 625, 642, 216, 653, 0, 0, 665, 673, 674, 686, - 688, 689, 690, 691, 700, 708, 709, 711, 719, 721, - 724, 726, 731, 741, 762, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 699, 706, 288, 234, - 252, 262, 714, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 695, 723, 284, 396, 397, 395, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 1410, 0, 514, 0, 0, 0, 224, 513, - 0, 0, 0, 275, 221, 0, 1411, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 71, 0, 0, 167, 168, 169, 535, 534, - 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, - 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, - 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 525, 526, 604, 0, 0, 0, 572, 0, 527, 0, - 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 559, 570, 565, 566, 563, 564, 558, 562, 561, - 560, 573, 550, 551, 552, 553, 555, 0, 567, 568, - 554, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 0, 0, 0, 0, 198, 0, 205, 711, 748, 665, + 713, 219, 264, 226, 218, 400, 759, 740, 0, 766, + 750, 688, 716, 765, 627, 708, 0, 630, 633, 761, + 744, 661, 229, 0, 0, 0, 0, 0, 0, 0, + 685, 694, 728, 679, 0, 0, 0, 0, 0, 0, + 0, 0, 659, 0, 704, 0, 0, 0, 638, 631, + 0, 0, 0, 0, 683, 0, 0, 0, 641, 0, + 660, 729, 0, 625, 247, 635, 305, 0, 733, 743, + 680, 432, 747, 678, 677, 723, 639, 739, 671, 275, + 637, 272, 171, 187, 0, 669, 315, 355, 361, 738, + 656, 664, 210, 662, 359, 329, 417, 194, 237, 352, + 334, 357, 703, 721, 358, 281, 405, 347, 415, 433, + 434, 217, 309, 423, 394, 429, 444, 188, 214, 323, + 387, 420, 378, 302, 401, 402, 271, 377, 245, 174, + 279, 441, 186, 367, 202, 179, 389, 615, 199, 370, + 0, 0, 446, 181, 411, 386, 299, 268, 269, 180, + 0, 351, 222, 243, 212, 318, 408, 409, 211, 447, + 190, 428, 183, 636, 427, 311, 404, 412, 300, 291, + 182, 410, 298, 290, 274, 233, 254, 345, 284, 346, + 255, 307, 306, 308, 0, 177, 0, 383, 421, 448, + 195, 196, 197, 651, 232, 236, 242, 244, 250, 251, + 258, 277, 322, 344, 342, 348, 734, 399, 416, 424, + 431, 437, 438, 442, 439, 440, 443, 624, 618, 617, + 273, 282, 726, 764, 328, 360, 200, 419, 380, 646, + 650, 644, 645, 697, 698, 647, 755, 756, 757, 730, + 640, 0, 648, 649, 0, 736, 745, 746, 702, 170, + 184, 278, 760, 349, 240, 445, 426, 422, 626, 643, + 216, 654, 0, 0, 666, 674, 675, 687, 689, 690, + 691, 692, 701, 709, 710, 712, 720, 722, 725, 727, + 732, 742, 763, 172, 173, 185, 193, 203, 215, 230, + 238, 248, 253, 256, 261, 262, 265, 270, 288, 293, + 294, 295, 296, 312, 313, 314, 317, 320, 321, 324, + 326, 327, 330, 337, 338, 339, 340, 341, 343, 350, + 354, 362, 363, 364, 365, 366, 368, 369, 373, 374, + 375, 376, 384, 388, 406, 407, 418, 430, 435, 249, + 414, 436, 0, 287, 700, 707, 289, 234, 252, 263, + 715, 425, 385, 189, 356, 241, 178, 206, 192, 213, + 228, 231, 267, 297, 303, 332, 336, 246, 225, 204, + 353, 201, 371, 391, 392, 393, 395, 301, 220, 335, + 696, 724, 285, 397, 398, 259, 396, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 319, 0, + 0, 1411, 0, 515, 0, 0, 0, 224, 514, 0, + 0, 0, 276, 221, 0, 1412, 333, 0, 176, 0, + 372, 209, 286, 283, 403, 235, 227, 223, 208, 260, + 292, 331, 390, 325, 558, 280, 0, 0, 381, 304, + 0, 0, 0, 0, 0, 549, 550, 0, 0, 0, + 0, 0, 0, 0, 0, 266, 207, 175, 316, 382, + 239, 71, 0, 0, 167, 168, 169, 536, 535, 538, + 539, 540, 541, 0, 0, 198, 537, 205, 542, 543, + 544, 0, 219, 264, 226, 218, 400, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 512, 529, 0, 557, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 526, + 527, 605, 0, 0, 0, 573, 0, 528, 0, 0, + 521, 522, 524, 523, 525, 530, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 247, 0, 305, 0, 572, + 0, 0, 432, 0, 0, 570, 0, 0, 0, 0, + 275, 0, 272, 171, 187, 0, 0, 315, 355, 361, + 0, 0, 0, 210, 0, 359, 329, 417, 194, 237, + 352, 334, 357, 0, 0, 358, 281, 405, 347, 415, + 433, 434, 217, 309, 423, 394, 429, 444, 188, 214, + 323, 387, 420, 378, 302, 401, 402, 271, 377, 245, + 174, 279, 441, 186, 367, 202, 179, 389, 413, 199, + 370, 0, 0, 446, 181, 411, 386, 299, 268, 269, + 180, 0, 351, 222, 243, 212, 318, 408, 409, 211, + 447, 190, 428, 183, 0, 427, 311, 404, 412, 300, + 291, 182, 410, 298, 290, 274, 233, 254, 345, 284, + 346, 255, 307, 306, 308, 0, 177, 0, 383, 421, + 448, 195, 196, 197, 0, 232, 236, 242, 244, 250, + 251, 258, 277, 322, 344, 342, 348, 0, 399, 416, + 424, 431, 437, 438, 442, 439, 440, 443, 310, 257, + 379, 273, 282, 0, 0, 328, 360, 200, 419, 380, + 560, 571, 566, 567, 564, 565, 559, 563, 562, 561, + 574, 551, 552, 553, 554, 556, 0, 568, 569, 555, + 170, 184, 278, 0, 349, 240, 445, 426, 422, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 230, 238, 248, 253, 256, 261, 262, 265, 270, 288, + 293, 294, 295, 296, 312, 313, 314, 317, 320, 321, + 324, 326, 327, 330, 337, 338, 339, 340, 341, 343, + 350, 354, 362, 363, 364, 365, 366, 368, 369, 373, + 374, 375, 376, 384, 388, 406, 407, 418, 430, 435, + 249, 414, 436, 0, 287, 0, 0, 289, 234, 252, + 263, 0, 425, 385, 189, 356, 241, 178, 206, 192, + 213, 228, 231, 267, 297, 303, 332, 336, 246, 225, + 204, 353, 201, 371, 391, 392, 393, 395, 301, 220, + 335, 396, 0, 285, 397, 398, 259, 0, 0, 0, + 0, 0, 0, 319, 0, 0, 0, 0, 515, 0, + 0, 0, 224, 514, 0, 0, 0, 276, 221, 0, + 0, 333, 0, 176, 0, 372, 209, 286, 283, 403, + 235, 227, 223, 208, 260, 292, 331, 390, 325, 558, + 280, 0, 0, 381, 304, 0, 0, 0, 0, 0, + 549, 550, 0, 0, 0, 0, 0, 0, 1522, 0, + 266, 207, 175, 316, 382, 239, 71, 0, 0, 167, + 168, 169, 536, 535, 538, 539, 540, 541, 0, 0, + 198, 537, 205, 542, 543, 544, 1523, 219, 264, 226, + 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, + 0, 512, 529, 0, 557, 0, 0, 0, 229, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 526, 527, 0, 0, 0, 0, + 573, 0, 528, 0, 0, 521, 522, 524, 523, 525, + 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 247, 0, 305, 0, 572, 0, 0, 432, 0, 0, + 570, 0, 0, 0, 0, 275, 0, 272, 171, 187, + 0, 0, 315, 355, 361, 0, 0, 0, 210, 0, + 359, 329, 417, 194, 237, 352, 334, 357, 0, 0, + 358, 281, 405, 347, 415, 433, 434, 217, 309, 423, + 394, 429, 444, 188, 214, 323, 387, 420, 378, 302, + 401, 402, 271, 377, 245, 174, 279, 441, 186, 367, + 202, 179, 389, 413, 199, 370, 0, 0, 446, 181, + 411, 386, 299, 268, 269, 180, 0, 351, 222, 243, + 212, 318, 408, 409, 211, 447, 190, 428, 183, 0, + 427, 311, 404, 412, 300, 291, 182, 410, 298, 290, + 274, 233, 254, 345, 284, 346, 255, 307, 306, 308, + 0, 177, 0, 383, 421, 448, 195, 196, 197, 0, + 232, 236, 242, 244, 250, 251, 258, 277, 322, 344, + 342, 348, 0, 399, 416, 424, 431, 437, 438, 442, + 439, 440, 443, 310, 257, 379, 273, 282, 0, 0, + 328, 360, 200, 419, 380, 560, 571, 566, 567, 564, + 565, 559, 563, 562, 561, 574, 551, 552, 553, 554, + 556, 0, 568, 569, 555, 170, 184, 278, 0, 349, + 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 261, 262, 265, 270, 288, 293, 294, 295, 296, 312, + 313, 314, 317, 320, 321, 324, 326, 327, 330, 337, + 338, 339, 340, 341, 343, 350, 354, 362, 363, 364, + 365, 366, 368, 369, 373, 374, 375, 376, 384, 388, + 406, 407, 418, 430, 435, 249, 414, 436, 0, 287, + 0, 0, 289, 234, 252, 263, 0, 425, 385, 189, + 356, 241, 178, 206, 192, 213, 228, 231, 267, 297, + 303, 332, 336, 246, 225, 204, 353, 201, 371, 391, + 392, 393, 395, 301, 220, 335, 396, 0, 285, 397, + 398, 259, 0, 0, 0, 0, 0, 0, 319, 0, + 0, 0, 0, 515, 0, 0, 0, 224, 514, 0, + 0, 0, 276, 221, 0, 0, 333, 0, 176, 0, + 372, 209, 286, 283, 403, 235, 227, 223, 208, 260, + 292, 331, 390, 325, 558, 280, 0, 0, 381, 304, + 0, 0, 0, 0, 0, 549, 550, 0, 0, 0, + 0, 0, 0, 0, 0, 266, 207, 175, 316, 382, + 239, 71, 0, 592, 167, 168, 169, 536, 535, 538, + 539, 540, 541, 0, 0, 198, 537, 205, 542, 543, + 544, 0, 219, 264, 226, 218, 400, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 512, 529, 0, 557, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 526, + 527, 0, 0, 0, 0, 573, 0, 528, 0, 0, + 521, 522, 524, 523, 525, 530, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 247, 0, 305, 0, 572, + 0, 0, 432, 0, 0, 570, 0, 0, 0, 0, + 275, 0, 272, 171, 187, 0, 0, 315, 355, 361, + 0, 0, 0, 210, 0, 359, 329, 417, 194, 237, + 352, 334, 357, 0, 0, 358, 281, 405, 347, 415, + 433, 434, 217, 309, 423, 394, 429, 444, 188, 214, + 323, 387, 420, 378, 302, 401, 402, 271, 377, 245, + 174, 279, 441, 186, 367, 202, 179, 389, 413, 199, + 370, 0, 0, 446, 181, 411, 386, 299, 268, 269, + 180, 0, 351, 222, 243, 212, 318, 408, 409, 211, + 447, 190, 428, 183, 0, 427, 311, 404, 412, 300, + 291, 182, 410, 298, 290, 274, 233, 254, 345, 284, + 346, 255, 307, 306, 308, 0, 177, 0, 383, 421, + 448, 195, 196, 197, 0, 232, 236, 242, 244, 250, + 251, 258, 277, 322, 344, 342, 348, 0, 399, 416, + 424, 431, 437, 438, 442, 439, 440, 443, 310, 257, + 379, 273, 282, 0, 0, 328, 360, 200, 419, 380, + 560, 571, 566, 567, 564, 565, 559, 563, 562, 561, + 574, 551, 552, 553, 554, 556, 0, 568, 569, 555, + 170, 184, 278, 0, 349, 240, 445, 426, 422, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 230, 238, 248, 253, 256, 261, 262, 265, 270, 288, + 293, 294, 295, 296, 312, 313, 314, 317, 320, 321, + 324, 326, 327, 330, 337, 338, 339, 340, 341, 343, + 350, 354, 362, 363, 364, 365, 366, 368, 369, 373, + 374, 375, 376, 384, 388, 406, 407, 418, 430, 435, + 249, 414, 436, 0, 287, 0, 0, 289, 234, 252, + 263, 0, 425, 385, 189, 356, 241, 178, 206, 192, + 213, 228, 231, 267, 297, 303, 332, 336, 246, 225, + 204, 353, 201, 371, 391, 392, 393, 395, 301, 220, + 335, 396, 0, 285, 397, 398, 259, 0, 0, 0, + 0, 0, 0, 319, 0, 0, 0, 0, 515, 0, + 0, 0, 224, 514, 0, 0, 0, 276, 221, 0, + 0, 333, 0, 176, 0, 372, 209, 286, 283, 403, + 235, 227, 223, 208, 260, 292, 331, 390, 325, 558, + 280, 0, 0, 381, 304, 0, 0, 0, 0, 0, + 549, 550, 0, 0, 0, 0, 0, 0, 0, 0, + 266, 207, 175, 316, 382, 239, 71, 0, 0, 167, + 168, 169, 536, 535, 538, 539, 540, 541, 0, 0, + 198, 537, 205, 542, 543, 544, 0, 219, 264, 226, + 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, + 0, 512, 529, 0, 557, 0, 0, 0, 229, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 526, 527, 605, 0, 0, 0, + 573, 0, 528, 0, 0, 521, 522, 524, 523, 525, + 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 247, 0, 305, 0, 572, 0, 0, 432, 0, 0, + 570, 0, 0, 0, 0, 275, 0, 272, 171, 187, + 0, 0, 315, 355, 361, 0, 0, 0, 210, 0, + 359, 329, 417, 194, 237, 352, 334, 357, 0, 0, + 358, 281, 405, 347, 415, 433, 434, 217, 309, 423, + 394, 429, 444, 188, 214, 323, 387, 420, 378, 302, + 401, 402, 271, 377, 245, 174, 279, 441, 186, 367, + 202, 179, 389, 413, 199, 370, 0, 0, 446, 181, + 411, 386, 299, 268, 269, 180, 0, 351, 222, 243, + 212, 318, 408, 409, 211, 447, 190, 428, 183, 0, + 427, 311, 404, 412, 300, 291, 182, 410, 298, 290, + 274, 233, 254, 345, 284, 346, 255, 307, 306, 308, + 0, 177, 0, 383, 421, 448, 195, 196, 197, 0, + 232, 236, 242, 244, 250, 251, 258, 277, 322, 344, + 342, 348, 0, 399, 416, 424, 431, 437, 438, 442, + 439, 440, 443, 310, 257, 379, 273, 282, 0, 0, + 328, 360, 200, 419, 380, 560, 571, 566, 567, 564, + 565, 559, 563, 562, 561, 574, 551, 552, 553, 554, + 556, 0, 568, 569, 555, 170, 184, 278, 0, 349, + 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 261, 262, 265, 270, 288, 293, 294, 295, 296, 312, + 313, 314, 317, 320, 321, 324, 326, 327, 330, 337, + 338, 339, 340, 341, 343, 350, 354, 362, 363, 364, + 365, 366, 368, 369, 373, 374, 375, 376, 384, 388, + 406, 407, 418, 430, 435, 249, 414, 436, 0, 287, + 0, 0, 289, 234, 252, 263, 0, 425, 385, 189, + 356, 241, 178, 206, 192, 213, 228, 231, 267, 297, + 303, 332, 336, 246, 225, 204, 353, 201, 371, 391, + 392, 393, 395, 301, 220, 335, 396, 0, 285, 397, + 398, 259, 0, 0, 0, 0, 0, 0, 319, 0, + 0, 0, 0, 515, 0, 0, 0, 224, 514, 0, + 0, 0, 276, 221, 0, 0, 333, 0, 176, 0, + 372, 209, 286, 283, 403, 235, 227, 223, 208, 260, + 292, 331, 390, 325, 558, 280, 0, 0, 381, 304, + 0, 0, 0, 0, 0, 549, 550, 0, 0, 0, + 0, 0, 0, 0, 0, 266, 207, 175, 316, 382, + 239, 71, 0, 0, 167, 168, 169, 536, 1429, 538, + 539, 540, 541, 0, 0, 198, 537, 205, 542, 543, + 544, 0, 219, 264, 226, 218, 400, 0, 0, 0, + 191, 0, 0, 0, 0, 0, 512, 529, 0, 557, + 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 526, + 527, 605, 0, 0, 0, 573, 0, 528, 0, 0, + 521, 522, 524, 523, 525, 530, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 247, 0, 305, 0, 572, + 0, 0, 432, 0, 0, 570, 0, 0, 0, 0, + 275, 0, 272, 171, 187, 0, 0, 315, 355, 361, + 0, 0, 0, 210, 0, 359, 329, 417, 194, 237, + 352, 334, 357, 0, 0, 358, 281, 405, 347, 415, + 433, 434, 217, 309, 423, 394, 429, 444, 188, 214, + 323, 387, 420, 378, 302, 401, 402, 271, 377, 245, + 174, 279, 441, 186, 367, 202, 179, 389, 413, 199, + 370, 0, 0, 446, 181, 411, 386, 299, 268, 269, + 180, 0, 351, 222, 243, 212, 318, 408, 409, 211, + 447, 190, 428, 183, 0, 427, 311, 404, 412, 300, + 291, 182, 410, 298, 290, 274, 233, 254, 345, 284, + 346, 255, 307, 306, 308, 0, 177, 0, 383, 421, + 448, 195, 196, 197, 0, 232, 236, 242, 244, 250, + 251, 258, 277, 322, 344, 342, 348, 0, 399, 416, + 424, 431, 437, 438, 442, 439, 440, 443, 310, 257, + 379, 273, 282, 0, 0, 328, 360, 200, 419, 380, + 560, 571, 566, 567, 564, 565, 559, 563, 562, 561, + 574, 551, 552, 553, 554, 556, 0, 568, 569, 555, + 170, 184, 278, 0, 349, 240, 445, 426, 422, 0, + 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, + 230, 238, 248, 253, 256, 261, 262, 265, 270, 288, + 293, 294, 295, 296, 312, 313, 314, 317, 320, 321, + 324, 326, 327, 330, 337, 338, 339, 340, 341, 343, + 350, 354, 362, 363, 364, 365, 366, 368, 369, 373, + 374, 375, 376, 384, 388, 406, 407, 418, 430, 435, + 249, 414, 436, 0, 287, 0, 0, 289, 234, 252, + 263, 0, 425, 385, 189, 356, 241, 178, 206, 192, + 213, 228, 231, 267, 297, 303, 332, 336, 246, 225, + 204, 353, 201, 371, 391, 392, 393, 395, 301, 220, + 335, 396, 0, 285, 397, 398, 259, 0, 0, 0, + 0, 0, 0, 319, 0, 0, 0, 0, 515, 0, + 0, 0, 224, 514, 0, 0, 0, 276, 221, 0, + 0, 333, 0, 176, 0, 372, 209, 286, 283, 403, + 235, 227, 223, 208, 260, 292, 331, 390, 325, 558, + 280, 0, 0, 381, 304, 0, 0, 0, 0, 0, + 549, 550, 0, 0, 0, 0, 0, 0, 0, 0, + 266, 207, 175, 316, 382, 239, 71, 0, 0, 167, + 168, 169, 536, 1426, 538, 539, 540, 541, 0, 0, + 198, 537, 205, 542, 543, 544, 0, 219, 264, 226, + 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, + 0, 512, 529, 0, 557, 0, 0, 0, 229, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 526, 527, 605, 0, 0, 0, + 573, 0, 528, 0, 0, 521, 522, 524, 523, 525, + 530, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 247, 0, 305, 0, 572, 0, 0, 432, 0, 0, + 570, 0, 0, 0, 0, 275, 0, 272, 171, 187, + 0, 0, 315, 355, 361, 0, 0, 0, 210, 0, + 359, 329, 417, 194, 237, 352, 334, 357, 0, 0, + 358, 281, 405, 347, 415, 433, 434, 217, 309, 423, + 394, 429, 444, 188, 214, 323, 387, 420, 378, 302, + 401, 402, 271, 377, 245, 174, 279, 441, 186, 367, + 202, 179, 389, 413, 199, 370, 0, 0, 446, 181, + 411, 386, 299, 268, 269, 180, 0, 351, 222, 243, + 212, 318, 408, 409, 211, 447, 190, 428, 183, 0, + 427, 311, 404, 412, 300, 291, 182, 410, 298, 290, + 274, 233, 254, 345, 284, 346, 255, 307, 306, 308, + 0, 177, 0, 383, 421, 448, 195, 196, 197, 0, + 232, 236, 242, 244, 250, 251, 258, 277, 322, 344, + 342, 348, 0, 399, 416, 424, 431, 437, 438, 442, + 439, 440, 443, 310, 257, 379, 273, 282, 0, 0, + 328, 360, 200, 419, 380, 560, 571, 566, 567, 564, + 565, 559, 563, 562, 561, 574, 551, 552, 553, 554, + 556, 0, 568, 569, 555, 170, 184, 278, 0, 349, + 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, + 173, 185, 193, 203, 215, 230, 238, 248, 253, 256, + 261, 262, 265, 270, 288, 293, 294, 295, 296, 312, + 313, 314, 317, 320, 321, 324, 326, 327, 330, 337, + 338, 339, 340, 341, 343, 350, 354, 362, 363, 364, + 365, 366, 368, 369, 373, 374, 375, 376, 384, 388, + 406, 407, 418, 430, 435, 249, 414, 436, 0, 287, + 0, 0, 289, 234, 252, 263, 0, 425, 385, 189, + 356, 241, 178, 206, 192, 213, 228, 231, 267, 297, + 303, 332, 336, 246, 225, 204, 353, 201, 371, 391, + 392, 393, 395, 301, 220, 335, 585, 396, 285, 397, + 398, 259, 0, 0, 0, 0, 0, 0, 0, 319, + 0, 0, 0, 0, 515, 0, 0, 0, 224, 514, + 0, 0, 0, 276, 221, 0, 0, 333, 0, 176, + 0, 372, 209, 286, 283, 403, 235, 227, 223, 208, + 260, 292, 331, 390, 325, 558, 280, 0, 0, 381, + 304, 0, 0, 0, 0, 0, 549, 550, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 207, 175, 316, + 382, 239, 71, 0, 0, 167, 168, 169, 536, 535, + 538, 539, 540, 541, 0, 0, 198, 537, 205, 542, + 543, 544, 0, 219, 264, 226, 218, 400, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 512, 529, 0, + 557, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 526, 527, 0, 0, 0, 0, 573, 0, 528, 0, + 0, 521, 522, 524, 523, 525, 530, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 305, 0, + 572, 0, 0, 432, 0, 0, 570, 0, 0, 0, + 0, 275, 0, 272, 171, 187, 0, 0, 315, 355, + 361, 0, 0, 0, 210, 0, 359, 329, 417, 194, + 237, 352, 334, 357, 0, 0, 358, 281, 405, 347, + 415, 433, 434, 217, 309, 423, 394, 429, 444, 188, + 214, 323, 387, 420, 378, 302, 401, 402, 271, 377, + 245, 174, 279, 441, 186, 367, 202, 179, 389, 413, + 199, 370, 0, 0, 446, 181, 411, 386, 299, 268, + 269, 180, 0, 351, 222, 243, 212, 318, 408, 409, + 211, 447, 190, 428, 183, 0, 427, 311, 404, 412, + 300, 291, 182, 410, 298, 290, 274, 233, 254, 345, + 284, 346, 255, 307, 306, 308, 0, 177, 0, 383, + 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 277, 322, 344, 342, 348, 0, 399, + 416, 424, 431, 437, 438, 442, 439, 440, 443, 310, + 257, 379, 273, 282, 0, 0, 328, 360, 200, 419, + 380, 560, 571, 566, 567, 564, 565, 559, 563, 562, + 561, 574, 551, 552, 553, 554, 556, 0, 568, 569, + 555, 170, 184, 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 514, - 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, - 0, 548, 549, 0, 0, 0, 0, 0, 0, 1521, - 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, - 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, - 0, 198, 536, 205, 541, 542, 543, 1522, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 525, 526, 0, 0, 0, - 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, - 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, - 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 559, 570, 565, 566, - 563, 564, 558, 562, 561, 560, 573, 550, 551, 552, - 553, 555, 0, 567, 568, 554, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 215, 230, 238, 248, 253, 256, 261, 262, 265, 270, + 288, 293, 294, 295, 296, 312, 313, 314, 317, 320, + 321, 324, 326, 327, 330, 337, 338, 339, 340, 341, + 343, 350, 354, 362, 363, 364, 365, 366, 368, 369, + 373, 374, 375, 376, 384, 388, 406, 407, 418, 430, + 435, 249, 414, 436, 0, 287, 0, 0, 289, 234, + 252, 263, 0, 425, 385, 189, 356, 241, 178, 206, + 192, 213, 228, 231, 267, 297, 303, 332, 336, 246, + 225, 204, 353, 201, 371, 391, 392, 393, 395, 301, + 220, 335, 396, 0, 285, 397, 398, 259, 0, 0, + 0, 0, 0, 0, 319, 0, 0, 0, 0, 515, + 0, 0, 0, 224, 514, 0, 0, 0, 276, 221, + 0, 0, 333, 0, 176, 0, 372, 209, 286, 283, + 403, 235, 227, 223, 208, 260, 292, 331, 390, 325, + 558, 280, 0, 0, 381, 304, 0, 0, 0, 0, + 0, 549, 550, 0, 0, 0, 0, 0, 0, 0, + 0, 266, 207, 175, 316, 382, 239, 71, 0, 0, + 167, 168, 169, 536, 535, 538, 539, 540, 541, 0, + 0, 198, 537, 205, 542, 543, 544, 0, 219, 264, + 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 512, 529, 0, 557, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 526, 527, 0, 0, 0, + 0, 573, 0, 528, 0, 0, 521, 522, 524, 523, + 525, 530, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 305, 0, 572, 0, 0, 432, 0, + 0, 570, 0, 0, 0, 0, 275, 0, 272, 171, + 187, 0, 0, 315, 355, 361, 0, 0, 0, 210, + 0, 359, 329, 417, 194, 237, 352, 334, 357, 0, + 0, 358, 281, 405, 347, 415, 433, 434, 217, 309, + 423, 394, 429, 444, 188, 214, 323, 387, 420, 378, + 302, 401, 402, 271, 377, 245, 174, 279, 441, 186, + 367, 202, 179, 389, 413, 199, 370, 0, 0, 446, + 181, 411, 386, 299, 268, 269, 180, 0, 351, 222, + 243, 212, 318, 408, 409, 211, 447, 190, 428, 183, + 0, 427, 311, 404, 412, 300, 291, 182, 410, 298, + 290, 274, 233, 254, 345, 284, 346, 255, 307, 306, + 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 277, 322, + 344, 342, 348, 0, 399, 416, 424, 431, 437, 438, + 442, 439, 440, 443, 310, 257, 379, 273, 282, 0, + 0, 328, 360, 200, 419, 380, 560, 571, 566, 567, + 564, 565, 559, 563, 562, 561, 574, 551, 552, 553, + 554, 556, 0, 568, 569, 555, 170, 184, 278, 0, + 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 514, 0, 0, 0, 224, 513, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 71, 0, 591, 167, 168, 169, 535, 534, - 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, - 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, - 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 525, 526, 0, 0, 0, 0, 572, 0, 527, 0, - 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 559, 570, 565, 566, 563, 564, 558, 562, 561, - 560, 573, 550, 551, 552, 553, 555, 0, 567, 568, - 554, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 256, 261, 262, 265, 270, 288, 293, 294, 295, 296, + 312, 313, 314, 317, 320, 321, 324, 326, 327, 330, + 337, 338, 339, 340, 341, 343, 350, 354, 362, 363, + 364, 365, 366, 368, 369, 373, 374, 375, 376, 384, + 388, 406, 407, 418, 430, 435, 249, 414, 436, 0, + 287, 0, 0, 289, 234, 252, 263, 0, 425, 385, + 189, 356, 241, 178, 206, 192, 213, 228, 231, 267, + 297, 303, 332, 336, 246, 225, 204, 353, 201, 371, + 391, 392, 393, 395, 301, 220, 335, 396, 0, 285, + 397, 398, 259, 0, 0, 0, 0, 0, 0, 319, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 276, 221, 0, 0, 333, 0, 176, + 0, 372, 209, 286, 283, 403, 235, 227, 223, 208, + 260, 292, 331, 390, 325, 558, 280, 0, 0, 381, + 304, 0, 0, 0, 0, 0, 549, 550, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 207, 175, 316, + 382, 239, 71, 0, 0, 167, 168, 169, 536, 535, + 538, 539, 540, 541, 0, 0, 198, 537, 205, 542, + 543, 544, 0, 219, 264, 226, 218, 400, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 529, 0, + 557, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 526, 527, 0, 0, 0, 0, 573, 0, 528, 0, + 0, 521, 522, 524, 523, 525, 530, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 305, 0, + 572, 0, 0, 432, 0, 0, 570, 0, 0, 0, + 0, 275, 0, 272, 171, 187, 0, 0, 315, 355, + 361, 0, 0, 0, 210, 0, 359, 329, 417, 194, + 237, 352, 334, 357, 2274, 0, 358, 281, 405, 347, + 415, 433, 434, 217, 309, 423, 394, 429, 444, 188, + 214, 323, 387, 420, 378, 302, 401, 402, 271, 377, + 245, 174, 279, 441, 186, 367, 202, 179, 389, 413, + 199, 370, 0, 0, 446, 181, 411, 386, 299, 268, + 269, 180, 0, 351, 222, 243, 212, 318, 408, 409, + 211, 447, 190, 428, 183, 0, 427, 311, 404, 412, + 300, 291, 182, 410, 298, 290, 274, 233, 254, 345, + 284, 346, 255, 307, 306, 308, 0, 177, 0, 383, + 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 277, 322, 344, 342, 348, 0, 399, + 416, 424, 431, 437, 438, 442, 439, 440, 443, 310, + 257, 379, 273, 282, 0, 0, 328, 360, 200, 419, + 380, 560, 571, 566, 567, 564, 565, 559, 563, 562, + 561, 574, 551, 552, 553, 554, 556, 0, 568, 569, + 555, 170, 184, 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 514, - 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, - 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, - 167, 168, 169, 535, 534, 537, 538, 539, 540, 0, - 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 525, 526, 604, 0, 0, - 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, - 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, - 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 559, 570, 565, 566, - 563, 564, 558, 562, 561, 560, 573, 550, 551, 552, - 553, 555, 0, 567, 568, 554, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 215, 230, 238, 248, 253, 256, 261, 262, 265, 270, + 288, 293, 294, 295, 296, 312, 313, 314, 317, 320, + 321, 324, 326, 327, 330, 337, 338, 339, 340, 341, + 343, 350, 354, 362, 363, 364, 365, 366, 368, 369, + 373, 374, 375, 376, 384, 388, 406, 407, 418, 430, + 435, 249, 414, 436, 0, 287, 0, 0, 289, 234, + 252, 263, 0, 425, 385, 189, 356, 241, 178, 206, + 192, 213, 228, 231, 267, 297, 303, 332, 336, 246, + 225, 204, 353, 201, 371, 391, 392, 393, 395, 301, + 220, 335, 396, 0, 285, 397, 398, 259, 0, 0, + 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 276, 221, + 0, 0, 333, 0, 176, 0, 372, 209, 286, 283, + 403, 235, 227, 223, 208, 260, 292, 331, 390, 325, + 558, 280, 0, 0, 381, 304, 0, 0, 0, 0, + 0, 549, 550, 0, 0, 0, 0, 0, 0, 0, + 0, 266, 207, 175, 316, 382, 239, 71, 0, 592, + 167, 168, 169, 536, 535, 538, 539, 540, 541, 0, + 0, 198, 537, 205, 542, 543, 544, 0, 219, 264, + 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 529, 0, 557, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 526, 527, 0, 0, 0, + 0, 573, 0, 528, 0, 0, 521, 522, 524, 523, + 525, 530, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 305, 0, 572, 0, 0, 432, 0, + 0, 570, 0, 0, 0, 0, 275, 0, 272, 171, + 187, 0, 0, 315, 355, 361, 0, 0, 0, 210, + 0, 359, 329, 417, 194, 237, 352, 334, 357, 0, + 0, 358, 281, 405, 347, 415, 433, 434, 217, 309, + 423, 394, 429, 444, 188, 214, 323, 387, 420, 378, + 302, 401, 402, 271, 377, 245, 174, 279, 441, 186, + 367, 202, 179, 389, 413, 199, 370, 0, 0, 446, + 181, 411, 386, 299, 268, 269, 180, 0, 351, 222, + 243, 212, 318, 408, 409, 211, 447, 190, 428, 183, + 0, 427, 311, 404, 412, 300, 291, 182, 410, 298, + 290, 274, 233, 254, 345, 284, 346, 255, 307, 306, + 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 277, 322, + 344, 342, 348, 0, 399, 416, 424, 431, 437, 438, + 442, 439, 440, 443, 310, 257, 379, 273, 282, 0, + 0, 328, 360, 200, 419, 380, 560, 571, 566, 567, + 564, 565, 559, 563, 562, 561, 574, 551, 552, 553, + 554, 556, 0, 568, 569, 555, 170, 184, 278, 0, + 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 395, 0, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 318, - 0, 0, 0, 0, 514, 0, 0, 0, 224, 513, - 0, 0, 0, 275, 221, 0, 0, 332, 0, 176, - 0, 371, 209, 285, 282, 402, 235, 227, 223, 208, - 259, 291, 330, 389, 324, 557, 279, 0, 0, 380, - 303, 0, 0, 0, 0, 0, 548, 549, 0, 0, - 0, 0, 0, 0, 0, 0, 265, 207, 175, 315, - 381, 239, 71, 0, 0, 167, 168, 169, 535, 1428, - 537, 538, 539, 540, 0, 0, 198, 536, 205, 541, - 542, 543, 0, 219, 263, 226, 218, 399, 0, 0, - 0, 191, 0, 0, 0, 0, 0, 511, 528, 0, - 556, 0, 0, 0, 229, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 525, 526, 604, 0, 0, 0, 572, 0, 527, 0, - 0, 520, 521, 523, 522, 524, 529, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 247, 0, 304, 0, - 571, 0, 0, 431, 0, 0, 569, 0, 0, 0, - 0, 274, 0, 271, 171, 187, 0, 0, 314, 354, - 360, 0, 0, 0, 210, 0, 358, 328, 416, 194, - 237, 351, 333, 356, 0, 0, 357, 280, 404, 346, - 414, 432, 433, 217, 308, 422, 393, 428, 443, 188, - 214, 322, 386, 419, 377, 301, 400, 401, 270, 376, - 245, 174, 278, 440, 186, 366, 202, 179, 388, 412, - 199, 369, 0, 0, 445, 181, 410, 385, 298, 267, - 268, 180, 0, 350, 222, 243, 212, 317, 407, 408, - 211, 446, 190, 427, 183, 0, 426, 310, 403, 411, - 299, 290, 182, 409, 297, 289, 273, 233, 254, 344, - 283, 345, 255, 306, 305, 307, 0, 177, 0, 382, - 420, 447, 195, 196, 197, 0, 232, 236, 242, 244, - 250, 251, 258, 276, 321, 343, 341, 347, 0, 398, - 415, 423, 430, 436, 437, 441, 438, 439, 442, 309, - 257, 378, 272, 281, 0, 0, 327, 359, 200, 418, - 379, 559, 570, 565, 566, 563, 564, 558, 562, 561, - 560, 573, 550, 551, 552, 553, 555, 0, 567, 568, - 554, 170, 184, 277, 0, 348, 240, 444, 425, 421, + 256, 261, 262, 265, 270, 288, 293, 294, 295, 296, + 312, 313, 314, 317, 320, 321, 324, 326, 327, 330, + 337, 338, 339, 340, 341, 343, 350, 354, 362, 363, + 364, 365, 366, 368, 369, 373, 374, 375, 376, 384, + 388, 406, 407, 418, 430, 435, 249, 414, 436, 0, + 287, 0, 0, 289, 234, 252, 263, 0, 425, 385, + 189, 356, 241, 178, 206, 192, 213, 228, 231, 267, + 297, 303, 332, 336, 246, 225, 204, 353, 201, 371, + 391, 392, 393, 395, 301, 220, 335, 396, 0, 285, + 397, 398, 259, 0, 0, 0, 0, 0, 0, 319, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 276, 221, 0, 0, 333, 0, 176, + 0, 372, 209, 286, 283, 403, 235, 227, 223, 208, + 260, 292, 331, 390, 325, 558, 280, 0, 0, 381, + 304, 0, 0, 0, 0, 0, 549, 550, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 207, 175, 316, + 382, 239, 71, 0, 0, 167, 168, 169, 536, 535, + 538, 539, 540, 541, 0, 0, 198, 537, 205, 542, + 543, 544, 0, 219, 264, 226, 218, 400, 0, 0, + 0, 191, 0, 0, 0, 0, 0, 0, 529, 0, + 557, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 526, 527, 0, 0, 0, 0, 573, 0, 528, 0, + 0, 521, 522, 524, 523, 525, 530, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 305, 0, + 572, 0, 0, 432, 0, 0, 570, 0, 0, 0, + 0, 275, 0, 272, 171, 187, 0, 0, 315, 355, + 361, 0, 0, 0, 210, 0, 359, 329, 417, 194, + 237, 352, 334, 357, 0, 0, 358, 281, 405, 347, + 415, 433, 434, 217, 309, 423, 394, 429, 444, 188, + 214, 323, 387, 420, 378, 302, 401, 402, 271, 377, + 245, 174, 279, 441, 186, 367, 202, 179, 389, 413, + 199, 370, 0, 0, 446, 181, 411, 386, 299, 268, + 269, 180, 0, 351, 222, 243, 212, 318, 408, 409, + 211, 447, 190, 428, 183, 0, 427, 311, 404, 412, + 300, 291, 182, 410, 298, 290, 274, 233, 254, 345, + 284, 346, 255, 307, 306, 308, 0, 177, 0, 383, + 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 277, 322, 344, 342, 348, 0, 399, + 416, 424, 431, 437, 438, 442, 439, 440, 443, 310, + 257, 379, 273, 282, 0, 0, 328, 360, 200, 419, + 380, 560, 571, 566, 567, 564, 565, 559, 563, 562, + 561, 574, 551, 552, 553, 554, 556, 0, 568, 569, + 555, 170, 184, 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, - 215, 230, 238, 248, 253, 256, 260, 261, 264, 269, - 287, 292, 293, 294, 295, 311, 312, 313, 316, 319, - 320, 323, 325, 326, 329, 336, 337, 338, 339, 340, - 342, 349, 353, 361, 362, 363, 364, 365, 367, 368, - 372, 373, 374, 375, 383, 387, 405, 406, 417, 429, - 434, 249, 413, 435, 0, 286, 0, 0, 288, 234, - 252, 262, 0, 424, 384, 189, 355, 241, 178, 206, - 192, 213, 228, 231, 266, 296, 302, 331, 335, 246, - 225, 204, 352, 201, 370, 390, 391, 392, 394, 300, - 220, 334, 395, 0, 284, 396, 397, 0, 0, 0, - 0, 0, 0, 0, 318, 0, 0, 0, 0, 514, - 0, 0, 0, 224, 513, 0, 0, 0, 275, 221, - 0, 0, 332, 0, 176, 0, 371, 209, 285, 282, - 402, 235, 227, 223, 208, 259, 291, 330, 389, 324, - 557, 279, 0, 0, 380, 303, 0, 0, 0, 0, - 0, 548, 549, 0, 0, 0, 0, 0, 0, 0, - 0, 265, 207, 175, 315, 381, 239, 71, 0, 0, - 167, 168, 169, 535, 1425, 537, 538, 539, 540, 0, - 0, 198, 536, 205, 541, 542, 543, 0, 219, 263, - 226, 218, 399, 0, 0, 0, 191, 0, 0, 0, - 0, 0, 511, 528, 0, 556, 0, 0, 0, 229, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 525, 526, 604, 0, 0, - 0, 572, 0, 527, 0, 0, 520, 521, 523, 522, - 524, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 247, 0, 304, 0, 571, 0, 0, 431, 0, - 0, 569, 0, 0, 0, 0, 274, 0, 271, 171, - 187, 0, 0, 314, 354, 360, 0, 0, 0, 210, - 0, 358, 328, 416, 194, 237, 351, 333, 356, 0, - 0, 357, 280, 404, 346, 414, 432, 433, 217, 308, - 422, 393, 428, 443, 188, 214, 322, 386, 419, 377, - 301, 400, 401, 270, 376, 245, 174, 278, 440, 186, - 366, 202, 179, 388, 412, 199, 369, 0, 0, 445, - 181, 410, 385, 298, 267, 268, 180, 0, 350, 222, - 243, 212, 317, 407, 408, 211, 446, 190, 427, 183, - 0, 426, 310, 403, 411, 299, 290, 182, 409, 297, - 289, 273, 233, 254, 344, 283, 345, 255, 306, 305, - 307, 0, 177, 0, 382, 420, 447, 195, 196, 197, - 0, 232, 236, 242, 244, 250, 251, 258, 276, 321, - 343, 341, 347, 0, 398, 415, 423, 430, 436, 437, - 441, 438, 439, 442, 309, 257, 378, 272, 281, 0, - 0, 327, 359, 200, 418, 379, 559, 570, 565, 566, - 563, 564, 558, 562, 561, 560, 573, 550, 551, 552, - 553, 555, 0, 567, 568, 554, 170, 184, 277, 0, - 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, + 215, 230, 238, 248, 253, 256, 261, 262, 265, 270, + 288, 293, 294, 295, 296, 312, 313, 314, 317, 320, + 321, 324, 326, 327, 330, 337, 338, 339, 340, 341, + 343, 350, 354, 362, 363, 364, 365, 366, 368, 369, + 373, 374, 375, 376, 384, 388, 406, 407, 418, 430, + 435, 249, 414, 436, 0, 287, 0, 0, 289, 234, + 252, 263, 0, 425, 385, 189, 356, 241, 178, 206, + 192, 213, 228, 231, 267, 297, 303, 332, 336, 246, + 225, 204, 353, 201, 371, 391, 392, 393, 395, 301, + 220, 335, 396, 0, 285, 397, 398, 259, 0, 0, + 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 276, 221, + 0, 0, 333, 0, 176, 0, 372, 209, 286, 283, + 403, 235, 227, 223, 208, 260, 292, 331, 390, 325, + 0, 280, 0, 0, 381, 304, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 266, 207, 175, 316, 382, 239, 0, 0, 0, + 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 264, + 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 984, 983, 993, 994, 986, 987, 988, 989, 990, + 991, 992, 985, 0, 0, 995, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 305, 0, 0, 0, 0, 432, 0, + 0, 0, 0, 0, 0, 0, 275, 0, 272, 171, + 187, 0, 0, 315, 355, 361, 0, 0, 0, 210, + 0, 359, 329, 417, 194, 237, 352, 334, 357, 0, + 0, 358, 281, 405, 347, 415, 433, 434, 217, 309, + 423, 394, 429, 444, 188, 214, 323, 387, 420, 378, + 302, 401, 402, 271, 377, 245, 174, 279, 441, 186, + 367, 202, 179, 389, 413, 199, 370, 0, 0, 446, + 181, 411, 386, 299, 268, 269, 180, 0, 351, 222, + 243, 212, 318, 408, 409, 211, 447, 190, 428, 183, + 0, 427, 311, 404, 412, 300, 291, 182, 410, 298, + 290, 274, 233, 254, 345, 284, 346, 255, 307, 306, + 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 277, 322, + 344, 342, 348, 0, 399, 416, 424, 431, 437, 438, + 442, 439, 440, 443, 310, 257, 379, 273, 282, 0, + 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 278, 0, + 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, - 256, 260, 261, 264, 269, 287, 292, 293, 294, 295, - 311, 312, 313, 316, 319, 320, 323, 325, 326, 329, - 336, 337, 338, 339, 340, 342, 349, 353, 361, 362, - 363, 364, 365, 367, 368, 372, 373, 374, 375, 383, - 387, 405, 406, 417, 429, 434, 249, 413, 435, 0, - 286, 0, 0, 288, 234, 252, 262, 0, 424, 384, - 189, 355, 241, 178, 206, 192, 213, 228, 231, 266, - 296, 302, 331, 335, 246, 225, 204, 352, 201, 370, - 390, 391, 392, 394, 300, 220, 334, 584, 395, 284, - 396, 397, 0, 0, 0, 0, 0, 0, 0, 0, - 318, 0, 0, 0, 0, 514, 0, 0, 0, 224, - 513, 0, 0, 0, 275, 221, 0, 0, 332, 0, - 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, - 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, - 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, - 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 315, 381, 239, 71, 0, 0, 167, 168, 169, 535, - 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, - 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 511, 528, - 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 525, 526, 0, 0, 0, 0, 572, 0, 527, - 0, 0, 520, 521, 523, 522, 524, 529, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, - 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, - 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, - 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, - 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, - 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, - 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, - 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, - 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, - 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, - 408, 211, 446, 190, 427, 183, 0, 426, 310, 403, - 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, - 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, - 382, 420, 447, 195, 196, 197, 0, 232, 236, 242, - 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, - 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, - 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, - 418, 379, 559, 570, 565, 566, 563, 564, 558, 562, - 561, 560, 573, 550, 551, 552, 553, 555, 0, 567, - 568, 554, 170, 184, 277, 0, 348, 240, 444, 425, - 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 256, 261, 262, 265, 270, 288, 293, 294, 295, 296, + 312, 313, 314, 317, 320, 321, 324, 326, 327, 330, + 337, 338, 339, 340, 341, 343, 350, 354, 362, 363, + 364, 365, 366, 368, 369, 373, 374, 375, 376, 384, + 388, 406, 407, 418, 430, 435, 249, 414, 436, 0, + 287, 0, 0, 289, 234, 252, 263, 0, 425, 385, + 189, 356, 241, 178, 206, 192, 213, 228, 231, 267, + 297, 303, 332, 336, 246, 225, 204, 353, 201, 371, + 391, 392, 393, 395, 301, 220, 335, 396, 0, 285, + 397, 398, 259, 0, 0, 0, 0, 0, 0, 319, + 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, + 0, 0, 0, 276, 221, 0, 0, 333, 0, 176, + 0, 372, 209, 286, 283, 403, 235, 227, 223, 208, + 260, 292, 331, 390, 325, 0, 280, 0, 0, 381, + 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 266, 207, 175, 316, + 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, + 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, + 0, 0, 0, 219, 264, 226, 218, 400, 0, 0, + 0, 191, 0, 812, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 247, 0, 305, 0, + 0, 0, 811, 432, 0, 0, 0, 0, 0, 808, + 809, 275, 774, 272, 171, 187, 802, 806, 315, 355, + 361, 0, 0, 0, 210, 0, 359, 329, 417, 194, + 237, 352, 334, 357, 0, 0, 358, 281, 405, 347, + 415, 433, 434, 217, 309, 423, 394, 429, 444, 188, + 214, 323, 387, 420, 378, 302, 401, 402, 271, 377, + 245, 174, 279, 441, 186, 367, 202, 179, 389, 413, + 199, 370, 0, 0, 446, 181, 411, 386, 299, 268, + 269, 180, 0, 351, 222, 243, 212, 318, 408, 409, + 211, 447, 190, 428, 183, 0, 427, 311, 404, 412, + 300, 291, 182, 410, 298, 290, 274, 233, 254, 345, + 284, 346, 255, 307, 306, 308, 0, 177, 0, 383, + 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, + 250, 251, 258, 277, 322, 344, 342, 348, 0, 399, + 416, 424, 431, 437, 438, 442, 439, 440, 443, 310, + 257, 379, 273, 282, 0, 0, 328, 360, 200, 419, + 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 170, 184, 278, 0, 349, 240, 445, 426, 422, + 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, - 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, - 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, - 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, - 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, - 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, - 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, - 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, - 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, - 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, - 514, 0, 0, 0, 224, 513, 0, 0, 0, 275, - 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, - 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, - 0, 167, 168, 169, 535, 534, 537, 538, 539, 540, - 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, - 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 511, 528, 0, 556, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 525, 526, 0, 0, - 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, - 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 304, 0, 571, 0, 0, 431, - 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, - 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, - 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, - 0, 0, 327, 359, 200, 418, 379, 559, 570, 565, - 566, 563, 564, 558, 562, 561, 560, 573, 550, 551, - 552, 553, 555, 0, 567, 568, 554, 170, 184, 277, - 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, + 215, 230, 238, 248, 253, 256, 261, 262, 265, 270, + 288, 293, 294, 295, 296, 312, 313, 314, 317, 320, + 321, 324, 326, 327, 330, 337, 338, 339, 340, 341, + 343, 350, 354, 362, 363, 364, 365, 366, 368, 369, + 373, 374, 375, 376, 384, 388, 406, 407, 418, 430, + 435, 249, 414, 436, 0, 287, 0, 0, 289, 234, + 252, 263, 0, 425, 385, 189, 356, 241, 178, 206, + 192, 213, 228, 231, 267, 297, 303, 332, 336, 246, + 225, 204, 353, 201, 371, 391, 392, 393, 395, 301, + 220, 335, 396, 0, 285, 397, 398, 259, 0, 0, + 0, 0, 0, 0, 319, 0, 0, 0, 1087, 0, + 0, 0, 0, 224, 0, 0, 0, 0, 276, 221, + 0, 0, 333, 0, 176, 0, 372, 209, 286, 283, + 403, 235, 227, 223, 208, 260, 292, 331, 390, 325, + 0, 280, 0, 0, 381, 304, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 266, 207, 175, 316, 382, 239, 0, 0, 0, + 167, 168, 169, 0, 1089, 0, 0, 0, 0, 0, + 0, 198, 0, 205, 0, 0, 0, 0, 219, 264, + 226, 218, 400, 0, 0, 0, 191, 0, 0, 973, + 974, 972, 0, 0, 0, 0, 0, 0, 0, 229, + 0, 0, 0, 0, 0, 0, 0, 975, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 247, 0, 305, 0, 0, 0, 0, 432, 0, + 0, 0, 0, 0, 0, 0, 275, 0, 272, 171, + 187, 0, 0, 315, 355, 361, 0, 0, 0, 210, + 0, 359, 329, 417, 194, 237, 352, 334, 357, 0, + 0, 358, 281, 405, 347, 415, 433, 434, 217, 309, + 423, 394, 429, 444, 188, 214, 323, 387, 420, 378, + 302, 401, 402, 271, 377, 245, 174, 279, 441, 186, + 367, 202, 179, 389, 413, 199, 370, 0, 0, 446, + 181, 411, 386, 299, 268, 269, 180, 0, 351, 222, + 243, 212, 318, 408, 409, 211, 447, 190, 428, 183, + 0, 427, 311, 404, 412, 300, 291, 182, 410, 298, + 290, 274, 233, 254, 345, 284, 346, 255, 307, 306, + 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, + 0, 232, 236, 242, 244, 250, 251, 258, 277, 322, + 344, 342, 348, 0, 399, 416, 424, 431, 437, 438, + 442, 439, 440, 443, 310, 257, 379, 273, 282, 0, + 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 170, 184, 278, 0, + 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, - 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, - 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, - 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, - 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, - 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, - 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, - 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 315, 381, 239, 71, 0, 0, 167, 168, 169, 535, - 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, - 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 0, 528, - 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 525, 526, 0, 0, 0, 0, 572, 0, 527, - 0, 0, 520, 521, 523, 522, 524, 529, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, - 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, - 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, - 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, - 194, 237, 351, 333, 356, 2273, 0, 357, 280, 404, - 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, - 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, - 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, - 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, - 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, - 408, 211, 446, 190, 427, 183, 0, 426, 310, 403, - 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, - 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, - 382, 420, 447, 195, 196, 197, 0, 232, 236, 242, - 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, - 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, - 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, - 418, 379, 559, 570, 565, 566, 563, 564, 558, 562, - 561, 560, 573, 550, 551, 552, 553, 555, 0, 567, - 568, 554, 170, 184, 277, 0, 348, 240, 444, 425, - 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 172, 173, 185, 193, 203, 215, 230, 238, 248, 253, + 256, 261, 262, 265, 270, 288, 293, 294, 295, 296, + 312, 313, 314, 317, 320, 321, 324, 326, 327, 330, + 337, 338, 339, 340, 341, 343, 350, 354, 362, 363, + 364, 365, 366, 368, 369, 373, 374, 375, 376, 384, + 388, 406, 407, 418, 430, 435, 249, 414, 436, 0, + 287, 0, 0, 289, 234, 252, 263, 0, 425, 385, + 189, 356, 241, 178, 206, 192, 213, 228, 231, 267, + 297, 303, 332, 336, 246, 225, 204, 353, 201, 371, + 391, 392, 393, 395, 301, 220, 335, 35, 396, 285, + 397, 398, 259, 0, 0, 0, 0, 0, 0, 0, + 319, 0, 0, 0, 0, 0, 0, 0, 0, 224, + 0, 0, 0, 0, 276, 221, 0, 0, 333, 0, + 176, 0, 372, 209, 286, 283, 403, 235, 227, 223, + 208, 260, 292, 331, 390, 325, 0, 280, 0, 0, + 381, 304, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 266, 207, 175, + 316, 382, 239, 71, 0, 592, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 264, 226, 218, 400, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, - 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, - 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, - 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, - 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, - 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, - 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, - 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, - 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, - 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 557, 279, 0, 0, 380, 303, 0, 0, 0, - 0, 0, 548, 549, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 315, 381, 239, 71, 0, - 591, 167, 168, 169, 535, 534, 537, 538, 539, 540, - 0, 0, 198, 536, 205, 541, 542, 543, 0, 219, - 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, - 0, 0, 0, 0, 528, 0, 556, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 525, 526, 0, 0, - 0, 0, 572, 0, 527, 0, 0, 520, 521, 523, - 522, 524, 529, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 304, 0, 571, 0, 0, 431, - 0, 0, 569, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, - 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, - 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, - 0, 0, 327, 359, 200, 418, 379, 559, 570, 565, - 566, 563, 564, 558, 562, 561, 560, 573, 550, 551, - 552, 553, 555, 0, 567, 568, 554, 170, 184, 277, - 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, - 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, - 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, - 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, - 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, - 208, 259, 291, 330, 389, 324, 557, 279, 0, 0, - 380, 303, 0, 0, 0, 0, 0, 548, 549, 0, - 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 315, 381, 239, 71, 0, 0, 167, 168, 169, 535, - 534, 537, 538, 539, 540, 0, 0, 198, 536, 205, - 541, 542, 543, 0, 219, 263, 226, 218, 399, 0, - 0, 0, 191, 0, 0, 0, 0, 0, 0, 528, - 0, 556, 0, 0, 0, 229, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 525, 526, 0, 0, 0, 0, 572, 0, 527, - 0, 0, 520, 521, 523, 522, 524, 529, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, - 0, 571, 0, 0, 431, 0, 0, 569, 0, 0, - 0, 0, 274, 0, 271, 171, 187, 0, 0, 314, - 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, - 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, - 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, - 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, - 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, - 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, - 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, - 408, 211, 446, 190, 427, 183, 0, 426, 310, 403, - 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, - 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, - 382, 420, 447, 195, 196, 197, 0, 232, 236, 242, - 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, - 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, - 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, - 418, 379, 559, 570, 565, 566, 563, 564, 558, 562, - 561, 560, 573, 550, 551, 552, 553, 555, 0, 567, - 568, 554, 170, 184, 277, 0, 348, 240, 444, 425, - 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 0, 305, + 0, 0, 0, 0, 432, 0, 0, 0, 0, 0, + 0, 0, 275, 0, 272, 171, 187, 0, 0, 315, + 355, 361, 0, 0, 0, 210, 0, 359, 329, 417, + 194, 237, 352, 334, 357, 0, 0, 358, 281, 405, + 347, 415, 433, 434, 217, 309, 423, 394, 429, 444, + 188, 214, 323, 387, 420, 378, 302, 401, 402, 271, + 377, 245, 174, 279, 441, 186, 367, 202, 179, 389, + 413, 199, 370, 0, 0, 446, 181, 411, 386, 299, + 268, 269, 180, 0, 351, 222, 243, 212, 318, 408, + 409, 211, 447, 190, 428, 183, 0, 427, 311, 404, + 412, 300, 291, 182, 410, 298, 290, 274, 233, 254, + 345, 284, 346, 255, 307, 306, 308, 0, 177, 0, + 383, 421, 448, 195, 196, 197, 0, 232, 236, 242, + 244, 250, 251, 258, 277, 322, 344, 342, 348, 0, + 399, 416, 424, 431, 437, 438, 442, 439, 440, 443, + 310, 257, 379, 273, 282, 0, 0, 328, 360, 200, + 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 278, 0, 349, 240, 445, 426, + 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, - 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, - 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, - 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, - 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, - 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, - 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, - 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, - 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, - 0, 0, 0, 0, 0, 318, 0, 0, 0, 0, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, - 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, + 203, 215, 230, 238, 248, 253, 256, 261, 262, 265, + 270, 288, 293, 294, 295, 296, 312, 313, 314, 317, + 320, 321, 324, 326, 327, 330, 337, 338, 339, 340, + 341, 343, 350, 354, 362, 363, 364, 365, 366, 368, + 369, 373, 374, 375, 376, 384, 388, 406, 407, 418, + 430, 435, 249, 414, 436, 0, 287, 0, 0, 289, + 234, 252, 263, 0, 425, 385, 189, 356, 241, 178, + 206, 192, 213, 228, 231, 267, 297, 303, 332, 336, + 246, 225, 204, 353, 201, 371, 391, 392, 393, 395, + 301, 220, 335, 396, 0, 285, 397, 398, 259, 0, + 0, 0, 0, 0, 0, 319, 0, 0, 0, 1456, + 0, 0, 0, 0, 224, 0, 0, 0, 0, 276, + 221, 0, 0, 333, 0, 176, 0, 372, 209, 286, + 283, 403, 235, 227, 223, 208, 260, 292, 331, 390, + 325, 0, 280, 0, 0, 381, 304, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 266, 207, 175, 316, 382, 239, 0, 0, + 0, 167, 168, 169, 0, 1270, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, + 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 983, 982, 992, 993, 985, 986, 987, 988, - 989, 990, 991, 984, 0, 0, 994, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 304, 0, 0, 0, 0, 431, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, - 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, - 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, - 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, - 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 0, 305, 0, 0, 0, 0, 432, + 0, 0, 0, 0, 0, 0, 0, 275, 0, 272, + 171, 187, 0, 0, 315, 355, 361, 0, 0, 0, + 210, 0, 359, 329, 417, 194, 237, 352, 334, 357, + 0, 1454, 358, 281, 405, 347, 415, 433, 434, 217, + 309, 423, 394, 429, 444, 188, 214, 323, 387, 420, + 378, 302, 401, 402, 271, 377, 245, 174, 279, 441, + 186, 367, 202, 179, 389, 413, 199, 370, 0, 0, + 446, 181, 411, 386, 299, 268, 269, 180, 0, 351, + 222, 243, 212, 318, 408, 409, 211, 447, 190, 428, + 183, 0, 427, 311, 404, 412, 300, 291, 182, 410, + 298, 290, 274, 233, 254, 345, 284, 346, 255, 307, + 306, 308, 0, 177, 0, 383, 421, 448, 195, 196, + 197, 0, 232, 236, 242, 244, 250, 251, 258, 277, + 322, 344, 342, 348, 0, 399, 416, 424, 431, 437, + 438, 442, 439, 440, 443, 310, 257, 379, 273, 282, + 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 278, + 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 395, 0, - 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, - 318, 0, 0, 0, 0, 0, 0, 0, 0, 224, - 0, 0, 0, 0, 275, 221, 0, 0, 332, 0, - 176, 0, 371, 209, 285, 282, 402, 235, 227, 223, - 208, 259, 291, 330, 389, 324, 0, 279, 0, 0, - 380, 303, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 265, 207, 175, - 315, 381, 239, 0, 0, 0, 167, 168, 169, 0, + 253, 256, 261, 262, 265, 270, 288, 293, 294, 295, + 296, 312, 313, 314, 317, 320, 321, 324, 326, 327, + 330, 337, 338, 339, 340, 341, 343, 350, 354, 362, + 363, 364, 365, 366, 368, 369, 373, 374, 375, 376, + 384, 388, 406, 407, 418, 430, 435, 249, 414, 436, + 0, 287, 0, 0, 289, 234, 252, 263, 0, 425, + 385, 189, 356, 241, 178, 206, 192, 213, 228, 231, + 267, 297, 303, 332, 336, 246, 225, 204, 353, 201, + 371, 391, 392, 393, 395, 301, 220, 335, 396, 0, + 285, 397, 398, 259, 0, 0, 0, 0, 0, 0, + 319, 0, 0, 0, 0, 0, 0, 0, 0, 224, + 0, 0, 0, 0, 276, 221, 0, 0, 333, 0, + 176, 0, 372, 209, 286, 283, 403, 235, 227, 223, + 208, 260, 292, 331, 390, 325, 0, 280, 0, 0, + 381, 304, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 266, 207, 175, + 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, - 0, 0, 0, 0, 219, 263, 226, 218, 399, 0, - 0, 0, 191, 0, 811, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 219, 264, 226, 218, 400, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, + 0, 0, 0, 0, 768, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 0, 305, + 0, 0, 0, 0, 432, 0, 0, 0, 0, 0, + 0, 0, 275, 774, 272, 171, 187, 772, 0, 315, + 355, 361, 0, 0, 0, 210, 0, 359, 329, 417, + 194, 237, 352, 334, 357, 0, 0, 358, 281, 405, + 347, 415, 433, 434, 217, 309, 423, 394, 429, 444, + 188, 214, 323, 387, 420, 378, 302, 401, 402, 271, + 377, 245, 174, 279, 441, 186, 367, 202, 179, 389, + 413, 199, 370, 0, 0, 446, 181, 411, 386, 299, + 268, 269, 180, 0, 351, 222, 243, 212, 318, 408, + 409, 211, 447, 190, 428, 183, 0, 427, 311, 404, + 412, 300, 291, 182, 410, 298, 290, 274, 233, 254, + 345, 284, 346, 255, 307, 306, 308, 0, 177, 0, + 383, 421, 448, 195, 196, 197, 0, 232, 236, 242, + 244, 250, 251, 258, 277, 322, 344, 342, 348, 0, + 399, 416, 424, 431, 437, 438, 442, 439, 440, 443, + 310, 257, 379, 273, 282, 0, 0, 328, 360, 200, + 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 278, 0, 349, 240, 445, 426, + 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 230, 238, 248, 253, 256, 261, 262, 265, + 270, 288, 293, 294, 295, 296, 312, 313, 314, 317, + 320, 321, 324, 326, 327, 330, 337, 338, 339, 340, + 341, 343, 350, 354, 362, 363, 364, 365, 366, 368, + 369, 373, 374, 375, 376, 384, 388, 406, 407, 418, + 430, 435, 249, 414, 436, 0, 287, 0, 0, 289, + 234, 252, 263, 0, 425, 385, 189, 356, 241, 178, + 206, 192, 213, 228, 231, 267, 297, 303, 332, 336, + 246, 225, 204, 353, 201, 371, 391, 392, 393, 395, + 301, 220, 335, 396, 0, 285, 397, 398, 259, 0, + 0, 0, 0, 0, 0, 319, 0, 0, 0, 1456, + 0, 0, 0, 0, 224, 0, 0, 0, 0, 276, + 221, 0, 0, 333, 0, 176, 0, 372, 209, 286, + 283, 403, 235, 227, 223, 208, 260, 292, 331, 390, + 325, 0, 280, 0, 0, 381, 304, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 266, 207, 175, 316, 382, 239, 0, 0, + 0, 167, 168, 169, 0, 1270, 0, 0, 0, 0, + 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, + 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 247, 0, 304, - 0, 0, 0, 810, 431, 0, 0, 0, 0, 0, - 807, 808, 274, 773, 271, 171, 187, 801, 805, 314, - 354, 360, 0, 0, 0, 210, 0, 358, 328, 416, - 194, 237, 351, 333, 356, 0, 0, 357, 280, 404, - 346, 414, 432, 433, 217, 308, 422, 393, 428, 443, - 188, 214, 322, 386, 419, 377, 301, 400, 401, 270, - 376, 245, 174, 278, 440, 186, 366, 202, 179, 388, - 412, 199, 369, 0, 0, 445, 181, 410, 385, 298, - 267, 268, 180, 0, 350, 222, 243, 212, 317, 407, - 408, 211, 446, 190, 427, 183, 0, 426, 310, 403, - 411, 299, 290, 182, 409, 297, 289, 273, 233, 254, - 344, 283, 345, 255, 306, 305, 307, 0, 177, 0, - 382, 420, 447, 195, 196, 197, 0, 232, 236, 242, - 244, 250, 251, 258, 276, 321, 343, 341, 347, 0, - 398, 415, 423, 430, 436, 437, 441, 438, 439, 442, - 309, 257, 378, 272, 281, 0, 0, 327, 359, 200, - 418, 379, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 170, 184, 277, 0, 348, 240, 444, 425, - 421, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, - 203, 215, 230, 238, 248, 253, 256, 260, 261, 264, - 269, 287, 292, 293, 294, 295, 311, 312, 313, 316, - 319, 320, 323, 325, 326, 329, 336, 337, 338, 339, - 340, 342, 349, 353, 361, 362, 363, 364, 365, 367, - 368, 372, 373, 374, 375, 383, 387, 405, 406, 417, - 429, 434, 249, 413, 435, 0, 286, 0, 0, 288, - 234, 252, 262, 0, 424, 384, 189, 355, 241, 178, - 206, 192, 213, 228, 231, 266, 296, 302, 331, 335, - 246, 225, 204, 352, 201, 370, 390, 391, 392, 394, - 300, 220, 334, 395, 0, 284, 396, 397, 0, 0, - 0, 0, 0, 0, 0, 318, 0, 0, 0, 1086, - 0, 0, 0, 0, 224, 0, 0, 0, 0, 275, - 221, 0, 0, 332, 0, 176, 0, 371, 209, 285, - 282, 402, 235, 227, 223, 208, 259, 291, 330, 389, - 324, 0, 279, 0, 0, 380, 303, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 265, 207, 175, 315, 381, 239, 0, 0, - 0, 167, 168, 169, 0, 1088, 0, 0, 0, 0, - 0, 0, 198, 0, 205, 0, 0, 0, 0, 219, - 263, 226, 218, 399, 0, 0, 0, 191, 0, 0, - 972, 973, 971, 0, 0, 0, 0, 0, 0, 0, - 229, 0, 0, 0, 0, 0, 0, 0, 974, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 247, 0, 304, 0, 0, 0, 0, 431, - 0, 0, 0, 0, 0, 0, 0, 274, 0, 271, - 171, 187, 0, 0, 314, 354, 360, 0, 0, 0, - 210, 0, 358, 328, 416, 194, 237, 351, 333, 356, - 0, 0, 357, 280, 404, 346, 414, 432, 433, 217, - 308, 422, 393, 428, 443, 188, 214, 322, 386, 419, - 377, 301, 400, 401, 270, 376, 245, 174, 278, 440, - 186, 366, 202, 179, 388, 412, 199, 369, 0, 0, - 445, 181, 410, 385, 298, 267, 268, 180, 0, 350, - 222, 243, 212, 317, 407, 408, 211, 446, 190, 427, - 183, 0, 426, 310, 403, 411, 299, 290, 182, 409, - 297, 289, 273, 233, 254, 344, 283, 345, 255, 306, - 305, 307, 0, 177, 0, 382, 420, 447, 195, 196, - 197, 0, 232, 236, 242, 244, 250, 251, 258, 276, - 321, 343, 341, 347, 0, 398, 415, 423, 430, 436, - 437, 441, 438, 439, 442, 309, 257, 378, 272, 281, - 0, 0, 327, 359, 200, 418, 379, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 170, 184, 277, - 0, 348, 240, 444, 425, 421, 0, 0, 216, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 247, 0, 305, 0, 0, 0, 0, 432, + 0, 0, 0, 0, 0, 0, 0, 275, 0, 272, + 171, 187, 0, 0, 315, 355, 361, 0, 0, 0, + 210, 0, 359, 329, 417, 194, 237, 352, 334, 357, + 0, 0, 358, 281, 405, 347, 415, 433, 434, 217, + 309, 423, 394, 429, 444, 188, 214, 323, 387, 420, + 378, 302, 401, 402, 271, 377, 245, 174, 279, 441, + 186, 367, 202, 179, 389, 413, 199, 370, 0, 0, + 446, 181, 411, 386, 299, 268, 269, 180, 0, 351, + 222, 243, 212, 318, 408, 409, 211, 447, 190, 428, + 183, 0, 427, 311, 404, 412, 300, 291, 182, 410, + 298, 290, 274, 233, 254, 345, 284, 346, 255, 307, + 306, 308, 0, 177, 0, 383, 421, 448, 195, 196, + 197, 0, 232, 236, 242, 244, 250, 251, 258, 277, + 322, 344, 342, 348, 0, 399, 416, 424, 431, 437, + 438, 442, 439, 440, 443, 310, 257, 379, 273, 282, + 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 170, 184, 278, + 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, 248, - 253, 256, 260, 261, 264, 269, 287, 292, 293, 294, - 295, 311, 312, 313, 316, 319, 320, 323, 325, 326, - 329, 336, 337, 338, 339, 340, 342, 349, 353, 361, - 362, 363, 364, 365, 367, 368, 372, 373, 374, 375, - 383, 387, 405, 406, 417, 429, 434, 249, 413, 435, - 0, 286, 0, 0, 288, 234, 252, 262, 0, 424, - 384, 189, 355, 241, 178, 206, 192, 213, 228, 231, - 266, 296, 302, 331, 335, 246, 225, 204, 352, 201, - 370, 390, 391, 392, 394, 300, 220, 334, 35, 395, - 284, 396, 397, 0, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, - 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, - 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, - 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 315, 381, 239, 71, 0, 591, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, - 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, + 253, 256, 261, 262, 265, 270, 288, 293, 294, 295, + 296, 312, 313, 314, 317, 320, 321, 324, 326, 327, + 330, 337, 338, 339, 340, 341, 343, 350, 354, 362, + 363, 364, 365, 366, 368, 369, 373, 374, 375, 376, + 384, 388, 406, 407, 418, 430, 435, 249, 414, 436, + 0, 287, 0, 0, 289, 234, 252, 263, 0, 425, + 385, 189, 356, 241, 178, 206, 192, 213, 228, 231, + 267, 297, 303, 332, 336, 246, 225, 204, 353, 201, + 371, 391, 392, 393, 395, 301, 220, 335, 396, 0, + 285, 397, 398, 259, 0, 0, 0, 0, 0, 0, + 319, 0, 0, 0, 0, 0, 0, 0, 0, 224, + 0, 0, 0, 0, 276, 221, 0, 0, 333, 0, + 176, 0, 372, 209, 286, 283, 403, 235, 227, 223, + 208, 260, 292, 331, 390, 325, 0, 280, 0, 0, + 381, 304, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 266, 207, 175, + 316, 382, 239, 0, 0, 592, 167, 168, 169, 0, + 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, + 0, 0, 0, 0, 219, 264, 226, 218, 400, 0, + 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 304, 0, 0, 0, 0, 431, 0, 0, 0, 0, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, - 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, - 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, - 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, - 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, - 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, - 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, - 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, - 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, - 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, - 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, - 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, - 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, - 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, - 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 247, 0, 305, + 0, 0, 0, 0, 432, 0, 0, 0, 2144, 0, + 0, 0, 275, 0, 272, 171, 187, 0, 0, 315, + 355, 361, 0, 0, 0, 210, 0, 359, 329, 417, + 194, 237, 352, 334, 357, 0, 0, 358, 281, 405, + 347, 415, 433, 434, 217, 309, 423, 394, 429, 444, + 188, 214, 323, 387, 420, 378, 302, 401, 402, 271, + 377, 245, 174, 279, 441, 186, 367, 202, 179, 389, + 413, 199, 370, 0, 0, 446, 181, 411, 386, 299, + 268, 269, 180, 0, 351, 222, 243, 212, 318, 408, + 409, 211, 447, 190, 428, 183, 0, 427, 311, 404, + 412, 300, 291, 182, 410, 298, 290, 274, 233, 254, + 345, 284, 346, 255, 307, 306, 308, 0, 177, 0, + 383, 421, 448, 195, 196, 197, 0, 232, 236, 242, + 244, 250, 251, 258, 277, 322, 344, 342, 348, 0, + 399, 416, 424, 431, 437, 438, 442, 439, 440, 443, + 310, 257, 379, 273, 282, 0, 0, 328, 360, 200, + 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 170, 184, 278, 0, 349, 240, 445, 426, + 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, - 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, - 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, - 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, - 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, - 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, - 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, - 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, - 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, - 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, - 1455, 0, 0, 0, 0, 224, 0, 0, 0, 0, - 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, - 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, - 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, - 0, 0, 167, 168, 169, 0, 1269, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, + 203, 215, 230, 238, 248, 253, 256, 261, 262, 265, + 270, 288, 293, 294, 295, 296, 312, 313, 314, 317, + 320, 321, 324, 326, 327, 330, 337, 338, 339, 340, + 341, 343, 350, 354, 362, 363, 364, 365, 366, 368, + 369, 373, 374, 375, 376, 384, 388, 406, 407, 418, + 430, 435, 249, 414, 436, 0, 287, 0, 0, 289, + 234, 252, 263, 0, 425, 385, 189, 356, 241, 178, + 206, 192, 213, 228, 231, 267, 297, 303, 332, 336, + 246, 225, 204, 353, 201, 371, 391, 392, 393, 395, + 301, 220, 335, 35, 396, 285, 397, 398, 259, 0, + 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 71, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, - 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, - 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, - 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, - 356, 0, 1453, 357, 280, 404, 346, 414, 432, 433, - 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, - 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, - 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, - 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, - 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, - 427, 183, 0, 426, 310, 403, 411, 299, 290, 182, - 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, - 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, - 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, - 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, - 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, + 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, - 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, - 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, - 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, - 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, - 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, - 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, - 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, - 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, - 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, - 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, - 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, - 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, - 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 315, 381, 239, 0, 0, 0, 167, 168, 169, - 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, + 0, 0, 1475, 0, 0, 1476, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, - 0, 0, 0, 0, 0, 767, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 304, 0, 0, 0, 0, 431, 0, 0, 0, 0, - 0, 0, 0, 274, 773, 271, 171, 187, 771, 0, - 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, - 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, - 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, - 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, - 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, - 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, - 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, - 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, - 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, - 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, - 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, - 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, - 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, - 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, - 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, - 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, - 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, - 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, - 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, - 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, - 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, - 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, - 394, 300, 220, 334, 395, 0, 284, 396, 397, 0, - 0, 0, 0, 0, 0, 0, 318, 0, 0, 0, - 1455, 0, 0, 0, 0, 224, 0, 0, 0, 0, - 275, 221, 0, 0, 332, 0, 176, 0, 371, 209, - 285, 282, 402, 235, 227, 223, 208, 259, 291, 330, - 389, 324, 0, 279, 0, 0, 380, 303, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 265, 207, 175, 315, 381, 239, 0, - 0, 0, 167, 168, 169, 0, 1269, 0, 0, 0, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 396, 0, 285, 397, 398, 259, + 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 1120, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 1119, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, - 219, 263, 226, 218, 399, 0, 0, 0, 191, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 247, 0, 304, 0, 0, 0, 0, - 431, 0, 0, 0, 0, 0, 0, 0, 274, 0, - 271, 171, 187, 0, 0, 314, 354, 360, 0, 0, - 0, 210, 0, 358, 328, 416, 194, 237, 351, 333, - 356, 0, 0, 357, 280, 404, 346, 414, 432, 433, - 217, 308, 422, 393, 428, 443, 188, 214, 322, 386, - 419, 377, 301, 400, 401, 270, 376, 245, 174, 278, - 440, 186, 366, 202, 179, 388, 412, 199, 369, 0, - 0, 445, 181, 410, 385, 298, 267, 268, 180, 0, - 350, 222, 243, 212, 317, 407, 408, 211, 446, 190, - 427, 183, 0, 426, 310, 403, 411, 299, 290, 182, - 409, 297, 289, 273, 233, 254, 344, 283, 345, 255, - 306, 305, 307, 0, 177, 0, 382, 420, 447, 195, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, - 276, 321, 343, 341, 347, 0, 398, 415, 423, 430, - 436, 437, 441, 438, 439, 442, 309, 257, 378, 272, - 281, 0, 0, 327, 359, 200, 418, 379, 0, 0, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, - 277, 0, 348, 240, 444, 425, 421, 0, 0, 216, + 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, - 248, 253, 256, 260, 261, 264, 269, 287, 292, 293, - 294, 295, 311, 312, 313, 316, 319, 320, 323, 325, - 326, 329, 336, 337, 338, 339, 340, 342, 349, 353, - 361, 362, 363, 364, 365, 367, 368, 372, 373, 374, - 375, 383, 387, 405, 406, 417, 429, 434, 249, 413, - 435, 0, 286, 0, 0, 288, 234, 252, 262, 0, - 424, 384, 189, 355, 241, 178, 206, 192, 213, 228, - 231, 266, 296, 302, 331, 335, 246, 225, 204, 352, - 201, 370, 390, 391, 392, 394, 300, 220, 334, 395, - 0, 284, 396, 397, 0, 0, 0, 0, 0, 0, - 0, 318, 0, 0, 0, 0, 0, 0, 0, 0, - 224, 0, 0, 0, 0, 275, 221, 0, 0, 332, - 0, 176, 0, 371, 209, 285, 282, 402, 235, 227, - 223, 208, 259, 291, 330, 389, 324, 0, 279, 0, - 0, 380, 303, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 265, 207, - 175, 315, 381, 239, 0, 0, 591, 167, 168, 169, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, - 205, 0, 0, 0, 0, 219, 263, 226, 218, 399, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, - 304, 0, 0, 0, 0, 431, 0, 0, 0, 2143, - 0, 0, 0, 274, 0, 271, 171, 187, 0, 0, - 314, 354, 360, 0, 0, 0, 210, 0, 358, 328, - 416, 194, 237, 351, 333, 356, 0, 0, 357, 280, - 404, 346, 414, 432, 433, 217, 308, 422, 393, 428, - 443, 188, 214, 322, 386, 419, 377, 301, 400, 401, - 270, 376, 245, 174, 278, 440, 186, 366, 202, 179, - 388, 412, 199, 369, 0, 0, 445, 181, 410, 385, - 298, 267, 268, 180, 0, 350, 222, 243, 212, 317, - 407, 408, 211, 446, 190, 427, 183, 0, 426, 310, - 403, 411, 299, 290, 182, 409, 297, 289, 273, 233, - 254, 344, 283, 345, 255, 306, 305, 307, 0, 177, - 0, 382, 420, 447, 195, 196, 197, 0, 232, 236, - 242, 244, 250, 251, 258, 276, 321, 343, 341, 347, - 0, 398, 415, 423, 430, 436, 437, 441, 438, 439, - 442, 309, 257, 378, 272, 281, 0, 0, 327, 359, - 200, 418, 379, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 170, 184, 277, 0, 348, 240, 444, - 425, 421, 0, 0, 216, 0, 0, 0, 0, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 2239, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, - 193, 203, 215, 230, 238, 248, 253, 256, 260, 261, - 264, 269, 287, 292, 293, 294, 295, 311, 312, 313, - 316, 319, 320, 323, 325, 326, 329, 336, 337, 338, - 339, 340, 342, 349, 353, 361, 362, 363, 364, 365, - 367, 368, 372, 373, 374, 375, 383, 387, 405, 406, - 417, 429, 434, 249, 413, 435, 0, 286, 0, 0, - 288, 234, 252, 262, 0, 424, 384, 189, 355, 241, - 178, 206, 192, 213, 228, 231, 266, 296, 302, 331, - 335, 246, 225, 204, 352, 201, 370, 390, 391, 392, - 394, 300, 220, 334, 35, 395, 284, 396, 397, 0, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 71, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 1474, 0, 0, 1475, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 1119, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 1118, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 2238, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 396, 0, 285, 397, 398, 259, + 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 2144, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 2143, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 71, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 71, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 396, 0, 285, 397, 398, 259, + 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 1270, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 1269, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 1088, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, + 0, 1089, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 396, 0, 285, 397, 398, 259, + 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 278, 1361, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 1360, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 1241, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 1242, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 1239, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 396, 0, 285, 397, 398, 259, + 0, 0, 0, 0, 0, 0, 319, 0, 1240, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 1237, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 1238, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 1235, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 396, 0, 285, 397, 398, 259, + 0, 0, 0, 0, 0, 0, 319, 0, 1236, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 1233, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 1234, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 1229, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 396, 0, 285, 397, 398, 259, + 0, 0, 0, 0, 0, 0, 319, 0, 1230, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 1227, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 1228, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 1225, - 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 396, 0, 285, 397, 398, 259, + 0, 0, 0, 0, 0, 0, 319, 0, 1226, 0, + 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, + 276, 221, 0, 0, 333, 0, 176, 0, 372, 209, + 286, 283, 403, 235, 227, 223, 208, 260, 292, 331, + 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, + 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, + 0, 0, 0, 198, 0, 205, 0, 0, 0, 0, + 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, - 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 247, 0, 305, 0, 0, 0, 0, + 432, 0, 0, 0, 0, 0, 0, 0, 275, 0, + 272, 171, 187, 0, 0, 315, 355, 361, 0, 0, + 0, 210, 0, 359, 329, 417, 194, 237, 352, 334, + 357, 0, 0, 358, 281, 405, 347, 415, 433, 434, + 217, 309, 423, 394, 429, 444, 188, 214, 323, 387, + 420, 378, 302, 401, 402, 271, 377, 245, 174, 279, + 441, 186, 367, 202, 179, 389, 413, 199, 370, 0, + 0, 446, 181, 411, 386, 299, 268, 269, 180, 0, + 351, 222, 243, 212, 318, 408, 409, 211, 447, 190, + 428, 183, 0, 427, 311, 404, 412, 300, 291, 182, + 410, 298, 290, 274, 233, 254, 345, 284, 346, 255, + 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, + 196, 197, 0, 232, 236, 242, 244, 250, 251, 258, + 277, 322, 344, 342, 348, 0, 399, 416, 424, 431, + 437, 438, 442, 439, 440, 443, 310, 257, 379, 273, + 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, - 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 170, 184, + 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, - 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 1200, 0, 0, 167, 168, - 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, + 0, 0, 172, 173, 185, 193, 203, 215, 230, 238, + 248, 253, 256, 261, 262, 265, 270, 288, 293, 294, + 295, 296, 312, 313, 314, 317, 320, 321, 324, 326, + 327, 330, 337, 338, 339, 340, 341, 343, 350, 354, + 362, 363, 364, 365, 366, 368, 369, 373, 374, 375, + 376, 384, 388, 406, 407, 418, 430, 435, 249, 414, + 436, 0, 287, 0, 0, 289, 234, 252, 263, 0, + 425, 385, 189, 356, 241, 178, 206, 192, 213, 228, + 231, 267, 297, 303, 332, 336, 246, 225, 204, 353, + 201, 371, 391, 392, 393, 395, 301, 220, 335, 396, + 0, 285, 397, 398, 259, 0, 0, 0, 0, 0, + 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, + 224, 0, 0, 0, 0, 276, 221, 0, 0, 333, + 0, 176, 0, 372, 209, 286, 283, 403, 235, 227, + 223, 208, 260, 292, 331, 390, 325, 0, 280, 0, + 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 266, 207, + 175, 316, 382, 239, 1201, 0, 0, 167, 168, 169, + 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, + 205, 0, 0, 0, 0, 219, 264, 226, 218, 400, + 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 247, 0, + 305, 0, 0, 0, 0, 432, 0, 0, 0, 0, + 0, 0, 0, 275, 0, 272, 171, 187, 0, 0, + 315, 355, 361, 0, 0, 0, 210, 0, 359, 329, + 417, 194, 237, 352, 334, 357, 0, 0, 358, 281, + 405, 347, 415, 433, 434, 217, 309, 423, 394, 429, + 444, 188, 214, 323, 387, 420, 378, 302, 401, 402, + 271, 377, 245, 174, 279, 441, 186, 367, 202, 179, + 389, 413, 199, 370, 0, 0, 446, 181, 411, 386, + 299, 268, 269, 180, 0, 351, 222, 243, 212, 318, + 408, 409, 211, 447, 190, 428, 183, 0, 427, 311, + 404, 412, 300, 291, 182, 410, 298, 290, 274, 233, + 254, 345, 284, 346, 255, 307, 306, 308, 0, 177, + 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, + 242, 244, 250, 251, 258, 277, 322, 344, 342, 348, + 0, 399, 416, 424, 431, 437, 438, 442, 439, 440, + 443, 310, 257, 379, 273, 282, 0, 0, 328, 360, + 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 170, 184, 278, 0, 349, 240, 445, + 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 1101, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, + 193, 203, 215, 230, 238, 248, 253, 256, 261, 262, + 265, 270, 288, 293, 294, 295, 296, 312, 313, 314, + 317, 320, 321, 324, 326, 327, 330, 337, 338, 339, + 340, 341, 343, 350, 354, 362, 363, 364, 365, 366, + 368, 369, 373, 374, 375, 376, 384, 388, 406, 407, + 418, 430, 435, 249, 414, 436, 0, 287, 0, 0, + 289, 234, 252, 263, 0, 425, 385, 189, 356, 241, + 178, 206, 192, 213, 228, 231, 267, 297, 303, 332, + 336, 246, 225, 204, 353, 201, 371, 391, 392, 393, + 395, 301, 220, 335, 0, 396, 285, 397, 398, 259, + 1102, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 276, 221, 0, 0, 333, 0, 176, 0, 372, + 209, 286, 283, 403, 235, 227, 223, 208, 260, 292, + 331, 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 0, 0, 0, 0, 247, 0, 305, 0, 0, 0, + 0, 432, 0, 0, 0, 0, 0, 0, 0, 275, + 0, 272, 171, 187, 0, 0, 315, 355, 361, 0, + 0, 0, 210, 0, 359, 329, 417, 194, 237, 352, + 334, 357, 0, 0, 358, 281, 405, 347, 415, 433, + 434, 217, 309, 423, 394, 429, 444, 188, 214, 323, + 387, 420, 378, 302, 401, 402, 271, 377, 245, 174, + 279, 441, 186, 367, 202, 179, 389, 413, 199, 370, + 0, 0, 446, 181, 411, 386, 299, 268, 269, 180, + 0, 351, 222, 243, 212, 318, 408, 409, 211, 447, + 190, 428, 183, 0, 427, 311, 404, 412, 300, 291, + 182, 410, 298, 290, 274, 233, 254, 345, 284, 346, + 255, 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 258, 277, 322, 344, 342, 348, 0, 399, 416, 424, + 431, 437, 438, 442, 439, 440, 443, 310, 257, 379, + 273, 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 184, 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 1092, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 238, 248, 253, 256, 261, 262, 265, 270, 288, 293, + 294, 295, 296, 312, 313, 314, 317, 320, 321, 324, + 326, 327, 330, 337, 338, 339, 340, 341, 343, 350, + 354, 362, 363, 364, 365, 366, 368, 369, 373, 374, + 375, 376, 384, 388, 406, 407, 418, 430, 435, 249, + 414, 436, 0, 287, 0, 0, 289, 234, 252, 263, + 0, 425, 385, 189, 356, 241, 178, 206, 192, 213, + 228, 231, 267, 297, 303, 332, 336, 246, 225, 204, + 353, 201, 371, 391, 392, 393, 395, 301, 220, 335, + 396, 0, 285, 397, 398, 259, 0, 0, 0, 0, + 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, + 1093, 224, 0, 0, 0, 0, 276, 221, 0, 0, + 333, 0, 176, 0, 372, 209, 286, 283, 403, 235, + 227, 223, 208, 260, 292, 331, 390, 325, 0, 280, + 0, 0, 381, 304, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, + 207, 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 205, 0, 0, 0, 0, 219, 264, 226, 218, + 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 305, 0, 0, 0, 0, 432, 0, 0, 0, + 0, 0, 0, 0, 275, 0, 272, 171, 187, 0, + 0, 315, 355, 361, 0, 0, 0, 210, 0, 359, + 329, 417, 194, 237, 352, 334, 357, 0, 0, 358, + 281, 405, 347, 415, 433, 434, 217, 309, 423, 394, + 429, 444, 188, 214, 323, 387, 420, 378, 302, 401, + 402, 271, 377, 245, 174, 279, 441, 186, 367, 202, + 179, 389, 413, 199, 370, 0, 0, 446, 181, 411, + 386, 299, 268, 269, 180, 0, 351, 222, 243, 212, + 318, 408, 409, 211, 447, 190, 428, 183, 0, 427, + 311, 404, 412, 300, 291, 182, 410, 298, 290, 274, + 233, 254, 345, 284, 346, 255, 307, 306, 308, 0, + 177, 0, 383, 421, 448, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 277, 322, 344, 342, + 348, 0, 399, 416, 424, 431, 437, 438, 442, 439, + 440, 443, 310, 257, 379, 273, 282, 0, 0, 328, + 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 278, 0, 349, 240, + 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 261, + 262, 265, 270, 288, 293, 294, 295, 296, 312, 313, + 314, 317, 320, 321, 324, 326, 327, 330, 337, 338, + 339, 340, 341, 343, 350, 354, 362, 363, 364, 365, + 366, 368, 369, 373, 374, 375, 376, 384, 388, 406, + 407, 418, 430, 435, 249, 414, 436, 0, 287, 0, + 0, 289, 234, 252, 263, 0, 425, 385, 189, 356, + 241, 178, 206, 192, 213, 228, 231, 267, 297, 303, + 332, 336, 246, 225, 204, 353, 201, 371, 391, 392, + 393, 395, 301, 220, 335, 396, 0, 285, 397, 398, + 259, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 276, 221, 0, 0, 333, 0, 176, 0, 372, + 209, 286, 283, 403, 235, 227, 223, 208, 260, 292, + 331, 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, - 0, 0, 0, 167, 168, 169, 0, 948, 0, 0, + 0, 0, 0, 0, 266, 207, 175, 316, 382, 239, + 0, 0, 0, 167, 168, 169, 0, 949, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 0, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 0, 0, 0, 0, 247, 0, 305, 0, 0, 0, + 0, 432, 0, 0, 0, 0, 0, 0, 0, 275, + 0, 272, 171, 187, 0, 0, 315, 355, 361, 0, + 0, 0, 210, 0, 359, 329, 417, 194, 237, 352, + 334, 357, 0, 0, 358, 281, 405, 347, 415, 433, + 434, 217, 309, 423, 394, 429, 444, 188, 214, 323, + 387, 420, 378, 302, 401, 402, 271, 377, 245, 174, + 279, 441, 186, 367, 202, 179, 389, 413, 199, 370, + 0, 0, 446, 181, 411, 386, 299, 268, 269, 180, + 0, 351, 222, 243, 212, 318, 408, 409, 211, 447, + 190, 428, 183, 0, 427, 311, 404, 412, 300, 291, + 182, 410, 298, 290, 274, 233, 254, 345, 284, 346, + 255, 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 258, 277, 322, 344, 342, 348, 0, 399, 416, 424, + 431, 437, 438, 442, 439, 440, 443, 310, 257, 379, + 273, 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 184, 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 238, 248, 253, 256, 261, 262, 265, 270, 288, 293, + 294, 295, 296, 312, 313, 314, 317, 320, 321, 324, + 326, 327, 330, 337, 338, 339, 340, 341, 343, 350, + 354, 362, 363, 364, 365, 366, 368, 369, 373, 374, + 375, 376, 384, 388, 406, 407, 418, 430, 435, 249, + 414, 436, 0, 287, 0, 0, 289, 234, 252, 263, + 0, 425, 385, 189, 356, 241, 178, 206, 192, 213, + 228, 231, 267, 297, 303, 332, 336, 246, 225, 204, + 353, 201, 371, 391, 392, 393, 395, 301, 220, 335, + 396, 0, 285, 397, 398, 259, 0, 0, 0, 0, + 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 276, 221, 0, 0, + 333, 0, 176, 0, 372, 209, 286, 283, 403, 235, + 227, 223, 208, 260, 292, 331, 390, 325, 0, 280, + 0, 0, 381, 304, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, + 207, 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 205, 0, 0, 0, 0, 219, 264, 226, 218, + 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 502, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 503, 0, 247, + 0, 305, 0, 0, 0, 0, 432, 0, 0, 0, + 0, 0, 0, 0, 275, 0, 272, 171, 187, 0, + 0, 315, 355, 361, 0, 0, 0, 210, 0, 359, + 329, 417, 194, 237, 352, 334, 357, 0, 0, 358, + 281, 405, 347, 415, 433, 434, 217, 309, 423, 394, + 429, 444, 188, 214, 323, 387, 420, 378, 302, 401, + 402, 271, 377, 245, 174, 279, 441, 186, 367, 202, + 179, 389, 413, 199, 370, 0, 0, 446, 181, 411, + 386, 299, 268, 269, 180, 0, 351, 222, 243, 212, + 318, 408, 409, 211, 447, 190, 428, 183, 0, 427, + 311, 404, 412, 300, 291, 182, 410, 298, 290, 274, + 233, 254, 345, 284, 346, 255, 307, 306, 308, 0, + 177, 0, 383, 421, 448, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 277, 322, 344, 342, + 348, 0, 399, 416, 424, 431, 437, 438, 442, 439, + 440, 443, 310, 257, 379, 273, 282, 0, 0, 328, + 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 278, 0, 349, 240, + 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 501, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 395, 0, 284, 396, 397, - 0, 0, 0, 0, 0, 0, 0, 318, 0, 0, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 261, + 262, 265, 270, 288, 293, 294, 295, 296, 312, 313, + 314, 317, 320, 321, 324, 326, 327, 330, 337, 338, + 339, 340, 341, 343, 350, 354, 362, 363, 364, 365, + 366, 368, 369, 373, 374, 375, 376, 384, 388, 406, + 407, 418, 430, 435, 502, 414, 436, 0, 287, 0, + 0, 289, 234, 252, 263, 0, 425, 385, 189, 356, + 241, 178, 206, 192, 213, 228, 231, 267, 297, 303, + 332, 336, 246, 225, 204, 353, 201, 371, 391, 392, + 393, 395, 301, 220, 335, 396, 0, 285, 397, 398, + 259, 0, 0, 0, 0, 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, - 0, 275, 221, 0, 0, 332, 0, 176, 0, 371, - 209, 285, 282, 402, 235, 227, 223, 208, 259, 291, - 330, 389, 324, 0, 279, 0, 0, 380, 303, 0, + 0, 276, 221, 0, 0, 333, 0, 176, 0, 372, + 209, 286, 283, 403, 235, 227, 223, 208, 260, 292, + 331, 390, 325, 0, 280, 0, 0, 381, 304, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 265, 207, 175, 315, 381, 239, + 0, 0, 0, 0, 266, 207, 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, 0, 205, 0, 0, 0, - 0, 219, 263, 226, 218, 399, 0, 0, 0, 191, + 0, 219, 264, 226, 218, 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 247, 0, 304, 0, 0, 450, - 0, 431, 0, 0, 0, 0, 0, 0, 0, 274, - 0, 271, 171, 187, 0, 0, 314, 354, 360, 0, - 0, 0, 210, 0, 358, 328, 416, 194, 237, 351, - 333, 356, 0, 0, 357, 280, 404, 346, 414, 432, - 433, 217, 308, 422, 393, 428, 443, 188, 214, 322, - 386, 419, 377, 301, 400, 401, 270, 376, 245, 174, - 278, 440, 186, 366, 202, 179, 388, 412, 199, 369, - 0, 0, 445, 181, 410, 385, 298, 267, 268, 180, - 0, 350, 222, 243, 212, 317, 407, 408, 211, 446, - 190, 427, 183, 0, 426, 310, 403, 411, 299, 290, - 182, 409, 297, 289, 273, 233, 254, 344, 283, 345, - 255, 306, 305, 307, 0, 177, 0, 382, 420, 447, + 0, 0, 0, 0, 247, 0, 305, 0, 0, 451, + 0, 432, 0, 0, 0, 0, 0, 0, 0, 275, + 0, 272, 171, 187, 0, 0, 315, 355, 361, 0, + 0, 0, 210, 0, 359, 329, 417, 194, 237, 352, + 334, 357, 0, 0, 358, 281, 405, 347, 415, 433, + 434, 217, 309, 423, 394, 429, 444, 188, 214, 323, + 387, 420, 378, 302, 401, 402, 271, 377, 245, 174, + 279, 441, 186, 367, 202, 179, 389, 413, 199, 370, + 0, 0, 446, 181, 411, 386, 299, 268, 269, 180, + 0, 351, 222, 243, 212, 318, 408, 409, 211, 447, + 190, 428, 183, 0, 427, 311, 404, 412, 300, 291, + 182, 410, 298, 290, 274, 233, 254, 345, 284, 346, + 255, 307, 306, 308, 0, 177, 0, 383, 421, 448, 195, 196, 197, 0, 232, 236, 242, 244, 250, 251, - 258, 276, 321, 343, 341, 347, 0, 398, 415, 423, - 430, 436, 437, 441, 438, 439, 442, 309, 257, 378, - 272, 281, 0, 0, 327, 359, 200, 418, 379, 0, + 258, 277, 322, 344, 342, 348, 0, 399, 416, 424, + 431, 437, 438, 442, 439, 440, 443, 310, 257, 379, + 273, 282, 0, 0, 328, 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 170, - 184, 277, 0, 348, 240, 444, 425, 421, 0, 0, + 184, 278, 0, 349, 240, 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, 185, 193, 203, 215, 230, - 238, 248, 253, 256, 260, 261, 264, 269, 287, 292, - 293, 294, 295, 311, 312, 313, 316, 319, 320, 323, - 325, 326, 329, 336, 337, 338, 339, 340, 342, 349, - 353, 361, 362, 363, 364, 365, 367, 368, 372, 373, - 374, 375, 383, 387, 405, 406, 417, 429, 434, 249, - 413, 435, 0, 286, 0, 0, 288, 234, 252, 262, - 0, 424, 384, 189, 355, 241, 178, 206, 192, 213, - 228, 231, 266, 296, 302, 331, 335, 246, 225, 204, - 352, 201, 370, 390, 391, 392, 394, 300, 220, 334, - 395, 0, 284, 396, 397, 0, 0, 0, 0, 0, - 0, 0, 318, 0, 0, 0, 0, 0, 0, 0, - 0, 224, 0, 0, 0, 0, 275, 221, 0, 0, - 332, 0, 176, 0, 371, 209, 285, 282, 402, 235, - 227, 223, 208, 259, 291, 330, 389, 324, 0, 279, - 0, 0, 380, 303, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 265, - 207, 175, 315, 381, 239, 0, 0, 0, 167, 168, + 238, 248, 253, 256, 261, 262, 265, 270, 288, 293, + 294, 295, 296, 312, 313, 314, 317, 320, 321, 324, + 326, 327, 330, 337, 338, 339, 340, 341, 343, 350, + 354, 362, 363, 364, 365, 366, 368, 369, 373, 374, + 375, 376, 384, 388, 406, 407, 418, 430, 435, 249, + 414, 436, 0, 287, 0, 0, 289, 234, 252, 263, + 0, 425, 385, 189, 356, 241, 178, 206, 192, 213, + 228, 231, 267, 297, 303, 332, 336, 246, 225, 204, + 353, 201, 371, 391, 392, 393, 395, 301, 220, 335, + 396, 0, 285, 397, 398, 259, 0, 0, 0, 0, + 0, 0, 319, 0, 0, 0, 0, 0, 0, 0, + 0, 224, 0, 0, 0, 0, 276, 221, 0, 0, + 333, 0, 176, 0, 372, 209, 286, 283, 403, 235, + 227, 223, 208, 260, 292, 331, 390, 325, 0, 280, + 0, 0, 381, 304, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 266, + 207, 175, 316, 382, 239, 0, 0, 0, 167, 168, 169, 0, 0, 0, 0, 0, 0, 0, 0, 198, - 0, 205, 0, 0, 0, 0, 219, 263, 226, 218, - 399, 0, 0, 0, 191, 0, 0, 0, 0, 0, + 0, 205, 0, 0, 0, 0, 219, 264, 226, 218, + 400, 0, 0, 0, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 229, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 247, - 0, 304, 0, 0, 0, 0, 431, 0, 0, 0, - 0, 0, 0, 0, 274, 0, 271, 171, 187, 0, - 0, 314, 354, 360, 0, 0, 0, 210, 0, 358, - 328, 416, 194, 237, 351, 333, 356, 0, 0, 357, - 280, 404, 346, 414, 432, 433, 217, 308, 422, 393, - 428, 443, 188, 214, 322, 386, 419, 377, 301, 400, - 401, 270, 376, 245, 174, 278, 440, 186, 366, 202, - 179, 388, 412, 199, 369, 0, 0, 445, 181, 410, - 385, 298, 267, 268, 180, 0, 350, 222, 243, 212, - 317, 407, 408, 211, 446, 190, 427, 183, 0, 426, - 310, 403, 411, 299, 290, 182, 409, 297, 289, 273, - 233, 254, 344, 283, 345, 255, 306, 305, 307, 0, - 177, 0, 382, 420, 447, 195, 196, 197, 0, 232, - 236, 242, 244, 250, 251, 258, 276, 321, 343, 341, - 347, 0, 398, 415, 423, 430, 436, 437, 441, 438, - 439, 442, 309, 257, 378, 272, 281, 0, 0, 327, - 359, 200, 418, 379, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 170, 184, 277, 0, 348, 240, - 444, 425, 421, 0, 0, 216, 0, 0, 0, 0, + 0, 305, 0, 0, 0, 0, 432, 0, 0, 0, + 0, 0, 0, 0, 275, 0, 272, 171, 187, 0, + 0, 315, 355, 361, 0, 0, 0, 210, 0, 359, + 329, 417, 194, 237, 352, 334, 357, 0, 0, 358, + 281, 405, 347, 415, 433, 434, 217, 309, 423, 394, + 429, 444, 188, 214, 323, 387, 420, 378, 302, 401, + 402, 271, 377, 245, 174, 279, 441, 186, 367, 202, + 179, 389, 413, 199, 370, 0, 0, 446, 181, 411, + 386, 299, 268, 269, 180, 0, 351, 222, 243, 212, + 318, 408, 409, 211, 447, 190, 428, 183, 0, 427, + 311, 404, 412, 300, 291, 182, 410, 298, 290, 274, + 233, 254, 345, 284, 346, 255, 307, 306, 308, 0, + 177, 0, 383, 421, 448, 195, 196, 197, 0, 232, + 236, 242, 244, 250, 251, 258, 277, 322, 344, 342, + 348, 0, 399, 416, 424, 431, 437, 438, 442, 439, + 440, 443, 310, 257, 379, 273, 282, 0, 0, 328, + 360, 200, 419, 380, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 170, 184, 278, 0, 349, 240, + 445, 426, 422, 0, 0, 216, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 172, 173, - 185, 193, 203, 215, 230, 238, 248, 253, 256, 260, - 261, 264, 269, 287, 292, 293, 294, 295, 311, 312, - 313, 316, 319, 320, 323, 325, 326, 329, 336, 337, - 338, 339, 340, 342, 349, 353, 361, 362, 363, 364, - 365, 367, 368, 372, 373, 374, 375, 383, 387, 405, - 406, 417, 429, 434, 249, 413, 435, 0, 286, 0, - 0, 288, 234, 252, 262, 0, 424, 384, 189, 355, - 241, 178, 206, 192, 213, 228, 231, 266, 296, 302, - 331, 335, 246, 225, 204, 352, 201, 370, 390, 391, - 392, 394, 300, 220, 334, 0, 0, 284, 396, 397, + 185, 193, 203, 215, 230, 238, 248, 253, 256, 261, + 262, 265, 270, 288, 293, 294, 295, 296, 312, 313, + 314, 317, 320, 321, 324, 326, 327, 330, 337, 338, + 339, 340, 341, 343, 350, 354, 362, 363, 364, 365, + 366, 368, 369, 373, 374, 375, 376, 384, 388, 406, + 407, 418, 430, 435, 249, 414, 436, 0, 287, 0, + 0, 289, 234, 252, 263, 0, 425, 385, 189, 356, + 241, 178, 206, 192, 213, 228, 231, 267, 297, 303, + 332, 336, 246, 225, 204, 353, 201, 371, 391, 392, + 393, 395, 301, 220, 335, 0, 0, 285, 397, 398, + 259, } var yyPact = [...]int{ - 4167, -1000, -346, 1699, -1000, -1000, -1000, -1000, -1000, -1000, + 3818, -1000, -348, 1740, -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, 1652, 1270, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 579, 1372, -1000, 1560, 2819, -1000, 29683, 398, - -1000, 29208, 396, 2240, 29683, -1000, 129, -1000, 107, 29683, - 128, 28733, -1000, -1000, -232, 13056, 1519, 28, 12, 29683, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1368, - 1615, 1621, 1646, 1107, 1604, -1000, 11155, 11155, 321, 321, - 321, 9250, -1000, -1000, 17332, 29683, 29683, 173, -1000, 1560, - -1000, -1000, 263, -1000, 236, 1303, -1000, 1302, -1000, 604, - 357, 259, 335, 334, 258, 257, 254, 251, 250, 240, - 239, 238, 266, -1000, 565, 565, -123, -127, 2840, 301, - 301, 301, 336, 1533, 1532, -1000, 554, -1000, 565, 565, - 246, 565, 565, 565, 565, 202, 201, 565, 565, 565, - 565, 565, 565, 565, 565, 565, 565, 565, 565, 565, - 565, 565, 234, 1560, 194, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1701, 1363, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 645, 1401, -1000, 1614, 177, -1000, 29453, 440, + -1000, 28978, 437, 2415, 29453, -1000, 113, -1000, 90, 29453, + 109, 28503, -1000, -1000, -257, 12825, 1570, -23, -33, 29453, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1369, + 1645, 1652, 1699, 1205, 1789, -1000, 10924, 10924, 355, 355, + 355, 9018, -1000, -1000, 17101, 29453, 29453, 277, -1000, 1614, + -1000, -1000, 354, -1000, 265, 1332, -1000, 1328, -1000, 553, + 599, 286, 369, 368, 285, 284, 276, 274, 273, 272, + 267, 264, 292, -1000, 612, 612, -156, -157, 1233, 345, + 345, 345, 370, 1586, 1584, -1000, 548, -1000, 612, 612, + 330, 612, 612, 612, 612, 233, 232, 612, 612, 612, + 612, 612, 612, 612, 612, 612, 612, 612, 612, 612, + 612, 612, 315, 1614, 224, -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, @@ -4192,26 +4172,28 @@ 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, -1000, 29683, 152, - 29683, -1000, 471, 29683, 647, 647, 47, 647, 647, 647, - 647, 132, 481, 10, -1000, 124, 190, 117, 192, 629, - 126, 83, -1000, -1000, 185, 629, 991, 101, -1000, 647, - 7322, 7322, 7322, -1000, 1542, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 332, -1000, -1000, -1000, -1000, 29683, 28258, - 283, 591, -1000, -1000, -1000, 41, -1000, -1000, 1190, 556, - -1000, 13056, 2461, 1316, 1316, -1000, -1000, 426, -1000, -1000, - 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 29453, + 135, 29453, -1000, 546, 29453, 711, 711, 120, 711, 711, + 711, 711, 131, 485, -35, -1000, 119, 209, 110, 217, + 707, 127, 84, -1000, -1000, 215, 707, 1077, 85, -1000, + 711, 7086, 7086, 7086, -1000, 1610, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 367, -1000, -1000, -1000, -1000, 29453, + 28028, 360, 650, -1000, -1000, -1000, 112, -1000, -1000, 1178, + 772, -1000, 12825, 2312, 1364, 1364, -1000, -1000, 514, -1000, + -1000, 14250, 14250, 14250, 14250, 14250, 14250, 14250, 14250, 14250, + 14250, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 1364, 545, -1000, 12350, 1364, + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 12825, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, 1364, + 1364, 1364, 1364, 1364, 1364, -1000, -1000, -1000, 29453, -1000, + 1364, 146, 1701, -1000, 1363, -1000, -1000, -1000, 1606, 12825, + 12825, 1701, -1000, 1498, 10924, -1000, -1000, 1650, -1000, -1000, + -1000, -1000, -1000, 781, 1722, -1000, 15675, 535, 1721, 27553, + -1000, 20902, 27078, 1326, 8535, -58, -1000, -1000, -1000, 647, + 19477, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1610, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 1316, 468, -1000, 12581, 1316, 1316, - 1316, 1316, 1316, 1316, 1316, 1316, 13056, 1316, 1316, 1316, - 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, 1316, - 1316, 1316, 1316, 1316, -1000, -1000, -1000, 29683, -1000, 1316, - 139, 1652, -1000, 1270, -1000, -1000, -1000, 1550, 13056, 13056, - 1652, -1000, 1459, 11155, -1000, -1000, 1514, -1000, -1000, -1000, - -1000, -1000, 721, 1673, -1000, 15906, 456, 1669, 27783, -1000, - 21133, 27308, 1301, 8768, -36, -1000, -1000, -1000, 590, 19708, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1542, -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, @@ -4222,205 +4204,203 @@ 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, 1265, 29453, -1000, + -1000, 3022, 1041, -1000, 1400, -1000, 1259, -1000, 1385, 1409, + 430, 1041, 417, 409, 400, -1000, -116, -1000, -1000, -1000, + -1000, -1000, 612, 612, 290, 177, 4245, -1000, -1000, -1000, + 26602, 1399, 1041, -1000, 1397, -1000, 712, 401, 487, 487, + 1041, -1000, -1000, 29453, 1041, 704, 701, 29453, 29453, -1000, + 26127, -1000, 25652, 25177, 977, 29453, 24702, 24227, 23752, 23277, + 22802, -1000, 1496, -1000, 1361, -1000, -1000, -1000, 29453, 29453, + 29453, 222, -1000, -1000, 29453, 1041, -1000, -1000, 973, 972, + 612, 612, 970, 1072, 1071, 1068, 612, 612, 949, 1064, + 21377, 165, 946, 945, 943, 992, 1063, 133, 978, 928, + 936, 29453, 1396, 29453, -1000, 200, 556, 278, 642, 1614, + 1568, 1306, 365, 428, 1041, 352, 352, -1000, 7569, -1000, + -1000, 1044, 12825, -1000, 724, 707, 707, -1000, -1000, -1000, + -1000, -1000, -1000, 711, 29453, 724, -1000, -1000, -1000, 707, + 711, 29453, 711, 711, 711, 711, 707, 707, 707, 711, + 29453, 29453, 29453, 29453, 29453, 29453, 29453, 29453, 29453, 7086, + 7086, 7086, 593, 711, -262, -1000, 1449, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 106, -1000, -1000, -1000, -1000, + -1000, 1740, -1000, -1000, -1000, -87, 1305, 22327, -1000, -264, + -265, -269, -270, -1000, -1000, -1000, -276, -281, -1000, -1000, + -1000, 12825, 12825, 12825, 12825, 948, 598, 14250, 816, 627, + 14250, 14250, 14250, 14250, 14250, 14250, 14250, 14250, 14250, 14250, + 14250, 14250, 14250, 14250, 14250, 656, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 1041, -1000, 1738, 1144, 1144, 555, + 555, 555, 555, 555, 555, 555, 555, 555, 14725, 9499, + 7569, 1205, 1251, 1701, 10924, 10924, 12825, 12825, 11874, 11399, + 10924, 1594, 659, 772, 29453, -1000, 954, -1000, -1000, 13775, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, 29453, 29453, 10924, 10924, 10924, 10924, 10924, -1000, + 1304, -1000, -151, 16626, 12825, 1036, 1652, 1205, 1650, 1623, + 1733, 588, 961, 1299, -1000, 941, 1652, 19002, 1294, -1000, + 1650, -1000, -1000, -1000, 29453, -1000, -1000, 21852, -1000, -1000, + 6603, 29453, 258, 29453, -1000, 1327, 1557, -1000, -1000, -1000, + 1636, 18527, 29453, 1264, 1262, -1000, -1000, 534, 8052, -58, + -1000, 8052, 1263, -1000, -53, -22, 9974, 554, -1000, -1000, + -1000, 1233, 15200, 1135, 1576, 35, -1000, -1000, -1000, 1385, + -1000, 1385, 1385, 1385, 1385, 222, 222, 222, 222, -1000, + -1000, -1000, -1000, -1000, 1395, 1394, -1000, 1385, 1385, 1385, + 1385, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1393, 1393, + 1393, 1389, 1389, 339, -1000, 12825, 181, 29453, 1620, 919, + 200, 353, 1426, 1041, 1041, 1041, 353, -1000, 1131, 956, + -1000, 1297, -1000, -1000, 1697, -1000, -1000, 671, 733, 727, + 661, 29453, 130, 253, -1000, 329, -1000, 29453, 1041, 700, + 487, 1041, -1000, 1041, -1000, -1000, -1000, -1000, 533, -1000, + -1000, 1041, 1296, -1000, 1325, 832, 725, 753, 713, 1296, + -1000, -1000, -139, 1296, -1000, 1296, -1000, 1296, -1000, 1296, + -1000, 1296, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 597, 29453, 130, 656, -1000, 363, -1000, -1000, 656, 656, + -1000, -1000, -1000, -1000, 1031, 1030, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 1184, 29683, -1000, -1000, - 3510, 1034, -1000, 1371, -1000, 1173, -1000, 1351, 1381, 394, - 1034, 388, 387, 384, -1000, -78, -1000, -1000, -1000, -1000, - -1000, 565, 565, 230, 2819, 3990, -1000, -1000, -1000, 26833, - 1370, 1034, -1000, 1369, -1000, 652, 376, 432, 432, 1034, - -1000, -1000, 29683, 1034, 643, 627, 29683, 29683, -1000, 26358, - -1000, 25883, 25408, 896, 29683, 24933, 24458, 23983, 23508, 23033, - -1000, 1431, -1000, 1360, -1000, -1000, -1000, 29683, 29683, 29683, - 268, -1000, -1000, 29683, 1034, -1000, -1000, 878, 874, 565, - 565, 849, 987, 986, 982, 565, 565, 810, 978, 21608, - 206, 804, 800, 799, 872, 977, 130, 858, 802, 795, - 29683, 1365, 29683, -1000, 177, 524, 304, 588, 1560, 1515, - 1299, 329, 393, 1034, 310, 310, -1000, 7804, -1000, -1000, - 975, 13056, -1000, 639, 629, 629, -1000, -1000, -1000, -1000, - -1000, -1000, 647, 29683, 639, -1000, -1000, -1000, 629, 647, - 29683, 647, 647, 647, 647, 629, 629, 629, 647, 29683, - 29683, 29683, 29683, 29683, 29683, 29683, 29683, 29683, 7322, 7322, - 7322, 519, 647, -264, -1000, 1423, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 127, -1000, -1000, -1000, -1000, -1000, - 1699, -1000, -1000, -1000, -83, 1297, 22558, -1000, -265, -266, - -273, -277, -1000, -1000, -1000, -284, -286, -1000, -1000, -1000, - 13056, 13056, 13056, 13056, 778, 533, 14481, 725, 644, 14481, - 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, 14481, - 14481, 14481, 14481, 14481, 684, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1034, -1000, 1696, 1063, 1063, 483, 483, - 483, 483, 483, 483, 483, 483, 483, 14956, 9730, 7804, - 1107, 1171, 1652, 11155, 11155, 13056, 13056, 12105, 11630, 11155, - 1576, 598, 556, 29683, -1000, 947, -1000, -1000, 14006, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 29683, 29683, 11155, 11155, 11155, 11155, 11155, -1000, 1296, - -1000, -151, 16857, 13056, 973, 1621, 1107, 1514, 1583, 1679, - 511, 718, 1295, -1000, 873, 1621, 19233, 1231, -1000, 1514, - -1000, -1000, -1000, 29683, -1000, -1000, 22083, -1000, -1000, 6840, - 29683, 229, 29683, -1000, 1314, 1406, -1000, -1000, -1000, 1606, - 18758, 29683, 1221, 1217, -1000, -1000, 451, 8286, -36, -1000, - 8286, 1262, -1000, -12, 6, 10205, 482, -1000, -1000, -1000, - 2840, 15431, 1143, 1525, 77, -1000, -1000, -1000, 1351, -1000, - 1351, 1351, 1351, 1351, 268, 268, 268, 268, -1000, -1000, - -1000, -1000, -1000, 1364, 1363, -1000, 1351, 1351, 1351, 1351, + -1000, -1000, -1000, -317, 29453, -1000, 193, 619, 240, 295, + 219, 29453, 129, 1643, 159, 231, 29453, 29453, 352, 1448, + 29453, 1629, 29453, -1000, -1000, -1000, -1000, 772, 29453, -1000, + -1000, 711, 711, -1000, -1000, 29453, 711, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 711, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1362, 1362, 1362, - 1352, 1352, 296, -1000, 13056, 183, 29683, 1592, 790, 177, - 311, 1389, 1034, 1034, 1034, 311, -1000, 1040, 1003, -1000, - 1294, -1000, -1000, 1640, -1000, -1000, 476, 696, 691, 458, - 29683, 157, 226, -1000, 287, -1000, 29683, 1034, 626, 432, - 1034, -1000, 1034, -1000, -1000, -1000, -1000, 450, -1000, -1000, - 1034, 1292, -1000, 1259, 692, 685, 659, 678, 1292, -1000, - -1000, -112, 1292, -1000, 1292, -1000, 1292, -1000, 1292, -1000, - 1292, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 552, - 29683, 157, 684, -1000, 327, -1000, -1000, 684, 684, -1000, - -1000, -1000, -1000, 972, 970, -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, -320, 29683, -1000, 176, 582, 210, 249, 211, - 29683, 150, 1617, 203, 199, 29683, 29683, 310, 1422, 29683, - 1596, 29683, -1000, -1000, -1000, -1000, 556, 29683, -1000, -1000, - 647, 647, -1000, -1000, 29683, 647, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 647, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 962, - -1000, -1000, 29683, 29683, -1000, -1000, -1000, -1000, -1000, 67, - -18, 227, -1000, -1000, -1000, -1000, 1607, -1000, 556, 533, - 578, 534, -1000, -1000, 860, -1000, -1000, 2126, -1000, -1000, - -1000, -1000, 725, 14481, 14481, 14481, 899, 2126, 2592, 1553, - 2551, 483, 763, 763, 487, 487, 487, 487, 487, 722, - 722, -1000, -1000, -1000, -1000, 947, -1000, -1000, -1000, 947, - 11155, 11155, 1289, 1316, 448, -1000, 1368, -1000, -1000, 1621, - 1136, 1136, 738, 835, 576, 1668, 1136, 571, 1667, 1136, - 1136, 11155, -1000, -1000, 597, -1000, 13056, 947, -1000, 1193, - 1288, 1263, 1136, 947, 947, 1136, 1136, 29683, -1000, -228, - -1000, -61, 435, 1316, -1000, 21608, 947, 1190, -1000, 1550, - -1000, -1000, 1511, -1000, 1466, 13056, 13056, 13056, -1000, -1000, - -1000, 1550, 1630, -1000, 1488, 1475, 1660, 11155, 21133, 1514, - -1000, -1000, -1000, 439, 1660, 1269, 1316, -1000, 29683, 21133, - 21133, 21133, 21133, 21133, -1000, 1448, 1447, -1000, 1434, 1416, - 1456, 29683, -1000, 1165, 1107, 18758, 229, 1199, 21133, 29683, - -1000, -1000, 21133, 29683, 6358, -1000, 1262, -36, -4, -1000, - -1000, -1000, -1000, 556, -1000, 934, 228, 2412, -1000, 294, - -1000, -1000, -1000, -1000, 480, 1605, 1517, 24, -1000, -1000, - -1000, 268, 268, -1000, -1000, 482, 708, 482, 482, 482, - 961, 961, -1000, -1000, -1000, -1000, -1000, 785, -1000, -1000, - -1000, 771, -1000, -1000, 942, 1411, 183, -1000, -1000, 565, - 959, 1527, 29683, -1000, -1000, 1098, 176, 29683, 607, 1421, - -1000, 1389, 1389, 1389, 29683, -1000, -1000, -1000, -1000, 285, - 29683, 1163, -1000, 140, -1000, 1064, 29683, -1000, 1142, 1361, - 1034, 1034, -1000, -1000, 7804, -1000, 29683, 1316, -1000, -1000, - -1000, -1000, 377, 1559, 1558, 157, 140, 482, 1034, -1000, - -1000, -1000, -1000, -1000, -323, 1139, 368, 151, 195, 29683, - 29683, 29683, 29683, 29683, 408, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 197, 324, -1000, 29683, 29683, 390, -1000, -1000, - -1000, 629, -1000, -1000, 629, -1000, -1000, -1000, -1000, -1000, - -1000, 1540, -28, -297, -1000, -294, -1000, -1000, -1000, -1000, - 899, 2126, 2526, -1000, 14481, 14481, -1000, -1000, 1136, 1136, - 11155, 7804, 1652, 1550, -1000, -1000, 465, 684, 465, 14481, - 14481, -1000, 14481, 14481, -1000, -91, 1267, 572, -1000, 13056, - 900, -1000, -1000, 14481, 14481, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 375, 371, 370, 29683, -1000, -1000, - -1000, 911, 958, 1464, 556, 556, -1000, -1000, 29683, -1000, - -1000, -1000, -1000, 1658, 13056, -1000, 1233, -1000, 5876, 1621, - 1410, 29683, 1316, 1699, 16382, 29683, 1258, -1000, 570, 1406, - 1387, 1409, 1340, -1000, -1000, -1000, -1000, 1437, -1000, 1435, - -1000, -1000, -1000, -1000, -1000, 1107, 1660, 21133, 1148, -1000, - 1148, -1000, 438, -1000, -1000, -1000, -33, 1, -1000, -1000, - -1000, -1000, 1639, 2840, -1000, -1000, -1000, -1000, 713, 14481, - 1677, -1000, 945, -1000, -1000, 623, 620, -1000, 29683, 1355, - -1000, -1000, -1000, 482, 482, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1134, -1000, 1132, 1228, 1121, 111, -1000, 1380, - 1538, 565, 565, -1000, 766, -1000, 1034, -1000, -1000, 339, - -1000, 1589, 29683, 1408, 1407, 1404, -1000, 1638, 1225, -1000, - 29683, -1000, -1000, 29683, -1000, 1474, 183, 29683, -1000, -1000, - -1000, -1000, 226, 29683, -1000, 1063, 140, -1000, -1000, -1000, - -1000, -1000, -1000, 29683, 175, -1000, 1354, 996, -1000, 1321, - -1000, -1000, -1000, -1000, 138, 207, -1000, 29683, 378, 1411, - 29683, -1000, -1000, -1000, 647, 647, -1000, 1537, -1000, 1034, - -1000, 14481, 2126, 2126, -1000, -1000, 947, -1000, 1621, -1000, - 947, 1351, 1351, -1000, 1351, 1352, -1000, 1351, 112, 1351, - 105, 947, 947, 2511, 2339, 2324, 1825, 1316, -86, -1000, - 556, 13056, 1768, 1285, 1316, 1316, 1316, 1112, 940, 268, - -1000, -1000, -1000, 1656, 1637, 556, -1000, -1000, -1000, 1578, - 1126, 1167, -1000, -1000, 10680, 1119, 1472, 429, 1112, 1652, - 29683, 13056, -1000, -1000, 13056, 1338, -1000, 13056, -1000, -1000, - -1000, 1652, 1652, 1148, -1000, -1000, 496, -1000, -1000, -1000, - -334, -1000, -1000, 2126, -31, -1000, -1000, -1000, 1330, 14481, - -1000, -1000, 268, 935, 268, 765, -1000, 759, -1000, -1000, - -170, -1000, -1000, 1268, 1428, -1000, -1000, 29683, -1000, -1000, - 29683, 29683, 29683, 29683, 29683, -1000, -1000, 215, -1000, 1110, - 1103, -1000, -128, -1000, -1000, 1327, -1000, -1000, -1000, 1044, - -1000, -113, 1034, 29683, 29683, 29683, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 2126, -1000, 1550, -1000, -1000, 290, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14481, 14481, - 14481, 14481, 14481, 1621, 928, 556, 14481, 14481, 18282, 20658, - 20658, 17807, 268, 45, -1000, 13056, 13056, 618, -1000, 1316, - -1000, 1206, 29683, 1316, 29683, -1000, 1621, -1000, 556, 556, - 29683, 556, 1621, -1000, 869, 256, -1000, -1000, -1000, -1000, - 29683, 1219, 482, -1000, 482, 1022, 999, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 1327, -1000, -1000, -1000, 1225, - -1000, 209, 276, -1000, 226, -1000, -133, -135, 1599, 29683, - -1000, -1000, 7804, -1000, -1000, 1320, 1388, -1000, -1000, -1000, - -1000, 1193, 1193, 1193, 1193, 131, 947, -1000, 1193, 1193, - 1097, -1000, -1000, -1000, 1097, 1097, 435, -222, -1000, 1510, - 1486, 556, 1190, 1676, -1000, 1316, 1699, 417, 1167, -1000, - -1000, 1088, -1000, 1318, 1377, -326, 13056, 1317, 1082, -1000, - -1000, -1000, -1000, -1000, 1598, 1316, -1000, -1000, -1000, -1000, - 1270, 1080, 1189, -1000, 562, 29683, 29683, -1000, -1000, -1000, - -1000, 947, 184, -116, -1000, -1000, -1000, 20183, -1000, -1000, - -1000, -1000, 45, 293, -1000, 1499, 1486, -1000, 1636, 1506, - 1634, -1000, 29683, 1167, 29683, -1000, 13056, 1313, 543, -333, - 752, 893, 29683, 1401, 1001, 1270, 13531, 233, -1000, 7804, - 5394, 1075, -1000, -1000, 1461, -99, -120, -1000, -1000, 1494, - 1496, 1496, 1499, -1000, 1631, 1628, -1000, 921, 1626, 917, - 1156, -1000, 831, 29683, 751, 1311, 1624, -1000, -1000, 1048, - 1392, -1000, 1664, -1000, -1000, -1000, 705, 912, -1000, -1000, - -1000, 233, 1193, 947, -1000, -5, -1000, -1000, -1000, -1000, - -1000, 1321, -1000, 1457, -1000, 1489, 741, -1000, -1000, -1000, - -1000, 905, 901, -1000, 894, -1000, -326, 1032, -1000, -1000, - 226, -328, -1000, -1000, 1666, 441, 441, -1000, -1000, -1000, - -1000, -1000, 295, -1000, -1000, -113, -114, -1000, 734, -1000, - -1000, -1000, -1000, -1000, -333, -326, 1020, 761, -1000, -1000, - -1000, 291, 782, -1000, 179, -1000, -118, -1000, -1000, 1311, - -333, -1000, 1312, 1377, -1000, -1000, -1000, -1000, -126, -1000, - 1311, 13056, 1308, -1000, -1000, 673, 29683, -339, 1002, -1000, - 747, -339, -1000, -1000, + 1028, -1000, -1000, 29453, 29453, -1000, -1000, -1000, -1000, -1000, + 134, -66, 189, -1000, -1000, -1000, -1000, 1654, -1000, 772, + 598, 690, 684, -1000, -1000, 817, -1000, -1000, 2452, -1000, + -1000, -1000, -1000, 816, 14250, 14250, 14250, 652, 2452, 2417, + 2511, 2366, 555, 870, 870, 567, 567, 567, 567, 567, + 723, 723, -1000, -1000, -1000, -1000, 954, -1000, -1000, -1000, + 954, 10924, 10924, 1295, 1364, 532, -1000, 1369, -1000, -1000, + 1652, 1215, 1215, 908, 874, 697, 1720, 1215, 651, 1717, + 1215, 1215, 10924, -1000, -1000, 658, -1000, 12825, 954, -1000, + 1257, 1291, 1267, 1215, 954, 954, 1215, 1215, 29453, -1000, + -251, -1000, -95, 453, 1364, -1000, 21377, 954, 1178, -1000, + 1606, -1000, -1000, 1565, -1000, 1499, 12825, 12825, 12825, -1000, + -1000, -1000, 1606, 1656, -1000, 1520, 1510, 1709, 10924, 20902, + 1650, -1000, -1000, -1000, 531, 1709, 1330, 1364, -1000, 29453, + 20902, 20902, 20902, 20902, 20902, -1000, 1472, 1471, -1000, 1464, + 1460, 1477, 29453, -1000, 1249, 1205, 18527, 258, 1281, 20902, + 29453, -1000, -1000, 20902, 29453, 6120, -1000, 1263, -58, -65, + -1000, -1000, -1000, -1000, 772, -1000, 913, 257, 289, -1000, + 338, -1000, -1000, -1000, -1000, 481, 1635, 1560, 32, -1000, + -1000, -1000, 222, 222, -1000, -1000, 554, 795, 554, 554, + 554, 1024, 1024, -1000, -1000, -1000, -1000, -1000, 918, -1000, + -1000, -1000, 905, -1000, -1000, 1040, 1412, 181, -1000, -1000, + 612, 1022, 1578, 29453, -1000, -1000, 1120, 193, 29453, 668, + 1447, -1000, 1426, 1426, 1426, 29453, -1000, -1000, -1000, -1000, + 3323, 29453, 1226, -1000, 137, -1000, 1112, 29453, -1000, 1221, + 1392, 1041, 1041, -1000, -1000, 7569, -1000, 29453, 1364, -1000, + -1000, -1000, -1000, 425, 1613, 1612, 130, 137, 554, 1041, + -1000, -1000, -1000, -1000, -1000, -320, 1217, 373, 152, 168, + 29453, 29453, 29453, 29453, 29453, 484, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 223, 359, -1000, 29453, 29453, 470, -1000, + -1000, -1000, 707, -1000, -1000, 707, -1000, -1000, -1000, -1000, + -1000, -1000, 1608, -70, -294, -1000, -291, -1000, -1000, -1000, + -1000, 652, 2452, 2250, -1000, 14250, 14250, -1000, -1000, 1215, + 1215, 10924, 7569, 1701, 1606, -1000, -1000, 280, 656, 280, + 14250, 14250, -1000, 14250, 14250, -1000, -134, 1350, 646, -1000, + 12825, 1083, -1000, -1000, 14250, 14250, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 386, 385, 382, 29453, -1000, + -1000, -1000, 963, 1021, 1493, 772, 772, -1000, -1000, 29453, + -1000, -1000, -1000, -1000, 1706, 12825, -1000, 1247, -1000, 5637, + 1652, 1444, 29453, 1364, 1740, 16151, 29453, 1349, -1000, 613, + 1557, 1423, 1439, 1388, -1000, -1000, -1000, -1000, 1467, -1000, + 1466, -1000, -1000, -1000, -1000, -1000, 1205, 1709, 20902, 1301, + -1000, 1301, -1000, 528, -1000, -1000, -1000, -75, -50, -1000, + -1000, -1000, -1000, 1687, 1233, -1000, -1000, -1000, -1000, 776, + 14250, 1731, -1000, 1016, -1000, -1000, 699, 695, -1000, 29453, + 1391, -1000, -1000, -1000, 554, 554, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1195, -1000, 1189, 1184, 1180, 80, -1000, + 1407, 1607, 612, 612, -1000, 897, -1000, 1041, -1000, -1000, + 372, -1000, 1627, 29453, 1435, 1434, 1432, -1000, 1686, 1182, + -1000, 29453, -1000, -1000, 29453, -1000, 1509, 181, 29453, -1000, + -1000, -1000, -1000, 253, 29453, -1000, 1144, 137, -1000, -1000, + -1000, -1000, -1000, -1000, 29453, 160, -1000, 1390, 820, -1000, + 1414, -1000, -1000, -1000, -1000, 143, 237, -1000, 29453, 444, + 1412, 29453, -1000, -1000, -1000, 711, 711, -1000, 1598, -1000, + 1041, -1000, 14250, 2452, 2452, -1000, -1000, 954, -1000, 1652, + -1000, 954, 1385, 1385, -1000, 1385, 1389, -1000, 1385, 96, + 1385, 63, 954, 954, 2343, 2327, 2126, 1826, 1364, -127, + -1000, 772, 12825, 1730, 1642, 1364, 1364, 1364, 1172, 1012, + 222, -1000, -1000, -1000, 1703, 1673, 772, -1000, -1000, -1000, + 1616, 1270, 1138, -1000, -1000, 10449, 1174, 1508, 507, 1172, + 1701, 29453, 12825, -1000, -1000, 12825, 1383, -1000, 12825, -1000, + -1000, -1000, 1701, 1701, 1301, -1000, -1000, 573, -1000, -1000, + -1000, -327, -1000, -1000, 2452, -19, -1000, -1000, -1000, 1382, + 14250, -1000, -1000, 222, 998, 222, 894, -1000, 889, -1000, + -1000, -195, -1000, -1000, 1357, 1475, -1000, -1000, 29453, -1000, + -1000, 29453, 29453, 29453, 29453, 29453, -1000, -1000, 247, -1000, + 1167, 1165, -1000, -154, -1000, -1000, 1379, -1000, -1000, -1000, + 1103, -1000, -141, 1041, 29453, 29453, 29453, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 2452, -1000, 1606, -1000, -1000, + 349, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 14250, + 14250, 14250, 14250, 14250, 1652, 997, 772, 14250, 14250, 18051, + 20427, 20427, 17576, 222, 7, -1000, 12825, 12825, 674, -1000, + 1364, -1000, 1310, 29453, 1364, 29453, -1000, 1652, -1000, 772, + 772, 29453, 772, 1652, -1000, 22, 228, -1000, -1000, -1000, + -1000, 29453, 1284, 554, -1000, 554, 1099, 1089, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1379, -1000, -1000, -1000, + 1182, -1000, 245, 299, -1000, 253, -1000, -159, -160, 1634, + 29453, -1000, -1000, 7569, -1000, -1000, 1378, 1424, -1000, -1000, + -1000, -1000, 1257, 1257, 1257, 1257, 263, 954, -1000, 1257, + 1257, 1163, -1000, -1000, -1000, 1163, 1163, 453, -246, -1000, + 1550, 1516, 772, 1178, 1729, -1000, 1364, 1740, 469, 1138, + -1000, -1000, 1161, -1000, 1366, 1406, -323, 12825, 1365, 1145, + -1000, -1000, -1000, -1000, -1000, 1631, 1364, -1000, -1000, -1000, + -1000, 1363, 1140, 1159, -1000, 609, 29453, 29453, -1000, -1000, + -1000, -1000, 954, 150, -144, -1000, -1000, -1000, 19952, -1000, + -1000, -1000, -1000, 7, 283, -1000, 1532, 1516, -1000, 1667, + 1542, 1664, -1000, 29453, 1138, 29453, -1000, 12825, 1362, 604, + -337, 879, 1000, 29453, 1431, 869, 1363, 13300, 213, -1000, + 7569, 5154, 1123, -1000, -1000, 1487, -137, -149, -1000, -1000, + 1527, 1531, 1531, 1532, -1000, 1662, 1661, -1000, 994, 1660, + 990, 1084, -1000, 975, 29453, 872, 1285, 1658, -1000, -1000, + 1117, 1428, -1000, 1716, -1000, -1000, -1000, 755, 985, -1000, + -1000, -1000, 213, 1257, 954, -1000, -28, -1000, -1000, -1000, + -1000, -1000, 1414, -1000, 1482, -1000, 1524, 846, -1000, -1000, + -1000, -1000, 983, 875, -1000, 782, -1000, -323, 1111, -1000, + -1000, 253, -333, -1000, -1000, 1726, 477, 477, -1000, -1000, + -1000, -1000, -1000, 317, -1000, -1000, -141, -142, -1000, 788, + -1000, -1000, -1000, -1000, -1000, -337, -323, 1098, 21, -1000, + -1000, -1000, 331, 926, -1000, 195, -1000, -150, -1000, -1000, + 1285, -337, -1000, 1353, 1406, -1000, -1000, -1000, -1000, -152, + -1000, 1285, 12825, 1206, -1000, -1000, 829, 29453, -343, 1092, + -1000, 863, -343, -1000, -1000, } var yyPgo = [...]int{ - 0, 10, 1977, 7, 2, 4, 1976, 1974, 56, 101, - 102, 1973, 1960, 1958, 1957, 146, 143, 142, 1955, 1954, - 1950, 1949, 1948, 1945, 1942, 1940, 1939, 1938, 1937, 1936, - 80, 163, 53, 63, 140, 1934, 1931, 40, 1929, 1926, - 1925, 133, 132, 594, 1922, 134, 74, 1921, 1919, 1917, - 1916, 1902, 1901, 1900, 1896, 1894, 1893, 1891, 1889, 1886, - 1885, 211, 1884, 1882, 13, 1880, 45, 1879, 1877, 1876, - 1875, 1873, 6, 1872, 1870, 105, 1867, 1866, 1865, 129, - 1863, 1862, 72, 212, 68, 89, 1861, 1859, 94, 135, - 1856, 85, 115, 1855, 1852, 1, 1850, 81, 106, 117, - 1840, 64, 1837, 1836, 73, 1835, 1834, 1831, 91, 1830, - 1826, 3393, 1825, 86, 107, 22, 43, 1824, 1823, 1822, - 1819, 47, 153, 1818, 1816, 33, 1815, 1813, 144, 1811, - 104, 32, 1809, 21, 20, 27, 1808, 103, 1807, 44, - 41, 1806, 99, 1805, 1801, 1800, 1797, 37, 1796, 90, - 120, 29, 1795, 1794, 1793, 18, 19, 1792, 1791, 1789, - 1788, 1785, 1784, 17, 1783, 15, 1782, 28, 1781, 5, - 26, 42, 88, 114, 39, 16, 1780, 124, 1779, 35, - 130, 87, 125, 1778, 1777, 1776, 912, 166, 1774, 1773, - 66, 1771, 111, 119, 1767, 167, 1766, 1765, 78, 1321, - 1887, 59, 127, 1764, 1762, 2797, 79, 93, 36, 1761, - 75, 1760, 1759, 1756, 145, 139, 69, 824, 65, 1755, - 1753, 1752, 1751, 1750, 1748, 1747, 131, 61, 34, 121, - 38, 1744, 1742, 1740, 83, 51, 1738, 123, 122, 84, - 109, 1737, 128, 110, 76, 1735, 46, 1733, 1732, 1731, - 1728, 58, 1726, 1725, 1724, 1723, 116, 108, 82, 48, - 1722, 50, 77, 118, 112, 12, 3, 25, 138, 23, - 1721, 8, 0, 1717, 11, 136, 165, 113, 1716, 1715, - 9, 1714, 14, 1713, 1711, 100, 1710, 1709, 1708, 31, - 24, 30, 1707, 1706, 3028, 1787, 126, 1705, 137, + 0, 9, 2053, 7, 2, 5, 2052, 2051, 47, 101, + 99, 2050, 2049, 2048, 2044, 154, 146, 123, 2043, 2038, + 2037, 2036, 2035, 2034, 2033, 2032, 2031, 2030, 2029, 2028, + 82, 138, 56, 63, 142, 2023, 2022, 44, 2020, 2019, + 2018, 152, 131, 671, 2017, 147, 65, 2016, 2015, 2014, + 2013, 2012, 2008, 2007, 2000, 1998, 1995, 1994, 1993, 1992, + 1991, 251, 1990, 1989, 12, 1986, 41, 1985, 1984, 1983, + 1981, 1977, 6, 1975, 1974, 105, 1961, 1959, 1958, 129, + 1956, 1955, 66, 133, 73, 89, 1953, 1952, 88, 127, + 1951, 78, 112, 1950, 1949, 1, 1948, 57, 106, 114, + 1946, 61, 1943, 1941, 76, 1940, 1939, 1938, 94, 1937, + 1935, 3152, 1932, 86, 108, 25, 46, 1930, 1927, 1926, + 1920, 42, 153, 1919, 1918, 34, 1917, 1916, 145, 1915, + 104, 32, 1913, 24, 22, 31, 1912, 102, 1911, 69, + 45, 1910, 90, 1909, 1906, 1905, 1904, 37, 1902, 91, + 111, 29, 1897, 1896, 1895, 17, 18, 1894, 1892, 1890, + 1889, 1888, 1887, 19, 1886, 14, 1885, 39, 1883, 4, + 26, 43, 87, 72, 40, 20, 1881, 168, 1864, 35, + 122, 85, 120, 1863, 1862, 1861, 1031, 166, 1860, 1857, + 36, 1856, 110, 107, 1841, 165, 1840, 1837, 74, 1321, + 1496, 59, 125, 1836, 1835, 2810, 79, 93, 28, 1833, + 75, 1832, 1831, 1827, 128, 139, 68, 911, 64, 1824, + 1823, 1820, 1817, 1809, 1808, 1807, 136, 144, 33, 126, + 38, 1806, 1802, 1801, 83, 51, 1798, 117, 116, 80, + 150, 1797, 124, 109, 103, 1796, 84, 1795, 1793, 1790, + 1777, 58, 1775, 1774, 1772, 1768, 113, 115, 81, 50, + 1767, 53, 77, 119, 118, 16, 3, 21, 141, 23, + 1765, 11, 0, 1764, 10, 130, 180, 137, 1762, 1761, + 8, 1760, 13, 1759, 1758, 100, 1756, 1752, 1751, 30, + 27, 15, 1750, 1749, 2460, 1669, 121, 1748, 132, } -//line sql.y:5478 +//line sql.y:5479 type yySymType struct { union interface{} empty struct{} @@ -5025,7 +5005,7 @@ var yyR1 = [...]int{ 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, 199, - 199, 199, 199, 294, 295, 214, 215, 215, 215, + 199, 199, 199, 199, 294, 295, 214, 215, 215, 215, } var yyR2 = [...]int{ @@ -5171,7 +5151,7 @@ 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, 0, 0, 1, 1, + 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, } var yyChk = [...]int{ @@ -5182,7 +5162,7 @@ var yyChk = [...]int{ 11, 30, -28, -38, 160, -39, -29, 161, -40, 163, 162, 198, 164, 191, 72, 237, 238, 240, 241, 242, 243, -69, 196, 197, 166, 34, 43, 31, 32, 35, - 169, 82, 9, 341, 193, 192, 26, -293, 487, -79, + 169, 82, 9, 341, 193, 192, 26, -293, 488, -79, 5, -147, 16, -8, -61, -297, -61, -61, -61, -61, -61, -61, -247, -249, 82, 133, 82, -61, -44, -43, -42, -41, -45, 29, -35, -36, -268, -34, -31, 165, @@ -5200,218 +5180,218 @@ var yyChk = [...]int{ 480, 34, 254, 48, 28, 470, 105, 47, 462, 124, 391, 463, 296, 277, 449, 46, 297, 200, 392, 81, 356, 457, 298, 255, 299, 230, 469, 166, 393, 441, - 300, 301, 450, 394, 278, 282, 395, 320, 302, 50, - 396, 397, 451, 104, 398, 76, 464, 249, 250, 399, - 228, 183, 322, 276, 181, 33, 303, 353, 232, 56, - 207, 323, 44, 280, 484, 43, 445, 400, 448, 275, - 271, 51, 401, 402, 403, 404, 465, 274, 248, 270, - 479, 225, 466, 60, 168, 284, 283, 285, 214, 319, - 267, 405, 406, 407, 188, 79, 408, 257, 19, 409, - 410, 304, 221, 411, 54, 412, 413, 326, 197, 414, - 52, 467, 37, 202, 481, 468, 415, 416, 417, 418, - 419, 306, 420, 305, 279, 281, 209, 307, 355, 421, - 253, 201, 472, 422, 189, 456, 203, 206, 196, 327, - 190, 423, 424, 425, 426, 427, 235, 428, 429, 241, - 474, 41, 430, 431, 432, 433, 229, 224, 321, 330, - 59, 80, 289, 434, 454, 247, 222, 435, 238, 53, - 475, 476, 477, 216, 478, 7, 485, 486, 309, 107, - 226, 227, 45, 268, 208, 436, 437, 258, 259, 273, - 246, 269, 239, 442, 210, 310, 198, 438, 329, 223, - 290, 359, 215, 311, 453, 358, 266, 263, 217, 439, - 312, 173, 211, 212, 440, 443, 313, 314, 316, 317, - 233, 315, 318, 218, 357, 244, 261, 291, 171, -61, - 171, -111, -205, 171, -177, 293, -196, 295, 308, 303, - 313, 301, -188, 304, 306, 209, -287, 320, 171, 310, - 160, 151, 296, 305, 314, 315, 233, 318, 218, -283, - -272, 463, 478, 111, 265, 300, 298, 321, 445, 317, - 316, -205, 239, -212, 244, -200, -272, -199, 242, -111, - -67, 441, 164, -214, -214, -81, 445, 447, -131, -95, - -117, 117, -122, 29, 24, -121, -118, -139, -136, -137, - 151, 152, 154, 153, 155, 140, 141, 148, 118, 156, - -126, -124, -125, -127, 89, 88, 97, 90, 91, 92, - 93, 99, 100, 101, -200, -205, -134, -294, 66, 67, - 342, 343, 344, 345, 350, 346, 120, 55, 337, 331, - 340, 339, 338, 335, 336, 333, 334, 348, 349, 176, - 332, 170, 146, 341, -272, -199, 42, 309, 309, -111, - -61, -10, -9, -294, 6, 21, 22, -151, 18, 17, - -295, 84, -73, -86, 61, 62, -88, 22, 36, 65, - 63, 21, -62, -85, 142, -95, -205, -85, -186, 175, - -186, -186, -176, -217, 239, -180, 321, 320, -201, -178, - -200, -198, -177, 319, 165, 360, 116, 23, 25, 119, - 151, 17, 120, 35, 167, 265, 182, 150, 178, 342, - 160, 70, 361, 333, 334, 331, 337, 344, 345, 332, - 295, 29, 11, 363, 26, 192, 22, 36, 144, 162, - 123, 195, 24, 193, 101, 366, 20, 73, 187, 12, - 180, 38, 14, 367, 368, 15, 176, 175, 135, 172, - 68, 9, 156, 27, 132, 64, 369, 113, 370, 371, - 372, 373, 66, 133, 18, 482, 335, 336, 31, 446, - 374, 350, 204, 146, 71, 57, 447, 117, 375, 376, - 99, 377, 102, 74, 452, 114, 16, 69, 40, 378, - 205, 379, 177, 483, 380, 324, 381, 134, 163, 341, - 67, 382, 170, 308, 6, 347, 30, 191, 179, 109, - 65, 383, 171, 122, 348, 349, 174, 100, 5, 112, - 32, 10, 72, 75, 338, 339, 340, 55, 108, 354, - 121, 13, 384, 325, 115, 111, -248, 133, -235, -239, - -200, 186, -264, 182, -111, -257, -256, -200, -80, -195, - 172, 180, 179, 112, -276, 114, 226, 332, 170, -41, - -42, -177, 150, 203, 83, 83, -239, -238, -237, -277, - 205, 186, -263, -255, 178, 187, -245, 179, 180, -240, - 172, 113, -277, -240, 177, 187, 205, 205, 107, 205, - 107, 205, 205, 205, 205, 205, 205, 205, 205, 205, - 202, -246, 125, -246, 358, 358, -251, -277, -277, -277, - 174, 33, 33, -197, -240, 174, 23, -246, -246, -177, - 150, -246, -246, -246, -246, 213, 213, -246, -246, -246, + 300, 301, 450, 394, 278, 282, 395, 320, 302, 487, + 50, 396, 397, 451, 104, 398, 76, 464, 249, 250, + 399, 228, 183, 322, 276, 181, 33, 303, 353, 232, + 56, 207, 323, 44, 280, 484, 43, 445, 400, 448, + 275, 271, 51, 401, 402, 403, 404, 465, 274, 248, + 270, 479, 225, 466, 60, 168, 284, 283, 285, 214, + 319, 267, 405, 406, 407, 188, 79, 408, 257, 19, + 409, 410, 304, 221, 411, 54, 412, 413, 326, 197, + 414, 52, 467, 37, 202, 481, 468, 415, 416, 417, + 418, 419, 306, 420, 305, 279, 281, 209, 307, 355, + 421, 253, 201, 472, 422, 189, 456, 203, 206, 196, + 327, 190, 423, 424, 425, 426, 427, 235, 428, 429, + 241, 474, 41, 430, 431, 432, 433, 229, 224, 321, + 330, 59, 80, 289, 434, 454, 247, 222, 435, 238, + 53, 475, 476, 477, 216, 478, 7, 485, 486, 309, + 107, 226, 227, 45, 268, 208, 436, 437, 258, 259, + 273, 246, 269, 239, 442, 210, 310, 198, 438, 329, + 223, 290, 359, 215, 311, 453, 358, 266, 263, 217, + 439, 312, 173, 211, 212, 440, 443, 313, 314, 316, + 317, 233, 315, 318, 218, 357, 244, 261, 291, 171, + -61, 171, -111, -205, 171, -177, 293, -196, 295, 308, + 303, 313, 301, -188, 304, 306, 209, -287, 320, 171, + 310, 160, 151, 296, 305, 314, 315, 233, 318, 218, + -283, -272, 463, 478, 111, 265, 300, 298, 321, 445, + 317, 316, -205, 239, -212, 244, -200, -272, -199, 242, + -111, -67, 441, 164, -214, -214, -81, 445, 447, -131, + -95, -117, 117, -122, 29, 24, -121, -118, -139, -136, + -137, 151, 152, 154, 153, 155, 140, 141, 148, 118, + 156, -126, -124, -125, -127, 89, 88, 97, 90, 91, + 92, 93, 99, 100, 101, -200, -205, -134, -294, 66, + 67, 342, 343, 344, 345, 350, 346, 120, 55, 337, + 331, 340, 339, 338, 335, 336, 333, 334, 348, 349, + 176, 332, 170, 146, 341, -272, -199, 42, 309, 309, + -111, -61, -10, -9, -294, 6, 21, 22, -151, 18, + 17, -295, 84, -73, -86, 61, 62, -88, 22, 36, + 65, 63, 21, -62, -85, 142, -95, -205, -85, -186, + 175, -186, -186, -176, -217, 239, -180, 321, 320, -201, + -178, -200, -198, -177, 319, 165, 360, 116, 23, 25, + 119, 151, 17, 120, 35, 167, 265, 182, 150, 178, + 342, 160, 70, 361, 333, 334, 331, 337, 344, 345, + 332, 295, 29, 11, 363, 26, 192, 22, 36, 144, + 162, 123, 195, 24, 193, 101, 366, 20, 73, 187, + 12, 180, 38, 14, 367, 368, 15, 176, 175, 135, + 172, 68, 9, 156, 27, 132, 64, 369, 113, 370, + 371, 372, 373, 66, 133, 18, 482, 335, 336, 31, + 446, 374, 350, 204, 146, 71, 57, 447, 117, 375, + 376, 99, 377, 102, 74, 452, 114, 16, 69, 40, + 378, 205, 379, 177, 483, 380, 324, 381, 134, 163, + 341, 67, 382, 170, 308, 6, 347, 30, 191, 179, + 109, 65, 383, 171, 122, 348, 349, 174, 100, 5, + 112, 32, 10, 72, 75, 338, 339, 340, 55, 108, + 354, 121, 13, 384, 325, 115, 111, -248, 133, -235, + -239, -200, 186, -264, 182, -111, -257, -256, -200, -80, + -195, 172, 180, 179, 112, -276, 114, 226, 332, 170, + -41, -42, -177, 150, 203, 83, 83, -239, -238, -237, + -277, 205, 186, -263, -255, 178, 187, -245, 179, 180, + -240, 172, 113, -277, -240, 177, 187, 205, 205, 107, + 205, 107, 205, 205, 205, 205, 205, 205, 205, 205, + 205, 202, -246, 125, -246, 358, 358, -251, -277, -277, + -277, 174, 33, 33, -197, -240, 174, 23, -246, -246, + -177, 150, -246, -246, -246, -246, 213, 213, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, -246, - -246, -246, 171, -276, -89, 318, 233, 78, -43, 215, - -27, -111, -195, 172, 173, -276, -111, 157, -111, -190, - 133, 13, -190, -187, 309, 307, 294, 299, -190, -190, - -190, -190, 216, 292, -241, 172, 33, 183, 309, 216, - 292, 216, 217, 216, 217, 302, 312, 216, -210, 12, - 135, 332, 297, 301, 209, 171, 210, 173, 311, -272, - 448, 217, -210, 89, 309, 212, -190, -215, -294, -201, - 265, -215, -215, 30, 174, -200, -63, -200, 89, -12, - -8, -16, -15, -17, 125, -87, 309, -75, 151, 463, - 449, 450, 451, 448, 306, 456, 454, 452, 216, 453, - 83, 116, 114, 115, 132, -95, -119, 135, 117, 133, - 134, 119, 137, 136, 147, 140, 141, 142, 143, 144, - 145, 146, 138, 139, 150, 125, 126, 127, 128, 129, - 130, 131, -185, -294, -137, -294, 158, 159, -122, -122, - -122, -122, -122, -122, -122, -122, -122, -122, -294, 157, - -7, -131, -9, -294, -294, -294, -294, -294, -294, -294, - -294, -143, -95, -294, -298, -294, -298, -128, -294, -298, - -128, -298, -128, -298, -298, -128, -298, -128, -298, -298, - -128, -294, -294, -294, -294, -294, -294, -294, -214, -284, - -285, -114, -111, -294, 233, -147, -8, -61, -167, 20, - 31, -95, -148, -149, -95, -147, 57, -83, -85, -88, - 61, 62, 95, 12, -203, -202, 23, -200, 89, 157, - 12, -112, 27, -111, -97, -98, -99, -100, -114, -138, - -294, 12, -104, -105, -111, -113, -205, 83, 239, -180, - -217, -182, -181, 322, 324, 125, -204, -200, 89, 29, - 84, 83, -111, -219, -222, -224, -223, -225, -220, -221, - 262, 263, 151, 266, 268, 269, 270, 271, 272, 273, - 274, 275, 276, 277, 30, 194, 258, 259, 260, 261, - 278, 279, 280, 281, 282, 283, 284, 285, 245, 264, - 352, 246, 247, 248, 249, 250, 251, 253, 254, 255, - 256, 257, -275, -272, 82, 84, 83, -226, 82, -89, - 171, -272, 172, 172, 172, -61, 341, -246, -246, 202, - -34, -31, -268, 16, -30, -31, 165, 103, 104, 162, - 82, -235, 82, -244, -275, -272, 82, 113, 177, 112, - -243, -240, -243, -244, -272, -139, -200, -205, -272, 113, - 113, -173, -200, -173, -173, 21, -173, 21, -173, 21, - 90, -200, -173, 21, -173, 21, -173, 21, -173, 21, - -173, 21, 29, 76, 77, 29, 79, 80, 81, -139, - -139, -235, -177, -111, -272, 90, 90, -246, -246, 90, - 89, 89, 89, -246, -246, 90, 89, -207, -205, 89, - -278, 188, 230, 232, 90, 90, 90, 90, 29, 89, - -279, 29, 470, 469, 471, 472, 473, 90, 29, 90, - 29, 90, -200, 82, -111, -92, 220, 160, 162, 165, - 74, 89, 234, 125, 42, 83, 174, 171, -272, -192, - 176, -192, -206, -205, -198, 89, -95, -242, 12, 135, - -210, -210, -190, -111, -242, -210, -190, -111, -190, -190, - -190, -190, -210, -210, -210, -190, -205, -205, -111, -111, - -111, -111, -111, -111, -111, -215, -215, -215, -191, 133, - -190, 448, 74, -213, 242, 276, 442, 443, 444, 83, - 354, -104, 448, 448, 448, 448, 448, 448, -95, -95, - -95, -95, -129, 99, 117, 100, 101, -122, -130, -134, - -137, 94, 135, 133, 134, 119, -122, -122, -122, -122, + -246, -246, -246, 171, -276, -89, 318, 233, 78, -43, + 215, -27, -111, -195, 172, 173, -276, -111, 157, -111, + -190, 133, 13, -190, -187, 309, 307, 294, 299, -190, + -190, -190, -190, 216, 292, -241, 172, 33, 183, 309, + 216, 292, 216, 217, 216, 217, 302, 312, 216, -210, + 12, 135, 332, 297, 301, 209, 171, 210, 173, 311, + -272, 448, 217, -210, 89, 309, 212, -190, -215, -294, + -201, 265, -215, -215, 30, 174, -200, -63, -200, 89, + -12, -8, -16, -15, -17, 125, -87, 309, -75, 151, + 463, 449, 450, 451, 448, 306, 456, 454, 452, 216, + 453, 83, 116, 114, 115, 132, -95, -119, 135, 117, + 133, 134, 119, 137, 136, 147, 140, 141, 142, 143, + 144, 145, 146, 138, 139, 150, 125, 126, 127, 128, + 129, 130, 131, -185, -294, -137, -294, 158, 159, -122, + -122, -122, -122, -122, -122, -122, -122, -122, -122, -294, + 157, -7, -131, -9, -294, -294, -294, -294, -294, -294, + -294, -294, -143, -95, -294, -298, -294, -298, -128, -294, + -298, -128, -298, -128, -298, -298, -128, -298, -128, -298, + -298, -128, -294, -294, -294, -294, -294, -294, -294, -214, + -284, -285, -114, -111, -294, 233, -147, -8, -61, -167, + 20, 31, -95, -148, -149, -95, -147, 57, -83, -85, + -88, 61, 62, 95, 12, -203, -202, 23, -200, 89, + 157, 12, -112, 27, -111, -97, -98, -99, -100, -114, + -138, -294, 12, -104, -105, -111, -113, -205, 83, 239, + -180, -217, -182, -181, 322, 324, 125, -204, -200, 89, + 29, 84, 83, -111, -219, -222, -224, -223, -225, -220, + -221, 262, 263, 151, 266, 268, 269, 270, 271, 272, + 273, 274, 275, 276, 277, 30, 194, 258, 259, 260, + 261, 278, 279, 280, 281, 282, 283, 284, 285, 245, + 264, 352, 246, 247, 248, 249, 250, 251, 253, 254, + 255, 256, 257, -275, -272, 82, 84, 83, -226, 82, + -89, 171, -272, 172, 172, 172, -61, 341, -246, -246, + 202, -34, -31, -268, 16, -30, -31, 165, 103, 104, + 162, 82, -235, 82, -244, -275, -272, 82, 113, 177, + 112, -243, -240, -243, -244, -272, -139, -200, -205, -272, + 113, 113, -173, -200, -173, -173, 21, -173, 21, -173, + 21, 90, -200, -173, 21, -173, 21, -173, 21, -173, + 21, -173, 21, 29, 76, 77, 29, 79, 80, 81, + -139, -139, -235, -177, -111, -272, 90, 90, -246, -246, + 90, 89, 89, 89, -246, -246, 90, 89, -207, -205, + 89, -278, 188, 230, 232, 90, 90, 90, 90, 29, + 89, -279, 29, 470, 469, 471, 472, 473, 90, 29, + 90, 29, 90, -200, 82, -111, -92, 220, 160, 162, + 165, 74, 89, 234, 125, 42, 83, 174, 171, -272, + -192, 176, -192, -206, -205, -198, 89, -95, -242, 12, + 135, -210, -210, -190, -111, -242, -210, -190, -111, -190, + -190, -190, -190, -210, -210, -210, -190, -205, -205, -111, + -111, -111, -111, -111, -111, -111, -215, -215, -215, -191, + 133, -190, 448, 74, -213, 242, 276, 442, 443, 444, + 83, 354, -104, 448, 448, 448, 448, 448, 448, -95, + -95, -95, -95, -129, 99, 117, 100, 101, -122, -130, + -134, -137, 94, 135, 133, 134, 119, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, -122, - -122, -216, -272, 89, 151, -272, -121, -121, -200, -84, - 22, 36, -83, -201, -206, -198, -79, -295, -295, -147, - -83, -83, -95, -95, -139, 89, -83, -139, 89, -83, - -83, -78, 22, 36, -141, -142, 121, -139, -295, -122, - -200, -200, -83, -84, -84, -83, -83, 83, -286, 324, - 325, 446, -208, 205, -207, 23, -132, -131, 89, -151, - -295, -152, 27, 10, 135, 83, 19, 83, -150, 25, - 26, -151, -123, -200, 90, 93, -96, 83, 12, -88, - -111, -202, 142, -206, -111, -172, 205, -111, 30, 83, - -107, -109, -108, -110, 64, 68, 70, 65, 66, 67, - 71, -211, 23, -97, -8, -294, -111, -104, -296, 83, - 12, 75, -296, 83, 157, -180, -182, 83, 323, 325, - 326, 74, 102, -95, -228, 150, -253, -252, -251, -235, - -237, -238, -239, 84, -153, -94, 38, -231, 290, 289, - -226, -226, -226, -226, -226, -227, -177, -227, -227, -227, - 82, 82, -226, -226, -226, -226, -229, 82, -229, -229, - -230, 82, -230, -264, -95, -261, -260, -258, -259, 181, - 96, 354, 75, -256, -150, 90, -92, -193, 176, -262, - -259, -272, -272, -272, -193, -272, 89, -272, 89, 83, - 17, -236, -235, -46, 230, -267, 205, -263, -257, -244, - 113, -243, -244, -244, 157, -272, 83, 27, 107, 107, - 107, 107, 354, 162, 30, -235, -46, -216, 174, -216, - -216, 89, 89, -189, 478, -104, -91, 222, 125, 211, - 211, 171, 171, 224, -111, 235, 236, 234, 21, 223, - 225, 227, 213, -111, -111, -192, 74, -106, -111, 24, - -205, -111, -190, -190, -111, -190, -190, 89, -111, -200, - -75, 324, 354, 20, -76, 20, 99, 100, 101, -130, - -122, -122, -122, -82, 195, 116, -295, -295, -83, -83, - -294, 157, -10, -151, -295, -295, 83, 75, 23, 12, - 12, -295, 12, 12, -295, -295, -83, -144, -142, 123, - -95, -295, -295, 83, 83, -295, -295, -295, -295, -295, - -285, 445, 325, -115, 72, 175, 73, -294, -207, -295, - -167, 40, 48, 59, -95, -95, -149, -167, -184, 20, - 12, 55, 55, -116, 13, -85, -97, -88, 157, -116, - -120, 30, 55, -8, -294, -294, -175, -179, -139, -98, - -99, -99, -98, -99, 64, 64, 64, 69, 64, 69, - 64, -108, -205, -295, -295, -8, -172, 75, -97, -111, - -97, -113, -205, 142, -181, -183, 327, 324, 330, -272, - 89, -70, 205, 83, -251, -239, -291, 99, 117, 29, - 74, 287, 96, -289, -290, 177, 112, 113, 189, 23, - 39, -232, 291, -227, -227, -228, -272, 89, 151, -228, - -228, -228, -234, 89, -234, 90, 90, 84, -37, -32, - -33, 31, 78, -258, -246, 89, 37, -200, 84, -91, - -111, 117, 74, -262, -262, -262, -205, 16, -169, -200, - 83, 84, -140, 231, 84, -200, 84, 82, -244, -244, - -201, -200, -294, 171, 29, 29, -46, -140, -228, -272, - 480, 479, 84, 173, 229, -93, 337, 89, 85, -111, - -111, -111, -111, -111, 165, 162, 214, 174, -104, -111, - 83, -66, 190, 185, -210, -210, 31, 324, 457, 455, - -82, 116, -122, -122, -295, -295, -84, -201, -147, -167, - -218, 151, 262, 194, 260, 256, 276, 267, 289, 258, - 290, -216, -218, -122, -122, -122, -122, 351, -147, 124, - -95, 122, -122, -122, 172, 172, 172, -173, 41, 89, - 89, 60, -111, -145, 14, -95, 142, -151, -174, 74, - -175, -133, -135, -134, -294, -168, -295, -200, -173, -116, - 83, 125, -102, -101, 74, 75, -103, 74, -101, 64, - 64, -295, -116, -97, -116, -116, 157, 324, 328, 329, - 17, -251, 99, -122, 10, 89, 113, 113, -111, 82, - -228, -228, 84, 83, 84, 83, 84, 83, -194, 391, - 117, -33, -32, -246, -246, 90, -272, 173, 24, -111, - 74, 74, 74, 17, 83, -235, -139, 55, -261, -169, - -265, -267, -111, -121, -140, -111, -90, 220, 228, 82, - 86, -274, 75, 211, 287, 211, -111, -66, -37, -111, - -190, -190, 31, -272, -122, -295, -151, -295, -226, -226, - -226, -230, -226, 250, -226, 250, -295, -295, 20, 20, - 20, 20, -294, -74, 347, -95, 83, 83, -294, -294, - -294, -295, 89, -227, -146, 15, 17, 28, -174, 83, - -295, -295, 83, 55, 157, -295, -147, -179, -95, -95, - 82, -95, -147, -116, -1, -2, 482, 483, 484, -125, - 82, -122, -227, 89, -227, 90, 90, 391, 29, 79, - 80, 81, 29, 76, 77, -111, -111, -111, -111, -169, - -200, 207, 84, -295, 83, -233, 354, 357, -170, 82, - 84, -271, 354, -273, -272, -200, -200, -200, -167, -227, - -272, -122, -122, -122, -122, -122, -151, 89, -122, -122, - -171, -295, -200, 177, -171, -171, -208, -227, -156, -161, - -187, -95, -131, 113, -135, 55, -8, -200, -133, -200, - -151, -169, -151, -272, 113, -71, 82, 294, -169, 84, - -228, -228, 84, 84, -170, 208, -290, -267, 358, 358, - 23, -169, -270, -269, -201, 82, 75, -295, -295, -295, - -295, -77, 135, 354, -295, -295, -295, 83, -295, -295, - -295, -115, -159, 441, -164, 44, -162, -163, 45, -160, - 46, 54, 10, -133, 157, 84, 82, -5, 78, -3, - 481, -95, 82, 84, -154, 23, -294, -8, 84, 83, - 125, -169, -111, -295, 352, 71, 355, -200, 177, -156, - 49, 268, -166, -165, 53, 45, -163, 17, 47, 17, - -175, -200, -95, 82, 125, -72, 485, 90, 84, -169, - -281, -282, 74, -291, -288, 99, 117, 96, -289, 108, - 109, -8, -122, 204, -64, 354, -269, -250, -201, 89, - 90, 84, 60, 353, 356, -157, 51, -155, 50, -155, - -165, 17, 17, 89, 17, 89, 84, -169, 90, -266, - 82, 17, 84, -282, 74, 11, 10, 99, 89, -64, - -295, -295, -65, 219, 445, -274, 60, -158, 52, 74, - 102, 89, 89, 89, -3, 84, -265, -1, -280, 190, - 185, 188, 30, -280, 182, -271, 354, 74, 102, -72, - -3, 84, -272, 113, 184, 29, 99, 221, 355, -266, - -72, 82, -5, 356, -266, -95, 82, 84, -169, -4, - 486, 84, 90, -4, + -122, -122, -216, -272, 89, 151, -272, -121, -121, -200, + -84, 22, 36, -83, -201, -206, -198, -79, -295, -295, + -147, -83, -83, -95, -95, -139, 89, -83, -139, 89, + -83, -83, -78, 22, 36, -141, -142, 121, -139, -295, + -122, -200, -200, -83, -84, -84, -83, -83, 83, -286, + 324, 325, 446, -208, 205, -207, 23, -132, -131, 89, + -151, -295, -152, 27, 10, 135, 83, 19, 83, -150, + 25, 26, -151, -123, -200, 90, 93, -96, 83, 12, + -88, -111, -202, 142, -206, -111, -172, 205, -111, 30, + 83, -107, -109, -108, -110, 64, 68, 70, 65, 66, + 67, 71, -211, 23, -97, -8, -294, -111, -104, -296, + 83, 12, 75, -296, 83, 157, -180, -182, 83, 323, + 325, 326, 74, 102, -95, -228, 150, -253, -252, -251, + -235, -237, -238, -239, 84, -153, -94, 38, -231, 290, + 289, -226, -226, -226, -226, -226, -227, -177, -227, -227, + -227, 82, 82, -226, -226, -226, -226, -229, 82, -229, + -229, -230, 82, -230, -264, -95, -261, -260, -258, -259, + 181, 96, 354, 75, -256, -150, 90, -92, -193, 176, + -262, -259, -272, -272, -272, -193, -272, 89, -272, 89, + 83, 17, -236, -235, -46, 230, -267, 205, -263, -257, + -244, 113, -243, -244, -244, 157, -272, 83, 27, 107, + 107, 107, 107, 354, 162, 30, -235, -46, -216, 174, + -216, -216, 89, 89, -189, 478, -104, -91, 222, 125, + 211, 211, 171, 171, 224, -111, 235, 236, 234, 21, + 223, 225, 227, 213, -111, -111, -192, 74, -106, -111, + 24, -205, -111, -190, -190, -111, -190, -190, 89, -111, + -200, -75, 324, 354, 20, -76, 20, 99, 100, 101, + -130, -122, -122, -122, -82, 195, 116, -295, -295, -83, + -83, -294, 157, -10, -151, -295, -295, 83, 75, 23, + 12, 12, -295, 12, 12, -295, -295, -83, -144, -142, + 123, -95, -295, -295, 83, 83, -295, -295, -295, -295, + -295, -285, 445, 325, -115, 72, 175, 73, -294, -207, + -295, -167, 40, 48, 59, -95, -95, -149, -167, -184, + 20, 12, 55, 55, -116, 13, -85, -97, -88, 157, + -116, -120, 30, 55, -8, -294, -294, -175, -179, -139, + -98, -99, -99, -98, -99, 64, 64, 64, 69, 64, + 69, 64, -108, -205, -295, -295, -8, -172, 75, -97, + -111, -97, -113, -205, 142, -181, -183, 327, 324, 330, + -272, 89, -70, 205, 83, -251, -239, -291, 99, 117, + 29, 74, 287, 96, -289, -290, 177, 112, 113, 189, + 23, 39, -232, 291, -227, -227, -228, -272, 89, 151, + -228, -228, -228, -234, 89, -234, 90, 90, 84, -37, + -32, -33, 31, 78, -258, -246, 89, 37, -200, 84, + -91, -111, 117, 74, -262, -262, -262, -205, 16, -169, + -200, 83, 84, -140, 231, 84, -200, 84, 82, -244, + -244, -201, -200, -294, 171, 29, 29, -46, -140, -228, + -272, 480, 479, 84, 173, 229, -93, 337, 89, 85, + -111, -111, -111, -111, -111, 165, 162, 214, 174, -104, + -111, 83, -66, 190, 185, -210, -210, 31, 324, 457, + 455, -82, 116, -122, -122, -295, -295, -84, -201, -147, + -167, -218, 151, 262, 194, 260, 256, 276, 267, 289, + 258, 290, -216, -218, -122, -122, -122, -122, 351, -147, + 124, -95, 122, -122, -122, 172, 172, 172, -173, 41, + 89, 89, 60, -111, -145, 14, -95, 142, -151, -174, + 74, -175, -133, -135, -134, -294, -168, -295, -200, -173, + -116, 83, 125, -102, -101, 74, 75, -103, 74, -101, + 64, 64, -295, -116, -97, -116, -116, 157, 324, 328, + 329, 17, -251, 99, -122, 10, 89, 113, 113, -111, + 82, -228, -228, 84, 83, 84, 83, 84, 83, -194, + 391, 117, -33, -32, -246, -246, 90, -272, 173, 24, + -111, 74, 74, 74, 17, 83, -235, -139, 55, -261, + -169, -265, -267, -111, -121, -140, -111, -90, 220, 228, + 82, 86, -274, 75, 211, 287, 211, -111, -66, -37, + -111, -190, -190, 31, -272, -122, -295, -151, -295, -226, + -226, -226, -230, -226, 250, -226, 250, -295, -295, 20, + 20, 20, 20, -294, -74, 347, -95, 83, 83, -294, + -294, -294, -295, 89, -227, -146, 15, 17, 28, -174, + 83, -295, -295, 83, 55, 157, -295, -147, -179, -95, + -95, 82, -95, -147, -116, -1, -2, 482, 483, 484, + -125, 82, -122, -227, 89, -227, 90, 90, 391, 29, + 79, 80, 81, 29, 76, 77, -111, -111, -111, -111, + -169, -200, 207, 84, -295, 83, -233, 354, 357, -170, + 82, 84, -271, 354, -273, -272, -200, -200, -200, -167, + -227, -272, -122, -122, -122, -122, -122, -151, 89, -122, + -122, -171, -295, -200, 177, -171, -171, -208, -227, -156, + -161, -187, -95, -131, 113, -135, 55, -8, -200, -133, + -200, -151, -169, -151, 487, 113, -71, 82, 294, -169, + 84, -228, -228, 84, 84, -170, 208, -290, -267, 358, + 358, 23, -169, -270, -269, -201, 82, 75, -295, -295, + -295, -295, -77, 135, 354, -295, -295, -295, 83, -295, + -295, -295, -115, -159, 441, -164, 44, -162, -163, 45, + -160, 46, 54, 10, -133, 157, 84, 82, -5, 78, + -3, 481, -95, 82, 84, -154, 23, -294, -8, 84, + 83, 125, -169, -111, -295, 352, 71, 355, -200, 177, + -156, 49, 268, -166, -165, 53, 45, -163, 17, 47, + 17, -175, -200, -95, 82, 125, -72, 485, 90, 84, + -169, -281, -282, 74, -291, -288, 99, 117, 96, -289, + 108, 109, -8, -122, 204, -64, 354, -269, -250, -201, + 89, 90, 84, 60, 353, 356, -157, 51, -155, 50, + -155, -165, 17, 17, 89, 17, 89, 84, -169, 90, + -266, 82, 17, 84, -282, 74, 11, 10, 99, 89, + -64, -295, -295, -65, 219, 445, -274, 60, -158, 52, + 74, 102, 89, 89, 89, -3, 84, -265, -1, -280, + 190, 185, 188, 30, -280, 182, -271, 354, 74, 102, + -72, -3, 84, 487, 113, 184, 29, 99, 221, 355, + -266, -72, 82, -5, 356, -266, -95, 82, 84, -169, + -4, 486, 84, 90, -4, } var yyDef = [...]int{ @@ -5421,8 +5401,8 @@ var yyDef = [...]int{ 31, 32, 33, 864, 0, 596, 596, 596, 596, 596, 596, 596, 0, 0, 596, -2, -2, 596, 1000, 0, 596, 0, 0, -2, 529, 530, 0, 532, -2, 0, - 0, 541, 1425, 1425, 591, 0, 0, 0, 0, 0, - 596, 1423, 55, 56, 547, 548, 549, 1, 3, 0, + 0, 541, 1426, 1426, 591, 0, 0, 0, 0, 0, + 596, 1424, 55, 56, 547, 548, 549, 1, 3, 0, 600, 872, 0, 0, -2, 598, 0, 0, 983, 983, 983, 0, 86, 87, 0, 0, 0, -2, 90, -2, 114, 115, 0, 119, 383, 344, 386, 342, 372, -2, @@ -5459,199 +5439,199 @@ var yyDef = [...]int{ 1385, 1386, 1387, 1388, 1389, 1390, 1391, 1392, 1393, 1394, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, 1403, 1404, 1405, 1406, 1407, 1408, 1409, 1410, 1411, 1412, 1413, 1414, - 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 0, 977, - 0, 460, 685, 0, 520, 520, 0, 520, 520, 520, - 520, 0, 0, 0, 472, 0, 0, 0, 0, 517, - 0, 0, 491, 493, 0, 517, 0, 0, 504, 520, - 1426, 1426, 1426, 968, 0, 514, 512, 526, 527, 509, - 510, 528, 531, 0, 536, 539, 994, 995, 0, 554, - 0, 1224, 546, 559, 560, 0, 592, 593, 40, 736, - 695, 0, 701, 703, 0, 738, 739, 740, 741, 742, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 768, 769, 770, 771, 849, 850, 851, 852, 853, 854, - 855, 856, 705, 706, 846, 0, 957, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 837, 0, 806, 806, - 806, 806, 806, 806, 806, 806, 806, 0, 0, 0, - 0, 0, 0, 0, -2, -2, 1425, 0, 569, 0, - 0, 864, 51, 0, 596, 601, 602, 907, 0, 0, - 864, 1424, 0, 0, -2, -2, 612, 618, 619, 620, - 621, 622, 597, 0, 625, 629, 0, 0, 0, 984, - 0, 0, 72, 0, 1387, 961, -2, -2, 0, 0, - 996, 997, 970, -2, 1004, 1005, 1006, 1007, 1008, 1009, - 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, - 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, - 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, - 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, - 1050, 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, 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, -2, 0, 0, 128, 129, - 0, 38, 263, 0, 124, 0, 257, 209, 888, 0, - 0, 0, 0, 0, 596, 0, 978, 109, 110, 116, - 117, 237, 237, 0, 118, 118, 351, 352, 353, 0, - 0, -2, 261, 0, 336, 0, 0, 251, 251, 255, - 253, 254, 0, 0, 0, 0, 0, 0, 363, 0, - 364, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 444, 0, 238, 0, 381, 382, 291, 0, 0, 0, - 0, 361, 362, 0, 0, 986, 987, 0, 0, 237, - 237, 0, 0, 0, 0, 237, 237, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 108, 901, 0, 0, 0, -2, 0, - 452, 0, 0, 0, 979, 979, 459, 0, 461, 462, - 0, 0, 463, 0, 517, 517, 515, 516, 465, 466, - 467, 468, 520, 0, 0, 246, 247, 248, 517, 520, - 0, 520, 520, 520, 520, 517, 517, 517, 520, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1426, 1426, - 1426, 523, 520, 0, 501, 502, 505, 506, 1427, 1428, - 1015, 507, 508, 969, 537, 540, 557, 555, 556, 558, - 550, 551, 552, 553, 0, 571, 572, 577, 0, 0, - 0, 0, 583, 584, 585, 0, 0, 588, 589, 590, - 0, 0, 0, 0, 0, 699, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 723, 724, 725, 726, 727, - 728, 729, 702, 0, 716, 0, 0, 0, 758, 759, - 760, 761, 762, 763, 764, 765, 766, 0, 609, 0, - 0, 0, 864, 0, 0, 0, 0, 0, 0, 0, - 606, 0, 838, 0, 789, 0, 790, 798, 0, 791, - 799, 792, 800, 793, 794, 801, 795, 802, 796, 797, - 803, 0, 0, 0, 609, 609, 0, 0, 41, 561, - 562, 0, 668, 989, 0, 872, 0, 611, 910, 0, - 0, 873, 865, 866, 869, 872, 0, 634, 623, 613, - 616, 617, 599, 0, 626, 630, 0, 632, 633, 0, - 0, 70, 0, 684, 0, 636, 638, 639, 640, 666, - 0, 0, 0, 0, 66, 68, 685, 0, 1387, 967, - 0, 74, 75, 0, 0, 0, 225, 972, 973, 974, - -2, 244, 0, -2, 216, 160, 161, 162, 209, 164, - 209, 209, 209, 209, 221, 221, 221, 221, 192, 193, - 194, 195, 196, 0, 0, 179, 209, 209, 209, 209, - 199, 200, 201, 202, 203, 204, 205, 206, 165, 166, - 167, 168, 169, 170, 171, 172, 173, 211, 211, 211, - 213, 213, 0, 39, 0, 229, 0, 869, 0, 901, - 981, 991, 0, 0, 0, 981, 92, 0, 0, 384, - 345, 373, 385, 0, 348, 349, -2, 0, 0, 335, - 0, 337, 0, 245, 0, -2, 0, 255, 0, 251, - 255, 252, 255, 243, 256, 365, 846, 0, 366, 367, - 0, 424, 654, 0, 0, 0, 0, 0, 430, 431, - 432, 0, 434, 435, 436, 437, 438, 439, 440, 441, - 442, 443, 374, 375, 376, 377, 378, 379, 380, 0, - 0, 337, 0, 370, 0, 292, 293, 0, 0, 296, - 297, 298, 299, 0, 0, 302, 303, 304, 671, 672, - 305, 329, 330, 331, 306, 307, 308, 309, 310, 311, - 312, 323, 324, 325, 326, 327, 328, 313, 314, 315, - 316, 317, 320, 0, 102, 892, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 979, 0, 0, - 0, 0, 686, 1002, 1003, 521, 522, 0, 249, 250, - 520, 520, 469, 492, 0, 520, 473, 494, 474, 476, - 475, 477, 496, 497, 520, 480, 518, 519, 481, 482, - 483, 484, 485, 486, 487, 488, 489, 490, 498, 0, - 499, 500, 0, 0, 538, 542, 543, 544, 545, 0, - 0, 574, 579, 580, 581, 582, 594, 587, 737, 696, - 697, 698, 700, 717, 0, 719, 721, 707, 708, 732, - 733, 734, 0, 0, 0, 0, 730, 712, 0, 743, - 744, 745, 746, 747, 748, 749, 750, 751, 752, 753, - 754, 757, 821, 822, 823, 0, 755, 756, 767, 0, - 0, 0, 610, 847, 0, -2, 0, 735, 956, 872, - 0, 0, 0, 0, 740, 849, 0, 740, 849, 0, - 0, 0, 607, 608, 844, 841, 0, 0, 807, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 564, 565, - 567, 0, 688, 0, 669, 0, 0, 990, 570, 907, - 52, 42, 0, 908, 0, 0, 0, 0, 868, 870, - 871, 907, 0, 857, 0, 0, 693, 0, 0, 614, - 48, 631, 627, 0, 693, 0, 0, 683, 0, 0, - 0, 0, 0, 0, 673, 0, 0, 676, 0, 0, - 0, 0, 667, 0, 0, 0, -2, 0, 0, 0, - 62, 63, 0, 0, 0, 962, 73, 0, 0, 78, - 79, 963, 964, 965, 966, 0, 402, -2, 287, 130, - 132, 133, 134, 125, 269, 0, 0, 219, 217, 218, - 163, 221, 221, 186, 187, 225, 0, 225, 225, 225, - 0, 0, 180, 181, 182, 183, 174, 0, 175, 176, - 177, 0, 178, 262, 0, 876, 230, 231, 233, 237, - 0, 0, 0, 258, 259, 0, 892, 0, 0, 0, - 992, 991, 991, 991, 0, 120, 121, 122, 123, 118, - 0, 0, 126, 339, 338, 0, 0, 260, 0, 0, - 255, 255, 240, 241, 0, 368, 0, 0, 426, 427, - 428, 429, 0, 0, 0, 337, 339, 225, 0, 294, - 295, 300, 301, 318, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 398, 399, 400, 401, 889, - 890, 891, 0, 0, 453, 0, 0, 279, 64, 980, - 458, 517, 479, 495, 517, 471, 478, 524, 503, 534, - 578, 0, 0, 0, 586, 0, 718, 720, 722, 709, - 730, 713, 0, 710, 0, 0, 704, 772, 0, 0, - 609, 0, 864, 907, 776, 777, 0, 0, 0, 0, - 0, 814, 0, 0, 815, 0, 864, 0, 842, 0, - 0, 788, 808, 0, 0, 809, 810, 811, 812, 813, - 563, 566, 568, 644, 0, 0, 0, 0, 670, 988, - 44, 0, 0, 0, 874, 875, 867, 43, 0, 975, - 976, 858, 859, 860, 0, 624, 635, 615, 0, 872, - 950, 0, 0, 942, 0, 0, 693, 958, 0, 637, - 662, 664, 0, 659, 674, 675, 677, 0, 679, 0, - 681, 682, 641, 642, 643, 0, 693, 0, 693, 67, - 693, 69, 0, 687, 76, 77, 0, 0, 83, 226, - 227, 111, 0, 118, 289, 131, 135, 140, 0, 0, - 0, 144, 0, 146, 270, 0, 156, 158, 0, 0, - 138, 159, 220, 225, 225, 188, 222, 223, 224, 189, - 190, 191, 0, 207, 0, 0, 0, 282, 88, 880, - 879, 237, 237, 232, 0, 235, 0, 993, 210, 0, - 101, 0, 0, 0, 0, 0, 107, 0, 343, 648, - 0, 354, 355, 0, 423, 0, 229, 0, 239, 242, - 847, 655, 0, 0, 356, 0, 339, 359, 360, 371, - 321, 322, 319, 0, 0, 902, 903, 0, 906, 93, - 391, 393, 392, 396, 0, 0, 389, 0, 279, 876, - 0, 457, 280, 281, 520, 520, 573, 0, 576, 0, - 711, 0, 731, 714, 773, 774, 0, 848, 872, 46, - 0, 209, 209, 827, 209, 213, 830, 209, 832, 209, - 835, 0, 0, 0, 0, 0, 0, 0, 839, 787, - 845, 0, 0, 0, 0, 0, 0, 0, 0, 221, - 912, 909, 45, 862, 0, 694, 628, 49, 53, 0, - 950, 941, 952, 954, 0, 0, 0, 946, 0, 864, - 0, 0, 656, 663, 0, 0, 657, 0, 658, 678, - 680, -2, 864, 693, 60, 61, 0, 80, 81, 82, - 411, 288, 141, 142, 0, 145, 155, 157, 0, 0, - 184, 185, 221, 0, 221, 0, 214, 0, 271, 283, - 0, 877, 878, 0, 0, 234, 236, 0, 982, 103, - 0, 0, 0, 0, 0, 127, 340, 0, 228, 0, - 0, 448, 445, 357, 358, 646, 893, 894, 895, 0, - 905, 96, 0, 0, 0, 0, 454, 455, 456, 65, - 464, 470, 575, 595, 715, 775, 907, 778, 824, 221, - 828, 829, 831, 833, 834, 836, 780, 779, 0, 0, - 0, 0, 0, 872, 0, 843, 0, 0, 0, 0, - 0, 668, 221, 932, 50, 0, 0, 0, 54, 0, - 955, 0, 0, 0, 0, 71, 872, 959, 960, 660, - 0, 665, 872, 59, 0, 0, 412, 415, 416, 143, - 0, 0, 225, 208, 225, 0, 0, 284, 881, 882, - 883, 884, 885, 886, 887, 646, 104, 105, 106, 346, - 649, 0, 0, 425, 0, 433, 0, 0, 0, 0, - 904, 390, 0, 94, 95, 0, 0, 395, 47, 825, - 826, 0, 0, 0, 0, 816, 0, 840, 0, 0, - 0, 690, 650, 651, 0, 0, 688, 914, 913, 926, - 939, 863, 861, 0, 953, 0, 945, 948, 944, 947, - 57, 0, 58, 0, 413, 419, 0, 0, 0, 149, - 197, 198, 212, 215, 0, 0, 264, 449, 446, 447, - 0, 0, 97, 98, 0, 0, 0, 781, 783, 782, - 784, 0, 0, 0, 786, 804, 805, 0, 689, 691, - 692, 645, 932, 0, 925, 0, -2, 934, 0, 0, - 0, 940, 0, 943, 0, 661, 0, 0, 0, 406, - 0, 0, 0, 265, 269, 0, 0, 896, 647, 0, - 0, 0, 397, 785, 0, 0, 0, 652, 653, 919, - 917, 917, 927, 928, 0, 0, 935, 0, 0, 0, - 951, 949, 0, 0, 0, 409, 0, 420, 417, 0, - 266, 267, 0, 136, 150, 151, 0, 0, 154, 147, - 148, 896, 0, 0, 387, 898, 99, 100, 332, 333, - 334, 93, 817, 0, 820, 922, 0, 915, 918, 916, - 929, 0, 0, 936, 0, 938, 419, 0, 414, 405, - 0, 411, 418, 268, 0, 0, 0, 152, 153, 89, - 450, 451, 0, 899, 900, 96, 818, 911, 0, 920, - 921, 930, 931, 937, 406, 419, 0, 0, 272, 274, - 275, 0, 0, 273, 0, 394, 0, 923, 924, 409, - 406, 410, 0, 413, 276, 277, 278, 897, 0, 403, - 409, 0, 0, 819, 404, 0, 0, 421, 0, 407, - 0, 421, 422, 408, + 1415, 1416, 1417, 1418, 1419, 1420, 1421, 1422, 1423, 0, + 977, 0, 460, 685, 0, 520, 520, 0, 520, 520, + 520, 520, 0, 0, 0, 472, 0, 0, 0, 0, + 517, 0, 0, 491, 493, 0, 517, 0, 0, 504, + 520, 1427, 1427, 1427, 968, 0, 514, 512, 526, 527, + 509, 510, 528, 531, 0, 536, 539, 994, 995, 0, + 554, 0, 1224, 546, 559, 560, 0, 592, 593, 40, + 736, 695, 0, 701, 703, 0, 738, 739, 740, 741, + 742, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 768, 769, 770, 771, 849, 850, 851, 852, 853, + 854, 855, 856, 705, 706, 846, 0, 957, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 837, 0, 806, + 806, 806, 806, 806, 806, 806, 806, 806, 0, 0, + 0, 0, 0, 0, 0, -2, -2, 1426, 0, 569, + 0, 0, 864, 51, 0, 596, 601, 602, 907, 0, + 0, 864, 1425, 0, 0, -2, -2, 612, 618, 619, + 620, 621, 622, 597, 0, 625, 629, 0, 0, 0, + 984, 0, 0, 72, 0, 1388, 961, -2, -2, 0, + 0, 996, 997, 970, -2, 1004, 1005, 1006, 1007, 1008, + 1009, 1010, 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, + 1019, 1020, 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, + 1029, 1030, 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, + 1039, 1040, 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, + 1049, 1050, 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, 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, -2, 0, 0, 128, + 129, 0, 38, 263, 0, 124, 0, 257, 209, 888, + 0, 0, 0, 0, 0, 596, 0, 978, 109, 110, + 116, 117, 237, 237, 0, 118, 118, 351, 352, 353, + 0, 0, -2, 261, 0, 336, 0, 0, 251, 251, + 255, 253, 254, 0, 0, 0, 0, 0, 0, 363, + 0, 364, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 444, 0, 238, 0, 381, 382, 291, 0, 0, + 0, 0, 361, 362, 0, 0, 986, 987, 0, 0, + 237, 237, 0, 0, 0, 0, 237, 237, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 108, 901, 0, 0, 0, -2, + 0, 452, 0, 0, 0, 979, 979, 459, 0, 461, + 462, 0, 0, 463, 0, 517, 517, 515, 516, 465, + 466, 467, 468, 520, 0, 0, 246, 247, 248, 517, + 520, 0, 520, 520, 520, 520, 517, 517, 517, 520, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1427, + 1427, 1427, 523, 520, 0, 501, 502, 505, 506, 1428, + 1429, 1015, 507, 508, 969, 537, 540, 557, 555, 556, + 558, 550, 551, 552, 553, 0, 571, 572, 577, 0, + 0, 0, 0, 583, 584, 585, 0, 0, 588, 589, + 590, 0, 0, 0, 0, 0, 699, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 723, 724, 725, 726, + 727, 728, 729, 702, 0, 716, 0, 0, 0, 758, + 759, 760, 761, 762, 763, 764, 765, 766, 0, 609, + 0, 0, 0, 864, 0, 0, 0, 0, 0, 0, + 0, 606, 0, 838, 0, 789, 0, 790, 798, 0, + 791, 799, 792, 800, 793, 794, 801, 795, 802, 796, + 797, 803, 0, 0, 0, 609, 609, 0, 0, 41, + 561, 562, 0, 668, 989, 0, 872, 0, 611, 910, + 0, 0, 873, 865, 866, 869, 872, 0, 634, 623, + 613, 616, 617, 599, 0, 626, 630, 0, 632, 633, + 0, 0, 70, 0, 684, 0, 636, 638, 639, 640, + 666, 0, 0, 0, 0, 66, 68, 685, 0, 1388, + 967, 0, 74, 75, 0, 0, 0, 225, 972, 973, + 974, -2, 244, 0, -2, 216, 160, 161, 162, 209, + 164, 209, 209, 209, 209, 221, 221, 221, 221, 192, + 193, 194, 195, 196, 0, 0, 179, 209, 209, 209, + 209, 199, 200, 201, 202, 203, 204, 205, 206, 165, + 166, 167, 168, 169, 170, 171, 172, 173, 211, 211, + 211, 213, 213, 0, 39, 0, 229, 0, 869, 0, + 901, 981, 991, 0, 0, 0, 981, 92, 0, 0, + 384, 345, 373, 385, 0, 348, 349, -2, 0, 0, + 335, 0, 337, 0, 245, 0, -2, 0, 255, 0, + 251, 255, 252, 255, 243, 256, 365, 846, 0, 366, + 367, 0, 424, 654, 0, 0, 0, 0, 0, 430, + 431, 432, 0, 434, 435, 436, 437, 438, 439, 440, + 441, 442, 443, 374, 375, 376, 377, 378, 379, 380, + 0, 0, 337, 0, 370, 0, 292, 293, 0, 0, + 296, 297, 298, 299, 0, 0, 302, 303, 304, 671, + 672, 305, 329, 330, 331, 306, 307, 308, 309, 310, + 311, 312, 323, 324, 325, 326, 327, 328, 313, 314, + 315, 316, 317, 320, 0, 102, 892, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 979, 0, + 0, 0, 0, 686, 1002, 1003, 521, 522, 0, 249, + 250, 520, 520, 469, 492, 0, 520, 473, 494, 474, + 476, 475, 477, 496, 497, 520, 480, 518, 519, 481, + 482, 483, 484, 485, 486, 487, 488, 489, 490, 498, + 0, 499, 500, 0, 0, 538, 542, 543, 544, 545, + 0, 0, 574, 579, 580, 581, 582, 594, 587, 737, + 696, 697, 698, 700, 717, 0, 719, 721, 707, 708, + 732, 733, 734, 0, 0, 0, 0, 730, 712, 0, + 743, 744, 745, 746, 747, 748, 749, 750, 751, 752, + 753, 754, 757, 821, 822, 823, 0, 755, 756, 767, + 0, 0, 0, 610, 847, 0, -2, 0, 735, 956, + 872, 0, 0, 0, 0, 740, 849, 0, 740, 849, + 0, 0, 0, 607, 608, 844, 841, 0, 0, 807, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 564, + 565, 567, 0, 688, 0, 669, 0, 0, 990, 570, + 907, 52, 42, 0, 908, 0, 0, 0, 0, 868, + 870, 871, 907, 0, 857, 0, 0, 693, 0, 0, + 614, 48, 631, 627, 0, 693, 0, 0, 683, 0, + 0, 0, 0, 0, 0, 673, 0, 0, 676, 0, + 0, 0, 0, 667, 0, 0, 0, -2, 0, 0, + 0, 62, 63, 0, 0, 0, 962, 73, 0, 0, + 78, 79, 963, 964, 965, 966, 0, 402, -2, 287, + 130, 132, 133, 134, 125, 269, 0, 0, 219, 217, + 218, 163, 221, 221, 186, 187, 225, 0, 225, 225, + 225, 0, 0, 180, 181, 182, 183, 174, 0, 175, + 176, 177, 0, 178, 262, 0, 876, 230, 231, 233, + 237, 0, 0, 0, 258, 259, 0, 892, 0, 0, + 0, 992, 991, 991, 991, 0, 120, 121, 122, 123, + 118, 0, 0, 126, 339, 338, 0, 0, 260, 0, + 0, 255, 255, 240, 241, 0, 368, 0, 0, 426, + 427, 428, 429, 0, 0, 0, 337, 339, 225, 0, + 294, 295, 300, 301, 318, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 398, 399, 400, 401, + 889, 890, 891, 0, 0, 453, 0, 0, 279, 64, + 980, 458, 517, 479, 495, 517, 471, 478, 524, 503, + 534, 578, 0, 0, 0, 586, 0, 718, 720, 722, + 709, 730, 713, 0, 710, 0, 0, 704, 772, 0, + 0, 609, 0, 864, 907, 776, 777, 0, 0, 0, + 0, 0, 814, 0, 0, 815, 0, 864, 0, 842, + 0, 0, 788, 808, 0, 0, 809, 810, 811, 812, + 813, 563, 566, 568, 644, 0, 0, 0, 0, 670, + 988, 44, 0, 0, 0, 874, 875, 867, 43, 0, + 975, 976, 858, 859, 860, 0, 624, 635, 615, 0, + 872, 950, 0, 0, 942, 0, 0, 693, 958, 0, + 637, 662, 664, 0, 659, 674, 675, 677, 0, 679, + 0, 681, 682, 641, 642, 643, 0, 693, 0, 693, + 67, 693, 69, 0, 687, 76, 77, 0, 0, 83, + 226, 227, 111, 0, 118, 289, 131, 135, 140, 0, + 0, 0, 144, 0, 146, 270, 0, 156, 158, 0, + 0, 138, 159, 220, 225, 225, 188, 222, 223, 224, + 189, 190, 191, 0, 207, 0, 0, 0, 282, 88, + 880, 879, 237, 237, 232, 0, 235, 0, 993, 210, + 0, 101, 0, 0, 0, 0, 0, 107, 0, 343, + 648, 0, 354, 355, 0, 423, 0, 229, 0, 239, + 242, 847, 655, 0, 0, 356, 0, 339, 359, 360, + 371, 321, 322, 319, 0, 0, 902, 903, 0, 906, + 93, 391, 393, 392, 396, 0, 0, 389, 0, 279, + 876, 0, 457, 280, 281, 520, 520, 573, 0, 576, + 0, 711, 0, 731, 714, 773, 774, 0, 848, 872, + 46, 0, 209, 209, 827, 209, 213, 830, 209, 832, + 209, 835, 0, 0, 0, 0, 0, 0, 0, 839, + 787, 845, 0, 0, 0, 0, 0, 0, 0, 0, + 221, 912, 909, 45, 862, 0, 694, 628, 49, 53, + 0, 950, 941, 952, 954, 0, 0, 0, 946, 0, + 864, 0, 0, 656, 663, 0, 0, 657, 0, 658, + 678, 680, -2, 864, 693, 60, 61, 0, 80, 81, + 82, 411, 288, 141, 142, 0, 145, 155, 157, 0, + 0, 184, 185, 221, 0, 221, 0, 214, 0, 271, + 283, 0, 877, 878, 0, 0, 234, 236, 0, 982, + 103, 0, 0, 0, 0, 0, 127, 340, 0, 228, + 0, 0, 448, 445, 357, 358, 646, 893, 894, 895, + 0, 905, 96, 0, 0, 0, 0, 454, 455, 456, + 65, 464, 470, 575, 595, 715, 775, 907, 778, 824, + 221, 828, 829, 831, 833, 834, 836, 780, 779, 0, + 0, 0, 0, 0, 872, 0, 843, 0, 0, 0, + 0, 0, 668, 221, 932, 50, 0, 0, 0, 54, + 0, 955, 0, 0, 0, 0, 71, 872, 959, 960, + 660, 0, 665, 872, 59, 0, 0, 412, 415, 416, + 143, 0, 0, 225, 208, 225, 0, 0, 284, 881, + 882, 883, 884, 885, 886, 887, 646, 104, 105, 106, + 346, 649, 0, 0, 425, 0, 433, 0, 0, 0, + 0, 904, 390, 0, 94, 95, 0, 0, 395, 47, + 825, 826, 0, 0, 0, 0, 816, 0, 840, 0, + 0, 0, 690, 650, 651, 0, 0, 688, 914, 913, + 926, 939, 863, 861, 0, 953, 0, 945, 948, 944, + 947, 57, 0, 58, 0, 413, 419, 0, 0, 0, + 149, 197, 198, 212, 215, 0, 0, 264, 449, 446, + 447, 0, 0, 97, 98, 0, 0, 0, 781, 783, + 782, 784, 0, 0, 0, 786, 804, 805, 0, 689, + 691, 692, 645, 932, 0, 925, 0, -2, 934, 0, + 0, 0, 940, 0, 943, 0, 661, 0, 0, 0, + 406, 0, 0, 0, 265, 269, 0, 0, 896, 647, + 0, 0, 0, 397, 785, 0, 0, 0, 652, 653, + 919, 917, 917, 927, 928, 0, 0, 935, 0, 0, + 0, 951, 949, 0, 0, 0, 409, 0, 420, 417, + 0, 266, 267, 0, 136, 150, 151, 0, 0, 154, + 147, 148, 896, 0, 0, 387, 898, 99, 100, 332, + 333, 334, 93, 817, 0, 820, 922, 0, 915, 918, + 916, 929, 0, 0, 936, 0, 938, 419, 0, 414, + 405, 0, 411, 418, 268, 0, 0, 0, 152, 153, + 89, 450, 451, 0, 899, 900, 96, 818, 911, 0, + 920, 921, 930, 931, 937, 406, 419, 0, 0, 272, + 274, 275, 0, 0, 273, 0, 394, 0, 923, 924, + 409, 406, 410, 0, 413, 276, 277, 278, 897, 0, + 403, 409, 0, 0, 819, 404, 0, 0, 421, 0, + 407, 0, 421, 422, 408, } var yyTok1 = [...]int{ @@ -5660,7 +5640,7 @@ var yyTok1 = [...]int{ 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 118, 3, 3, 3, 145, 137, 3, 82, 84, 142, 140, 83, 141, 157, 143, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 3, 487, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 488, 126, 125, 127, 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, @@ -5742,7 +5722,7 @@ var yyTok3 = [...]int{ 57795, 470, 57796, 471, 57797, 472, 57798, 473, 57799, 474, 57800, 475, 57801, 476, 57802, 477, 57803, 478, 57804, 479, 57805, 480, 57806, 481, 57807, 482, 57808, 483, 57809, 484, - 57810, 485, 57811, 486, 0, + 57810, 485, 57811, 486, 57812, 487, 0, } var yyErrorMessages = [...]struct { @@ -8876,7 +8856,7 @@ yydefault: { yyLOCAL = &PartitionOption{ Linear: yyDollar[3].str, - HASH: yyDollar[4].colIdent, + isHASH: true, Expr: yyDollar[6].exprUnion(), Partitions: yyDollar[8].str, SubPartition: yyDollar[9].subPartitionUnion(), @@ -8929,7 +8909,7 @@ yydefault: { yyLOCAL = &SubPartition{ Linear: yyDollar[3].str, - HASH: yyDollar[4].colIdent, + isHASH: true, Expr: yyDollar[6].exprUnion(), SubPartitions: yyDollar[8].str, } @@ -13283,42 +13263,42 @@ yydefault: { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].str)) } - case 1423: + case 1424: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5448 +//line sql.y:5449 { if incNesting(yylex) { yylex.Error("max nesting level reached") return 1 } } - case 1424: + case 1425: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5457 +//line sql.y:5458 { decNesting(yylex) } - case 1425: + case 1426: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5462 +//line sql.y:5463 { skipToEnd(yylex) } - case 1426: + case 1427: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:5467 +//line sql.y:5468 { skipToEnd(yylex) } - case 1427: + case 1428: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5471 +//line sql.y:5472 { skipToEnd(yylex) } - case 1428: + case 1429: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:5475 +//line sql.y:5476 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index e93a2bd3ade..5dee6e3fe23 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -289,7 +289,7 @@ func bindVariable(yylex yyLexer, bvar string) { %token FIXED DYNAMIC COMPRESSED REDUNDANT COMPACT ROW_FORMAT STATS_AUTO_RECALC STATS_PERSISTENT STATS_SAMPLE_PAGES STORAGE MEMORY DISK // Partitions tokens -%token PARTITIONS LINEAR RANGE LIST SUBPARTITION SUBPARTITIONS +%token PARTITIONS LINEAR RANGE LIST SUBPARTITION SUBPARTITIONS HASH %type linear_opt range_or_list partitions_opt subpartitions_opt algorithm_opt %type command @@ -2287,12 +2287,12 @@ partitions_options_opt: { $$ = nil } -| PARTITION BY linear_opt id_or_var '(' expression ')' partitions_opt +| PARTITION BY linear_opt HASH '(' expression ')' partitions_opt subpartition_opt partition_definition_opt { $$ = &PartitionOption { Linear: $3, - HASH: $4, + isHASH: true, Expr: $6, Partitions: $8, SubPartition: $9, @@ -2328,11 +2328,11 @@ subpartition_opt: { $$ = nil } -| SUBPARTITION BY linear_opt id_or_var '(' expression ')' subpartitions_opt +| SUBPARTITION BY linear_opt HASH '(' expression ')' subpartitions_opt { $$ = &SubPartition { Linear: $3, - HASH: $4, + isHASH: true, Expr: $6, SubPartitions: $8, } @@ -5253,6 +5253,7 @@ non_reserved_keyword: | GET_MASTER_PUBLIC_KEY | GLOBAL | GTID_EXECUTED +| HASH | HEADER | HISTOGRAM | HISTORY From 7225c7b697a533586c48412b7c1e854ac5e19304 Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Fri, 12 Nov 2021 17:20:48 +0530 Subject: [PATCH 10/11] feat: fix alter vschema command to allow using non reserved keywords Signed-off-by: Manan Gupta --- go/vt/sqlparser/parse_test.go | 3 + go/vt/sqlparser/sql.go | 2442 ++++++++++++++++----------------- go/vt/sqlparser/sql.y | 2 +- 3 files changed, 1216 insertions(+), 1231 deletions(-) diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 33d7d2c3c92..1f24f0d08ee 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -2669,6 +2669,9 @@ func TestSelectInto(t *testing.T) { input: `select * from t1 into outfile '/tmp/foo.csv' fields escaped by '\\' terminated by '\n'`, }, { input: `select * from t1 into outfile '/tmp/foo.csv' fields escaped by 'c' terminated by '\n' enclosed by '\t'`, + }, { + input: `alter vschema create vindex my_vdx using hash`, + output: "alter vschema create vindex my_vdx using `hash`", }} for _, tcase := range validSQL { diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 888426e7b3b..a6c1cf25c6e 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -1178,325 +1178,325 @@ var yyExca = [...]int{ const yyPrivate = 57344 -const yyLast = 32472 +const yyLast = 32293 var yyAct = [...]int{ 608, 2445, 2394, 648, 2332, 2361, 2334, 2416, 2222, 2187, - 2380, 2092, 2103, 2367, 2296, 3, 2014, 1546, 2017, 1850, - 2093, 1857, 638, 579, 1104, 2248, 1858, 1137, 2018, 1775, + 2380, 2092, 2103, 2367, 2296, 3, 2014, 1546, 2248, 1850, + 2017, 1857, 638, 579, 1104, 1858, 1775, 2093, 1137, 2018, 90, 1803, 2152, 2015, 1587, 616, 2146, 986, 2253, 1529, - 565, 2172, 1795, 2012, 1550, 1826, 1622, 2004, 176, 1879, - 934, 176, 549, 512, 176, 580, 34, 2240, 1941, 528, - 1902, 176, 547, 1627, 1880, 148, 1881, 665, 541, 176, - 1576, 1815, 1735, 1457, 1567, 639, 1642, 1960, 813, 33, - 1276, 176, 35, 876, 1563, 1787, 1469, 1416, 1465, 540, - 1367, 1655, 963, 1124, 1688, 841, 134, 642, 1641, 1629, - 1232, 618, 1568, 528, 1873, 1167, 528, 176, 528, 1832, - 89, 1146, 551, 85, 1570, 1531, 1107, 1488, 1434, 1004, - 820, 1364, 1258, 817, 1350, 1639, 821, 620, 1265, 624, - 1555, 1166, 847, 842, 843, 630, 854, 1164, 1150, 844, - 662, 979, 1372, 1250, 1227, 652, 984, 641, 92, 628, - 70, 151, 111, 625, 1551, 112, 626, 117, 535, 118, - 91, 1077, 919, 2429, 627, 71, 8, 79, 1080, 7, - 6, 1618, 83, 2278, 2446, 2189, 2190, 2191, 2189, 2362, - 2335, 1921, 1920, 646, 1686, 651, 1797, 1949, 1950, 119, - 1423, 824, 1422, 1522, 829, 1421, 113, 1420, 632, 1526, - 1527, 814, 1419, 1336, 1418, 881, 1405, 485, 178, 179, - 180, 538, 1410, 539, 2408, 1773, 2000, 2073, 2200, 2293, - 878, 536, 619, 2292, 602, 2218, 96, 84, 2219, 2439, - 880, 617, 879, 892, 893, 2390, 896, 897, 898, 899, - 659, 2434, 902, 903, 904, 905, 906, 907, 908, 909, - 910, 911, 912, 913, 914, 915, 916, 666, 858, 640, - 2350, 857, 113, 835, 98, 99, 834, 102, 836, 72, - 108, 1725, 72, 173, 2424, 74, 480, 2223, 1634, 633, - 882, 883, 884, 1005, 889, 2381, 1674, 2389, 1516, 1977, - 72, 2135, 2349, 1806, 1241, 1774, 615, 2051, 2052, 623, - 1005, 1632, 1841, 1928, 2050, 1840, 894, 1927, 1842, 1948, - 172, 1582, 1583, 72, 1168, 1722, 1169, 1581, 1807, 953, - 613, 958, 959, 982, 612, 941, 113, 654, 655, 2280, - 942, 1866, 922, 954, 114, 1723, 947, 1602, 1601, 2266, - 1528, 833, 2149, 928, 929, 2105, 81, 156, 1015, 81, - 526, 2305, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, - 1036, 1037, 1038, 1031, 2126, 1015, 1041, 81, 918, 1508, - 1497, 1498, 1499, 1500, 1510, 1501, 1502, 1503, 1515, 1511, - 1504, 1505, 1512, 1513, 1514, 1506, 1507, 1509, 1631, 1847, - 81, 941, 515, 970, 2124, 972, 942, 831, 1411, 1412, - 1413, 1409, 530, 153, 940, 154, 939, 960, 1468, 955, - 515, 1961, 948, 524, 1111, 171, 828, 961, 830, 515, - 981, 2106, 1356, 1903, 178, 179, 180, 1326, 833, 917, - 1656, 969, 971, 1699, 1697, 1698, 1694, 2099, 1011, 1924, - 1689, 1003, 1701, 1351, 1702, 2100, 1703, 2433, 976, 895, - 956, 957, 962, 515, 1963, 1011, 924, 1936, 837, 592, - 2409, 598, 599, 596, 597, 1704, 595, 594, 593, 1327, - 901, 1328, 900, 2107, 833, 1691, 825, 1693, 1658, 2289, - 176, 157, 176, 827, 826, 176, 2213, 1564, 865, 1695, - 162, 921, 1846, 863, 874, 600, 601, 178, 179, 180, - 873, 872, 1862, 974, 832, 871, 870, 869, 868, 951, - 867, 2072, 862, 528, 528, 528, 1965, 1692, 1969, 967, - 1964, 838, 1962, 968, 1244, 875, 515, 1967, 2430, 2420, - 831, 528, 528, 973, 2422, 1723, 1966, 937, 818, 943, - 944, 945, 946, 850, 2281, 818, 516, 1022, 997, 1968, - 1970, 1264, 818, 849, 1365, 966, 816, 2428, 653, 1926, - 1640, 2080, 983, 1937, 516, 2150, 502, 2277, 1680, 856, - 1357, 1940, 1361, 516, 991, 501, 885, 920, 1923, 1776, - 1778, 1633, 1987, 1986, 1985, 1239, 499, 866, 34, 1238, - 2306, 832, 864, 1075, 975, 856, 149, 2348, 1237, 977, - 1010, 1007, 1008, 1009, 1014, 1016, 1013, 516, 1012, 1913, - 2327, 1362, 1235, 176, 541, 1006, 1263, 1010, 1007, 1008, - 1009, 1014, 1016, 1013, 496, 1012, 2186, 110, 855, 1724, - 176, 75, 1006, 510, 849, 852, 853, 832, 818, 1112, - 1943, 80, 846, 850, 80, 1942, 484, 1147, 507, 528, - 618, 1117, 950, 176, 855, 1115, 479, 1753, 528, 1051, - 988, 989, 80, 952, 528, 2168, 1102, 1338, 1337, 1339, - 1340, 1341, 927, 1114, 938, 930, 1943, 1118, 1676, 891, - 516, 1942, 1837, 620, 1935, 80, 1777, 1934, 2418, 1750, - 1103, 2419, 1802, 2417, 1744, 662, 1116, 71, 1666, 1000, - 89, 1103, 998, 999, 1052, 1053, 1154, 1065, 486, 932, - 488, 503, 1588, 518, 1031, 517, 492, 1041, 490, 494, - 504, 495, 1041, 489, 2049, 500, 964, 1108, 491, 505, - 506, 508, 522, 521, 509, 635, 498, 519, 92, 1030, - 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1031, 980, 1373, 1041, 1079, 1082, 1084, 1086, 1087, 1089, - 1091, 1092, 1083, 1085, 856, 1088, 1090, 1441, 1093, 1021, - 1105, 105, 936, 856, 1489, 2360, 2443, 856, 619, 1136, - 617, 1439, 1440, 1438, 2344, 1113, 1355, 150, 155, 152, - 158, 159, 160, 161, 163, 164, 165, 166, 1736, 2162, - 1160, 1161, 923, 167, 168, 169, 170, 1052, 1053, 1019, - 1020, 1018, 666, 176, 1675, 544, 877, 1228, 856, 1133, - 2262, 1690, 1358, 855, 1170, 106, 1236, 1021, 1001, 849, - 852, 853, 855, 818, 890, 1979, 855, 846, 850, 1052, - 1053, 859, 849, 1020, 1018, 528, 2060, 1260, 1018, 1119, - 1489, 860, 1760, 965, 1892, 1269, 845, 1673, 2059, 1273, - 1021, 1662, 528, 528, 1021, 528, 1275, 528, 528, 861, - 528, 528, 528, 528, 528, 528, 1352, 855, 1353, 1374, - 520, 1354, 859, 849, 1274, 528, 1262, 1671, 1668, 176, - 1309, 865, 860, 178, 179, 180, 935, 1459, 513, 1034, - 1035, 1036, 1037, 1038, 1031, 176, 1668, 1041, 1556, 1557, - 1270, 863, 2402, 514, 1672, 2353, 528, 2055, 176, 2320, - 1242, 1243, 1155, 1256, 178, 179, 180, 2448, 1799, 1363, - 2403, 2393, 1670, 176, 1165, 1304, 1305, 1249, 2363, 2199, - 1371, 2198, 1853, 1278, 2431, 1279, 2354, 1281, 1283, 176, - 2321, 1287, 1289, 1291, 1293, 1295, 176, 1728, 1729, 1730, - 2078, 2391, 1460, 1306, 1877, 176, 176, 176, 176, 176, + 565, 2172, 1795, 2240, 1550, 1826, 1879, 2012, 176, 2004, + 1622, 176, 549, 512, 176, 580, 34, 1941, 1902, 528, + 1880, 176, 547, 1627, 1881, 148, 665, 639, 541, 176, + 1642, 1567, 1576, 1457, 1563, 1815, 35, 1960, 813, 1124, + 1276, 176, 1787, 876, 1655, 33, 1232, 1735, 1465, 540, + 1367, 1469, 963, 1688, 1641, 1167, 134, 642, 1629, 1873, + 1146, 618, 89, 528, 1568, 841, 528, 176, 528, 1832, + 1488, 1570, 1107, 1004, 1434, 1531, 551, 820, 85, 1639, + 934, 1364, 1258, 817, 1350, 1555, 842, 620, 1265, 624, + 1618, 821, 843, 1416, 847, 1166, 979, 854, 1372, 1227, + 662, 844, 1150, 630, 652, 984, 628, 641, 1250, 117, + 626, 70, 118, 92, 1551, 1164, 1468, 919, 111, 625, + 91, 151, 112, 535, 1077, 627, 71, 8, 7, 6, + 79, 1080, 2429, 2278, 83, 1522, 2446, 2189, 2190, 2191, + 2189, 2362, 2335, 1921, 1920, 1686, 1797, 1949, 646, 1950, + 651, 178, 179, 180, 119, 829, 1423, 824, 1526, 1527, + 1422, 1421, 1420, 632, 1336, 881, 113, 485, 1419, 84, + 1418, 814, 1405, 538, 1410, 539, 2408, 1773, 2000, 2200, + 878, 2293, 2292, 619, 880, 879, 536, 2073, 602, 2218, + 2439, 617, 2219, 892, 893, 2390, 896, 897, 898, 899, + 2434, 2350, 902, 903, 904, 905, 906, 907, 908, 909, + 910, 911, 912, 913, 914, 915, 916, 666, 659, 858, + 96, 633, 640, 857, 1005, 1634, 72, 1725, 836, 835, + 2424, 2223, 113, 834, 72, 2381, 72, 74, 1674, 2389, + 1977, 2135, 882, 883, 884, 889, 2349, 1241, 1632, 72, + 2051, 2052, 1774, 1928, 1582, 1583, 2050, 1927, 98, 99, + 1806, 102, 1841, 1948, 108, 1840, 894, 173, 1842, 1722, + 480, 2305, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1031, 1581, 1807, 1041, 958, 959, 1015, + 615, 1723, 1168, 623, 1169, 953, 113, 613, 2266, 1528, + 612, 941, 941, 81, 2280, 1866, 942, 942, 970, 1516, + 972, 81, 954, 81, 515, 940, 172, 939, 982, 1602, + 1601, 654, 655, 526, 2126, 833, 81, 928, 929, 918, + 515, 2149, 515, 2124, 947, 1631, 2105, 178, 179, 180, + 114, 1409, 136, 530, 524, 1356, 969, 971, 1699, 1697, + 1698, 1005, 1111, 156, 1903, 2099, 1656, 1924, 922, 2433, + 1411, 1412, 1413, 2100, 1689, 976, 515, 1351, 1701, 895, + 1702, 837, 1703, 960, 956, 957, 1694, 962, 924, 1011, + 1936, 831, 1003, 961, 146, 1704, 901, 900, 955, 135, + 1508, 1497, 1498, 1499, 1500, 1510, 1501, 1502, 1503, 1515, + 1511, 1504, 1505, 1512, 1513, 1514, 1506, 1507, 1509, 153, + 948, 154, 2106, 1693, 1326, 981, 1015, 123, 124, 145, + 144, 171, 2409, 592, 2107, 598, 599, 596, 597, 1695, + 595, 594, 593, 1691, 967, 2289, 2213, 865, 968, 863, + 176, 1658, 176, 1564, 1846, 176, 874, 1723, 973, 873, + 872, 871, 838, 1692, 833, 917, 1327, 870, 1328, 600, + 601, 869, 868, 974, 828, 867, 830, 862, 516, 1244, + 966, 875, 1862, 528, 528, 528, 140, 121, 147, 128, + 120, 2072, 141, 142, 516, 2420, 516, 157, 832, 1853, + 1940, 528, 528, 1357, 818, 2430, 162, 129, 818, 850, + 2422, 856, 816, 951, 818, 849, 1011, 1022, 997, 1926, + 2306, 132, 130, 125, 126, 127, 131, 921, 1264, 2281, + 516, 122, 833, 1365, 825, 1640, 2428, 2277, 1633, 653, + 133, 827, 826, 1937, 1854, 1680, 866, 975, 864, 1361, + 991, 1010, 1007, 1008, 1009, 1014, 1016, 1013, 34, 1012, + 885, 2348, 1943, 1075, 2150, 2080, 1006, 1942, 1856, 977, + 855, 1987, 1851, 1923, 1986, 859, 849, 937, 856, 943, + 944, 945, 946, 176, 541, 860, 1860, 1861, 831, 1985, + 1239, 1852, 1913, 1263, 1238, 1724, 1237, 1362, 1776, 1778, + 176, 1235, 983, 75, 891, 1943, 484, 479, 80, 1112, + 1942, 2327, 149, 920, 110, 1676, 80, 1147, 80, 528, + 618, 1117, 1753, 176, 1750, 1115, 1588, 832, 528, 988, + 989, 80, 856, 1051, 528, 2186, 1102, 855, 1338, 1337, + 1339, 1340, 1341, 1114, 938, 856, 930, 1118, 927, 1052, + 1053, 1859, 1355, 620, 2418, 2168, 950, 2419, 1116, 2417, + 1837, 1935, 89, 1862, 1934, 662, 1103, 952, 71, 1802, + 1000, 998, 999, 1744, 1666, 1154, 1041, 1103, 1010, 1007, + 1008, 1009, 1014, 1016, 1013, 1065, 1012, 143, 932, 1031, + 2049, 855, 1041, 1006, 1108, 832, 859, 849, 856, 137, + 964, 1373, 138, 2373, 855, 1777, 860, 2371, 635, 1018, + 849, 852, 853, 92, 818, 936, 2375, 2376, 846, 850, + 980, 1860, 1861, 1021, 861, 1021, 2372, 1079, 1082, 1084, + 1086, 1087, 1089, 1091, 1092, 1083, 1085, 845, 1088, 1090, + 2360, 1093, 1352, 2344, 1353, 1105, 1136, 1354, 2162, 619, + 617, 1675, 877, 1690, 1358, 1170, 1961, 855, 1113, 890, + 105, 1855, 178, 179, 180, 1001, 1459, 2443, 1979, 1160, + 1161, 1133, 1052, 1053, 1052, 1053, 1034, 1035, 1036, 1037, + 1038, 1031, 666, 176, 1041, 544, 1859, 1228, 1489, 923, + 1556, 1557, 1892, 178, 179, 180, 1236, 1799, 1862, 1963, + 1019, 1020, 1018, 150, 155, 152, 158, 159, 160, 161, + 163, 164, 165, 166, 106, 528, 1673, 1260, 1021, 167, + 168, 169, 170, 2391, 1489, 1269, 1760, 965, 1374, 1273, + 2262, 1460, 528, 528, 1441, 528, 2364, 528, 528, 935, + 528, 528, 528, 528, 528, 528, 2060, 2059, 1439, 1440, + 1438, 1020, 1018, 1119, 1662, 528, 1019, 1020, 1018, 176, + 1309, 1965, 1800, 1969, 1275, 1964, 1274, 1962, 1021, 1019, + 1020, 1018, 1967, 1262, 1021, 176, 1668, 1429, 1431, 1432, + 1270, 1966, 1668, 1019, 1020, 1018, 528, 1021, 176, 1671, + 1242, 1243, 865, 1256, 1968, 1970, 1430, 863, 856, 1363, + 2353, 1021, 1672, 176, 1165, 1304, 1305, 1249, 1670, 2402, + 1371, 2055, 1155, 1278, 2431, 1279, 2448, 1281, 1283, 176, + 1131, 1287, 1289, 1291, 1293, 1295, 176, 1728, 1729, 1730, + 2393, 2354, 2363, 1306, 1345, 176, 176, 176, 176, 176, 176, 176, 176, 176, 528, 528, 528, 1268, 1312, 1313, - 1345, 1343, 1267, 1246, 1318, 1319, 1234, 1854, 1876, 1266, - 1266, 1259, 1637, 1800, 1019, 1020, 1018, 1247, 1377, 1245, - 1369, 1019, 1020, 1018, 176, 1381, 1346, 1383, 1384, 1385, - 1386, 1856, 1021, 1331, 1390, 1851, 1748, 2432, 81, 1021, - 1322, 1424, 1425, 1426, 1427, 1747, 1144, 1333, 1404, 1860, - 1861, 1437, 1375, 1376, 1852, 1330, 1329, 657, 1320, 1314, - 1307, 2102, 1458, 1344, 1342, 1311, 1380, 2364, 1435, 1310, - 1285, 1461, 1366, 1387, 1388, 1389, 1240, 2324, 1140, 1019, - 1020, 1018, 1131, 2323, 528, 2322, 1131, 1019, 1020, 1018, - 2373, 2287, 1475, 1476, 2371, 113, 835, 1021, 2261, 834, - 1019, 1020, 1018, 2375, 2376, 1021, 2259, 2237, 1860, 1861, - 1332, 1143, 1379, 2372, 1859, 528, 528, 2161, 1021, 1019, - 1020, 1018, 2196, 1470, 2058, 1886, 1862, 1141, 1874, 1684, - 176, 1429, 1431, 1432, 541, 1462, 1463, 1021, 1403, 1683, - 1400, 1401, 1402, 1477, 1480, 1019, 1020, 1018, 1549, 1490, - 1430, 1535, 1406, 1472, 1370, 1534, 176, 1436, 1536, 528, - 1537, 1334, 1321, 1021, 178, 179, 180, 1552, 1553, 176, - 1317, 1316, 528, 1859, 1315, 1142, 1471, 176, 978, 176, - 2286, 176, 176, 528, 2221, 1862, 528, 178, 179, 180, - 1904, 1844, 1793, 2447, 1586, 2216, 2427, 528, 89, 1032, - 1033, 1034, 1035, 1036, 1037, 1038, 1031, 1518, 1519, 1041, - 88, 1878, 1470, 1804, 89, 2013, 1749, 178, 179, 180, - 662, 1650, 94, 662, 1855, 2161, 1566, 1029, 1039, 1040, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, 1542, 1889, - 1041, 2044, 1472, 1804, 1019, 1020, 1018, 178, 179, 180, - 1723, 1648, 528, 1626, 1608, 1609, 1610, 1611, 1643, 1644, - 1645, 1591, 1021, 1647, 1649, 1561, 1596, 632, 1131, 1574, - 86, 1019, 1020, 1018, 86, 1592, 528, 88, 1811, 1981, - 2163, 87, 528, 1269, 1812, 87, 1269, 1131, 1269, 1021, - 1742, 1544, 1595, 1624, 1793, 2413, 1667, 1017, 1657, 1793, - 2397, 1793, 2387, 2343, 1603, 1833, 1604, 1605, 1606, 1607, - 1559, 1019, 1020, 1018, 2161, 1579, 1793, 2357, 1793, 2338, - 1578, 1793, 1614, 1615, 1616, 1617, 528, 1630, 1458, 1021, - 1594, 1593, 1812, 1458, 1458, 1131, 1812, 666, 2442, 1131, - 666, 2068, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, - 1036, 1037, 1038, 1031, 1654, 1580, 1041, 1765, 1039, 1040, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, 1834, 176, - 1041, 1625, 2310, 1131, 2395, 2283, 176, 1836, 1635, 1638, - 1764, 176, 176, 1636, 1742, 176, 1646, 176, 1054, 1055, - 1056, 1057, 1058, 176, 1059, 1060, 1061, 1062, 1063, 1668, - 176, 1679, 1660, 1625, 1677, 1661, 1681, 1682, 1664, 95, - 1665, 858, 1659, 1663, 857, 1620, 1621, 609, 1678, 1651, - 94, 1266, 93, 2216, 1131, 1793, 2214, 1669, 176, 528, - 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, - 1038, 1031, 1668, 1131, 1041, 1833, 1714, 1715, 1554, 568, - 567, 1717, 570, 571, 572, 573, 1687, 2166, 1131, 569, - 1718, 2132, 574, 2070, 2069, 177, 2066, 2067, 177, 2066, - 2065, 177, 95, 1812, 1131, 1135, 529, 2138, 177, 1742, - 1131, 1524, 1435, 94, 1668, 93, 177, 1723, 1922, 1131, - 1231, 1906, 1900, 1901, 88, 1473, 1474, 1789, 177, 1479, - 1482, 1483, 1793, 1792, 1707, 1017, 1131, 2201, 1834, 1231, - 1230, 1414, 88, 1761, 1176, 1175, 1360, 1723, 1162, 840, - 529, 839, 2437, 529, 177, 529, 1517, 622, 2359, 1520, - 1521, 81, 2337, 1030, 1029, 1039, 1040, 1032, 1033, 1034, - 1035, 1036, 1037, 1038, 1031, 176, 1300, 1041, 2331, 2298, - 1541, 1138, 1131, 176, 1721, 2273, 2193, 2202, 2203, 2204, - 1233, 528, 1623, 2101, 2062, 1907, 1619, 1613, 2205, 1742, - 2137, 1436, 1798, 1612, 1348, 1261, 1257, 1731, 1147, 1229, - 107, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, - 1037, 1038, 1031, 176, 176, 1041, 1301, 1302, 1303, 1808, - 2333, 1883, 922, 2104, 81, 1882, 2173, 2174, 2299, 1843, - 1297, 1634, 2399, 2179, 1794, 2206, 2207, 1817, 1820, 1821, - 1822, 1818, 2368, 1819, 1823, 1759, 1030, 1029, 1039, 1040, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, 2176, 34, - 1041, 2085, 2084, 1817, 1820, 1821, 1822, 1818, 1828, 1819, - 1823, 2083, 1883, 2173, 2174, 528, 1790, 1298, 1299, 1108, - 176, 1772, 2013, 1869, 1870, 1871, 1872, 176, 1780, 1867, - 1868, 1893, 1827, 528, 1708, 1786, 1848, 1407, 1791, 528, - 2035, 1831, 2033, 1269, 1269, 2036, 1801, 2034, 2178, 528, - 1899, 2037, 2032, 1821, 1822, 2031, 2411, 2388, 1548, 1139, - 1540, 1919, 2005, 2007, 2167, 1835, 1838, 2089, 1849, 1993, - 1992, 2008, 176, 176, 176, 176, 176, 2319, 2154, 2252, - 2254, 2157, 2002, 1359, 1910, 1630, 2153, 611, 176, 176, - 1129, 1125, 636, 1864, 1918, 1885, 1599, 1887, 1875, 887, - 637, 1485, 2114, 886, 176, 1126, 86, 1882, 1884, 86, - 990, 1129, 1125, 1890, 1472, 1486, 88, 87, 1946, 1917, - 87, 1915, 1894, 1895, 1896, 528, 1126, 1914, 1249, 1458, - 1538, 1539, 1128, 114, 1127, 95, 2159, 1471, 1556, 1557, - 2081, 88, 1711, 2340, 1980, 577, 94, 2294, 93, 1916, - 1984, 1122, 1123, 1128, 1863, 1127, 1825, 88, 1545, 1991, - 528, 1700, 1959, 644, 645, 1908, 1909, 1990, 618, 95, - 176, 1727, 93, 1978, 528, 1938, 2396, 2260, 2258, 2257, - 94, 94, 93, 528, 2250, 1951, 1944, 2158, 2011, 1945, - 528, 528, 2156, 176, 176, 176, 176, 176, 2086, 1995, - 2053, 1652, 1971, 95, 527, 176, 2010, 1972, 2025, 1957, - 176, 2019, 1958, 176, 94, 1996, 176, 176, 176, 1433, - 1959, 643, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, - 1450, 1451, 1452, 1453, 1454, 1455, 1456, 2249, 2147, 2016, - 1988, 1804, 1789, 176, 2016, 624, 2401, 2400, 664, 1766, - 1754, 815, 1994, 822, 1751, 1740, 1741, 177, 2045, 177, - 1156, 2046, 177, 1148, 1997, 1118, 2401, 2026, 2079, 625, - 2029, 2024, 626, 1757, 176, 2038, 2325, 1492, 100, 101, - 2057, 528, 2063, 2064, 89, 1369, 634, 2047, 528, 2042, - 529, 529, 529, 2054, 176, 2043, 2027, 2028, 97, 2030, - 82, 1, 2370, 497, 176, 2091, 1525, 1106, 529, 529, - 511, 2366, 1335, 1325, 2224, 2295, 1628, 848, 176, 139, - 1589, 176, 1590, 2383, 104, 811, 2075, 2074, 103, 851, - 949, 2115, 1653, 2217, 1865, 1600, 2088, 1182, 1180, 1181, - 1179, 1184, 1183, 1178, 1408, 525, 2076, 2077, 1824, 174, - 2090, 1171, 1149, 888, 487, 2071, 1685, 2096, 2095, 2087, - 493, 1049, 1989, 1630, 1839, 2136, 663, 656, 2021, 2110, - 176, 2151, 2001, 2003, 1796, 2112, 2113, 2109, 2006, 1999, - 2318, 2251, 2339, 1597, 1145, 1758, 2131, 1074, 1487, 1952, - 177, 1571, 2122, 550, 1533, 1428, 566, 563, 564, 1782, - 1805, 1023, 548, 542, 541, 2130, 2145, 177, 1157, 1030, + 2199, 1234, 1267, 2198, 1318, 1319, 1259, 855, 1246, 1247, + 1266, 1266, 1245, 849, 852, 853, 1131, 818, 2078, 1369, + 1144, 846, 850, 2320, 176, 1030, 1029, 1039, 1040, 1032, + 1033, 1034, 1035, 1036, 1037, 1038, 1031, 2432, 1877, 1041, + 1322, 1424, 1425, 1426, 1427, 81, 1748, 1344, 1343, 1019, + 1020, 1018, 1375, 1376, 2321, 1747, 1876, 657, 1437, 1333, + 1307, 1637, 1458, 2102, 1346, 1331, 1380, 1021, 1435, 1330, + 1329, 1461, 1366, 1387, 1388, 1389, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1031, 528, 1143, 1041, 1320, 1377, 1019, + 1020, 1018, 1475, 1476, 1878, 1381, 1749, 1383, 1384, 1385, + 1386, 1140, 835, 1314, 1390, 113, 834, 1021, 1379, 1311, + 1240, 1342, 1310, 1285, 2403, 528, 528, 2324, 1404, 1019, + 1020, 1018, 1332, 1470, 1019, 1020, 1018, 1019, 1020, 1018, + 176, 2323, 1981, 1403, 541, 1462, 1463, 1021, 2322, 1400, + 1401, 1402, 1021, 1477, 1480, 1021, 1019, 1020, 1018, 1490, + 1141, 2261, 1472, 2259, 2237, 1534, 176, 2196, 1536, 528, + 1537, 1436, 2058, 1131, 1021, 1886, 1874, 1552, 1553, 176, + 1684, 1683, 528, 178, 179, 180, 1471, 176, 2287, 176, + 1549, 176, 176, 528, 1535, 1406, 528, 1370, 1334, 1321, + 89, 1019, 1020, 1018, 1586, 1317, 1316, 528, 178, 179, + 180, 1315, 1844, 1142, 978, 2286, 89, 1518, 1519, 1021, + 1793, 2447, 1470, 178, 179, 180, 86, 1650, 2216, 2427, + 662, 1793, 2413, 662, 1542, 2221, 1566, 87, 1030, 1029, + 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, + 1904, 1472, 1041, 1473, 1474, 1793, 2397, 1479, 1482, 1483, + 1793, 2387, 528, 1626, 1608, 1609, 1610, 1611, 1643, 1644, + 1645, 1591, 86, 1647, 1649, 1561, 178, 179, 180, 88, + 1648, 94, 632, 87, 1517, 1592, 528, 1520, 1521, 1793, + 2357, 1131, 528, 1269, 1889, 2138, 1269, 1736, 1269, 1596, + 1603, 2161, 1604, 1605, 1606, 1607, 1667, 1624, 1541, 1544, + 2442, 2283, 1595, 1793, 2338, 1657, 2310, 1131, 1614, 1615, + 1616, 1617, 2216, 1131, 1559, 1574, 1793, 2214, 2163, 1579, + 1017, 1630, 2013, 1594, 1668, 1131, 528, 1131, 1458, 1593, + 2166, 1131, 2161, 1458, 1458, 2070, 2069, 666, 1578, 1742, + 666, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, + 1037, 1038, 1031, 1804, 1654, 1041, 1030, 1029, 1039, 1040, + 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, 2044, 176, + 1041, 1625, 2066, 2067, 1620, 1621, 176, 1723, 1636, 1638, + 1646, 176, 176, 1635, 2343, 176, 2395, 176, 1054, 1055, + 1056, 1057, 1058, 176, 1059, 1060, 1061, 1062, 1063, 1660, + 176, 1679, 1793, 1625, 1677, 1661, 1681, 1682, 1664, 1669, + 1665, 1678, 858, 1663, 1659, 1812, 857, 609, 2066, 2065, + 1812, 1131, 1266, 1025, 1812, 1028, 1742, 1131, 176, 528, + 2437, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1833, 1026, + 1027, 1024, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, + 1036, 1037, 1038, 1031, 568, 567, 1041, 570, 571, 572, + 573, 2132, 1723, 1922, 569, 177, 1668, 574, 177, 88, + 95, 177, 1231, 1906, 1900, 1901, 529, 2137, 177, 1793, + 1792, 94, 1435, 93, 1017, 1131, 177, 1029, 1039, 1040, + 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, 177, 2131, + 1041, 1834, 1687, 1811, 1707, 1231, 1230, 1789, 1176, 1175, + 1836, 2068, 1580, 1761, 1765, 1764, 1714, 1715, 1742, 1668, + 529, 1717, 88, 529, 177, 529, 1804, 1131, 1651, 1554, + 1718, 1135, 1524, 1030, 1029, 1039, 1040, 1032, 1033, 1034, + 1035, 1036, 1037, 1038, 1031, 176, 1414, 1041, 1721, 2359, + 1131, 2201, 1360, 176, 1300, 1162, 840, 1812, 622, 839, + 81, 528, 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, + 1038, 1031, 1798, 1731, 1041, 1436, 2337, 2331, 1147, 1742, + 2298, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, + 1037, 1038, 1031, 176, 176, 1041, 2333, 2161, 1138, 1808, + 2273, 2202, 2203, 2204, 1301, 1302, 1303, 2193, 2179, 1843, + 1233, 1623, 2101, 2062, 1794, 1907, 1619, 1613, 1759, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1031, 1816, 2148, 1041, 1814, 176, 529, 1813, 1709, 1575, - 177, 2155, 2175, 2171, 1569, 529, 1788, 2170, 2160, 1598, - 1925, 529, 2119, 2120, 2098, 2121, 1002, 2180, 2123, 1121, - 2125, 2177, 537, 823, 1484, 2182, 2304, 2184, 2185, 1726, - 2134, 176, 1120, 1495, 176, 176, 176, 528, 1496, 2279, - 2183, 1845, 60, 38, 532, 2407, 993, 650, 2192, 32, - 31, 30, 29, 28, 2212, 2225, 528, 528, 528, 23, - 2195, 22, 2197, 21, 20, 19, 25, 18, 17, 16, - 109, 2230, 47, 44, 42, 2220, 1030, 1029, 1039, 1040, - 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, 116, 115, - 1041, 528, 528, 528, 176, 1030, 1029, 1039, 1040, 1032, - 1033, 1034, 1035, 1036, 1037, 1038, 1031, 2236, 45, 1041, - 41, 925, 39, 27, 26, 2229, 2264, 528, 15, 528, - 14, 13, 12, 11, 10, 9, 5, 2272, 4, 996, - 2274, 2267, 2247, 2246, 2256, 24, 2269, 2019, 2, 2255, - 2188, 2019, 2265, 0, 528, 2263, 0, 0, 0, 2244, - 2245, 618, 0, 0, 0, 0, 2271, 0, 0, 0, - 177, 2282, 0, 618, 2016, 2276, 0, 0, 2275, 0, - 0, 34, 0, 0, 528, 0, 0, 0, 0, 0, - 2284, 0, 2285, 0, 0, 0, 2288, 2291, 0, 0, - 0, 2290, 529, 0, 0, 0, 0, 0, 0, 0, + 1031, 1833, 1612, 1041, 1348, 81, 1261, 1257, 1229, 34, + 95, 107, 1790, 1740, 1741, 2205, 1883, 922, 1828, 2173, + 2174, 94, 1882, 93, 2104, 528, 1108, 1772, 2299, 1297, + 176, 1757, 88, 1869, 1870, 1871, 1872, 176, 1780, 1867, + 1868, 1634, 2399, 528, 2368, 1801, 1848, 2176, 1827, 528, + 1786, 2085, 1791, 1269, 1269, 2084, 2083, 2013, 1893, 528, + 1899, 1708, 2206, 2207, 1834, 2035, 1838, 1407, 2178, 1883, + 2036, 1919, 2032, 1723, 2033, 1835, 1298, 1299, 2037, 2034, + 1821, 1822, 176, 176, 176, 176, 176, 2031, 1849, 1630, + 1131, 2411, 1129, 1125, 1910, 2388, 1548, 1831, 176, 176, + 1139, 1540, 2167, 1875, 1918, 1885, 2089, 1126, 1993, 1817, + 1820, 1821, 1822, 1818, 176, 1819, 1823, 1884, 1992, 2173, + 2174, 2319, 1890, 1472, 2252, 1129, 1125, 1917, 1894, 1895, + 1896, 2254, 1538, 1539, 1128, 528, 1127, 2157, 1249, 1458, + 1126, 2002, 1817, 1820, 1821, 1822, 1818, 1471, 1819, 1823, + 2005, 2007, 1916, 2154, 1980, 577, 636, 1359, 1864, 2008, + 1984, 2153, 611, 1599, 637, 1122, 1123, 1128, 1887, 1127, + 528, 1485, 1959, 887, 886, 1908, 1909, 86, 618, 86, + 176, 2114, 1882, 1978, 528, 1486, 88, 1946, 87, 1915, + 87, 990, 1914, 528, 114, 2159, 1944, 88, 2011, 1945, + 528, 528, 2081, 176, 176, 176, 176, 176, 1711, 1995, + 1951, 2340, 1971, 2294, 527, 176, 2010, 1972, 2025, 1863, + 176, 2019, 1958, 176, 1957, 1996, 176, 176, 176, 1433, + 1959, 1938, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1449, + 1450, 1451, 1452, 1453, 1454, 1455, 1456, 1556, 1557, 2016, + 1988, 95, 1825, 176, 2016, 624, 1545, 1700, 664, 1994, + 1997, 815, 94, 822, 93, 644, 645, 177, 2045, 177, + 1727, 2046, 177, 88, 2026, 1118, 626, 2029, 2079, 93, + 1991, 2024, 2396, 2260, 176, 625, 89, 1492, 1990, 2038, + 2258, 528, 2063, 2064, 1369, 2043, 2249, 2257, 528, 2047, + 529, 529, 529, 2054, 176, 2042, 2250, 2158, 2027, 2028, + 95, 2030, 2156, 2086, 176, 2091, 2053, 1652, 529, 529, + 643, 94, 95, 93, 94, 2147, 1804, 1789, 176, 2401, + 2400, 176, 2075, 94, 1766, 2074, 1754, 1751, 1156, 1148, + 2401, 2115, 100, 101, 2325, 2057, 2088, 634, 97, 82, + 1, 2370, 497, 1525, 1106, 511, 2076, 2077, 2366, 1335, + 2090, 1325, 2224, 2295, 1628, 2096, 848, 1630, 2095, 2087, + 139, 1589, 1590, 2383, 104, 2136, 2110, 811, 103, 851, + 176, 949, 1653, 2217, 1865, 1600, 2109, 1030, 1029, 1039, + 1040, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, 1952, + 177, 1041, 1182, 1180, 1181, 1179, 2122, 1184, 1183, 1178, + 1408, 525, 1824, 174, 541, 2130, 2145, 177, 1171, 1030, + 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, 1038, + 1031, 1149, 2148, 1041, 888, 176, 529, 487, 2119, 2120, + 177, 2121, 2071, 2155, 2123, 529, 2125, 2170, 1685, 493, + 1049, 529, 2160, 1989, 1839, 2112, 2113, 663, 2180, 656, + 2021, 2177, 2151, 2001, 2003, 2182, 1796, 2184, 2185, 2006, + 1999, 176, 2318, 2251, 176, 176, 176, 528, 2339, 1597, + 2183, 1145, 1758, 1074, 1487, 1571, 550, 1533, 2192, 1428, + 566, 563, 564, 1782, 2212, 528, 528, 528, 528, 1805, + 2195, 1023, 2197, 548, 542, 1157, 1816, 1814, 1813, 1709, + 1575, 2230, 2175, 2171, 1569, 1788, 2220, 1598, 1925, 2098, + 1002, 1121, 537, 823, 1484, 2304, 1726, 2134, 1120, 1495, + 1496, 528, 528, 528, 176, 1030, 1029, 1039, 1040, 1032, + 1033, 1034, 1035, 1036, 1037, 1038, 1031, 2236, 2279, 1041, + 1845, 60, 38, 532, 2407, 2229, 2264, 528, 993, 528, + 650, 32, 31, 30, 29, 28, 23, 2272, 22, 21, + 2274, 2267, 2247, 2246, 2256, 2244, 2245, 2019, 2269, 2255, + 20, 2019, 19, 2265, 528, 2263, 25, 18, 17, 16, + 109, 618, 47, 44, 42, 116, 2271, 115, 45, 41, + 177, 2282, 925, 618, 2016, 2276, 39, 27, 2275, 26, + 15, 34, 14, 13, 528, 12, 11, 10, 9, 5, + 2284, 4, 2285, 996, 24, 2, 2188, 2288, 0, 0, + 2290, 0, 529, 0, 2291, 0, 0, 0, 0, 0, 0, 0, 0, 2316, 541, 1732, 1733, 1734, 0, 529, - 529, 2297, 529, 0, 529, 529, 0, 529, 529, 529, - 529, 529, 529, 2315, 528, 2317, 2314, 0, 664, 664, - 664, 0, 529, 0, 2336, 2326, 177, 0, 0, 0, + 529, 2297, 529, 0, 529, 529, 2315, 529, 529, 529, + 529, 529, 529, 2314, 528, 2317, 0, 0, 664, 664, + 664, 0, 529, 0, 2336, 1130, 177, 2326, 0, 0, 2019, 2329, 0, 0, 2328, 0, 992, 994, 2330, 528, 176, 0, 177, 0, 0, 0, 0, 0, 0, 0, - 2342, 528, 0, 529, 0, 177, 2345, 172, 0, 0, + 2342, 528, 0, 529, 0, 177, 2345, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 528, 0, 177, 0, 0, 0, 0, 2358, 0, 0, 528, 0, - 0, 114, 2355, 0, 528, 528, 177, 0, 0, 0, - 34, 0, 0, 177, 156, 2365, 2377, 0, 2382, 2369, + 0, 0, 2355, 0, 528, 528, 177, 0, 0, 0, + 34, 0, 0, 177, 0, 2365, 2377, 2129, 2382, 2369, 528, 2374, 177, 177, 177, 177, 177, 177, 177, 177, 177, 529, 529, 529, 0, 0, 0, 2392, 2016, 0, - 2398, 2297, 2384, 0, 0, 0, 0, 0, 2404, 2129, + 2398, 2297, 2384, 0, 0, 0, 0, 0, 2404, 0, 0, 0, 0, 0, 0, 0, 34, 0, 2412, 0, 2410, 177, 0, 0, 0, 0, 2415, 2414, 0, 2421, - 153, 0, 154, 0, 1152, 0, 0, 0, 2425, 2423, - 2426, 0, 171, 664, 0, 578, 0, 0, 2435, 1172, + 0, 0, 0, 0, 1152, 0, 0, 0, 2425, 2423, + 2426, 0, 0, 664, 0, 0, 0, 0, 2435, 1172, 0, 0, 2436, 0, 2438, 0, 0, 0, 0, 2440, 0, 2441, 0, 528, 0, 0, 0, 0, 0, 2449, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2444, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 175, 0, 0, 483, 1199, 0, 523, - 0, 0, 0, 0, 0, 0, 483, 0, 157, 0, - 0, 0, 529, 529, 483, 0, 0, 162, 0, 0, - 0, 0, 0, 0, 0, 0, 631, 177, 0, 1030, + 0, 0, 0, 178, 179, 180, 0, 1030, 1029, 1039, + 1040, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1031, 1737, + 0, 1041, 529, 529, 0, 0, 0, 172, 0, 0, + 0, 0, 515, 0, 0, 0, 0, 177, 0, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1031, 0, 649, 1041, 649, 0, 0, 0, 1130, 0, - 0, 0, 483, 177, 0, 0, 529, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 177, 0, 0, 529, - 0, 0, 1953, 1954, 177, 0, 177, 0, 177, 177, - 529, 0, 1737, 529, 0, 0, 1973, 1974, 0, 1975, - 1976, 0, 0, 0, 529, 0, 0, 0, 0, 0, - 1982, 1983, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, - 1036, 1037, 1038, 1031, 0, 0, 1041, 0, 0, 0, - 0, 0, 1187, 149, 0, 0, 0, 0, 0, 0, - 815, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, - 1037, 1038, 1031, 1271, 0, 1041, 0, 1277, 1277, 529, + 1031, 114, 0, 1041, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 177, 156, 0, 529, 0, 0, 0, + 0, 0, 502, 0, 0, 0, 177, 0, 0, 529, + 0, 501, 1953, 1954, 177, 0, 177, 0, 177, 177, + 529, 0, 499, 529, 0, 0, 1973, 1974, 0, 1975, + 1976, 0, 0, 0, 529, 0, 1847, 0, 0, 0, + 1982, 1983, 0, 0, 0, 0, 0, 0, 0, 0, + 153, 0, 154, 0, 0, 0, 0, 0, 0, 0, + 496, 0, 171, 0, 0, 0, 0, 0, 0, 510, + 815, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1271, 507, 0, 0, 1277, 1277, 529, 1277, 0, 1277, 1277, 0, 1286, 1277, 1277, 1277, 1277, - 1277, 0, 0, 0, 0, 1200, 0, 0, 1271, 1271, - 815, 0, 0, 529, 0, 0, 0, 0, 0, 529, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2056, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1347, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1213, 1216, 1217, 1218, - 1219, 1220, 1221, 529, 1222, 1223, 1224, 1225, 1226, 1201, - 1202, 1203, 1204, 1185, 1186, 1214, 0, 1188, 0, 1189, - 1190, 1191, 1192, 1193, 1194, 1195, 1196, 1197, 1198, 1205, - 1206, 1207, 1208, 1209, 1210, 1211, 1212, 0, 0, 664, + 1277, 0, 0, 0, 0, 0, 0, 0, 1271, 1271, + 815, 0, 0, 529, 0, 0, 516, 0, 0, 529, + 0, 0, 0, 0, 0, 0, 0, 0, 157, 2056, + 0, 0, 0, 0, 0, 0, 0, 162, 0, 0, + 0, 1347, 0, 0, 486, 0, 488, 503, 0, 518, + 0, 517, 492, 0, 490, 494, 504, 495, 0, 489, + 0, 500, 0, 529, 491, 505, 506, 508, 522, 521, + 509, 0, 498, 519, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 664, 664, 664, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 177, 177, 0, 0, 177, 0, 177, 0, 0, 0, 2116, 0, 177, 0, 0, 0, 0, 0, 0, 177, 0, 0, + 0, 0, 0, 149, 0, 0, 172, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 155, 152, 158, 159, 160, - 161, 163, 164, 165, 166, 177, 529, 0, 0, 0, - 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1215, 0, 0, 0, 0, 0, 1464, + 0, 0, 0, 0, 0, 177, 529, 0, 0, 0, + 114, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 0, 0, 0, 0, 1464, 0, 664, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1271, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1493, 1494, 0, 1025, 0, 1028, 0, 0, 0, 0, - 0, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 2194, 1026, - 1027, 1024, 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, - 1036, 1037, 1038, 1031, 0, 0, 1041, 0, 0, 0, - 0, 0, 0, 0, 1547, 483, 0, 483, 0, 0, - 483, 0, 0, 0, 0, 0, 0, 1152, 0, 0, - 664, 0, 177, 0, 0, 0, 0, 0, 664, 0, + 0, 0, 1271, 0, 578, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 520, 0, 0, 0, + 1493, 1494, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 513, 0, 0, 0, 2194, 153, + 0, 154, 0, 0, 0, 0, 0, 0, 0, 514, + 0, 171, 175, 0, 0, 483, 0, 0, 523, 0, + 0, 0, 0, 0, 1547, 483, 0, 0, 0, 0, + 0, 1132, 1134, 483, 0, 0, 0, 1152, 0, 0, + 664, 0, 177, 0, 0, 631, 0, 0, 664, 0, 177, 664, 0, 0, 0, 0, 0, 0, 529, 0, - 0, 0, 815, 0, 0, 2231, 2232, 2233, 2234, 2235, - 0, 0, 0, 2238, 2239, 0, 0, 0, 0, 0, + 0, 649, 815, 649, 0, 2231, 2232, 2233, 2234, 2235, + 0, 483, 0, 2238, 2239, 0, 0, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, + 177, 177, 0, 0, 150, 155, 152, 158, 159, 160, + 161, 163, 164, 165, 166, 0, 0, 0, 0, 0, + 167, 168, 169, 170, 0, 0, 0, 822, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 177, 177, 172, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1898, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 114, 822, 136, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 156, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 815, 0, 0, 0, 0, 0, 822, 0, 0, - 0, 0, 529, 0, 0, 0, 0, 177, 483, 0, - 146, 0, 0, 0, 177, 135, 0, 0, 0, 0, - 529, 0, 0, 0, 0, 631, 529, 0, 0, 0, - 0, 0, 0, 0, 0, 153, 529, 154, 0, 0, - 0, 815, 0, 1252, 1253, 145, 144, 171, 483, 0, + 0, 0, 529, 0, 0, 0, 0, 177, 0, 0, + 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, + 529, 0, 0, 0, 0, 0, 529, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 529, 0, 0, 0, + 0, 815, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 177, 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 140, 1254, 147, 0, 1251, 0, 141, 142, - 0, 0, 529, 157, 0, 0, 0, 0, 0, 0, - 0, 0, 162, 0, 1132, 1134, 0, 2378, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2378, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1720, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, @@ -1504,260 +1504,244 @@ var yyAct = [...]int{ 529, 0, 0, 0, 0, 0, 0, 529, 529, 0, 177, 177, 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 177, 0, 0, - 177, 0, 0, 177, 177, 177, 0, 0, 483, 0, + 177, 0, 0, 177, 177, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, - 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1272, 0, 0, 0, 0, 0, 0, + 177, 0, 0, 150, 155, 152, 158, 159, 160, 161, + 163, 164, 165, 166, 0, 0, 0, 0, 0, 167, + 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 529, 0, - 0, 0, 0, 0, 0, 529, 1783, 0, 1272, 1272, - 0, 177, 0, 0, 483, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 529, 1783, 0, 0, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, - 1323, 0, 0, 143, 0, 177, 0, 0, 177, 0, - 0, 0, 0, 483, 0, 137, 0, 0, 138, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1368, 0, + 0, 177, 0, 0, 483, 0, 483, 0, 0, 483, + 0, 0, 0, 0, 0, 177, 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, - 0, 483, 0, 0, 0, 0, 0, 177, 0, 0, - 1391, 1392, 483, 483, 483, 483, 483, 483, 483, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1491, 0, 0, 1491, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 177, 0, 1132, + 1523, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1888, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1547, 0, - 0, 0, 0, 0, 1905, 0, 0, 0, 0, 483, + 0, 0, 0, 0, 0, 0, 1109, 0, 1547, 1543, + 0, 0, 0, 0, 1905, 0, 0, 0, 0, 0, 0, 0, 664, 0, 1911, 0, 0, 0, 0, 0, - 0, 0, 177, 0, 0, 0, 0, 0, 0, 150, - 155, 152, 158, 159, 160, 161, 163, 164, 165, 166, - 0, 0, 0, 0, 0, 167, 168, 169, 170, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 177, 0, - 0, 177, 177, 177, 529, 0, 0, 0, 0, 0, - 649, 1368, 649, 649, 0, 0, 649, 649, 649, 0, - 0, 0, 1272, 529, 529, 529, 0, 0, 0, 0, + 0, 0, 177, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 483, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 482, 0, 0, + 0, 0, 0, 0, 631, 0, 0, 531, 177, 0, + 0, 177, 177, 177, 529, 614, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 483, 0, 0, + 0, 0, 529, 529, 529, 529, 0, 0, 0, 0, 664, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 649, 649, 649, 649, 649, 0, 0, - 0, 0, 0, 0, 0, 1323, 0, 0, 529, 529, - 529, 177, 0, 0, 0, 1277, 0, 649, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1998, - 0, 631, 0, 0, 529, 0, 529, 0, 664, 0, - 0, 0, 1271, 0, 483, 2023, 1277, 1271, 0, 0, - 1368, 0, 483, 0, 483, 0, 483, 1577, 0, 0, - 0, 529, 0, 0, 0, 0, 0, 0, 610, 73, - 0, 0, 0, 0, 0, 0, 0, 1491, 0, 0, - 1491, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1132, 1523, 0, 0, 0, 0, 0, 0, - 0, 0, 1109, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1543, 0, 0, 0, 815, 0, 0, 1271, - 621, 529, 73, 1547, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 621, 0, 0, 482, 0, 0, 529, 177, 0, 0, - 0, 0, 0, 531, 0, 0, 0, 0, 529, 0, - 0, 614, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 529, 0, 72, 36, 37, - 74, 0, 0, 0, 0, 529, 0, 0, 0, 0, - 0, 529, 529, 0, 0, 0, 0, 78, 0, 819, - 0, 40, 66, 67, 0, 64, 68, 529, 0, 0, - 0, 0, 0, 0, 65, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, - 0, 483, 0, 0, 0, 0, 483, 483, 0, 0, - 483, 0, 1712, 53, 0, 0, 0, 0, 483, 0, - 0, 0, 0, 0, 81, 483, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, - 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1547, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 2226, 2227, 2228, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 43, 46, 49, 48, 51, - 0, 63, 649, 649, 69, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2242, 2242, 2242, 0, - 649, 0, 0, 0, 0, 0, 52, 77, 76, 0, - 0, 61, 62, 50, 0, 0, 0, 1271, 0, 0, - 0, 0, 2268, 0, 2270, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 483, 0, 0, 0, 0, 0, 0, 0, 1323, 1547, - 0, 0, 54, 55, 0, 56, 57, 58, 59, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 664, - 1738, 0, 0, 0, 1739, 0, 0, 0, 483, 483, - 0, 0, 1745, 1746, 0, 0, 0, 0, 1752, 0, - 0, 1755, 1756, 0, 0, 0, 0, 0, 0, 1762, - 0, 1763, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1547, - 0, 0, 0, 0, 0, 0, 1767, 1768, 1769, 1770, - 1771, 1543, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1781, 0, 1547, 483, 0, 0, 0, 0, - 0, 0, 1897, 0, 0, 0, 2351, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 75, 0, 0, 0, - 0, 1271, 1368, 2356, 0, 0, 0, 0, 0, 80, - 0, 0, 0, 1547, 0, 0, 0, 0, 0, 664, - 664, 985, 985, 985, 0, 0, 0, 483, 483, 483, - 483, 483, 926, 0, 931, 1547, 0, 933, 0, 0, - 0, 73, 0, 483, 483, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1050, 621, 0, 0, 0, 483, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 649, 649, - 0, 0, 0, 0, 0, 0, 1064, 0, 0, 0, - 1066, 1067, 1068, 1069, 1070, 1071, 1072, 1073, 0, 1076, - 1078, 1081, 1081, 1081, 1078, 1081, 1081, 1078, 1081, 1094, - 1095, 1096, 1097, 1098, 1099, 1100, 1101, 172, 1547, 0, - 0, 0, 0, 1110, 0, 483, 621, 0, 0, 0, - 621, 0, 0, 0, 0, 0, 621, 0, 0, 0, - 0, 114, 1272, 136, 0, 0, 0, 1272, 483, 483, - 483, 483, 483, 0, 156, 0, 0, 0, 0, 0, - 2039, 0, 0, 0, 0, 483, 0, 0, 483, 0, - 0, 483, 2048, 1368, 0, 0, 0, 0, 0, 1955, - 1956, 0, 0, 0, 0, 146, 0, 0, 0, 0, - 135, 0, 0, 0, 0, 0, 0, 0, 483, 0, - 0, 0, 0, 0, 0, 1159, 0, 0, 0, 0, - 153, 0, 154, 0, 0, 0, 0, 0, 123, 124, - 145, 144, 171, 0, 0, 0, 0, 0, 0, 483, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1272, - 0, 0, 0, 0, 0, 0, 0, 0, 2022, 483, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 483, - 0, 0, 0, 0, 0, 2040, 2041, 0, 0, 0, - 0, 0, 0, 483, 0, 0, 483, 140, 121, 147, - 128, 120, 172, 141, 142, 0, 0, 0, 157, 0, - 0, 0, 0, 1248, 0, 0, 0, 162, 129, 0, - 0, 0, 0, 0, 0, 0, 114, 0, 136, 0, - 0, 0, 132, 130, 125, 126, 127, 131, 0, 156, - 0, 0, 122, 0, 0, 483, 0, 0, 0, 0, - 0, 133, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 146, 0, 0, 0, 0, 135, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 1177, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 153, 0, 154, 0, 0, - 483, 0, 0, 1252, 1253, 145, 144, 171, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2117, 0, 2118, - 0, 0, 0, 149, 0, 0, 0, 0, 0, 0, - 2127, 2128, 0, 0, 0, 0, 483, 0, 0, 483, - 483, 483, 0, 2139, 0, 0, 0, 2143, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1308, 140, 1254, 147, 0, 1251, 0, 141, 142, - 0, 0, 0, 157, 0, 0, 0, 0, 0, 2164, - 2165, 0, 162, 2169, 0, 0, 0, 0, 0, 0, - 1349, 0, 0, 0, 0, 0, 0, 0, 143, 1323, - 0, 2181, 985, 985, 985, 0, 0, 0, 0, 0, - 137, 0, 0, 138, 0, 0, 0, 1272, 0, 0, - 0, 1378, 0, 0, 0, 0, 0, 0, 1382, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1393, - 1394, 1395, 1396, 1397, 1398, 1399, 0, 0, 0, 0, - 0, 2215, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1417, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 149, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 2241, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 150, 155, 152, 158, 159, 160, - 161, 163, 164, 165, 166, 0, 0, 0, 0, 0, - 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 483, 0, 0, 0, 0, - 0, 0, 0, 143, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 137, 0, 0, 138, 0, - 0, 1272, 0, 0, 0, 0, 0, 0, 0, 1572, - 2300, 2301, 2302, 2303, 0, 2307, 0, 2308, 2309, 2311, - 0, 0, 0, 2312, 2313, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1558, 0, 0, 0, 0, 0, 0, 0, 1562, - 0, 1565, 0, 0, 1417, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2347, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 150, - 155, 152, 158, 159, 160, 161, 163, 164, 165, 166, - 0, 0, 0, 0, 0, 167, 168, 169, 170, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 2405, 2406, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 819, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 529, 529, + 529, 177, 0, 0, 0, 1277, 0, 0, 0, 0, + 0, 0, 0, 610, 73, 0, 0, 0, 0, 1998, + 0, 0, 0, 0, 529, 0, 529, 0, 664, 0, + 0, 0, 1271, 0, 0, 2023, 1277, 1271, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1417, 0, 0, 0, 0, 0, 0, 1696, 0, - 0, 0, 0, 1705, 1706, 0, 0, 1710, 0, 0, - 0, 0, 0, 0, 0, 1713, 0, 0, 0, 0, - 0, 0, 1716, 0, 0, 0, 0, 0, 0, 0, + 0, 529, 0, 0, 0, 621, 0, 73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 621, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 483, 0, 0, + 0, 0, 0, 0, 0, 0, 815, 0, 0, 1271, + 0, 529, 0, 1547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1719, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1743, + 0, 0, 0, 0, 0, 0, 529, 177, 0, 0, + 0, 0, 1272, 0, 0, 0, 0, 0, 529, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 529, 0, 1272, 1272, 0, + 0, 0, 0, 483, 0, 529, 0, 0, 0, 0, + 0, 529, 529, 0, 0, 0, 0, 1738, 0, 1323, + 0, 1739, 0, 0, 0, 0, 0, 529, 0, 1745, + 1746, 0, 483, 0, 0, 1752, 0, 0, 1755, 1756, + 0, 0, 0, 0, 0, 0, 1762, 1368, 1763, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, + 483, 0, 0, 1767, 1768, 1769, 1770, 1771, 1543, 1391, + 1392, 483, 483, 483, 483, 483, 483, 483, 0, 1781, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 529, 0, 0, 0, 0, 0, 0, 0, 483, 0, + 0, 0, 1547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1779, + 2225, 2226, 2227, 2228, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 621, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 926, 0, 931, 0, + 0, 933, 0, 0, 0, 0, 2242, 2242, 2242, 649, + 1368, 649, 649, 0, 0, 649, 649, 649, 0, 0, + 0, 1272, 0, 0, 0, 0, 0, 1271, 0, 0, + 0, 0, 2268, 0, 2270, 0, 0, 0, 0, 0, + 0, 0, 649, 649, 649, 649, 649, 0, 0, 0, + 0, 0, 0, 0, 1323, 0, 0, 0, 0, 1547, + 0, 0, 0, 0, 0, 0, 649, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1809, 1810, 0, 0, 0, 0, 0, 0, - 0, 1829, 0, 0, 0, 0, 0, 0, 0, 0, + 631, 0, 0, 0, 0, 0, 0, 0, 0, 664, + 0, 0, 0, 483, 0, 0, 0, 0, 0, 1368, + 0, 483, 0, 483, 0, 483, 1577, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1955, 1956, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1547, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1830, 0, 0, 0, + 0, 0, 0, 0, 1547, 0, 985, 985, 985, 1159, + 0, 0, 0, 0, 0, 0, 2351, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 73, 0, 0, 0, + 0, 1271, 0, 2356, 0, 2022, 0, 0, 0, 1050, + 621, 0, 0, 1547, 0, 0, 0, 0, 0, 664, + 664, 0, 2040, 2041, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1547, 0, 0, 0, 0, + 0, 1064, 0, 0, 0, 1066, 1067, 1068, 1069, 1070, + 1071, 1072, 1073, 0, 1076, 1078, 1081, 1081, 1081, 1078, + 1081, 1081, 1078, 1081, 1094, 1095, 1096, 1097, 1098, 1099, + 1100, 1101, 0, 0, 0, 0, 0, 0, 1110, 0, + 0, 621, 0, 0, 0, 621, 0, 0, 0, 0, + 0, 621, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, + 483, 0, 0, 0, 0, 483, 483, 0, 1547, 483, + 0, 1712, 0, 1199, 0, 0, 0, 483, 0, 0, + 0, 0, 0, 0, 483, 0, 0, 0, 0, 1177, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2117, 0, 2118, 0, 0, 0, + 0, 0, 483, 0, 0, 0, 0, 2127, 2128, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2139, 0, 0, 0, 2143, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 1308, 2164, 2165, 0, 0, + 2169, 649, 649, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 172, 0, 2181, 649, + 0, 0, 0, 0, 1349, 0, 0, 1898, 1187, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 114, 0, 136, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 156, 0, 1378, 0, 0, 0, 483, + 0, 0, 1382, 0, 0, 0, 0, 1323, 2215, 0, + 0, 1200, 0, 1393, 1394, 1395, 1396, 1397, 1398, 1399, + 0, 0, 0, 0, 146, 0, 0, 0, 0, 135, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 483, 483, 153, + 1417, 154, 0, 0, 0, 0, 2241, 1252, 1253, 145, + 144, 171, 1213, 1216, 1217, 1218, 1219, 1220, 1221, 0, + 1222, 1223, 1224, 1225, 1226, 1201, 1202, 1203, 1204, 1185, + 1186, 1214, 0, 1188, 0, 1189, 1190, 1191, 1192, 1193, + 1194, 1195, 1196, 1197, 1198, 1205, 1206, 1207, 1208, 1209, + 1210, 1211, 1212, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 483, 0, 140, 1254, 147, 0, + 1251, 1897, 141, 142, 0, 0, 0, 157, 0, 0, + 0, 0, 0, 0, 0, 0, 162, 0, 0, 0, + 0, 1368, 0, 0, 0, 0, 0, 2300, 2301, 2302, + 2303, 0, 2307, 0, 2308, 2309, 2311, 985, 985, 985, + 2312, 2313, 0, 0, 0, 0, 483, 483, 483, 483, + 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 483, 483, 0, 0, 0, 0, 0, 1215, + 0, 0, 0, 0, 0, 1558, 0, 0, 483, 0, + 0, 0, 0, 1562, 0, 1565, 0, 0, 1417, 0, + 0, 0, 0, 0, 0, 0, 0, 649, 649, 0, + 2347, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 149, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1272, 0, 0, 0, 0, 1272, 483, 483, 483, + 483, 483, 0, 0, 2405, 2406, 0, 0, 0, 2039, + 0, 0, 0, 0, 483, 0, 0, 483, 0, 0, + 483, 2048, 1368, 0, 0, 0, 0, 143, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 137, + 0, 0, 138, 0, 0, 0, 0, 483, 0, 0, + 0, 0, 0, 0, 1572, 0, 0, 72, 36, 37, + 74, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 78, 483, 0, + 0, 40, 66, 67, 0, 64, 68, 0, 1272, 0, + 0, 0, 0, 0, 65, 0, 0, 0, 483, 0, + 172, 0, 0, 0, 0, 1417, 0, 0, 483, 0, + 0, 1248, 1696, 0, 0, 0, 0, 1705, 1706, 0, + 0, 1710, 483, 53, 114, 483, 136, 0, 0, 1713, + 0, 0, 0, 0, 81, 0, 1716, 156, 0, 0, + 0, 0, 0, 150, 155, 152, 158, 159, 160, 161, + 163, 164, 165, 166, 0, 0, 0, 0, 0, 167, + 168, 169, 170, 0, 1719, 0, 0, 0, 146, 0, + 0, 0, 0, 135, 483, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 153, 0, 154, 0, 0, 0, 0, + 0, 1252, 1253, 145, 144, 171, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 43, 46, 49, 48, 51, + 0, 63, 0, 0, 69, 0, 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 52, 77, 76, 0, + 0, 61, 62, 50, 0, 0, 0, 0, 0, 0, + 140, 1254, 147, 0, 1251, 483, 141, 142, 483, 483, + 483, 157, 0, 0, 0, 0, 0, 0, 0, 0, + 162, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 54, 55, 0, 56, 57, 58, 59, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1912, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1891, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1323, 0, + 1830, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1743, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 149, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1891, 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, 1779, 0, 0, 0, 0, 80, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 621, + 0, 0, 0, 0, 0, 0, 0, 0, 1929, 1930, + 1931, 1932, 1933, 0, 0, 0, 0, 1809, 1810, 0, + 0, 143, 0, 0, 1417, 1939, 1829, 0, 0, 0, + 0, 0, 0, 137, 0, 0, 138, 0, 0, 0, + 1947, 0, 0, 0, 483, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1929, 1930, 1931, 1932, 1933, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1417, 1939, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1947, 0, 0, 0, + 1272, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2020, 0, 73, 0, - 0, 1572, 1572, 1572, 1572, 1572, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 1829, 0, - 0, 1572, 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1912, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 150, 155, 152, + 158, 159, 160, 161, 163, 164, 165, 166, 0, 0, + 0, 0, 0, 167, 168, 169, 170, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 2061, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2061, 0, 0, 0, 0, + 2082, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2094, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 2097, 0, 0, 1572, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 2108, 0, 0, 2111, 0, 0, + 0, 2020, 0, 73, 0, 0, 1572, 1572, 1572, 1572, + 1572, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1829, 0, 0, 1572, 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2082, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2144, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2094, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2097, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 2133, 0, 0, 0, - 2108, 0, 0, 2111, 2140, 2141, 2142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2144, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 2208, 0, 0, + 2209, 2210, 2211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 2133, 0, 0, 0, 0, 0, 0, 0, 2140, + 2141, 2142, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 2208, 0, 0, 2209, 2210, 2211, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1572, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 2020, 0, 73, 0, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -1767,181 +1751,27 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 2341, 0, - 0, 0, 0, 73, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 2346, 2020, 0, 73, + 0, 2020, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 73, - 0, 0, 2346, 793, 779, 407, 0, 726, 796, 696, - 714, 806, 717, 720, 761, 675, 739, 330, 711, 0, - 700, 671, 706, 672, 698, 728, 235, 695, 781, 743, - 795, 287, 232, 677, 701, 344, 716, 187, 763, 383, - 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, - 342, 401, 336, 802, 291, 750, 0, 392, 315, 0, - 0, 0, 730, 785, 737, 775, 725, 762, 685, 749, - 797, 712, 758, 798, 277, 218, 186, 327, 393, 250, - 0, 0, 0, 0, 178, 179, 180, 0, 2385, 0, - 2386, 0, 0, 0, 0, 0, 209, 0, 216, 708, - 755, 792, 709, 757, 230, 275, 237, 229, 411, 803, - 784, 0, 0, 202, 794, 732, 760, 809, 670, 752, - 0, 673, 676, 805, 788, 704, 240, 0, 0, 0, - 0, 0, 0, 0, 729, 738, 772, 723, 0, 0, - 0, 0, 0, 0, 0, 0, 702, 0, 748, 0, - 0, 0, 681, 674, 0, 0, 0, 0, 727, 0, - 0, 0, 684, 0, 703, 773, 0, 668, 258, 678, - 316, 0, 777, 787, 724, 443, 791, 722, 721, 767, - 682, 783, 715, 286, 680, 283, 182, 198, 0, 713, - 326, 366, 372, 782, 699, 707, 221, 705, 370, 340, - 428, 205, 248, 363, 345, 368, 747, 765, 369, 292, - 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, - 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, - 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, - 400, 424, 210, 381, 0, 0, 458, 192, 422, 397, - 310, 279, 280, 191, 0, 362, 233, 254, 223, 329, - 419, 420, 222, 459, 201, 439, 194, 987, 438, 322, - 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, - 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, - 0, 394, 432, 460, 206, 207, 208, 694, 243, 247, - 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, - 778, 410, 427, 435, 442, 448, 449, 451, 452, 453, - 454, 455, 321, 268, 390, 284, 293, 770, 808, 339, - 371, 211, 430, 391, 689, 693, 687, 688, 741, 742, - 690, 799, 800, 801, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 0, 774, 683, 0, 691, 692, 0, 780, - 789, 790, 746, 181, 195, 289, 804, 360, 251, 457, - 437, 433, 669, 686, 227, 697, 0, 0, 710, 718, - 719, 731, 733, 734, 735, 736, 745, 753, 754, 756, - 764, 766, 769, 771, 776, 786, 807, 183, 184, 196, - 204, 214, 226, 241, 249, 259, 264, 267, 272, 273, - 276, 281, 299, 304, 305, 306, 307, 323, 324, 325, - 328, 331, 332, 335, 337, 338, 341, 348, 349, 350, - 351, 352, 354, 361, 365, 373, 374, 375, 376, 377, - 379, 380, 384, 385, 386, 387, 395, 399, 417, 418, - 429, 441, 446, 260, 425, 447, 0, 298, 744, 751, - 300, 245, 263, 274, 759, 436, 396, 200, 367, 252, - 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, - 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, - 406, 312, 231, 346, 740, 768, 296, 408, 409, 270, - 793, 779, 407, 0, 726, 796, 696, 714, 806, 717, - 720, 761, 675, 739, 330, 711, 0, 700, 671, 706, - 672, 698, 728, 235, 695, 781, 743, 795, 287, 232, - 677, 701, 344, 716, 187, 763, 383, 220, 297, 294, - 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, - 802, 291, 750, 0, 392, 315, 0, 0, 0, 730, - 785, 737, 775, 725, 762, 685, 749, 797, 712, 758, - 798, 277, 218, 186, 327, 393, 250, 0, 0, 0, - 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 209, 0, 216, 708, 755, 792, 709, - 757, 230, 275, 237, 229, 411, 803, 784, 0, 0, - 202, 794, 732, 760, 809, 670, 752, 0, 673, 676, - 805, 788, 704, 240, 0, 0, 0, 0, 0, 0, - 0, 729, 738, 772, 723, 0, 0, 0, 0, 0, - 0, 2049, 0, 702, 0, 748, 0, 0, 0, 681, - 674, 0, 0, 0, 0, 727, 0, 0, 0, 684, - 0, 703, 773, 0, 668, 258, 678, 316, 0, 777, - 787, 724, 443, 791, 722, 721, 767, 682, 783, 715, - 286, 680, 283, 182, 198, 0, 713, 326, 366, 372, - 782, 699, 707, 221, 705, 370, 340, 428, 205, 248, - 363, 345, 368, 747, 765, 369, 292, 416, 358, 426, - 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, - 334, 398, 431, 389, 313, 412, 413, 282, 388, 256, - 185, 290, 450, 197, 378, 213, 190, 400, 424, 210, - 381, 0, 0, 458, 192, 422, 397, 310, 279, 280, - 191, 0, 362, 233, 254, 223, 329, 419, 420, 222, - 459, 201, 439, 194, 987, 438, 322, 415, 423, 311, - 302, 193, 421, 309, 301, 285, 244, 265, 356, 295, - 357, 266, 318, 317, 319, 0, 188, 0, 394, 432, - 460, 206, 207, 208, 694, 243, 247, 253, 255, 261, - 262, 269, 288, 333, 355, 353, 359, 778, 410, 427, - 435, 442, 448, 449, 451, 452, 453, 454, 455, 321, - 268, 390, 284, 293, 770, 808, 339, 371, 211, 430, - 391, 689, 693, 687, 688, 741, 742, 690, 799, 800, - 801, 461, 462, 463, 464, 465, 466, 467, 468, 469, - 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, - 774, 683, 0, 691, 692, 0, 780, 789, 790, 746, - 181, 195, 289, 804, 360, 251, 457, 437, 433, 669, - 686, 227, 697, 0, 0, 710, 718, 719, 731, 733, - 734, 735, 736, 745, 753, 754, 756, 764, 766, 769, - 771, 776, 786, 807, 183, 184, 196, 204, 214, 226, - 241, 249, 259, 264, 267, 272, 273, 276, 281, 299, - 304, 305, 306, 307, 323, 324, 325, 328, 331, 332, - 335, 337, 338, 341, 348, 349, 350, 351, 352, 354, - 361, 365, 373, 374, 375, 376, 377, 379, 380, 384, - 385, 386, 387, 395, 399, 417, 418, 429, 441, 446, - 260, 425, 447, 0, 298, 744, 751, 300, 245, 263, - 274, 759, 436, 396, 200, 367, 252, 189, 217, 203, - 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, - 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, - 346, 740, 768, 296, 408, 409, 270, 793, 779, 407, - 0, 726, 796, 696, 714, 806, 717, 720, 761, 675, - 739, 330, 711, 0, 700, 671, 706, 672, 698, 728, - 235, 695, 781, 743, 795, 287, 232, 677, 701, 344, - 716, 187, 763, 383, 220, 297, 294, 414, 246, 238, - 234, 219, 271, 303, 342, 401, 336, 802, 291, 750, - 0, 392, 315, 0, 0, 0, 730, 785, 737, 775, - 725, 762, 685, 749, 797, 712, 758, 798, 277, 218, - 186, 327, 393, 250, 0, 0, 0, 0, 178, 179, - 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 209, 0, 216, 708, 755, 792, 709, 757, 230, 275, - 237, 229, 411, 803, 784, 0, 0, 202, 794, 732, - 760, 809, 670, 752, 0, 673, 676, 805, 788, 704, - 240, 0, 0, 0, 0, 0, 0, 0, 729, 738, - 772, 723, 0, 0, 0, 0, 0, 0, 2009, 0, - 702, 0, 748, 0, 0, 0, 681, 674, 0, 0, - 0, 0, 727, 0, 0, 0, 684, 0, 703, 773, - 0, 668, 258, 678, 316, 0, 777, 787, 724, 443, - 791, 722, 721, 767, 682, 783, 715, 286, 680, 283, - 182, 198, 0, 713, 326, 366, 372, 782, 699, 707, - 221, 705, 370, 340, 428, 205, 248, 363, 345, 368, - 747, 765, 369, 292, 416, 358, 426, 444, 445, 228, - 320, 434, 405, 440, 456, 199, 225, 334, 398, 431, - 389, 313, 412, 413, 282, 388, 256, 185, 290, 450, - 197, 378, 213, 190, 400, 424, 210, 381, 0, 0, - 458, 192, 422, 397, 310, 279, 280, 191, 0, 362, - 233, 254, 223, 329, 419, 420, 222, 459, 201, 439, - 194, 987, 438, 322, 415, 423, 311, 302, 193, 421, - 309, 301, 285, 244, 265, 356, 295, 357, 266, 318, - 317, 319, 0, 188, 0, 394, 432, 460, 206, 207, - 208, 694, 243, 247, 253, 255, 261, 262, 269, 288, - 333, 355, 353, 359, 778, 410, 427, 435, 442, 448, - 449, 451, 452, 453, 454, 455, 321, 268, 390, 284, - 293, 770, 808, 339, 371, 211, 430, 391, 689, 693, - 687, 688, 741, 742, 690, 799, 800, 801, 461, 462, - 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, - 473, 474, 475, 476, 477, 478, 0, 774, 683, 0, - 691, 692, 0, 780, 789, 790, 746, 181, 195, 289, - 804, 360, 251, 457, 437, 433, 669, 686, 227, 697, - 0, 0, 710, 718, 719, 731, 733, 734, 735, 736, - 745, 753, 754, 756, 764, 766, 769, 771, 776, 786, - 807, 183, 184, 196, 204, 214, 226, 241, 249, 259, - 264, 267, 272, 273, 276, 281, 299, 304, 305, 306, - 307, 323, 324, 325, 328, 331, 332, 335, 337, 338, - 341, 348, 349, 350, 351, 352, 354, 361, 365, 373, - 374, 375, 376, 377, 379, 380, 384, 385, 386, 387, - 395, 399, 417, 418, 429, 441, 446, 260, 425, 447, - 0, 298, 744, 751, 300, 245, 263, 274, 759, 436, - 396, 200, 367, 252, 189, 217, 203, 224, 239, 242, - 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, - 382, 402, 403, 404, 406, 312, 231, 346, 740, 768, - 296, 408, 409, 270, 793, 779, 407, 0, 726, 796, + 0, 0, 0, 0, 793, 779, 407, 0, 726, 796, 696, 714, 806, 717, 720, 761, 675, 739, 330, 711, 0, 700, 671, 706, 672, 698, 728, 235, 695, 781, 743, 795, 287, 232, 677, 701, 344, 716, 187, 763, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 802, 291, 750, 0, 392, 315, - 0, 0, 0, 730, 785, 737, 775, 725, 762, 685, + 2020, 0, 0, 730, 785, 737, 775, 725, 762, 685, 749, 797, 712, 758, 798, 277, 218, 186, 327, 393, - 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, + 250, 0, 0, 2341, 0, 178, 179, 180, 73, 2385, + 0, 2386, 0, 0, 0, 0, 0, 209, 0, 216, 708, 755, 792, 709, 757, 230, 275, 237, 229, 411, 803, 784, 0, 0, 202, 794, 732, 760, 809, 670, 752, 0, 673, 676, 805, 788, 704, 240, 0, 0, - 0, 0, 0, 0, 0, 729, 738, 772, 723, 0, - 0, 0, 0, 0, 0, 1560, 0, 702, 0, 748, + 0, 0, 0, 0, 73, 729, 738, 772, 723, 0, + 0, 0, 0, 0, 0, 0, 0, 702, 0, 748, 0, 0, 0, 681, 674, 0, 0, 0, 0, 727, 0, 0, 0, 684, 0, 703, 773, 0, 668, 258, 678, 316, 0, 777, 787, 724, 443, 791, 722, 721, @@ -1985,14 +1815,14 @@ var yyAct = [...]int{ 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 802, 291, 750, 0, 392, 315, 0, 0, 0, 730, 785, 737, 775, 725, 762, 685, 749, 797, 712, - 758, 798, 277, 218, 186, 327, 393, 250, 0, 81, + 758, 798, 277, 218, 186, 327, 393, 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 708, 755, 792, 709, 757, 230, 275, 237, 229, 411, 803, 784, 0, 0, 202, 794, 732, 760, 809, 670, 752, 0, 673, 676, 805, 788, 704, 240, 0, 0, 0, 0, 0, 0, 0, 729, 738, 772, 723, 0, 0, 0, 0, - 0, 0, 0, 0, 702, 0, 748, 0, 0, 0, + 0, 0, 2049, 0, 702, 0, 748, 0, 0, 0, 681, 674, 0, 0, 0, 0, 727, 0, 0, 0, 684, 0, 703, 773, 0, 668, 258, 678, 316, 0, 777, 787, 724, 443, 791, 722, 721, 767, 682, 783, @@ -2042,7 +1872,7 @@ var yyAct = [...]int{ 275, 237, 229, 411, 803, 784, 0, 0, 202, 794, 732, 760, 809, 670, 752, 0, 673, 676, 805, 788, 704, 240, 0, 0, 0, 0, 0, 0, 0, 729, - 738, 772, 723, 0, 0, 0, 0, 0, 0, 0, + 738, 772, 723, 0, 0, 0, 0, 0, 0, 2009, 0, 702, 0, 748, 0, 0, 0, 681, 674, 0, 0, 0, 0, 727, 0, 0, 0, 684, 0, 703, 773, 0, 668, 258, 678, 316, 0, 777, 787, 724, @@ -2090,10 +1920,10 @@ var yyAct = [...]int{ 393, 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 708, 755, 792, 709, 757, 230, 275, 237, 229, - 411, 803, 784, 0, 0, 810, 794, 732, 760, 809, + 411, 803, 784, 0, 0, 202, 794, 732, 760, 809, 670, 752, 0, 673, 676, 805, 788, 704, 240, 0, 0, 0, 0, 0, 0, 0, 729, 738, 772, 723, - 0, 0, 0, 0, 0, 0, 0, 0, 702, 0, + 0, 0, 0, 0, 0, 0, 1560, 0, 702, 0, 748, 0, 0, 0, 681, 674, 0, 0, 0, 0, 727, 0, 0, 0, 684, 0, 703, 773, 0, 668, 258, 678, 316, 0, 777, 787, 724, 443, 791, 722, @@ -2105,13 +1935,13 @@ var yyAct = [...]int{ 412, 413, 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, 424, 210, 381, 0, 0, 458, 192, 422, 397, 310, 279, 280, 191, 0, 362, 233, 254, - 223, 329, 419, 420, 222, 459, 201, 439, 194, 679, + 223, 329, 419, 420, 222, 459, 201, 439, 194, 987, 438, 322, 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, 0, 394, 432, 460, 206, 207, 208, 694, 243, 247, 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, 778, 410, 427, 435, 442, 448, 449, 451, - 452, 453, 454, 455, 667, 661, 660, 284, 293, 770, + 452, 453, 454, 455, 321, 268, 390, 284, 293, 770, 808, 339, 371, 211, 430, 391, 689, 693, 687, 688, 741, 742, 690, 799, 800, 801, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, @@ -2138,10 +1968,10 @@ var yyAct = [...]int{ 401, 336, 802, 291, 750, 0, 392, 315, 0, 0, 0, 730, 785, 737, 775, 725, 762, 685, 749, 797, 712, 758, 798, 277, 218, 186, 327, 393, 250, 0, - 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, + 81, 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 708, 755, 792, 709, 757, 230, 275, 237, 229, 411, 803, 784, - 0, 0, 810, 794, 732, 760, 809, 670, 752, 0, + 0, 0, 202, 794, 732, 760, 809, 670, 752, 0, 673, 676, 805, 788, 704, 240, 0, 0, 0, 0, 0, 0, 0, 729, 738, 772, 723, 0, 0, 0, 0, 0, 0, 0, 0, 702, 0, 748, 0, 0, @@ -2154,15 +1984,15 @@ var yyAct = [...]int{ 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, - 1163, 210, 381, 0, 0, 458, 192, 422, 397, 310, + 424, 210, 381, 0, 0, 458, 192, 422, 397, 310, 279, 280, 191, 0, 362, 233, 254, 223, 329, 419, - 420, 222, 459, 201, 439, 194, 679, 438, 322, 415, + 420, 222, 459, 201, 439, 194, 987, 438, 322, 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, 0, 394, 432, 460, 206, 207, 208, 694, 243, 247, 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, 778, 410, 427, 435, 442, 448, 449, 451, 452, 453, 454, - 455, 667, 661, 660, 284, 293, 770, 808, 339, 371, + 455, 321, 268, 390, 284, 293, 770, 808, 339, 371, 211, 430, 391, 689, 693, 687, 688, 741, 742, 690, 799, 800, 801, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, @@ -2191,7 +2021,7 @@ var yyAct = [...]int{ 277, 218, 186, 327, 393, 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 708, 755, 792, 709, 757, - 230, 275, 237, 229, 411, 803, 784, 0, 0, 810, + 230, 275, 237, 229, 411, 803, 784, 0, 0, 202, 794, 732, 760, 809, 670, 752, 0, 673, 676, 805, 788, 704, 240, 0, 0, 0, 0, 0, 0, 0, 729, 738, 772, 723, 0, 0, 0, 0, 0, 0, @@ -2204,16 +2034,16 @@ var yyAct = [...]int{ 345, 368, 747, 765, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, 388, 256, 185, - 290, 450, 197, 378, 213, 190, 400, 658, 210, 381, + 290, 450, 197, 378, 213, 190, 400, 424, 210, 381, 0, 0, 458, 192, 422, 397, 310, 279, 280, 191, 0, 362, 233, 254, 223, 329, 419, 420, 222, 459, - 201, 439, 194, 679, 438, 322, 415, 423, 311, 302, + 201, 439, 194, 987, 438, 322, 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, 0, 394, 432, 460, 206, 207, 208, 694, 243, 247, 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, 778, 410, 427, 435, - 442, 448, 449, 451, 452, 453, 454, 455, 667, 661, - 660, 284, 293, 770, 808, 339, 371, 211, 430, 391, + 442, 448, 449, 451, 452, 453, 454, 455, 321, 268, + 390, 284, 293, 770, 808, 339, 371, 211, 430, 391, 689, 693, 687, 688, 741, 742, 690, 799, 800, 801, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 774, @@ -2231,10 +2061,262 @@ var yyAct = [...]int{ 759, 436, 396, 200, 367, 252, 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, - 740, 768, 296, 408, 409, 270, 407, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 330, 0, - 0, 1466, 0, 546, 0, 0, 0, 235, 545, 0, - 0, 0, 287, 232, 0, 1467, 344, 0, 187, 0, + 740, 768, 296, 408, 409, 270, 793, 779, 407, 0, + 726, 796, 696, 714, 806, 717, 720, 761, 675, 739, + 330, 711, 0, 700, 671, 706, 672, 698, 728, 235, + 695, 781, 743, 795, 287, 232, 677, 701, 344, 716, + 187, 763, 383, 220, 297, 294, 414, 246, 238, 234, + 219, 271, 303, 342, 401, 336, 802, 291, 750, 0, + 392, 315, 0, 0, 0, 730, 785, 737, 775, 725, + 762, 685, 749, 797, 712, 758, 798, 277, 218, 186, + 327, 393, 250, 0, 0, 0, 0, 178, 179, 180, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, + 0, 216, 708, 755, 792, 709, 757, 230, 275, 237, + 229, 411, 803, 784, 0, 0, 810, 794, 732, 760, + 809, 670, 752, 0, 673, 676, 805, 788, 704, 240, + 0, 0, 0, 0, 0, 0, 0, 729, 738, 772, + 723, 0, 0, 0, 0, 0, 0, 0, 0, 702, + 0, 748, 0, 0, 0, 681, 674, 0, 0, 0, + 0, 727, 0, 0, 0, 684, 0, 703, 773, 0, + 668, 258, 678, 316, 0, 777, 787, 724, 443, 791, + 722, 721, 767, 682, 783, 715, 286, 680, 283, 182, + 198, 0, 713, 326, 366, 372, 782, 699, 707, 221, + 705, 370, 340, 428, 205, 248, 363, 345, 368, 747, + 765, 369, 292, 416, 358, 426, 444, 445, 228, 320, + 434, 405, 440, 456, 199, 225, 334, 398, 431, 389, + 313, 412, 413, 282, 388, 256, 185, 290, 450, 197, + 378, 213, 190, 400, 424, 210, 381, 0, 0, 458, + 192, 422, 397, 310, 279, 280, 191, 0, 362, 233, + 254, 223, 329, 419, 420, 222, 459, 201, 439, 194, + 679, 438, 322, 415, 423, 311, 302, 193, 421, 309, + 301, 285, 244, 265, 356, 295, 357, 266, 318, 317, + 319, 0, 188, 0, 394, 432, 460, 206, 207, 208, + 694, 243, 247, 253, 255, 261, 262, 269, 288, 333, + 355, 353, 359, 778, 410, 427, 435, 442, 448, 449, + 451, 452, 453, 454, 455, 667, 661, 660, 284, 293, + 770, 808, 339, 371, 211, 430, 391, 689, 693, 687, + 688, 741, 742, 690, 799, 800, 801, 461, 462, 463, + 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, + 474, 475, 476, 477, 478, 0, 774, 683, 0, 691, + 692, 0, 780, 789, 790, 746, 181, 195, 289, 804, + 360, 251, 457, 437, 433, 669, 686, 227, 697, 0, + 0, 710, 718, 719, 731, 733, 734, 735, 736, 745, + 753, 754, 756, 764, 766, 769, 771, 776, 786, 807, + 183, 184, 196, 204, 214, 226, 241, 249, 259, 264, + 267, 272, 273, 276, 281, 299, 304, 305, 306, 307, + 323, 324, 325, 328, 331, 332, 335, 337, 338, 341, + 348, 349, 350, 351, 352, 354, 361, 365, 373, 374, + 375, 376, 377, 379, 380, 384, 385, 386, 387, 395, + 399, 417, 418, 429, 441, 446, 260, 425, 447, 0, + 298, 744, 751, 300, 245, 263, 274, 759, 436, 396, + 200, 367, 252, 189, 217, 203, 224, 239, 242, 278, + 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, + 402, 403, 404, 406, 312, 231, 346, 740, 768, 296, + 408, 409, 270, 793, 779, 407, 0, 726, 796, 696, + 714, 806, 717, 720, 761, 675, 739, 330, 711, 0, + 700, 671, 706, 672, 698, 728, 235, 695, 781, 743, + 795, 287, 232, 677, 701, 344, 716, 187, 763, 383, + 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, + 342, 401, 336, 802, 291, 750, 0, 392, 315, 0, + 0, 0, 730, 785, 737, 775, 725, 762, 685, 749, + 797, 712, 758, 798, 277, 218, 186, 327, 393, 250, + 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 209, 0, 216, 708, + 755, 792, 709, 757, 230, 275, 237, 229, 411, 803, + 784, 0, 0, 810, 794, 732, 760, 809, 670, 752, + 0, 673, 676, 805, 788, 704, 240, 0, 0, 0, + 0, 0, 0, 0, 729, 738, 772, 723, 0, 0, + 0, 0, 0, 0, 0, 0, 702, 0, 748, 0, + 0, 0, 681, 674, 0, 0, 0, 0, 727, 0, + 0, 0, 684, 0, 703, 773, 0, 668, 258, 678, + 316, 0, 777, 787, 724, 443, 791, 722, 721, 767, + 682, 783, 715, 286, 680, 283, 182, 198, 0, 713, + 326, 366, 372, 782, 699, 707, 221, 705, 370, 340, + 428, 205, 248, 363, 345, 368, 747, 765, 369, 292, + 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, + 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, + 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, + 400, 1163, 210, 381, 0, 0, 458, 192, 422, 397, + 310, 279, 280, 191, 0, 362, 233, 254, 223, 329, + 419, 420, 222, 459, 201, 439, 194, 679, 438, 322, + 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, + 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, + 0, 394, 432, 460, 206, 207, 208, 694, 243, 247, + 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, + 778, 410, 427, 435, 442, 448, 449, 451, 452, 453, + 454, 455, 667, 661, 660, 284, 293, 770, 808, 339, + 371, 211, 430, 391, 689, 693, 687, 688, 741, 742, + 690, 799, 800, 801, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 0, 774, 683, 0, 691, 692, 0, 780, + 789, 790, 746, 181, 195, 289, 804, 360, 251, 457, + 437, 433, 669, 686, 227, 697, 0, 0, 710, 718, + 719, 731, 733, 734, 735, 736, 745, 753, 754, 756, + 764, 766, 769, 771, 776, 786, 807, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 272, 273, + 276, 281, 299, 304, 305, 306, 307, 323, 324, 325, + 328, 331, 332, 335, 337, 338, 341, 348, 349, 350, + 351, 352, 354, 361, 365, 373, 374, 375, 376, 377, + 379, 380, 384, 385, 386, 387, 395, 399, 417, 418, + 429, 441, 446, 260, 425, 447, 0, 298, 744, 751, + 300, 245, 263, 274, 759, 436, 396, 200, 367, 252, + 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, + 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, + 406, 312, 231, 346, 740, 768, 296, 408, 409, 270, + 793, 779, 407, 0, 726, 796, 696, 714, 806, 717, + 720, 761, 675, 739, 330, 711, 0, 700, 671, 706, + 672, 698, 728, 235, 695, 781, 743, 795, 287, 232, + 677, 701, 344, 716, 187, 763, 383, 220, 297, 294, + 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, + 802, 291, 750, 0, 392, 315, 0, 0, 0, 730, + 785, 737, 775, 725, 762, 685, 749, 797, 712, 758, + 798, 277, 218, 186, 327, 393, 250, 0, 0, 0, + 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 209, 0, 216, 708, 755, 792, 709, + 757, 230, 275, 237, 229, 411, 803, 784, 0, 0, + 810, 794, 732, 760, 809, 670, 752, 0, 673, 676, + 805, 788, 704, 240, 0, 0, 0, 0, 0, 0, + 0, 729, 738, 772, 723, 0, 0, 0, 0, 0, + 0, 0, 0, 702, 0, 748, 0, 0, 0, 681, + 674, 0, 0, 0, 0, 727, 0, 0, 0, 684, + 0, 703, 773, 0, 668, 258, 678, 316, 0, 777, + 787, 724, 443, 791, 722, 721, 767, 682, 783, 715, + 286, 680, 283, 182, 198, 0, 713, 326, 366, 372, + 782, 699, 707, 221, 705, 370, 340, 428, 205, 248, + 363, 345, 368, 747, 765, 369, 292, 416, 358, 426, + 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, + 334, 398, 431, 389, 313, 412, 413, 282, 388, 256, + 185, 290, 450, 197, 378, 213, 190, 400, 658, 210, + 381, 0, 0, 458, 192, 422, 397, 310, 279, 280, + 191, 0, 362, 233, 254, 223, 329, 419, 420, 222, + 459, 201, 439, 194, 679, 438, 322, 415, 423, 311, + 302, 193, 421, 309, 301, 285, 244, 265, 356, 295, + 357, 266, 318, 317, 319, 0, 188, 0, 394, 432, + 460, 206, 207, 208, 694, 243, 247, 253, 255, 261, + 262, 269, 288, 333, 355, 353, 359, 778, 410, 427, + 435, 442, 448, 449, 451, 452, 453, 454, 455, 667, + 661, 660, 284, 293, 770, 808, 339, 371, 211, 430, + 391, 689, 693, 687, 688, 741, 742, 690, 799, 800, + 801, 461, 462, 463, 464, 465, 466, 467, 468, 469, + 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, + 774, 683, 0, 691, 692, 0, 780, 789, 790, 746, + 181, 195, 289, 804, 360, 251, 457, 437, 433, 669, + 686, 227, 697, 0, 0, 710, 718, 719, 731, 733, + 734, 735, 736, 745, 753, 754, 756, 764, 766, 769, + 771, 776, 786, 807, 183, 184, 196, 204, 214, 226, + 241, 249, 259, 264, 267, 272, 273, 276, 281, 299, + 304, 305, 306, 307, 323, 324, 325, 328, 331, 332, + 335, 337, 338, 341, 348, 349, 350, 351, 352, 354, + 361, 365, 373, 374, 375, 376, 377, 379, 380, 384, + 385, 386, 387, 395, 399, 417, 418, 429, 441, 446, + 260, 425, 447, 0, 298, 744, 751, 300, 245, 263, + 274, 759, 436, 396, 200, 367, 252, 189, 217, 203, + 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, + 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, + 346, 740, 768, 296, 408, 409, 270, 407, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 330, + 0, 0, 1466, 0, 546, 0, 0, 0, 235, 545, + 0, 0, 0, 287, 232, 0, 1467, 344, 0, 187, + 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, + 271, 303, 342, 401, 336, 590, 291, 0, 0, 392, + 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, + 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, + 393, 250, 0, 81, 0, 0, 178, 179, 180, 568, + 567, 557, 570, 571, 572, 573, 0, 0, 209, 569, + 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, + 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, + 0, 543, 561, 0, 589, 0, 0, 0, 240, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 558, 559, 647, 0, 0, 0, + 606, 0, 560, 0, 0, 552, 553, 555, 554, 556, + 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 316, 0, 605, 0, 0, 443, 0, 0, + 603, 0, 0, 0, 0, 286, 0, 283, 182, 198, + 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, + 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, + 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, + 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, + 412, 413, 282, 388, 256, 185, 290, 450, 197, 378, + 213, 190, 400, 424, 210, 381, 0, 0, 458, 192, + 422, 397, 310, 279, 280, 191, 0, 362, 233, 254, + 223, 329, 419, 420, 222, 459, 201, 439, 194, 0, + 438, 322, 415, 423, 311, 302, 193, 421, 309, 301, + 285, 244, 265, 356, 295, 357, 266, 318, 317, 319, + 0, 188, 0, 394, 432, 460, 206, 207, 208, 0, + 243, 247, 253, 255, 261, 262, 269, 288, 333, 355, + 353, 359, 0, 410, 427, 435, 442, 448, 449, 451, + 452, 453, 454, 455, 321, 268, 390, 284, 293, 0, + 0, 339, 371, 211, 430, 391, 592, 604, 598, 599, + 596, 597, 591, 595, 594, 593, 461, 462, 463, 464, + 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, + 475, 476, 477, 478, 0, 607, 583, 584, 585, 586, + 588, 0, 600, 601, 587, 181, 195, 289, 0, 360, + 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, + 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, + 272, 273, 276, 281, 299, 304, 305, 306, 307, 323, + 324, 325, 328, 331, 332, 335, 337, 338, 341, 348, + 349, 350, 351, 352, 354, 361, 365, 373, 374, 375, + 376, 377, 379, 380, 384, 385, 386, 387, 395, 399, + 417, 418, 429, 441, 446, 260, 425, 447, 0, 298, + 0, 0, 300, 245, 263, 274, 0, 436, 396, 200, + 367, 252, 189, 217, 203, 224, 239, 242, 278, 308, + 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, + 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, + 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, + 0, 0, 0, 546, 0, 0, 0, 235, 545, 0, + 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, + 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, + 303, 342, 401, 336, 590, 291, 0, 0, 392, 315, + 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, + 0, 0, 0, 1584, 0, 277, 218, 186, 327, 393, + 250, 0, 81, 0, 0, 178, 179, 180, 568, 567, + 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, + 602, 574, 575, 576, 1585, 230, 275, 237, 229, 411, + 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, + 543, 561, 0, 589, 0, 0, 0, 240, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 558, 559, 0, 0, 0, 0, 606, + 0, 560, 0, 0, 552, 553, 555, 554, 556, 562, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, + 0, 316, 0, 605, 0, 0, 443, 0, 0, 603, + 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, + 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, + 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, + 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, + 440, 456, 199, 225, 334, 398, 431, 389, 313, 412, + 413, 282, 388, 256, 185, 290, 450, 197, 378, 213, + 190, 400, 424, 210, 381, 0, 0, 458, 192, 422, + 397, 310, 279, 280, 191, 0, 362, 233, 254, 223, + 329, 419, 420, 222, 459, 201, 439, 194, 0, 438, + 322, 415, 423, 311, 302, 193, 421, 309, 301, 285, + 244, 265, 356, 295, 357, 266, 318, 317, 319, 0, + 188, 0, 394, 432, 460, 206, 207, 208, 0, 243, + 247, 253, 255, 261, 262, 269, 288, 333, 355, 353, + 359, 0, 410, 427, 435, 442, 448, 449, 451, 452, + 453, 454, 455, 321, 268, 390, 284, 293, 0, 0, + 339, 371, 211, 430, 391, 592, 604, 598, 599, 596, + 597, 591, 595, 594, 593, 461, 462, 463, 464, 465, + 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, + 476, 477, 478, 0, 607, 583, 584, 585, 586, 588, + 0, 600, 601, 587, 181, 195, 289, 0, 360, 251, + 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, + 196, 204, 214, 226, 241, 249, 259, 264, 267, 272, + 273, 276, 281, 299, 304, 305, 306, 307, 323, 324, + 325, 328, 331, 332, 335, 337, 338, 341, 348, 349, + 350, 351, 352, 354, 361, 365, 373, 374, 375, 376, + 377, 379, 380, 384, 385, 386, 387, 395, 399, 417, + 418, 429, 441, 446, 260, 425, 447, 0, 298, 0, + 0, 300, 245, 263, 274, 0, 436, 396, 200, 367, + 252, 189, 217, 203, 224, 239, 242, 278, 308, 314, + 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, + 404, 406, 312, 231, 346, 72, 407, 296, 408, 409, + 270, 0, 0, 0, 0, 0, 0, 0, 330, 0, + 0, 0, 0, 546, 0, 0, 0, 235, 545, 0, + 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 590, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, @@ -2245,7 +2327,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 543, 561, 0, 589, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 558, 559, 647, 0, 0, 0, 606, + 0, 0, 0, 558, 559, 0, 0, 0, 0, 606, 0, 560, 0, 0, 552, 553, 555, 554, 556, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 605, 0, 0, 443, 0, 0, 603, @@ -2268,7 +2350,7 @@ var yyAct = [...]int{ 597, 591, 595, 594, 593, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 607, 583, 584, 585, 586, 588, - 0, 600, 601, 587, 181, 195, 289, 0, 360, 251, + 0, 600, 601, 587, 181, 195, 289, 80, 360, 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, @@ -2288,58 +2370,8 @@ var yyAct = [...]int{ 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 590, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, 0, - 0, 0, 1584, 0, 277, 218, 186, 327, 393, 250, - 0, 81, 0, 0, 178, 179, 180, 568, 567, 557, - 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, - 574, 575, 576, 1585, 230, 275, 237, 229, 411, 0, - 0, 0, 0, 202, 0, 0, 0, 0, 0, 543, - 561, 0, 589, 0, 0, 0, 240, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 558, 559, 0, 0, 0, 0, 606, 0, - 560, 0, 0, 552, 553, 555, 554, 556, 562, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, - 316, 0, 605, 0, 0, 443, 0, 0, 603, 0, - 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, - 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, - 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, - 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, - 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, - 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, - 400, 424, 210, 381, 0, 0, 458, 192, 422, 397, - 310, 279, 280, 191, 0, 362, 233, 254, 223, 329, - 419, 420, 222, 459, 201, 439, 194, 0, 438, 322, - 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, - 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, - 0, 394, 432, 460, 206, 207, 208, 0, 243, 247, - 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, - 0, 410, 427, 435, 442, 448, 449, 451, 452, 453, - 454, 455, 321, 268, 390, 284, 293, 0, 0, 339, - 371, 211, 430, 391, 592, 604, 598, 599, 596, 597, - 591, 595, 594, 593, 461, 462, 463, 464, 465, 466, - 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, - 477, 478, 0, 607, 583, 584, 585, 586, 588, 0, - 600, 601, 587, 181, 195, 289, 0, 360, 251, 457, - 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, - 204, 214, 226, 241, 249, 259, 264, 267, 272, 273, - 276, 281, 299, 304, 305, 306, 307, 323, 324, 325, - 328, 331, 332, 335, 337, 338, 341, 348, 349, 350, - 351, 352, 354, 361, 365, 373, 374, 375, 376, 377, - 379, 380, 384, 385, 386, 387, 395, 399, 417, 418, - 429, 441, 446, 260, 425, 447, 0, 298, 0, 0, - 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, - 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, - 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, - 406, 312, 231, 346, 72, 407, 296, 408, 409, 270, - 0, 0, 0, 0, 0, 0, 0, 330, 0, 0, - 0, 0, 546, 0, 0, 0, 235, 545, 0, 0, - 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, - 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, - 342, 401, 336, 590, 291, 0, 0, 392, 315, 0, - 0, 0, 0, 0, 581, 582, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, - 0, 81, 0, 0, 178, 179, 180, 568, 567, 557, + 0, 81, 0, 1131, 178, 179, 180, 568, 567, 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 543, @@ -2368,7 +2400,7 @@ var yyAct = [...]int{ 591, 595, 594, 593, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 607, 583, 584, 585, 586, 588, 0, - 600, 601, 587, 181, 195, 289, 80, 360, 251, 457, + 600, 601, 587, 181, 195, 289, 0, 360, 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, @@ -2389,13 +2421,13 @@ var yyAct = [...]int{ 401, 336, 590, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, - 81, 0, 1131, 178, 179, 180, 568, 567, 557, 570, + 81, 0, 0, 178, 179, 180, 568, 567, 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 543, 561, 0, 589, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 558, 559, 0, 0, 0, 0, 606, 0, 560, + 0, 558, 559, 647, 0, 0, 0, 606, 0, 560, 0, 0, 552, 553, 555, 554, 556, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 605, 0, 0, 443, 0, 0, 603, 0, 0, @@ -2439,7 +2471,7 @@ var yyAct = [...]int{ 336, 590, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 81, - 0, 0, 178, 179, 180, 568, 567, 557, 570, 571, + 0, 0, 178, 179, 180, 568, 1481, 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 543, 561, 0, @@ -2489,7 +2521,7 @@ var yyAct = [...]int{ 590, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 81, 0, - 0, 178, 179, 180, 568, 1481, 557, 570, 571, 572, + 0, 178, 179, 180, 568, 1478, 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 543, 561, 0, 589, @@ -2539,13 +2571,13 @@ var yyAct = [...]int{ 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 81, 0, 0, - 178, 179, 180, 568, 1478, 557, 570, 571, 572, 573, + 178, 179, 180, 568, 567, 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 543, 561, 0, 589, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 559, - 647, 0, 0, 0, 606, 0, 560, 0, 0, 552, + 0, 0, 0, 0, 606, 0, 560, 0, 0, 552, 553, 555, 554, 556, 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 605, 0, 0, 443, 0, 0, 603, 0, 0, 0, 0, 286, @@ -2582,8 +2614,8 @@ var yyAct = [...]int{ 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, - 0, 0, 330, 0, 0, 0, 0, 546, 0, 0, - 0, 235, 545, 0, 0, 0, 287, 232, 0, 0, + 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, + 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 590, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, @@ -2592,7 +2624,7 @@ var yyAct = [...]int{ 179, 180, 568, 567, 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, - 0, 0, 0, 0, 543, 561, 0, 589, 0, 0, + 0, 0, 0, 0, 0, 561, 0, 589, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 558, 559, 0, 0, 0, 0, 606, 0, 560, 0, 0, 552, 553, @@ -2601,7 +2633,7 @@ var yyAct = [...]int{ 443, 0, 0, 603, 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, - 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, + 368, 2379, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, 424, 210, 381, 0, @@ -2638,7 +2670,7 @@ var yyAct = [...]int{ 234, 219, 271, 303, 342, 401, 336, 590, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, - 186, 327, 393, 250, 0, 81, 0, 0, 178, 179, + 186, 327, 393, 250, 0, 81, 0, 1131, 178, 179, 180, 568, 567, 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, @@ -2651,7 +2683,7 @@ var yyAct = [...]int{ 0, 0, 603, 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, - 2379, 0, 369, 292, 416, 358, 426, 444, 445, 228, + 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, 424, 210, 381, 0, 0, @@ -2688,7 +2720,7 @@ var yyAct = [...]int{ 219, 271, 303, 342, 401, 336, 590, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, - 327, 393, 250, 0, 81, 0, 1131, 178, 179, 180, + 327, 393, 250, 0, 81, 0, 0, 178, 179, 180, 568, 567, 557, 570, 571, 572, 573, 0, 0, 209, 569, 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, @@ -2735,20 +2767,20 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, - 271, 303, 342, 401, 336, 590, 291, 0, 0, 392, - 315, 0, 0, 0, 0, 0, 581, 582, 0, 0, + 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, + 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, - 393, 250, 0, 81, 0, 0, 178, 179, 180, 568, - 567, 557, 570, 571, 572, 573, 0, 0, 209, 569, - 216, 602, 574, 575, 576, 0, 230, 275, 237, 229, + 393, 250, 0, 0, 0, 0, 178, 179, 180, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, + 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, - 0, 0, 561, 0, 589, 0, 0, 0, 240, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 558, 559, 0, 0, 0, 0, - 606, 0, 560, 0, 0, 552, 553, 555, 554, 556, - 562, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 258, 0, 316, 0, 605, 0, 0, 443, 0, 0, - 603, 0, 0, 0, 0, 286, 0, 283, 182, 198, + 1030, 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, + 1038, 1031, 0, 0, 1041, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 258, 0, 316, 0, 0, 0, 0, 443, 0, 0, + 0, 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, @@ -2763,11 +2795,11 @@ var yyAct = [...]int{ 243, 247, 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, 0, 410, 427, 435, 442, 448, 449, 451, 452, 453, 454, 455, 321, 268, 390, 284, 293, 0, - 0, 339, 371, 211, 430, 391, 592, 604, 598, 599, - 596, 597, 591, 595, 594, 593, 461, 462, 463, 464, + 0, 339, 371, 211, 430, 391, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 0, 607, 583, 584, 585, 586, - 588, 0, 600, 601, 587, 181, 195, 289, 0, 360, + 475, 476, 477, 478, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 181, 195, 289, 0, 360, 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, @@ -2791,15 +2823,15 @@ var yyAct = [...]int{ 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, - 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 202, 0, 856, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1030, - 1029, 1039, 1040, 1032, 1033, 1034, 1035, 1036, 1037, 1038, - 1031, 0, 0, 1041, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, - 0, 316, 0, 0, 0, 0, 443, 0, 0, 0, - 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, - 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, + 0, 316, 0, 0, 0, 855, 443, 0, 0, 0, + 0, 0, 852, 853, 286, 818, 283, 182, 198, 846, + 850, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, 412, @@ -2832,23 +2864,23 @@ var yyAct = [...]int{ 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, 0, - 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 1151, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, - 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, + 0, 0, 0, 0, 178, 179, 180, 0, 1153, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, - 0, 0, 0, 202, 0, 856, 0, 0, 0, 0, + 0, 0, 0, 202, 0, 0, 1019, 1020, 1018, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1021, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, - 316, 0, 0, 0, 855, 443, 0, 0, 0, 0, - 0, 852, 853, 286, 818, 283, 182, 198, 846, 850, + 316, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, @@ -2880,115 +2912,115 @@ var yyAct = [...]int{ 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, - 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, - 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, - 1151, 0, 0, 0, 0, 235, 0, 0, 0, 0, - 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, - 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, - 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, + 406, 312, 231, 346, 72, 407, 296, 408, 409, 270, + 0, 0, 0, 0, 0, 0, 0, 330, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, + 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, + 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, - 0, 0, 0, 178, 179, 180, 0, 1153, 0, 0, - 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, - 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, - 0, 0, 202, 0, 0, 1019, 1020, 1018, 0, 0, - 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, - 0, 0, 0, 1021, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, + 0, 81, 0, 1131, 178, 179, 180, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, + 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, + 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, - 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, - 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, - 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, - 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, - 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, - 424, 210, 381, 0, 0, 458, 192, 422, 397, 310, - 279, 280, 191, 0, 362, 233, 254, 223, 329, 419, - 420, 222, 459, 201, 439, 194, 0, 438, 322, 415, - 423, 311, 302, 193, 421, 309, 301, 285, 244, 265, - 356, 295, 357, 266, 318, 317, 319, 0, 188, 0, - 394, 432, 460, 206, 207, 208, 0, 243, 247, 253, - 255, 261, 262, 269, 288, 333, 355, 353, 359, 0, - 410, 427, 435, 442, 448, 449, 451, 452, 453, 454, - 455, 321, 268, 390, 284, 293, 0, 0, 339, 371, - 211, 430, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 181, 195, 289, 0, 360, 251, 457, 437, - 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, - 214, 226, 241, 249, 259, 264, 267, 272, 273, 276, - 281, 299, 304, 305, 306, 307, 323, 324, 325, 328, - 331, 332, 335, 337, 338, 341, 348, 349, 350, 351, - 352, 354, 361, 365, 373, 374, 375, 376, 377, 379, - 380, 384, 385, 386, 387, 395, 399, 417, 418, 429, - 441, 446, 260, 425, 447, 0, 298, 0, 0, 300, - 245, 263, 274, 0, 436, 396, 200, 367, 252, 189, - 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, - 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, - 312, 231, 346, 72, 407, 296, 408, 409, 270, 0, - 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, - 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, - 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, - 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, + 316, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, + 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, + 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, + 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, + 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, + 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, + 400, 424, 210, 381, 0, 0, 458, 192, 422, 397, + 310, 279, 280, 191, 0, 362, 233, 254, 223, 329, + 419, 420, 222, 459, 201, 439, 194, 0, 438, 322, + 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, + 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, + 0, 394, 432, 460, 206, 207, 208, 0, 243, 247, + 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, + 0, 410, 427, 435, 442, 448, 449, 451, 452, 453, + 454, 455, 321, 268, 390, 284, 293, 0, 0, 339, + 371, 211, 430, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 181, 195, 289, 80, 360, 251, 457, + 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, - 81, 0, 1131, 178, 179, 180, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, - 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 272, 273, + 276, 281, 299, 304, 305, 306, 307, 323, 324, 325, + 328, 331, 332, 335, 337, 338, 341, 348, 349, 350, + 351, 352, 354, 361, 365, 373, 374, 375, 376, 377, + 379, 380, 384, 385, 386, 387, 395, 399, 417, 418, + 429, 441, 446, 260, 425, 447, 0, 298, 0, 0, + 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, + 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, + 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, + 406, 312, 231, 346, 72, 407, 296, 408, 409, 270, + 0, 0, 0, 0, 0, 0, 0, 330, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, + 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, + 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, + 0, 81, 0, 0, 178, 179, 180, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, + 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, + 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, - 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, - 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, - 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, - 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, - 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, - 424, 210, 381, 0, 0, 458, 192, 422, 397, 310, - 279, 280, 191, 0, 362, 233, 254, 223, 329, 419, - 420, 222, 459, 201, 439, 194, 0, 438, 322, 415, - 423, 311, 302, 193, 421, 309, 301, 285, 244, 265, - 356, 295, 357, 266, 318, 317, 319, 0, 188, 0, - 394, 432, 460, 206, 207, 208, 0, 243, 247, 253, - 255, 261, 262, 269, 288, 333, 355, 353, 359, 0, - 410, 427, 435, 442, 448, 449, 451, 452, 453, 454, - 455, 321, 268, 390, 284, 293, 0, 0, 339, 371, - 211, 430, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 181, 195, 289, 80, 360, 251, 457, 437, - 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, - 214, 226, 241, 249, 259, 264, 267, 272, 273, 276, - 281, 299, 304, 305, 306, 307, 323, 324, 325, 328, - 331, 332, 335, 337, 338, 341, 348, 349, 350, 351, - 352, 354, 361, 365, 373, 374, 375, 376, 377, 379, - 380, 384, 385, 386, 387, 395, 399, 417, 418, 429, - 441, 446, 260, 425, 447, 0, 298, 0, 0, 300, - 245, 263, 274, 0, 436, 396, 200, 367, 252, 189, - 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, - 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, - 312, 231, 346, 72, 407, 296, 408, 409, 270, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, + 316, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, + 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, + 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, + 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, + 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, + 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, + 400, 424, 210, 381, 0, 0, 458, 192, 422, 397, + 310, 279, 280, 191, 0, 362, 233, 254, 223, 329, + 419, 420, 222, 459, 201, 439, 194, 0, 438, 322, + 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, + 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, + 0, 394, 432, 460, 206, 207, 208, 0, 243, 247, + 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, + 0, 410, 427, 435, 442, 448, 449, 451, 452, 453, + 454, 455, 321, 268, 390, 284, 293, 0, 0, 339, + 371, 211, 430, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 181, 195, 289, 80, 360, 251, 457, + 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 272, 273, + 276, 281, 299, 304, 305, 306, 307, 323, 324, 325, + 328, 331, 332, 335, 337, 338, 341, 348, 349, 350, + 351, 352, 354, 361, 365, 373, 374, 375, 376, 377, + 379, 380, 384, 385, 386, 387, 395, 399, 417, 418, + 429, 441, 446, 260, 425, 447, 0, 298, 0, 0, + 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, + 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, + 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, + 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, + 1532, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, - 81, 0, 0, 178, 179, 180, 0, 0, 0, 0, + 0, 0, 0, 178, 179, 180, 0, 1324, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, @@ -3000,7 +3032,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, - 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, + 205, 248, 363, 345, 368, 0, 1530, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, @@ -3017,7 +3049,7 @@ var yyAct = [...]int{ 0, 0, 0, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 181, 195, 289, 80, 360, 251, 457, 437, + 0, 0, 181, 195, 289, 0, 360, 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, @@ -3031,26 +3063,26 @@ var yyAct = [...]int{ 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, - 0, 0, 0, 0, 0, 330, 0, 0, 0, 1532, + 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 0, - 0, 0, 178, 179, 180, 0, 1324, 0, 0, 0, + 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 812, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, - 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, + 0, 286, 818, 283, 182, 198, 816, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, - 248, 363, 345, 368, 0, 1530, 369, 292, 416, 358, + 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, 424, @@ -3081,24 +3113,24 @@ var yyAct = [...]int{ 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, - 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 330, 0, 0, 0, 1532, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 0, 0, - 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, + 0, 178, 179, 180, 0, 1324, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, - 0, 0, 812, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, - 286, 818, 283, 182, 198, 816, 0, 326, 366, 372, + 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, 199, 225, @@ -3131,14 +3163,14 @@ var yyAct = [...]int{ 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, - 0, 0, 0, 330, 0, 0, 0, 1532, 0, 0, + 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 277, 218, 186, 327, 393, 250, 0, 0, 0, 0, - 178, 179, 180, 0, 1324, 0, 0, 0, 0, 0, + 277, 218, 186, 327, 393, 250, 0, 0, 0, 1131, + 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3147,7 +3179,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 0, 0, - 0, 443, 0, 0, 0, 0, 0, 0, 0, 286, + 0, 443, 0, 0, 0, 2243, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, @@ -3187,8 +3219,8 @@ var yyAct = [...]int{ 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, - 218, 186, 327, 393, 250, 0, 0, 0, 1131, 178, - 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, + 218, 186, 327, 393, 250, 0, 0, 0, 0, 178, + 179, 180, 0, 0, 0, 1784, 0, 0, 1785, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3197,7 +3229,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 0, 0, 0, - 443, 0, 0, 0, 2243, 0, 0, 0, 286, 0, + 443, 0, 0, 0, 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, @@ -3232,13 +3264,13 @@ var yyAct = [...]int{ 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, - 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, + 235, 1174, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 0, 0, 0, 178, 179, - 180, 0, 0, 0, 1784, 0, 0, 1785, 0, 0, + 180, 0, 1173, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3282,13 +3314,13 @@ var yyAct = [...]int{ 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 235, - 1174, 0, 0, 0, 287, 232, 0, 0, 344, 0, + 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 0, 0, 0, 178, 179, 180, - 0, 1173, 0, 0, 0, 0, 0, 0, 0, 209, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, @@ -3297,7 +3329,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 0, 0, 0, 443, 0, - 0, 0, 0, 0, 0, 0, 286, 0, 283, 182, + 0, 0, 2352, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, @@ -3347,7 +3379,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 0, 0, 0, 443, 0, 0, - 0, 2352, 0, 0, 0, 286, 0, 283, 182, 198, + 0, 2243, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, @@ -3387,7 +3419,7 @@ var yyAct = [...]int{ 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, - 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, + 250, 0, 81, 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, @@ -3397,7 +3429,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, 0, 0, 0, 0, 443, 0, 0, 0, - 2243, 0, 0, 0, 286, 0, 283, 182, 198, 0, + 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, 405, @@ -3437,7 +3469,7 @@ var yyAct = [...]int{ 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, - 0, 81, 0, 0, 178, 179, 180, 0, 0, 0, + 0, 0, 0, 0, 178, 179, 180, 0, 1324, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, @@ -3479,57 +3511,57 @@ var yyAct = [...]int{ 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, - 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, - 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, - 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, - 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, - 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, - 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, + 406, 312, 231, 346, 0, 407, 296, 408, 409, 270, + 1573, 0, 0, 0, 0, 0, 0, 330, 0, 0, + 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, + 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, + 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, + 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, - 0, 0, 0, 178, 179, 180, 0, 1324, 0, 0, - 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, - 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, - 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, + 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, + 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, + 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, + 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 240, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 258, 0, 316, - 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, - 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, - 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, - 205, 248, 363, 345, 368, 0, 0, 369, 292, 416, - 358, 426, 444, 445, 228, 320, 434, 405, 440, 456, - 199, 225, 334, 398, 431, 389, 313, 412, 413, 282, - 388, 256, 185, 290, 450, 197, 378, 213, 190, 400, - 424, 210, 381, 0, 0, 458, 192, 422, 397, 310, - 279, 280, 191, 0, 362, 233, 254, 223, 329, 419, - 420, 222, 459, 201, 439, 194, 0, 438, 322, 415, - 423, 311, 302, 193, 421, 309, 301, 285, 244, 265, - 356, 295, 357, 266, 318, 317, 319, 0, 188, 0, - 394, 432, 460, 206, 207, 208, 0, 243, 247, 253, - 255, 261, 262, 269, 288, 333, 355, 353, 359, 0, - 410, 427, 435, 442, 448, 449, 451, 452, 453, 454, - 455, 321, 268, 390, 284, 293, 0, 0, 339, 371, - 211, 430, 391, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 461, 462, 463, 464, 465, 466, 467, - 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, - 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 181, 195, 289, 0, 360, 251, 457, 437, - 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 258, 0, + 316, 0, 0, 0, 0, 443, 0, 0, 0, 0, + 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, + 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, + 428, 205, 248, 363, 345, 368, 0, 0, 369, 292, + 416, 358, 426, 444, 445, 228, 320, 434, 405, 440, + 456, 199, 225, 334, 398, 431, 389, 313, 412, 413, + 282, 388, 256, 185, 290, 450, 197, 378, 213, 190, + 400, 424, 210, 381, 0, 0, 458, 192, 422, 397, + 310, 279, 280, 191, 0, 362, 233, 254, 223, 329, + 419, 420, 222, 459, 201, 439, 194, 0, 438, 322, + 415, 423, 311, 302, 193, 421, 309, 301, 285, 244, + 265, 356, 295, 357, 266, 318, 317, 319, 0, 188, + 0, 394, 432, 460, 206, 207, 208, 0, 243, 247, + 253, 255, 261, 262, 269, 288, 333, 355, 353, 359, + 0, 410, 427, 435, 442, 448, 449, 451, 452, 453, + 454, 455, 321, 268, 390, 284, 293, 0, 0, 339, + 371, 211, 430, 391, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 461, 462, 463, 464, 465, 466, + 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, + 477, 478, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 181, 195, 289, 0, 360, 251, 457, + 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, - 214, 226, 241, 249, 259, 264, 267, 272, 273, 276, - 281, 299, 304, 305, 306, 307, 323, 324, 325, 328, - 331, 332, 335, 337, 338, 341, 348, 349, 350, 351, - 352, 354, 361, 365, 373, 374, 375, 376, 377, 379, - 380, 384, 385, 386, 387, 395, 399, 417, 418, 429, - 441, 446, 260, 425, 447, 0, 298, 0, 0, 300, - 245, 263, 274, 0, 436, 396, 200, 367, 252, 189, - 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, - 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, - 312, 231, 346, 0, 407, 296, 408, 409, 270, 1573, + 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, + 204, 214, 226, 241, 249, 259, 264, 267, 272, 273, + 276, 281, 299, 304, 305, 306, 307, 323, 324, 325, + 328, 331, 332, 335, 337, 338, 341, 348, 349, 350, + 351, 352, 354, 361, 365, 373, 374, 375, 376, 377, + 379, 380, 384, 385, 386, 387, 395, 399, 417, 418, + 429, 441, 446, 260, 425, 447, 0, 298, 0, 0, + 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, + 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, + 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, + 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, @@ -3537,7 +3569,7 @@ var yyAct = [...]int{ 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, - 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, + 0, 0, 0, 178, 179, 180, 0, 1153, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, @@ -3587,7 +3619,7 @@ var yyAct = [...]int{ 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 0, - 0, 0, 178, 179, 180, 0, 1153, 0, 0, 0, + 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, @@ -3616,7 +3648,7 @@ var yyAct = [...]int{ 0, 0, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 181, 195, 289, 0, 360, 251, 457, 437, 433, + 0, 181, 195, 289, 1415, 360, 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, 214, @@ -3630,7 +3662,7 @@ var yyAct = [...]int{ 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, - 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 330, 0, 1296, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, @@ -3666,7 +3698,7 @@ var yyAct = [...]int{ 0, 461, 462, 463, 464, 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 181, 195, 289, 1415, 360, 251, 457, 437, 433, 0, + 181, 195, 289, 0, 360, 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, 214, 226, @@ -3680,7 +3712,7 @@ var yyAct = [...]int{ 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, - 0, 0, 0, 330, 0, 1296, 0, 0, 0, 0, + 0, 0, 0, 330, 0, 1294, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, @@ -3730,7 +3762,7 @@ var yyAct = [...]int{ 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, - 0, 0, 330, 0, 1294, 0, 0, 0, 0, 0, + 0, 0, 330, 0, 1292, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, @@ -3780,7 +3812,7 @@ var yyAct = [...]int{ 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, - 0, 330, 0, 1292, 0, 0, 0, 0, 0, 0, + 0, 330, 0, 1290, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, @@ -3830,7 +3862,7 @@ var yyAct = [...]int{ 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, - 330, 0, 1290, 0, 0, 0, 0, 0, 0, 235, + 330, 0, 1288, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, @@ -3880,7 +3912,7 @@ var yyAct = [...]int{ 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, - 0, 1288, 0, 0, 0, 0, 0, 0, 235, 0, + 0, 1284, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, @@ -3930,7 +3962,7 @@ var yyAct = [...]int{ 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, - 1284, 0, 0, 0, 0, 0, 0, 235, 0, 0, + 1282, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, @@ -3979,7 +4011,7 @@ var yyAct = [...]int{ 252, 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, - 270, 0, 0, 0, 0, 0, 0, 330, 0, 1282, + 270, 0, 0, 0, 0, 0, 0, 330, 0, 1280, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, @@ -4029,14 +4061,14 @@ var yyAct = [...]int{ 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, - 0, 0, 0, 0, 0, 0, 330, 0, 1280, 0, + 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, - 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, + 1255, 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, @@ -4080,12 +4112,12 @@ var yyAct = [...]int{ 257, 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, - 0, 0, 0, 0, 235, 0, 0, 0, 0, 287, + 0, 0, 0, 1158, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 277, 218, 186, 327, 393, 250, 0, 1255, + 0, 0, 277, 218, 186, 327, 393, 250, 0, 0, 0, 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, @@ -4130,13 +4162,13 @@ var yyAct = [...]int{ 236, 215, 364, 212, 382, 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, - 0, 0, 1158, 235, 0, 0, 0, 0, 287, 232, + 0, 0, 0, 235, 0, 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 0, 0, - 0, 178, 179, 180, 0, 0, 0, 0, 0, 0, + 0, 178, 179, 180, 0, 995, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4186,7 +4218,7 @@ var yyAct = [...]int{ 291, 0, 0, 392, 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, 393, 250, 0, 0, 0, 0, - 178, 179, 180, 0, 995, 0, 0, 0, 0, 0, + 178, 179, 180, 0, 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, @@ -4217,7 +4249,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 181, 195, 289, 0, 360, 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 629, 0, 0, 0, 183, 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, 272, 273, 276, 281, 299, 304, 305, 306, 307, 323, 324, 325, 328, 331, 332, 335, @@ -4244,7 +4276,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 258, 0, 316, 0, 0, 0, 0, + 0, 534, 0, 258, 0, 316, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, @@ -4267,13 +4299,13 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 181, 195, 289, 0, 360, 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 629, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, 272, 273, 276, 281, 299, 304, 305, 306, 307, 323, 324, 325, 328, 331, 332, 335, 337, 338, 341, 348, 349, 350, 351, 352, 354, 361, 365, 373, 374, 375, 376, 377, 379, 380, 384, 385, 386, - 387, 395, 399, 417, 418, 429, 441, 446, 260, 425, + 387, 395, 399, 417, 418, 429, 441, 446, 533, 425, 447, 0, 298, 0, 0, 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, @@ -4294,7 +4326,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 534, 0, 258, 0, 316, 0, 0, 0, 0, 443, + 0, 0, 258, 0, 316, 0, 0, 481, 0, 443, 0, 0, 0, 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, @@ -4323,7 +4355,7 @@ var yyAct = [...]int{ 307, 323, 324, 325, 328, 331, 332, 335, 337, 338, 341, 348, 349, 350, 351, 352, 354, 361, 365, 373, 374, 375, 376, 377, 379, 380, 384, 385, 386, 387, - 395, 399, 417, 418, 429, 441, 446, 533, 425, 447, + 395, 399, 417, 418, 429, 441, 446, 260, 425, 447, 0, 298, 0, 0, 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, @@ -4344,7 +4376,7 @@ var yyAct = [...]int{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 258, 0, 316, 0, 0, 481, 0, 443, 0, + 0, 258, 0, 316, 0, 0, 0, 0, 443, 0, 0, 0, 0, 0, 0, 0, 286, 0, 283, 182, 198, 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, 370, 340, 428, 205, 248, 363, 345, 368, 0, @@ -4377,79 +4409,29 @@ var yyAct = [...]int{ 298, 0, 0, 300, 245, 263, 274, 0, 436, 396, 200, 367, 252, 189, 217, 203, 224, 239, 242, 278, 308, 314, 343, 347, 257, 236, 215, 364, 212, 382, - 402, 403, 404, 406, 312, 231, 346, 407, 0, 296, - 408, 409, 270, 0, 0, 0, 0, 0, 0, 330, - 0, 0, 0, 0, 0, 0, 0, 0, 235, 0, - 0, 0, 0, 287, 232, 0, 0, 344, 0, 187, - 0, 383, 220, 297, 294, 414, 246, 238, 234, 219, - 271, 303, 342, 401, 336, 0, 291, 0, 0, 392, - 315, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 277, 218, 186, 327, - 393, 250, 0, 0, 0, 0, 178, 179, 180, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 209, 0, - 216, 0, 0, 0, 0, 0, 230, 275, 237, 229, - 411, 0, 0, 0, 0, 202, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 240, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 258, 0, 316, 0, 0, 0, 0, 443, 0, 0, - 0, 0, 0, 0, 0, 286, 0, 283, 182, 198, - 0, 0, 326, 366, 372, 0, 0, 0, 221, 0, - 370, 340, 428, 205, 248, 363, 345, 368, 0, 0, - 369, 292, 416, 358, 426, 444, 445, 228, 320, 434, - 405, 440, 456, 199, 225, 334, 398, 431, 389, 313, - 412, 413, 282, 388, 256, 185, 290, 450, 197, 378, - 213, 190, 400, 424, 210, 381, 0, 0, 458, 192, - 422, 397, 310, 279, 280, 191, 0, 362, 233, 254, - 223, 329, 419, 420, 222, 459, 201, 439, 194, 0, - 438, 322, 415, 423, 311, 302, 193, 421, 309, 301, - 285, 244, 265, 356, 295, 357, 266, 318, 317, 319, - 0, 188, 0, 394, 432, 460, 206, 207, 208, 0, - 243, 247, 253, 255, 261, 262, 269, 288, 333, 355, - 353, 359, 0, 410, 427, 435, 442, 448, 449, 451, - 452, 453, 454, 455, 321, 268, 390, 284, 293, 0, - 0, 339, 371, 211, 430, 391, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 461, 462, 463, 464, - 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, - 475, 476, 477, 478, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 181, 195, 289, 0, 360, - 251, 457, 437, 433, 0, 0, 227, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 183, - 184, 196, 204, 214, 226, 241, 249, 259, 264, 267, - 272, 273, 276, 281, 299, 304, 305, 306, 307, 323, - 324, 325, 328, 331, 332, 335, 337, 338, 341, 348, - 349, 350, 351, 352, 354, 361, 365, 373, 374, 375, - 376, 377, 379, 380, 384, 385, 386, 387, 395, 399, - 417, 418, 429, 441, 446, 260, 425, 447, 0, 298, - 0, 0, 300, 245, 263, 274, 0, 436, 396, 200, - 367, 252, 189, 217, 203, 224, 239, 242, 278, 308, - 314, 343, 347, 257, 236, 215, 364, 212, 382, 402, - 403, 404, 406, 312, 231, 346, 0, 0, 296, 408, - 409, 270, + 402, 403, 404, 406, 312, 231, 346, 0, 0, 296, + 408, 409, 270, } var yyPact = [...]int{ - 3721, -1000, -340, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 4711, -1000, -338, -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, 1709, 1750, -1000, -1000, -1000, -1000, 1888, - -1000, 688, 1477, -1000, 1724, 4202, -1000, 31960, 481, -1000, - 31461, 471, 411, 31960, -1000, 170, -1000, 102, 31960, 156, - 30962, -1000, -1000, -258, 13993, 1665, 11, 7, 31960, -1000, - 1818, 1501, -1000, 307, -1000, -1000, -1000, -1000, -1000, -1000, - 30463, -1000, -1000, -1000, 1734, 1706, 1896, 596, 1672, -1000, - 1774, 1501, -1000, 13993, 1824, 1762, 12496, -1000, 12496, 379, - -1000, -1000, 9994, -1000, -1000, 18985, 31960, 31960, 300, -1000, - 1724, -1000, -1000, 304, -1000, 314, 1417, -1000, 1415, -1000, - 647, 660, 303, 383, 378, 301, 299, 298, 297, 296, - 292, 291, 285, 319, -1000, 687, 687, -150, -152, 2312, - 371, 371, 371, 398, 1690, 1686, -1000, 656, -1000, 687, - 687, 295, 687, 687, 687, 687, 255, 253, 687, 687, - 687, 687, 687, 687, 687, 687, 687, 687, 687, 687, - 687, 687, 687, 254, 1724, 237, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1769, 1856, -1000, -1000, -1000, -1000, 1942, + -1000, 707, 1538, -1000, 1775, 351, -1000, 31781, 462, -1000, + 31282, 461, 2387, 31781, -1000, 141, -1000, 115, 31781, 137, + 30783, -1000, -1000, -256, 13814, 1730, 27, 24, 31781, -1000, + 1927, 1532, -1000, 260, -1000, -1000, -1000, -1000, -1000, -1000, + 30284, -1000, -1000, -1000, 1780, 1767, 1947, 599, 1726, -1000, + 1871, 1532, -1000, 13814, 1913, 1854, 12317, -1000, 12317, 390, + -1000, -1000, 9815, -1000, -1000, 18806, 31781, 31781, 388, -1000, + 1775, -1000, -1000, 257, -1000, 285, 1455, -1000, 1452, -1000, + 558, 545, 298, 369, 367, 296, 293, 292, 288, 282, + 281, 280, 277, 305, -1000, 653, 653, -157, -158, 2781, + 363, 363, 363, 412, 1751, 1750, -1000, 611, -1000, 653, + 653, 255, 653, 653, 653, 653, 210, 209, 653, 653, + 653, 653, 653, 653, 653, 653, 653, 653, 653, 653, + 653, 653, 653, 320, 1775, 199, -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, @@ -4479,27 +4461,27 @@ 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, -1000, -1000, 31960, - 167, 31960, -1000, 548, 31960, 759, 759, 93, 759, 759, - 759, 759, 116, 476, 6, -1000, 113, 230, 101, 232, - 714, 218, 122, -1000, -1000, 227, 714, 1068, 614, 107, - -1000, 759, 7966, 7966, 7966, -1000, 1700, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, 396, -1000, -1000, -1000, -1000, - 31960, 29964, 266, 699, -1000, -1000, -1000, 128, -1000, -1000, - 1193, 949, -1000, 13993, 2742, 1428, 1428, -1000, -1000, 542, - -1000, -1000, 15490, 15490, 15490, 15490, 15490, -1000, 15490, 15490, - 15490, 15490, 15490, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1428, 546, -1000, - -1000, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 13993, - 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, - 1428, 1428, 1428, 1428, 1428, 1428, 1428, 1428, -1000, -1000, - 11498, -1000, 31960, -1000, 1428, 177, 1774, 1501, -1000, 1818, - 1784, 307, -1000, 1710, 1447, 1230, 977, 1501, 1371, 31960, - -1000, 1448, -1000, -1000, -1000, 1620, 1017, 1065, -1000, -1000, - -1000, -1000, 1007, 13993, -1000, -1000, 1871, -1000, 16987, 545, - 825, 1868, 29465, -1000, 379, 379, 1414, 9487, -13, -1000, - -1000, -1000, 695, 20981, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1700, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 31781, + 191, 31781, -1000, 557, 31781, 732, 732, 44, 732, 732, + 732, 732, 154, 510, 22, -1000, 132, 194, 107, 197, + 718, 173, 105, -1000, -1000, 184, 718, 1094, 613, 142, + -1000, 732, 7787, 7787, 7787, -1000, 1771, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, 402, -1000, -1000, -1000, -1000, + 31781, 29785, 268, 666, -1000, -1000, -1000, 109, -1000, -1000, + 1216, 1008, -1000, 13814, 1282, 1457, 1457, -1000, -1000, 517, + -1000, -1000, 15311, 15311, 15311, 15311, 15311, -1000, 15311, 15311, + 15311, 15311, 15311, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1457, 554, -1000, + -1000, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 13814, + 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, + 1457, 1457, 1457, 1457, 1457, 1457, 1457, 1457, -1000, -1000, + 11319, -1000, 31781, -1000, 1457, 155, 1871, 1532, -1000, 1927, + 1915, 260, -1000, 1714, 1615, 1222, 1058, 1532, 1427, 31781, + -1000, 1495, -1000, -1000, -1000, 1651, 1040, 1093, -1000, -1000, + -1000, -1000, 981, 13814, -1000, -1000, 1937, -1000, 16808, 544, + 845, 1936, 29286, -1000, 390, 390, 1451, 9308, 5, -1000, + -1000, -1000, 656, 20802, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1771, -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, @@ -4513,204 +4495,204 @@ 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, 1410, 31960, -1000, -1000, 2447, 1058, -1000, 1476, -1000, - 1405, -1000, 1457, 1504, 437, 1058, 422, 413, 409, -1000, - -71, -1000, -1000, -1000, -1000, -1000, 687, 687, 318, 4202, - 4367, -1000, -1000, -1000, 28966, 1473, 1058, -1000, 1472, -1000, - 769, 435, 478, 478, 1058, -1000, -1000, 31960, 1058, 767, - 749, 31960, 31960, -1000, 28467, -1000, 27968, 27469, 958, 31960, - 26970, 26471, 25972, 25473, 24974, -1000, 1561, -1000, 1497, -1000, - -1000, -1000, 31960, 31960, 31960, 277, -1000, -1000, 31960, 1058, - -1000, -1000, 957, 953, 687, 687, 947, 1064, 1061, 1060, - 687, 687, 946, 1052, 22977, 235, 944, 943, 921, 998, - 1051, 174, 952, 951, 914, 31960, 1471, 31960, -1000, 219, - 712, 332, 693, 1724, 1661, 1412, 394, 436, 1058, 374, - 374, -1000, 8473, -1000, -1000, 1044, 13993, -1000, 740, 714, - 714, -1000, -1000, -1000, -1000, -1000, -1000, 759, 31960, 740, - -1000, -1000, -1000, 714, 759, 31960, 759, 759, 759, 759, - 714, 714, 714, 759, 31960, 31960, 31960, 31960, 31960, 31960, - 31960, 31960, 31960, 7966, 7966, 7966, 614, 759, -266, -1000, - 1042, -1000, 1583, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, 155, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -68, 1407, 24475, -1000, -268, -270, -275, -277, -1000, - -1000, -1000, -280, -282, -1000, -1000, -1000, 13993, 13993, 13993, - 13993, 1009, 633, 15490, 935, 644, 15490, 15490, 15490, 15490, - 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, 15490, - 15490, 807, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - 1058, -1000, 1340, 1340, 568, 568, 568, 568, 568, 568, - 568, 568, 568, 15989, 10499, 8473, 12496, 12496, 13993, 13993, - 13494, 12995, 12496, 1699, 649, 949, 31960, -1000, 977, -1000, - -1000, 14991, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 31960, 31960, 23, 12496, 12496, 12496, - 12496, 12496, 1384, 1234, 1401, -1000, 1377, -1000, -130, 18486, - 13993, 1041, -1000, -1000, -1000, 1774, -1000, 1774, 1384, 1689, - 1623, 12496, -1000, -1000, 1689, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, 1163, -1000, 31960, 1371, 1755, 31960, 1618, - 1038, 277, -1000, 13993, 13993, 1344, -1000, 883, 31960, -1000, - -1000, 23976, -1000, -1000, 7459, -1000, 31960, 278, 31960, -1000, - 22478, 23477, 8980, -13, -1000, 8980, 1251, -1000, -11, -19, - 10998, 558, -1000, -1000, -1000, 2312, 16488, 1161, 1678, 44, - -1000, -1000, -1000, 1457, -1000, 1457, 1457, 1457, 1457, 277, - 277, 277, 277, -1000, -1000, -1000, -1000, -1000, 1470, 1464, - -1000, 1457, 1457, 1457, 1457, -1000, -1000, -1000, -1000, -1000, + -1000, 1404, 31781, -1000, -1000, 4183, 1067, -1000, 1535, -1000, + 1401, -1000, 1507, 1549, 456, 1067, 450, 448, 444, -1000, + -78, -1000, -1000, -1000, -1000, -1000, 653, 653, 303, 351, + 4755, -1000, -1000, -1000, 28787, 1534, 1067, -1000, 1533, -1000, + 786, 442, 491, 491, 1067, -1000, -1000, 31781, 1067, 779, + 777, 31781, 31781, -1000, 28288, -1000, 27789, 27290, 1001, 31781, + 26791, 26292, 25793, 25294, 24795, -1000, 1610, -1000, 1505, -1000, + -1000, -1000, 31781, 31781, 31781, 239, -1000, -1000, 31781, 1067, + -1000, -1000, 1000, 997, 653, 653, 991, 1091, 1086, 1085, + 653, 653, 975, 1079, 22798, 262, 958, 957, 953, 1010, + 1078, 175, 999, 935, 952, 31781, 1531, 31781, -1000, 183, + 608, 295, 655, 1775, 1725, 1448, 401, 452, 1067, 383, + 383, -1000, 8294, -1000, -1000, 1077, 13814, -1000, 719, 718, + 718, -1000, -1000, -1000, -1000, -1000, -1000, 732, 31781, 719, + -1000, -1000, -1000, 718, 732, 31781, 732, 732, 732, 732, + 718, 718, 718, 732, 31781, 31781, 31781, 31781, 31781, 31781, + 31781, 31781, 31781, 7787, 7787, 7787, 613, 732, -260, -1000, + 1075, -1000, 1603, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, 135, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -66, 1442, 24296, -1000, -262, -264, -270, -271, -1000, + -1000, -1000, -272, -276, -1000, -1000, -1000, 13814, 13814, 13814, + 13814, 805, 617, 15311, 942, 741, 15311, 15311, 15311, 15311, + 15311, 15311, 15311, 15311, 15311, 15311, 15311, 15311, 15311, 15311, + 15311, 706, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + 1067, -1000, 1345, 1345, 552, 552, 552, 552, 552, 552, + 552, 552, 552, 15810, 10320, 8294, 12317, 12317, 13814, 13814, + 13315, 12816, 12317, 1759, 693, 1008, 31781, -1000, 1058, -1000, + -1000, 14812, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 31781, 31781, 84, 12317, 12317, 12317, + 12317, 12317, 1445, 1176, 1380, -1000, 1428, -1000, -131, 18307, + 13814, 1074, -1000, -1000, -1000, 1871, -1000, 1871, 1445, 1681, + 1654, 12317, -1000, -1000, 1681, -1000, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, 1422, -1000, 31781, 1427, 1843, 31781, 1646, + 1070, 239, -1000, 13814, 13814, 1425, -1000, 795, 31781, -1000, + -1000, 23797, -1000, -1000, 7280, -1000, 31781, 274, 31781, -1000, + 22299, 23298, 8801, 5, -1000, 8801, 1408, -1000, -4, -36, + 10819, 502, -1000, -1000, -1000, 2781, 16309, 1184, 1735, 66, + -1000, -1000, -1000, 1507, -1000, 1507, 1507, 1507, 1507, 239, + 239, 239, 239, -1000, -1000, -1000, -1000, -1000, 1529, 1514, + -1000, 1507, 1507, 1507, 1507, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, 1463, 1463, 1463, 1459, 1459, 359, -1000, 13993, - 203, 31960, 1733, 900, 219, 380, 1516, 1058, 1058, 1058, - 380, -1000, 1141, 1111, -1000, 1315, -1000, -1000, 1804, -1000, - -1000, 452, 801, 781, 701, 31960, 196, 269, -1000, 352, - -1000, 31960, 1058, 744, 478, 1058, -1000, 1058, -1000, -1000, - -1000, -1000, 537, -1000, -1000, 1058, 1295, -1000, 1380, 822, - 777, 804, 747, 1295, -1000, -1000, -92, 1295, -1000, 1295, - -1000, 1295, -1000, 1295, -1000, 1295, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 648, 31960, 196, 807, -1000, 390, - -1000, -1000, 807, 807, -1000, -1000, -1000, -1000, 1029, 1019, + -1000, -1000, 1513, 1513, 1513, 1508, 1508, 358, -1000, 13814, + 190, 31781, 1832, 949, 183, 385, 1576, 1067, 1067, 1067, + 385, -1000, 1160, 1107, -1000, 1424, -1000, -1000, 1910, -1000, + -1000, 811, 817, 812, 424, 31781, 162, 272, -1000, 348, + -1000, 31781, 1067, 767, 491, 1067, -1000, 1067, -1000, -1000, + -1000, -1000, 543, -1000, -1000, 1067, 1415, -1000, 1362, 828, + 809, 822, 736, 1415, -1000, -1000, -100, 1415, -1000, 1415, + -1000, 1415, -1000, 1415, -1000, 1415, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 615, 31781, 162, 706, -1000, 397, + -1000, -1000, 706, 706, -1000, -1000, -1000, -1000, 1061, 1060, -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, -318, 31960, -1000, - 214, 692, 260, 302, 261, 31960, 195, 1760, 215, 248, - 31960, 31960, 374, 1580, 31960, 1738, 31960, -1000, -1000, -1000, - -1000, 949, 31960, -1000, -1000, 759, 759, -1000, -1000, 31960, - 759, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 759, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -317, 31781, -1000, + 178, 654, 258, 278, 241, 31781, 150, 1846, 181, 208, + 31781, 31781, 383, 1597, 31781, 1794, 31781, -1000, -1000, -1000, + -1000, 1008, 31781, -1000, -1000, 732, 732, -1000, -1000, 31781, + 732, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 732, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 31960, 31960, -1000, - -1000, -1000, -1000, -1000, 145, -14, 251, -1000, -1000, -1000, - -1000, -1000, 1771, -1000, 949, 633, 724, 728, -1000, -1000, - 855, -1000, -1000, 2471, -1000, -1000, -1000, -1000, 935, 15490, - 15490, 15490, 599, 2471, 2442, 1196, 1066, 568, 753, 753, - 563, 563, 563, 563, 563, 1035, 1035, -1000, -1000, -1000, - -1000, 977, -1000, -1000, -1000, 977, 12496, 12496, 1280, -1000, - 1428, 533, -1000, 1375, 1375, 941, 1173, 677, 1862, 1375, - 645, 1858, 1375, 1375, 12496, -1000, -1000, 725, -1000, 13993, - 977, -1000, 1182, 1276, 1253, 1857, -1000, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 31781, 31781, -1000, + -1000, -1000, -1000, -1000, 236, -20, 247, -1000, -1000, -1000, + -1000, -1000, 1860, -1000, 1008, 617, 762, 619, -1000, -1000, + 855, -1000, -1000, 1857, -1000, -1000, -1000, -1000, 942, 15311, + 15311, 15311, 1068, 1857, 2369, 1400, 1326, 552, 660, 660, + 568, 568, 568, 568, 568, 912, 912, -1000, -1000, -1000, + -1000, 1058, -1000, -1000, -1000, 1058, 12317, 12317, 1414, -1000, + 1457, 542, -1000, 1322, 1322, 951, 1053, 642, 1935, 1322, + 640, 1934, 1322, 1322, 12317, -1000, -1000, 729, -1000, 13814, + 1058, -1000, 865, 1411, 1410, 1932, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1375, 977, 977, - 1375, 1375, 977, -1000, 31960, -1000, -254, -1000, -35, 507, - 1428, -1000, 22977, 977, 1193, -1000, -1000, -1000, -1000, -1000, - 20482, 1465, 1689, -1000, -1000, 1428, 1398, -1000, -1000, 277, - 27, 838, 949, 949, 13993, -1000, -1000, -1000, -1000, -1000, - -1000, 531, 1848, 263, 1428, -1000, 1228, 1533, -1000, -1000, - -1000, 1753, 17987, 31960, 1413, 1273, -1000, 521, -1000, 1251, - -13, -27, -1000, -1000, -1000, -1000, 949, -1000, 1081, 283, - 305, -1000, 366, -1000, -1000, -1000, -1000, 913, 1751, 1674, - 36, -1000, -1000, -1000, 277, 277, -1000, -1000, 558, 558, - 558, 558, 1018, 1018, -1000, -1000, -1000, -1000, -1000, 896, - -1000, -1000, -1000, 872, -1000, -1000, 1106, 1554, 203, -1000, - -1000, 687, 1015, 1680, 31960, -1000, -1000, 1134, 214, 31960, - 733, 1577, -1000, 1516, 1516, 1516, 31960, -1000, -1000, -1000, - -1000, 2967, 31960, 1388, -1000, 188, -1000, 1085, 31960, -1000, - 1386, 1462, 1058, 1058, -1000, -1000, 8473, -1000, 31960, 1428, - -1000, -1000, -1000, -1000, 434, 1718, 1712, 196, 188, 558, - 1058, -1000, -1000, -1000, -1000, -1000, -322, 1383, 401, 206, - 217, 31960, 31960, 31960, 31960, 31960, 518, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, 239, 385, -1000, 31960, 31960, 487, - -1000, -1000, -1000, 714, -1000, -1000, 714, -1000, -1000, -1000, - -1000, -1000, 1707, 31960, -20, -294, -1000, -291, -1000, -1000, - -1000, -1000, 599, 2471, 1889, -1000, 15490, 15490, -1000, -1000, - 1375, 1375, 12496, 12496, 8473, -1000, -1000, 256, 807, 256, - 15490, 15490, -1000, 15490, 15490, -1000, -86, 1186, 707, -1000, - 13993, 1133, -1000, -1000, 15490, 15490, 13993, -1000, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 408, 407, 406, 31960, - -1000, -1000, 1767, -1000, 1635, 1634, 1850, 1848, -1000, 22478, - 1689, -1000, -1000, 31960, -249, -1000, 1658, 1637, -1000, -1000, - -1000, -1000, 6952, 1774, 13993, 1568, 31960, 1428, -1000, 17487, - 31960, 31960, 22478, 22478, 22478, 22478, 22478, -1000, 1611, 1608, - -1000, 1598, 1596, 1607, 31960, -1000, 1369, 977, 1784, 17987, - 278, 1146, 22478, -1000, -1000, 22478, 31960, 6445, -1000, -1000, - -25, -36, -1000, -1000, -1000, -1000, 1803, 2312, -1000, -1000, - -1000, -1000, 815, 15490, 1890, -1000, 1014, -1000, -1000, 741, - 729, -1000, 31960, 1461, -1000, -1000, -1000, 558, 558, -1000, - -1000, -1000, -1000, 1365, -1000, 1362, 1237, 1359, 96, -1000, - 1503, 1696, 687, 687, -1000, 868, -1000, 1058, -1000, -1000, - 384, -1000, 1736, 31960, 1557, 1548, 1547, -1000, 1801, 1217, - 31960, -1000, -1000, 31960, -1000, 1632, 203, 31960, -1000, -1000, - -1000, -1000, 269, 31960, -1000, 1340, 188, -1000, -1000, -1000, - -1000, -1000, -1000, 31960, 213, -1000, 1460, 954, -1000, 1508, - -1000, -1000, -1000, -1000, 130, 258, -1000, 31960, 451, 1554, - 31960, -1000, -1000, -1000, 759, 759, -1000, -1000, 1691, -1000, - 1058, -1000, 15490, 2471, 2471, -1000, -1000, -1000, 977, -1000, - 977, 1457, 1457, -1000, 1457, 1459, -1000, 1457, 140, 1457, - 110, 977, 977, 2369, 2005, 1986, 1421, 1428, -80, -1000, - 949, 13993, 1466, 1373, 981, 1428, 1428, 1428, 1338, 31960, - -1000, -1000, -1000, -1000, 1848, 1844, 1232, -1000, -1000, 27, - 293, -1000, 1653, 1637, -1000, 1795, 1654, 1790, -1000, -1000, - -1000, 949, -1000, 1728, 1121, -1000, 670, 1176, -1000, -1000, - 11997, 1353, 1629, 504, 1338, 1210, 1533, 1512, 1544, 1559, - -1000, -1000, -1000, -1000, 1604, -1000, 1529, -1000, -1000, 1448, - -1000, -1000, 1234, 1848, 22478, 1180, 1180, -1000, 465, -1000, - -1000, -1000, -1000, -331, -1000, -1000, 2471, 123, -1000, -1000, - -1000, 1453, 15490, -1000, -1000, 277, 1012, 277, 849, -1000, - 847, -1000, -1000, -197, -1000, -1000, 1458, 1519, -1000, -1000, - 31960, -1000, -1000, 31960, 31960, 31960, 31960, -1000, -1000, 275, - -1000, 1321, 1319, -1000, -153, -1000, -1000, 1448, -1000, -1000, - -1000, 1079, -1000, -101, 1058, 31960, 31960, 31960, -1000, -1000, - -1000, -1000, -1000, -1000, -1000, -1000, 2471, -1000, -1000, -1000, - 338, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15490, - 15490, 15490, 15490, 15490, 1774, 997, 949, 15490, 15490, -1000, - 19983, 21979, 21979, 19484, -1000, 1844, 1842, 1787, 1648, 1650, - 1650, 1653, -1000, 1782, 1781, -1000, 996, 1780, 988, 703, - -1000, 31960, 13993, 1428, -1000, 284, 31960, 1428, 31960, -1000, - 1785, -1000, -1000, 13993, 1452, -1000, 13993, -1000, -1000, -1000, - -1000, -1000, 1785, 1180, -1000, -1000, 578, 56, 246, -1000, - -1000, -1000, -1000, 31960, 1270, 558, -1000, 558, 1075, 986, - -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1448, -1000, - -1000, -1000, 1217, 267, 309, -1000, 269, -1000, -159, -163, - 1744, -1000, -1000, 8473, -1000, -1000, 1446, 1513, -1000, -1000, - -1000, 1182, 1182, 1182, 1182, 212, 977, -1000, 1182, 1182, - 1268, -1000, -1000, -1000, 1268, 1268, 507, 1842, -1000, 13993, - 13993, 1645, 845, -1000, -1000, -1000, -1000, 975, 973, -1000, - 967, -1000, 1886, -1000, 949, -1000, 1428, -1000, 449, 1176, - -1000, 1774, 949, 31960, 949, 1774, -1000, 1445, 1502, -325, - 13993, 1429, 1214, -1000, -1000, -1000, -1000, -1000, 1740, 1428, - -1000, -1000, -1000, -1000, 307, 1199, -1000, 655, 31960, 31960, - -1000, -1000, -1000, -1000, 977, 221, -119, -1000, -1000, -1000, - 21480, -1000, -1000, -1000, -1000, -1000, 949, 1193, -1000, 841, - -1000, -1000, -1000, -1000, -1000, 31960, 1176, 31960, -1000, 1212, - -1000, 13993, 1425, 646, -330, 846, 962, 31960, 1528, 972, - 307, 14492, -93, 8473, 5938, 1197, -1000, -1000, 1617, -90, - -145, -1000, -1000, -1000, -1000, 1013, -1000, -1000, 876, 31960, - 839, 1271, 1779, -1000, -1000, 1195, 1518, -1000, 1856, -1000, - -1000, -1000, 810, 840, -1000, -1000, -1000, -93, 1182, 977, - -1000, -9, -1000, -1000, -1000, -1000, -1000, 1508, -1000, 1616, - -1000, -325, 1190, -1000, -1000, 269, -328, -1000, -1000, 1876, - 499, 499, -1000, -1000, -1000, -1000, -1000, 348, -1000, -1000, - -101, -104, -330, -325, 1091, 46, -1000, -1000, -1000, 340, - 915, -1000, 222, -1000, -138, 1271, -330, -1000, 1419, 1502, - -1000, -1000, -1000, -1000, -151, -1000, 1271, 13993, 1235, -1000, - -1000, 691, 31960, -336, 1088, -1000, 835, -336, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1322, 1058, 1058, + 1322, 1322, 1058, -1000, 31781, -1000, -252, -1000, -38, 556, + 1457, -1000, 22798, 1058, 1216, -1000, -1000, -1000, -1000, -1000, + 20303, 1475, 1681, -1000, -1000, 1457, 1375, -1000, -1000, 239, + 43, 737, 1008, 1008, 13814, -1000, -1000, -1000, -1000, -1000, + -1000, 538, 1923, 270, 1457, -1000, 1453, 1688, -1000, -1000, + -1000, 1839, 17808, 31781, 1599, 1406, -1000, 529, -1000, 1408, + 5, -27, -1000, -1000, -1000, -1000, 1008, -1000, 1092, 275, + 2492, -1000, 352, -1000, -1000, -1000, -1000, 500, 1806, 1729, + 50, -1000, -1000, -1000, 239, 239, -1000, -1000, 502, 502, + 502, 502, 1056, 1056, -1000, -1000, -1000, -1000, -1000, 944, + -1000, -1000, -1000, 926, -1000, -1000, 989, 1601, 190, -1000, + -1000, 653, 1055, 1741, 31781, -1000, -1000, 1179, 178, 31781, + 701, 1594, -1000, 1576, 1576, 1576, 31781, -1000, -1000, -1000, + -1000, 4321, 31781, 1370, -1000, 159, -1000, 1135, 31781, -1000, + 1368, 1512, 1067, 1067, -1000, -1000, 8294, -1000, 31781, 1457, + -1000, -1000, -1000, -1000, 447, 1773, 1770, 162, 159, 502, + 1067, -1000, -1000, -1000, -1000, -1000, -320, 1358, 426, 164, + 207, 31781, 31781, 31781, 31781, 31781, 525, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, 202, 395, -1000, 31781, 31781, 446, + -1000, -1000, -1000, 718, -1000, -1000, 718, -1000, -1000, -1000, + -1000, -1000, 1766, 31781, -26, -294, -1000, -290, -1000, -1000, + -1000, -1000, 1068, 1857, 1889, -1000, 15311, 15311, -1000, -1000, + 1322, 1322, 12317, 12317, 8294, -1000, -1000, 631, 706, 631, + 15311, 15311, -1000, 15311, 15311, -1000, -95, 1235, 670, -1000, + 13814, 986, -1000, -1000, 15311, 15311, 13814, -1000, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 443, 428, 425, 31781, + -1000, -1000, 1878, -1000, 1673, 1663, 1925, 1923, -1000, 22299, + 1681, -1000, -1000, 31781, -247, -1000, 1707, 1715, -1000, -1000, + -1000, -1000, 6773, 1871, 13814, 1593, 31781, 1457, -1000, 17308, + 31781, 31781, 22299, 22299, 22299, 22299, 22299, -1000, 1633, 1618, + -1000, 1620, 1611, 1624, 31781, -1000, 1316, 1058, 1915, 17808, + 274, 1273, 22299, -1000, -1000, 22299, 31781, 6266, -1000, -1000, + -33, -43, -1000, -1000, -1000, -1000, 1909, 2781, -1000, -1000, + -1000, -1000, 839, 15311, 1945, -1000, 1052, -1000, -1000, 760, + 759, -1000, 31781, 1510, -1000, -1000, -1000, 502, 502, -1000, + -1000, -1000, -1000, 1314, -1000, 1268, 1407, 1231, 106, -1000, + 1548, 1761, 653, 653, -1000, 906, -1000, 1067, -1000, -1000, + 418, -1000, 1788, 31781, 1592, 1591, 1587, -1000, 1906, 1298, + 31781, -1000, -1000, 31781, -1000, 1661, 190, 31781, -1000, -1000, + -1000, -1000, 272, 31781, -1000, 1345, 159, -1000, -1000, -1000, + -1000, -1000, -1000, 31781, 171, -1000, 1509, 956, -1000, 1559, + -1000, -1000, -1000, -1000, 161, 249, -1000, 31781, 403, 1601, + 31781, -1000, -1000, -1000, 732, 732, -1000, -1000, 1760, -1000, + 1067, -1000, 15311, 1857, 1857, -1000, -1000, -1000, 1058, -1000, + 1058, 1507, 1507, -1000, 1507, 1508, -1000, 1507, 119, 1507, + 110, 1058, 1058, 2337, 2005, 1459, 1421, 1457, -90, -1000, + 1008, 13814, 1373, 1181, 911, 1457, 1457, 1457, 1220, 31781, + -1000, -1000, -1000, -1000, 1923, 1921, 1311, -1000, -1000, 43, + 322, -1000, 1718, 1715, -1000, 1905, 1700, 1900, -1000, -1000, + -1000, 1008, -1000, 1777, 1228, -1000, 649, 1214, -1000, -1000, + 11818, 1226, 1657, 524, 1220, 1493, 1688, 1555, 1583, 1655, + -1000, -1000, -1000, -1000, 1614, -1000, 1524, -1000, -1000, 1495, + -1000, -1000, 1176, 1923, 22299, 1320, 1320, -1000, 504, -1000, + -1000, -1000, -1000, -329, -1000, -1000, 1857, 127, -1000, -1000, + -1000, 1504, 15311, -1000, -1000, 239, 1047, 239, 891, -1000, + 888, -1000, -1000, -196, -1000, -1000, 1502, 1596, -1000, -1000, + 31781, -1000, -1000, 31781, 31781, 31781, 31781, -1000, -1000, 265, + -1000, 1212, 1208, -1000, -149, -1000, -1000, 1495, -1000, -1000, + -1000, 1120, -1000, -107, 31781, 31781, 31781, 31781, -1000, -1000, + -1000, -1000, -1000, -1000, -1000, -1000, 1857, -1000, -1000, -1000, + 291, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 15311, + 15311, 15311, 15311, 15311, 1871, 1044, 1008, 15311, 15311, -1000, + 19804, 21800, 21800, 19305, -1000, 1921, 1891, 1899, 1683, 1691, + 1691, 1718, -1000, 1890, 1883, -1000, 1043, 1876, 1041, 743, + -1000, 31781, 13814, 1457, -1000, 283, 31781, 1457, 31781, -1000, + 1918, -1000, -1000, 13814, 1497, -1000, 13814, -1000, -1000, -1000, + -1000, -1000, 1918, 1320, -1000, -1000, 574, 56, 261, -1000, + -1000, -1000, -1000, 31781, 1196, 502, -1000, 502, 1100, 1073, + -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1495, -1000, + -1000, -1000, 1298, 263, 319, -1000, 272, -1000, -160, -161, + 1800, -1000, -1000, 8294, -1000, -1000, 1477, 1563, -1000, -1000, + -1000, 865, 865, 865, 865, 172, 1058, -1000, 865, 865, + 1202, -1000, -1000, -1000, 1202, 1202, 556, 1891, -1000, 13814, + 13814, 1679, 929, -1000, -1000, -1000, -1000, 1028, 1021, -1000, + 1007, -1000, 1944, -1000, 1008, -1000, 1457, -1000, 480, 1214, + -1000, 1871, 1008, 31781, 1008, 1871, -1000, 1474, 1498, -323, + 13814, 1473, 1199, -1000, -1000, -1000, -1000, -1000, 1798, 1457, + -1000, -1000, -1000, -1000, 260, 1280, -1000, 644, 31781, 31781, + -1000, -1000, -1000, -1000, 1058, 215, -138, -1000, -1000, -1000, + 21301, -1000, -1000, -1000, -1000, -1000, 1008, 1216, -1000, 856, + -1000, -1000, -1000, -1000, -1000, 31781, 1214, 31781, -1000, 1175, + -1000, 13814, 1446, 641, -328, 870, 781, 31781, 1580, 635, + 260, 14313, -103, 8294, 5759, 1146, -1000, -1000, 1645, -98, + -145, -1000, -1000, -1000, -1000, 1187, -1000, -1000, 768, 31781, + 868, 1283, 1875, -1000, -1000, 1141, 1578, -1000, 1929, -1000, + -1000, -1000, 837, 1004, -1000, -1000, -1000, -103, 865, 1058, + -1000, -7, -1000, -1000, -1000, -1000, -1000, 1559, -1000, 1641, + -1000, -323, 1117, -1000, -1000, 272, -326, -1000, -1000, 1940, + 495, 495, -1000, -1000, -1000, -1000, -1000, 354, -1000, -1000, + -107, -108, -328, -323, 1114, 55, -1000, -1000, -1000, 347, + 915, -1000, 174, -1000, -139, 1283, -328, -1000, 1327, 1498, + -1000, -1000, -1000, -1000, -150, -1000, 1283, 13814, 1197, -1000, + -1000, 712, 31781, -334, 1106, -1000, 854, -334, -1000, -1000, } var yyPgo = [...]int{ - 0, 9, 2190, 6, 1, 4, 2188, 55, 79, 150, - 15, 167, 82, 2185, 2179, 2178, 2176, 170, 169, 166, - 2175, 2174, 2173, 2172, 2171, 2170, 2168, 2164, 2163, 2162, - 164, 135, 149, 2161, 2160, 2158, 96, 143, 64, 66, - 159, 2139, 2138, 49, 2124, 2123, 2122, 155, 152, 627, - 2120, 151, 91, 2119, 2118, 2117, 2116, 2115, 2114, 2113, - 2111, 2109, 2103, 2102, 2101, 2100, 2099, 226, 2097, 2096, - 10, 2095, 58, 2094, 2093, 2092, 2091, 2089, 5, 2088, - 2083, 2082, 2080, 119, 2079, 2076, 2074, 160, 2073, 2072, - 72, 408, 88, 86, 2069, 2066, 93, 162, 2064, 94, - 124, 2060, 2059, 3, 85, 45, 2056, 74, 102, 2054, - 41, 2053, 2052, 87, 2049, 2048, 2047, 71, 2044, 2041, - 3642, 2028, 70, 114, 29, 31, 2023, 2022, 2021, 2020, - 62, 815, 2019, 2018, 40, 2017, 2016, 168, 2015, 118, - 24, 2014, 18, 23, 28, 2013, 112, 2011, 52, 60, - 2008, 117, 2007, 2005, 36, 25, 35, 2004, 30, 111, - 130, 22, 75, 113, 2003, 2002, 38, 42, 2001, 2000, - 1999, 1998, 1994, 1993, 47, 1992, 32, 1991, 193, 1988, - 17, 27, 57, 84, 80, 43, 16, 1987, 154, 1986, - 33, 137, 105, 131, 1984, 1982, 1981, 145, 186, 1980, - 1976, 50, 141, 121, 125, 1975, 191, 1974, 1973, 67, - 1397, 1765, 37, 138, 1972, 1971, 2425, 90, 115, 39, - 1969, 92, 1968, 1965, 1964, 158, 146, 73, 934, 77, - 1963, 1962, 1961, 1960, 1959, 1958, 1957, 100, 44, 34, - 171, 46, 1955, 1954, 1953, 104, 78, 1952, 134, 133, - 95, 136, 1950, 142, 128, 122, 1949, 83, 1948, 1945, - 1944, 1943, 65, 1942, 1940, 1939, 1937, 126, 120, 99, - 76, 1936, 63, 98, 132, 123, 11, 2, 20, 157, - 14, 1935, 8, 0, 1934, 12, 144, 194, 139, 1933, - 1932, 7, 1931, 13, 1930, 1927, 116, 1926, 1923, 1922, - 21, 26, 19, 1921, 1920, 3598, 2528, 109, 1918, 161, + 0, 9, 2236, 6, 1, 4, 2235, 55, 85, 151, + 15, 170, 76, 2234, 2233, 2231, 2229, 169, 168, 167, + 2228, 2227, 2226, 2225, 2223, 2222, 2220, 2219, 2217, 2216, + 165, 143, 146, 2212, 2209, 2208, 96, 148, 60, 64, + 152, 2207, 2205, 46, 2204, 2203, 2202, 162, 158, 644, + 2200, 161, 84, 2199, 2198, 2197, 2196, 2192, 2190, 2179, + 2178, 2176, 2175, 2174, 2173, 2172, 2171, 260, 2170, 2168, + 10, 2164, 57, 2163, 2162, 2161, 2160, 2158, 5, 2140, + 2139, 2138, 2137, 113, 2136, 2135, 2134, 160, 2133, 2132, + 87, 156, 88, 91, 2131, 2130, 79, 157, 2129, 93, + 124, 2128, 2127, 3, 82, 45, 2125, 71, 104, 2124, + 41, 2123, 2122, 133, 2120, 2119, 2118, 75, 2117, 2116, + 3416, 2115, 72, 111, 26, 31, 2114, 2113, 2111, 2109, + 62, 815, 2103, 2102, 40, 2101, 2100, 171, 2099, 114, + 24, 2097, 20, 23, 29, 2096, 116, 2095, 52, 58, + 2094, 110, 2093, 2092, 36, 18, 35, 2091, 30, 100, + 125, 22, 67, 118, 2089, 2088, 38, 42, 2083, 2082, + 2080, 2079, 2076, 2074, 49, 2073, 32, 2072, 175, 2070, + 17, 28, 43, 74, 80, 47, 16, 2069, 154, 2067, + 33, 155, 95, 135, 2064, 2063, 2060, 144, 186, 2059, + 2058, 120, 136, 121, 119, 2052, 197, 2047, 2044, 66, + 1397, 1765, 37, 142, 2041, 2028, 2844, 90, 115, 39, + 2023, 92, 2022, 2021, 2020, 163, 145, 73, 934, 77, + 2019, 2018, 2017, 2015, 2014, 2013, 2012, 86, 44, 34, + 130, 50, 1995, 1994, 1993, 99, 78, 1992, 132, 126, + 105, 137, 1991, 138, 128, 122, 1989, 83, 1988, 1987, + 1984, 1983, 65, 1982, 1981, 1980, 1976, 131, 117, 98, + 70, 1974, 63, 94, 134, 123, 11, 2, 27, 149, + 14, 1973, 8, 0, 1972, 12, 139, 195, 141, 1971, + 1969, 7, 1968, 13, 1965, 1964, 112, 1963, 1962, 1961, + 21, 25, 19, 1960, 1959, 3553, 2285, 109, 1958, 164, } //line sql.y:5747 @@ -5724,7 +5706,7 @@ var yyChk = [...]int{ 507, 508, -134, 83, -131, -238, 90, -238, 92, 92, 415, 29, 79, 80, 81, 29, 76, 77, -120, -120, -120, -120, -180, 211, 85, -306, 84, -244, 378, 381, - -181, 85, -282, 378, -284, -283, -211, -211, -211, -238, + -181, 85, -282, 378, -284, -211, -211, -211, -211, -238, -283, -131, -131, -131, -131, -131, -161, 90, -131, -131, -182, -306, -211, 181, -182, -182, -219, -154, -155, 15, 17, -168, 51, -166, 50, -166, -176, 17, 17, 90, diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index d65fdf6c74a..659cf61ae69 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -969,7 +969,7 @@ vindex_type_opt: } vindex_type: - id_or_var + sql_id { $$ = $1 } From 3250badbe7b7c8453af5a85b2f1071bc3ee520b7 Mon Sep 17 00:00:00 2001 From: Manan Gupta Date: Fri, 12 Nov 2021 17:25:13 +0530 Subject: [PATCH 11/11] fix test outputs Signed-off-by: Manan Gupta --- go/vt/vtgate/planbuilder/testdata/alterVschema_cases.txt | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/go/vt/vtgate/planbuilder/testdata/alterVschema_cases.txt b/go/vt/vtgate/planbuilder/testdata/alterVschema_cases.txt index 9c3b03523e8..b3e1dad9450 100644 --- a/go/vt/vtgate/planbuilder/testdata/alterVschema_cases.txt +++ b/go/vt/vtgate/planbuilder/testdata/alterVschema_cases.txt @@ -9,7 +9,7 @@ "Name": "main", "Sharded": false }, - "query": "alter vschema create vindex hash_vdx using hash" + "query": "alter vschema create vindex hash_vdx using `hash`" } } Gen4 plan same as above @@ -25,7 +25,7 @@ Gen4 plan same as above "Name": "user", "Sharded": true }, - "query": "alter vschema create vindex `user`.hash_vdx using hash" + "query": "alter vschema create vindex `user`.hash_vdx using `hash`" } } Gen4 plan same as above @@ -121,7 +121,7 @@ Gen4 plan same as above "Name": "main", "Sharded": false }, - "query": "alter vschema on a add vindex hash (id)" + "query": "alter vschema on a add vindex `hash` (id)" } } Gen4 plan same as above @@ -137,7 +137,7 @@ Gen4 plan same as above "Name": "main", "Sharded": false }, - "query": "alter vschema on a drop vindex hash" + "query": "alter vschema on a drop vindex `hash`" } } Gen4 plan same as above