Skip to content

Instantly share code, notes, and snippets.

@mikelikespie
Created January 30, 2012 08:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mikelikespie/1703394 to your computer and use it in GitHub Desktop.
Save mikelikespie/1703394 to your computer and use it in GitHub Desktop.
Gram.y converted to go without types & functions implemented yet... trying to see if I can get Postgres's parser running in go.
//line simplegram.y:2
package main
//line simplegram.y:6
type yySymType struct {
yys int
core_yystype core_YYSTYPE
/* these fields must match core_YYSTYPE: */
ival int
str string
keyword string
chr char
boolean bool
jtype JoinType
dbehavior DropBehavior
oncommit OnCommitAction
list *List
node *Node
value *Value
objtype ObjectType
typnam *TypeName
fun_param *FunctionParameter
fun_param_mode FunctionParameterMode
funwithargs *FuncWithArgs
defelt *DefElem
sortby *SortBy
windef *WindowDef
jexpr *JoinExpr
ielem *IndexElem
alias *Alias
rangevar *RangeVar
into *IntoClause
with *WithClause
aind *A_Indices
target *ResTarget
privtarget *PrivTarget
accesspriv *AccessPriv
istmt *InsertStmt
vsetstmt *VariableSetStmt
}
const IDENT = 57346
const FCONST = 57347
const SCONST = 57348
const BCONST = 57349
const XCONST = 57350
const Op = 57351
const ICONST = 57352
const PARAM = 57353
const TYPECAST = 57354
const DOT_DOT = 57355
const COLON_EQUALS = 57356
const ABORT_P = 57357
const ABSOLUTE_P = 57358
const ACCESS = 57359
const ACTION = 57360
const ADD_P = 57361
const ADMIN = 57362
const AFTER = 57363
const AGGREGATE = 57364
const ALL = 57365
const ALSO = 57366
const ALTER = 57367
const ALWAYS = 57368
const ANALYSE = 57369
const ANALYZE = 57370
const AND = 57371
const ANY = 57372
const ARRAY = 57373
const AS = 57374
const ASC = 57375
const ASSERTION = 57376
const ASSIGNMENT = 57377
const ASYMMETRIC = 57378
const AT = 57379
const ATTRIBUTE = 57380
const AUTHORIZATION = 57381
const BACKWARD = 57382
const BEFORE = 57383
const BEGIN_P = 57384
const BETWEEN = 57385
const BIGINT = 57386
const BINARY = 57387
const BIT = 57388
const BOOLEAN_P = 57389
const BOTH = 57390
const BY = 57391
const CACHE = 57392
const CALLED = 57393
const CASCADE = 57394
const CASCADED = 57395
const CASE = 57396
const CAST = 57397
const CATALOG_P = 57398
const CHAIN = 57399
const CHAR_P = 57400
const CHARACTER = 57401
const CHARACTERISTICS = 57402
const CHECK = 57403
const CHECKPOINT = 57404
const CLASS = 57405
const CLOSE = 57406
const CLUSTER = 57407
const COALESCE = 57408
const COLLATE = 57409
const COLLATION = 57410
const COLUMN = 57411
const COMMENT = 57412
const COMMENTS = 57413
const COMMIT = 57414
const COMMITTED = 57415
const CONCURRENTLY = 57416
const CONFIGURATION = 57417
const CONNECTION = 57418
const CONSTRAINT = 57419
const CONSTRAINTS = 57420
const CONTENT_P = 57421
const CONTINUE_P = 57422
const CONVERSION_P = 57423
const COPY = 57424
const COST = 57425
const CREATE = 57426
const CROSS = 57427
const CSV = 57428
const CURRENT_P = 57429
const CURRENT_CATALOG = 57430
const CURRENT_DATE = 57431
const CURRENT_ROLE = 57432
const CURRENT_SCHEMA = 57433
const CURRENT_TIME = 57434
const CURRENT_TIMESTAMP = 57435
const CURRENT_USER = 57436
const CURSOR = 57437
const CYCLE = 57438
const DATA_P = 57439
const DATABASE = 57440
const DAY_P = 57441
const DEALLOCATE = 57442
const DEC = 57443
const DECIMAL_P = 57444
const DECLARE = 57445
const DEFAULT = 57446
const DEFAULTS = 57447
const DEFERRABLE = 57448
const DEFERRED = 57449
const DEFINER = 57450
const DELETE_P = 57451
const DELIMITER = 57452
const DELIMITERS = 57453
const DESC = 57454
const DICTIONARY = 57455
const DISABLE_P = 57456
const DISCARD = 57457
const DISTINCT = 57458
const DO = 57459
const DOCUMENT_P = 57460
const DOMAIN_P = 57461
const DOUBLE_P = 57462
const DROP = 57463
const EACH = 57464
const ELSE = 57465
const ENABLE_P = 57466
const ENCODING = 57467
const ENCRYPTED = 57468
const END_P = 57469
const ENUM_P = 57470
const ESCAPE = 57471
const EXCEPT = 57472
const EXCLUDE = 57473
const EXCLUDING = 57474
const EXCLUSIVE = 57475
const EXECUTE = 57476
const EXISTS = 57477
const EXPLAIN = 57478
const EXTENSION = 57479
const EXTERNAL = 57480
const EXTRACT = 57481
const FALSE_P = 57482
const FAMILY = 57483
const FETCH = 57484
const FIRST_P = 57485
const FLOAT_P = 57486
const FOLLOWING = 57487
const FOR = 57488
const FORCE = 57489
const FOREIGN = 57490
const FORWARD = 57491
const FREEZE = 57492
const FROM = 57493
const FULL = 57494
const FUNCTION = 57495
const FUNCTIONS = 57496
const GLOBAL = 57497
const GRANT = 57498
const GRANTED = 57499
const GREATEST = 57500
const GROUP_P = 57501
const HANDLER = 57502
const HAVING = 57503
const HEADER_P = 57504
const HOLD = 57505
const HOUR_P = 57506
const IDENTITY_P = 57507
const IF_P = 57508
const ILIKE = 57509
const IMMEDIATE = 57510
const IMMUTABLE = 57511
const IMPLICIT_P = 57512
const IN_P = 57513
const INCLUDING = 57514
const INCREMENT = 57515
const INDEX = 57516
const INDEXES = 57517
const INHERIT = 57518
const INHERITS = 57519
const INITIALLY = 57520
const INLINE_P = 57521
const INNER_P = 57522
const INOUT = 57523
const INPUT_P = 57524
const INSENSITIVE = 57525
const INSERT = 57526
const INSTEAD = 57527
const INT_P = 57528
const INTEGER = 57529
const INTERSECT = 57530
const INTERVAL = 57531
const INTO = 57532
const INVOKER = 57533
const IS = 57534
const ISNULL = 57535
const ISOLATION = 57536
const JOIN = 57537
const KEY = 57538
const LABEL = 57539
const LANGUAGE = 57540
const LARGE_P = 57541
const LAST_P = 57542
const LC_COLLATE_P = 57543
const LC_CTYPE_P = 57544
const LEADING = 57545
const LEAST = 57546
const LEFT = 57547
const LEVEL = 57548
const LIKE = 57549
const LIMIT = 57550
const LISTEN = 57551
const LOAD = 57552
const LOCAL = 57553
const LOCALTIME = 57554
const LOCALTIMESTAMP = 57555
const LOCATION = 57556
const LOCK_P = 57557
const MAPPING = 57558
const MATCH = 57559
const MAXVALUE = 57560
const MINUTE_P = 57561
const MINVALUE = 57562
const MODE = 57563
const MONTH_P = 57564
const MOVE = 57565
const NAME_P = 57566
const NAMES = 57567
const NATIONAL = 57568
const NATURAL = 57569
const NCHAR = 57570
const NEXT = 57571
const NO = 57572
const NONE = 57573
const NOT = 57574
const NOTHING = 57575
const NOTIFY = 57576
const NOTNULL = 57577
const NOWAIT = 57578
const NULL_P = 57579
const NULLIF = 57580
const NULLS_P = 57581
const NUMERIC = 57582
const OBJECT_P = 57583
const OF = 57584
const OFF = 57585
const OFFSET = 57586
const OIDS = 57587
const ON = 57588
const ONLY = 57589
const OPERATOR = 57590
const OPTION = 57591
const OPTIONS = 57592
const OR = 57593
const ORDER = 57594
const OUT_P = 57595
const OUTER_P = 57596
const OVER = 57597
const OVERLAPS = 57598
const OVERLAY = 57599
const OWNED = 57600
const OWNER = 57601
const PARSER = 57602
const PARTIAL = 57603
const PARTITION = 57604
const PASSING = 57605
const PASSWORD = 57606
const PLACING = 57607
const PLANS = 57608
const POSITION = 57609
const PRECEDING = 57610
const PRECISION = 57611
const PRESERVE = 57612
const PREPARE = 57613
const PREPARED = 57614
const PRIMARY = 57615
const PRIOR = 57616
const PRIVILEGES = 57617
const PROCEDURAL = 57618
const PROCEDURE = 57619
const QUOTE = 57620
const RANGE = 57621
const READ = 57622
const REAL = 57623
const REASSIGN = 57624
const RECHECK = 57625
const RECURSIVE = 57626
const REF = 57627
const REFERENCES = 57628
const REINDEX = 57629
const RELATIVE_P = 57630
const RELEASE = 57631
const RENAME = 57632
const REPEATABLE = 57633
const REPLACE = 57634
const REPLICA = 57635
const RESET = 57636
const RESTART = 57637
const RESTRICT = 57638
const RETURNING = 57639
const RETURNS = 57640
const REVOKE = 57641
const RIGHT = 57642
const ROLE = 57643
const ROLLBACK = 57644
const ROW = 57645
const ROWS = 57646
const RULE = 57647
const SAVEPOINT = 57648
const SCHEMA = 57649
const SCROLL = 57650
const SEARCH = 57651
const SECOND_P = 57652
const SECURITY = 57653
const SELECT = 57654
const SEQUENCE = 57655
const SEQUENCES = 57656
const SERIALIZABLE = 57657
const SERVER = 57658
const SESSION = 57659
const SESSION_USER = 57660
const SET = 57661
const SETOF = 57662
const SHARE = 57663
const SHOW = 57664
const SIMILAR = 57665
const SIMPLE = 57666
const SMALLINT = 57667
const SNAPSHOT = 57668
const SOME = 57669
const STABLE = 57670
const STANDALONE_P = 57671
const START = 57672
const STATEMENT = 57673
const STATISTICS = 57674
const STDIN = 57675
const STDOUT = 57676
const STORAGE = 57677
const STRICT_P = 57678
const STRIP_P = 57679
const SUBSTRING = 57680
const SYMMETRIC = 57681
const SYSID = 57682
const SYSTEM_P = 57683
const TABLE = 57684
const TABLES = 57685
const TABLESPACE = 57686
const TEMP = 57687
const TEMPLATE = 57688
const TEMPORARY = 57689
const TEXT_P = 57690
const THEN = 57691
const TIME = 57692
const TIMESTAMP = 57693
const TO = 57694
const TRAILING = 57695
const TRANSACTION = 57696
const TREAT = 57697
const TRIGGER = 57698
const TRIM = 57699
const TRUE_P = 57700
const TRUNCATE = 57701
const TRUSTED = 57702
const TYPE_P = 57703
const TYPES_P = 57704
const UNBOUNDED = 57705
const UNCOMMITTED = 57706
const UNENCRYPTED = 57707
const UNION = 57708
const UNIQUE = 57709
const UNKNOWN = 57710
const UNLISTEN = 57711
const UNLOGGED = 57712
const UNTIL = 57713
const UPDATE = 57714
const USER = 57715
const USING = 57716
const VACUUM = 57717
const VALID = 57718
const VALIDATE = 57719
const VALIDATOR = 57720
const VALUE_P = 57721
const VALUES = 57722
const VARCHAR = 57723
const VARIADIC = 57724
const VARYING = 57725
const VERBOSE = 57726
const VERSION_P = 57727
const VIEW = 57728
const VOLATILE = 57729
const WHEN = 57730
const WHERE = 57731
const WHITESPACE_P = 57732
const WINDOW = 57733
const WITH = 57734
const WITHOUT = 57735
const WORK = 57736
const WRAPPER = 57737
const WRITE = 57738
const XML_P = 57739
const XMLATTRIBUTES = 57740
const XMLCONCAT = 57741
const XMLELEMENT = 57742
const XMLEXISTS = 57743
const XMLFOREST = 57744
const XMLPARSE = 57745
const XMLPI = 57746
const XMLROOT = 57747
const XMLSERIALIZE = 57748
const YEAR_P = 57749
const YES_P = 57750
const ZONE = 57751
const NULLS_FIRST = 57752
const NULLS_LAST = 57753
const WITH_TIME = 57754
const POSTFIXOP = 57755
const UMINUS = 57756
var yyToknames = []string{
"IDENT",
"FCONST",
"SCONST",
"BCONST",
"XCONST",
"Op",
"ICONST",
"PARAM",
"TYPECAST",
"DOT_DOT",
"COLON_EQUALS",
"ABORT_P",
"ABSOLUTE_P",
"ACCESS",
"ACTION",
"ADD_P",
"ADMIN",
"AFTER",
"AGGREGATE",
"ALL",
"ALSO",
"ALTER",
"ALWAYS",
"ANALYSE",
"ANALYZE",
"AND",
"ANY",
"ARRAY",
"AS",
"ASC",
"ASSERTION",
"ASSIGNMENT",
"ASYMMETRIC",
"AT",
"ATTRIBUTE",
"AUTHORIZATION",
"BACKWARD",
"BEFORE",
"BEGIN_P",
"BETWEEN",
"BIGINT",
"BINARY",
"BIT",
"BOOLEAN_P",
"BOTH",
"BY",
"CACHE",
"CALLED",
"CASCADE",
"CASCADED",
"CASE",
"CAST",
"CATALOG_P",
"CHAIN",
"CHAR_P",
"CHARACTER",
"CHARACTERISTICS",
"CHECK",
"CHECKPOINT",
"CLASS",
"CLOSE",
"CLUSTER",
"COALESCE",
"COLLATE",
"COLLATION",
"COLUMN",
"COMMENT",
"COMMENTS",
"COMMIT",
"COMMITTED",
"CONCURRENTLY",
"CONFIGURATION",
"CONNECTION",
"CONSTRAINT",
"CONSTRAINTS",
"CONTENT_P",
"CONTINUE_P",
"CONVERSION_P",
"COPY",
"COST",
"CREATE",
"CROSS",
"CSV",
"CURRENT_P",
"CURRENT_CATALOG",
"CURRENT_DATE",
"CURRENT_ROLE",
"CURRENT_SCHEMA",
"CURRENT_TIME",
"CURRENT_TIMESTAMP",
"CURRENT_USER",
"CURSOR",
"CYCLE",
"DATA_P",
"DATABASE",
"DAY_P",
"DEALLOCATE",
"DEC",
"DECIMAL_P",
"DECLARE",
"DEFAULT",
"DEFAULTS",
"DEFERRABLE",
"DEFERRED",
"DEFINER",
"DELETE_P",
"DELIMITER",
"DELIMITERS",
"DESC",
"DICTIONARY",
"DISABLE_P",
"DISCARD",
"DISTINCT",
"DO",
"DOCUMENT_P",
"DOMAIN_P",
"DOUBLE_P",
"DROP",
"EACH",
"ELSE",
"ENABLE_P",
"ENCODING",
"ENCRYPTED",
"END_P",
"ENUM_P",
"ESCAPE",
"EXCEPT",
"EXCLUDE",
"EXCLUDING",
"EXCLUSIVE",
"EXECUTE",
"EXISTS",
"EXPLAIN",
"EXTENSION",
"EXTERNAL",
"EXTRACT",
"FALSE_P",
"FAMILY",
"FETCH",
"FIRST_P",
"FLOAT_P",
"FOLLOWING",
"FOR",
"FORCE",
"FOREIGN",
"FORWARD",
"FREEZE",
"FROM",
"FULL",
"FUNCTION",
"FUNCTIONS",
"GLOBAL",
"GRANT",
"GRANTED",
"GREATEST",
"GROUP_P",
"HANDLER",
"HAVING",
"HEADER_P",
"HOLD",
"HOUR_P",
"IDENTITY_P",
"IF_P",
"ILIKE",
"IMMEDIATE",
"IMMUTABLE",
"IMPLICIT_P",
"IN_P",
"INCLUDING",
"INCREMENT",
"INDEX",
"INDEXES",
"INHERIT",
"INHERITS",
"INITIALLY",
"INLINE_P",
"INNER_P",
"INOUT",
"INPUT_P",
"INSENSITIVE",
"INSERT",
"INSTEAD",
"INT_P",
"INTEGER",
"INTERSECT",
"INTERVAL",
"INTO",
"INVOKER",
"IS",
"ISNULL",
"ISOLATION",
"JOIN",
"KEY",
"LABEL",
"LANGUAGE",
"LARGE_P",
"LAST_P",
"LC_COLLATE_P",
"LC_CTYPE_P",
"LEADING",
"LEAST",
"LEFT",
"LEVEL",
"LIKE",
"LIMIT",
"LISTEN",
"LOAD",
"LOCAL",
"LOCALTIME",
"LOCALTIMESTAMP",
"LOCATION",
"LOCK_P",
"MAPPING",
"MATCH",
"MAXVALUE",
"MINUTE_P",
"MINVALUE",
"MODE",
"MONTH_P",
"MOVE",
"NAME_P",
"NAMES",
"NATIONAL",
"NATURAL",
"NCHAR",
"NEXT",
"NO",
"NONE",
"NOT",
"NOTHING",
"NOTIFY",
"NOTNULL",
"NOWAIT",
"NULL_P",
"NULLIF",
"NULLS_P",
"NUMERIC",
"OBJECT_P",
"OF",
"OFF",
"OFFSET",
"OIDS",
"ON",
"ONLY",
"OPERATOR",
"OPTION",
"OPTIONS",
"OR",
"ORDER",
"OUT_P",
"OUTER_P",
"OVER",
"OVERLAPS",
"OVERLAY",
"OWNED",
"OWNER",
"PARSER",
"PARTIAL",
"PARTITION",
"PASSING",
"PASSWORD",
"PLACING",
"PLANS",
"POSITION",
"PRECEDING",
"PRECISION",
"PRESERVE",
"PREPARE",
"PREPARED",
"PRIMARY",
"PRIOR",
"PRIVILEGES",
"PROCEDURAL",
"PROCEDURE",
"QUOTE",
"RANGE",
"READ",
"REAL",
"REASSIGN",
"RECHECK",
"RECURSIVE",
"REF",
"REFERENCES",
"REINDEX",
"RELATIVE_P",
"RELEASE",
"RENAME",
"REPEATABLE",
"REPLACE",
"REPLICA",
"RESET",
"RESTART",
"RESTRICT",
"RETURNING",
"RETURNS",
"REVOKE",
"RIGHT",
"ROLE",
"ROLLBACK",
"ROW",
"ROWS",
"RULE",
"SAVEPOINT",
"SCHEMA",
"SCROLL",
"SEARCH",
"SECOND_P",
"SECURITY",
"SELECT",
"SEQUENCE",
"SEQUENCES",
"SERIALIZABLE",
"SERVER",
"SESSION",
"SESSION_USER",
"SET",
"SETOF",
"SHARE",
"SHOW",
"SIMILAR",
"SIMPLE",
"SMALLINT",
"SNAPSHOT",
"SOME",
"STABLE",
"STANDALONE_P",
"START",
"STATEMENT",
"STATISTICS",
"STDIN",
"STDOUT",
"STORAGE",
"STRICT_P",
"STRIP_P",
"SUBSTRING",
"SYMMETRIC",
"SYSID",
"SYSTEM_P",
"TABLE",
"TABLES",
"TABLESPACE",
"TEMP",
"TEMPLATE",
"TEMPORARY",
"TEXT_P",
"THEN",
"TIME",
"TIMESTAMP",
"TO",
"TRAILING",
"TRANSACTION",
"TREAT",
"TRIGGER",
"TRIM",
"TRUE_P",
"TRUNCATE",
"TRUSTED",
"TYPE_P",
"TYPES_P",
"UNBOUNDED",
"UNCOMMITTED",
"UNENCRYPTED",
"UNION",
"UNIQUE",
"UNKNOWN",
"UNLISTEN",
"UNLOGGED",
"UNTIL",
"UPDATE",
"USER",
"USING",
"VACUUM",
"VALID",
"VALIDATE",
"VALIDATOR",
"VALUE_P",
"VALUES",
"VARCHAR",
"VARIADIC",
"VARYING",
"VERBOSE",
"VERSION_P",
"VIEW",
"VOLATILE",
"WHEN",
"WHERE",
"WHITESPACE_P",
"WINDOW",
"WITH",
"WITHOUT",
"WORK",
"WRAPPER",
"WRITE",
"XML_P",
"XMLATTRIBUTES",
"XMLCONCAT",
"XMLELEMENT",
"XMLEXISTS",
"XMLFOREST",
"XMLPARSE",
"XMLPI",
"XMLROOT",
"XMLSERIALIZE",
"YEAR_P",
"YES_P",
"ZONE",
"NULLS_FIRST",
"NULLS_LAST",
"WITH_TIME",
" =",
" <",
" >",
"POSTFIXOP",
" +",
" -",
" *",
" /",
" %",
" ^",
"UMINUS",
" [",
" ]",
" (",
" )",
" .",
}
var yyStatenames = []string{}
const yyEofCode = 1
const yyErrCode = 2
const yyMaxDepth = 200
//line simplegram.y:12152
//line yacctab:1
var yyExca = []int{
-1, 0,
1, 114,
429, 114,
-2, 1298,
-1, 1,
1, -1,
-2, 0,
-1, 122,
81, 679,
174, 866,
313, 361,
342, 361,
386, 361,
-2, 893,
-1, 144,
1, 1273,
84, 1273,
156, 1273,
297, 1273,
392, 1273,
427, 1273,
429, 1273,
-2, 1285,
-1, 161,
1, 1276,
84, 1276,
156, 1276,
297, 1276,
392, 1276,
427, 1276,
429, 1276,
-2, 1284,
-1, 169,
1, 114,
429, 114,
-2, 1298,
-1, 511,
151, 1958,
352, 1958,
413, 1958,
428, 1958,
-2, 208,
-1, 609,
1, 1959,
429, 1959,
-2, 804,
-1, 610,
1, 1984,
429, 1984,
-2, 804,
-1, 611,
1, 1906,
429, 1906,
-2, 804,
-1, 612,
1, 1940,
429, 1940,
-2, 804,
-1, 617,
1, 1909,
429, 1909,
-2, 804,
-1, 618,
1, 1842,
429, 1842,
-2, 804,
-1, 682,
142, 1320,
146, 1320,
208, 1320,
244, 1320,
-2, 1280,
-1, 685,
142, 1319,
146, 1319,
208, 1319,
244, 1319,
-2, 1277,
-1, 709,
294, 139,
319, 139,
-2, 117,
-1, 722,
319, 719,
-2, 1789,
-1, 747,
6, 1819,
14, 1819,
426, 1819,
-2, 1816,
-1, 748,
6, 1820,
14, 1820,
426, 1820,
-2, 1817,
-1, 787,
246, 1793,
-2, 1785,
-1, 852,
39, 156,
-2, 159,
-1, 878,
386, 361,
-2, 892,
-1, 1011,
142, 1319,
146, 1319,
208, 1319,
244, 1319,
-2, 1281,
-1, 1081,
6, 2126,
14, 2126,
426, 2126,
-2, 1614,
-1, 1105,
6, 1480,
426, 1480,
-2, 2091,
-1, 1107,
6, 1444,
-2, 2076,
-1, 1108,
6, 1473,
426, 1473,
-2, 2077,
-1, 1109,
6, 1451,
-2, 2078,
-1, 1110,
6, 1473,
59, 1473,
426, 1473,
-2, 2079,
-1, 1111,
6, 1473,
59, 1473,
426, 1473,
-2, 2080,
-1, 1112,
6, 1440,
-2, 2082,
-1, 1113,
6, 1440,
-2, 2083,
-1, 1114,
6, 1453,
-2, 2086,
-1, 1115,
6, 1441,
-2, 2089,
-1, 1116,
6, 1442,
-2, 2090,
-1, 1118,
6, 1473,
59, 1473,
426, 1473,
-2, 2094,
-1, 1119,
6, 1440,
-2, 2097,
-1, 1120,
6, 1445,
-2, 2102,
-1, 1121,
6, 1443,
-2, 2105,
-1, 1122,
6, 1483,
-2, 2107,
-1, 1123,
6, 1483,
-2, 2108,
-1, 1124,
6, 1468,
59, 1468,
426, 1468,
-2, 2112,
-1, 1193,
5, 117,
10, 117,
417, 117,
418, 117,
-2, 476,
-1, 1570,
303, 1343,
304, 1343,
-2, 1500,
-1, 1610,
23, 1690,
30, 1690,
327, 1690,
-2, 1701,
-1, 1620,
130, 1285,
142, 1285,
146, 1285,
188, 1285,
208, 1285,
244, 1285,
252, 1285,
366, 1285,
-2, 1587,
-1, 1629,
6, 1796,
426, 1796,
-2, 1761,
-1, 1805,
426, 872,
-2, 1898,
-1, 1917,
31, 1440,
104, 1440,
413, 1440,
424, 1440,
427, 1440,
430, 1440,
-2, 912,
-1, 2007,
174, 866,
-2, 361,
-1, 2232,
1, 2042,
84, 2042,
130, 2042,
142, 2042,
146, 2042,
151, 2042,
156, 2042,
159, 2042,
161, 2042,
188, 2042,
208, 2042,
244, 2042,
252, 2042,
297, 2042,
366, 2042,
389, 2042,
391, 2042,
392, 2042,
424, 2042,
427, 2042,
428, 2042,
429, 2042,
-2, 1311,
-1, 2233,
1, 2040,
84, 2040,
130, 2040,
142, 2040,
146, 2040,
151, 2040,
156, 2040,
159, 2040,
161, 2040,
188, 2040,
208, 2040,
244, 2040,
252, 2040,
297, 2040,
366, 2040,
389, 2040,
391, 2040,
392, 2040,
424, 2040,
427, 2040,
428, 2040,
429, 2040,
-2, 1311,
-1, 2236,
1, 2054,
84, 2054,
130, 2054,
142, 2054,
146, 2054,
151, 2054,
156, 2054,
159, 2054,
161, 2054,
188, 2054,
208, 2054,
244, 2054,
252, 2054,
297, 2054,
366, 2054,
389, 2054,
391, 2054,
392, 2054,
424, 2054,
427, 2054,
428, 2054,
429, 2054,
-2, 1311,
-1, 2248,
414, 0,
415, 0,
-2, 1512,
-1, 2249,
414, 0,
415, 0,
-2, 1513,
-1, 2254,
167, 0,
207, 0,
323, 0,
-2, 1521,
-1, 2260,
167, 0,
207, 0,
323, 0,
-2, 1525,
-1, 2304,
14, 912,
-2, 1795,
-1, 2486,
250, 546,
-2, 551,
-1, 2821,
167, 0,
207, 0,
323, 0,
-2, 1523,
-1, 2822,
167, 0,
207, 0,
323, 0,
-2, 1527,
-1, 2828,
167, 0,
207, 0,
323, 0,
-2, 1529,
-1, 3075,
111, 338,
-2, 336,
-1, 3231,
85, 1375,
152, 1375,
180, 1375,
195, 1375,
205, 1375,
227, 1375,
300, 1375,
-2, 1285,
-1, 3234,
426, 1796,
-2, 1786,
-1, 3296,
167, 0,
207, 0,
323, 0,
-2, 1531,
-1, 3303,
192, 0,
-2, 1544,
-1, 3309,
23, 1706,
30, 1706,
327, 1706,
-2, 1702,
-1, 3342,
414, 0,
415, 0,
-2, 1569,
-1, 3343,
414, 0,
415, 0,
-2, 1570,
-1, 3652,
192, 0,
-2, 1545,
-1, 3858,
192, 0,
-2, 1575,
-1, 3981,
192, 0,
-2, 1576,
-1, 4112,
43, 0,
-2, 2075,
-1, 4132,
427, 1068,
429, 1068,
-2, 1298,
-1, 4163,
429, 1273,
-2, 1285,
-1, 4181,
427, 1068,
429, 1068,
-2, 1298,
}
const yyNprod = 2220
const yyPrivate = 57344
var yyTokenNames []string
var yyStates []string
const yyLast = 66866
var yyAct = []int{
201, 4166, 4111, 4164, 4167, 2808, 1239, 3525, 3793, 2804,
4044, 4142, 3438, 693, 160, 2949, 143, 4165, 2757, 3103,
4110, 600, 108, 4074, 598, 104, 599, 88, 601, 62,
3312, 2440, 3976, 3962, 4045, 2633, 3403, 2011, 2627, 4046,
2223, 4002, 2638, 3780, 3955, 3882, 2944, 3786, 3515, 3118,
3003, 2637, 2303, 2708, 1308, 728, 3761, 1923, 919, 3255,
3703, 686, 3456, 1219, 3819, 2352, 2677, 2722, 204, 3315,
3101, 2624, 2344, 749, 3521, 3915, 2435, 2498, 1500, 1912,
3444, 743, 2605, 3402, 1693, 3419, 3439, 3810, 3150, 1051,
3194, 3109, 706, 2618, 3088, 3323, 1388, 1277, 3230, 1135,
2758, 3217, 2301, 626, 1612, 2896, 2181, 2093, 2296, 2716,
2064, 2409, 2713, 2678, 1519, 3602, 2026, 2023, 2659, 2645,
2620, 514, 2622, 932, 3154, 1423, 2434, 786, 1205, 2399,
1681, 1136, 2353, 1625, 633, 634, 1675, 1140, 639, 2895,
2719, 1175, 633, 1242, 160, 1035, 1499, 2726, 1619, 2043,
1373, 3631, 663, 665, 2046, 667, 2090, 514, 514, 2489,
2960, 113, 1793, 87, 637, 2033, 1337, 1780, 705, 2646,
2073, 710, 710, 710, 705, 705, 705, 705, 719, 722,
691, 2439, 730, 160, 746, 746, 719, 719, 776, 719,
85, 108, 1258, 54, 104, 2406, 88, 705, 62, 2341,
52, 2308, 1801, 2273, 831, 2270, 2071, 1064, 2721, 2170,
1313, 3153, 2218, 1517, 1567, 2228, 1033, 51, 1575, 3183,
2061, 2032, 775, 2486, 1143, 1421, 2485, 2162, 2328, 615,
615, 1184, 1346, 990, 1307, 1910, 1788, 1686, 1202, 607,
1161, 2609, 1333, 1036, 2211, 648, 115, 1552, 1000, 28,
1550, 189, 1661, 2180, 1212, 1181, 594, 541, 685, 937,
2723, 1018, 1773, 2642, 1158, 1995, 696, 1017, 2575, 1528,
196, 629, 161, 1019, 891, 1238, 1305, 972, 1154, 162,
694, 561, 989, 1779, 1553, 834, 729, 690, 1551, 2182,
690, 4130, 137, 1541, 3904, 690, 4192, 2786, 1447, 4183,
605, 1023, 1447, 1447, 4182, 4106, 3257, 4183, 1436, 1610,
4081, 4080, 1583, 2176, 2176, 3723, 2229, 4079, 666, 124,
2176, 4062, 4061, 137, 2915, 2129, 4060, 4053, 4052, 2176,
3163, 1436, 2068, 4037, 3902, 4019, 4038, 1585, 1304, 159,
158, 2177, 3983, 1605, 3256, 2176, 3973, 2847, 522, 3163,
129, 3971, 2848, 3970, 3163, 1055, 1436, 198, 2877, 3938,
3911, 1582, 3939, 3912, 552, 3874, 3864, 1584, 3875, 2129,
165, 985, 1436, 832, 1583, 3650, 3862, 595, 3852, 3863,
568, 2176, 3769, 3707, 2129, 3770, 2159, 627, 1522, 500,
1610, 744, 772, 1583, 3903, 650, 605, 2069, 964, 1585,
167, 165, 1055, 3700, 502, 2877, 3701, 3699, 1436, 3654,
2159, 835, 2176, 3504, 3413, 124, 3505, 3393, 1585, 1436,
2159, 1936, 3649, 3376, 1605, 2086, 2129, 3371, 702, 1584,
3372, 167, 1436, 683, 714, 4180, 945, 4181, 168, 3361,
682, 3307, 3362, 1462, 2129, 4054, 129, 826, 1584, 2159,
164, 1610, 2070, 3239, 1583, 2067, 3240, 3209, 3139, 833,
3210, 3140, 3831, 3124, 2157, 2854, 3125, 1600, 3322, 168,
2853, 1606, 2970, 2854, 2940, 2971, 963, 2941, 3727, 1585,
2929, 164, 3686, 2129, 4132, 1605, 2922, 2914, 2910, 2129,
2915, 2129, 1602, 1603, 2909, 2908, 2907, 2129, 2129, 2129,
2850, 787, 1436, 2129, 514, 514, 705, 1598, 1542, 1584,
3648, 1610, 2846, 842, 1583, 163, 705, 2129, 3704, 710,
710, 710, 852, 2771, 2671, 1581, 2159, 2672, 165, 3555,
3538, 3215, 746, 730, 719, 1604, 719, 1304, 2888, 1585,
776, 719, 1448, 2072, 3261, 1605, 1448, 1448, 1611, 3409,
2668, 3163, 1606, 2669, 1602, 1603, 705, 2532, 167, 3099,
2176, 963, 1436, 2519, 842, 2503, 2520, 2227, 2504, 1584,
1436, 3300, 2763, 1602, 1603, 730, 963, 719, 746, 746,
2175, 2505, 776, 2176, 822, 2888, 2161, 2160, 870, 2159,
2159, 1786, 2287, 2221, 2890, 2732, 168, 1604, 939, 2128,
1772, 1581, 2129, 1771, 1544, 2214, 1984, 1545, 164, 1326,
160, 1843, 1479, 1606, 691, 1480, 1604, 1031, 975, 701,
3465, 3035, 169, 1601, 165, 1666, 1666, 1852, 1852, 1611,
915, 3295, 1138, 165, 1602, 1603, 1137, 729, 705, 1852,
2066, 2890, 163, 1521, 705, 2942, 1206, 1521, 824, 3410,
963, 1666, 3412, 1206, 167, 1666, 1221, 1852, 2051, 2065,
2943, 165, 624, 167, 827, 995, 2564, 705, 967, 969,
970, 971, 1030, 1606, 1029, 1583, 3256, 1604, 4004, 729,
1462, 1436, 4119, 4109, 3928, 3891, 1055, 3872, 3869, 2877,
1611, 167, 168, 3855, 1602, 1603, 596, 2562, 3844, 1058,
1585, 168, 2010, 3681, 164, 705, 3306, 731, 1058, 825,
3674, 950, 951, 164, 3667, 955, 958, 1586, 1587, 1588,
1589, 1590, 1591, 841, 827, 705, 2563, 719, 719, 168,
1584, 3664, 3663, 1055, 3621, 3611, 2877, 1604, 597, 869,
3563, 164, 829, 1795, 1012, 3554, 3529, 2085, 1792, 3488,
1611, 3455, 3454, 797, 3453, 3363, 3358, 3357, 3356, 2886,
2884, 2885, 879, 2878, 2879, 2880, 2881, 2882, 2883, 2632,
3320, 3319, 3309, 3106, 894, 163, 564, 3281, 1011, 1586,
1587, 1588, 1589, 1590, 1591, 921, 923, 815, 817, 719,
746, 746, 730, 3173, 1131, 2877, 1790, 1791, 1586, 1587,
1588, 1589, 1590, 1591, 929, 3168, 2886, 2884, 2885, 2052,
2878, 2879, 2880, 2881, 2882, 2883, 892, 1677, 3162, 1055,
842, 165, 2877, 3098, 1677, 842, 842, 3074, 1317, 2407,
1795, 943, 2927, 1374, 2283, 1055, 1676, 2926, 2877, 3305,
2924, 2923, 893, 1676, 940, 2903, 1241, 1285, 944, 2894,
1674, 167, 2876, 935, 705, 705, 705, 1678, 746, 1586,
1587, 1588, 1589, 1590, 1591, 705, 934, 1213, 2873, 2888,
2871, 2869, 719, 719, 2868, 1138, 2867, 2866, 2010, 1137,
2861, 2951, 719, 1336, 2859, 2849, 3763, 1384, 2533, 168,
705, 705, 2371, 1434, 1682, 965, 729, 564, 973, 2407,
1626, 1378, 163, 4190, 842, 564, 1240, 671, 1274, 4138,
4118, 517, 3314, 1583, 719, 719, 2888, 1001, 2495, 1586,
1587, 1588, 1589, 1590, 1591, 2890, 968, 973, 1463, 3993,
3528, 3966, 3945, 3102, 1058, 163, 1148, 2607, 1585, 842,
991, 3898, 3897, 3865, 996, 3860, 2803, 165, 160, 1309,
1309, 2405, 707, 1322, 1795, 1792, 2050, 2284, 1220, 3827,
2877, 3824, 3801, 705, 633, 3765, 683, 1518, 1584, 1518,
3673, 1013, 2890, 682, 1842, 1014, 1032, 167, 3610, 1457,
1177, 1180, 1194, 3607, 705, 1211, 3587, 1149, 3280, 842,
1026, 1027, 2027, 1482, 1539, 2877, 1374, 1283, 1284, 1208,
1252, 1278, 2888, 1790, 1791, 3536, 1476, 1227, 933, 1795,
3391, 1792, 1627, 1370, 3302, 168, 1052, 144, 2888, 1243,
3235, 1058, 624, 1058, 1377, 1220, 1383, 164, 2955, 1058,
1299, 2953, 1628, 2842, 1327, 2837, 1525, 1795, 2275, 1034,
1829, 1058, 1058, 1058, 1058, 2696, 966, 947, 948, 949,
1058, 1254, 952, 953, 954, 957, 2679, 2466, 2890, 1790,
1791, 163, 2009, 1483, 1794, 1353, 691, 1465, 2404, 622,
623, 1058, 1341, 1342, 2890, 1344, 2359, 1792, 2217, 2281,
2226, 1516, 1588, 1589, 1590, 1591, 1357, 1666, 1669, 3805,
2886, 2884, 2885, 1795, 2878, 2879, 2880, 2881, 2882, 2883,
2040, 1792, 1314, 3560, 1422, 2019, 1824, 1683, 1352, 1659,
1658, 741, 739, 740, 1442, 733, 734, 735, 736, 737,
738, 1657, 1622, 1656, 3559, 1790, 1791, 1655, 1654, 1653,
1532, 1652, 1651, 1650, 1649, 705, 1648, 1647, 516, 1058,
2888, 2878, 2879, 2880, 2881, 2882, 2883, 144, 1646, 1790,
1791, 892, 514, 1645, 710, 1644, 1643, 1642, 1629, 1795,
1641, 1640, 1374, 1799, 1639, 1432, 1638, 1637, 163, 1688,
705, 1515, 719, 1467, 1372, 1292, 978, 684, 877, 3126,
692, 670, 1626, 1795, 3172, 1485, 144, 1486, 1487, 1488,
2687, 1478, 1491, 1492, 1493, 1327, 1986, 1496, 2688, 1537,
2878, 2879, 2880, 2881, 2882, 2883, 1691, 1132, 1583, 2877,
1275, 1692, 1320, 1275, 564, 624, 3690, 3614, 624, 3184,
2670, 2733, 730, 2886, 2884, 2885, 514, 2878, 2879, 2880,
2881, 2882, 2883, 1585, 1798, 1513, 1677, 2673, 1688, 2886,
2884, 2885, 2925, 2878, 2879, 2880, 2881, 2882, 2883, 2819,
624, 1530, 1531, 2365, 514, 1676, 2805, 2806, 1008, 1005,
1679, 1680, 2317, 1584, 564, 828, 705, 1685, 1543, 3988,
3547, 719, 719, 719, 719, 1691, 1330, 1887, 2998, 1559,
1692, 1962, 705, 1665, 1667, 1796, 1560, 719, 719, 1554,
1673, 1966, 163, 1911, 719, 1374, 683, 1548, 1577, 683,
683, 1549, 2761, 1571, 1981, 705, 1572, 1573, 1445, 1359,
1210, 1833, 1323, 655, 1836, 1837, 662, 1634, 1586, 1587,
1588, 1589, 1590, 1591, 1251, 1630, 729, 1150, 2628, 2629,
659, 156, 1943, 3557, 3558, 2080, 2081, 1823, 624, 1147,
2864, 2634, 4083, 3781, 710, 3905, 710, 3120, 3110, 1967,
3771, 959, 1146, 654, 1876, 1250, 1151, 2320, 3702, 156,
1993, 1905, 1906, 1663, 1664, 2878, 2879, 2880, 2881, 2882,
2883, 1672, 3846, 1685, 3683, 3682, 2809, 4067, 2720, 3794,
719, 719, 719, 719, 1253, 719, 1962, 1489, 1490, 2016,
2309, 2075, 1494, 1495, 624, 1497, 1498, 1325, 655, 3374,
1807, 1808, 2880, 2881, 2882, 2883, 2047, 956, 1961, 2068,
1909, 1777, 655, 1826, 1662, 1216, 1974, 1839, 1840, 1324,
1774, 854, 2321, 2718, 1176, 1331, 197, 1965, 1844, 1146,
1952, 1953, 4064, 1215, 2095, 3871, 2096, 3169, 654, 4027,
710, 3695, 854, 1691, 1853, 3005, 2652, 3987, 1692, 2779,
3096, 719, 654, 2490, 159, 158, 2084, 1146, 1145, 730,
1861, 719, 4000, 719, 1214, 746, 3811, 746, 3936, 3799,
719, 853, 776, 2490, 2069, 2410, 1873, 2322, 3496, 619,
2319, 939, 2510, 3428, 3427, 705, 2063, 1895, 3127, 3249,
3247, 2582, 2035, 160, 855, 2581, 2113, 2111, 2088, 620,
545, 2049, 705, 705, 1882, 746, 1881, 719, 2006, 1280,
2002, 1997, 719, 2059, 2116, 855, 1518, 1556, 2778, 2118,
4105, 2041, 705, 2491, 1784, 2074, 4104, 1558, 2936, 2070,
3739, 1987, 2067, 3464, 633, 619, 633, 2005, 160, 2200,
2004, 1156, 3458, 2491, 705, 705, 2173, 2001, 1679, 2171,
2599, 2172, 857, 2174, 2511, 620, 544, 867, 1558, 1216,
1146, 3131, 1994, 729, 2003, 2147, 554, 2034, 2323, 1982,
2152, 3425, 2488, 3415, 1667, 1665, 1673, 1003, 1557, 1004,
2140, 2141, 1058, 705, 3161, 719, 2145, 1058, 1058, 1058,
1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058,
1363, 1058, 2650, 2487, 657, 2309, 2015, 2100, 1996, 1557,
1998, 3736, 2602, 144, 692, 1847, 3935, 2030, 1591, 2883,
2072, 689, 622, 1276, 2425, 622, 1276, 1058, 730, 1058,
2158, 1058, 1789, 2048, 2423, 2383, 3132, 2179, 1817, 1789,
2280, 553, 1058, 1157, 1058, 1058, 1058, 1058, 1058, 1058,
1058, 1058, 1058, 1058, 3542, 1058, 1058, 622, 623, 1058,
3201, 3452, 2216, 3006, 3450, 2318, 3449, 1058, 3447, 1664,
1663, 2492, 2121, 1672, 2123, 2424, 1260, 1691, 1802, 688,
2651, 2366, 1692, 2292, 1058, 2422, 3216, 2241, 3437, 1816,
543, 2492, 542, 3206, 2127, 3054, 2267, 638, 2269, 2288,
3052, 2293, 3459, 3202, 858, 3050, 3049, 2380, 3047, 3045,
684, 3696, 744, 1610, 3044, 546, 1583, 2066, 2336, 1813,
2265, 3002, 2346, 2347, 2348, 2349, 3001, 940, 2981, 2133,
2134, 3457, 729, 2939, 2135, 2136, 2130, 2137, 2138, 2360,
2131, 1585, 2037, 690, 2305, 622, 623, 1605, 1944, 2823,
3460, 2285, 2695, 3220, 2694, 2036, 2370, 2377, 2693, 859,
2291, 1685, 2692, 1055, 3129, 1806, 2877, 2574, 2554, 1845,
2553, 1584, 1058, 2531, 2529, 2502, 710, 776, 1259, 710,
2464, 3223, 2164, 4104, 2261, 2139, 710, 1954, 2188, 2183,
1951, 1949, 1001, 2205, 2207, 1948, 3218, 2209, 1799, 2208,
1802, 622, 623, 2213, 3526, 1939, 3221, 2379, 2412, 2414,
1935, 1002, 2263, 2603, 1932, 1931, 1800, 2262, 1930, 1928,
705, 1927, 2268, 710, 3130, 2230, 1925, 2400, 3219, 555,
1899, 3809, 1897, 3294, 1878, 1877, 3198, 1849, 1841, 719,
1828, 2598, 1825, 4043, 1822, 2453, 1785, 3821, 1778, 1775,
710, 2460, 2461, 993, 846, 2481, 746, 687, 719, 719,
719, 746, 2792, 730, 1691, 719, 2155, 719, 719, 1692,
1944, 719, 3200, 2996, 2816, 1606, 2815, 556, 2814, 710,
2813, 1484, 2499, 2499, 1688, 3203, 885, 1806, 884, 1296,
1804, 633, 633, 1691, 1207, 2376, 1602, 1603, 1692, 2355,
710, 3222, 2358, 2833, 883, 2835, 882, 906, 564, 2374,
3441, 2994, 3870, 645, 863, 2493, 1257, 723, 2472, 2985,
2401, 1691, 1787, 2362, 2363, 2889, 1692, 2831, 710, 1846,
529, 710, 776, 710, 2272, 2369, 156, 1058, 2264, 1604,
710, 3947, 2470, 2272, 2777, 4048, 2888, 1255, 2266, 2775,
710, 144, 1611, 1433, 1980, 710, 1209, 834, 2452, 2444,
2500, 1151, 3018, 2521, 2446, 2447, 3199, 729, 1475, 3948,
3791, 719, 719, 1884, 719, 3820, 1256, 2142, 719, 719,
719, 719, 1269, 2166, 1803, 842, 1814, 4145, 3616, 646,
2522, 2524, 1978, 3016, 2506, 2507, 2378, 1382, 1815, 2385,
1044, 2737, 2890, 2656, 2382, 3440, 1473, 2381, 545, 633,
2621, 719, 1804, 1266, 2614, 2375, 2063, 1268, 842, 2375,
3175, 1922, 3017, 1273, 2829, 1249, 2154, 2390, 1799, 2834,
2279, 2566, 1855, 1883, 1261, 1380, 2387, 2277, 2631, 1902,
684, 1058, 1267, 684, 684, 832, 2527, 3178, 1246, 1812,
2499, 2453, 1920, 2072, 4049, 2153, 1247, 2477, 2993, 2560,
2567, 1271, 1618, 2465, 544, 1856, 1620, 1936, 744, 1294,
1623, 1624, 1911, 931, 874, 3176, 705, 782, 1857, 1244,
2082, 1921, 2450, 835, 4078, 1248, 2717, 3451, 2561, 2729,
2462, 1858, 3442, 3448, 2714, 2095, 2596, 3264, 3263, 2169,
2480, 3262, 691, 3053, 2617, 842, 1803, 2565, 1245, 1309,
2571, 2494, 2499, 719, 2499, 719, 2572, 4050, 3927, 3051,
559, 1586, 1587, 1588, 1589, 1590, 1591, 2675, 2751, 1859,
1058, 833, 2776, 3048, 1295, 1989, 3046, 2774, 2072, 1977,
710, 4077, 2530, 2509, 2995, 2830, 1990, 2523, 2501, 1929,
2660, 2957, 907, 1472, 2540, 2832, 644, 647, 1868, 864,
1518, 4151, 724, 1860, 1926, 4143, 2072, 2886, 2884, 2885,
1991, 2878, 2879, 2880, 2881, 2882, 2883, 830, 2728, 710,
2749, 1871, 1379, 1848, 4139, 719, 746, 746, 3926, 2745,
2557, 2747, 1429, 2219, 2220, 1938, 2143, 2782, 543, 557,
542, 558, 2735, 2680, 2681, 2682, 2683, 2684, 1270, 528,
3097, 3921, 2573, 705, 2258, 1058, 2594, 1039, 1058, 2595,
547, 3479, 1058, 546, 3094, 1979, 3011, 3888, 2635, 1447,
2729, 4144, 2615, 2616, 878, 1339, 1340, 2825, 705, 1474,
160, 2585, 1426, 4063, 2736, 2697, 2271, 1826, 2173, 2655,
4057, 2171, 2654, 2172, 4146, 2174, 1058, 1058, 1862, 3920,
1156, 2666, 1058, 2769, 1947, 3866, 3917, 2752, 1381, 2167,
1937, 1058, 1058, 3201, 2765, 4058, 1058, 1198, 1264, 3196,
1176, 3680, 730, 1204, 2689, 1058, 195, 2168, 1058, 3193,
4188, 2795, 691, 3916, 1272, 1946, 2730, 4075, 1058, 1058,
1058, 2600, 4032, 195, 1228, 2731, 742, 1660, 3502, 1263,
1058, 2934, 2933, 2913, 3854, 2739, 3202, 1863, 3204, 2728,
4150, 834, 1186, 1866, 2959, 1959, 1869, 2802, 3012, 1356,
1430, 1058, 1058, 1058, 2278, 642, 1236, 2843, 2256, 1058,
1058, 1058, 2259, 1617, 1058, 564, 2706, 2852, 2840, 2958,
2570, 1893, 1864, 3603, 3501, 2526, 1058, 1622, 1865, 1058,
1058, 1890, 1157, 3918, 690, 2851, 3093, 3480, 1187, 2945,
2928, 1870, 3774, 2772, 1058, 3146, 1892, 1427, 2255, 1203,
2664, 2568, 2911, 3925, 3773, 1176, 729, 4087, 2918, 4086,
3205, 1234, 2855, 2788, 2789, 2703, 1867, 2811, 2812, 2663,
2856, 2817, 3277, 4023, 2664, 1058, 1518, 2857, 2858, 832,
2569, 2499, 3837, 3446, 3265, 3026, 2905, 986, 984, 1691,
2210, 844, 1231, 2793, 1692, 1691, 3220, 4047, 2798, 2797,
1692, 3104, 2921, 4103, 2801, 2844, 2807, 2730, 2810, 2794,
2800, 2796, 4101, 4149, 3197, 1188, 3901, 835, 144, 3198,
3025, 3107, 1042, 2395, 3223, 1428, 1021, 3024, 1022, 2783,
1016, 1972, 2755, 2826, 2824, 842, 3015, 2744, 3216, 3601,
2685, 2704, 2705, 1448, 719, 719, 2647, 2516, 1021, 3221,
1973, 719, 1970, 1900, 2701, 3200, 1811, 2604, 2954, 1536,
1189, 1469, 1190, 1450, 2257, 833, 144, 3013, 3203, 2838,
2839, 1281, 1827, 710, 1891, 1691, 1691, 1691, 3445, 2863,
1692, 1692, 1692, 2972, 2973, 1971, 3346, 1201, 3349, 1265,
2948, 1130, 1020, 3919, 983, 962, 3014, 501, 2393, 2707,
1191, 1155, 710, 3775, 1610, 3220, 2990, 1583, 2900, 2901,
2902, 144, 3595, 3007, 1020, 2665, 2212, 156, 1199, 1896,
2038, 1229, 1821, 2790, 2961, 710, 2149, 1237, 1022, 2891,
2892, 2893, 1585, 3223, 1235, 1291, 783, 1193, 1605, 4176,
564, 3077, 1151, 1911, 3222, 710, 564, 1200, 3218, 3199,
1022, 1232, 2499, 2499, 3670, 3583, 3672, 3758, 3221, 1230,
3709, 3584, 1584, 3708, 2852, 3031, 2550, 2548, 2515, 1901,
564, 3033, 1192, 3034, 2952, 2956, 2946, 564, 2163, 2987,
3219, 1942, 3081, 2028, 2700, 3530, 2702, 3396, 2012, 1358,
2974, 3396, 2984, 2274, 1940, 1565, 705, 2999, 2356, 2350,
3174, 705, 3347, 2394, 2773, 1830, 3079, 3963, 1940, 3089,
1233, 842, 3348, 1830, 3057, 3056, 3000, 3055, 2021, 3190,
3931, 3086, 842, 842, 2527, 3084, 3040, 3036, 3930, 3062,
3063, 4034, 705, 1021, 705, 2935, 1518, 1547, 1546, 1329,
2791, 2471, 564, 3085, 2017, 2986, 1691, 1293, 903, 778,
3119, 1692, 3586, 3222, 652, 2411, 705, 2408, 3082, 3397,
3032, 3822, 3598, 3397, 3597, 1009, 1606, 1006, 2697, 3748,
3637, 3137, 4175, 1819, 2047, 3636, 3635, 2517, 3634, 3484,
3671, 1566, 688, 889, 3483, 1058, 3117, 1602, 1603, 203,
3272, 1058, 3583, 1819, 3226, 3229, 3226, 3073, 2729, 1020,
3072, 1903, 3071, 2095, 1058, 3207, 3182, 3070, 3066, 710,
3065, 1691, 3064, 3395, 691, 719, 1692, 3395, 3531, 2589,
3151, 2587, 3408, 3151, 2580, 3152, 719, 1831, 3152, 1832,
1604, 710, 3160, 3080, 746, 1831, 1941, 1832, 3075, 2579,
2578, 3078, 1964, 1611, 1366, 2802, 4091, 2006, 2802, 2002,
3145, 3783, 3463, 3516, 705, 3030, 710, 3959, 2950, 876,
2518, 3105, 719, 4041, 1365, 3233, 3274, 3113, 2768, 1327,
3767, 2577, 2767, 2766, 3083, 926, 2005, 3633, 3932, 2004,
1058, 3279, 705, 705, 1904, 3000, 2001, 2728, 705, 3148,
1058, 1058, 3224, 3227, 1058, 1058, 1058, 3159, 1058, 3234,
3144, 2932, 3212, 2003, 619, 3698, 3, 1058, 1880, 3802,
3766, 604, 82, 1058, 2203, 3260, 2202, 3059, 3060, 3061,
2712, 3123, 3590, 3313, 620, 1058, 3067, 3481, 3069, 691,
3208, 1058, 3134, 3135, 563, 1058, 3211, 3803, 2285, 2711,
1302, 3238, 3236, 1058, 3640, 3232, 1058, 3482, 3136, 1058,
1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 3237,
1058, 3114, 1152, 110, 3283, 3304, 3697, 2007, 1058, 1058,
3177, 3179, 3180, 748, 748, 1058, 3242, 1058, 2185, 4137,
92, 602, 60, 3591, 1058, 3275, 1058, 603, 35, 3321,
3324, 3185, 3186, 3187, 3188, 3189, 506, 3191, 4040, 3325,
3269, 1303, 3273, 1439, 2182, 2730, 3624, 4090, 1367, 3804,
4082, 3859, 1586, 1587, 1588, 1589, 1590, 1591, 3367, 3815,
3798, 1962, 1518, 1440, 3404, 2189, 1518, 3318, 3737, 3669,
3629, 2897, 3301, 3416, 1529, 2872, 2836, 2229, 3400, 2008,
2178, 744, 890, 2400, 998, 3389, 2285, 3359, 3287, 3288,
3289, 3290, 3311, 3424, 2190, 1691, 2662, 4004, 3906, 2898,
1692, 3549, 3478, 3462, 719, 719, 719, 719, 3390, 653,
2738, 3351, 2710, 710, 2674, 2195, 708, 1016, 2078, 1555,
1691, 82, 1691, 1535, 3333, 1692, 1533, 1692, 1343, 1153,
988, 4036, 3151, 3745, 2982, 2964, 2962, 3152, 2741, 2661,
144, 3388, 2630, 3383, 2191, 2114, 3352, 2112, 2104, 2186,
1691, 2101, 2024, 3405, 1471, 1692, 1470, 2802, 3366, 1468,
710, 1466, 1464, 3297, 3298, 710, 1460, 1458, 3379, 1451,
1449, 3377, 110, 3378, 1444, 1441, 3399, 1438, 1437, 4184,
3407, 3387, 3944, 3267, 3266, 606, 3328, 4094, 3398, 92,
3385, 60, 3796, 672, 677, 2187, 2451, 35, 3461, 946,
842, 1335, 1204, 4030, 3751, 4105, 1024, 705, 3418, 700,
1799, 2383, 692, 3524, 2224, 2725, 1332, 3336, 3337, 3338,
3339, 3340, 3341, 3342, 3343, 3344, 3345, 2611, 3350, 564,
548, 3411, 3414, 624, 1776, 3778, 564, 1058, 1058, 564,
1334, 3413, 3142, 3436, 1316, 564, 881, 3533, 1945, 564,
3519, 1799, 3513, 1789, 3507, 1810, 656, 705, 658, 660,
661, 1809, 1386, 2543, 3527, 1789, 3704, 1583, 1583, 3420,
4025, 2730, 195, 3551, 2453, 3534, 4024, 3535, 1369, 819,
1671, 1670, 1844, 2380, 3523, 1682, 4123, 3986, 1911, 1345,
3979, 3679, 1585, 2225, 3641, 3544, 2785, 2196, 1203, 1025,
1297, 1838, 699, 2192, 1010, 2980, 1835, 719, 1028, 2193,
979, 917, 1007, 1058, 705, 3497, 3498, 2697, 625, 3499,
3500, 2717, 1584, 1584, 3508, 2979, 2729, 3573, 3564, 2729,
3517, 608, 608, 2377, 3577, 1851, 3606, 3575, 2194, 3609,
2197, 1850, 3226, 3568, 3593, 3532, 1058, 840, 4095, 4055,
1570, 2095, 3956, 144, 3806, 3539, 2725, 2198, 2499, 3585,
2499, 748, 1424, 3426, 3543, 3112, 2753, 710, 3546, 3545,
3466, 2588, 2060, 2660, 2020, 2013, 2639, 1298, 2613, 1578,
1524, 3537, 2199, 2379, 2690, 2062, 2274, 3553, 4177, 3556,
2039, 730, 2770, 3596, 3562, 1228, 3599, 4174, 705, 705,
705, 705, 1620, 2841, 2860, 1058, 1058, 748, 748, 2877,
1583, 1058, 1058, 624, 1960, 2728, 1058, 1058, 2728, 624,
564, 3149, 1894, 3795, 1834, 3659, 3495, 1236, 1058, 3658,
3594, 3600, 4056, 1058, 3853, 3619, 3975, 3620, 3845, 125,
3368, 1058, 2912, 3485, 3486, 3487, 3638, 3604, 3605, 3489,
3490, 3491, 3492, 2285, 3612, 3685, 3373, 3676, 3615, 3613,
987, 1355, 1301, 820, 3394, 3195, 3192, 3623, 3518, 2623,
3653, 2376, 1318, 1058, 974, 2316, 1685, 1129, 1102, 1392,
1103, 1393, 1234, 1058, 1668, 1058, 1390, 1065, 3630, 3760,
3087, 3506, 936, 1481, 938, 729, 3625, 2433, 3691, 3661,
3662, 2975, 2091, 2764, 2276, 2307, 2862, 1635, 2612, 1050,
2289, 3401, 4066, 1231, 2724, 3639, 1046, 1058, 3693, 1047,
3578, 3522, 2083, 3711, 2014, 1564, 2215, 1568, 748, 1561,
3660, 719, 2184, 2730, 788, 3318, 2730, 748, 2499, 2499,
576, 3588, 2640, 643, 2079, 3677, 888, 2610, 3665, 3668,
3128, 2601, 3494, 3694, 1992, 515, 997, 669, 1385, 536,
710, 4089, 2874, 710, 2334, 2327, 2325, 2315, 1015, 1540,
1691, 856, 2378, 633, 3115, 1692, 3705, 1349, 3692, 1580,
2382, 2231, 3689, 2381, 560, 3785, 3165, 3164, 2087, 977,
2676, 719, 4035, 3443, 3282, 2398, 2045, 1139, 2092, 2089,
1595, 2734, 2715, 3952, 1574, 4161, 4129, 2042, 1371, 1223,
3121, 2643, 1518, 2018, 1241, 3720, 3721, 1907, 3710, 748,
748, 842, 698, 2657, 3520, 2619, 2, 1, 1222, 1889,
2144, 838, 1988, 732, 3797, 3934, 3933, 3782, 156, 1799,
719, 1607, 1229, 1279, 3655, 3656, 2058, 3089, 1237, 3768,
635, 1364, 3946, 705, 3548, 1235, 851, 1144, 2029, 1362,
2608, 925, 2156, 1151, 3764, 523, 999, 2165, 1520, 2463,
2649, 3076, 1232, 2542, 3740, 3762, 3738, 2699, 1854, 2606,
1230, 1933, 2076, 1197, 1691, 3999, 166, 748, 3119, 1692,
24, 23, 94, 72, 93, 3784, 59, 38, 1058, 3787,
29, 112, 111, 109, 1595, 107, 106, 1414, 2729, 2729,
3759, 105, 2729, 103, 3749, 102, 101, 100, 99, 2453,
98, 3829, 3226, 97, 96, 95, 3756, 14, 2282, 44,
91, 1233, 3776, 90, 3779, 2641, 3120, 3814, 89, 86,
710, 84, 83, 80, 68, 67, 3812, 76, 81, 79,
78, 1058, 1058, 66, 74, 2333, 77, 65, 3838, 1058,
1058, 1058, 75, 748, 73, 2333, 71, 70, 69, 64,
63, 61, 58, 55, 57, 3817, 3818, 56, 36, 3823,
1058, 43, 3808, 42, 41, 3826, 3807, 3828, 53, 50,
49, 1058, 48, 47, 46, 45, 40, 2728, 2728, 39,
37, 2728, 34, 33, 32, 31, 30, 1888, 1414, 6,
21, 22, 3404, 730, 719, 719, 719, 3832, 2855, 26,
3830, 25, 27, 20, 3848, 13, 10, 9, 19, 3750,
18, 17, 16, 15, 12, 730, 746, 144, 11, 8,
7, 3861, 5, 3856, 3857, 4, 2000, 710, 710, 0,
748, 0, 748, 0, 3231, 0, 0, 0, 748, 3877,
3878, 3886, 3746, 3747, 0, 3899, 3900, 0, 3880, 1518,
748, 748, 748, 748, 1799, 0, 705, 0, 0, 748,
3151, 3524, 0, 0, 0, 3152, 3923, 0, 0, 3873,
3893, 0, 3876, 0, 3913, 3879, 3840, 3841, 3842, 3843,
748, 3405, 0, 0, 0, 2802, 3941, 0, 3889, 705,
2499, 0, 3404, 746, 3890, 2730, 2730, 729, 3896, 2730,
3892, 0, 0, 3949, 0, 0, 719, 0, 0, 0,
0, 0, 1058, 2729, 0, 0, 0, 0, 3829, 729,
0, 3958, 0, 3908, 3937, 3816, 0, 0, 3953, 3943,
0, 0, 3523, 3922, 3914, 3924, 0, 3977, 3929, 3957,
0, 0, 0, 0, 0, 0, 0, 1690, 748, 1620,
1058, 0, 2329, 0, 1058, 0, 1058, 3940, 0, 0,
0, 0, 2351, 3910, 0, 0, 0, 3951, 3850, 3851,
0, 0, 0, 3965, 3954, 719, 0, 0, 0, 705,
3968, 3405, 3990, 0, 3972, 0, 0, 0, 3858, 0,
3960, 4005, 0, 719, 719, 719, 719, 0, 0, 2730,
0, 0, 2728, 842, 0, 3978, 0, 0, 3982, 0,
0, 4018, 0, 3994, 0, 3980, 1690, 3996, 0, 0,
1595, 3985, 0, 3894, 0, 0, 3984, 0, 0, 0,
1414, 0, 0, 0, 1691, 0, 1058, 0, 3997, 1692,
0, 0, 3989, 4006, 0, 4007, 4008, 4003, 0, 4009,
1414, 4012, 4013, 1414, 4011, 3991, 3992, 3762, 4022, 4017,
0, 0, 0, 0, 0, 0, 0, 4021, 0, 4020,
1058, 0, 0, 0, 0, 0, 4026, 4029, 0, 4031,
4028, 0, 3787, 0, 730, 0, 0, 0, 719, 4039,
0, 1058, 4042, 0, 4069, 0, 4070, 4065, 0, 2730,
744, 0, 1414, 0, 0, 1595, 0, 3907, 0, 0,
0, 0, 1595, 0, 0, 0, 0, 0, 0, 1595,
2730, 0, 0, 746, 0, 0, 4072, 719, 0, 3404,
0, 0, 4085, 4071, 0, 4076, 0, 0, 0, 4068,
0, 0, 4059, 0, 0, 3977, 0, 0, 1058, 1058,
4084, 0, 0, 0, 0, 0, 1595, 1595, 1595, 1595,
0, 3119, 0, 4097, 1595, 4098, 0, 0, 4088, 4116,
746, 4102, 4117, 710, 719, 4100, 4108, 4107, 3981, 1595,
0, 0, 1414, 4128, 1690, 0, 0, 2332, 729, 0,
4122, 4125, 0, 160, 4127, 4141, 4121, 4131, 4140, 1414,
0, 4135, 4120, 1058, 4133, 4148, 4134, 4147, 4136, 1058,
0, 0, 0, 0, 719, 0, 0, 0, 3405, 144,
4155, 4158, 4156, 0, 0, 4160, 0, 0, 0, 0,
0, 0, 0, 1414, 0, 0, 160, 4173, 4172, 4162,
0, 0, 0, 0, 4135, 0, 0, 4133, 0, 4134,
0, 4136, 0, 0, 0, 0, 0, 0, 0, 0,
4171, 0, 4179, 0, 0, 0, 0, 0, 1058, 0,
4185, 0, 0, 0, 748, 4186, 748, 1414, 4187, 746,
0, 0, 4191, 0, 0, 160, 0, 1610, 0, 0,
1583, 0, 0, 4135, 0, 0, 4133, 1691, 4134, 0,
4136, 0, 1692, 0, 0, 4171, 0, 1596, 0, 0,
0, 0, 4171, 1595, 748, 1585, 144, 0, 0, 0,
0, 1605, 2725, 0, 0, 2725, 0, 0, 0, 0,
4092, 0, 1610, 0, 0, 1583, 2730, 0, 0, 0,
0, 0, 1691, 0, 0, 1584, 0, 1692, 0, 1691,
0, 0, 1596, 0, 1692, 0, 0, 0, 0, 0,
1585, 2333, 2333, 0, 0, 0, 1605, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 4124, 0, 1059,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1584, 748, 0, 1414, 0, 0, 748, 748, 748, 748,
748, 748, 748, 748, 748, 748, 748, 748, 748, 0,
748, 0, 0, 0, 0, 0, 0, 0, 1690, 0,
0, 2333, 2333, 2333, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 748, 0, 748, 0,
748, 0, 0, 0, 0, 1600, 0, 0, 0, 1606,
0, 748, 0, 748, 748, 748, 748, 748, 748, 748,
748, 748, 748, 0, 748, 748, 0, 0, 748, 0,
1602, 1603, 0, 0, 0, 0, 748, 0, 0, 0,
0, 0, 0, 0, 0, 1598, 4189, 0, 0, 0,
1600, 0, 0, 748, 1606, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599, 621, 621, 1604, 0, 1602, 1603, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1611, 0, 0, 1597,
1598, 0, 1610, 0, 0, 1583, 0, 0, 0, 1610,
0, 0, 1583, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1596, 0, 0, 1599, 0, 0, 1604, 0,
1585, 0, 0, 0, 0, 0, 1605, 1585, 0, 0,
0, 1611, 0, 1605, 1597, 0, 0, 0, 2329, 2329,
0, 748, 0, 0, 0, 0, 0, 0, 0, 0,
1584, 0, 0, 0, 0, 0, 0, 1584, 0, 1610,
0, 1601, 1583, 0, 0, 1690, 0, 0, 0, 1414,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1585, 0, 0,
0, 0, 0, 1605, 1690, 0, 0, 0, 2329, 2329,
2329, 0, 0, 0, 0, 0, 1601, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1584, 0, 2827,
0, 0, 1690, 0, 0, 748, 0, 0, 0, 0,
748, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1446, 0, 0, 0, 0, 0, 0, 0, 0,
1600, 1594, 1592, 1593, 1606, 1586, 1587, 1588, 1589, 1590,
1591, 1606, 0, 2372, 2725, 2725, 0, 0, 2725, 2373,
0, 0, 0, 0, 0, 1602, 1603, 0, 0, 2820,
1414, 1414, 1602, 1603, 0, 0, 0, 0, 0, 1414,
1598, 0, 0, 0, 0, 0, 1594, 1592, 1593, 0,
1586, 1587, 1588, 1589, 1590, 1591, 748, 0, 0, 0,
0, 0, 0, 2919, 0, 1599, 2639, 0, 1604, 0,
0, 1606, 0, 0, 0, 1604, 0, 0, 0, 0,
0, 1611, 0, 0, 1597, 1228, 0, 0, 1611, 0,
0, 0, 1602, 1603, 0, 1595, 1595, 1595, 1595, 1595,
1595, 1595, 1595, 1595, 1595, 1595, 1595, 1595, 0, 0,
0, 0, 0, 1595, 0, 0, 0, 1236, 0, 0,
0, 0, 0, 2332, 2332, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1604, 0, 0, 0, 1414,
0, 0, 0, 0, 0, 0, 0, 0, 1611, 0,
0, 0, 0, 0, 0, 1595, 1601, 0, 0, 0,
748, 0, 0, 0, 0, 0, 0, 1595, 0, 0,
0, 1610, 1234, 0, 1583, 0, 0, 0, 0, 1595,
1414, 2887, 0, 2332, 2332, 2332, 0, 0, 1595, 0,
1595, 1596, 0, 0, 0, 1595, 0, 0, 1595, 1585,
0, 0, 0, 1231, 0, 1605, 0, 1595, 748, 0,
1595, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 144, 0, 2333, 2333, 0, 0, 1584,
0, 0, 2640, 0, 0, 0, 0, 0, 0, 2725,
0, 0, 0, 0, 0, 0, 1594, 1592, 1593, 748,
1586, 1587, 1588, 1589, 1590, 1591, 0, 1586, 1587, 1588,
1589, 1590, 1591, 2906, 0, 0, 0, 0, 1477, 0,
0, 0, 0, 0, 2639, 0, 0, 0, 0, 2333,
2333, 2333, 2333, 2333, 2333, 2333, 2333, 2333, 2333, 0,
2333, 0, 0, 1228, 0, 1061, 1414, 0, 0, 0,
0, 0, 0, 621, 621, 748, 748, 621, 621, 0,
0, 0, 960, 961, 2333, 0, 0, 1586, 1587, 1588,
1589, 1590, 1591, 0, 0, 1236, 0, 0, 156, 1600,
0, 0, 1229, 1606, 748, 0, 0, 748, 1237, 0,
0, 748, 0, 0, 0, 1235, 0, 0, 0, 748,
0, 0, 0, 1151, 1602, 1603, 0, 0, 0, 0,
0, 0, 1232, 0, 0, 0, 0, 0, 0, 1598,
1230, 0, 0, 0, 0, 748, 748, 0, 0, 0,
1234, 748, 0, 0, 0, 0, 0, 0, 0, 0,
748, 748, 0, 0, 1599, 748, 0, 1604, 0, 1595,
0, 0, 0, 0, 748, 0, 0, 748, 0, 0,
1611, 1231, 0, 1597, 0, 0, 0, 748, 748, 748,
0, 1233, 0, 562, 0, 2641, 0, 0, 0, 748,
0, 636, 0, 0, 0, 0, 0, 0, 0, 0,
2640, 0, 2329, 2329, 0, 0, 0, 0, 0, 0,
748, 748, 748, 0, 0, 0, 0, 0, 748, 748,
748, 0, 0, 748, 0, 0, 0, 0, 0, 0,
1690, 0, 0, 621, 0, 748, 1690, 0, 748, 748,
0, 0, 0, 0, 0, 1601, 0, 0, 0, 1610,
0, 0, 1583, 748, 0, 0, 2329, 2329, 2329, 2329,
2329, 2329, 2329, 2329, 2329, 2329, 144, 2329, 0, 1596,
0, 0, 1228, 0, 621, 621, 0, 1585, 621, 0,
1595, 0, 0, 1605, 748, 0, 0, 0, 0, 0,
0, 3364, 0, 0, 0, 0, 156, 0, 0, 0,
2636, 0, 0, 0, 1236, 0, 1237, 1584, 0, 4163,
0, 0, 0, 1235, 0, 0, 1690, 1690, 1690, 0,
0, 1151, 0, 0, 0, 0, 0, 0, 0, 0,
1232, 0, 0, 1414, 0, 1594, 1592, 1593, 1230, 1586,
1587, 1588, 1589, 1590, 1591, 0, 1414, 0, 0, 4178,
0, 1162, 0, 0, 0, 0, 0, 1163, 144, 1234,
0, 0, 0, 2333, 0, 0, 0, 0, 0, 1595,
0, 0, 0, 0, 1162, 0, 0, 0, 0, 0,
1163, 0, 0, 0, 1414, 1414, 0, 0, 621, 1233,
1231, 0, 0, 2641, 0, 0, 0, 1166, 0, 0,
1414, 1414, 0, 1414, 0, 0, 0, 1600, 0, 3825,
0, 1606, 1595, 0, 0, 0, 0, 0, 0, 0,
1166, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1602, 1603, 1595, 1595, 0, 2332, 2332, 0,
0, 1595, 0, 0, 0, 0, 1168, 1598, 0, 0,
0, 2887, 2887, 1164, 0, 0, 1167, 0, 1595, 0,
0, 0, 0, 0, 0, 0, 2333, 2333, 1414, 1168,
0, 0, 1599, 0, 0, 1604, 1164, 0, 1595, 1167,
1226, 0, 0, 0, 0, 0, 0, 1690, 1611, 0,
0, 2332, 2332, 2332, 2332, 2332, 2332, 2332, 2332, 2332,
2332, 1414, 2332, 0, 2887, 2887, 2887, 0, 1169, 0,
0, 1224, 0, 0, 0, 156, 1414, 0, 0, 1229,
0, 0, 0, 0, 0, 1237, 0, 0, 0, 0,
1595, 1169, 1235, 1595, 0, 0, 0, 0, 0, 0,
1225, 0, 0, 1595, 0, 0, 0, 0, 0, 1232,
1414, 0, 1690, 1414, 0, 0, 0, 1230, 0, 0,
1595, 0, 1170, 1601, 1172, 836, 837, 839, 843, 0,
0, 0, 0, 0, 1171, 0, 0, 0, 0, 0,
2329, 0, 1176, 0, 0, 1170, 0, 1172, 0, 0,
0, 1173, 0, 0, 748, 0, 0, 1171, 0, 0,
748, 0, 920, 0, 0, 1176, 0, 748, 1233, 0,
0, 0, 0, 748, 1173, 0, 562, 0, 0, 843,
0, 0, 1874, 0, 0, 0, 1174, 0, 0, 0,
0, 0, 0, 1414, 0, 0, 621, 0, 0, 621,
621, 0, 0, 748, 0, 1195, 0, 0, 0, 1174,
0, 1875, 0, 1594, 1592, 1593, 0, 1586, 1587, 1588,
1589, 1590, 1591, 0, 1452, 0, 0, 0, 0, 0,
0, 1461, 0, 0, 1196, 0, 0, 0, 0, 0,
0, 0, 0, 2329, 2329, 0, 621, 621, 0, 748,
0, 0, 0, 0, 0, 0, 976, 0, 0, 748,
748, 0, 0, 748, 748, 748, 0, 748, 0, 1165,
0, 0, 0, 0, 0, 992, 748, 1414, 994, 0,
0, 0, 748, 0, 0, 0, 961, 1037, 0, 0,
0, 0, 1165, 0, 748, 0, 1141, 0, 0, 0,
748, 621, 0, 0, 748, 0, 0, 0, 0, 0,
1414, 0, 748, 0, 0, 748, 0, 1414, 748, 748,
748, 748, 748, 748, 748, 748, 748, 748, 0, 748,
0, 0, 0, 0, 0, 0, 0, 748, 748, 1414,
718, 721, 0, 0, 748, 0, 748, 0, 773, 774,
0, 777, 0, 748, 0, 748, 1690, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2333, 2333, 0, 0, 0, 2332, 0, 0, 0, 0,
0, 1690, 1414, 1690, 0, 1162, 1595, 0, 0, 0,
2333, 1163, 0, 748, 0, 1610, 0, 0, 1583, 0,
0, 2333, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1690, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1585, 0, 0, 0, 0, 0, 1605,
0, 1166, 0, 0, 0, 843, 0, 0, 0, 0,
843, 843, 0, 0, 1319, 0, 1328, 745, 0, 0,
0, 0, 0, 1584, 0, 0, 0, 1595, 0, 0,
0, 0, 1338, 0, 0, 1595, 1595, 0, 0, 1595,
2887, 2887, 1595, 0, 0, 0, 1595, 0, 2332, 2332,
1168, 1595, 0, 0, 0, 0, 0, 1164, 0, 0,
1167, 0, 0, 0, 0, 0, 0, 0, 0, 1595,
0, 0, 1595, 0, 0, 1595, 0, 1595, 0, 2887,
2887, 2887, 2887, 2887, 2887, 2887, 2887, 2887, 2887, 843,
0, 0, 0, 2887, 0, 0, 1595, 1595, 0, 0,
0, 0, 0, 1595, 0, 895, 898, 901, 0, 0,
0, 0, 1169, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1600, 843, 0, 0, 1606, 0, 0,
0, 0, 0, 0, 0, 1414, 748, 748, 0, 0,
0, 0, 0, 0, 621, 0, 0, 0, 1602, 1603,
2333, 0, 0, 0, 0, 0, 0, 2329, 2329, 0,
0, 1523, 0, 1598, 0, 0, 1170, 0, 1172, 0,
0, 1414, 0, 0, 843, 0, 0, 2329, 1171, 1562,
0, 1569, 0, 0, 0, 0, 1176, 1576, 3867, 0,
0, 1604, 0, 0, 0, 1173, 0, 0, 0, 1613,
1614, 1615, 1616, 0, 1611, 0, 0, 0, 1621, 0,
0, 0, 748, 0, 2306, 0, 0, 2310, 2311, 2312,
2313, 0, 0, 0, 0, 748, 1178, 0, 748, 1636,
1174, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 748, 0, 0, 0, 2361,
1631, 1632, 1633, 0, 2364, 1179, 0, 0, 2367, 0,
2368, 0, 0, 0, 0, 0, 873, 0, 875, 0,
0, 0, 0, 880, 0, 0, 0, 0, 0, 1601,
0, 0, 0, 1595, 1595, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1770, 0, 0,
0, 0, 0, 0, 748, 748, 0, 0, 0, 0,
748, 748, 1414, 1165, 0, 748, 748, 0, 0, 0,
0, 0, 0, 0, 2103, 0, 0, 748, 0, 0,
0, 2887, 748, 0, 0, 0, 0, 1162, 0, 2115,
748, 2117, 0, 1163, 0, 2120, 0, 2122, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2329, 0, 1594,
1592, 1593, 748, 1586, 1587, 1588, 1589, 1590, 1591, 0,
0, 0, 748, 1166, 748, 1414, 0, 0, 0, 1595,
1595, 0, 2332, 2332, 1595, 1595, 0, 0, 2887, 2887,
0, 1690, 1879, 0, 0, 0, 0, 0, 0, 1595,
0, 0, 2332, 0, 621, 0, 748, 0, 0, 621,
621, 0, 2201, 0, 0, 1414, 0, 1595, 0, 0,
1595, 0, 1168, 0, 0, 1414, 1414, 0, 0, 1164,
0, 0, 1167, 0, 0, 0, 0, 0, 0, 1595,
0, 0, 1414, 0, 0, 1610, 0, 1459, 1583, 1217,
1218, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1596, 0, 0, 1610, 0,
0, 1583, 0, 1585, 0, 0, 0, 0, 0, 1605,
0, 0, 0, 0, 1169, 0, 0, 0, 1596, 0,
0, 0, 0, 0, 1514, 1610, 1585, 1985, 1583, 0,
0, 0, 1605, 1584, 0, 1690, 0, 0, 0, 1527,
0, 1282, 0, 0, 0, 1534, 0, 0, 0, 0,
0, 0, 0, 1585, 0, 0, 1584, 0, 0, 1605,
0, 0, 0, 0, 0, 0, 1414, 0, 1170, 2031,
1172, 0, 0, 0, 0, 0, 1595, 0, 0, 0,
1171, 0, 0, 1584, 621, 0, 2597, 0, 1176, 0,
0, 0, 0, 0, 1579, 0, 0, 1173, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1918, 0, 0,
1595, 0, 1595, 2887, 2887, 0, 0, 748, 0, 0,
0, 2887, 2332, 0, 1375, 1376, 0, 748, 748, 0,
0, 748, 1174, 1600, 1425, 0, 0, 1606, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1600, 1179, 1602, 1603,
1606, 0, 0, 0, 0, 2691, 1453, 1455, 0, 0,
748, 748, 0, 1598, 0, 0, 0, 0, 748, 748,
748, 1602, 1603, 1600, 0, 0, 0, 1606, 0, 0,
0, 0, 0, 0, 0, 0, 1598, 0, 1599, 748,
0, 1604, 0, 1414, 0, 0, 0, 0, 1602, 1603,
748, 0, 0, 0, 1611, 1165, 0, 1597, 0, 0,
1414, 1599, 0, 1598, 1604, 0, 0, 0, 0, 0,
1595, 748, 0, 0, 0, 0, 0, 1611, 0, 0,
1597, 0, 0, 0, 2887, 0, 0, 0, 1599, 621,
0, 1604, 0, 0, 0, 748, 0, 0, 0, 0,
1037, 0, 0, 0, 1611, 2242, 2243, 2244, 2245, 2246,
2247, 2248, 2249, 2250, 2251, 2252, 2253, 2254, 0, 2260,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1601,
0, 0, 0, 0, 0, 0, 1595, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2302,
0, 0, 1601, 0, 0, 0, 0, 1414, 0, 0,
2314, 0, 2326, 0, 2335, 2337, 2342, 2345, 0, 0,
0, 748, 748, 0, 2354, 0, 1595, 2357, 1610, 1601,
0, 1583, 0, 0, 0, 0, 0, 0, 2324, 0,
0, 748, 748, 0, 0, 0, 0, 0, 1596, 1414,
0, 0, 0, 0, 0, 0, 1585, 0, 0, 0,
0, 0, 1605, 0, 0, 0, 0, 0, 1595, 1594,
1592, 1593, 0, 1586, 1587, 1588, 1589, 1590, 1591, 748,
1414, 3380, 0, 748, 0, 748, 1584, 0, 0, 0,
0, 0, 1594, 1592, 1593, 1690, 1586, 1587, 1588, 1589,
1590, 1591, 0, 0, 0, 1396, 4093, 1595, 0, 0,
0, 0, 0, 1610, 1820, 1414, 1583, 1414, 1414, 1594,
1592, 1593, 0, 1586, 1587, 1588, 1589, 1590, 1591, 0,
0, 0, 0, 1596, 0, 0, 0, 0, 0, 0,
1141, 1585, 0, 0, 0, 0, 0, 1605, 0, 0,
1610, 0, 0, 1583, 0, 0, 0, 0, 0, 1414,
0, 0, 0, 0, 0, 748, 0, 0, 0, 0,
1596, 1584, 0, 0, 0, 0, 0, 0, 1585, 0,
0, 0, 0, 0, 1605, 0, 1600, 2098, 2099, 0,
1606, 2102, 0, 0, 0, 0, 0, 0, 2740, 748,
2742, 2743, 0, 0, 1066, 0, 1396, 0, 1584, 0,
2750, 1602, 1603, 1955, 1956, 1957, 1958, 2754, 0, 0,
748, 0, 0, 0, 0, 0, 1598, 0, 0, 1968,
1969, 0, 0, 0, 0, 0, 1976, 0, 0, 0,
0, 2454, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1599, 748, 0, 1604, 2146, 0, 2148, 748, 2150,
2151, 0, 0, 0, 0, 0, 0, 1611, 0, 0,
1597, 1600, 0, 2784, 0, 1606, 0, 748, 748, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 837, 0, 1602, 1603, 0, 748,
0, 0, 0, 0, 0, 2546, 0, 0, 1600, 0,
0, 1598, 1606, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2053, 2054, 2055, 2056, 0, 2057, 0, 0,
0, 0, 748, 1602, 1603, 0, 1599, 0, 748, 1604,
0, 0, 1601, 0, 0, 0, 0, 0, 1598, 0,
0, 0, 1611, 0, 0, 1597, 0, 0, 1690, 0,
2576, 0, 0, 0, 0, 0, 0, 0, 2576, 0,
0, 0, 0, 1599, 0, 0, 1604, 0, 0, 0,
843, 0, 0, 0, 0, 0, 0, 0, 0, 1611,
0, 0, 1597, 2109, 0, 0, 0, 748, 0, 0,
3090, 0, 0, 1690, 0, 2119, 0, 0, 748, 2667,
1690, 0, 2125, 843, 0, 1610, 0, 2648, 1583, 0,
0, 0, 0, 0, 0, 0, 0, 1601, 0, 0,
0, 0, 1594, 1592, 1593, 1596, 1586, 1587, 1588, 1589,
1590, 1591, 0, 1585, 0, 0, 3961, 0, 1396, 1605,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
621, 0, 0, 621, 1601, 0, 0, 0, 1917, 0,
0, 1396, 0, 1584, 2709, 0, 0, 3170, 3171, 0,
0, 0, 0, 0, 0, 0, 3181, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2756, 0,
843, 0, 0, 0, 0, 0, 2963, 0, 2965, 0,
0, 0, 0, 0, 0, 0, 0, 1594, 1592, 1593,
1396, 1586, 1587, 1588, 1589, 1590, 1591, 2240, 0, 0,
0, 3887, 0, 0, 2388, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2977, 0, 0, 1162, 0, 0,
0, 0, 2983, 1163, 1594, 1592, 1593, 0, 1586, 1587,
1588, 1589, 1590, 1591, 0, 0, 0, 0, 3868, 0,
0, 0, 0, 1600, 0, 0, 0, 1606, 0, 0,
621, 0, 0, 1569, 0, 0, 2799, 0, 0, 0,
1576, 0, 0, 1166, 0, 0, 0, 0, 1602, 1603,
1396, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1598, 0, 0, 0, 1396, 0, 0,
0, 0, 0, 0, 2821, 2822, 0, 0, 0, 0,
2828, 0, 0, 0, 0, 0, 0, 0, 1599, 0,
0, 1604, 1168, 3041, 0, 0, 0, 0, 0, 1164,
0, 1396, 1167, 0, 1611, 0, 2845, 1597, 0, 0,
0, 0, 0, 0, 0, 0, 2302, 2302, 2302, 0,
0, 0, 0, 0, 0, 1387, 0, 0, 2865, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1396, 0, 0, 0, 0,
0, 0, 0, 1610, 1169, 0, 1583, 2342, 2342, 2342,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1596, 2917, 621, 0, 2920, 0, 1601,
0, 1585, 621, 0, 0, 0, 0, 1605, 0, 0,
0, 0, 2930, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1170, 0,
1172, 1584, 0, 0, 0, 0, 0, 0, 0, 0,
1171, 0, 2931, 2947, 0, 0, 1526, 0, 1176, 0,
0, 2445, 0, 0, 0, 0, 0, 1173, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2467, 2468, 2469, 0, 0, 0, 0, 2476, 0, 2478,
2479, 1396, 0, 2483, 0, 0, 0, 0, 1159, 1594,
1592, 1593, 1174, 1586, 1587, 1588, 1589, 1590, 1591, 0,
0, 3243, 0, 3675, 0, 2976, 0, 3246, 0, 3248,
0, 3250, 0, 3251, 3252, 0, 0, 1160, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 2304, 0,
843, 1600, 0, 0, 0, 1606, 0, 0, 0, 0,
0, 0, 0, 0, 3268, 0, 0, 0, 0, 621,
0, 0, 0, 0, 0, 0, 1602, 1603, 0, 0,
0, 0, 0, 2762, 0, 0, 0, 0, 0, 0,
0, 1598, 0, 0, 0, 1165, 0, 0, 0, 0,
0, 0, 0, 2583, 2584, 0, 2586, 0, 0, 0,
2590, 2591, 2592, 2593, 0, 0, 1599, 0, 0, 1604,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1611, 0, 0, 1597, 0, 961, 960, 0,
0, 0, 0, 2626, 0, 0, 0, 0, 0, 0,
0, 897, 3561, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2576, 2576, 2576, 3572, 0, 0,
0, 0, 0, 2576, 0, 2576, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1338, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1126, 0, 0, 0, 0, 0, 1601, 1885, 0,
0, 0, 0, 0, 0, 0, 0, 1396, 0, 0,
0, 0, 0, 1321, 0, 3122, 843, 0, 0, 0,
0, 1526, 0, 0, 0, 0, 0, 843, 843, 0,
0, 621, 0, 0, 0, 2746, 0, 2748, 0, 0,
0, 0, 0, 0, 0, 0, 3155, 0, 0, 3155,
0, 0, 0, 0, 0, 3166, 0, 0, 0, 200,
0, 0, 1395, 1037, 0, 549, 200, 0, 0, 3213,
1975, 593, 0, 200, 200, 0, 0, 0, 0, 0,
641, 0, 1141, 0, 0, 0, 0, 1594, 1592, 1593,
0, 1586, 1587, 1588, 1589, 1590, 1591, 1125, 0, 0,
0, 3657, 0, 0, 0, 0, 697, 2787, 0, 0,
0, 0, 2937, 0, 0, 0, 0, 0, 1917, 2525,
720, 1610, 725, 0, 1583, 0, 0, 2528, 0, 1104,
0, 0, 779, 780, 781, 0, 0, 0, 0, 0,
0, 1596, 0, 0, 0, 0, 0, 0, 0, 1585,
1526, 0, 0, 0, 0, 1605, 0, 0, 3284, 0,
0, 0, 0, 1395, 0, 0, 0, 0, 3292, 3293,
0, 0, 3296, 0, 0, 0, 3299, 0, 0, 1584,
621, 0, 0, 0, 0, 3303, 0, 0, 0, 0,
0, 3308, 0, 0, 0, 0, 0, 0, 0, 0,
0, 2077, 0, 2302, 0, 0, 0, 0, 0, 3326,
3724, 3725, 0, 3329, 0, 3728, 3729, 0, 0, 0,
0, 3332, 0, 0, 3334, 0, 0, 1917, 0, 3316,
0, 0, 0, 0, 0, 0, 621, 3327, 0, 3027,
3028, 3029, 0, 0, 0, 2124, 3353, 3354, 0, 0,
0, 0, 0, 0, 0, 3360, 0, 0, 0, 0,
0, 0, 0, 0, 2354, 0, 0, 0, 1396, 0,
0, 0, 0, 0, 0, 531, 0, 0, 0, 1600,
0, 0, 0, 1606, 0, 0, 0, 530, 1128, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1602, 1603, 0, 0, 537, 3381,
3382, 0, 3384, 0, 0, 0, 3617, 3618, 3155, 1598,
0, 535, 0, 0, 0, 0, 3622, 0, 0, 0,
529, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 3091, 3092, 0, 1599, 0, 0, 1604, 621, 0,
0, 539, 0, 0, 0, 3421, 3422, 548, 0, 0,
1611, 2239, 0, 1597, 0, 0, 0, 0, 0, 0,
0, 0, 540, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1396, 0, 0, 0, 0, 0,
525, 0, 0, 0, 0, 0, 2991, 2992, 0, 0,
0, 526, 0, 2997, 0, 1395, 0, 0, 545, 0,
0, 0, 520, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1395, 0, 0, 1395, 0,
0, 0, 0, 0, 0, 1601, 0, 0, 0, 0,
2576, 2576, 2576, 0, 0, 0, 2576, 2576, 2576, 2576,
3493, 0, 0, 0, 0, 0, 0, 0, 0, 0,
621, 0, 3503, 0, 544, 843, 860, 861, 0, 865,
866, 0, 868, 0, 0, 3540, 3541, 1395, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 3713, 3714,
0, 3259, 886, 0, 0, 3716, 3717, 0, 0, 0,
0, 532, 0, 0, 538, 2304, 2304, 2304, 0, 0,
0, 904, 0, 908, 910, 912, 3271, 0, 0, 0,
0, 0, 927, 0, 0, 1594, 1592, 1593, 0, 1586,
1587, 1588, 1589, 1590, 1591, 0, 0, 0, 0, 3392,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
200, 0, 0, 0, 518, 0, 0, 1395, 0, 0,
521, 3567, 0, 3571, 3574, 3576, 0, 0, 0, 527,
0, 0, 0, 0, 1395, 0, 0, 2402, 0, 0,
0, 0, 3592, 0, 2302, 0, 981, 982, 0, 0,
0, 0, 0, 0, 0, 0, 0, 524, 543, 0,
542, 534, 0, 0, 0, 0, 0, 0, 1395, 528,
0, 0, 0, 0, 533, 0, 0, 0, 0, 1610,
547, 0, 1583, 546, 0, 0, 519, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 697, 0, 1596,
0, 0, 0, 3646, 3647, 0, 0, 1585, 3632, 3651,
3652, 0, 1395, 1605, 0, 0, 0, 0, 0, 0,
0, 1396, 0, 0, 0, 0, 2302, 3245, 0, 0,
0, 2302, 0, 0, 1396, 0, 0, 1584, 3254, 3666,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 3834, 3835, 3836, 0, 0, 0, 0, 0, 0,
0, 0, 3839, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1396, 1396, 3276, 0, 0, 0, 0, 0,
1262, 3684, 0, 3687, 0, 0, 0, 0, 1917, 2525,
0, 2525, 0, 0, 1288, 1289, 1290, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3706, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1395, 0,
0, 0, 0, 0, 0, 0, 0, 1600, 0, 0,
0, 1606, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1396, 0, 0, 0,
1354, 0, 1602, 1603, 0, 0, 0, 0, 0, 1368,
0, 0, 0, 0, 0, 0, 0, 1598, 0, 0,
0, 0, 0, 3511, 3512, 0, 0, 0, 0, 1396,
0, 0, 0, 0, 0, 0, 0, 0, 2686, 0,
0, 0, 1599, 0, 2525, 1604, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1611, 2576,
2576, 1597, 0, 0, 0, 0, 0, 0, 0, 1408,
0, 0, 0, 3752, 3753, 3754, 3755, 0, 2525, 0,
0, 2525, 0, 0, 0, 0, 843, 200, 0, 200,
200, 200, 0, 0, 200, 200, 200, 0, 0, 200,
0, 0, 0, 0, 1127, 0, 0, 0, 4168, 0,
3974, 0, 0, 0, 3789, 0, 3429, 3430, 3431, 3432,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1101, 3800, 0, 1601, 0, 0, 3813, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 4168, 2780, 0, 0, 0, 0, 0,
4168, 1396, 4001, 0, 0, 0, 0, 0, 0, 0,
1408, 0, 4010, 697, 0, 1407, 0, 0, 0, 0,
0, 0, 0, 0, 1395, 0, 0, 0, 0, 3847,
0, 0, 3626, 3627, 3628, 0, 0, 3849, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1394, 0, 0,
3632, 3632, 3632, 3632, 0, 1610, 0, 0, 1583, 0,
0, 0, 0, 1594, 1592, 1593, 0, 1586, 1587, 1588,
1589, 1590, 1591, 0, 0, 1596, 0, 3310, 0, 0,
0, 0, 0, 1585, 0, 1396, 0, 0, 0, 1605,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 2304, 0, 0, 0, 3155, 0, 0, 0,
0, 0, 0, 1584, 0, 0, 1407, 0, 1396, 0,
0, 0, 0, 0, 0, 1396, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1395, 1395, 0, 0, 0,
0, 0, 0, 0, 1395, 0, 0, 1396, 1394, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3582,
0, 0, 0, 0, 2576, 0, 0, 3909, 0, 0,
0, 0, 0, 1610, 0, 0, 1583, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2525, 0, 1872, 1596, 0, 0, 0, 0, 0, 0,
0, 1585, 0, 0, 0, 0, 1410, 1605, 0, 0,
3967, 0, 0, 1600, 0, 0, 0, 1606, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1584, 0, 0, 0, 0, 0, 4159, 1602, 1603,
0, 0, 0, 0, 1395, 0, 0, 0, 3741, 3742,
0, 3744, 1408, 1598, 2354, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 2978, 1408, 0, 0, 1408, 0, 0, 1599, 0,
0, 1604, 0, 0, 2988, 1395, 0, 0, 0, 0,
0, 0, 0, 0, 1611, 0, 0, 1597, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1410, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3021, 3023, 1408, 0, 0, 0, 843, 0,
0, 1600, 0, 0, 4033, 1606, 0, 0, 2022, 0,
0, 2025, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2759, 0, 0, 1602, 1603, 1407, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1601,
0, 1598, 0, 1917, 0, 0, 0, 0, 1407, 0,
0, 1407, 0, 3715, 0, 0, 0, 0, 0, 4073,
1394, 0, 0, 0, 0, 0, 1599, 0, 0, 1604,
0, 1395, 0, 0, 1408, 0, 3068, 0, 0, 1396,
1394, 0, 1611, 1394, 0, 1597, 0, 0, 2097, 0,
0, 1408, 0, 0, 0, 0, 2105, 2106, 0, 0,
1407, 2108, 0, 2110, 0, 0, 0, 0, 0, 2402,
0, 0, 0, 3743, 0, 0, 4115, 4115, 0, 0,
0, 0, 2126, 0, 0, 1408, 0, 0, 0, 1594,
1592, 1593, 1394, 1586, 1587, 1588, 1589, 1590, 1591, 0,
0, 200, 200, 3278, 703, 0, 200, 200, 0, 200,
200, 0, 0, 2304, 0, 0, 0, 1601, 0, 0,
0, 0, 3777, 0, 0, 0, 0, 0, 0, 1408,
0, 4115, 0, 0, 0, 0, 0, 4154, 0, 0,
1407, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 709, 711, 713, 1407, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1394, 0, 0, 0, 0, 0, 0, 1410,
1396, 0, 0, 0, 4170, 0, 0, 0, 0, 1394,
0, 1407, 0, 0, 0, 2304, 4115, 0, 0, 1410,
2304, 3253, 1410, 0, 0, 0, 0, 1594, 1592, 1593,
0, 1586, 1587, 1588, 1589, 1590, 1591, 0, 0, 0,
0, 3147, 0, 1394, 3969, 0, 0, 3969, 0, 4170,
0, 0, 0, 0, 0, 1407, 4170, 0, 0, 0,
0, 0, 0, 0, 0, 1408, 0, 0, 0, 0,
0, 1410, 0, 1396, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1394, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 715,
716, 717, 0, 0, 0, 1526, 0, 0, 0, 0,
0, 0, 0, 1396, 0, 0, 3883, 3885, 3883, 0,
0, 784, 0, 1396, 1396, 0, 4016, 0, 1395, 0,
0, 0, 0, 0, 0, 0, 0, 0, 3331, 0,
1396, 1395, 0, 0, 0, 3335, 0, 0, 0, 0,
0, 1410, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3355, 1410, 0,
0, 1407, 0, 0, 0, 0, 0, 0, 0, 1395,
1395, 0, 0, 0, 0, 0, 4051, 0, 0, 0,
0, 0, 0, 0, 0, 1395, 1395, 0, 1395, 0,
0, 0, 1410, 1394, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2391,
2392, 0, 0, 0, 2396, 0, 2397, 0, 3964, 0,
0, 0, 2403, 0, 3788, 0, 0, 0, 0, 0,
0, 2416, 2417, 2418, 2419, 0, 1410, 2426, 2427, 2430,
0, 0, 0, 0, 0, 0, 0, 2441, 0, 0,
2442, 2443, 0, 1395, 0, 0, 0, 0, 0, 0,
0, 0, 1409, 2448, 2449, 0, 0, 0, 2455, 2456,
2457, 1408, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2475, 1395, 3995, 1391, 0,
0, 2482, 0, 2484, 0, 0, 0, 0, 0, 2496,
0, 1395, 0, 0, 0, 0, 0, 4014, 4015, 0,
0, 0, 847, 848, 850, 0, 0, 0, 0, 2512,
2513, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1395, 0, 0, 1395, 0,
0, 0, 0, 0, 0, 0, 0, 2534, 2535, 0,
2537, 2538, 1410, 0, 0, 0, 2544, 2545, 0, 2547,
0, 1396, 0, 1409, 2551, 0, 0, 2552, 0, 0,
2555, 0, 0, 2558, 0, 0, 0, 1407, 2525, 0,
0, 0, 1408, 1408, 0, 0, 0, 0, 0, 1391,
0, 1408, 0, 0, 0, 0, 0, 0, 0, 0,
3883, 0, 0, 0, 0, 0, 0, 0, 0, 1394,
0, 0, 0, 0, 0, 785, 0, 0, 1395, 3552,
823, 0, 0, 0, 0, 0, 0, 0, 0, 0,
845, 0, 0, 0, 0, 0, 0, 0, 0, 4096,
0, 0, 0, 0, 0, 0, 2653, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 2525, 0, 0, 1610, 0,
0, 1583, 0, 0, 0, 0, 4126, 0, 1407, 1407,
0, 1408, 0, 0, 0, 0, 0, 1407, 1596, 0,
0, 0, 1395, 0, 0, 0, 1585, 0, 0, 0,
0, 0, 1605, 0, 0, 0, 0, 1396, 0, 0,
1394, 1394, 0, 0, 0, 0, 4157, 0, 0, 1394,
0, 0, 1408, 0, 0, 1395, 1584, 0, 0, 0,
0, 0, 1395, 0, 0, 0, 0, 0, 1396, 0,
0, 0, 0, 0, 0, 0, 0, 0, 980, 0,
1526, 0, 0, 0, 1395, 0, 0, 0, 1410, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1396, 0, 1396, 1396, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1407, 0, 2781,
0, 0, 0, 0, 0, 1409, 0, 1395, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1133,
0, 0, 0, 0, 0, 1409, 0, 3788, 1409, 1394,
0, 1391, 0, 0, 0, 0, 1600, 0, 1407, 0,
1606, 0, 0, 0, 0, 0, 0, 0, 1408, 0,
0, 1391, 0, 0, 1391, 0, 0, 0, 0, 0,
0, 1602, 1603, 0, 0, 0, 0, 0, 0, 0,
1394, 0, 0, 3712, 0, 0, 1598, 1409, 0, 1410,
1410, 0, 0, 3718, 3719, 0, 0, 0, 1410, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3726, 1599, 0, 1391, 1604, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1611, 0, 0,
1597, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1407, 0, 0, 1409, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1347, 1350,
1351, 0, 0, 0, 1409, 0, 0, 0, 0, 1360,
0, 0, 1610, 1391, 0, 1583, 1394, 0, 1410, 0,
1395, 0, 1601, 0, 0, 0, 0, 0, 0, 0,
1391, 0, 1596, 0, 1431, 0, 2224, 0, 1409, 2938,
1585, 0, 0, 0, 0, 0, 1605, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1395, 0, 0, 1410,
0, 0, 0, 0, 1391, 0, 0, 0, 0, 0,
1584, 0, 0, 0, 2966, 2967, 2968, 2969, 0, 0,
0, 0, 1409, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 823, 1391, 0,
0, 0, 1594, 1592, 1593, 2225, 1586, 1587, 1588, 1589,
1590, 1591, 0, 2989, 0, 0, 2286, 0, 823, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 3004, 0, 3004, 3008, 3009, 3010, 0, 0,
0, 0, 0, 3019, 0, 1408, 0, 0, 0, 0,
0, 1526, 0, 0, 0, 0, 0, 0, 1408, 0,
1600, 0, 0, 0, 1606, 1410, 0, 1783, 0, 0,
0, 3037, 3038, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1602, 1603, 1395, 1409, 0,
0, 0, 0, 0, 0, 3042, 1408, 1408, 0, 0,
1598, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1408, 1408, 1391, 1408, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1599, 0, 0, 1604, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1611, 0, 0, 1597, 0, 0, 0, 0, 0,
0, 1407, 0, 0, 0, 0, 3095, 0, 0, 0,
1395, 0, 0, 0, 1407, 0, 0, 0, 0, 1684,
0, 0, 0, 0, 3111, 0, 0, 0, 0, 0,
1408, 0, 0, 1394, 0, 0, 0, 0, 0, 0,
0, 0, 3133, 0, 0, 0, 1394, 0, 3138, 0,
1395, 0, 1407, 1407, 1818, 0, 0, 2978, 0, 0,
1395, 1395, 0, 1408, 0, 0, 1601, 0, 1407, 1407,
0, 1407, 0, 0, 0, 0, 0, 1395, 1408, 0,
0, 0, 0, 0, 1394, 1394, 0, 0, 1526, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1394, 1394, 0, 1394, 0, 0, 0, 1783, 0, 1999,
0, 0, 1408, 0, 0, 1408, 0, 2222, 0, 0,
0, 0, 0, 1526, 0, 1526, 1526, 0, 0, 3241,
0, 0, 0, 3244, 0, 0, 1407, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1950, 0, 0, 0, 1409, 0, 1594, 1592, 1593, 0,
1586, 1587, 1588, 1589, 1590, 1591, 1963, 0, 1394, 1407,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1391, 0, 0, 0, 1407, 0, 0, 0, 0, 1983,
0, 0, 1410, 0, 0, 1408, 0, 0, 0, 0,
0, 1394, 0, 1783, 0, 1410, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1394, 0, 1407, 0,
0, 1407, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1410, 1410, 0, 0, 0, 0, 0,
1394, 0, 0, 1394, 0, 0, 0, 0, 0, 1410,
1410, 0, 1410, 0, 0, 1409, 1409, 0, 0, 0,
0, 0, 0, 0, 1409, 0, 0, 0, 0, 1408,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1391, 1391, 0, 0, 0, 0, 0, 0, 0,
1391, 1407, 0, 0, 0, 0, 0, 0, 1395, 0,
0, 0, 1408, 0, 0, 0, 0, 0, 0, 1408,
1610, 0, 0, 1583, 0, 1395, 0, 1410, 0, 0,
0, 3386, 0, 1394, 0, 0, 0, 0, 0, 0,
1596, 1408, 0, 0, 0, 0, 0, 0, 1585, 0,
0, 0, 0, 0, 1605, 0, 3417, 1162, 0, 0,
1410, 0, 0, 1163, 0, 0, 0, 0, 0, 2132,
0, 0, 0, 3423, 1409, 1410, 0, 0, 1584, 0,
0, 0, 0, 0, 1408, 1407, 823, 823, 1186, 0,
3433, 0, 0, 3434, 0, 0, 0, 0, 0, 0,
1391, 0, 0, 1166, 0, 0, 0, 0, 0, 1410,
0, 0, 1410, 0, 0, 1409, 0, 1394, 1407, 0,
0, 0, 1395, 0, 0, 1407, 0, 0, 2204, 2206,
0, 0, 0, 0, 1187, 0, 3467, 3468, 3469, 3470,
3471, 1391, 3473, 3474, 3475, 3476, 0, 1407, 0, 0,
1394, 0, 1168, 0, 0, 0, 4153, 1394, 0, 1164,
0, 0, 1167, 0, 1395, 0, 0, 2238, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1600, 1394,
0, 0, 1606, 0, 0, 0, 0, 0, 0, 0,
1407, 0, 1410, 0, 0, 1395, 0, 0, 0, 0,
0, 0, 0, 1602, 1603, 0, 3004, 0, 0, 0,
0, 1188, 0, 0, 1169, 0, 1610, 0, 1598, 1583,
0, 0, 1394, 0, 0, 0, 0, 0, 0, 0,
1395, 1409, 1395, 1395, 0, 0, 1596, 0, 0, 2384,
0, 0, 2386, 1599, 1585, 0, 1604, 0, 0, 2389,
1605, 0, 0, 0, 0, 0, 1189, 1391, 1190, 1611,
0, 0, 1597, 0, 0, 0, 0, 1408, 1185, 0,
1172, 0, 0, 0, 1584, 3565, 1410, 0, 3569, 4152,
1171, 0, 0, 3579, 0, 3581, 2432, 0, 1176, 0,
0, 0, 0, 0, 0, 0, 1191, 1173, 0, 0,
0, 0, 0, 1408, 0, 0, 0, 0, 0, 1410,
0, 0, 0, 2458, 0, 0, 1410, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1182, 0,
0, 0, 1174, 1193, 1601, 0, 0, 0, 1410, 0,
0, 0, 2497, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1183, 0, 0,
0, 0, 0, 2514, 0, 0, 0, 0, 1192, 0,
0, 0, 0, 1407, 1600, 0, 0, 0, 1606, 0,
0, 1410, 0, 0, 0, 0, 0, 0, 0, 0,
0, 2536, 0, 0, 2539, 0, 2541, 0, 0, 1602,
1603, 0, 0, 2549, 2431, 1394, 0, 0, 0, 1407,
0, 0, 0, 2556, 1598, 1165, 0, 0, 2559, 0,
0, 0, 0, 0, 1594, 1592, 1593, 0, 1586, 1587,
1588, 1589, 1590, 1591, 0, 0, 0, 0, 0, 1599,
0, 1394, 1604, 0, 1408, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1611, 0, 0, 1597, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3369, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1409, 0,
0, 0, 0, 0, 0, 0, 0, 1408, 0, 0,
0, 1409, 0, 0, 0, 0, 0, 0, 0, 3722,
1601, 0, 0, 0, 1391, 0, 0, 0, 0, 3730,
3731, 0, 3733, 3734, 3370, 0, 0, 1391, 0, 0,
1407, 0, 0, 0, 0, 0, 0, 1408, 0, 1409,
1409, 0, 0, 0, 1410, 0, 0, 1408, 1408, 0,
0, 0, 0, 0, 0, 1409, 1409, 0, 1409, 0,
0, 0, 1394, 0, 1408, 1391, 1391, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1410, 1391, 1391, 0, 1391, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 3772, 0,
1594, 1592, 1593, 1407, 1586, 1587, 1588, 1589, 1590, 1591,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3792,
0, 0, 0, 1409, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1394, 0, 0, 0, 0,
2698, 0, 0, 1407, 0, 0, 0, 0, 0, 1391,
0, 0, 0, 1407, 1407, 0, 1409, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 200, 0, 0,
1407, 1409, 0, 0, 0, 1394, 0, 0, 0, 0,
0, 0, 1391, 0, 0, 1394, 1394, 0, 3833, 0,
0, 0, 0, 0, 0, 0, 0, 1391, 0, 0,
0, 0, 1394, 0, 0, 1409, 0, 0, 1409, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1410, 0, 0, 0, 0, 0, 0, 0, 0,
0, 1391, 0, 0, 1391, 0, 0, 0, 0, 0,
0, 1610, 0, 0, 1583, 0, 0, 0, 0, 0,
0, 0, 0, 0, 145, 0, 0, 0, 0, 0,
0, 1596, 0, 0, 114, 0, 159, 158, 0, 1585,
0, 0, 0, 0, 0, 1605, 0, 823, 0, 0,
0, 146, 0, 0, 0, 0, 0, 0, 1409, 0,
0, 0, 0, 0, 1410, 1408, 0, 0, 0, 1584,
0, 116, 2818, 117, 118, 0, 0, 0, 0, 119,
0, 148, 1408, 0, 1391, 0, 0, 0, 0, 0,
0, 121, 0, 122, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1410, 0, 0, 0, 0, 123,
0, 0, 124, 0, 1410, 1410, 0, 0, 0, 0,
0, 0, 0, 0, 126, 3004, 127, 0, 0, 0,
128, 1410, 0, 3942, 0, 0, 149, 0, 0, 0,
0, 0, 1409, 129, 0, 130, 0, 0, 2898, 0,
0, 131, 0, 2897, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 133, 0, 0, 1391, 1600,
0, 1407, 0, 1606, 0, 1409, 0, 0, 0, 1408,
0, 0, 1409, 0, 0, 0, 0, 0, 1407, 0,
0, 0, 0, 0, 1602, 1603, 0, 0, 0, 0,
0, 1391, 0, 1394, 1409, 0, 0, 0, 1391, 1598,
0, 0, 0, 0, 0, 0, 3020, 0, 134, 135,
1394, 1408, 0, 0, 136, 0, 0, 0, 0, 0,
1391, 0, 132, 0, 1599, 0, 0, 1604, 0, 0,
0, 0, 0, 137, 0, 3039, 0, 1409, 0, 0,
1611, 0, 1408, 1597, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 3043, 0,
0, 0, 0, 1391, 0, 0, 0, 3004, 0, 0,
138, 0, 0, 0, 0, 1407, 0, 1408, 3058, 1408,
1408, 139, 0, 0, 0, 0, 140, 0, 152, 0,
0, 0, 0, 156, 0, 0, 0, 0, 141, 0,
0, 150, 0, 0, 0, 151, 0, 1394, 0, 0,
142, 165, 0, 0, 1609, 1601, 0, 1407, 120, 1610,
0, 157, 1583, 0, 0, 0, 0, 0, 0, 147,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1596,
0, 167, 1608, 0, 0, 0, 0, 1585, 1407, 1394,
0, 0, 1410, 1605, 0, 0, 0, 0, 153, 0,
0, 0, 0, 0, 1610, 0, 0, 1583, 154, 1410,
0, 0, 0, 0, 155, 4099, 0, 1584, 0, 168,
1394, 0, 0, 1407, 1596, 1407, 1407, 3375, 0, 0,
0, 164, 1585, 0, 0, 0, 0, 0, 1605, 0,
0, 1610, 0, 0, 1583, 1594, 1592, 1593, 0, 1586,
1587, 1588, 1589, 1590, 1591, 1394, 0, 1394, 1394, 0,
1409, 1596, 1584, 0, 0, 163, 0, 0, 0, 1585,
0, 0, 0, 0, 1610, 1605, 0, 1583, 0, 0,
0, 0, 1783, 0, 0, 0, 1391, 0, 0, 0,
3100, 0, 0, 0, 1596, 3108, 1409, 2916, 0, 1584,
0, 0, 1585, 0, 3258, 0, 1410, 0, 1605, 0,
0, 0, 0, 0, 0, 0, 0, 1600, 0, 0,
0, 1606, 1391, 0, 0, 0, 3141, 0, 3143, 3270,
0, 0, 1584, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1602, 1603, 0, 0, 0, 0, 1410, 0,
3167, 0, 0, 0, 0, 0, 0, 1598, 0, 0,
0, 0, 1600, 0, 0, 0, 1606, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1410,
0, 0, 1599, 0, 0, 1604, 0, 1602, 1603, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1611, 1600,
0, 1597, 1598, 1606, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 1410, 0, 1410, 1410, 0, 0,
0, 0, 0, 0, 1602, 1603, 0, 1599, 0, 0,
1604, 0, 1600, 0, 0, 0, 1606, 1409, 0, 1598,
0, 0, 0, 1611, 0, 0, 1597, 0, 823, 0,
0, 0, 0, 0, 0, 0, 0, 1602, 1603, 0,
0, 0, 0, 1391, 1599, 0, 0, 1604, 0, 0,
0, 0, 1598, 1601, 0, 0, 3285, 3286, 0, 0,
1611, 0, 3291, 1597, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1599, 0, 0,
1604, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1409, 0, 0, 1611, 0, 0, 1597, 0, 1601, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1391, 0, 0, 0,
0, 0, 0, 0, 0, 0, 3435, 0, 0, 0,
1409, 0, 0, 0, 0, 1601, 0, 0, 0, 0,
1409, 1409, 0, 1594, 1592, 1593, 0, 1586, 1587, 1588,
1589, 1590, 1591, 0, 0, 0, 1391, 1409, 0, 0,
0, 3330, 0, 0, 0, 0, 1391, 1391, 1601, 0,
0, 0, 0, 3472, 0, 0, 0, 0, 3477, 0,
0, 1610, 0, 1391, 1583, 0, 0, 0, 1594, 1592,
1593, 0, 1586, 1587, 1588, 1589, 1590, 1591, 0, 0,
0, 1596, 0, 0, 0, 0, 0, 0, 0, 1585,
0, 0, 0, 0, 0, 1605, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1594, 1592, 1593, 0, 1586,
1587, 1588, 1589, 1590, 1591, 789, 0, 0, 0, 1584,
0, 0, 0, 0, 0, 184, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1594, 1592,
1593, 0, 1586, 1587, 1588, 1589, 1590, 1591, 796, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 808, 799, 0, 0, 0, 0, 0, 0, 0,
792, 185, 0, 0, 809, 0, 0, 0, 0, 0,
0, 0, 0, 0, 186, 0, 0, 0, 0, 0,
0, 800, 0, 0, 0, 0, 0, 0, 0, 0,
0, 187, 0, 2904, 0, 0, 0, 182, 0, 0,
0, 0, 805, 0, 0, 0, 0, 0, 0, 1600,
0, 3514, 188, 1606, 0, 0, 0, 0, 0, 0,
811, 0, 0, 0, 0, 0, 0, 0, 0, 0,
178, 813, 0, 0, 1602, 1603, 790, 0, 0, 0,
0, 179, 0, 0, 0, 0, 183, 0, 0, 1598,
0, 0, 172, 0, 0, 0, 0, 802, 1409, 0,
0, 3550, 0, 0, 0, 0, 0, 174, 0, 0,
0, 0, 0, 0, 1599, 1409, 0, 1604, 0, 0,
0, 0, 795, 0, 1391, 0, 0, 0, 0, 0,
1611, 0, 194, 1597, 0, 0, 0, 0, 0, 0,
0, 1391, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 3589, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 791, 0, 0, 0, 0, 0, 0, 0, 0,
0, 181, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 195,
0, 0, 0, 0, 0, 1601, 0, 0, 0, 195,
0, 0, 1409, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 812, 0, 0, 0, 793, 0,
801, 0, 0, 0, 170, 0, 803, 0, 1391, 814,
190, 0, 3642, 3643, 3644, 3645, 175, 0, 0, 180,
0, 0, 0, 0, 1409, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 804, 0, 810, 0, 0,
0, 798, 0, 0, 0, 173, 0, 192, 0, 794,
1391, 193, 0, 3732, 806, 1409, 3735, 0, 0, 191,
0, 0, 0, 0, 177, 1594, 1592, 1593, 0, 1586,
1587, 1588, 1589, 1590, 1591, 0, 171, 0, 0, 807,
0, 1391, 0, 0, 0, 0, 0, 0, 0, 176,
1409, 0, 1409, 1409, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 747, 0, 0, 0, 1391, 0, 1391, 1391,
0, 0, 0, 205, 206, 207, 208, 209, 210, 211,
212, 0, 213, 214, 215, 0, 0, 0, 0, 0,
0, 0, 216, 217, 0, 218, 219, 750, 220, 221,
222, 453, 454, 751, 455, 456, 0, 223, 224, 225,
226, 227, 0, 1082, 228, 229, 457, 458, 230, 0,
231, 232, 233, 234, 1090, 0, 235, 0, 236, 237,
238, 239, 752, 240, 241, 0, 242, 243, 244, 245,
246, 247, 0, 753, 248, 249, 1080, 1071, 1076, 1081,
1072, 1073, 1077, 250, 251, 252, 253, 254, 255, 460,
461, 256, 0, 257, 0, 258, 259, 260, 261, 262,
0, 263, 264, 265, 0, 0, 266, 267, 268, 269,
270, 0, 271, 272, 273, 0, 274, 275, 0, 276,
277, 278, 279, 462, 280, 281, 282, 1083, 0, 283,
0, 284, 464, 285, 0, 286, 0, 287, 755, 0,
756, 288, 289, 290, 0, 291, 1091, 3790, 292, 0,
293, 294, 295, 296, 297, 757, 298, 299, 300, 0,
301, 302, 303, 304, 305, 306, 0, 307, 758, 466,
308, 309, 310, 311, 467, 468, 0, 469, 0, 312,
759, 760, 313, 761, 314, 315, 316, 317, 318, 319,
320, 0, 1092, 762, 321, 763, 0, 322, 323, 324,
1074, 1075, 325, 326, 327, 328, 329, 330, 331, 332,
333, 334, 335, 336, 471, 764, 472, 337, 338, 473,
0, 339, 340, 765, 341, 0, 1089, 342, 475, 343,
344, 345, 0, 346, 0, 704, 347, 348, 349, 0,
0, 476, 766, 767, 768, 1084, 350, 351, 352, 353,
354, 355, 356, 0, 357, 1085, 358, 479, 361, 359,
360, 0, 362, 363, 364, 365, 366, 367, 368, 480,
369, 370, 371, 372, 0, 373, 374, 375, 376, 377,
378, 379, 380, 381, 382, 0, 383, 384, 769, 385,
386, 481, 387, 388, 389, 390, 391, 392, 393, 394,
165, 395, 396, 397, 398, 399, 1078, 400, 482, 401,
402, 770, 403, 483, 0, 0, 404, 405, 406, 407,
408, 409, 410, 411, 412, 413, 1086, 0, 414, 415,
167, 416, 417, 418, 419, 420, 421, 0, 485, 486,
0, 0, 422, 1087, 423, 1088, 0, 424, 425, 426,
0, 427, 428, 429, 0, 0, 430, 431, 432, 433,
434, 1079, 0, 435, 436, 437, 438, 439, 942, 490,
823, 440, 771, 441, 442, 443, 0, 0, 444, 0,
164, 445, 446, 447, 448, 449, 491, 1093, 1094, 1095,
1096, 1097, 1098, 1099, 1100, 450, 451, 452, 0, 0,
0, 0, 0, 3950, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 2727, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1689, 0, 0, 0, 0, 0, 0,
0, 0, 0, 3998, 205, 206, 207, 208, 209, 210,
211, 212, 1694, 213, 214, 215, 1695, 1696, 1697, 1698,
1699, 1700, 1701, 216, 217, 1702, 218, 219, 750, 220,
221, 222, 453, 454, 751, 455, 456, 1703, 223, 224,
225, 226, 227, 1704, 1705, 228, 229, 457, 458, 230,
1706, 231, 232, 233, 234, 459, 1707, 235, 1708, 236,
237, 238, 239, 752, 240, 241, 1709, 242, 243, 244,
245, 246, 247, 1710, 753, 248, 249, 1711, 1712, 1713,
754, 1714, 1715, 1716, 250, 251, 252, 253, 254, 255,
460, 461, 256, 1717, 257, 1718, 258, 259, 260, 261,
262, 1719, 263, 264, 265, 1720, 1721, 266, 267, 268,
269, 270, 1722, 271, 272, 273, 1723, 274, 275, 1724,
276, 277, 278, 279, 462, 280, 281, 282, 463, 1725,
283, 1726, 284, 464, 285, 1727, 286, 1728, 287, 755,
1729, 756, 288, 289, 290, 1730, 291, 465, 1731, 292,
1732, 293, 294, 295, 296, 297, 757, 298, 299, 300,
1733, 301, 302, 303, 304, 305, 306, 1734, 307, 758,
466, 308, 309, 310, 311, 467, 468, 1735, 469, 1736,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 1737, 470, 762, 321, 763, 1738, 322, 323,
324, 1739, 1740, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 764, 472, 337, 338,
473, 1741, 339, 340, 765, 341, 1742, 474, 342, 475,
343, 344, 345, 1743, 346, 1744, 1745, 347, 348, 349,
1746, 1747, 476, 766, 767, 768, 477, 350, 351, 352,
353, 354, 355, 356, 1748, 357, 478, 358, 479, 361,
359, 360, 1749, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 1750, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 1751, 383, 384, 769,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 1752, 395, 396, 397, 398, 399, 1753, 400, 482,
401, 402, 770, 403, 483, 0, 1754, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 1755, 414,
415, 1756, 416, 417, 418, 419, 420, 421, 1757, 485,
486, 1758, 1759, 422, 487, 423, 488, 1760, 424, 425,
426, 0, 427, 428, 429, 1761, 1762, 430, 431, 432,
433, 434, 1763, 1764, 435, 436, 437, 438, 439, 489,
490, 1765, 440, 771, 441, 442, 443, 1766, 1767, 444,
1768, 1769, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 1689,
4169, 564, 0, 0, 0, 624, 0, 0, 1687, 0,
205, 206, 207, 208, 209, 210, 211, 212, 1694, 213,
214, 215, 1695, 1696, 1697, 1698, 1699, 1700, 1701, 216,
217, 1702, 218, 219, 750, 220, 221, 222, 453, 454,
751, 455, 456, 1703, 223, 224, 225, 226, 227, 1704,
1705, 228, 229, 457, 458, 230, 1706, 231, 232, 233,
234, 459, 1707, 235, 1708, 236, 237, 238, 239, 752,
240, 241, 1709, 242, 243, 244, 245, 246, 247, 1710,
753, 248, 249, 1711, 1712, 1713, 754, 1714, 1715, 1716,
250, 251, 252, 253, 254, 255, 460, 461, 256, 1717,
257, 1718, 258, 259, 260, 261, 262, 1719, 263, 264,
265, 1720, 1721, 266, 267, 268, 269, 270, 1722, 271,
272, 273, 1723, 274, 275, 1724, 276, 277, 278, 279,
462, 280, 281, 282, 463, 1725, 283, 1726, 284, 464,
285, 1727, 286, 1728, 287, 755, 1729, 756, 288, 289,
290, 1730, 291, 465, 1731, 292, 1732, 293, 294, 295,
296, 297, 757, 298, 299, 300, 1733, 301, 302, 303,
304, 305, 306, 1734, 307, 758, 466, 308, 309, 310,
311, 467, 468, 1735, 469, 1736, 312, 759, 760, 313,
761, 314, 315, 316, 317, 318, 319, 320, 1737, 470,
762, 321, 763, 1738, 322, 323, 324, 1739, 1740, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 764, 472, 337, 338, 473, 1741, 339, 340,
765, 341, 1742, 474, 342, 475, 343, 344, 345, 1743,
346, 1744, 1745, 347, 348, 349, 1746, 1747, 476, 766,
767, 768, 477, 350, 351, 352, 353, 354, 355, 356,
1748, 357, 478, 358, 479, 361, 359, 360, 1749, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 1750, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 1751, 383, 384, 769, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 1752, 395, 396,
397, 398, 399, 1753, 400, 482, 401, 402, 770, 403,
483, 0, 1754, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 1755, 414, 415, 1756, 416, 417,
418, 419, 420, 421, 1757, 485, 486, 1758, 1759, 422,
487, 423, 488, 1760, 424, 425, 426, 0, 427, 428,
429, 1761, 1762, 430, 431, 432, 433, 434, 1763, 1764,
435, 436, 437, 438, 439, 489, 490, 1765, 440, 771,
441, 442, 443, 1766, 1767, 444, 1768, 1769, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 1689, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 1694, 213, 214, 215, 1695, 1696,
1697, 1698, 1699, 1700, 1701, 216, 217, 1702, 218, 219,
750, 220, 221, 222, 453, 454, 751, 455, 456, 1703,
223, 224, 225, 226, 227, 1704, 1705, 228, 229, 457,
458, 230, 1706, 231, 232, 233, 234, 459, 1707, 235,
1708, 236, 237, 238, 239, 752, 240, 241, 1709, 242,
243, 244, 245, 246, 247, 1710, 753, 248, 249, 1711,
1712, 1713, 754, 1714, 1715, 1716, 250, 251, 252, 253,
254, 255, 460, 461, 256, 1717, 257, 1718, 258, 259,
260, 261, 262, 1719, 263, 264, 265, 1720, 1721, 266,
267, 268, 269, 270, 1722, 271, 272, 273, 1723, 274,
275, 1724, 276, 277, 278, 279, 462, 280, 281, 282,
463, 1725, 283, 1726, 284, 464, 285, 1727, 286, 1728,
287, 755, 1729, 756, 288, 289, 290, 1730, 291, 465,
1731, 292, 1732, 293, 294, 295, 296, 297, 757, 298,
299, 300, 1733, 301, 302, 303, 304, 305, 306, 1734,
307, 758, 466, 308, 309, 310, 311, 467, 468, 1735,
469, 1736, 312, 759, 760, 313, 761, 314, 315, 316,
317, 318, 319, 320, 1737, 470, 762, 321, 763, 1738,
322, 323, 324, 1739, 1740, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 764, 472,
337, 338, 473, 1741, 339, 340, 765, 341, 1742, 474,
342, 475, 343, 344, 345, 1743, 346, 1744, 1745, 347,
348, 349, 1746, 1747, 476, 766, 767, 768, 477, 350,
351, 352, 353, 354, 355, 356, 1748, 357, 478, 358,
479, 361, 359, 360, 1749, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 1750, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 1751, 383,
384, 769, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 1752, 395, 396, 397, 398, 399, 1753,
400, 482, 401, 402, 770, 403, 483, 0, 1754, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
1755, 414, 415, 1756, 416, 417, 418, 419, 420, 421,
1757, 485, 486, 1758, 1759, 422, 487, 423, 488, 1760,
424, 425, 426, 0, 427, 428, 429, 1761, 1762, 430,
431, 432, 433, 434, 1763, 1764, 435, 436, 437, 438,
439, 489, 490, 1765, 440, 771, 441, 442, 443, 1766,
1767, 444, 1768, 1769, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 1689, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 2437, 210, 211, 212,
1694, 213, 214, 215, 1695, 1696, 1697, 1698, 1699, 1700,
1701, 216, 217, 1702, 218, 219, 750, 220, 221, 222,
453, 454, 751, 455, 456, 1703, 223, 224, 225, 226,
227, 1704, 1705, 228, 229, 457, 458, 230, 1706, 231,
232, 233, 234, 459, 1707, 235, 1708, 236, 237, 238,
239, 752, 240, 241, 1709, 242, 243, 244, 245, 246,
247, 1710, 753, 248, 249, 1711, 1712, 1713, 754, 1714,
1715, 1716, 250, 251, 252, 253, 254, 255, 460, 461,
256, 1717, 257, 1718, 258, 259, 260, 261, 262, 1719,
263, 264, 265, 1720, 1721, 266, 267, 268, 2438, 270,
1722, 271, 272, 273, 1723, 274, 275, 1724, 276, 277,
278, 279, 462, 280, 281, 282, 463, 1725, 283, 1726,
284, 464, 285, 1727, 286, 1728, 287, 755, 1729, 756,
288, 289, 290, 1730, 291, 465, 1731, 292, 1732, 293,
294, 295, 296, 297, 757, 298, 299, 300, 1733, 301,
302, 303, 304, 305, 306, 1734, 307, 758, 466, 308,
309, 310, 311, 467, 468, 1735, 469, 1736, 312, 759,
760, 313, 761, 314, 315, 316, 317, 318, 319, 320,
1737, 470, 762, 321, 763, 1738, 322, 323, 324, 1739,
1740, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 764, 472, 337, 338, 473, 1741,
339, 340, 765, 341, 1742, 474, 342, 475, 343, 344,
345, 1743, 346, 1744, 1745, 347, 348, 349, 1746, 1747,
476, 766, 767, 768, 477, 350, 351, 352, 353, 354,
355, 356, 1748, 357, 478, 358, 479, 361, 359, 360,
1749, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 1750, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 1751, 383, 384, 769, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 1752,
395, 396, 397, 398, 399, 1753, 2436, 482, 401, 402,
770, 403, 483, 0, 1754, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 1755, 414, 415, 1756,
416, 417, 418, 419, 420, 421, 1757, 485, 486, 1758,
1759, 422, 487, 423, 488, 1760, 424, 425, 426, 0,
427, 428, 429, 1761, 1762, 430, 431, 432, 433, 434,
1763, 1764, 435, 436, 437, 438, 439, 489, 490, 1765,
440, 771, 441, 442, 443, 1766, 1767, 444, 1768, 1769,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 1413, 1275, 564,
0, 0, 731, 624, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 1694, 213, 214, 215,
1695, 1696, 1697, 1698, 1699, 1700, 1701, 216, 217, 1702,
218, 219, 750, 220, 221, 222, 0, 1400, 751, 1415,
1406, 1703, 223, 224, 225, 226, 227, 1704, 1705, 228,
229, 1417, 1416, 230, 1706, 231, 232, 233, 234, 0,
1707, 235, 1708, 236, 237, 238, 239, 752, 240, 241,
1709, 242, 243, 244, 245, 246, 247, 1710, 753, 248,
249, 1711, 1712, 1713, 754, 1714, 1715, 1716, 250, 251,
252, 253, 254, 255, 1404, 1403, 256, 1717, 257, 1718,
258, 259, 260, 261, 262, 1719, 263, 264, 265, 1720,
1721, 266, 267, 1106, 269, 270, 1722, 271, 272, 273,
1723, 274, 275, 1724, 276, 277, 278, 279, 0, 280,
281, 282, 0, 1725, 283, 1726, 284, 1402, 285, 1727,
286, 1728, 287, 755, 1729, 756, 288, 289, 290, 1730,
291, 0, 1731, 292, 1732, 293, 294, 295, 296, 297,
757, 298, 299, 300, 1733, 301, 302, 303, 304, 305,
306, 1734, 307, 758, 0, 308, 309, 310, 311, 1397,
1398, 1735, 1325, 1736, 312, 759, 760, 313, 761, 314,
315, 316, 317, 318, 319, 320, 1737, 0, 762, 321,
763, 1738, 322, 323, 324, 1739, 1740, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 1419,
764, 1420, 337, 338, 0, 1741, 339, 340, 765, 341,
1742, 0, 342, 1405, 343, 344, 345, 1743, 346, 1744,
1745, 3156, 348, 349, 1746, 1747, 0, 766, 767, 768,
0, 350, 351, 352, 353, 354, 355, 356, 1748, 357,
0, 358, 0, 361, 359, 360, 1749, 362, 363, 364,
365, 366, 367, 368, 1401, 369, 370, 371, 372, 1750,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
1751, 383, 384, 769, 385, 386, 0, 387, 388, 389,
390, 391, 392, 393, 394, 1752, 395, 396, 397, 398,
399, 1753, 400, 1919, 401, 402, 770, 403, 1399, 0,
1754, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 0, 1755, 414, 415, 1756, 416, 417, 418, 419,
420, 421, 1757, 1412, 1411, 1758, 1759, 422, 0, 423,
0, 1760, 424, 425, 426, 0, 427, 428, 429, 1761,
1762, 430, 431, 432, 433, 434, 1763, 1764, 435, 436,
437, 438, 439, 0, 1418, 1765, 440, 771, 441, 442,
443, 1766, 1767, 444, 1768, 1769, 445, 446, 447, 448,
449, 0, 0, 0, 0, 0, 0, 0, 0, 0,
450, 451, 452, 0, 0, 0, 741, 739, 740, 0,
3158, 3157, 735, 736, 737, 738, 747, 1060, 564, 1062,
1063, 1055, 624, 1048, 0, 0, 0, 205, 206, 207,
208, 209, 210, 211, 212, 2298, 213, 214, 215, 0,
0, 0, 0, 1054, 0, 0, 216, 217, 0, 218,
219, 750, 220, 221, 222, 453, 1107, 751, 1108, 1109,
0, 223, 224, 225, 226, 227, 1070, 1082, 228, 229,
1110, 1111, 230, 0, 231, 232, 233, 234, 1090, 0,
235, 0, 236, 237, 238, 239, 752, 240, 241, 0,
242, 243, 244, 245, 246, 247, 0, 753, 248, 249,
1080, 1071, 1076, 1081, 1072, 1073, 1077, 250, 251, 252,
253, 254, 255, 1112, 1113, 256, 0, 257, 0, 258,
259, 260, 261, 262, 0, 263, 264, 265, 2299, 0,
266, 267, 1106, 269, 270, 0, 271, 272, 273, 0,
274, 275, 0, 276, 277, 278, 279, 1053, 280, 281,
282, 1083, 1068, 283, 0, 284, 1114, 285, 0, 286,
0, 287, 755, 0, 756, 288, 289, 290, 0, 291,
1091, 0, 292, 0, 293, 294, 295, 296, 297, 757,
298, 299, 300, 0, 301, 302, 303, 304, 305, 306,
0, 307, 758, 466, 308, 309, 310, 311, 1115, 1116,
0, 1105, 0, 312, 759, 760, 313, 761, 314, 315,
316, 317, 318, 319, 320, 0, 1092, 762, 321, 763,
0, 322, 323, 324, 1074, 1075, 325, 326, 327, 328,
329, 330, 331, 332, 333, 334, 335, 336, 1117, 764,
1118, 337, 338, 473, 1043, 339, 340, 765, 341, 1069,
1089, 342, 1119, 343, 344, 345, 0, 346, 0, 0,
1056, 348, 349, 0, 0, 476, 766, 767, 768, 1084,
350, 351, 352, 353, 354, 355, 356, 0, 357, 1085,
358, 479, 361, 359, 360, 0, 362, 363, 364, 365,
366, 367, 368, 1120, 369, 370, 371, 372, 0, 373,
374, 375, 376, 377, 378, 379, 380, 381, 382, 0,
383, 384, 769, 385, 386, 1057, 387, 388, 389, 390,
391, 392, 393, 394, 0, 395, 396, 397, 398, 399,
1078, 400, 482, 401, 402, 770, 403, 1121, 0, 0,
404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
1086, 0, 414, 415, 0, 416, 417, 418, 419, 420,
421, 0, 1122, 1123, 0, 0, 422, 1087, 423, 1088,
1067, 424, 425, 426, 0, 427, 428, 429, 0, 1045,
430, 431, 432, 433, 434, 1079, 0, 435, 436, 437,
438, 439, 489, 1124, 2297, 440, 771, 441, 442, 443,
0, 0, 444, 0, 0, 445, 446, 447, 448, 449,
491, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 450,
451, 452, 0, 0, 0, 0, 0, 0, 0, 1040,
1041, 2300, 0, 0, 0, 0, 0, 0, 1049, 2295,
747, 1060, 564, 1062, 1063, 1055, 624, 1048, 0, 0,
0, 205, 206, 207, 208, 209, 210, 211, 212, 0,
213, 214, 215, 0, 0, 0, 0, 1054, 0, 0,
216, 217, 0, 218, 219, 750, 220, 221, 222, 453,
1107, 751, 1108, 1109, 2338, 223, 224, 225, 226, 227,
1070, 1082, 228, 229, 1110, 1111, 230, 0, 231, 232,
233, 234, 1090, 0, 235, 0, 236, 237, 238, 239,
752, 240, 241, 0, 242, 243, 244, 245, 246, 247,
0, 753, 248, 249, 1080, 1071, 1076, 1081, 1072, 1073,
1077, 250, 251, 252, 253, 254, 255, 1112, 1113, 256,
0, 257, 0, 258, 259, 260, 261, 262, 0, 263,
264, 265, 0, 0, 266, 267, 1106, 269, 270, 0,
271, 272, 273, 0, 274, 275, 0, 276, 277, 278,
279, 1053, 280, 281, 282, 1083, 1068, 283, 0, 284,
1114, 285, 0, 286, 0, 287, 755, 2343, 756, 288,
289, 290, 0, 291, 1091, 0, 292, 0, 293, 294,
295, 296, 297, 757, 298, 299, 300, 0, 301, 302,
303, 304, 305, 306, 0, 307, 758, 466, 308, 309,
310, 311, 1115, 1116, 0, 1105, 0, 312, 759, 760,
313, 761, 314, 315, 316, 317, 318, 319, 320, 2339,
1092, 762, 321, 763, 0, 322, 323, 324, 1074, 1075,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 1117, 764, 1118, 337, 338, 473, 1043, 339,
340, 765, 341, 1069, 1089, 342, 1119, 343, 344, 345,
0, 346, 0, 0, 1056, 348, 349, 0, 0, 476,
766, 767, 768, 1084, 350, 351, 352, 353, 354, 355,
356, 0, 357, 1085, 358, 479, 361, 359, 360, 0,
362, 363, 364, 365, 366, 367, 368, 1120, 369, 370,
371, 372, 0, 373, 374, 375, 376, 377, 378, 379,
380, 381, 382, 0, 383, 384, 769, 385, 386, 1057,
387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
396, 397, 398, 399, 1078, 400, 482, 401, 402, 770,
403, 1121, 0, 0, 404, 405, 406, 407, 408, 409,
410, 411, 412, 413, 1086, 0, 414, 415, 0, 416,
417, 418, 419, 420, 421, 0, 1122, 1123, 0, 2340,
422, 1087, 423, 1088, 1067, 424, 425, 426, 0, 427,
428, 429, 0, 1045, 430, 431, 432, 433, 434, 1079,
0, 435, 436, 437, 438, 439, 489, 1124, 0, 440,
771, 441, 442, 443, 0, 0, 444, 0, 0, 445,
446, 447, 448, 449, 491, 1093, 1094, 1095, 1096, 1097,
1098, 1099, 1100, 450, 451, 452, 0, 0, 0, 0,
0, 0, 0, 1040, 1041, 0, 0, 0, 0, 0,
0, 0, 1049, 747, 1060, 564, 1062, 1063, 1055, 624,
1048, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
1054, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 453, 1107, 751, 1108, 1109, 0, 223, 224,
225, 226, 227, 1070, 1082, 228, 229, 1110, 1111, 230,
0, 231, 232, 233, 234, 1090, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 249, 1080, 1071, 1076,
1081, 1072, 1073, 1077, 250, 251, 252, 253, 254, 255,
1112, 1113, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 1106,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 1053, 280, 281, 282, 1083, 1068,
283, 0, 284, 1114, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 1091, 0, 292,
0, 293, 294, 295, 296, 297, 757, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
466, 308, 309, 310, 311, 1115, 1116, 0, 1105, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 1092, 762, 321, 763, 0, 322, 323,
324, 1074, 1075, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 1117, 764, 1118, 337, 338,
473, 1043, 339, 340, 765, 341, 1069, 1089, 342, 1119,
343, 344, 345, 0, 346, 0, 0, 1056, 348, 349,
0, 0, 476, 766, 767, 768, 1084, 350, 351, 352,
353, 354, 355, 356, 0, 357, 1085, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
1120, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 1057, 387, 388, 389, 390, 391, 392, 393,
394, 165, 395, 396, 397, 398, 399, 1078, 400, 482,
401, 402, 770, 403, 1121, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 1086, 0, 414,
415, 167, 416, 417, 418, 419, 420, 421, 0, 1122,
1123, 0, 0, 422, 1087, 423, 1088, 1067, 424, 425,
426, 0, 427, 428, 429, 0, 1045, 430, 431, 432,
433, 434, 1079, 0, 435, 436, 437, 438, 439, 942,
1124, 0, 440, 771, 441, 442, 443, 0, 0, 444,
0, 164, 445, 446, 447, 448, 449, 491, 1093, 1094,
1095, 1096, 1097, 1098, 1099, 1100, 450, 451, 452, 0,
0, 0, 0, 0, 0, 0, 1040, 1041, 0, 0,
0, 0, 0, 0, 0, 1049, 747, 1060, 564, 1062,
1063, 1055, 624, 1048, 0, 0, 0, 205, 206, 207,
208, 209, 210, 211, 212, 0, 213, 214, 215, 0,
0, 0, 0, 1054, 0, 0, 216, 217, 0, 218,
219, 750, 220, 221, 222, 453, 1107, 751, 1108, 1109,
0, 223, 224, 225, 226, 227, 1070, 1082, 228, 229,
1110, 1111, 230, 0, 231, 232, 233, 234, 1090, 0,
235, 0, 236, 237, 238, 239, 752, 240, 241, 0,
242, 243, 244, 245, 246, 247, 0, 753, 248, 249,
1080, 1071, 1076, 1081, 1072, 1073, 1077, 250, 251, 252,
253, 254, 255, 1112, 1113, 256, 0, 257, 0, 258,
259, 260, 261, 262, 0, 263, 264, 265, 0, 0,
266, 267, 1106, 269, 270, 0, 271, 272, 273, 0,
274, 275, 0, 276, 277, 278, 279, 1053, 280, 281,
282, 1083, 1068, 283, 0, 284, 1114, 285, 0, 286,
0, 287, 755, 0, 756, 288, 289, 290, 0, 291,
1091, 0, 292, 0, 293, 294, 295, 296, 297, 757,
298, 299, 300, 0, 301, 302, 303, 304, 305, 306,
0, 307, 758, 466, 308, 309, 310, 311, 1115, 1116,
0, 1105, 0, 312, 759, 760, 313, 761, 314, 315,
316, 317, 318, 319, 320, 0, 1092, 762, 321, 763,
0, 322, 323, 324, 1074, 1075, 325, 326, 327, 328,
329, 330, 331, 332, 333, 334, 335, 336, 1117, 764,
1118, 337, 338, 473, 1043, 339, 340, 765, 341, 1069,
1089, 342, 1119, 343, 344, 345, 0, 346, 0, 0,
1056, 348, 349, 0, 0, 476, 766, 767, 768, 1084,
350, 351, 352, 353, 354, 355, 356, 0, 357, 1085,
358, 479, 361, 359, 360, 0, 362, 363, 364, 365,
366, 367, 368, 1120, 369, 370, 371, 372, 0, 373,
374, 375, 376, 377, 378, 379, 380, 381, 382, 0,
383, 384, 769, 385, 386, 1057, 387, 388, 389, 390,
391, 392, 393, 394, 0, 395, 396, 397, 398, 399,
1078, 400, 482, 401, 402, 770, 403, 1121, 0, 0,
404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
1086, 0, 414, 415, 0, 416, 417, 418, 419, 420,
421, 0, 1122, 1123, 0, 0, 422, 1087, 423, 1088,
1067, 424, 425, 426, 0, 427, 428, 429, 0, 1045,
430, 431, 432, 433, 434, 1079, 0, 435, 436, 437,
438, 439, 489, 1124, 0, 440, 771, 441, 442, 443,
0, 0, 444, 0, 0, 445, 446, 447, 448, 449,
491, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 450,
451, 452, 0, 0, 0, 0, 0, 0, 0, 1040,
1041, 0, 0, 0, 0, 0, 0, 0, 1049, 2294,
747, 1060, 564, 1062, 1063, 1055, 624, 1048, 0, 0,
0, 205, 206, 207, 208, 209, 210, 211, 212, 0,
213, 214, 215, 0, 0, 0, 0, 1054, 0, 0,
216, 217, 0, 218, 219, 750, 220, 221, 222, 453,
1107, 751, 1108, 1109, 0, 223, 224, 225, 226, 227,
1070, 1082, 228, 229, 1110, 1111, 230, 0, 231, 232,
233, 234, 1090, 0, 235, 0, 236, 237, 238, 239,
752, 240, 241, 0, 242, 243, 244, 245, 246, 247,
0, 753, 248, 249, 1080, 1071, 1076, 1081, 1072, 1073,
1077, 250, 251, 252, 253, 254, 255, 1112, 1113, 256,
0, 257, 0, 258, 259, 260, 261, 262, 0, 263,
264, 265, 0, 0, 266, 267, 1106, 269, 270, 0,
271, 272, 273, 0, 274, 275, 0, 276, 277, 278,
279, 1053, 280, 281, 282, 1083, 1068, 283, 0, 284,
1114, 285, 0, 286, 0, 287, 755, 0, 756, 288,
289, 290, 0, 291, 1091, 0, 292, 0, 293, 294,
295, 296, 297, 757, 298, 299, 300, 0, 301, 302,
303, 304, 305, 306, 0, 307, 758, 466, 308, 309,
310, 311, 1115, 1116, 0, 1105, 0, 312, 759, 760,
313, 761, 314, 315, 316, 317, 318, 319, 320, 0,
1092, 762, 321, 763, 0, 322, 323, 324, 1074, 1075,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 1117, 764, 1118, 337, 338, 473, 1043, 339,
340, 765, 341, 1069, 1089, 342, 1119, 343, 344, 345,
0, 346, 0, 0, 1056, 348, 349, 0, 0, 476,
766, 767, 768, 1084, 350, 351, 352, 353, 354, 355,
356, 0, 357, 1085, 358, 479, 361, 359, 360, 0,
362, 363, 364, 365, 366, 367, 368, 1120, 369, 370,
371, 372, 0, 373, 374, 375, 376, 377, 378, 379,
380, 381, 382, 0, 383, 384, 769, 385, 386, 1057,
387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
396, 397, 398, 399, 1078, 400, 482, 401, 402, 770,
403, 1121, 0, 0, 404, 405, 406, 407, 408, 409,
410, 411, 412, 413, 1086, 0, 414, 415, 0, 416,
417, 418, 419, 420, 421, 0, 1122, 1123, 0, 0,
422, 1087, 423, 1088, 1067, 424, 425, 426, 0, 427,
428, 429, 0, 1045, 430, 431, 432, 433, 434, 1079,
0, 435, 436, 437, 438, 439, 489, 1124, 0, 440,
771, 441, 442, 443, 0, 0, 444, 0, 0, 445,
446, 447, 448, 449, 491, 1093, 1094, 1095, 1096, 1097,
1098, 1099, 1100, 450, 451, 452, 0, 0, 0, 0,
0, 0, 0, 1040, 1041, 0, 0, 0, 0, 0,
1626, 2290, 1049, 747, 1060, 564, 1062, 1063, 1055, 624,
1048, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
1054, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 453, 1107, 751, 1108, 1109, 0, 223, 224,
225, 226, 227, 1070, 1082, 228, 229, 1110, 1111, 230,
0, 231, 232, 233, 234, 1090, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 249, 1080, 1071, 1076,
1081, 1072, 1073, 1077, 250, 251, 252, 253, 254, 255,
1112, 1113, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 1106,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 1053, 280, 281, 282, 1083, 1068,
283, 0, 284, 1114, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 1091, 0, 292,
0, 293, 294, 295, 296, 297, 757, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
466, 308, 309, 310, 311, 1115, 1116, 0, 1105, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 1092, 762, 321, 763, 0, 322, 323,
324, 1074, 1075, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 1117, 764, 1118, 337, 338,
473, 1043, 339, 340, 765, 341, 1069, 1089, 342, 1119,
343, 344, 345, 0, 346, 0, 0, 1056, 348, 349,
0, 0, 476, 766, 767, 768, 1084, 350, 351, 352,
353, 354, 355, 356, 0, 357, 1085, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
1120, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 1057, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 1078, 400, 482,
401, 402, 770, 403, 1121, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 1086, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 1122,
1123, 0, 0, 422, 1087, 423, 1088, 1067, 424, 425,
426, 0, 427, 428, 429, 0, 1045, 430, 431, 432,
433, 434, 1079, 0, 435, 436, 437, 438, 439, 489,
1124, 3317, 440, 771, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 1093, 1094,
1095, 1096, 1097, 1098, 1099, 1100, 450, 451, 452, 0,
0, 0, 0, 0, 0, 0, 1040, 1041, 0, 0,
0, 0, 0, 0, 0, 1049, 747, 1060, 564, 1062,
1063, 1055, 624, 1048, 0, 0, 0, 205, 206, 207,
208, 209, 210, 211, 212, 0, 213, 214, 215, 0,
0, 0, 0, 1054, 0, 0, 216, 217, 0, 218,
219, 750, 220, 221, 222, 453, 1107, 751, 1108, 1109,
0, 223, 224, 225, 226, 227, 1070, 1082, 228, 229,
1110, 1111, 230, 0, 231, 232, 233, 234, 1090, 0,
235, 0, 236, 237, 238, 239, 752, 240, 241, 0,
242, 243, 244, 245, 246, 247, 0, 753, 248, 249,
1080, 1071, 1076, 1081, 1072, 1073, 1077, 250, 251, 252,
253, 254, 255, 1112, 1113, 256, 1142, 257, 0, 258,
259, 260, 261, 262, 0, 263, 264, 265, 0, 0,
266, 267, 1106, 269, 270, 0, 271, 272, 273, 0,
274, 275, 0, 276, 277, 278, 279, 1053, 280, 281,
282, 1083, 1068, 283, 0, 284, 1114, 285, 0, 286,
0, 287, 755, 0, 756, 288, 289, 290, 0, 291,
1091, 0, 292, 0, 293, 294, 295, 296, 297, 757,
298, 299, 300, 0, 301, 302, 303, 304, 305, 306,
0, 307, 758, 466, 308, 309, 310, 311, 1115, 1116,
0, 1105, 0, 312, 759, 760, 313, 761, 314, 315,
316, 317, 318, 319, 320, 0, 1092, 762, 321, 763,
0, 322, 323, 324, 1074, 1075, 325, 326, 327, 328,
329, 330, 331, 332, 333, 334, 335, 336, 1117, 764,
1118, 337, 338, 473, 1043, 339, 340, 765, 341, 1069,
1089, 342, 1119, 343, 344, 345, 0, 346, 0, 0,
1056, 348, 349, 0, 0, 476, 766, 767, 768, 1084,
350, 351, 352, 353, 354, 355, 356, 0, 357, 1085,
358, 479, 361, 359, 360, 0, 362, 363, 364, 365,
366, 367, 368, 1120, 369, 370, 371, 372, 0, 373,
374, 375, 376, 377, 378, 379, 380, 381, 382, 0,
383, 384, 769, 385, 386, 1057, 387, 388, 389, 390,
391, 392, 393, 394, 0, 395, 396, 397, 398, 399,
1078, 400, 482, 401, 402, 770, 403, 1121, 0, 0,
404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
1086, 0, 414, 415, 0, 416, 417, 418, 419, 420,
421, 0, 1122, 1123, 0, 0, 422, 1087, 423, 1088,
1067, 424, 425, 426, 0, 427, 428, 429, 0, 1045,
430, 431, 432, 433, 434, 1079, 0, 435, 436, 437,
438, 439, 489, 1124, 0, 440, 771, 441, 442, 443,
0, 0, 444, 0, 0, 445, 446, 447, 448, 449,
491, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 450,
451, 452, 0, 0, 0, 0, 0, 0, 0, 1040,
1041, 0, 0, 0, 0, 0, 0, 0, 1049, 747,
1060, 564, 1062, 1063, 1055, 624, 1048, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 1054, 0, 0, 216,
217, 0, 218, 219, 750, 220, 221, 222, 453, 1107,
751, 1108, 1109, 0, 223, 224, 225, 226, 227, 1070,
1082, 228, 229, 1110, 1111, 230, 0, 231, 232, 233,
234, 1090, 0, 235, 0, 236, 237, 238, 239, 752,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
753, 248, 249, 1080, 1071, 1076, 1081, 1072, 1073, 1077,
250, 251, 252, 253, 254, 255, 1112, 1113, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 1106, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
1053, 280, 281, 282, 1083, 1068, 283, 0, 284, 1114,
285, 0, 286, 0, 287, 755, 0, 756, 288, 289,
290, 0, 291, 1091, 0, 292, 0, 293, 294, 295,
296, 297, 757, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 758, 466, 308, 309, 310,
311, 1115, 1116, 0, 1105, 0, 312, 759, 760, 313,
761, 314, 315, 316, 317, 318, 319, 320, 0, 1092,
762, 321, 763, 0, 322, 323, 324, 1074, 1075, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 1117, 764, 1118, 337, 338, 473, 1043, 339, 340,
765, 341, 1069, 1089, 342, 1119, 343, 344, 345, 0,
346, 0, 0, 1056, 348, 349, 0, 0, 476, 766,
767, 768, 1084, 350, 351, 352, 353, 354, 355, 356,
0, 357, 1085, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 1120, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 769, 385, 386, 1057, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 1078, 400, 482, 401, 402, 770, 403,
1121, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 1086, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 1122, 1123, 0, 0, 422,
1087, 423, 1088, 1067, 424, 425, 426, 0, 427, 428,
429, 0, 1045, 430, 431, 432, 433, 434, 1079, 0,
435, 436, 437, 438, 439, 489, 1124, 0, 440, 771,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 1093, 1094, 1095, 1096, 1097, 1098,
1099, 1100, 450, 451, 452, 0, 0, 0, 0, 0,
0, 0, 1040, 1041, 1038, 0, 0, 0, 0, 0,
0, 1049, 747, 1060, 564, 1062, 1063, 1055, 624, 1048,
0, 0, 0, 205, 206, 207, 208, 209, 210, 211,
212, 0, 213, 214, 215, 0, 0, 0, 0, 1054,
0, 0, 216, 217, 0, 218, 219, 750, 220, 221,
222, 453, 1107, 751, 1108, 1109, 0, 223, 224, 225,
226, 227, 1070, 1082, 228, 229, 1110, 1111, 230, 0,
231, 232, 233, 234, 1090, 0, 235, 0, 236, 237,
238, 239, 752, 240, 241, 0, 242, 243, 244, 245,
246, 247, 0, 753, 248, 249, 1080, 1071, 1076, 1081,
1072, 1073, 1077, 250, 251, 252, 253, 254, 255, 1112,
1113, 256, 0, 257, 0, 258, 259, 260, 261, 262,
0, 263, 264, 265, 0, 0, 266, 267, 1106, 269,
270, 0, 271, 272, 273, 0, 274, 275, 0, 276,
277, 278, 279, 1053, 280, 281, 282, 1083, 1068, 283,
0, 284, 1114, 285, 0, 286, 0, 287, 755, 2343,
756, 288, 289, 290, 0, 291, 1091, 0, 292, 0,
293, 294, 295, 296, 297, 757, 298, 299, 300, 0,
301, 302, 303, 304, 305, 306, 0, 307, 758, 466,
308, 309, 310, 311, 1115, 1116, 0, 1105, 0, 312,
759, 760, 313, 761, 314, 315, 316, 317, 318, 319,
320, 0, 1092, 762, 321, 763, 0, 322, 323, 324,
1074, 1075, 325, 326, 327, 328, 329, 330, 331, 332,
333, 334, 335, 336, 1117, 764, 1118, 337, 338, 473,
1043, 339, 340, 765, 341, 1069, 1089, 342, 1119, 343,
344, 345, 0, 346, 0, 0, 1056, 348, 349, 0,
0, 476, 766, 767, 768, 1084, 350, 351, 352, 353,
354, 355, 356, 0, 357, 1085, 358, 479, 361, 359,
360, 0, 362, 363, 364, 365, 366, 367, 368, 1120,
369, 370, 371, 372, 0, 373, 374, 375, 376, 377,
378, 379, 380, 381, 382, 0, 383, 384, 769, 385,
386, 1057, 387, 388, 389, 390, 391, 392, 393, 394,
0, 395, 396, 397, 398, 399, 1078, 400, 482, 401,
402, 770, 403, 1121, 0, 0, 404, 405, 406, 407,
408, 409, 410, 411, 412, 413, 1086, 0, 414, 415,
0, 416, 417, 418, 419, 420, 421, 0, 1122, 1123,
0, 0, 422, 1087, 423, 1088, 1067, 424, 425, 426,
0, 427, 428, 429, 0, 1045, 430, 431, 432, 433,
434, 1079, 0, 435, 436, 437, 438, 439, 489, 1124,
0, 440, 771, 441, 442, 443, 0, 0, 444, 0,
0, 445, 446, 447, 448, 449, 491, 1093, 1094, 1095,
1096, 1097, 1098, 1099, 1100, 450, 451, 452, 0, 0,
0, 0, 0, 0, 0, 1040, 1041, 0, 0, 0,
0, 0, 0, 0, 1049, 747, 1060, 564, 1062, 1063,
1055, 624, 1048, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 1563, 213, 214, 215, 0, 0,
0, 0, 1054, 0, 0, 216, 217, 0, 218, 219,
750, 220, 221, 222, 453, 1107, 751, 1108, 1109, 0,
223, 224, 225, 226, 227, 1070, 1082, 228, 229, 1110,
1111, 230, 0, 231, 232, 233, 234, 1090, 0, 235,
0, 236, 237, 238, 239, 752, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 753, 248, 249, 1080,
1071, 1076, 1081, 1072, 1073, 1077, 250, 251, 252, 253,
254, 255, 1112, 1113, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 1106, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 1053, 280, 281, 282,
1083, 1068, 283, 0, 284, 1114, 285, 0, 286, 0,
287, 755, 0, 756, 288, 289, 290, 0, 291, 1091,
0, 292, 0, 293, 294, 295, 296, 297, 757, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 758, 466, 308, 309, 310, 311, 1115, 1116, 0,
1105, 0, 312, 759, 760, 313, 761, 314, 315, 316,
317, 318, 319, 320, 0, 1092, 762, 321, 763, 0,
322, 323, 324, 1074, 1075, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 1117, 764, 1118,
337, 338, 473, 1043, 339, 340, 765, 341, 1069, 1089,
342, 1119, 343, 344, 345, 0, 346, 0, 0, 1056,
348, 349, 0, 0, 476, 766, 767, 768, 1084, 350,
351, 352, 353, 354, 355, 356, 0, 357, 1085, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 1120, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 769, 385, 386, 1057, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 1078,
400, 482, 401, 402, 770, 403, 1121, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 1086,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 1122, 1123, 0, 0, 422, 1087, 423, 1088, 1067,
424, 425, 426, 0, 427, 428, 429, 0, 1045, 430,
431, 432, 433, 434, 1079, 0, 435, 436, 437, 438,
439, 489, 1124, 0, 440, 771, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 450, 451,
452, 0, 0, 0, 0, 0, 0, 0, 1040, 1041,
0, 0, 0, 0, 0, 0, 0, 1049, 747, 1060,
564, 1062, 1063, 1055, 624, 1048, 0, 0, 0, 205,
206, 207, 208, 209, 210, 211, 212, 0, 213, 214,
215, 0, 0, 0, 0, 1054, 0, 0, 216, 217,
0, 218, 219, 750, 220, 221, 222, 453, 1107, 751,
1108, 1109, 0, 223, 224, 225, 226, 227, 1070, 1082,
228, 229, 1110, 1111, 230, 0, 231, 232, 233, 234,
1090, 0, 235, 0, 236, 237, 238, 239, 752, 240,
241, 0, 242, 243, 244, 245, 246, 247, 0, 753,
248, 4114, 1080, 1071, 1076, 1081, 1072, 1073, 1077, 250,
251, 252, 253, 254, 255, 1112, 1113, 256, 0, 257,
0, 258, 259, 260, 261, 262, 0, 263, 264, 265,
0, 0, 266, 267, 1106, 269, 270, 0, 271, 272,
273, 0, 274, 275, 0, 276, 277, 278, 279, 1053,
280, 281, 282, 1083, 1068, 283, 0, 284, 1114, 285,
0, 286, 0, 287, 755, 0, 756, 288, 289, 290,
0, 291, 1091, 0, 292, 0, 293, 294, 295, 296,
297, 757, 298, 299, 300, 0, 301, 302, 303, 304,
305, 306, 0, 307, 758, 466, 308, 309, 310, 311,
1115, 1116, 0, 1105, 0, 312, 759, 760, 313, 761,
314, 315, 316, 317, 318, 319, 320, 0, 1092, 762,
321, 763, 0, 322, 323, 324, 1074, 1075, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
1117, 764, 1118, 337, 338, 473, 1043, 339, 340, 765,
341, 1069, 1089, 342, 1119, 343, 344, 345, 0, 346,
0, 0, 1056, 348, 349, 0, 0, 476, 766, 767,
768, 1084, 350, 351, 352, 353, 354, 355, 356, 0,
357, 1085, 358, 479, 361, 359, 360, 0, 362, 363,
364, 365, 366, 367, 368, 1120, 369, 370, 371, 372,
0, 373, 374, 375, 376, 377, 378, 379, 380, 381,
382, 0, 383, 384, 769, 385, 386, 1057, 387, 388,
389, 390, 391, 392, 393, 394, 0, 395, 396, 397,
398, 399, 1078, 400, 482, 401, 402, 770, 403, 1121,
0, 0, 404, 405, 406, 407, 408, 409, 410, 411,
412, 413, 1086, 0, 414, 415, 0, 416, 417, 418,
419, 420, 421, 0, 1122, 1123, 0, 0, 422, 1087,
423, 1088, 1067, 424, 425, 426, 0, 4113, 428, 429,
0, 1045, 430, 431, 432, 433, 434, 1079, 0, 435,
436, 437, 438, 439, 489, 1124, 0, 440, 771, 441,
442, 443, 0, 0, 444, 0, 0, 445, 446, 447,
448, 449, 491, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
1100, 450, 451, 452, 0, 0, 0, 0, 0, 0,
0, 1040, 1041, 0, 0, 0, 0, 0, 0, 0,
1049, 747, 1060, 564, 1062, 1063, 1055, 624, 1048, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 1054, 0,
0, 216, 217, 0, 218, 219, 750, 220, 221, 222,
453, 1107, 751, 1108, 1109, 0, 223, 224, 225, 226,
227, 1070, 1082, 228, 229, 1110, 1111, 230, 0, 231,
232, 233, 234, 1090, 0, 235, 0, 236, 237, 238,
239, 752, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 753, 248, 249, 1080, 1071, 1076, 1081, 1072,
1073, 1077, 250, 251, 252, 253, 254, 255, 1112, 1113,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 1106, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 1053, 280, 281, 282, 1083, 1068, 283, 0,
284, 1114, 285, 0, 286, 0, 287, 755, 0, 756,
288, 289, 290, 0, 291, 1091, 0, 292, 0, 293,
294, 295, 296, 297, 757, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 758, 466, 308,
309, 310, 311, 1115, 1116, 0, 1105, 0, 312, 759,
760, 313, 761, 314, 315, 316, 317, 318, 319, 320,
0, 1092, 762, 321, 763, 0, 322, 323, 324, 1074,
1075, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 1117, 764, 1118, 337, 338, 473, 1043,
339, 340, 765, 341, 1069, 1089, 342, 1119, 343, 344,
345, 0, 346, 0, 0, 1056, 348, 349, 0, 0,
476, 766, 767, 768, 1084, 350, 351, 352, 353, 354,
355, 356, 0, 357, 1085, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 1120, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 769, 385, 386,
1057, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 1078, 400, 482, 401, 402,
770, 403, 1121, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 1086, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 1122, 1123, 0,
0, 422, 1087, 423, 1088, 1067, 424, 425, 426, 0,
427, 428, 429, 0, 1045, 430, 431, 432, 433, 434,
1079, 0, 435, 436, 437, 438, 439, 489, 1124, 0,
440, 771, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 1093, 1094, 1095, 1096,
1097, 1098, 1099, 1100, 450, 451, 452, 0, 0, 0,
0, 0, 0, 0, 1040, 1041, 0, 0, 0, 0,
0, 0, 0, 1049, 747, 1060, 564, 1062, 1063, 1055,
624, 1048, 0, 0, 0, 205, 206, 207, 208, 209,
210, 211, 212, 0, 213, 214, 215, 0, 0, 0,
0, 1054, 0, 0, 216, 217, 0, 218, 219, 750,
220, 221, 222, 4112, 1107, 751, 1108, 1109, 0, 223,
224, 225, 226, 227, 1070, 1082, 228, 229, 1110, 1111,
230, 0, 231, 232, 233, 234, 1090, 0, 235, 0,
236, 237, 238, 239, 752, 240, 241, 0, 242, 243,
244, 245, 246, 247, 0, 753, 248, 4114, 1080, 1071,
1076, 1081, 1072, 1073, 1077, 250, 251, 252, 253, 254,
255, 1112, 1113, 256, 0, 257, 0, 258, 259, 260,
261, 262, 0, 263, 264, 265, 0, 0, 266, 267,
1106, 269, 270, 0, 271, 272, 273, 0, 274, 275,
0, 276, 277, 278, 279, 1053, 280, 281, 282, 1083,
1068, 283, 0, 284, 1114, 285, 0, 286, 0, 287,
755, 0, 756, 288, 289, 290, 0, 291, 1091, 0,
292, 0, 293, 294, 295, 296, 297, 757, 298, 299,
300, 0, 301, 302, 303, 304, 305, 306, 0, 307,
758, 466, 308, 309, 310, 311, 1115, 1116, 0, 1105,
0, 312, 759, 760, 313, 761, 314, 315, 316, 317,
318, 319, 320, 0, 1092, 762, 321, 763, 0, 322,
323, 324, 1074, 1075, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, 336, 1117, 764, 1118, 337,
338, 473, 1043, 339, 340, 765, 341, 1069, 1089, 342,
1119, 343, 344, 345, 0, 346, 0, 0, 1056, 348,
349, 0, 0, 476, 766, 767, 768, 1084, 350, 351,
352, 353, 354, 355, 356, 0, 357, 1085, 358, 479,
361, 359, 360, 0, 362, 363, 364, 365, 366, 367,
368, 1120, 369, 370, 371, 372, 0, 373, 374, 375,
376, 377, 378, 379, 380, 381, 382, 0, 383, 384,
769, 385, 386, 1057, 387, 388, 389, 390, 391, 392,
393, 394, 0, 395, 396, 397, 398, 399, 1078, 400,
482, 401, 402, 770, 403, 1121, 0, 0, 404, 405,
406, 407, 408, 409, 410, 411, 412, 413, 1086, 0,
414, 415, 0, 416, 417, 418, 419, 420, 421, 0,
1122, 1123, 0, 0, 422, 1087, 423, 1088, 1067, 424,
425, 426, 0, 4113, 428, 429, 0, 1045, 430, 431,
432, 433, 434, 1079, 0, 435, 436, 437, 438, 439,
489, 1124, 0, 440, 771, 441, 442, 443, 0, 0,
444, 0, 0, 445, 446, 447, 448, 449, 491, 1093,
1094, 1095, 1096, 1097, 1098, 1099, 1100, 450, 451, 452,
0, 0, 0, 0, 0, 0, 0, 1040, 1041, 0,
0, 0, 0, 0, 0, 0, 1049, 747, 1060, 564,
1062, 1063, 1055, 624, 1048, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 1054, 0, 0, 216, 217, 0,
218, 219, 750, 220, 221, 222, 453, 1107, 751, 1108,
1109, 0, 223, 224, 225, 226, 227, 1070, 1082, 228,
229, 1110, 1111, 230, 0, 231, 232, 233, 234, 1090,
0, 235, 0, 236, 237, 238, 239, 752, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 753, 248,
249, 1080, 1071, 1076, 1081, 1072, 1073, 1077, 250, 251,
252, 253, 254, 255, 1112, 1113, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 1106, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 1053, 280,
281, 282, 1083, 1068, 283, 0, 284, 1114, 285, 0,
286, 0, 287, 755, 0, 756, 288, 289, 290, 0,
291, 1091, 0, 292, 0, 293, 294, 295, 296, 297,
757, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 758, 466, 308, 309, 310, 311, 1115,
1116, 0, 1105, 0, 312, 759, 760, 313, 761, 314,
315, 316, 317, 318, 319, 320, 0, 1092, 762, 321,
763, 0, 322, 323, 324, 1074, 1075, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 1117,
764, 1118, 337, 3688, 473, 1043, 339, 340, 765, 341,
1069, 1089, 342, 1119, 343, 344, 345, 0, 346, 0,
0, 1056, 348, 349, 0, 0, 476, 766, 767, 768,
1084, 350, 351, 352, 353, 354, 355, 356, 0, 357,
1085, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 1120, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 769, 385, 386, 1057, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 1078, 400, 482, 401, 402, 770, 403, 1121, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 1086, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 1122, 1123, 0, 0, 422, 1087, 423,
1088, 1067, 424, 425, 426, 0, 427, 428, 429, 0,
1045, 430, 431, 432, 433, 434, 1079, 0, 435, 436,
437, 438, 439, 489, 1124, 0, 440, 771, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
450, 451, 452, 0, 0, 0, 0, 0, 0, 0,
1040, 1041, 0, 0, 0, 0, 0, 0, 0, 1049,
747, 1060, 564, 1062, 1063, 1055, 624, 1048, 0, 0,
0, 205, 206, 207, 208, 209, 210, 211, 212, 0,
213, 214, 215, 0, 0, 0, 0, 1054, 0, 0,
216, 217, 0, 218, 219, 750, 220, 221, 222, 453,
1107, 751, 1108, 1109, 0, 223, 224, 225, 226, 227,
1070, 1082, 228, 229, 1110, 1111, 230, 0, 231, 232,
233, 234, 1090, 0, 235, 0, 236, 237, 238, 239,
752, 240, 241, 0, 242, 243, 244, 245, 246, 247,
0, 753, 248, 249, 1080, 1071, 1076, 1081, 1072, 1073,
1077, 250, 251, 252, 253, 254, 255, 1112, 1113, 256,
0, 257, 0, 258, 259, 260, 261, 262, 0, 263,
264, 265, 0, 0, 266, 267, 1106, 269, 270, 0,
271, 272, 273, 0, 274, 275, 0, 276, 277, 278,
279, 1053, 280, 281, 282, 1083, 1068, 283, 0, 284,
1114, 285, 0, 286, 0, 287, 755, 0, 756, 288,
289, 290, 0, 291, 1091, 0, 292, 0, 293, 294,
295, 296, 297, 757, 298, 299, 300, 0, 301, 302,
303, 304, 305, 306, 0, 307, 758, 466, 308, 309,
310, 311, 1115, 1116, 0, 1105, 0, 312, 759, 760,
313, 761, 314, 315, 316, 317, 318, 319, 320, 0,
1092, 762, 321, 763, 0, 322, 323, 324, 1074, 1075,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 1117, 764, 1118, 337, 338, 473, 1043, 339,
340, 765, 341, 1069, 1089, 342, 1119, 343, 344, 345,
0, 346, 0, 0, 1056, 348, 349, 0, 0, 476,
766, 767, 768, 1084, 350, 351, 352, 353, 354, 355,
356, 0, 357, 1085, 358, 479, 361, 359, 360, 0,
362, 363, 364, 365, 366, 367, 368, 1120, 369, 370,
371, 372, 0, 373, 374, 375, 376, 377, 378, 379,
380, 381, 382, 0, 383, 384, 769, 385, 386, 1057,
387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
396, 397, 398, 399, 1078, 400, 482, 401, 402, 770,
403, 1121, 0, 0, 404, 405, 406, 407, 408, 409,
410, 411, 412, 413, 1086, 0, 414, 415, 0, 416,
417, 418, 419, 420, 421, 0, 1122, 1123, 0, 0,
422, 1087, 423, 1088, 1067, 424, 425, 426, 0, 427,
428, 429, 0, 1045, 430, 431, 432, 433, 434, 1079,
0, 435, 436, 437, 438, 439, 489, 1124, 0, 440,
771, 441, 442, 443, 0, 0, 444, 0, 0, 445,
446, 447, 448, 449, 3678, 1093, 1094, 1095, 1096, 1097,
1098, 1099, 1100, 450, 451, 452, 0, 0, 0, 0,
0, 0, 0, 1040, 1041, 0, 0, 0, 0, 0,
0, 0, 1049, 747, 1060, 564, 1062, 1063, 1055, 624,
1048, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
1054, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 453, 1107, 751, 1108, 1109, 0, 223, 224,
225, 226, 227, 1070, 1082, 228, 229, 1110, 1111, 230,
0, 231, 232, 233, 234, 1090, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 3214, 1080, 1071, 1076,
1081, 1072, 1073, 1077, 250, 251, 252, 253, 254, 255,
1112, 1113, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 1106,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 1053, 280, 281, 282, 1083, 1068,
283, 0, 284, 1114, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 1091, 0, 292,
0, 293, 294, 295, 296, 297, 757, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
466, 308, 309, 310, 311, 1115, 1116, 0, 1105, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 1092, 762, 321, 763, 0, 322, 323,
324, 1074, 1075, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 1117, 764, 1118, 337, 338,
473, 1043, 339, 340, 765, 341, 1069, 1089, 342, 1119,
343, 344, 345, 0, 346, 0, 0, 1056, 348, 349,
0, 0, 476, 766, 767, 768, 1084, 350, 351, 352,
353, 354, 355, 356, 0, 357, 1085, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
1120, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 1057, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 1078, 400, 482,
401, 402, 770, 403, 1121, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 1086, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 1122,
1123, 0, 0, 422, 1087, 423, 1088, 1067, 424, 425,
426, 0, 427, 428, 429, 0, 1045, 430, 431, 432,
433, 434, 1079, 0, 435, 436, 437, 438, 439, 489,
1124, 0, 440, 771, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 1093, 1094,
1095, 1096, 1097, 1098, 1099, 1100, 450, 451, 452, 0,
0, 0, 0, 0, 0, 0, 1040, 1041, 0, 0,
0, 0, 0, 0, 0, 1049, 747, 1060, 564, 1062,
1063, 1055, 624, 1048, 0, 0, 0, 205, 206, 207,
208, 209, 210, 211, 212, 0, 213, 214, 215, 0,
0, 0, 0, 1054, 0, 0, 216, 217, 0, 218,
219, 750, 220, 221, 222, 453, 1107, 751, 1108, 1109,
0, 223, 224, 225, 226, 227, 1070, 1082, 228, 229,
1110, 1111, 230, 0, 231, 232, 233, 234, 1090, 0,
235, 0, 236, 237, 238, 239, 752, 240, 241, 0,
242, 243, 244, 245, 246, 247, 0, 753, 248, 249,
1080, 1071, 1076, 1081, 1072, 1073, 1077, 250, 251, 252,
253, 254, 255, 1112, 1113, 256, 0, 257, 0, 258,
259, 260, 261, 262, 0, 263, 264, 265, 0, 0,
266, 267, 1106, 269, 270, 0, 271, 272, 273, 0,
274, 275, 0, 276, 277, 278, 279, 1053, 280, 281,
282, 1083, 1068, 283, 0, 284, 1114, 285, 0, 286,
0, 287, 755, 0, 756, 288, 289, 290, 0, 291,
1091, 0, 292, 0, 293, 294, 295, 296, 297, 757,
298, 299, 300, 0, 301, 302, 303, 304, 305, 306,
0, 307, 758, 466, 308, 309, 310, 311, 1115, 1116,
0, 1105, 0, 312, 759, 760, 313, 761, 314, 315,
316, 317, 318, 319, 320, 0, 1092, 762, 321, 763,
0, 322, 323, 324, 1074, 1075, 325, 326, 327, 328,
329, 330, 331, 332, 333, 334, 335, 336, 1117, 764,
1118, 337, 338, 473, 0, 339, 340, 765, 341, 1069,
1089, 342, 1119, 343, 344, 345, 0, 346, 0, 0,
1056, 348, 349, 0, 0, 476, 766, 767, 768, 1084,
350, 351, 352, 353, 354, 355, 356, 0, 357, 1085,
358, 479, 361, 359, 360, 0, 362, 363, 364, 365,
366, 367, 368, 1120, 369, 370, 371, 372, 0, 373,
374, 375, 376, 377, 378, 379, 380, 381, 382, 0,
383, 384, 769, 385, 386, 1057, 387, 388, 389, 390,
391, 392, 393, 394, 0, 395, 396, 397, 398, 399,
1078, 400, 482, 401, 402, 770, 403, 1121, 0, 0,
404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
1086, 0, 414, 415, 0, 416, 417, 418, 419, 420,
421, 0, 1122, 1123, 0, 0, 422, 1087, 423, 1088,
1067, 424, 425, 426, 0, 427, 428, 429, 0, 0,
430, 431, 432, 433, 434, 1079, 0, 435, 436, 437,
438, 439, 489, 1124, 0, 440, 771, 441, 442, 443,
0, 0, 444, 0, 0, 445, 446, 447, 448, 449,
491, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 450,
451, 452, 0, 0, 0, 0, 0, 0, 0, 2330,
2331, 0, 0, 0, 0, 0, 0, 0, 1049, 747,
1060, 564, 1062, 1063, 1055, 624, 1048, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 1054, 0, 0, 216,
217, 0, 218, 219, 750, 220, 221, 222, 0, 1107,
751, 1108, 1109, 0, 223, 224, 225, 226, 227, 1070,
1082, 228, 229, 1110, 1111, 230, 0, 231, 232, 233,
234, 1090, 0, 235, 0, 236, 237, 238, 239, 752,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
753, 248, 4114, 1080, 1071, 1076, 1081, 1072, 1073, 1077,
250, 251, 252, 253, 254, 255, 1112, 1113, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 1106, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
1053, 280, 281, 282, 1083, 1068, 283, 0, 284, 1114,
285, 0, 286, 0, 287, 755, 0, 756, 288, 289,
290, 0, 291, 1091, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 758, 466, 308, 309, 310,
311, 1115, 1116, 0, 1105, 0, 312, 759, 760, 313,
761, 314, 315, 316, 317, 318, 319, 320, 0, 1092,
762, 321, 0, 0, 322, 323, 324, 1074, 1075, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 1117, 764, 1118, 337, 338, 473, 0, 339, 340,
765, 341, 1069, 1089, 342, 1119, 343, 344, 345, 0,
346, 0, 0, 1056, 348, 349, 0, 0, 476, 766,
767, 768, 1084, 350, 351, 352, 353, 354, 355, 356,
0, 357, 1085, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 1120, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 769, 385, 386, 1057, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 1078, 400, 482, 401, 402, 0, 403,
1121, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 1086, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 1122, 1123, 0, 0, 422,
1087, 423, 1088, 1067, 424, 425, 426, 0, 4113, 428,
429, 0, 1045, 430, 431, 432, 433, 434, 1079, 0,
435, 436, 437, 438, 439, 489, 1124, 0, 440, 771,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 1093, 1094, 1095, 1096, 1097, 1098,
1099, 1100, 450, 451, 452, 0, 0, 0, 0, 0,
0, 0, 1040, 1041, 0, 0, 747, 1060, 564, 1062,
1063, 1049, 624, 1048, 0, 0, 0, 205, 206, 207,
208, 209, 210, 211, 212, 0, 213, 214, 215, 0,
0, 0, 0, 1054, 0, 0, 216, 217, 0, 218,
219, 750, 220, 221, 222, 453, 1107, 751, 1108, 1109,
0, 223, 224, 225, 226, 227, 1070, 1082, 228, 229,
1110, 1111, 230, 0, 231, 232, 233, 234, 1090, 0,
235, 0, 236, 237, 238, 239, 752, 240, 241, 0,
242, 243, 244, 245, 246, 247, 0, 753, 248, 249,
1080, 1071, 1076, 1081, 1072, 1073, 1077, 250, 251, 252,
253, 254, 255, 1112, 1113, 256, 0, 257, 0, 258,
259, 260, 261, 262, 0, 263, 264, 265, 0, 0,
266, 267, 1106, 269, 270, 0, 271, 272, 273, 0,
274, 275, 0, 276, 277, 278, 279, 1053, 280, 281,
282, 1083, 1068, 283, 0, 284, 1114, 285, 0, 286,
0, 287, 755, 0, 756, 288, 289, 290, 0, 291,
1091, 0, 292, 0, 293, 294, 295, 296, 297, 757,
298, 299, 300, 0, 301, 302, 303, 304, 305, 306,
0, 307, 758, 466, 308, 309, 310, 311, 1115, 1116,
0, 1105, 0, 312, 759, 760, 313, 761, 314, 315,
316, 317, 318, 319, 320, 0, 1092, 762, 321, 763,
0, 322, 323, 324, 1074, 1075, 325, 326, 327, 328,
329, 330, 331, 332, 333, 334, 335, 336, 1117, 764,
1118, 337, 338, 473, 0, 339, 340, 765, 341, 1069,
1089, 342, 1119, 343, 344, 345, 0, 346, 0, 0,
347, 348, 349, 0, 0, 476, 766, 767, 768, 1084,
350, 351, 352, 353, 354, 355, 356, 0, 357, 1085,
358, 479, 361, 359, 360, 0, 362, 363, 364, 365,
366, 367, 368, 1120, 369, 370, 371, 372, 0, 373,
374, 375, 376, 377, 378, 379, 380, 381, 382, 0,
383, 384, 769, 385, 386, 1057, 387, 388, 389, 390,
391, 392, 393, 394, 0, 395, 396, 397, 398, 399,
1078, 400, 482, 401, 402, 770, 403, 1121, 0, 0,
404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
1086, 0, 414, 415, 0, 416, 417, 418, 419, 420,
421, 0, 1122, 1123, 0, 0, 422, 1087, 423, 1088,
1067, 424, 425, 426, 0, 427, 428, 429, 0, 0,
430, 431, 432, 433, 434, 1079, 0, 435, 436, 437,
438, 439, 489, 1124, 0, 440, 771, 441, 442, 443,
0, 0, 444, 0, 0, 445, 446, 447, 448, 449,
491, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 450,
451, 452, 0, 0, 0, 0, 0, 0, 747, 1060,
564, 1062, 1063, 0, 624, 1048, 0, 0, 1049, 205,
206, 207, 208, 209, 210, 211, 212, 0, 213, 214,
215, 0, 0, 0, 0, 1054, 0, 0, 216, 217,
0, 218, 219, 750, 220, 221, 222, 453, 1107, 751,
1108, 1109, 0, 3365, 224, 225, 226, 227, 1070, 1082,
228, 229, 1110, 1111, 230, 0, 231, 232, 233, 234,
1090, 0, 235, 0, 236, 237, 238, 239, 752, 240,
241, 0, 242, 243, 244, 245, 246, 247, 0, 753,
248, 249, 1080, 1071, 1076, 1081, 1072, 1073, 1077, 250,
251, 252, 253, 254, 255, 1112, 1113, 256, 0, 257,
0, 258, 259, 260, 261, 262, 0, 263, 264, 265,
0, 0, 266, 267, 1106, 269, 270, 0, 271, 272,
273, 0, 274, 275, 0, 276, 277, 278, 279, 1053,
280, 281, 282, 1083, 1068, 283, 0, 284, 1114, 285,
0, 286, 0, 287, 755, 0, 756, 288, 289, 290,
0, 291, 1091, 0, 292, 0, 293, 294, 295, 296,
297, 757, 298, 299, 300, 0, 301, 302, 303, 304,
305, 306, 0, 307, 758, 466, 308, 309, 310, 311,
1115, 1116, 0, 1105, 0, 312, 759, 760, 313, 761,
314, 315, 316, 317, 318, 319, 320, 0, 1092, 762,
321, 763, 0, 322, 323, 324, 1074, 1075, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
1117, 764, 1118, 337, 338, 473, 0, 339, 340, 765,
341, 1069, 1089, 342, 1119, 343, 344, 345, 0, 346,
0, 0, 347, 348, 349, 0, 0, 476, 766, 767,
768, 1084, 350, 351, 352, 353, 354, 355, 356, 0,
357, 1085, 358, 479, 361, 359, 360, 0, 362, 363,
364, 365, 366, 367, 368, 1120, 369, 370, 371, 372,
0, 373, 374, 375, 376, 377, 378, 379, 380, 381,
382, 0, 383, 384, 769, 385, 386, 1057, 387, 388,
389, 390, 391, 392, 393, 394, 0, 395, 396, 397,
398, 399, 1078, 400, 482, 401, 402, 770, 403, 1121,
0, 0, 404, 405, 406, 407, 408, 409, 410, 411,
412, 413, 1086, 0, 414, 415, 0, 416, 417, 418,
419, 420, 421, 0, 1122, 1123, 0, 0, 422, 1087,
423, 1088, 1067, 424, 425, 426, 0, 427, 428, 429,
0, 0, 430, 431, 432, 433, 434, 1079, 0, 435,
436, 437, 438, 439, 489, 1124, 0, 440, 771, 441,
442, 443, 0, 0, 444, 0, 0, 445, 446, 447,
448, 449, 491, 1093, 1094, 1095, 1096, 1097, 1098, 1099,
1100, 450, 451, 452, 0, 0, 0, 0, 0, 0,
747, 1060, 564, 1062, 1063, 1055, 624, 1048, 0, 0,
1049, 205, 206, 207, 208, 209, 210, 211, 212, 0,
213, 214, 215, 0, 0, 0, 0, 1054, 0, 0,
216, 217, 0, 218, 219, 750, 220, 221, 222, 0,
1107, 751, 1108, 1109, 0, 223, 224, 225, 226, 227,
1070, 1082, 228, 229, 1110, 1111, 230, 0, 231, 232,
233, 234, 1090, 0, 235, 0, 236, 237, 238, 239,
752, 240, 241, 0, 242, 243, 244, 245, 246, 247,
0, 753, 248, 249, 1080, 1071, 1076, 1081, 1072, 1073,
1077, 250, 251, 252, 253, 254, 255, 1112, 1113, 256,
0, 257, 0, 258, 259, 260, 261, 262, 0, 263,
264, 265, 0, 0, 266, 267, 1106, 269, 270, 0,
271, 272, 273, 0, 274, 0, 0, 276, 277, 278,
279, 1053, 280, 281, 282, 1083, 1068, 283, 0, 284,
1114, 285, 0, 286, 0, 287, 755, 0, 756, 288,
289, 290, 0, 291, 1091, 0, 292, 0, 293, 294,
295, 296, 297, 0, 298, 299, 300, 0, 301, 302,
303, 304, 305, 306, 0, 307, 758, 466, 308, 309,
310, 311, 1115, 1116, 0, 1105, 0, 312, 759, 760,
313, 761, 314, 315, 316, 317, 318, 319, 320, 0,
1092, 762, 321, 0, 0, 322, 323, 324, 1074, 1075,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 1117, 764, 1118, 337, 338, 473, 0, 339,
340, 765, 341, 1069, 1089, 342, 1119, 343, 344, 345,
0, 346, 0, 0, 1056, 348, 349, 0, 0, 476,
766, 767, 768, 1084, 350, 351, 352, 353, 354, 355,
356, 0, 357, 1085, 358, 479, 361, 359, 360, 0,
362, 363, 364, 365, 366, 367, 368, 1120, 369, 370,
371, 372, 0, 373, 374, 375, 376, 377, 378, 379,
380, 381, 382, 0, 383, 384, 769, 385, 386, 1057,
387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
396, 397, 398, 399, 1078, 400, 482, 401, 402, 0,
403, 1121, 0, 0, 404, 405, 406, 407, 408, 409,
410, 411, 412, 413, 1086, 0, 414, 415, 0, 416,
417, 418, 419, 420, 421, 0, 1122, 1123, 0, 0,
422, 1087, 423, 1088, 1067, 424, 425, 426, 0, 427,
428, 429, 0, 1045, 430, 431, 432, 433, 434, 1079,
0, 435, 436, 437, 438, 439, 489, 1124, 0, 440,
771, 441, 442, 443, 0, 0, 444, 0, 0, 445,
446, 447, 448, 449, 491, 1093, 1094, 1095, 1096, 1097,
1098, 1099, 1100, 450, 451, 452, 0, 0, 0, 0,
0, 0, 0, 1040, 1041, 0, 0, 0, 0, 0,
0, 0, 1049, 747, 1060, 564, 1062, 1063, 1055, 624,
1048, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
1054, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 0, 1107, 751, 1108, 1109, 0, 223, 224,
225, 226, 227, 1070, 1082, 228, 229, 1110, 1111, 230,
0, 231, 232, 233, 234, 1090, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 249, 1080, 1071, 1076,
1081, 1072, 1073, 1077, 250, 251, 252, 253, 254, 255,
1112, 1113, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 1106,
269, 270, 0, 271, 272, 273, 0, 274, 0, 0,
276, 277, 278, 279, 1053, 280, 281, 282, 1083, 1068,
283, 0, 284, 1114, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 1091, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
466, 308, 309, 310, 311, 1115, 1116, 0, 1105, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 1092, 762, 321, 0, 0, 322, 323,
324, 1074, 1075, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 1117, 764, 1118, 337, 338,
473, 0, 339, 340, 765, 341, 1069, 1089, 342, 1119,
343, 344, 345, 0, 346, 0, 0, 1056, 348, 349,
0, 0, 476, 766, 767, 768, 1084, 350, 351, 352,
353, 354, 355, 356, 0, 357, 1085, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
1120, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 1057, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 1078, 400, 482,
401, 402, 0, 403, 1121, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 1086, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 1122,
1123, 0, 0, 422, 1087, 423, 1088, 1067, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 1079, 0, 435, 436, 437, 438, 439, 489,
1124, 0, 440, 771, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 1093, 1094,
1095, 1096, 1097, 1098, 1099, 1100, 450, 451, 452, 0,
0, 0, 0, 0, 0, 747, 2330, 2331, 0, 0,
0, 0, 0, 0, 0, 1049, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
750, 220, 221, 222, 453, 454, 751, 455, 456, 0,
223, 224, 225, 226, 227, 0, 1082, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 1090, 0, 235,
0, 236, 237, 238, 239, 752, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 753, 248, 249, 1080,
1071, 1076, 1081, 1072, 1073, 1077, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
1083, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 755, 0, 756, 288, 289, 290, 0, 291, 1091,
0, 292, 0, 293, 294, 295, 296, 297, 757, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 758, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 759, 760, 313, 761, 314, 315, 316,
317, 318, 319, 320, 0, 1092, 762, 321, 763, 0,
322, 323, 324, 1074, 1075, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 764, 472,
337, 338, 473, 0, 339, 340, 765, 341, 0, 1089,
342, 475, 343, 344, 345, 0, 346, 0, 704, 347,
348, 349, 0, 0, 476, 766, 767, 768, 1084, 350,
351, 352, 353, 354, 355, 356, 0, 357, 1085, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 769, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 1078,
400, 482, 401, 402, 770, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 1086,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 1087, 423, 1088, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 1079, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 771, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100, 450, 451,
452, 0, 0, 0, 0, 0, 0, 747, 0, 0,
0, 0, 0, 0, 0, 0, 0, 2727, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 750, 220, 221, 222, 453, 454, 751, 455,
456, 0, 223, 224, 225, 226, 227, 0, 1082, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 1090,
0, 235, 0, 236, 237, 238, 239, 752, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 753, 248,
249, 1080, 1071, 1076, 1081, 1072, 1073, 1077, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 1083, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 755, 0, 756, 288, 289, 290, 0,
291, 1091, 0, 292, 0, 293, 294, 295, 296, 297,
757, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 758, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 759, 760, 313, 761, 314,
315, 316, 317, 318, 319, 320, 0, 1092, 762, 321,
763, 0, 322, 323, 324, 1074, 1075, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
764, 472, 337, 338, 473, 0, 339, 340, 765, 341,
0, 1089, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 766, 767, 768,
1084, 350, 351, 352, 353, 354, 355, 356, 0, 357,
1085, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 769, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 1078, 400, 482, 401, 402, 770, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 1086, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 1087, 423,
1088, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 1079, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 771, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
450, 451, 452, 0, 0, 0, 0, 0, 0, 747,
0, 0, 0, 0, 0, 0, 0, 0, 0, 3406,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 750, 220, 221, 222, 453, 454,
751, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 752,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
753, 248, 249, 0, 0, 0, 754, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 755, 0, 756, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 757, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 758, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 759, 760, 313,
761, 314, 315, 316, 317, 318, 319, 320, 0, 470,
762, 321, 763, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 764, 472, 337, 338, 473, 0, 339, 340,
765, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 766,
767, 768, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 769, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 770, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 771,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 0, 0, 0, 0, 0,
0, 202, 1275, 564, 0, 0, 0, 624, 0, 0,
0, 3895, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 1311, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 1312, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 1310, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 0, 0, 0,
0, 0, 0, 202, 622, 1276, 3509, 0, 0, 0,
0, 0, 0, 3510, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 159, 158, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 165, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 167, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 942,
490, 0, 440, 941, 441, 442, 443, 0, 0, 444,
0, 164, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 0,
0, 0, 0, 0, 0, 202, 0, 0, 0, 0,
731, 0, 0, 0, 0, 163, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 0, 0, 0, 741, 739, 740, 0, 733, 734,
735, 736, 737, 738, 202, 0, 0, 0, 0, 731,
0, 0, 0, 0, 0, 205, 206, 207, 208, 209,
210, 211, 212, 0, 213, 214, 215, 0, 0, 0,
0, 0, 0, 0, 216, 217, 0, 218, 219, 0,
220, 221, 222, 453, 454, 0, 455, 456, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 457, 458,
230, 0, 231, 232, 233, 234, 459, 0, 235, 0,
236, 237, 238, 239, 0, 240, 241, 0, 242, 243,
244, 245, 246, 247, 0, 0, 248, 249, 0, 0,
0, 0, 0, 0, 0, 250, 251, 252, 253, 254,
255, 460, 461, 256, 0, 257, 0, 258, 259, 260,
261, 262, 0, 263, 264, 265, 0, 0, 266, 267,
268, 269, 270, 0, 271, 272, 273, 0, 274, 275,
0, 276, 277, 278, 279, 462, 280, 281, 282, 463,
0, 283, 0, 284, 464, 285, 0, 286, 0, 287,
0, 0, 0, 288, 289, 290, 0, 291, 465, 0,
292, 0, 293, 294, 295, 296, 297, 0, 298, 299,
300, 0, 301, 302, 303, 304, 305, 306, 0, 307,
0, 466, 308, 309, 310, 311, 467, 468, 0, 469,
0, 312, 0, 0, 313, 0, 314, 315, 316, 317,
318, 319, 320, 0, 470, 0, 321, 0, 0, 322,
323, 324, 0, 0, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, 336, 471, 0, 472, 337,
338, 473, 0, 339, 340, 0, 341, 0, 474, 342,
475, 343, 344, 345, 0, 346, 0, 0, 3881, 348,
349, 0, 0, 476, 0, 0, 0, 477, 350, 351,
352, 353, 354, 355, 356, 0, 357, 478, 358, 479,
361, 359, 360, 0, 362, 363, 364, 365, 366, 367,
368, 480, 369, 370, 371, 372, 0, 373, 374, 375,
376, 377, 378, 379, 380, 381, 382, 0, 383, 384,
0, 385, 386, 481, 387, 388, 389, 390, 391, 392,
393, 394, 0, 395, 396, 397, 398, 399, 0, 400,
482, 401, 402, 0, 403, 483, 0, 0, 404, 405,
406, 407, 408, 409, 410, 411, 412, 413, 484, 0,
414, 415, 0, 416, 417, 418, 419, 420, 421, 0,
485, 486, 0, 0, 422, 487, 423, 488, 0, 424,
425, 426, 0, 427, 428, 429, 0, 0, 430, 431,
432, 433, 434, 0, 0, 435, 436, 437, 438, 439,
489, 490, 0, 440, 0, 441, 442, 443, 0, 0,
444, 0, 0, 445, 446, 447, 448, 449, 491, 492,
493, 494, 495, 496, 497, 498, 499, 450, 451, 452,
0, 0, 0, 741, 739, 740, 0, 733, 734, 735,
736, 737, 738, 202, 0, 0, 0, 0, 731, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 2473, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
2474, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 0,
0, 0, 741, 739, 740, 0, 733, 734, 735, 736,
737, 738, 202, 0, 0, 0, 0, 731, 0, 0,
0, 0, 0, 205, 206, 207, 208, 209, 210, 211,
212, 0, 213, 214, 215, 0, 0, 0, 0, 0,
0, 0, 216, 217, 0, 218, 219, 0, 220, 221,
222, 453, 454, 0, 455, 456, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 457, 458, 230, 0,
231, 1286, 233, 234, 459, 0, 235, 0, 236, 237,
238, 239, 0, 240, 241, 0, 242, 243, 244, 245,
246, 247, 0, 0, 248, 249, 0, 0, 0, 0,
0, 0, 0, 250, 251, 252, 253, 254, 255, 460,
461, 256, 0, 257, 0, 258, 259, 260, 261, 262,
0, 263, 264, 265, 0, 0, 266, 267, 268, 269,
270, 0, 271, 272, 273, 0, 274, 275, 0, 276,
277, 278, 279, 462, 280, 281, 282, 463, 0, 1287,
0, 284, 464, 285, 0, 286, 0, 287, 0, 0,
0, 288, 289, 290, 0, 291, 465, 0, 292, 0,
293, 294, 295, 296, 297, 0, 298, 299, 300, 0,
301, 302, 303, 304, 305, 306, 0, 307, 0, 466,
308, 309, 310, 311, 467, 468, 0, 469, 0, 312,
0, 0, 313, 0, 314, 315, 316, 317, 318, 319,
320, 0, 470, 0, 321, 0, 0, 322, 323, 324,
0, 0, 325, 326, 327, 328, 329, 330, 331, 332,
333, 334, 335, 336, 471, 0, 472, 337, 338, 473,
0, 339, 340, 0, 341, 0, 474, 342, 475, 343,
344, 345, 0, 346, 0, 0, 347, 348, 349, 0,
0, 476, 0, 0, 0, 477, 350, 351, 352, 353,
354, 355, 356, 0, 357, 478, 358, 479, 361, 359,
360, 0, 362, 363, 364, 365, 366, 367, 368, 480,
369, 370, 371, 372, 0, 373, 374, 375, 376, 377,
378, 379, 380, 381, 382, 0, 383, 384, 0, 385,
386, 481, 387, 388, 389, 390, 391, 392, 393, 394,
0, 395, 396, 397, 398, 399, 0, 400, 482, 401,
402, 0, 403, 483, 0, 0, 404, 405, 406, 407,
408, 409, 410, 411, 412, 413, 484, 0, 414, 415,
0, 416, 417, 418, 419, 420, 421, 0, 485, 486,
0, 0, 422, 487, 423, 488, 0, 424, 425, 426,
0, 427, 428, 429, 0, 0, 430, 431, 432, 433,
434, 0, 0, 435, 436, 437, 438, 439, 489, 490,
0, 440, 0, 441, 442, 443, 0, 0, 444, 0,
0, 445, 446, 447, 448, 449, 491, 492, 493, 494,
495, 496, 497, 498, 499, 450, 451, 452, 0, 0,
0, 741, 739, 740, 0, 733, 734, 735, 736, 737,
738, 202, 0, 0, 0, 0, 731, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
913, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 914, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 916, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 0, 0, 0,
741, 739, 740, 0, 733, 734, 735, 736, 737, 738,
202, 0, 0, 0, 0, 731, 0, 0, 0, 0,
0, 205, 206, 207, 208, 209, 210, 211, 212, 0,
213, 214, 215, 0, 0, 0, 0, 0, 0, 0,
216, 217, 0, 218, 219, 0, 220, 221, 222, 453,
454, 0, 455, 456, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 457, 458, 230, 0, 231, 871,
233, 234, 459, 0, 235, 0, 236, 237, 238, 239,
0, 240, 241, 0, 242, 243, 244, 245, 246, 247,
0, 0, 248, 249, 0, 0, 0, 0, 0, 0,
0, 250, 251, 252, 253, 254, 255, 460, 461, 256,
0, 257, 0, 258, 259, 260, 261, 262, 0, 263,
264, 265, 0, 0, 266, 267, 268, 269, 270, 0,
271, 272, 273, 0, 274, 275, 0, 276, 277, 278,
279, 462, 280, 281, 282, 463, 0, 872, 0, 284,
464, 285, 0, 286, 0, 287, 0, 0, 0, 288,
289, 290, 0, 291, 465, 0, 292, 0, 293, 294,
295, 296, 297, 0, 298, 299, 300, 0, 301, 302,
303, 304, 305, 306, 0, 307, 0, 466, 308, 309,
310, 311, 467, 468, 0, 469, 0, 312, 0, 0,
313, 0, 314, 315, 316, 317, 318, 319, 320, 0,
470, 0, 321, 0, 0, 322, 323, 324, 0, 0,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 471, 0, 472, 337, 338, 473, 0, 339,
340, 0, 341, 0, 474, 342, 475, 343, 344, 345,
0, 346, 0, 0, 347, 348, 349, 0, 0, 476,
0, 0, 0, 477, 350, 351, 352, 353, 354, 355,
356, 0, 357, 478, 358, 479, 361, 359, 360, 0,
362, 363, 364, 365, 366, 367, 368, 480, 369, 370,
371, 372, 0, 373, 374, 375, 376, 377, 378, 379,
380, 381, 382, 0, 383, 384, 0, 385, 386, 481,
387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
396, 397, 398, 399, 0, 400, 482, 401, 402, 0,
403, 483, 0, 0, 404, 405, 406, 407, 408, 409,
410, 411, 412, 413, 484, 0, 414, 415, 0, 416,
417, 418, 419, 420, 421, 0, 485, 486, 0, 0,
422, 487, 423, 488, 0, 424, 425, 426, 0, 427,
428, 429, 0, 0, 430, 431, 432, 433, 434, 0,
0, 435, 436, 437, 438, 439, 489, 490, 0, 440,
0, 441, 442, 443, 0, 0, 444, 0, 0, 445,
446, 447, 448, 449, 491, 492, 493, 494, 495, 496,
497, 498, 499, 450, 451, 452, 0, 0, 0, 741,
739, 740, 0, 733, 734, 735, 736, 737, 738, 202,
0, 0, 0, 0, 731, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 727, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 726, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 0, 0, 747, 741, 739,
740, 0, 733, 734, 735, 736, 737, 738, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 750, 220, 221, 222, 453, 454, 751, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 752, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 753, 248,
249, 0, 0, 0, 754, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 755, 0, 756, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
757, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 758, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 759, 760, 313, 761, 314,
315, 316, 317, 318, 319, 320, 0, 470, 762, 321,
763, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
764, 472, 337, 338, 473, 0, 339, 340, 765, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 766, 767, 768,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 769, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 770, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 771, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 747, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 453, 454, 751, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 249, 0, 0, 0,
754, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 924, 757, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 470, 762, 321, 763, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 764, 472, 337, 338,
473, 0, 339, 340, 765, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 766, 767, 768, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 770, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 771, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 747,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 750, 220, 221, 222, 453, 454,
751, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 752,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
753, 248, 249, 0, 0, 0, 754, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 755, 0, 756, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 922, 757, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 758, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 759, 760, 313,
761, 314, 315, 316, 317, 318, 319, 320, 0, 470,
762, 321, 763, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 764, 472, 337, 338, 473, 0, 339, 340,
765, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 766,
767, 768, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 769, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 770, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 771,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 165, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 167, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 942, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 164, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 0, 0, 0, 0, 0, 0, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 163, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 3225, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 0, 0, 0, 0, 0, 0, 0,
202, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1030, 205, 206, 207, 208, 209, 210, 211, 212, 0,
213, 214, 215, 0, 0, 0, 0, 0, 0, 0,
216, 217, 0, 218, 219, 0, 220, 221, 222, 453,
454, 0, 455, 456, 0, 223, 224, 225, 226, 227,
0, 0, 228, 229, 457, 458, 230, 0, 231, 232,
233, 234, 459, 0, 235, 0, 236, 237, 238, 239,
0, 240, 241, 0, 242, 243, 244, 245, 246, 247,
0, 0, 248, 249, 0, 0, 0, 0, 0, 0,
0, 250, 251, 252, 253, 254, 255, 460, 461, 256,
0, 257, 0, 258, 259, 260, 261, 262, 0, 263,
264, 265, 0, 0, 266, 267, 268, 269, 270, 0,
271, 272, 273, 0, 274, 275, 0, 276, 277, 278,
279, 462, 280, 281, 282, 463, 0, 283, 0, 284,
464, 285, 0, 286, 0, 287, 0, 0, 0, 288,
289, 290, 0, 291, 465, 0, 292, 0, 293, 294,
295, 296, 297, 0, 298, 299, 300, 0, 301, 302,
303, 304, 305, 306, 0, 307, 0, 466, 308, 309,
310, 311, 467, 468, 0, 469, 0, 312, 0, 0,
313, 0, 314, 315, 316, 317, 318, 319, 320, 0,
470, 0, 321, 0, 0, 322, 323, 324, 0, 0,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 471, 0, 472, 337, 338, 473, 0, 339,
340, 0, 341, 0, 474, 342, 475, 343, 344, 345,
0, 346, 0, 0, 347, 348, 349, 0, 0, 476,
0, 0, 0, 477, 350, 351, 352, 353, 354, 355,
356, 0, 357, 478, 358, 479, 361, 359, 360, 0,
362, 363, 364, 365, 366, 367, 368, 480, 369, 370,
371, 372, 0, 373, 374, 375, 376, 377, 378, 379,
380, 381, 382, 0, 383, 384, 0, 385, 386, 481,
387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
396, 397, 398, 399, 0, 400, 482, 401, 402, 0,
403, 483, 0, 0, 404, 405, 406, 407, 408, 409,
410, 411, 412, 413, 484, 0, 414, 415, 0, 416,
417, 418, 419, 420, 421, 0, 485, 486, 0, 0,
422, 487, 423, 488, 0, 424, 425, 426, 0, 427,
428, 429, 0, 0, 430, 431, 432, 433, 434, 0,
0, 435, 436, 437, 438, 439, 489, 490, 0, 440,
0, 441, 442, 443, 0, 0, 444, 0, 0, 445,
446, 447, 448, 449, 491, 492, 493, 494, 495, 496,
497, 498, 499, 450, 451, 452, 0, 0, 0, 0,
0, 0, 0, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 2658, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 0,
0, 0, 0, 0, 0, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 3608, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 0, 0, 0, 0, 0, 0, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 3314, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 0, 0, 0, 0, 0, 0, 1413,
0, 0, 0, 0, 0, 0, 0, 0, 0, 2094,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 750, 220, 221, 222, 0, 1400,
751, 1415, 1406, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 1417, 1416, 230, 0, 231, 232, 233,
234, 0, 0, 235, 0, 236, 237, 238, 239, 752,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
753, 248, 249, 0, 0, 0, 754, 0, 0, 0,
250, 251, 252, 253, 254, 255, 1404, 1403, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 1106, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
0, 280, 281, 282, 0, 0, 283, 0, 284, 1402,
285, 0, 286, 0, 287, 755, 0, 756, 288, 289,
290, 0, 291, 0, 0, 292, 0, 293, 294, 295,
296, 297, 757, 298, 299, 300, 1913, 301, 302, 303,
304, 305, 306, 0, 307, 758, 1915, 308, 309, 310,
311, 1397, 1398, 0, 1325, 0, 312, 759, 760, 313,
761, 314, 315, 316, 317, 318, 319, 320, 0, 0,
762, 321, 763, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 1419, 764, 1420, 337, 338, 0, 0, 339, 340,
765, 341, 0, 0, 342, 1405, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 1914, 766,
767, 768, 0, 350, 351, 352, 353, 354, 355, 356,
0, 357, 0, 358, 0, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 1401, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 769, 385, 386, 0, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 1919, 401, 402, 770, 403,
1399, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 0, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 1412, 1411, 0, 0, 422,
0, 423, 0, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 0, 1418, 1916, 440, 771,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 0, 1413, 0, 0, 0, 0, 0,
0, 0, 450, 451, 452, 205, 206, 207, 208, 209,
210, 211, 212, 0, 213, 214, 215, 0, 0, 0,
0, 0, 2644, 0, 216, 217, 0, 218, 219, 750,
220, 221, 222, 0, 1400, 751, 1415, 1406, 0, 223,
224, 225, 226, 227, 0, 0, 228, 229, 1417, 1416,
230, 0, 231, 232, 233, 234, 0, 0, 235, 0,
236, 237, 238, 239, 752, 240, 241, 0, 242, 243,
244, 245, 246, 247, 0, 753, 248, 249, 0, 0,
0, 754, 0, 0, 0, 250, 251, 252, 253, 254,
255, 1404, 1403, 256, 0, 257, 0, 258, 259, 260,
261, 262, 0, 263, 264, 265, 0, 0, 266, 267,
1106, 269, 270, 0, 271, 272, 273, 0, 274, 275,
0, 276, 277, 278, 279, 0, 280, 281, 282, 0,
0, 283, 0, 284, 1402, 285, 0, 286, 0, 287,
755, 0, 756, 288, 289, 290, 0, 291, 0, 0,
292, 0, 293, 294, 295, 296, 297, 757, 298, 299,
300, 1913, 301, 302, 303, 304, 305, 306, 0, 307,
758, 1915, 308, 309, 310, 311, 1397, 1398, 0, 1325,
0, 312, 759, 760, 313, 761, 314, 315, 316, 317,
318, 319, 320, 0, 0, 762, 321, 763, 0, 322,
323, 324, 0, 0, 325, 326, 327, 328, 329, 330,
331, 332, 333, 334, 335, 336, 1419, 764, 1420, 337,
338, 0, 0, 339, 340, 765, 341, 0, 0, 342,
1405, 343, 344, 345, 0, 346, 0, 0, 347, 348,
349, 0, 0, 1914, 766, 767, 768, 0, 350, 351,
352, 353, 354, 355, 356, 0, 357, 0, 358, 0,
361, 359, 360, 0, 362, 363, 364, 365, 366, 367,
368, 1401, 369, 370, 371, 372, 0, 373, 374, 375,
376, 377, 378, 379, 380, 381, 382, 0, 383, 384,
769, 385, 386, 0, 387, 388, 389, 390, 391, 392,
393, 394, 0, 395, 396, 397, 398, 399, 0, 400,
1919, 401, 402, 770, 403, 1399, 0, 0, 404, 405,
406, 407, 408, 409, 410, 411, 412, 413, 0, 0,
414, 415, 0, 416, 417, 418, 419, 420, 421, 0,
1412, 1411, 0, 0, 422, 0, 423, 0, 0, 424,
425, 426, 0, 427, 428, 429, 0, 0, 430, 431,
432, 433, 434, 0, 0, 435, 436, 437, 438, 439,
0, 1418, 1916, 440, 771, 441, 442, 443, 0, 0,
444, 0, 0, 445, 446, 447, 448, 449, 0, 202,
1275, 564, 0, 0, 0, 624, 0, 450, 451, 452,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 1908, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 1315,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 1311, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 1312, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 1310, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 1275, 564, 0, 0,
0, 624, 622, 1276, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 1306, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 1311, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 1312, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 1310,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 622, 1276,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 0, 0, 0,
0, 0, 0, 202, 1275, 564, 0, 0, 0, 624,
0, 0, 0, 1134, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 1311,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 1312, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 1310, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 624, 622, 1276, 0, 0,
205, 613, 207, 208, 209, 210, 211, 212, 616, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 618, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 611, 464,
285, 0, 286, 0, 617, 0, 619, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 620, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 612, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 609, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 610,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 614, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 622, 623, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
3757, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 668, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 1802, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
1800, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 1805, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 1806, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
2625, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 1804, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
1803, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 2044, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 0, 1400, 751, 1415, 1406, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 1417, 1416, 230,
0, 231, 232, 233, 234, 0, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 249, 0, 0, 0,
754, 0, 0, 0, 250, 251, 252, 253, 254, 255,
1404, 1403, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 1106,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 0, 280, 281, 282, 0, 0,
283, 0, 284, 1402, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 0, 0, 292,
0, 293, 294, 295, 296, 297, 757, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
0, 308, 309, 310, 311, 1397, 1398, 0, 1325, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 0, 762, 321, 763, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 1419, 764, 1420, 337, 338,
0, 0, 339, 340, 765, 341, 0, 0, 342, 1405,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 0, 766, 767, 768, 0, 350, 351, 352,
353, 354, 355, 356, 0, 357, 0, 358, 0, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
1401, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 0, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 1389,
401, 402, 770, 403, 1399, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 0, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 1412,
1411, 0, 0, 422, 0, 423, 0, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 0,
1418, 0, 440, 771, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 0, 0, 1413,
0, 0, 0, 0, 0, 0, 450, 451, 452, 0,
205, 206, 207, 208, 209, 210, 211, 212, 1924, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 750, 220, 221, 222, 0, 1400,
751, 1415, 1406, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 1417, 1416, 230, 0, 231, 232, 233,
234, 0, 0, 235, 0, 236, 237, 238, 239, 752,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
753, 248, 249, 0, 0, 0, 754, 0, 0, 0,
250, 251, 252, 253, 254, 255, 1404, 1403, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 1106, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
0, 280, 281, 282, 0, 0, 283, 0, 284, 1402,
285, 0, 286, 0, 287, 755, 0, 756, 288, 289,
290, 0, 291, 0, 0, 292, 0, 293, 294, 295,
296, 297, 757, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 758, 0, 308, 309, 310,
311, 1397, 1398, 0, 1325, 0, 312, 759, 760, 313,
761, 314, 315, 316, 317, 318, 319, 320, 0, 0,
762, 321, 763, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 1419, 764, 1420, 337, 338, 0, 0, 339, 340,
765, 341, 0, 0, 342, 1405, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 0, 766,
767, 768, 0, 350, 351, 352, 353, 354, 355, 356,
0, 357, 0, 358, 0, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 1401, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 769, 385, 386, 0, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 1389, 401, 402, 770, 403,
1399, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 0, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 1412, 1411, 0, 0, 422,
0, 423, 0, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 0, 1418, 0, 440, 771,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 0, 0, 202, 0, 0, 0, 0,
0, 0, 450, 451, 452, 0, 205, 206, 207, 208,
209, 210, 211, 212, 1924, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 1802, 231, 232, 233, 234, 459, 0, 235,
1797, 236, 237, 238, 239, 0, 240, 241, 1800, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 1805, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 1806,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 1804, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 1803, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 1802, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 1800, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 1805, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 1806, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
1804, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 1803, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 628, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 632, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 2508,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 631,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 630, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 651,
211, 212, 628, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 632, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 649, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 631, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 630, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 564, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 1311, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 1312, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 1310, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 628, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 632, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 631, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 630, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
1512, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 1505, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 1506, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 1503, 287, 0, 0, 0,
1504, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 1507, 1508, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 1509, 391, 392, 393, 394, 0,
1502, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 1501,
416, 1510, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 1511, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 632, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 631,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 630, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 159, 158, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 941, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 1781,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 1782, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 2428, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 2429, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
2420, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
2421, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
159, 158, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 564, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 1300, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 2760, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 3884, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 3225,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 3580, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 3570, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 3566,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 3228, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 564, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 2235, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 2234, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 2237, 416, 417, 2233, 419,
2232, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 2236, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 704, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 564, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 1443, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 887, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
821, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 819, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 509,
229, 457, 458, 818, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 511, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 512, 386, 481, 387, 388, 389,
510, 391, 392, 393, 394, 0, 395, 396, 397, 398,
816, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 507, 486, 0, 0, 508, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
513, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 681, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 680, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 678,
486, 0, 0, 679, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 676, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 675, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 673, 486, 0, 0, 674,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 551, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 550, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
199, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 1348, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 2459, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 2415, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 2413, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 2107,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 509, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 511, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
512, 386, 481, 387, 388, 389, 510, 391, 392, 393,
394, 0, 395, 396, 397, 398, 816, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 1934, 418, 419, 420, 421, 0, 507,
486, 0, 0, 508, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 513, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 509, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
511, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 512, 386, 481, 387,
388, 389, 1898, 391, 392, 393, 394, 0, 395, 396,
397, 398, 816, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 507, 486, 0, 0, 508,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 513, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 509, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 511, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 512, 386, 481, 387, 388, 389, 510, 391,
392, 393, 394, 0, 395, 396, 397, 398, 816, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 507, 486, 0, 0, 508, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 513, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 1538, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 1456,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 1454, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 1435, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 0, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 1361, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 930, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 928,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 918, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 911, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 909, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 905, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 902,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 899, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 900, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 896, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 389, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 862, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 422, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 228, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 242, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 324, 0,
0, 325, 326, 849, 328, 329, 330, 331, 332, 333,
334, 335, 336, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 385, 386,
481, 387, 388, 389, 390, 391, 392, 393, 394, 0,
395, 396, 397, 398, 399, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 485, 486, 0,
0, 422, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 449, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 202, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 0, 220, 221, 222, 453, 454, 0, 455,
456, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 457, 458, 230, 0, 231, 232, 233, 234, 459,
0, 235, 0, 236, 237, 238, 239, 0, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 0, 248,
249, 0, 0, 0, 0, 0, 0, 0, 250, 251,
252, 253, 254, 255, 460, 461, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 268, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 462, 280,
281, 282, 463, 0, 283, 0, 284, 464, 285, 0,
286, 0, 287, 0, 0, 0, 288, 289, 290, 0,
291, 465, 0, 292, 0, 293, 294, 295, 296, 297,
0, 298, 299, 300, 0, 301, 302, 303, 304, 305,
306, 0, 307, 0, 466, 308, 309, 310, 311, 467,
468, 0, 469, 0, 312, 0, 0, 313, 0, 314,
315, 316, 317, 318, 319, 320, 0, 470, 0, 321,
0, 0, 322, 323, 324, 0, 0, 325, 326, 712,
328, 329, 330, 331, 332, 333, 334, 335, 336, 471,
0, 472, 337, 338, 473, 0, 339, 340, 0, 341,
0, 474, 342, 475, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 476, 0, 0, 0,
477, 350, 351, 352, 353, 354, 355, 356, 0, 357,
478, 358, 479, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 480, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 0, 385, 386, 481, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 482, 401, 402, 0, 403, 483, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 484, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 485, 486, 0, 0, 422, 487, 423,
488, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 489, 490, 0, 440, 0, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 491, 492, 493, 494, 495, 496, 497, 498, 499,
450, 451, 452, 202, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 0, 220,
221, 222, 453, 454, 0, 455, 456, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 457, 458, 230,
0, 231, 232, 233, 234, 459, 0, 235, 0, 236,
237, 238, 239, 0, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 0, 248, 249, 0, 0, 0,
0, 0, 0, 0, 250, 251, 252, 253, 254, 255,
460, 461, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 268,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 462, 280, 281, 282, 463, 0,
283, 0, 284, 464, 285, 0, 286, 0, 287, 0,
0, 0, 288, 289, 290, 0, 291, 465, 0, 292,
0, 293, 294, 295, 296, 297, 0, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 0,
466, 308, 309, 310, 311, 467, 468, 0, 469, 0,
312, 0, 0, 313, 0, 314, 315, 316, 317, 318,
319, 320, 0, 470, 0, 321, 0, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 471, 0, 472, 337, 338,
473, 0, 339, 340, 0, 341, 0, 474, 342, 475,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 476, 0, 0, 0, 477, 350, 351, 352,
353, 354, 355, 356, 0, 357, 478, 358, 479, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
480, 369, 370, 695, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 0,
385, 386, 481, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 482,
401, 402, 0, 403, 483, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 484, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 485,
486, 0, 0, 422, 487, 423, 488, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 489,
490, 0, 440, 0, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 491, 492, 493,
494, 495, 496, 497, 498, 499, 450, 451, 452, 202,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
205, 206, 207, 208, 209, 210, 211, 212, 0, 213,
214, 215, 0, 0, 0, 0, 0, 0, 0, 216,
217, 0, 218, 219, 0, 220, 221, 222, 453, 454,
0, 455, 456, 0, 223, 224, 225, 226, 227, 0,
0, 228, 229, 457, 458, 230, 0, 231, 232, 233,
234, 459, 0, 235, 0, 236, 237, 238, 239, 0,
240, 241, 0, 242, 243, 244, 245, 246, 247, 0,
0, 248, 249, 0, 0, 0, 0, 0, 0, 0,
250, 251, 252, 253, 254, 255, 460, 461, 256, 0,
257, 0, 258, 259, 260, 261, 262, 0, 263, 264,
265, 0, 0, 266, 267, 268, 269, 270, 0, 271,
272, 273, 0, 274, 275, 0, 276, 277, 278, 279,
462, 280, 281, 282, 463, 0, 283, 0, 284, 464,
285, 0, 286, 0, 287, 0, 0, 0, 288, 289,
290, 0, 291, 465, 0, 292, 0, 293, 294, 295,
296, 297, 0, 298, 299, 300, 0, 301, 302, 303,
304, 305, 306, 0, 307, 0, 466, 308, 309, 310,
311, 467, 468, 0, 469, 0, 312, 0, 0, 313,
0, 314, 315, 316, 317, 318, 319, 320, 0, 470,
0, 321, 0, 0, 322, 323, 324, 0, 0, 325,
326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
336, 471, 0, 472, 337, 338, 473, 0, 339, 340,
0, 341, 0, 474, 342, 475, 343, 344, 345, 0,
346, 0, 0, 347, 348, 349, 0, 0, 476, 0,
0, 0, 477, 350, 351, 352, 353, 354, 355, 356,
0, 357, 478, 358, 479, 361, 359, 360, 0, 362,
363, 364, 365, 366, 367, 368, 480, 369, 370, 371,
372, 0, 373, 374, 375, 376, 377, 378, 379, 380,
381, 382, 0, 383, 384, 0, 385, 386, 481, 387,
388, 664, 390, 391, 392, 393, 394, 0, 395, 396,
397, 398, 399, 0, 400, 482, 401, 402, 0, 403,
483, 0, 0, 404, 405, 406, 407, 408, 409, 410,
411, 412, 413, 484, 0, 414, 415, 0, 416, 417,
418, 419, 420, 421, 0, 485, 486, 0, 0, 422,
487, 423, 488, 0, 424, 425, 426, 0, 427, 428,
429, 0, 0, 430, 431, 432, 433, 434, 0, 0,
435, 436, 437, 438, 439, 489, 490, 0, 440, 0,
441, 442, 443, 0, 0, 444, 0, 0, 445, 446,
447, 448, 449, 491, 492, 493, 494, 495, 496, 497,
498, 499, 450, 451, 452, 202, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 205, 206, 207, 208,
209, 210, 211, 212, 0, 213, 214, 215, 0, 0,
0, 0, 0, 0, 0, 216, 217, 0, 218, 219,
0, 220, 221, 222, 453, 454, 0, 455, 456, 0,
223, 224, 225, 226, 227, 0, 0, 228, 229, 457,
458, 230, 0, 231, 232, 233, 234, 459, 0, 235,
0, 236, 237, 238, 239, 0, 240, 241, 0, 242,
243, 244, 245, 246, 247, 0, 0, 248, 249, 0,
0, 0, 0, 0, 0, 0, 250, 251, 252, 253,
254, 255, 460, 461, 256, 0, 257, 0, 258, 259,
260, 261, 262, 0, 263, 264, 265, 0, 0, 266,
267, 268, 269, 270, 0, 271, 272, 273, 0, 274,
275, 0, 276, 277, 278, 279, 462, 280, 281, 282,
463, 0, 283, 0, 284, 464, 285, 0, 286, 0,
287, 0, 0, 0, 288, 289, 290, 0, 291, 465,
0, 292, 0, 293, 294, 295, 296, 297, 0, 298,
299, 300, 0, 301, 302, 303, 304, 305, 306, 0,
307, 0, 466, 308, 309, 310, 311, 467, 468, 0,
469, 0, 312, 0, 0, 313, 0, 314, 315, 316,
317, 318, 319, 320, 0, 470, 0, 321, 0, 0,
322, 323, 324, 0, 0, 325, 326, 327, 328, 329,
330, 331, 332, 333, 334, 335, 336, 471, 0, 472,
337, 338, 473, 0, 339, 340, 0, 341, 0, 474,
342, 475, 343, 344, 345, 0, 346, 0, 0, 347,
348, 349, 0, 0, 476, 0, 0, 0, 477, 350,
351, 352, 353, 354, 355, 356, 0, 357, 478, 358,
479, 361, 359, 360, 0, 362, 363, 364, 365, 366,
367, 368, 480, 369, 370, 371, 372, 0, 373, 374,
375, 376, 377, 378, 379, 380, 381, 382, 0, 383,
384, 0, 385, 386, 481, 387, 388, 389, 390, 391,
392, 393, 394, 0, 395, 396, 397, 398, 399, 0,
400, 482, 401, 402, 0, 403, 483, 0, 0, 404,
405, 406, 407, 408, 409, 410, 411, 412, 413, 484,
0, 414, 415, 0, 416, 417, 418, 419, 420, 421,
0, 485, 486, 0, 0, 640, 487, 423, 488, 0,
424, 425, 426, 0, 427, 428, 429, 0, 0, 430,
431, 432, 433, 434, 0, 0, 435, 436, 437, 438,
439, 489, 490, 0, 440, 0, 441, 442, 443, 0,
0, 444, 0, 0, 445, 446, 447, 448, 449, 491,
492, 493, 494, 495, 496, 497, 498, 499, 450, 451,
452, 202, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 205, 206, 207, 208, 209, 210, 211, 212,
0, 213, 214, 215, 0, 0, 0, 0, 0, 0,
0, 216, 217, 0, 218, 219, 0, 220, 221, 222,
453, 454, 0, 455, 456, 0, 223, 224, 225, 226,
227, 0, 0, 509, 229, 457, 458, 230, 0, 231,
232, 233, 234, 459, 0, 235, 0, 236, 237, 238,
239, 0, 240, 241, 0, 505, 243, 244, 245, 246,
247, 0, 0, 248, 249, 0, 0, 0, 0, 0,
0, 0, 250, 251, 252, 253, 254, 255, 460, 461,
256, 0, 257, 0, 258, 259, 260, 261, 262, 0,
263, 264, 265, 0, 0, 266, 267, 268, 269, 270,
0, 271, 272, 273, 0, 274, 275, 0, 276, 277,
278, 279, 462, 280, 281, 282, 463, 0, 283, 0,
284, 464, 285, 0, 286, 0, 287, 0, 0, 0,
288, 289, 290, 0, 291, 465, 0, 292, 0, 293,
294, 295, 296, 297, 0, 298, 299, 300, 0, 301,
302, 303, 304, 305, 306, 0, 307, 0, 466, 308,
309, 310, 311, 467, 468, 0, 469, 0, 312, 0,
0, 313, 0, 314, 315, 316, 317, 318, 319, 320,
0, 470, 0, 321, 0, 0, 322, 323, 503, 0,
0, 325, 326, 327, 328, 329, 330, 331, 332, 333,
334, 335, 511, 471, 0, 472, 337, 338, 473, 0,
339, 340, 0, 341, 0, 474, 342, 475, 343, 344,
345, 0, 346, 0, 0, 347, 348, 349, 0, 0,
476, 0, 0, 0, 477, 350, 351, 352, 353, 354,
355, 356, 0, 357, 478, 358, 479, 361, 359, 360,
0, 362, 363, 364, 365, 366, 367, 368, 480, 369,
370, 371, 372, 0, 373, 374, 375, 376, 377, 378,
379, 380, 381, 382, 0, 383, 384, 0, 512, 386,
481, 387, 388, 389, 510, 391, 392, 393, 394, 0,
395, 396, 397, 398, 504, 0, 400, 482, 401, 402,
0, 403, 483, 0, 0, 404, 405, 406, 407, 408,
409, 410, 411, 412, 413, 484, 0, 414, 415, 0,
416, 417, 418, 419, 420, 421, 0, 507, 486, 0,
0, 508, 487, 423, 488, 0, 424, 425, 426, 0,
427, 428, 429, 0, 0, 430, 431, 432, 433, 434,
0, 0, 435, 436, 437, 438, 439, 489, 490, 0,
440, 0, 441, 442, 443, 0, 0, 444, 0, 0,
445, 446, 447, 448, 513, 491, 492, 493, 494, 495,
496, 497, 498, 499, 450, 451, 452, 1413, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 205, 206,
207, 208, 209, 210, 211, 212, 0, 213, 214, 215,
0, 0, 0, 0, 0, 0, 0, 216, 217, 0,
218, 219, 750, 220, 221, 222, 0, 1400, 751, 1415,
1406, 0, 223, 224, 225, 226, 227, 0, 0, 228,
229, 1417, 1416, 230, 0, 231, 232, 233, 234, 0,
0, 235, 0, 236, 237, 238, 239, 752, 240, 241,
0, 242, 243, 244, 245, 246, 247, 0, 753, 248,
249, 0, 0, 0, 754, 0, 0, 0, 250, 251,
252, 253, 254, 255, 1404, 1403, 256, 0, 257, 0,
258, 259, 260, 261, 262, 0, 263, 264, 265, 0,
0, 266, 267, 1106, 269, 270, 0, 271, 272, 273,
0, 274, 275, 0, 276, 277, 278, 279, 0, 280,
281, 282, 0, 0, 283, 0, 284, 1402, 285, 0,
286, 0, 287, 755, 0, 756, 288, 289, 290, 0,
291, 0, 0, 292, 0, 293, 294, 295, 296, 297,
757, 298, 299, 300, 1913, 301, 302, 303, 304, 305,
306, 0, 307, 758, 1915, 308, 309, 310, 311, 1397,
1398, 0, 1325, 0, 312, 759, 760, 313, 761, 314,
315, 316, 317, 318, 319, 320, 0, 0, 762, 321,
763, 0, 322, 323, 324, 0, 0, 325, 326, 327,
328, 329, 330, 331, 332, 333, 334, 335, 336, 1419,
764, 1420, 337, 338, 0, 0, 339, 340, 765, 341,
0, 0, 342, 1405, 343, 344, 345, 0, 346, 0,
0, 347, 348, 349, 0, 0, 1914, 766, 767, 768,
0, 350, 351, 352, 353, 354, 355, 356, 0, 357,
0, 358, 0, 361, 359, 360, 0, 362, 363, 364,
365, 366, 367, 368, 1401, 369, 370, 371, 372, 0,
373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
0, 383, 384, 769, 385, 386, 0, 387, 388, 389,
390, 391, 392, 393, 394, 0, 395, 396, 397, 398,
399, 0, 400, 1919, 401, 402, 770, 403, 1399, 0,
0, 404, 405, 406, 407, 408, 409, 410, 411, 412,
413, 0, 0, 414, 415, 0, 416, 417, 418, 419,
420, 421, 0, 1412, 1411, 0, 0, 422, 0, 423,
0, 0, 424, 425, 426, 0, 427, 428, 429, 0,
0, 430, 431, 432, 433, 434, 0, 0, 435, 436,
437, 438, 439, 0, 1418, 1916, 440, 771, 441, 442,
443, 0, 0, 444, 0, 0, 445, 446, 447, 448,
449, 0, 202, 0, 0, 0, 0, 0, 0, 0,
450, 451, 452, 205, 206, 207, 208, 209, 210, 211,
212, 0, 213, 214, 215, 0, 0, 0, 0, 0,
0, 0, 216, 217, 0, 218, 219, 0, 220, 221,
222, 453, 454, 0, 455, 456, 0, 223, 224, 225,
226, 227, 0, 0, 228, 229, 457, 458, 230, 0,
231, 232, 233, 234, 459, 0, 235, 0, 236, 237,
238, 239, 0, 240, 241, 0, 242, 243, 244, 245,
246, 247, 0, 0, 248, 249, 0, 0, 0, 0,
0, 0, 0, 250, 251, 252, 253, 254, 255, 460,
461, 256, 0, 257, 0, 258, 259, 260, 261, 262,
0, 263, 264, 265, 0, 0, 266, 267, 268, 269,
270, 0, 271, 272, 273, 0, 274, 275, 0, 276,
277, 278, 279, 462, 280, 281, 282, 463, 0, 283,
0, 284, 464, 285, 0, 286, 0, 287, 0, 0,
0, 288, 289, 290, 0, 291, 465, 0, 292, 0,
293, 294, 295, 296, 297, 0, 298, 299, 300, 0,
301, 302, 303, 304, 305, 306, 0, 307, 0, 466,
308, 309, 310, 311, 467, 468, 0, 469, 0, 312,
0, 0, 313, 0, 314, 315, 316, 317, 318, 319,
320, 0, 470, 0, 321, 0, 0, 322, 323, 324,
0, 0, 325, 326, 327, 328, 329, 330, 331, 332,
333, 334, 335, 336, 471, 0, 472, 337, 338, 473,
0, 339, 340, 0, 341, 0, 474, 342, 475, 343,
344, 345, 0, 346, 0, 0, 347, 348, 349, 0,
0, 476, 0, 0, 0, 477, 350, 351, 352, 353,
0, 355, 356, 0, 357, 478, 358, 479, 361, 359,
360, 0, 362, 363, 364, 365, 366, 0, 368, 480,
369, 370, 371, 372, 0, 373, 374, 375, 376, 377,
378, 379, 380, 381, 382, 0, 383, 384, 0, 385,
386, 481, 0, 388, 389, 390, 391, 392, 393, 394,
0, 395, 396, 397, 398, 399, 0, 400, 482, 401,
402, 0, 403, 483, 0, 0, 404, 405, 406, 407,
408, 409, 410, 411, 412, 413, 484, 0, 414, 415,
0, 416, 417, 418, 419, 420, 421, 0, 485, 486,
0, 0, 422, 487, 423, 488, 0, 424, 425, 426,
0, 427, 428, 429, 0, 0, 430, 431, 432, 433,
434, 0, 0, 435, 436, 437, 438, 439, 489, 490,
0, 440, 0, 441, 442, 443, 0, 0, 444, 0,
0, 445, 446, 447, 448, 449, 491, 492, 493, 494,
495, 496, 497, 498, 499, 450, 451, 452, 1413, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 205,
206, 207, 208, 209, 210, 211, 212, 0, 213, 214,
215, 0, 0, 0, 0, 0, 0, 0, 216, 217,
0, 218, 219, 750, 220, 221, 222, 0, 1400, 751,
1415, 1406, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 1417, 1416, 230, 0, 231, 232, 233, 234,
0, 0, 235, 0, 236, 237, 238, 239, 752, 240,
241, 0, 242, 243, 244, 245, 246, 247, 0, 753,
248, 249, 0, 0, 0, 754, 0, 0, 0, 250,
251, 252, 253, 254, 255, 1404, 1403, 256, 0, 257,
0, 258, 259, 260, 261, 262, 0, 263, 264, 265,
0, 0, 266, 267, 1106, 269, 270, 0, 271, 272,
273, 0, 274, 275, 0, 276, 277, 278, 279, 0,
280, 281, 282, 0, 0, 283, 0, 284, 1402, 285,
0, 286, 0, 287, 755, 0, 756, 288, 289, 290,
0, 291, 0, 0, 292, 0, 293, 294, 295, 296,
297, 757, 298, 299, 300, 0, 301, 302, 303, 304,
305, 306, 0, 307, 758, 0, 308, 309, 310, 311,
1397, 1398, 0, 1325, 0, 312, 759, 760, 313, 761,
314, 315, 316, 317, 318, 319, 320, 0, 0, 762,
321, 763, 0, 322, 323, 324, 0, 0, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
1419, 764, 1420, 337, 338, 0, 0, 339, 340, 765,
341, 1901, 0, 342, 1405, 343, 344, 345, 0, 346,
0, 0, 347, 348, 349, 0, 0, 0, 766, 767,
768, 0, 350, 351, 352, 353, 354, 355, 356, 0,
357, 0, 358, 0, 361, 359, 360, 0, 362, 363,
364, 365, 366, 367, 368, 1401, 369, 370, 371, 372,
0, 373, 374, 375, 376, 377, 378, 379, 380, 381,
382, 0, 383, 384, 769, 385, 386, 0, 387, 388,
389, 390, 391, 392, 393, 394, 0, 395, 396, 397,
398, 399, 0, 400, 1919, 401, 402, 770, 403, 1399,
0, 0, 404, 405, 406, 407, 408, 409, 410, 411,
412, 413, 0, 0, 414, 415, 3116, 416, 417, 418,
419, 420, 421, 0, 1412, 1411, 0, 0, 422, 0,
423, 0, 0, 424, 425, 426, 0, 427, 428, 429,
0, 0, 430, 431, 432, 433, 434, 0, 0, 435,
436, 437, 438, 439, 0, 1418, 0, 440, 771, 441,
442, 443, 0, 0, 444, 0, 0, 445, 446, 447,
448, 449, 0, 1413, 0, 0, 0, 0, 0, 0,
0, 450, 451, 452, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 0, 1400, 751, 1415, 1406, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 1417, 1416, 230,
0, 231, 232, 233, 234, 0, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 249, 0, 0, 0,
754, 0, 0, 0, 250, 251, 252, 253, 254, 255,
1404, 1403, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 1106,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 0, 280, 281, 282, 0, 0,
283, 0, 284, 1402, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 0, 0, 292,
0, 293, 294, 295, 296, 297, 757, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
0, 308, 309, 310, 311, 1397, 1398, 0, 1325, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 0, 762, 321, 763, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 1419, 764, 1420, 337, 338,
3022, 0, 339, 340, 765, 341, 0, 0, 342, 1405,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 0, 766, 767, 768, 0, 350, 351, 352,
353, 354, 355, 356, 0, 357, 0, 358, 0, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
1401, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 0, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 1389,
401, 402, 770, 403, 1399, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 0, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 1412,
1411, 0, 0, 422, 0, 423, 0, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 0,
1418, 0, 440, 771, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 0, 1413, 0,
0, 0, 0, 0, 0, 0, 450, 451, 452, 205,
206, 207, 208, 209, 210, 211, 212, 0, 213, 214,
215, 0, 0, 0, 0, 0, 0, 0, 216, 217,
0, 218, 219, 750, 220, 221, 222, 0, 1400, 751,
1415, 1406, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 1417, 1416, 230, 0, 231, 232, 233, 234,
0, 0, 235, 0, 236, 237, 238, 239, 752, 240,
241, 0, 242, 243, 244, 245, 246, 247, 0, 753,
248, 249, 0, 0, 0, 754, 0, 0, 0, 250,
251, 252, 253, 254, 255, 1404, 1403, 256, 0, 257,
0, 258, 259, 260, 261, 262, 0, 263, 264, 265,
0, 0, 266, 267, 1106, 269, 270, 0, 271, 272,
273, 0, 274, 275, 0, 276, 277, 278, 279, 0,
280, 281, 282, 0, 0, 283, 0, 284, 1402, 285,
0, 286, 0, 287, 755, 0, 756, 288, 289, 290,
0, 291, 0, 0, 292, 0, 293, 294, 295, 296,
297, 757, 298, 299, 300, 0, 301, 302, 303, 304,
305, 306, 0, 307, 758, 0, 308, 309, 310, 311,
1397, 1398, 0, 1325, 0, 312, 759, 760, 313, 761,
314, 315, 316, 317, 318, 319, 320, 0, 0, 762,
321, 763, 0, 322, 323, 324, 0, 0, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
1419, 764, 1420, 337, 338, 1886, 0, 339, 340, 765,
341, 0, 0, 342, 1405, 343, 344, 345, 0, 346,
0, 0, 347, 348, 349, 0, 0, 0, 766, 767,
768, 0, 350, 351, 352, 353, 354, 355, 356, 0,
357, 0, 358, 0, 361, 359, 360, 0, 362, 363,
364, 365, 366, 367, 368, 1401, 369, 370, 371, 372,
0, 373, 374, 375, 376, 377, 378, 379, 380, 381,
382, 0, 383, 384, 769, 385, 386, 0, 387, 388,
389, 390, 391, 392, 393, 394, 0, 395, 396, 397,
398, 399, 0, 400, 1389, 401, 402, 770, 403, 1399,
0, 0, 404, 405, 406, 407, 408, 409, 410, 411,
412, 413, 0, 0, 414, 415, 0, 416, 417, 418,
419, 420, 421, 0, 1412, 1411, 0, 0, 422, 0,
423, 0, 0, 424, 425, 426, 0, 427, 428, 429,
0, 0, 430, 431, 432, 433, 434, 0, 0, 435,
436, 437, 438, 439, 0, 1418, 0, 440, 771, 441,
442, 443, 0, 0, 444, 0, 0, 445, 446, 447,
448, 449, 0, 1413, 0, 0, 0, 0, 0, 0,
0, 450, 451, 452, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 0, 1400, 751, 1415, 1406, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 1417, 1416, 230,
0, 231, 232, 233, 234, 0, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 249, 0, 0, 0,
754, 0, 0, 0, 250, 251, 252, 253, 254, 255,
1404, 1403, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 1106,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 0, 280, 281, 282, 0, 0,
283, 0, 284, 1402, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 0, 0, 292,
0, 293, 294, 295, 296, 297, 757, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
0, 308, 309, 310, 311, 1397, 1398, 0, 1325, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 0, 762, 321, 763, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 1419, 764, 1420, 337, 338,
0, 0, 339, 340, 765, 341, 0, 0, 342, 1405,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 0, 766, 767, 768, 0, 350, 351, 352,
353, 354, 355, 356, 0, 357, 0, 358, 0, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
1401, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 0, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 1389,
401, 402, 770, 403, 1399, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 0, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 1412,
1411, 0, 0, 422, 0, 423, 0, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 0,
1418, 0, 440, 771, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 0, 1413, 0,
0, 0, 0, 0, 0, 0, 450, 451, 452, 205,
206, 207, 208, 209, 210, 211, 212, 0, 213, 214,
215, 0, 0, 0, 0, 0, 0, 0, 216, 217,
0, 218, 219, 750, 220, 221, 222, 0, 1400, 751,
1415, 1406, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 1417, 1416, 230, 0, 231, 232, 233, 234,
0, 0, 235, 0, 236, 237, 238, 239, 752, 240,
241, 0, 242, 243, 244, 245, 246, 247, 0, 753,
248, 249, 0, 0, 0, 754, 0, 0, 0, 250,
251, 252, 253, 254, 255, 1404, 1403, 256, 0, 257,
0, 258, 259, 260, 261, 262, 0, 263, 264, 265,
0, 0, 266, 267, 1106, 269, 270, 0, 271, 272,
273, 0, 274, 275, 0, 276, 277, 278, 279, 0,
280, 281, 282, 0, 0, 283, 0, 284, 1402, 285,
0, 286, 0, 287, 755, 0, 756, 288, 289, 290,
0, 291, 0, 0, 292, 0, 293, 294, 295, 296,
297, 757, 298, 299, 300, 0, 301, 302, 303, 304,
305, 306, 0, 307, 758, 0, 308, 309, 310, 311,
1397, 1398, 0, 1325, 0, 312, 759, 760, 313, 761,
314, 315, 316, 317, 318, 319, 320, 0, 0, 762,
321, 763, 0, 322, 323, 324, 0, 0, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
1419, 764, 1420, 337, 338, 0, 0, 339, 340, 765,
341, 0, 0, 342, 1405, 343, 344, 345, 0, 346,
0, 0, 347, 348, 349, 0, 0, 0, 766, 767,
768, 0, 350, 351, 352, 353, 354, 355, 356, 0,
357, 0, 358, 0, 361, 359, 360, 0, 362, 363,
364, 365, 366, 367, 368, 1401, 369, 370, 371, 372,
0, 373, 374, 375, 376, 377, 378, 379, 380, 381,
382, 0, 383, 384, 769, 385, 386, 0, 387, 388,
389, 390, 391, 392, 393, 394, 0, 395, 396, 397,
398, 399, 0, 400, 1919, 401, 402, 770, 403, 1399,
0, 0, 404, 405, 406, 407, 408, 409, 410, 411,
412, 413, 0, 0, 414, 415, 0, 416, 417, 418,
419, 420, 421, 0, 1412, 1411, 0, 0, 422, 0,
423, 0, 0, 424, 425, 426, 0, 427, 428, 429,
0, 0, 430, 431, 432, 433, 434, 0, 0, 435,
436, 437, 438, 439, 0, 1418, 0, 440, 771, 441,
442, 443, 0, 0, 444, 0, 0, 445, 446, 447,
448, 449, 0, 1413, 0, 0, 0, 0, 0, 0,
0, 450, 451, 452, 205, 206, 207, 208, 209, 210,
211, 212, 0, 213, 214, 215, 0, 0, 0, 0,
0, 0, 0, 216, 217, 0, 218, 219, 750, 220,
221, 222, 0, 1400, 751, 1415, 1406, 0, 223, 224,
225, 226, 227, 0, 0, 228, 229, 1417, 1416, 230,
0, 231, 232, 233, 234, 0, 0, 235, 0, 236,
237, 238, 239, 752, 240, 241, 0, 242, 243, 244,
245, 246, 247, 0, 753, 248, 249, 0, 0, 0,
754, 0, 0, 0, 250, 251, 252, 253, 254, 255,
1404, 1403, 256, 0, 257, 0, 258, 259, 260, 261,
262, 0, 263, 264, 265, 0, 0, 266, 267, 1106,
269, 270, 0, 271, 272, 273, 0, 274, 275, 0,
276, 277, 278, 279, 0, 280, 281, 282, 0, 0,
283, 0, 284, 1402, 285, 0, 286, 0, 287, 755,
0, 756, 288, 289, 290, 0, 291, 0, 0, 292,
0, 293, 294, 295, 296, 297, 757, 298, 299, 300,
0, 301, 302, 303, 304, 305, 306, 0, 307, 758,
0, 308, 309, 310, 311, 1397, 1398, 0, 1325, 0,
312, 759, 760, 313, 761, 314, 315, 316, 317, 318,
319, 320, 0, 0, 762, 321, 763, 0, 322, 323,
324, 0, 0, 325, 326, 327, 328, 329, 330, 331,
332, 333, 334, 335, 336, 1419, 764, 1420, 337, 338,
0, 0, 339, 340, 765, 341, 0, 0, 342, 1405,
343, 344, 345, 0, 346, 0, 0, 347, 348, 349,
0, 0, 0, 766, 767, 768, 0, 350, 351, 352,
353, 354, 355, 356, 0, 357, 0, 358, 0, 361,
359, 360, 0, 362, 363, 364, 365, 366, 367, 368,
1401, 369, 370, 371, 372, 0, 373, 374, 375, 376,
377, 378, 379, 380, 381, 382, 0, 383, 384, 769,
385, 386, 0, 387, 388, 389, 390, 391, 392, 393,
394, 0, 395, 396, 397, 398, 399, 0, 400, 0,
401, 402, 770, 403, 1399, 0, 0, 404, 405, 406,
407, 408, 409, 410, 411, 412, 413, 0, 0, 414,
415, 0, 416, 417, 418, 419, 420, 421, 0, 1412,
1411, 0, 0, 422, 0, 423, 0, 0, 424, 425,
426, 0, 427, 428, 429, 0, 0, 430, 431, 432,
433, 434, 0, 0, 435, 436, 437, 438, 439, 0,
1418, 0, 440, 771, 441, 442, 443, 0, 0, 444,
0, 0, 445, 446, 447, 448, 449, 0, 1413, 0,
0, 0, 0, 0, 0, 0, 450, 451, 452, 205,
206, 207, 208, 209, 210, 211, 212, 0, 213, 214,
215, 0, 0, 0, 0, 0, 0, 0, 216, 217,
0, 218, 219, 750, 220, 221, 222, 0, 0, 751,
0, 0, 0, 223, 224, 225, 226, 227, 0, 0,
228, 229, 0, 0, 230, 0, 231, 232, 233, 234,
0, 0, 235, 0, 236, 237, 238, 239, 752, 240,
241, 0, 242, 243, 244, 245, 246, 247, 0, 753,
248, 249, 0, 0, 0, 754, 0, 0, 0, 250,
251, 252, 253, 254, 255, 0, 0, 256, 0, 257,
0, 258, 259, 260, 261, 262, 0, 263, 264, 265,
0, 0, 266, 267, 268, 269, 270, 0, 271, 272,
273, 0, 274, 275, 0, 276, 277, 278, 279, 0,
280, 281, 282, 0, 0, 283, 0, 284, 0, 285,
0, 286, 0, 287, 755, 0, 756, 288, 289, 290,
0, 291, 0, 0, 292, 0, 293, 294, 295, 296,
297, 757, 298, 299, 300, 0, 301, 302, 303, 304,
305, 306, 0, 307, 758, 0, 308, 309, 310, 311,
0, 0, 0, 0, 0, 312, 759, 760, 313, 761,
314, 315, 316, 317, 318, 319, 320, 0, 0, 762,
321, 763, 0, 322, 323, 324, 0, 0, 325, 326,
327, 328, 329, 330, 331, 332, 333, 334, 335, 336,
0, 764, 0, 337, 338, 0, 0, 339, 340, 765,
341, 0, 0, 342, 0, 343, 344, 345, 0, 346,
0, 0, 347, 348, 349, 0, 0, 0, 766, 767,
768, 0, 350, 351, 352, 353, 354, 355, 356, 0,
357, 0, 358, 0, 361, 359, 360, 0, 362, 363,
364, 365, 366, 367, 368, 0, 369, 370, 371, 372,
0, 373, 374, 375, 376, 377, 378, 379, 380, 381,
382, 0, 383, 384, 769, 385, 386, 0, 387, 388,
389, 390, 391, 392, 393, 394, 0, 395, 396, 397,
398, 399, 0, 400, 0, 401, 402, 770, 403, 0,
0, 0, 404, 405, 406, 407, 408, 409, 410, 411,
412, 413, 0, 0, 414, 415, 0, 416, 417, 418,
419, 420, 421, 0, 0, 0, 0, 0, 422, 0,
423, 0, 0, 424, 425, 426, 0, 427, 428, 429,
0, 0, 430, 431, 432, 433, 434, 0, 0, 435,
436, 437, 438, 439, 0, 0, 0, 440, 771, 441,
442, 443, 0, 0, 444, 0, 0, 445, 446, 447,
448, 449, 1610, 0, 0, 1583, 0, 0, 0, 0,
0, 450, 451, 452, 1610, 0, 0, 1583, 0, 0,
0, 0, 1596, 0, 0, 2899, 0, 0, 0, 0,
1585, 0, 0, 0, 1596, 0, 1605, 0, 0, 0,
578, 0, 1585, 0, 0, 0, 0, 0, 1605, 0,
0, 1610, 573, 0, 1583, 0, 0, 0, 0, 0,
1584, 0, 1610, 0, 0, 1583, 0, 0, 0, 0,
0, 1596, 1584, 579, 2870, 0, 0, 0, 0, 1585,
0, 0, 1596, 0, 0, 1605, 588, 0, 0, 0,
1585, 0, 0, 0, 0, 0, 1605, 0, 0, 589,
0, 0, 0, 0, 0, 0, 0, 0, 0, 1584,
0, 0, 0, 0, 0, 0, 581, 0, 0, 0,
1584, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 587, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 591, 0, 0, 0, 0,
1600, 0, 0, 0, 1606, 0, 570, 0, 0, 0,
0, 577, 1600, 0, 0, 0, 1606, 567, 0, 0,
0, 0, 0, 0, 0, 1602, 1603, 0, 0, 0,
0, 0, 585, 0, 0, 0, 0, 1602, 1603, 0,
1598, 0, 0, 0, 0, 0, 0, 0, 0, 1600,
0, 0, 1598, 1606, 0, 0, 0, 0, 0, 0,
1600, 0, 0, 0, 1606, 1599, 0, 0, 1604, 0,
0, 0, 0, 0, 1602, 1603, 0, 1599, 0, 0,
1604, 1611, 0, 0, 1597, 1602, 1603, 0, 0, 1598,
0, 0, 0, 1611, 0, 0, 1597, 0, 0, 0,
1598, 0, 0, 0, 0, 0, 574, 0, 0, 0,
2875, 0, 0, 0, 1599, 0, 575, 1604, 0, 0,
0, 0, 0, 0, 0, 1599, 0, 0, 1604, 0,
1611, 0, 0, 1597, 195, 0, 0, 0, 0, 0,
0, 1611, 0, 0, 1597, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 1601, 0, 0, 565,
0, 0, 0, 580, 0, 590, 0, 0, 1601, 0,
0, 583, 0, 0, 571, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
582, 0, 569, 0, 0, 1601, 592, 0, 0, 0,
0, 0, 0, 0, 572, 0, 1601, 0, 0, 586,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 566, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 584, 0, 1594, 1592, 1593, 0,
1586, 1587, 1588, 1589, 1590, 1591, 0, 0, 1594, 1592,
1593, 0, 1586, 1587, 1588, 1589, 1590, 1591, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 1594, 1592, 1593, 0, 1586,
1587, 1588, 1589, 1590, 1591, 0, 1594, 1592, 1593, 0,
1586, 1587, 1588, 1589, 1590, 1591,
}
var yyPact = []int{
11129, -1000, 193, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, 11933, 1042, -1000, 50237, 1042, 2281,
62417, 866, 7773, 49831, 50643, 1457, 1854, 2666, 66408, 50643,
312, 35235, 35235, 39681, 50643, 3304, 1355, 50643, 62011, 2077,
1815, 38869, 2487, -1000, -1000, 959, 959, 1250, 1058, 959,
1044, 50643, 61605, 1355, 36047, 755, 49425, 49019, -1000, -1000,
509, -1000, 1491, 349, 61199, 3076, 189, 46989, 526, 11129,
50643, 60793, 50643, 46989, 50643, 50643, 50643, 50643, 50643, 1820,
50643, 28715, 2031, 29123, 29123, 50643, 50643, 50643, 50643, 2481,
50643, 50643, 50643, 1768, 2325, -1000, 50643, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
50643, 11923, -1000, 53891, 48613, 48207, 296, 856, 1851, 3304,
3304, 3133, 46177, 2172, -1000, 50643, 1502, -1000, 50643, 60387,
50643, 50643, 1129, 1399, 50643, 59981, 1817, 50643, 50643, 1201,
50643, 29123, 28296, 50643, 1765, 50643, 2615, 752, 1942, 50643,
50643, 3055, -1000, -1000, 1559, 1541, -1000, -1000, -1000, -1000,
47801, -1000, -1000, 2523, 2821, 46989, -1000, -1000, -1000, -1000,
2666, -1000, -1000, 46177, -1000, 59575, 59169, 58763, 2480, 58357,
1810, 57951, 57545, 50643, 27877, 3152, 57139, 29935, 29529, 2639,
56733, 56327, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 1764, 582, -1000, 1042, 216, 25789, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, 1345, -1000, -1000, 50643, 2683,
2683, 2683, 2683, 1240, 1240, 2683, 2683, 1384, 1328, -1000,
-1000, -1000, 3293, 3293, -1000, -1000, 2279, 46, 620, -1000,
500, 500, 500, 500, -1000, -1000, -1000, 46989, -1000, 188,
3304, 750, 3151, 50643, 50643, 50643, -1000, -1000, 2278, 2169,
220, 2168, 2874, -1000, -1000, -1000, 2215, 2215, -1000, 3304,
-1000, 1501, 3304, -1000, 50643, -1000, 46989, -1000, -1000, 2824,
1427, -1000, 236, 850, 2503, 3163, -1000, 236, 849, 2501,
3155, -1000, 1491, -1000, -1000, -1000, 2314, 3073, 3073, 3073,
3149, 247, 245, 509, 187, 50643, -1000, 613, 17835, 2275,
-1000, 526, -1000, 788, 34417, 208, -1000, 17412, -1000, 1168,
-1000, 1037, 2873, 2241, 7028, 5646, 10408, 5195, 2258, 218,
1522, 1637, 218, 915, 46989, 1174, 50643, 50643, 599, -1000,
228, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, 5061, 480, -1000, 208, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, 593, 1789, 1766, 1065, -1000, 1657, 50643, 2019,
2273, 1723, 1948, 1205, 613, 1135, 2255, 208, 50643, 29123,
29123, 27458, 50643, 50643, 50643, 2324, 749, 2479, 1760, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, 1792, -1000, -1000, 3130, -1000, 3235, 42929,
2763, -1000, 107, -1000, 34011, 33605, 3047, 50643, 1208, 179,
3304, -1000, 2463, 1029, -1000, 3000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, 3012, 500, 1902, 960, 960, 2872,
960, 3140, -1000, 51049, 50643, 50643, 2027, 29123, 50643, -1000,
2070, 960, 2387, 914, 55921, 1239, 2753, 50643, 3107, 748,
570, 50643, 50643, 869, 1922, 736, 3078, 64809, 1345, 960,
3220, 50643, -1000, -1000, -1000, -1000, -1000, -1000, 2147, 50643,
46989, 1634, 55515, -1000, -1000, -22, 2933, -1000, -22, 2932,
2787, -22, 2930, 47395, -1000, 2929, 913, -1000, 2177, 2925,
2247, 2924, 2177, 55109, 54703, 599, 2922, 50643, 2921, 250,
-1000, 480, 2917, 593, 2916, 747, 2914, 2245, 2911, -1000,
2909, 1893, -1000, 19527, 216, -1000, 185, -1000, 34829, -1000,
-1000, -1000, 526, 1539, -1000, 50643, -1000, 50643, 50643, 50643,
2683, 2683, 50643, 50643, 50643, 2683, 2683, 50643, 2683, 2683,
-1000, -1000, 40087, 40493, 50643, 745, 50643, -1000, 50643, -1000,
-1000, -1000, 217, -1000, -1000, 3304, -1000, 3238, 64809, 50643,
2817, 2817, 2817, 40087, 2870, 50643, 2867, 2243, 46177, -1000,
179, -1000, -1000, 54297, -1000, -1000, 213, 1042, -1000, 177,
-1000, -1000, -1000, -1000, -1000, -1000, 2462, -1000, -1000, 2461,
-1000, -1000, 2314, 2336, 2861, 2863, 1237, 2214, 2521, -1000,
18681, 2482, 19527, 509, -1000, -1000, 509, 509, 19527, -1000,
-1000, 50643, 187, 3237, 50643, 171, -1000, 11440, -1000, -1000,
19527, 19527, 19527, 19527, 2087, 742, -1000, -1000, -1000, 15719,
-1000, -1000, -1000, 742, 476, -1000, 586, 606, 208, -1000,
-1000, -1000, -1000, -1000, 899, 3304, 891, -1000, -1000, -1000,
19527, -1000, 741, 740, 738, 735, -1000, -1000, -1000, -1000,
-1000, -1000, 734, 731, 730, 729, 727, 722, 711, 710,
708, 707, 706, 705, 703, 702, 701, 697, 695, 684,
683, -1000, -1000, -1000, -1000, -1000, 2038, -1000, 1031, -1000,
1031, 1031, 661, 661, 662, -1000, -1000, 3112, 1031, 661,
-1000, -1000, 424, 431, -1000, -1000, -1000, -1000, -1000, 835,
681, -1000, -1000, -1000, 50643, 208, -1000, 12829, 19527, 173,
-1000, 66443, -1000, -1000, 1642, 1497, -1000, 3026, -1000, -1000,
1496, 53891, -1000, 41305, 1151, 1494, -1000, -1000, 161, 1570,
757, -1000, 37651, 3086, 3074, 3068, 2240, 1693, 1333, 50643,
2527, 50643, 2310, 1492, 583, -1000, 680, 161, 1490, 404,
161, 2272, 1488, 733, -1000, 2547, 1205, -1000, 3147, 1205,
1205, 3142, 960, 960, 161, 1486, 667, 181, 1390, 1577,
1876, 1485, -1000, 3193, 3187, 211, 13641, -1000, 2010, 1874,
50643, 5172, 2135, -1000, 1483, 1482, 2601, 1132, 1130, 1714,
64414, 26201, 2205, 2253, 1480, 53485, 1478, -1000, 2237, 2362,
-1000, -1000, -1000, -1000, 1728, 2623, 1205, 1205, -1000, -1000,
33210, 208, 1762, 37255, 1474, 1857, 1469, 1467, 1842, 1466,
1463, 1462, -1000, 53079, -1000, 1458, 1963, 1453, -1000, 2534,
1739, 3061, 2005, 1443, 1439, 50643, 1438, 583, 583, 1435,
50643, 50643, 50643, 50643, 2066, -1000, 3299, -1000, -1000, -1000,
50643, 50643, 2580, 593, 480, 599, 50643, 50643, 2236, 2269,
2234, 1205, 64809, 50643, 1879, -1000, 909, 3235, 1215, -1000,
-1000, -1000, -1000, -1000, 50643, 176, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, 176, -1000, -1000, -1000, -1000, -1000,
-1000, 770, -1000, -1000, -1000, -1000, 2215, -1000, -1000, 1855,
-1000, -1000, -1000, -1000, -1000, -1000, 968, 960, -1000, -1000,
-1000, -1000, -1000, 41305, -1000, 50643, 2813, 636, 2386, 3233,
2272, 500, 2476, 679, 3232, 2434, 50643, -1000, 2907, 50643,
566, 2381, 1030, 3304, 1383, -1000, -1000, 2308, 3259, 674,
570, -1000, 36859, -1000, 13641, 3016, 1127, -1000, 530, 50643,
50643, 50643, 50643, -1000, 50643, 50643, -1000, 3230, 3244, 65599,
-1000, -1000, -1000, -1000, -1000, 233, 225, -1000, -1000, -1000,
-1000, -1000, 662, 661, 661, 661, -1000, -1000, -1000, -1000,
-1000, 431, 424, -1000, -1000, 1031, 1031, 1031, -1000, 3112,
1031, 1005, -1000, 64809, -1000, 2862, 943, 1772, -1000, -1000,
-1000, 321, 1124, 32403, -1000, 50643, 50643, 50643, 50643, 41305,
2906, 50643, 2177, 2903, 50643, 52673, -1000, -1000, -1000, 50643,
50643, 50643, -1000, 1123, 2902, 1122, 2900, 2177, 26201, 251,
50643, -1000, 50643, 2177, 29123, 2177, 29123, 64809, -1000, 50643,
50643, 50643, -1000, -1000, -1000, -1000, 172, 66443, -1000, 216,
40899, -1000, -1000, -1000, 50643, -1000, -1000, -1000, -1000, 50643,
50643, -1000, -1000, -1000, 50643, 50643, -1000, 50643, 50643, 1433,
107, 50643, 50643, 1880, 29123, 50643, 50643, 50643, 2315, 50643,
50643, 50643, 1712, -1000, 72, 50643, 160, -1000, -1000, 159,
2372, 46989, 1966, -1000, 349, 153, -1000, -11, -1000, -1000,
-1000, -1000, 2819, 39681, 132, 40493, 2886, -1000, 50643, -1000,
2177, 2681, 2679, 42523, 50643, 1427, -1000, -1000, 2336, 2861,
-1000, -1000, -1000, -1000, -1000, 1206, 2173, 2304, 2304, -1000,
-1000, 175, 66443, -1000, 652, -1000, -1000, -1000, 1890, 66443,
-1000, 2524, -1000, 2524, 163, -1000, 9813, -1000, 654, 140,
2816, 17835, 46583, 64809, 50643, 1337, 19527, 19527, 19527, 19527,
19527, 19527, 19527, 19527, 19527, 23306, 19527, 19527, 19527, 2171,
19527, 1432, 1580, -1000, -1000, 1907, 612, 2007, 13641, -1000,
-1000, 653, -1000, 3288, 3288, 362, 6206, 531, -1000, 208,
245, 9509, 162, -1000, -1000, -1000, 16566, 26201, 16142, 208,
14872, -1000, -1000, 1310, 3293, 1002, 66443, 3293, 3293, 3293,
3293, 19527, 1258, 19527, 21642, 19527, 19527, 15296, 19527, 19527,
19527, 19527, 19527, 2405, 22482, 19527, 3012, 2404, 19527, 3012,
-1000, 650, -1000, -1000, -1000, -1000, 19527, -1000, -1000, 3293,
1031, 1031, -1000, -1000, 3293, -1000, 844, 1331, 3293, -1000,
3293, -1000, 1616, 19527, 465, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
4188, 17412, -1000, 1631, -1000, 50643, 50643, 1631, 50643, -1000,
1720, -1000, -1000, -1000, 50643, 50643, 6028, 50643, 50643, -1000,
2283, 2388, 50643, -1000, 50643, 13641, -1000, 50643, -1000, 64809,
50643, -1000, 642, 525, 2491, 1101, 2489, 50643, 52267, 51861,
50643, 50643, 42117, 1329, 1319, 50643, 41711, 50643, -1000, 50643,
-1000, -1000, 50643, -1000, 14047, 50643, -1000, 2539, 50643, 50643,
-1000, -1000, -1000, -1000, 1205, -1000, -1000, -1000, 50643, 1205,
1205, 50643, 50643, 3067, 50643, 3304, 50643, 50643, 50643, 50643,
51455, 50643, 13641, -1000, 1428, 29123, 631, 50643, 50643, 50643,
29123, 2473, 27039, 50643, 50643, 1748, 50643, 50643, 1758, 50643,
50643, 50643, 1313, 161, 1563, 611, -1000, 50643, 50643, -1000,
-1000, 50643, 50643, 1841, 1423, 138, 151, -1000, -1000, -1000,
39681, 38463, 1836, 1181, -1000, -1000, -1000, 50643, 46177, 50643,
2361, 2231, 2599, -1000, -1000, -1000, -1000, 136, -1000, -1000,
65204, 62823, -1000, 2102, -1000, -1000, -1000, 225, -1000, 65599,
1422, 1835, 1421, 130, 461, 50643, 50643, 50643, 50643, 50643,
50643, 50643, 50643, 3077, 50643, 50643, 19527, 50643, 2360, 50643,
-1000, 2359, 50643, -1000, 1101, 50643, 1418, 1416, 50643, 50643,
1900, 50643, -1000, -1000, 50643, 1769, 407, 1741, 2091, 1415,
-1000, -1000, -1000, -1000, 2564, 2578, 2577, 2562, 1121, 1117,
50643, 50643, 2564, 50643, 2559, 3229, 2557, 50643, 50643, 50643,
50643, -1000, 2215, -1000, 34829, 1310, 3293, -1000, -1000, 1477,
2021, -1000, 1461, 2242, 511, 3097, 3097, 1698, 3097, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, 1853, 39681, 36453,
50643, 936, 2897, 635, -1000, 2272, 949, 46177, 4842, 32815,
2230, 3304, -1000, 1295, 50643, 1293, 1687, 31166, 2894, 2838,
-1000, -1000, 2153, -1000, -1000, -1000, 2303, -1000, -1000, 1383,
19527, -1000, 123, -1000, 807, 97, -1000, 824, 2858, 50643,
50643, 630, 570, 570, 570, 570, 570, -1000, 2224, -1000,
64809, 766, 774, 3243, -1000, 3293, 1410, -1000, 1406, 1402,
1400, -1000, 619, -1000, 229, 50643, 2270, -1000, 3304, 2856,
2706, 2687, -1000, 1797, -1000, 30341, 1043, 989, 24141, 165,
-1000, -1000, -1000, 808, 50643, -1000, -1000, -1000, -22, -22,
1685, 2854, -22, -1000, 46177, -1000, 2177, 2893, 2177, 2177,
2221, 50643, 50643, 50643, 50643, -1000, 599, -1000, 250, -1000,
-1000, 480, -1000, 593, 3224, 2177, 2216, -1000, -1000, 19527,
-1000, -1000, 500, -1000, -1000, -1000, -1000, -1000, -1000, 43335,
107, 107, 907, 50643, 142, -1000, -22, 13, -22, 1205,
-22, -22, 13, 2632, 2631, 2627, 2777, 3262, 96, 50643,
-1000, -1000, -1000, -1000, -1000, 2413, 1816, 1811, 1146, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, 64809, 50643, 43335, 2213,
131, 2177, 3137, 146, 50643, 29123, 29123, 2312, 2472, -1000,
-1000, 1520, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, 613, -1000, -1000, -1000,
-1000, 2372, 50643, 2372, 19527, 1890, -1000, 19527, -1000, -1000,
-1000, 19527, 698, 846, -1000, -1000, 349, -1000, 987, 24141,
-1000, -1000, 1355, 1355, 1533, 1529, 1355, 50643, -1000, -1000,
-1000, 840, 663, 663, 1196, 1196, 1196, 3145, 300, 300,
5666, 362, 6206, 5080, 4500, 19527, 19527, 1397, 1898, 612,
4440, 19527, -1000, 1787, -1000, -1000, -1000, 2815, 609, -1000,
21642, 21642, -1000, -1000, -1000, 15719, 607, -1000, -1000, -1000,
-1000, 26201, -1000, 606, 19527, -1000, -1000, 19527, 87, -78,
-1000, -1000, 458, 73, -1000, 2092, 43, 19527, 19527, 19527,
457, -1000, 66443, 3280, -1000, -1000, 453, 1217, -1000, 19527,
450, 449, 447, 444, 66432, 443, 2814, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, 441, 66395, 425, 1754, -1000,
21642, 21642, 21642, -1000, 422, 11122, -46, 66383, 18258, 18258,
18258, 418, 11882, 19527, -46, 4433, 69, 68, 67, 61,
13641, 2050, 60, -1000, 11555, 19527, 13641, 4233, 19527, 19527,
59, 414, -1000, -1000, 413, -1000, 833, 410, 405, 50643,
53, -1000, -1000, 19527, -1000, -1000, 2594, 2048, 2047, -1000,
2457, 1157, 50643, -1000, -1000, -1000, -1000, 50643, -22, -1000,
-1000, -1000, 1381, -1000, -1000, -1000, -1000, -1000, 47, -1000,
232, -1000, 2119, 1617, 19527, 50643, -1000, 2614, 455, 605,
50643, 602, 2030, 2891, 2177, 2890, 2177, -1000, -1000, -1000,
-1000, -1000, 50643, 50643, 50643, 50643, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, 45, -1000, -1000, 13641, 13641, 13641, 3304,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, 3134, 2177, 64809, 3174, -1000, 1376, -1000, -1000, 2889,
2177, 1600, -1000, -1000, 46177, 593, 64809, -1000, -1000, -1000,
-1000, 50643, 599, 50643, 50643, -1000, -1000, 1798, -1000, -1000,
50643, 883, -1000, -1000, -1000, 2135, 1293, 1374, 1369, -1000,
50643, 1285, 50643, 50643, 50643, 50643, -1000, -1000, 2207, -1000,
1703, 50643, 50643, -1000, 64019, 64809, 2211, 2204, 2166, 50643,
50643, 50643, -1000, -1000, -1000, 2603, 2358, -1000, -1000, -1000,
62823, 65204, -1000, 65204, -1000, 225, -1000, 200, 225, 50643,
50643, 50643, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, 2448, -1000, -1000, 66443, -1000, -1000, -1000,
-1000, 2177, -1000, 50643, 50643, -1000, -1000, 1362, -1000, -1000,
1357, 1829, 1356, 1826, 1354, -1000, 1353, 1812, 1348, 1796,
1343, 2431, 2429, 2428, 50643, -1000, -1000, -1000, 2564, 2564,
2564, 50643, 50643, 2550, 2548, -1000, 2546, 2564, 64809, 2564,
2545, 2540, 2538, 2535, 179, -1000, -1000, 400, -1000, -1000,
-1000, 1902, -1000, -1000, -1000, -1000, 2526, 13641, -1000, -1000,
3293, 50643, 50643, 2065, 50643, 2813, 1108, 1918, 396, 129,
-1000, 64809, -1000, -1000, -1000, 50643, 507, 2185, 528, 2206,
50643, 956, 50643, 3223, 583, 2731, 63624, 3234, -1000, 3304,
46177, -1000, -1000, 36, -1000, -1000, 1075, 1452, -1000, -1000,
50643, 46177, 46177, 960, 2119, 1293, 50643, 31, -1000, -1000,
-1000, 50643, 3035, 50643, 1383, 50643, 2129, 8644, -1000, 3307,
14453, -1000, 13641, 14453, 1223, -1000, 391, 121, -1000, 3304,
-1000, -1000, -1000, -1000, -1000, 50643, 378, 1012, 3293, 766,
760, 366, 2408, 1856, 1828, 1743, 3293, -1000, 500, -1000,
806, 806, 806, 806, 806, 806, 2441, 806, 2212, 1341,
349, -1000, -1000, -1000, 17835, 30, -1000, -1000, -1000, 1797,
21219, 101, 2383, 44147, 45771, 44147, -1000, 12338, -1000, 208,
594, 989, 32403, 17412, 26, -1000, 208, 50643, 41305, 2177,
-1000, 50643, -1000, -1000, 50643, 2177, 1116, 2177, 1115, 2177,
-1000, 2177, 2177, 64809, -1000, 50643, 66443, -86, -1000, -1000,
50643, 50643, -22, 29123, 114, -1000, 1794, 1791, 1790, -1000,
2165, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2941, 2940,
-1000, -1000, 246, 40087, -1000, 50643, 50643, 2528, 593, 480,
1205, 50643, -1000, -1000, -1000, 107, -1000, -1000, 2155, 8526,
-1000, 846, -1000, 562, -1000, -1000, -1000, 350, 2735, 19527,
101, 50643, 50643, 1355, 1355, 1355, 1355, 50643, -1000, 19527,
19527, 1704, 502, 19527, 21642, 21642, -1000, 19527, 442, -1000,
-1000, -1000, -1000, 2811, 588, -1000, 19527, 64809, 810, 677,
14, -1000, 15719, 345, 208, 8130, -1000, -1000, 758, -1000,
-1000, -1000, 31991, 2339, 16989, 344, 343, 38, 38, 2092,
19527, 3304, 2949, -1000, 19527, 11522, -1000, -1000, -1000, -1000,
64809, -1000, 19527, -1000, 2810, 19527, -1000, 64809, 21642, 21642,
21642, 21642, 21642, 21642, 21642, 21642, 21642, 23729, 2400, 21642,
586, 3287, 3287, 948, -1000, 2843, 2810, 19527, 19527, 64809,
331, 330, 329, -1000, 19527, -46, 19527, -1000, -1000, -1000,
-1000, 12, 328, 22894, -1000, 19527, 13641, 10577, 0, 1014,
11485, -4, -1000, -1000, 843, -1000, 843, 3116, -1000, -1000,
6156, -1000, -1000, 3304, 3304, 1240, 3304, -22, 2135, 50643,
-1000, 13641, 14453, 13641, -1000, 584, -1000, 7632, -10, 2511,
50643, 50643, -1000, 24553, -1000, 50643, -1000, 2520, 317, 583,
1212, -1000, 50643, -1000, 50643, -1000, -1000, -1000, -1000, -1000,
-1000, 14047, -1000, -1000, -1000, -1000, -1000, -1000, 3092, 3304,
3304, 50643, 50643, -1000, 1210, 3034, -1000, -1000, 3221, -1000,
-1000, 1110, 1109, 50643, 50643, 50643, 50643, -1000, 50643, -1000,
-1000, 50643, 50643, -1000, 218, -1000, -1000, -1000, -1000, 1336,
-1000, 1757, 2260, 1316, 1786, 1314, 1312, 1780, 1309, -1000,
-1000, 327, 325, 324, 1388, 1388, 2847, -22, -22, -22,
-1000, 2600, -1000, -1000, -1000, 1172, 199, -1000, -1000, -1000,
806, -1000, -1000, -1000, 50643, 50643, 50643, 50643, 50643, 50643,
50643, 50643, 50643, 50643, 50643, 2846, 2075, 2711, -1000, -1000,
-1000, -1000, 2522, 2517, 2564, 2564, 2564, -1000, 322, -1000,
2564, 2564, 2564, 2564, 3304, 1104, -1000, -1000, -1000, 3220,
3220, -1000, -1000, 3220, 3220, 2076, 3304, -14, -1000, 25377,
-1000, -22, -22, 50643, 50643, 2119, 51049, 1345, 2606, 36453,
-1000, 936, 38057, 1460, 3082, -1000, -1000, -1000, 504, -1000,
2518, 582, 349, -1000, 50643, 4634, 579, -1000, -1000, -1000,
570, -1000, 100, -1000, -1000, 62823, 19527, 19527, 1302, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2119, -1000,
50643, 566, 875, 2845, -1000, 19, 50643, -1000, -1000, 807,
-1000, -1000, -1000, -1000, -1000, -1000, 562, 3299, 3293, -1000,
-1000, 64809, -1000, 50643, 318, 99, -1000, 1101, 941, -1000,
699, 678, 3293, 1310, -1000, -1000, -1000, -1000, -1000, -1000,
-1000, 313, 949, 45365, -1000, 3129, 44959, 3113, 3123, 3120,
806, 44553, -1000, 50643, -1000, -1000, 50643, 2485, -1000, 955,
2486, 560, 21642, 50643, -1000, 2745, 3304, -1000, 95, 349,
50643, 208, -1000, 66443, 2300, 24141, 2499, 2497, 24141, 2274,
2099, 2099, 2099, -1000, -1000, 50643, 557, -1000, 31579, 552,
-1000, 30753, 308, 2383, 208, 14872, 1797, -1000, -1000, 804,
50643, -1000, 1672, -1000, 2177, 2177, -1000, 50643, -1000, 50643,
-1000, -1000, -1000, 307, 2177, -1000, 43335, 2780, -1000, -22,
-1000, 1205, 50643, 50643, 50643, -1000, -1000, -1000, -1000, 2809,
-1000, 132, 2570, 2516, 2514, 2513, 2508, -1000, -1000, -1000,
26201, -1000, 2713, 3135, 66443, -1000, -1000, 50643, 50643, 50643,
50643, -1000, 3146, 2525, 19527, 19527, 381, 393, 346, 2525,
19527, 19527, 64809, 901, -18, 21642, 21642, -1000, 7194, -1000,
-1000, -1000, -1000, -1000, 63218, -1000, -1000, 19527, -1000, 2092,
2092, 305, 19527, -1000, 304, -1000, 66443, 1310, -1000, 66443,
19527, 287, 66443, 2843, 66443, -1000, 983, 983, 1197, 1197,
1197, 3287, 724, 724, 826, 948, 2808, 2468, 544, -1000,
826, -1000, -1000, 66443, 66443, 283, -1000, -1000, -1000, -46,
6906, -1000, 20796, -1000, 3132, 1996, -1000, -1000, 276, 985,
984, -1000, 19527, 52, 20373, 65599, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 803,
2212, 13641, -1000, 955, -1000, 1335, -1000, 2728, -1000, -20,
2511, -24, -1000, 966, 451, 3089, 19527, -44, 2356, 2353,
1240, -1000, 50643, -1000, -1000, 64809, 2177, 2177, -1000, -1000,
50643, -1000, -1000, 2177, 2177, 64809, 64809, 50643, 50643, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, 211, 50643, -115, -1000,
3293, 3293, 64809, 48, -1000, 3293, 3293, 50643, 50643, 50643,
50643, 50643, 50643, -1000, -1000, -1000, 1259, -1000, -1000, -1000,
-1000, 2807, 39681, -1000, -1000, 1169, 1240, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 50643, 50643,
50643, 50643, 2888, 2564, 2564, -1000, -1000, -1000, 2507, -1000,
-1000, -1000, -1000, 1310, 960, 2983, -1000, 3304, 3304, 3304,
3304, 35641, 2350, -1000, -1000, 13641, -1000, -1000, -1000, -1000,
39275, -22, -22, -1000, 460, 936, 539, -1000, 2668, 2185,
-45, -1000, -1000, -1000, 958, -1000, 50643, 2263, 36453, 50643,
-1000, 3028, 956, 951, 2602, 3234, 65994, -1000, 3304, -1000,
66443, 66443, 50643, 1295, -1000, -1000, 1654, 50643, 991, 2960,
2799, 2511, 1095, -1000, -1000, 3304, 536, 2686, 2786, -1000,
-1000, 664, -1000, -1000, 3212, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 1240, -1000,
-1000, 1599, -1000, -1000, -1000, 1092, 955, 19527, 826, 500,
-1000, -1000, 2798, -1000, -1000, 50643, 2383, 24141, 24141, 1601,
2496, 24141, -1000, -1000, -1000, -1000, 535, 50643, 50643, 533,
50643, 44147, 35, -1000, 526, -1000, 50643, -1000, -1000, 2177,
2177, 2177, -1000, -1000, 2163, -1000, -22, -22, -22, 43335,
2177, -1000, -1000, -1000, 2570, 2570, 2570, 2570, 271, 981,
19527, 19527, -1000, -1000, -1000, -1000, 2525, 2525, 19527, 21642,
21642, 2525, 901, -49, -1000, 724, 724, -1000, 2052, -1000,
266, -1000, -1000, 2092, 2092, -1000, 66443, -1000, -1000, 21642,
2790, 519, -1000, 64809, -1000, -1000, -51, -61, 517, 1980,
22482, -1000, -1000, -1000, 6641, 261, 1583, 66443, 1056, 260,
14453, -62, -1000, 2511, 1092, -1000, -1000, -1000, -1000, 955,
955, 24553, 26620, 43741, 50643, 43741, 6604, 1941, -1000, -1000,
-1000, -1000, 3092, -1000, -1000, -1000, -1000, -1000, 3092, 258,
-1000, -1000, -1000, 1757, 26201, 24965, -1000, 2260, 516, 515,
-1000, -1000, -1000, -1000, -1000, -1000, 43335, 43335, 2200, -1000,
-1000, -58, 2, 953, -22, 2842, -1000, -1000, 2564, -1000,
511, 3304, -1000, -1000, -1000, -1000, 19, -1000, 50643, -1000,
-67, -1000, -1000, 36453, 2185, 50643, 2188, 2188, 1460, -1000,
38057, 2133, -1000, -1000, 1884, 1814, 257, 507, -1000, -1000,
-1000, 2597, 1238, 50643, -1000, -68, -1000, 65204, -1000, -1000,
987, 50643, 2119, 2938, 506, 1638, -1000, -1000, 50643, 50643,
-1000, 24553, 29123, 3210, 3210, -1000, 349, -1000, -1000, 2348,
-1000, 2613, 1092, 6519, 2420, 50643, -1000, -1000, 1601, -1000,
505, 19527, 24141, -1000, 50643, -74, -76, 50643, -81, 64809,
-1000, 2092, -1000, -1000, -1000, -1000, -1000, -1000, 246, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, 50643, 66443, -46, 2525,
724, 724, -1000, 2112, 3131, 2092, -1000, -1000, 783, 21642,
64809, -85, -1000, 19527, -1000, 19527, -1000, 3128, -1000, -1000,
1039, -1000, -1000, -1000, -1000, 13641, -1000, 1092, 1092, -1000,
-1000, 503, 3071, -1000, 50643, -1000, 3071, 3089, 50643, 1088,
2177, -1000, -1000, 532, 480, 64809, -1000, 64809, 64809, -86,
246, 1388, 50643, 50643, 50643, 50643, 50643, -1000, -1000, -1000,
19, -1000, 39275, 1460, -92, -1000, -1000, -1000, -1000, -1000,
-1000, -1000, -1000, -1000, -1000, -1000, -1000, -1000, 2606, 936,
2154, 3105, 3099, -1000, -1000, 50643, 1061, -1000, 4634, 65994,
-1000, 2976, 2119, -1000, 2025, 19527, -1000, -1000, -1000, 2515,
-1000, 2880, -94, -1000, 3210, -1000, 2758, -1000, 951, 1499,
-1000, -1000, 2181, 1793, -1000, -1000, 50643, 66443, -1000, -99,
-1000, -1000, -100, -1000, -1000, 15, -1000, 3207, 1971, 19527,
-1000, 783, -101, -1000, -105, -106, 1958, -1000, 1053, -1000,
2511, -1000, 988, 26201, 846, -1000, 846, 43741, 500, -1000,
19527, -1000, 2014, 2841, 1832, -1000, -110, -116, -117, -1000,
-1000, 2789, 13, 13, 950, -1000, -22, -1000, -1000, -1000,
2212, 936, 2185, -1000, 2140, 2138, -1000, -1000, 3234, -1000,
2752, -1000, 29123, 6179, 2955, 3206, 50643, 949, 24553, -1000,
-1000, -1000, -1000, 50643, -1000, 2196, 2187, 1411, -1000, -1000,
-1000, -122, -1000, -1000, 50643, 486, 256, 19950, 19950, -46,
-1000, -1000, -1000, -1000, -1000, 2511, -1000, 484, 255, -1000,
-1000, 3071, 2420, 66443, -1000, -1000, 2014, -1000, 3127, 29123,
-1000, -1000, 43335, 50643, 2185, 1460, -1000, -1000, -1000, 58,
-1000, -1000, 483, -1000, 1881, 1757, -1000, 1460, -1000, -1000,
-1000, 2986, -1000, 1154, 1935, 1935, -1000, -1000, -1000, -1000,
-1000, -1000, 22065, 2175, 1858, 10381, -1000, 2511, 19527, -1000,
846, 2181, -1000, 50643, 480, 246, -1000, 1460, -1000, -1000,
-1000, -1000, 89, -1000, -1000, -1000, -1000, -1000, 13235, 991,
-115, 987, -1000, 3269, -1000, -1000, 2465, -1000, 3249, -1000,
-1000, -1000, -1000, -1000, 4762, -1000, -1000, -1000, -1000, -1000,
-1000, 8, 247, 245, -1000, -1000, -123, -1000, -1000, -1000,
-1000, -1000, 2935, -1000, -1000, -1000, -1000, 19104, -1000, 2511,
-1000, 89, -1000, 13235, 2013, -1000, -1000, -1000, 29123, 477,
13235, -131, -1000,
}
var yyPgo = []int{
0, 2836, 3736, 3735, 3732, 3730, 3729, 3728, 3724, 3723,
3722, 3721, 3720, 3718, 3717, 3716, 3715, 3713, 3712, 3711,
3709, 3701, 3700, 3699, 3697, 249, 3696, 3695, 3694, 3693,
3692, 2917, 3690, 3689, 3686, 3685, 3684, 3683, 3682, 3680,
3679, 217, 200, 3678, 3674, 3673, 3671, 3668, 193, 3667,
3664, 3663, 3662, 2911, 3661, 28, 3660, 3659, 3658, 3657,
3656, 3654, 3652, 3647, 3646, 3644, 3643, 3640, 3639, 3638,
3637, 3635, 3634, 3633, 3632, 3631, 190, 3629, 163, 26,
3628, 3623, 3620, 2909, 256, 209, 3619, 3617, 3615, 3614,
3613, 3610, 3608, 3607, 3606, 17, 3, 3605, 3603, 24,
3601, 3596, 3595, 21, 3593, 2892, 3592, 3591, 161, 3590,
3587, 3586, 3584, 2841, 3583, 3582, 3581, 3580, 16, 1016,
279, 272, 3576, 192, 86, 80, 3575, 278, 40, 9,
240, 238, 85, 264, 3573, 4591, 3572, 3571, 3569, 233,
117, 3568, 3567, 3563, 3561, 204, 3560, 3559, 3558, 3557,
44, 3556, 248, 269, 3555, 59, 3552, 227, 3551, 91,
265, 262, 3550, 241, 3549, 254, 3548, 167, 3547, 3546,
232, 3544, 3542, 3541, 221, 165, 4, 8, 166, 222,
111, 77, 237, 7461, 239, 3540, 127, 3536, 3533, 207,
50, 2452, 211, 3531, 45, 3527, 3526, 3525, 60, 8954,
3524, 104, 3523, 3522, 3521, 100, 18, 271, 103, 253,
146, 81, 3520, 62, 3519, 3518, 3517, 3516, 93, 3515,
48, 150, 70, 3514, 116, 3513, 162, 35, 38, 3512,
49, 6, 3507, 3503, 3501, 3500, 51, 3499, 143, 3498,
3497, 63, 3496, 3495, 37, 114, 216, 95, 61, 3494,
3493, 5249, 215, 208, 220, 78, 5442, 58, 55, 72,
128, 145, 3492, 3491, 3489, 156, 3488, 3487, 92, 3486,
99, 148, 3485, 3484, 1, 288, 250, 12, 3483, 41,
3482, 282, 3480, 66, 170, 3479, 123, 3478, 112, 3477,
3476, 3475, 46, 141, 277, 3474, 226, 223, 159, 3471,
3469, 3467, 42, 263, 281, 169, 119, 47, 235, 3464,
79, 3461, 3459, 225, 19, 273, 284, 247, 3458, 244,
301, 115, 64, 101, 3457, 3456, 3455, 3454, 199, 110,
206, 3452, 139, 105, 3451, 3449, 3448, 270, 3447, 3446,
257, 23, 3445, 3444, 3442, 3441, 236, 3440, 3436, 3434,
160, 3433, 3430, 3424, 3422, 3075, 267, 3419, 261, 214,
3417, 3416, 212, 3415, 3414, 255, 231, 3412, 283, 275,
120, 74, 202, 113, 118, 122, 3411, 154, 129, 149,
88, 213, 5, 140, 4868, 228, 2217, 89, 3409, 131,
3406, 203, 3405, 3404, 133, 3402, 3401, 83, 108, 102,
2000, 57, 3400, 3399, 3397, 201, 3396, 3395, 3394, 137,
124, 3393, 98, 218, 36, 67, 147, 260, 274, 243,
3392, 107, 109, 181, 3391, 76, 126, 3388, 3387, 3384,
3383, 259, 3382, 3381, 56, 94, 3380, 3379, 82, 6297,
96, 3377, 3376, 8450, 3374, 3371, 3370, 8424, 7808, 7649,
6704, 3369, 3368, 7617, 7511, 3367, 3365, 130, 252, 136,
4289, 97, 4895, 268, 3364, 8833, 106, 54, 210, 276,
0, 31, 2926, 5727, 52, 234, 3362, 2719, 73, 68,
84, 71, 3359, 3358, 75, 53, 3356, 90, 3355, 10,
39, 33, 34, 11, 15, 3354, 195, 3353, 3352, 7,
87, 3351, 43, 3350, 151, 132, 65, 3347, 3346, 3345,
3332, 242, 3330, 266, 13, 3329, 280, 3328, 3326, 3324,
32, 69, 30, 3322, 20, 2, 3319, 224, 125, 3316,
3314, 251, 3313, 164, 3089, 436, 3312, 2999, 219, 246,
205,
}
var yyR1 = []int{
0, 216, 217, 217, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 51, 527, 527, 160, 160,
161, 161, 163, 163, 163, 163, 163, 163, 163, 163,
163, 162, 162, 162, 162, 162, 162, 49, 21, 168,
168, 22, 18, 20, 67, 67, 68, 68, 35, 9,
127, 127, 58, 58, 40, 40, 169, 169, 170, 170,
2, 2, 2, 2, 2, 2, 106, 106, 106, 368,
368, 368, 368, 368, 368, 368, 368, 368, 368, 368,
368, 368, 368, 368, 368, 472, 472, 469, 469, 475,
475, 203, 203, 203, 203, 467, 467, 467, 467, 476,
476, 476, 476, 476, 476, 476, 204, 204, 204, 468,
468, 105, 105, 105, 105, 105, 369, 369, 107, 107,
107, 107, 107, 29, 497, 497, 498, 498, 109, 56,
56, 56, 56, 13, 13, 13, 13, 133, 133, 130,
130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
130, 130, 130, 130, 130, 130, 130, 130, 130, 130,
130, 123, 123, 135, 135, 135, 132, 132, 126, 126,
226, 227, 227, 272, 272, 378, 378, 378, 378, 17,
134, 134, 131, 131, 131, 131, 26, 26, 30, 30,
345, 345, 178, 178, 178, 438, 438, 138, 138, 144,
144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
144, 342, 342, 343, 343, 344, 344, 529, 529, 436,
436, 435, 433, 433, 433, 433, 433, 437, 437, 434,
42, 42, 42, 42, 313, 313, 313, 313, 313, 313,
313, 313, 218, 218, 222, 222, 219, 219, 223, 223,
370, 370, 370, 371, 371, 375, 376, 485, 485, 486,
486, 486, 486, 487, 487, 487, 487, 487, 487, 487,
488, 488, 488, 488, 482, 483, 483, 483, 484, 484,
484, 484, 484, 484, 481, 481, 372, 372, 372, 372,
372, 372, 372, 244, 244, 245, 245, 381, 491, 491,
491, 491, 396, 396, 397, 397, 395, 395, 489, 489,
489, 489, 489, 492, 490, 493, 493, 493, 493, 493,
220, 220, 228, 228, 228, 228, 314, 314, 314, 314,
499, 499, 500, 500, 496, 31, 301, 159, 159, 159,
41, 12, 364, 364, 365, 365, 366, 366, 366, 366,
366, 366, 366, 366, 366, 366, 366, 366, 530, 530,
410, 410, 410, 411, 411, 39, 39, 311, 311, 190,
190, 195, 195, 197, 197, 196, 196, 61, 61, 531,
531, 43, 501, 501, 70, 70, 34, 34, 140, 140,
146, 146, 146, 14, 141, 141, 147, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
15, 15, 15, 15, 15, 15, 15, 15, 15, 44,
298, 298, 298, 298, 297, 297, 296, 296, 71, 71,
7, 7, 292, 292, 427, 427, 293, 428, 428, 426,
426, 426, 426, 425, 423, 424, 45, 164, 164, 165,
165, 166, 166, 72, 72, 8, 8, 8, 46, 46,
224, 224, 225, 225, 374, 16, 50, 167, 167, 167,
73, 73, 19, 48, 48, 173, 173, 173, 174, 174,
175, 175, 175, 175, 175, 171, 171, 532, 532, 172,
172, 177, 177, 274, 274, 274, 176, 176, 176, 176,
200, 200, 494, 494, 495, 495, 495, 495, 495, 64,
64, 47, 63, 54, 54, 54, 54, 54, 54, 54,
54, 54, 54, 54, 54, 54, 54, 221, 269, 269,
377, 377, 380, 380, 380, 380, 380, 238, 238, 239,
240, 240, 379, 289, 289, 290, 290, 6, 6, 6,
36, 277, 277, 124, 124, 124, 124, 124, 340, 340,
280, 280, 279, 279, 279, 341, 341, 37, 38, 38,
278, 278, 125, 125, 59, 59, 60, 60, 114, 115,
62, 62, 352, 352, 352, 352, 352, 352, 352, 352,
352, 352, 352, 352, 352, 352, 352, 257, 257, 256,
256, 260, 260, 101, 312, 312, 312, 28, 28, 28,
28, 28, 28, 28, 28, 28, 28, 28, 28, 28,
28, 28, 28, 28, 353, 353, 353, 353, 353, 353,
353, 353, 353, 353, 353, 353, 353, 353, 353, 353,
353, 463, 463, 98, 98, 98, 98, 98, 503, 503,
354, 354, 354, 354, 354, 354, 354, 354, 354, 354,
354, 504, 504, 75, 75, 355, 355, 355, 355, 355,
355, 355, 355, 355, 355, 355, 355, 355, 355, 355,
355, 534, 534, 535, 535, 76, 93, 93, 208, 208,
208, 208, 208, 209, 209, 207, 207, 207, 207, 210,
210, 210, 210, 210, 210, 210, 210, 210, 210, 210,
210, 210, 210, 210, 210, 206, 206, 205, 205, 155,
155, 212, 212, 211, 77, 94, 94, 156, 156, 466,
466, 23, 215, 215, 214, 214, 214, 24, 24, 24,
213, 213, 213, 213, 78, 335, 335, 336, 336, 187,
187, 180, 180, 250, 250, 414, 414, 414, 198, 198,
194, 194, 194, 128, 128, 128, 129, 129, 129, 86,
86, 86, 154, 154, 231, 231, 232, 232, 233, 233,
234, 234, 305, 305, 305, 305, 305, 308, 308, 308,
308, 308, 474, 309, 310, 310, 310, 306, 306, 306,
236, 236, 303, 303, 303, 303, 303, 303, 303, 303,
303, 303, 303, 303, 303, 302, 302, 302, 302, 235,
235, 230, 230, 307, 291, 291, 87, 237, 237, 536,
536, 90, 90, 89, 89, 91, 91, 241, 241, 241,
241, 258, 258, 57, 295, 295, 304, 304, 32, 32,
32, 150, 150, 150, 66, 158, 158, 88, 88, 88,
351, 351, 153, 153, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 92, 92, 92, 92,
92, 92, 92, 92, 92, 92, 346, 346, 350, 350,
10, 10, 10, 10, 10, 10, 10, 10, 10, 10,
10, 10, 10, 10, 10, 10, 10, 10, 11, 11,
11, 11, 11, 11, 11, 11, 11, 11, 11, 11,
11, 11, 11, 11, 11, 11, 97, 242, 242, 242,
243, 243, 95, 95, 95, 95, 95, 96, 96, 347,
347, 347, 347, 334, 334, 334, 65, 65, 83, 464,
464, 80, 102, 102, 100, 100, 100, 100, 100, 100,
100, 100, 100, 100, 100, 100, 100, 100, 537, 537,
537, 145, 145, 145, 145, 145, 139, 139, 139, 281,
281, 108, 108, 502, 502, 502, 502, 81, 52, 136,
136, 142, 142, 142, 142, 142, 142, 142, 142, 142,
142, 142, 142, 142, 142, 142, 142, 538, 538, 3,
3, 4, 137, 137, 143, 69, 69, 33, 5, 5,
5, 5, 5, 5, 528, 528, 117, 116, 116, 116,
116, 116, 116, 110, 27, 27, 27, 188, 188, 104,
104, 104, 104, 104, 151, 151, 152, 152, 152, 152,
25, 25, 539, 539, 337, 337, 338, 338, 339, 339,
246, 246, 74, 74, 74, 74, 84, 84, 84, 84,
84, 84, 84, 432, 432, 431, 429, 429, 429, 430,
430, 430, 112, 285, 285, 85, 85, 85, 85, 113,
113, 286, 286, 111, 111, 111, 111, 79, 367, 367,
367, 262, 262, 422, 288, 288, 55, 287, 287, 82,
148, 148, 149, 149, 149, 149, 149, 149, 149, 149,
157, 157, 103, 264, 264, 265, 265, 420, 266, 421,
263, 263, 53, 184, 348, 348, 348, 348, 348, 349,
349, 349, 99, 99, 119, 119, 118, 118, 118, 118,
118, 118, 118, 118, 120, 120, 121, 121, 121, 121,
121, 121, 514, 514, 516, 516, 513, 515, 515, 300,
300, 299, 299, 299, 299, 299, 299, 299, 299, 299,
533, 533, 320, 320, 320, 229, 229, 229, 229, 248,
248, 247, 249, 249, 413, 413, 275, 275, 275, 275,
276, 276, 356, 356, 356, 358, 358, 357, 357, 359,
361, 361, 361, 360, 362, 362, 363, 363, 273, 273,
392, 392, 316, 316, 317, 317, 318, 318, 315, 315,
319, 319, 122, 122, 252, 252, 253, 253, 415, 415,
415, 415, 415, 415, 415, 415, 415, 415, 415, 416,
416, 416, 416, 416, 416, 412, 412, 412, 412, 323,
323, 323, 323, 321, 321, 322, 322, 417, 417, 417,
417, 294, 294, 418, 418, 418, 393, 382, 382, 383,
383, 383, 282, 282, 283, 283, 373, 439, 439, 439,
439, 439, 439, 254, 254, 254, 440, 440, 440, 440,
440, 440, 440, 441, 441, 441, 441, 442, 442, 284,
284, 443, 443, 443, 443, 443, 443, 443, 443, 443,
443, 443, 444, 444, 451, 451, 452, 452, 453, 454,
445, 445, 446, 446, 447, 448, 455, 455, 455, 455,
455, 455, 458, 458, 457, 457, 449, 449, 449, 449,
450, 459, 459, 459, 329, 329, 329, 329, 329, 329,
329, 329, 329, 329, 329, 329, 329, 329, 330, 330,
384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
384, 384, 384, 384, 384, 384, 384, 384, 384, 384,
384, 384, 384, 384, 384, 384, 384, 384, 384, 385,
385, 385, 385, 385, 385, 385, 385, 385, 385, 385,
385, 385, 385, 385, 385, 385, 385, 385, 385, 385,
385, 386, 386, 386, 386, 386, 386, 386, 386, 386,
386, 386, 387, 387, 387, 387, 387, 387, 387, 387,
387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
387, 387, 387, 387, 387, 387, 387, 387, 387, 387,
387, 508, 508, 509, 509, 509, 509, 507, 506, 506,
505, 505, 511, 511, 512, 512, 512, 510, 510, 510,
510, 517, 517, 518, 518, 520, 521, 521, 521, 522,
526, 526, 519, 519, 523, 523, 523, 524, 524, 525,
525, 525, 525, 525, 400, 400, 400, 408, 408, 408,
201, 201, 202, 202, 202, 202, 202, 202, 202, 202,
202, 191, 191, 192, 192, 193, 193, 193, 193, 193,
193, 259, 259, 398, 398, 399, 399, 401, 401, 394,
394, 394, 402, 402, 324, 324, 456, 456, 456, 456,
456, 456, 456, 456, 325, 325, 331, 326, 326, 327,
327, 327, 327, 327, 327, 332, 333, 328, 328, 328,
391, 391, 403, 407, 407, 405, 406, 406, 404, 404,
390, 390, 389, 389, 389, 389, 270, 270, 271, 271,
540, 540, 409, 409, 267, 267, 268, 261, 261, 419,
419, 419, 419, 255, 255, 199, 199, 251, 251, 183,
179, 181, 182, 186, 185, 189, 189, 388, 388, 388,
388, 388, 388, 388, 388, 388, 388, 388, 388, 388,
460, 462, 465, 461, 461, 461, 470, 470, 470, 473,
473, 473, 471, 471, 471, 471, 471, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 477, 477, 477, 477, 477,
477, 477, 477, 477, 477, 479, 479, 479, 479, 479,
479, 479, 479, 479, 479, 479, 479, 479, 479, 479,
479, 479, 479, 479, 479, 479, 479, 479, 479, 479,
479, 479, 479, 479, 479, 479, 479, 479, 479, 479,
479, 479, 479, 479, 479, 479, 479, 479, 479, 479,
479, 479, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 478, 478, 478, 478, 478, 478,
478, 478, 478, 478, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
480, 480, 480, 480, 480, 480, 480, 480, 480, 480,
}
var yyR2 = []int{
0, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
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, 5, 1, 0, 2, 0,
2, 0, 2, 2, 3, 3, 1, 3, 3, 2,
1, 1, 2, 2, 2, 3, 3, 5, 5, 0,
3, 5, 5, 4, 3, 5, 3, 5, 5, 6,
1, 1, 3, 5, 6, 4, 1, 0, 2, 0,
1, 1, 1, 1, 1, 1, 2, 3, 3, 3,
3, 3, 3, 3, 3, 2, 5, 2, 2, 2,
2, 3, 3, 3, 3, 1, 3, 1, 3, 1,
1, 2, 2, 2, 1, 1, 1, 1, 1, 1,
1, 3, 6, 1, 1, 1, 1, 1, 0, 1,
1, 2, 3, 4, 3, 2, 2, 1, 2, 3,
4, 3, 2, 4, 1, 1, 1, 1, 1, 2,
2, 2, 2, 4, 4, 4, 4, 1, 3, 2,
3, 4, 6, 6, 6, 5, 5, 6, 6, 4,
8, 4, 2, 3, 6, 4, 3, 3, 3, 3,
3, 4, 4, 3, 3, 3, 3, 3, 3, 4,
4, 3, 2, 3, 2, 2, 3, 3, 2, 2,
1, 3, 2, 1, 1, 0, 2, 0, 2, 0,
3, 2, 0, 1, 3, 3, 1, 5, 3, 4,
1, 3, 4, 6, 4, 8, 2, 2, 10, 6,
1, 1, 1, 1, 1, 1, 3, 2, 0, 1,
1, 3, 3, 1, 1, 3, 3, 3, 3, 4,
2, 1, 0, 2, 0, 3, 0, 1, 0, 1,
3, 2, 1, 1, 1, 3, 0, 1, 3, 1,
11, 14, 10, 13, 1, 1, 2, 2, 2, 2,
1, 0, 1, 0, 3, 0, 1, 3, 1, 3,
1, 1, 1, 1, 1, 4, 4, 2, 0, 3,
1, 1, 2, 2, 1, 3, 4, 4, 2, 5,
1, 2, 2, 2, 3, 3, 3, 0, 1, 1,
1, 1, 1, 1, 3, 1, 5, 7, 3, 8,
4, 9, 11, 3, 0, 1, 3, 1, 2, 2,
2, 0, 1, 3, 3, 6, 4, 0, 1, 1,
2, 2, 0, 3, 3, 2, 1, 1, 2, 2,
4, 0, 2, 2, 2, 0, 3, 4, 4, 0,
2, 0, 4, 0, 3, 7, 5, 2, 3, 0,
5, 4, 1, 0, 1, 2, 2, 1, 2, 3,
2, 2, 2, 2, 3, 3, 1, 3, 1, 0,
1, 2, 1, 1, 3, 6, 10, 1, 0, 1,
2, 2, 0, 2, 2, 1, 0, 5, 7, 1,
0, 6, 2, 0, 3, 5, 5, 8, 2, 0,
2, 2, 2, 5, 2, 0, 2, 7, 10, 6,
6, 6, 6, 7, 7, 9, 9, 6, 6, 8,
8, 8, 8, 6, 6, 7, 8, 6, 6, 7,
2, 2, 2, 2, 1, 2, 1, 0, 6, 8,
7, 6, 4, 0, 1, 3, 4, 1, 3, 1,
2, 2, 2, 2, 1, 1, 10, 2, 0, 2,
2, 1, 0, 4, 6, 5, 4, 4, 8, 11,
3, 2, 1, 3, 1, 5, 8, 1, 1, 1,
7, 9, 8, 15, 20, 1, 1, 2, 1, 3,
1, 1, 1, 3, 1, 3, 0, 1, 0, 1,
1, 4, 0, 1, 3, 0, 1, 1, 1, 1,
2, 0, 0, 2, 2, 1, 2, 2, 2, 6,
8, 8, 4, 5, 4, 4, 4, 3, 7, 8,
6, 6, 6, 6, 6, 4, 5, 3, 1, 3,
3, 1, 1, 1, 1, 1, 1, 3, 3, 3,
1, 3, 3, 1, 0, 1, 3, 6, 8, 8,
13, 1, 3, 5, 6, 4, 7, 2, 1, 0,
2, 0, 2, 4, 0, 1, 0, 6, 8, 8,
1, 3, 5, 5, 7, 9, 7, 9, 5, 6,
6, 4, 1, 1, 1, 1, 2, 1, 1, 1,
1, 1, 1, 3, 3, 3, 3, 1, 3, 1,
2, 2, 3, 5, 2, 2, 0, 6, 7, 7,
7, 8, 8, 6, 8, 9, 9, 7, 10, 7,
8, 8, 8, 8, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 2, 1,
3, 1, 1, 8, 9, 9, 9, 9, 2, 0,
1, 1, 2, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 2, 2, 1, 2, 3, 3, 3,
3, 4, 4, 3, 3, 3, 4, 4, 3, 4,
4, 1, 1, 1, 0, 7, 7, 10, 1, 1,
2, 4, 5, 1, 3, 2, 2, 2, 2, 1,
2, 2, 4, 3, 2, 2, 2, 2, 3, 2,
2, 2, 5, 5, 5, 1, 3, 1, 2, 3,
0, 1, 3, 2, 6, 6, 9, 3, 0, 3,
0, 5, 2, 0, 3, 3, 3, 7, 7, 10,
1, 1, 1, 1, 14, 1, 0, 1, 0, 1,
0, 2, 0, 1, 3, 5, 5, 7, 2, 0,
1, 2, 0, 1, 1, 0, 1, 1, 0, 9,
12, 7, 2, 0, 3, 2, 1, 3, 3, 2,
1, 3, 3, 3, 2, 2, 1, 1, 1, 1,
2, 1, 1, 1, 1, 4, 5, 1, 3, 3,
1, 2, 4, 5, 1, 1, 1, 1, 3, 3,
2, 2, 2, 2, 1, 2, 2, 1, 1, 1,
3, 2, 0, 2, 1, 3, 5, 1, 2, 1,
0, 5, 7, 5, 7, 5, 7, 3, 5, 5,
5, 1, 3, 2, 1, 2, 1, 2, 11, 10,
10, 2, 2, 0, 9, 2, 0, 4, 4, 4,
1, 1, 1, 0, 7, 6, 6, 6, 6, 8,
6, 6, 7, 9, 9, 6, 6, 6, 6, 6,
6, 7, 8, 9, 8, 6, 6, 6, 5, 5,
8, 8, 8, 8, 6, 9, 1, 0, 2, 0,
7, 6, 6, 6, 6, 6, 7, 9, 9, 6,
8, 8, 8, 8, 6, 6, 7, 6, 7, 6,
6, 6, 6, 6, 7, 7, 7, 9, 9, 6,
6, 6, 8, 8, 8, 6, 13, 1, 1, 3,
3, 1, 1, 1, 1, 1, 1, 1, 0, 1,
1, 1, 1, 1, 1, 0, 6, 8, 3, 2,
0, 2, 2, 2, 2, 3, 3, 2, 2, 2,
2, 3, 2, 5, 4, 3, 3, 3, 1, 1,
0, 3, 2, 2, 1, 2, 1, 3, 2, 1,
0, 9, 11, 3, 4, 4, 0, 2, 5, 2,
0, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 3, 4, 3, 3, 1, 0, 5,
6, 4, 2, 0, 4, 3, 5, 6, 4, 6,
6, 5, 7, 6, 1, 0, 6, 11, 11, 11,
13, 9, 11, 10, 4, 2, 5, 2, 0, 4,
5, 5, 4, 6, 1, 3, 1, 1, 1, 1,
2, 4, 1, 1, 1, 0, 1, 0, 1, 0,
3, 0, 2, 4, 3, 5, 1, 1, 1, 1,
1, 1, 1, 1, 3, 2, 1, 1, 1, 1,
1, 0, 5, 3, 0, 1, 1, 1, 1, 3,
9, 3, 0, 2, 3, 2, 3, 6, 1, 4,
2, 1, 3, 2, 2, 0, 7, 2, 0, 5,
3, 0, 2, 2, 2, 3, 1, 3, 1, 2,
1, 0, 8, 1, 3, 1, 1, 3, 5, 2,
1, 3, 7, 1, 0, 3, 2, 2, 2, 0,
2, 2, 1, 1, 3, 3, 1, 2, 4, 4,
2, 3, 5, 5, 1, 1, 9, 1, 2, 4,
4, 4, 2, 3, 1, 3, 6, 1, 0, 2,
0, 3, 3, 4, 4, 4, 4, 3, 2, 1,
1, 0, 1, 1, 0, 1, 5, 1, 0, 1,
0, 3, 1, 3, 4, 3, 2, 2, 1, 1,
1, 0, 2, 4, 5, 2, 3, 1, 1, 1,
1, 3, 0, 1, 1, 1, 1, 1, 3, 0,
2, 0, 1, 3, 1, 0, 1, 2, 4, 4,
2, 0, 2, 3, 2, 0, 1, 3, 1, 2,
1, 2, 5, 6, 5, 1, 2, 1, 4, 3,
4, 5, 4, 5, 4, 5, 2, 4, 1, 2,
2, 2, 1, 1, 0, 4, 2, 1, 2, 2,
4, 1, 3, 1, 2, 3, 1, 2, 0, 2,
4, 0, 1, 0, 1, 3, 3, 2, 3, 5,
6, 2, 3, 3, 4, 0, 1, 1, 1, 1,
1, 2, 5, 1, 1, 1, 1, 2, 3, 3,
0, 1, 1, 1, 1, 1, 2, 2, 2, 2,
2, 1, 3, 0, 1, 1, 1, 1, 5, 2,
1, 1, 1, 1, 5, 2, 2, 2, 1, 3,
3, 2, 1, 0, 3, 0, 5, 2, 5, 2,
1, 2, 3, 0, 1, 1, 1, 1, 1, 1,
3, 3, 3, 3, 3, 3, 3, 0, 1, 4,
1, 3, 3, 5, 2, 2, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 2, 2, 3, 3,
2, 3, 5, 4, 6, 3, 5, 4, 6, 4,
6, 5, 7, 3, 2, 4, 2, 3, 3, 4,
3, 4, 3, 4, 5, 6, 6, 7, 6, 7,
6, 7, 3, 4, 4, 6, 2, 3, 4, 1,
3, 2, 2, 3, 3, 3, 3, 3, 3, 3,
3, 3, 3, 2, 2, 5, 6, 6, 7, 3,
4, 1, 1, 2, 4, 1, 1, 1, 2, 2,
2, 1, 4, 5, 6, 8, 6, 7, 7, 5,
1, 1, 4, 1, 4, 1, 4, 1, 4, 1,
1, 1, 1, 1, 1, 6, 4, 4, 4, 4,
6, 5, 5, 5, 4, 6, 4, 4, 4, 4,
5, 7, 7, 9, 5, 4, 6, 5, 7, 7,
7, 2, 3, 3, 3, 4, 0, 4, 1, 3,
3, 1, 1, 1, 2, 2, 0, 2, 4, 4,
6, 2, 0, 1, 3, 3, 2, 2, 0, 6,
1, 0, 3, 0, 2, 2, 0, 1, 4, 2,
2, 2, 2, 2, 4, 3, 5, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 4, 1, 4, 1, 4, 1, 2, 1,
2, 1, 3, 1, 3, 1, 3, 1, 3, 3,
3, 2, 1, 3, 3, 0, 1, 1, 1, 1,
1, 1, 1, 1, 4, 3, 2, 3, 0, 3,
3, 2, 2, 1, 0, 2, 2, 3, 2, 1,
1, 3, 5, 1, 2, 4, 2, 0, 1, 0,
1, 2, 2, 2, 3, 5, 1, 2, 0, 2,
1, 0, 1, 1, 1, 3, 3, 1, 3, 3,
2, 1, 1, 1, 3, 1, 2, 1, 3, 1,
1, 1, 1, 1, 1, 1, 2, 1, 1, 1,
1, 1, 2, 5, 2, 3, 6, 1, 1, 1,
1, 1, 1, 1, 2, 2, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
}
var yyChk = []int{
-1000, -216, -217, -1, -3, -4, -23, -5, -6, -14,
-15, -7, -8, -16, -87, -9, -10, -11, -12, -13,
-17, -22, -21, -116, -117, -19, -20, -18, -25, -109,
-26, -27, -28, -29, -30, -31, -47, -32, -110, -33,
-34, -44, -45, -46, -86, -35, -36, -37, -38, -39,
-40, -41, -42, -43, -48, -51, -49, -50, -52, -111,
-53, -54, -55, -56, -57, -63, -66, -71, -72, -58,
-59, -60, -114, -61, -65, -62, -70, -64, -67, -68,
-73, -69, -113, -74, -75, -76, -77, -78, -79, -80,
-81, -82, -83, -112, -115, -88, -89, -90, -91, -92,
-93, -94, -97, -98, -99, -100, -101, -102, -103, -104,
-105, -106, -107, -108, 25, -539, 62, 64, 65, 70,
319, 82, 84, 100, 103, -515, 115, 117, 121, 134,
136, 142, 223, 156, 209, 210, 215, 234, 271, 282,
287, 299, 311, -118, -119, 15, 42, 330, 72, 127,
302, 306, 289, 359, 369, 375, 294, 322, 28, 27,
-514, -121, -120, 426, 392, 312, -122, 342, 380, 429,
301, 373, 159, 342, 174, 313, 386, 361, 137, 148,
316, 248, 104, 153, 22, 68, 81, 98, 119, -531,
307, 356, 344, 348, 199, 276, -337, 384, -184, 23,
-183, -470, 4, -477, -479, 15, 16, 17, 18, 19,
20, 21, 22, 24, 25, 26, 34, 35, 37, 38,
40, 41, 42, 49, 50, 51, 52, 53, 56, 57,
60, 62, 63, 64, 65, 68, 70, 71, 72, 73,
75, 76, 78, 79, 80, 81, 82, 83, 86, 87,
95, 96, 97, 98, 99, 100, 103, 105, 107, 108,
109, 110, 111, 113, 114, 115, 118, 119, 120, 121,
122, 124, 125, 126, 128, 129, 131, 132, 133, 134,
136, 137, 138, 141, 143, 145, 147, 149, 153, 154,
155, 157, 160, 162, 163, 164, 165, 166, 168, 169,
170, 172, 173, 174, 175, 176, 177, 179, 182, 183,
184, 185, 191, 194, 196, 197, 198, 199, 200, 201,
202, 206, 209, 210, 211, 214, 215, 216, 217, 218,
219, 220, 221, 222, 223, 224, 225, 229, 230, 233,
234, 236, 239, 241, 242, 243, 245, 248, 249, 250,
258, 259, 260, 261, 262, 263, 264, 266, 268, 271,
272, 270, 274, 275, 276, 277, 278, 279, 280, 282,
283, 284, 285, 287, 288, 289, 290, 291, 292, 293,
294, 295, 296, 298, 299, 301, 302, 304, 305, 306,
307, 308, 309, 310, 311, 313, 314, 315, 316, 317,
319, 321, 322, 324, 328, 329, 330, 331, 332, 333,
334, 335, 336, 337, 340, 341, 343, 344, 345, 346,
347, 348, 354, 356, 359, 360, 361, 363, 364, 365,
368, 369, 370, 371, 372, 375, 376, 377, 378, 379,
383, 385, 386, 387, 390, 393, 394, 395, 396, 397,
407, 408, 409, 43, 44, 46, 47, 58, 59, 66,
101, 102, 135, 139, 144, 158, 181, 186, 187, 189,
204, 226, 228, 231, 238, 240, 253, 257, 267, 269,
281, 303, 320, 325, 338, 350, 351, 355, 357, 380,
381, 398, 399, 400, 401, 402, 403, 404, 405, 406,
-337, 246, -368, 211, 317, 78, -472, 350, 354, 56,
307, 225, 301, 397, -470, -342, -119, 45, 301, 373,
159, 307, -313, -154, 344, 137, 148, 316, 356, 77,
34, 22, 248, 361, 348, 68, -335, 55, 251, 98,
119, -340, 347, 345, 211, 155, 370, 367, 104, -183,
271, 23, -184, 184, 109, 372, 23, 345, 347, 266,
-295, -304, -462, 198, 6, 301, 373, 159, -531, 344,
148, 316, 356, 34, 248, 258, -352, 153, 22, 55,
305, 98, 342, 313, 386, 174, 361, 119, 68, 81,
307, 137, 348, -183, -84, -539, 384, 426, -99, -79,
-103, -55, -53, -31, -113, 84, -355, -184, -534, 229,
274, 143, 200, 16, 288, -461, 23, 149, 40, 151,
171, -460, 417, 418, 10, -355, -208, -209, 23, -207,
312, 286, 84, -470, -470, -185, -462, -533, 342, -470,
354, -183, 258, -351, 341, 98, 174, 342, -208, 156,
-209, 20, 197, -537, 394, 354, -537, 354, -537, 272,
-537, -537, 272, -470, 306, -470, -533, -470, 419, -338,
426, 152, -472, 350, 354, 317, 23, -472, 350, 354,
317, 23, -120, -121, -119, -247, -248, 366, 188, 130,
252, -118, -119, -514, -516, 284, -513, -183, -229, 116,
23, 430, -417, -199, 247, -470, -268, 426, -1, -465,
-470, -465, 216, -465, -417, -199, -199, -199, -256, -470,
-183, -256, -470, 97, 342, -183, 141, 63, -258, -201,
-470, 9, -202, 417, 418, 419, 420, 421, 422, 414,
415, 413, 275, -211, -189, -473, -470, 4, -477, -478,
39, 45, 74, 85, 91, 150, 152, 167, 180, 192,
193, 195, 205, 207, 227, 235, 254, 255, 256, 300,
323, 384, -189, -256, -256, -179, -470, -256, 198, -183,
-183, -183, 309, 241, -199, -199, -186, -470, -353, 22,
153, 248, 77, 305, 356, 199, 55, -531, 348, 69,
98, 307, 174, 313, 342, 119, 361, 386, 68, 81,
344, 137, 301, 148, 316, -368, 317, -368, 60, 39,
-497, 23, -255, -199, 352, 413, 151, 428, 409, -139,
326, -145, 194, 280, 106, 232, -462, -462, -204, -462,
104, -468, -470, -462, 249, -199, 352, -465, -465, 216,
-465, -169, -470, 342, 313, 386, -311, 153, 305, 360,
-183, -183, 166, 97, 342, -183, -183, 356, -183, -189,
-258, 63, 141, -256, 309, -256, 174, 426, 292, -179,
-256, 81, 347, 345, 347, 345, -183, 23, -348, 190,
151, -418, -417, -304, -468, -251, 166, -183, -251, 166,
216, -251, 166, 198, -183, 166, 97, 342, -183, 166,
-183, 166, -183, 63, 141, -258, 166, 49, 166, -257,
-256, -189, 166, -189, 166, -158, 166, -183, 166, -179,
166, 309, -286, 426, -337, -84, -432, -431, -429, -470,
-539, 384, 380, -313, -184, -535, -534, -535, -535, -535,
-461, -461, -535, -535, -535, -461, 23, -535, -461, 23,
-460, -460, 246, 430, 352, 275, 426, -244, 426, -244,
-244, -244, -294, -417, -464, 430, -462, -285, 426, 49,
-199, -183, -183, 246, 249, 151, 249, -503, 146, -281,
-139, -281, -462, 352, -462, -470, -294, -339, 150, -151,
-152, -539, 384, 150, 152, 409, 194, 39, 409, 194,
39, -247, -248, -316, -275, -318, 146, -356, -358, -315,
208, 142, 244, -320, 23, 116, -320, -320, 49, 427,
427, 430, -516, -246, 426, -261, -419, -384, 419, -386,
417, 418, -191, 232, -400, 367, -390, -388, 11, 426,
-403, -387, -119, 135, 31, 9, 248, 303, -470, -460,
5, -462, 7, 8, -189, -441, -450, 358, 140, 237,
54, 89, 92, 93, 212, 213, 90, 94, 318, 373,
88, 91, 55, 139, 257, 267, 338, 355, 357, 238,
66, 158, 204, 399, 400, 401, 402, 403, 404, 405,
406, -443, -452, -446, -449, 189, 120, 44, 46, 47,
58, 59, 101, 102, 144, 186, 187, 226, 228, 240,
281, 325, 350, 351, 381, -453, -454, -447, -448, -455,
246, -268, 419, -199, 426, -270, -389, 428, 424, -267,
-409, -384, 104, -527, -168, 290, 392, 171, -527, -369,
290, 319, -105, 146, -127, 290, 19, 121, -133, 290,
319, -130, 19, 25, 121, 377, 65, 124, 114, 176,
230, 242, 232, 259, 294, -293, 250, -133, 290, 319,
-133, -365, 290, 319, -366, 230, 50, 96, 173, 218,
220, 258, 330, 295, -133, 290, 319, -134, 19, 290,
319, 259, -131, 121, 25, -260, 428, 372, -127, 319,
395, -417, -165, -293, 290, 259, 385, -256, -256, -241,
426, 428, -215, -237, 290, 319, 259, -303, 51, 298,
336, 169, 328, 387, 138, 311, 83, 304, -369, -231,
426, -270, -238, 426, 290, 319, 259, 290, 319, 259,
290, 259, -527, 319, -369, 290, 319, 259, -123, 121,
19, 377, -183, 290, 259, 246, 290, 319, 294, 259,
260, 113, 346, 75, -410, 5, 418, -461, -246, -188,
374, 246, -256, -189, -189, -258, 63, 141, -183, -183,
-183, 241, 426, 198, 309, 342, 97, 60, 32, -468,
104, -498, 107, 168, 430, -469, 104, -475, -467, -410,
358, 140, 246, -468, -469, 104, 87, -470, -476, -462,
4, -450, -410, 104, 211, 189, 430, -145, -462, 206,
247, 396, 106, -511, 118, 79, -244, -178, -462, 333,
334, -527, -527, 146, -527, 39, -170, -199, 166, -301,
-199, -199, -531, -189, -183, -501, 259, -527, 232, 395,
-199, 166, -164, 361, -173, 41, 21, 185, -183, 61,
-238, -239, 426, -221, 426, -256, -256, -221, 32, 260,
113, 346, 75, -221, 151, -336, 74, -439, -440, 320,
-442, -443, -451, -445, -449, -450, -473, 186, 187, 325,
44, 281, 144, 102, 101, 240, 47, -453, -454, -447,
-448, 351, 350, 4, -477, 46, 59, 58, 381, 226,
228, -313, -527, -528, 32, -256, 95, 230, 308, 45,
183, -199, -418, 319, -470, 32, 430, 135, 135, 146,
166, 135, -468, 166, 135, 395, -135, 52, 296, 135,
246, 135, -135, -256, 166, -256, 166, -241, 135, -251,
135, -135, 430, -231, 135, -238, 135, 426, 135, 246,
135, 135, 260, 113, 346, 75, -259, -384, -84, 427,
430, -430, -467, -410, 342, -184, -184, -184, -184, -535,
-535, -184, -184, -184, -535, -535, -184, -535, -535, -210,
-255, 342, 313, 148, 153, 98, 119, 198, 199, 307,
344, 361, 23, -207, -251, 426, -245, -381, -470, -245,
-148, 430, 171, -462, 32, -401, -439, -251, -153, 147,
-153, -153, -210, 146, -251, 146, 246, -468, 306, -470,
-312, 80, 295, -337, 427, 430, 206, 206, -316, -275,
-276, -275, -317, -316, -315, 146, 280, 372, 321, -358,
-356, -357, -384, 23, -363, 143, 229, -359, -360, -384,
-386, -120, -120, -120, -249, -413, -384, -513, 32, -251,
-300, 430, 190, 12, 67, 37, 417, 418, 419, 420,
421, 422, 414, 415, 413, -191, 29, 251, 207, 232,
167, 323, 192, 193, 235, 43, 171, -193, 32, 4,
9, 248, -201, -384, -384, -384, -384, 256, -119, -271,
-119, -384, -259, -119, -119, -394, 424, 426, 426, -270,
426, -462, -462, -462, 426, -404, -384, 426, 426, 426,
426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
426, 426, 426, 426, 426, 426, 426, 426, 426, 426,
269, -458, 383, -458, -458, -284, 426, -284, -444, 426,
59, 58, -458, -284, 426, -459, 412, 393, 426, -459,
426, -457, 59, 426, -199, -389, -182, 419, -471, 4,
-477, -479, -478, -480, 23, 27, 28, 29, 30, 31,
32, 33, 36, 48, 54, 55, 61, 67, 69, 77,
84, 88, 89, 90, 92, 93, 94, 104, 106, 112,
116, 117, 123, 127, 130, 140, 142, 146, 148, 151,
156, 159, 161, 171, 178, 188, 190, 203, 208, 212,
213, 232, 237, 244, 246, 247, 251, 252, 265, 273,
286, 297, 312, 318, 327, 339, 342, 349, 352, 353,
358, 366, 367, 373, 374, 382, 388, 389, 391, 392,
-384, 430, 427, -161, -369, 352, 98, -161, 352, -368,
-167, 94, 373, -465, 373, 352, 430, 352, -346, 69,
392, 393, 344, -226, 307, 426, -375, 69, -481, -470,
77, -372, 61, 367, 273, 131, 148, -346, -346, 77,
77, 246, 356, 26, 293, 305, 356, 305, -199, 176,
-256, 242, 352, -226, 426, 352, -366, 230, 352, 307,
96, 218, 220, -410, -530, 49, -410, -410, 49, -527,
-527, 352, 307, 430, 38, 379, 352, 38, 307, 352,
38, 38, 428, -182, -141, 22, 55, 68, 81, 119,
153, -531, 248, 307, 342, 348, 313, 386, 148, 316,
361, 307, -183, -133, 290, 319, -293, 352, 352, -462,
237, 374, 374, 319, 259, -439, 231, -258, -24, -214,
156, 299, 171, 146, -536, -303, 296, 352, 307, 352,
246, 237, 311, 108, 191, -410, -410, -232, 427, -305,
-308, -474, -310, 171, 253, 181, 382, -473, -439, 320,
290, 319, 259, -401, 419, 352, 307, 352, 352, 307,
352, 352, 352, -137, 344, 352, 104, 307, 232, 352,
104, 232, 77, -481, 131, 77, 290, 259, 352, 352,
-199, 352, -226, -226, 352, -256, -256, -256, -256, 259,
5, -186, -470, -199, 192, -238, -231, -241, -256, -256,
246, 246, 192, 246, -410, -439, -256, 260, 113, 346,
75, 395, 354, -199, 430, -462, 426, -145, -203, 280,
291, 315, -343, 392, -527, -160, -160, -167, -160, -465,
-2, -42, -78, -41, -48, -76, -108, 84, 156, 426,
242, -244, 232, 32, -364, -365, -244, 198, -233, 426,
32, 214, -183, -140, 135, -183, -224, 426, 232, -166,
-165, -462, -174, -175, 184, 109, 372, 359, 242, 21,
426, -221, -240, -379, 4, -269, -377, -471, -340, 374,
426, 128, 279, -256, -256, -256, -256, -256, -187, -186,
32, -254, 31, -440, -329, 426, 407, 222, 99, 164,
219, -330, 310, -284, -260, 386, -136, -439, 146, -349,
392, 393, 308, -367, -99, 426, 104, -287, 374, -264,
-265, -420, -266, -421, 426, -470, -470, -183, -251, -251,
-167, 135, -251, -135, 135, -183, -183, 166, -183, -256,
-183, 374, 135, 374, 135, -135, -258, -135, -257, -256,
-135, -189, -135, -189, -439, -256, -183, -179, 427, 430,
-84, -431, -199, -184, -184, -184, -184, -184, -184, 352,
-255, -255, 97, 316, -212, -211, -251, -257, -251, 241,
-251, -251, -257, 343, 314, 154, -156, 392, -245, 430,
427, 427, -157, 236, -417, -149, 17, 303, 321, 133,
-85, -99, -79, -103, -55, 427, 430, 352, 151, -208,
-209, -466, 157, -209, -354, 22, 153, 199, -531, 69,
98, 148, 307, 313, 342, 119, 301, 344, 361, 386,
-470, -135, 165, 165, -199, -25, -199, -152, -276, -317,
247, -319, 242, -319, 430, -361, -461, 426, -362, 303,
304, 430, 374, -128, 33, 112, 426, 427, -252, 151,
-419, -299, 347, 345, 211, 155, 370, 342, -199, -439,
-256, 350, -384, -384, -384, -384, -384, -384, -384, -384,
-384, -384, -384, -384, -384, 207, 167, 323, 43, 171,
-384, 352, 237, 232, 358, 140, 368, 116, 242, 118,
-540, 339, 36, -391, -119, 426, -408, 30, 327, 23,
-471, 426, -400, 303, 426, -389, 427, 430, -259, -402,
425, -394, -258, -259, 427, 427, -398, 382, 23, 116,
419, -399, -384, -474, -473, -329, -460, -407, -405, 388,
-460, -460, -460, -460, -384, -324, -456, 4, 407, 222,
99, 164, 219, 310, -462, -325, -384, -326, -385, -386,
417, 418, -191, -400, -327, -384, -259, -384, 48, 203,
353, -328, -384, 151, -259, -384, -259, -259, -259, -259,
224, -386, -506, -505, -384, -511, 224, -384, -511, 426,
-259, -460, -458, -458, -460, 409, 350, -460, -460, 319,
-259, 427, 425, 431, -409, -163, 264, 126, 365, 176,
76, 376, 373, 4, -465, -179, -465, 316, -251, -465,
-130, -183, -183, 245, 245, 65, -183, -183, -272, -378,
-471, -375, -439, -183, 426, 426, -496, 374, 196, -180,
374, 196, -470, 166, -470, 166, -183, -183, -183, -183,
23, 373, 356, 305, 356, 305, -183, -183, 23, 373,
-183, -199, -465, -428, -426, -425, 319, 19, 121, -423,
-471, -183, -183, -183, -410, -256, -410, -410, -183, -183,
-131, 19, -373, -470, -462, -183, -183, -183, -465, 166,
-470, -470, -182, -147, 352, -189, 426, -256, -256, -256,
-211, 198, -258, 63, 141, -183, -256, 309, -256, -256,
342, 97, -183, -256, -183, -296, -297, 290, 259, -298,
160, 230, 378, 352, -346, 307, -183, -465, -181, -470,
-181, 307, 352, 427, 430, 430, -208, -208, 156, 307,
301, 373, -183, -183, -465, 237, 246, 108, 191, 427,
430, -474, -310, -308, -310, -473, 253, -260, -473, 352,
307, 352, 427, 427, -183, -183, -465, -183, -183, -465,
-179, -465, -143, 76, -183, -183, -384, -183, 237, -465,
237, -183, -183, 352, 352, -183, -465, 290, -183, -465,
290, 319, 290, 319, 259, -221, 290, 319, 290, 319,
259, 19, 25, 121, 352, -463, -462, 237, 192, 192,
192, 374, 374, -256, -256, -463, -256, 192, 32, 192,
-256, -256, -256, -256, -139, -475, -329, -460, 364, 73,
280, -345, 151, 352, 245, -438, -138, 426, -162, -163,
340, 20, 301, 171, 316, -170, -313, 251, -218, -219,
-370, -470, -375, -482, -481, 207, -256, -228, 392, 393,
135, -99, 134, -227, 392, -468, 298, -236, -302, 32,
198, 391, -303, -234, 427, -306, -305, 246, -462, -146,
307, 385, 151, -183, -296, -297, 316, -225, 427, -374,
-375, 135, 148, 246, 251, 242, -174, -384, 427, 430,
413, 427, 430, 413, 146, -181, -282, -283, -373, 426,
-221, -221, -221, -221, -221, 246, -439, 424, 424, -254,
31, -460, 352, 352, 352, 352, 426, -284, -199, -142,
344, 214, 346, 125, 201, 202, 76, 259, -485, -462,
146, 163, 163, -288, 297, -262, -422, -470, 380, -383,
389, -253, -415, -417, -393, -119, -416, 426, -387, -470,
-189, -252, 430, 413, -263, -421, -271, 316, 146, -468,
-135, 135, -135, -135, 246, -181, -256, -181, -256, -241,
-135, -231, -238, 32, -135, 246, -384, -206, -205, -465,
159, 395, -251, 430, -411, -410, 171, 171, 171, -466,
20, 427, -381, 221, 321, 133, 321, 133, 372, 303,
-439, -183, -206, 246, -135, 49, 151, -256, -189, -189,
241, 198, 342, -246, -157, -255, -157, -359, -362, -384,
-413, -192, -201, 248, -129, 410, 411, -85, -382, 389,
-253, -533, -533, 347, 345, 347, 345, -533, -199, 409,
129, -384, -384, 352, -540, 339, -391, 129, -384, 237,
358, 140, 368, 116, 242, 118, 151, 426, -385, -385,
-259, -119, 426, -258, -271, -384, 425, 425, 430, 427,
427, -521, 255, 427, 430, -247, -399, -398, -398, 427,
14, 427, -406, -405, 123, -384, 427, 427, 427, 427,
32, 427, 151, 427, -331, 265, 427, 12, 417, 418,
419, 420, 421, 422, 414, 415, 413, -191, 192, 171,
248, -385, -385, -385, 427, -332, -333, 151, 146, 32,
-328, -328, -328, 427, 151, -259, 430, 427, 427, 427,
427, -471, -510, 263, 427, 430, 32, -384, -471, 430,
-384, -259, 427, 427, 427, 409, 427, 427, -470, 427,
-384, -462, 237, 264, 264, 208, 371, -251, -183, 352,
427, 430, 413, 428, -292, 250, -372, -384, -245, -494,
174, 426, -496, 426, -181, 426, -123, 121, 319, 294,
-350, -293, 135, -135, 135, -135, -183, -183, -183, -183,
427, 430, -425, -425, -423, -424, -462, -135, -439, 41,
21, 352, 135, -135, -350, 319, -468, -238, -439, -183,
-241, -256, -256, 260, 113, 346, 75, -256, 395, -293,
-298, 352, 352, -190, -183, 160, 378, -190, -183, -183,
-183, 19, 121, 290, 319, 259, 290, 319, 259, -183,
-465, -439, 231, -439, 246, 246, 249, -251, -251, -251,
182, 237, -305, -310, -310, 421, -260, -183, -183, -465,
208, -135, -183, -465, 352, 352, 307, 352, 307, 352,
352, 307, 352, 307, 352, 216, 216, 216, -465, -463,
-463, -463, -181, -181, 192, 192, 192, -463, -439, -463,
192, 192, 192, 192, 427, -178, -144, 45, 245, 110,
237, 86, 162, 278, 129, 147, 125, -436, -435, -471,
-460, -251, -251, 301, 159, -183, 342, 292, 427, 430,
-199, -222, 426, -314, 246, -226, 245, 245, -199, -159,
392, -183, 32, -226, 160, -309, 342, -310, -230, -302,
392, -235, -462, -468, 427, 430, 104, 413, -347, 312,
372, 109, 184, -183, -468, -468, -527, -292, -183, 427,
430, -199, 97, -199, -175, -245, 246, 427, -379, 4,
-380, -310, -480, -192, -410, -462, 248, 418, 417, -377,
-380, 361, 427, 430, -289, -290, -462, -199, 427, 425,
-460, -460, 424, 427, 222, 164, 219, -330, 219, -330,
-330, -460, -244, -538, 413, -538, -538, -538, -538, -538,
208, -538, -486, 77, -487, -488, 67, 232, 237, 367,
273, 61, 104, 286, 106, 178, 352, -99, -261, 427,
430, -271, -288, -384, 87, 430, 85, -323, 195, 227,
152, 205, 300, 180, -412, 32, -470, -412, 32, -470,
-412, -119, -416, -415, -270, 426, -383, -265, -409, 427,
430, -183, -167, -135, -183, -256, -135, 374, -135, 374,
-135, -135, -135, -439, -256, -155, 430, 392, -465, -251,
-211, 430, 307, 307, 307, 249, 133, 133, -135, -210,
-465, -251, 192, -238, -231, -410, -256, 247, 427, -129,
426, 427, -273, 159, -384, -199, -199, -533, -533, -533,
-533, -199, -384, -384, 129, 129, -384, -385, -385, -384,
129, 151, 426, -384, -401, 29, 29, 427, -384, 427,
427, -394, -522, -470, 426, -521, -462, 382, -399, 427,
427, -248, 430, -247, -248, -521, -384, -462, 127, -384,
349, -439, -384, -332, -384, -439, -385, -385, -385, -385,
-385, -385, -385, -385, -385, -385, 116, 232, 242, 118,
-385, -333, -332, -384, -384, -439, 427, 427, 427, -259,
-384, 427, 430, 427, -386, 49, -505, -471, -512, 270,
337, 427, 430, -508, 385, 32, 427, -459, -459, -457,
425, -462, -462, -461, -462, -293, -183, -378, -380, -471,
-485, 426, 427, 427, -495, 232, 106, 178, -186, -245,
-494, -396, -397, -414, -470, -387, 426, -245, 232, 232,
332, -226, 335, 97, -226, 361, -470, -183, -426, -132,
67, -462, -462, -183, -470, 361, 32, 374, 374, -256,
-256, -256, -256, -183, -183, -465, -260, 352, -277, -124,
248, 153, 335, -278, -125, 248, 153, 352, 307, 352,
352, 307, 352, 427, 427, 427, -213, 343, 154, 314,
362, -213, 146, 182, 361, 421, -538, -183, -183, -183,
-183, -183, -465, -183, -183, -183, -183, -465, 146, 146,
292, 146, 166, 192, 192, -463, -463, -463, 427, -463,
-463, -463, -463, -462, -344, -529, 374, -528, -528, -528,
-528, 278, 232, -462, 427, 430, -433, -467, -410, 419,
426, -251, -251, -292, -199, -220, 177, -370, -483, -228,
-223, -371, -376, -481, -470, -499, 344, 72, 426, 242,
97, 230, -286, -99, -190, -236, 426, -221, 430, -306,
-384, -384, 352, -140, -292, -374, -224, 395, -171, 146,
-199, -494, -439, -373, 427, 430, -180, 392, 393, 425,
425, -460, -329, 427, -227, -183, 104, -462, 104, -183,
104, -462, -460, 104, -462, 104, -462, 104, -538, -183,
104, -183, -256, 237, 106, -230, 196, 426, -385, -199,
107, 168, -462, -99, -422, 242, -415, 195, 195, -415,
-323, 195, -321, 254, -321, -321, -470, 426, 426, -470,
426, 427, -398, -288, 413, -421, 316, -135, -135, -181,
-181, 427, -135, -205, 156, -410, -251, -251, -251, 151,
-466, -504, -462, 237, 192, 192, 192, 192, -258, -392,
161, 49, -199, -199, -199, -199, -384, -384, 129, 29,
29, -384, -384, -401, 427, -385, -385, 427, -526, -470,
-399, -521, -521, 427, 427, -329, -384, 427, -333, 151,
116, 242, 118, 426, 427, 427, -507, -259, 398, 49,
285, 427, 390, 390, -384, -509, 430, -384, 230, -440,
413, -427, -425, -494, -230, 106, 376, 168, 107, 427,
427, 430, 392, -198, 67, -198, -384, 427, 237, 237,
-461, -470, -439, -135, -135, -256, -135, -135, -439, -439,
-181, -181, -183, 430, -460, -460, -439, 430, -460, -460,
-183, -183, -465, -183, -183, -465, 352, 151, -208, 361,
-461, -251, -251, -256, -251, 135, -463, -463, 192, -329,
-527, 111, -462, -462, -462, -462, -245, 419, 237, -435,
-437, -434, -467, 426, -228, 426, 172, 132, -314, 427,
430, 392, -183, 121, 109, 270, -218, -256, 97, -159,
-502, 392, -195, 179, -230, -291, -307, -474, -473, -462,
-199, 316, -183, -177, 388, -532, 122, -200, 151, 374,
-462, 426, 153, 181, 153, 425, 32, -461, -487, 232,
-500, 374, -230, -384, -244, 151, -184, -415, -415, -322,
374, 246, 195, -415, 426, -251, -283, 426, -283, -470,
-412, 427, -268, -183, -135, -135, -135, 249, -206, -135,
-504, -504, -504, -504, 427, -517, 391, -384, -259, -384,
-385, -385, 427, -519, 262, 427, -521, -521, -385, 151,
426, -401, 427, 430, 427, 426, 285, -386, 427, 427,
329, 379, 427, -380, 427, 430, -500, -230, -230, -397,
-258, 248, -194, -256, 374, -256, -194, 427, 286, -132,
-132, 427, -124, -258, -189, 426, -125, 426, 426, -206,
-206, 246, 392, 392, 292, 392, 146, -463, -438, -462,
-245, 427, 430, -314, -255, -484, 105, 78, 175, 335,
71, 23, -484, -499, -371, 250, 304, 304, 427, -222,
61, 53, 211, -196, -197, 378, 230, -190, 427, 430,
-310, -382, -183, -292, 134, 426, -172, 303, 331, -494,
-199, -181, -250, -414, -211, -150, 32, -150, -99, 174,
-500, 427, -491, 217, -256, -322, 426, -384, -415, -251,
427, 427, -283, 427, -135, -518, -520, -470, -248, 49,
-521, -385, -401, 427, -259, -506, 49, 408, 230, -425,
-494, -500, -500, 426, -128, -256, -128, -198, -199, -126,
374, -135, -279, -241, 146, -231, -401, -401, -401, -155,
-135, -213, -257, -257, -256, -256, -251, -434, -499, 427,
-485, -220, -228, 249, 61, 61, -190, 378, -236, -307,
117, -292, 277, -384, 146, -280, 141, 427, 430, -150,
170, 35, -502, 344, -489, -492, -490, 246, 152, 261,
324, -251, 427, 427, 430, 32, -523, 279, 304, -259,
427, 427, 427, 285, 379, -494, -395, 389, -258, -129,
-129, -194, -244, -384, -341, 283, -279, 309, 252, 427,
427, 427, 151, 392, -228, -314, 249, 249, -230, -334,
185, 24, -189, 427, 122, 32, -256, -227, -414, -183,
-490, 246, -492, 246, 372, 109, 427, -520, -522, 427,
-524, -525, 43, 363, 87, -384, -524, -494, 426, 427,
-128, -491, -341, 49, -189, -206, -256, -314, -499, -242,
233, -95, 426, -99, -79, -103, -55, -83, 426, 303,
-277, -499, -493, 230, 296, 52, 319, -493, -525, 268,
145, 303, 268, 145, -384, -129, -489, -256, -231, -135,
-499, -243, -118, -119, -96, -95, -274, -176, -460, 5,
-462, -471, -177, -382, 18, 237, 104, 29, 427, -494,
427, 429, 427, 430, 134, -525, -96, -176, 277, -189,
426, -274, 427,
}
var yyDef = []int{
-2, -2, 1, 3, 4, 5, 6, 7, 8, 9,
10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
110, 111, 112, 113, 500, 1185, 228, 0, 1185, 0,
0, 332, -2, 0, 0, 0, 0, 0, 500, 0,
1298, 0, 0, 0, 0, 0, 1311, 0, 0, 0,
0, 0, 0, 1272, -2, 1100, 1100, 0, 1100, 1100,
1100, 0, 0, 1311, 0, 1187, 0, 0, 1182, 1183,
1297, -2, 1320, 0, 0, 1318, 1287, 0, 0, -2,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 499, 1180, 1184, 306, 307,
1263, 1789, 1816, 1817, 1818, 1827, 1828, 1829, 1830, 1831,
1832, 1833, 1834, 1835, 1836, 1837, 1838, 1839, 1840, 1841,
1842, 1843, 1844, 1845, 1846, 1847, 1848, 1849, 1850, 1851,
1852, 1853, 1854, 1855, 1856, 1857, 1858, 1859, 1860, 1861,
1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870, 1871,
1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880, 1881,
1882, 1883, 1884, 1885, 1886, 1887, 1888, 1889, 1890, 1891,
1892, 1893, 1894, 1895, 1896, 1897, 1898, 1899, 1900, 1901,
1902, 1903, 1904, 1905, 1906, 1907, 1908, 1909, 1910, 1911,
1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
1922, 1923, 1924, 1925, 1926, 1927, 1928, 1929, 1930, 1931,
1932, 1933, 1934, 1935, 1936, 1937, 1938, 1939, 1940, 1941,
1942, 1943, 1944, 1945, 1946, 1947, 1948, 1949, 1950, 1951,
1952, 1953, 1954, 1955, 1956, 1957, 1958, 1959, 1960, 1961,
1962, 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1970, 1971,
1972, 1973, 1974, 1975, 1976, 1977, 1978, 1979, 1980, 1981,
1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1991,
1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011,
2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020, 2021,
2022, 2023, 2024, 2025, 2026, 2027, 2028, 2029, 2030, 2031,
2032, 2033, 2034, 2035, 2036, 2037, 2038, 2039, 2040, 2041,
2042, 2043, 2044, 2045, 2046, 2047, 2048, 2049, 2050, 2051,
2052, 2053, 2054, 2055, 2056, 2057, 2058, 2059, 2060, 2061,
2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071,
2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081,
2082, 2083, 2084, 2085, 2086, 2087, 2088, 2089, 2090, 2091,
2092, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2101,
2102, 2103, 2104, 2105, 2106, 2107, 2108, 2109, 2110, 2111,
2112, 2113, 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121,
1165, 500, 166, 1946, 2021, 1864, 0, 2107, 2044, 1850,
2012, -2, 2007, 2071, 185, 0, 0, 331, 0, 0,
0, 157, 0, 488, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 354, 355, 0, 0, 360, 865, 678, 1223,
1981, 1225, 1264, 0, 0, 0, 229, 230, 231, 232,
963, 964, 966, 0, 1811, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
0, 0, 702, 703, 704, 705, 707, 708, 709, 710,
711, 712, 0, 1222, 1192, 1185, 1298, 0, 1196, 1197,
1198, 1199, 1200, 1201, 1202, 361, 783, 785, 0, -2,
-2, -2, -2, 1828, 1996, 804, 804, -2, -2, 801,
802, 1813, 0, 0, 1810, 784, 0, 808, 809, 813,
414, 414, 414, 414, 1081, 1117, 1794, 0, 1310, 1080,
2044, 1214, 0, 0, 0, 0, 980, 981, 0, 0,
808, 1832, 769, 1084, 1098, 1099, 1110, 1110, 1087, 0,
1088, 1089, 0, 1090, 2011, 1092, 0, 1082, 1083, 1189,
0, 1186, 211, 2107, 2044, 2021, 215, 218, 2107, 2044,
2021, 222, -2, 1284, 1285, -2, 0, 1314, 1314, 1314,
0, 0, 1285, 0, 1292, 1993, 1294, 1191, 0, 1315,
1317, 0, 1288, 1397, 0, 1785, 1362, 0, 2, -2,
1812, 117, 1949, 0, 0, 0, 0, 0, 0, 719,
0, 0, -2, 0, 0, 0, 1905, 1854, 0, 961,
0, 1690, 1691, 1692, 1693, 1694, 1695, 1696, 1697, 1698,
1699, 1700, 853, 0, 0, 1795, 0, -2, -2, 1821,
2122, 2123, 2124, 2125, 2126, 2127, 2128, 2129, 2130, 2131,
2132, 2133, 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141,
2142, 2143, 0, 0, 0, 117, 1790, 0, 0, 0,
0, 0, 0, 0, 1191, 1168, 0, -2, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 744,
745, 746, 747, 748, 749, 750, 751, 752, 753, 754,
755, 756, 757, 0, 759, 167, 2021, 168, 1852, 0,
0, 224, 225, 1783, 0, 0, 0, 0, 0, 175,
0, 1106, 0, 0, 1104, 0, 177, 178, 179, 206,
207, 180, 209, 210, 0, 414, 0, 117, 117, 1949,
117, 0, -2, 0, 0, 0, 500, 0, 0, 487,
503, 117, 1919, 0, 0, 568, 0, 0, 0, 0,
0, 1854, 1905, 637, 0, 0, 868, 0, -2, 117,
1155, 0, 356, 357, 358, 359, 1224, 1226, 0, 0,
0, 0, 1403, 965, 967, 144, 1919, 1787, 146, 1919,
1949, 152, 1919, 0, 504, 1919, 0, 706, 285, 1919,
0, 1919, 285, 1854, 1905, 0, 1919, 0, 1919, 285,
717, 0, 1919, 0, 1919, 0, 0, 0, 1919, 1145,
1919, 0, 1219, 0, 1298, 1194, 0, 1203, 1211, 1206,
1207, 1208, 2111, 0, 786, 0, 803, 0, 0, 0,
804, 804, 0, 0, 0, 804, 804, 0, 804, 804,
1814, 1815, 0, 0, 0, 810, 0, 815, 0, 816,
817, 818, 1241, 1401, 1078, 0, 1095, 0, 0, 0,
983, 983, 983, 0, 0, 0, 0, 0, 0, 1085,
1109, 1086, 1096, 0, 1097, 1091, 726, 1185, 1188, 0,
1174, 1176, 1177, 1178, 1179, 212, 0, 214, 219, 0,
221, -2, 0, 1331, 1355, 1352, 0, 1328, 1329, 1356,
0, 0, 0, 0, 1312, 1313, 0, 0, 0, 1274,
1275, 0, 1293, 0, 0, 1300, 1777, 1781, 1782, 1500,
0, 0, 0, 0, 1591, 0, 1581, 1582, 1768, 0,
1585, 1586, 1587, 2084, 0, 1701, 1969, 2103, 1760, 1797,
1798, 1799, 1800, 1801, 0, 0, 0, 1807, 1808, 1809,
1759, 1600, 1601, 1603, 1605, 1607, 1609, 1610, 1611, 1612,
1613, -2, 0, 2085, 2099, 2100, 2106, 2109, 2110, 2096,
2081, 2087, 2092, 2114, 2115, 2116, 2117, 2118, 2119, 2120,
2121, 1433, 1434, 1435, 1436, -2, 1890, -2, -2, -2,
-2, -2, -2, -2, -2, -2, -2, 2093, -2, -2,
-2, -2, -2, -2, -2, 1456, 1457, 1462, 1463, 1475,
0, 1363, 1398, 1399, 0, 1786, 1766, 0, 0, 0,
1774, 1772, 1773, 121, 0, 0, 116, 0, 121, 143,
0, 0, 217, 0, 0, 0, 150, 151, 233, 1017,
0, 237, 0, 1017, 1017, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 280, 0, 234, 0, 0,
235, 461, 0, 0, 464, 0, 0, 467, 479, 0,
0, 0, 117, -2, 236, 0, 0, 299, 0, 0,
0, 0, 300, 0, 0, 720, 0, 515, 500, 0,
0, 0, 576, 577, 0, 0, 0, 0, 0, 0,
0, 0, 0, 950, 0, 0, 0, 947, 0, 0,
924, 925, 926, 927, 0, 0, 0, 0, 934, 843,
0, 1796, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 1143, 0, 1141, 0, 0, 0, 1148, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 480, 0, 482, 1181, 1164,
0, 0, 0, 0, 0, 0, 1854, 1905, 0, 0,
0, 0, 0, 0, 0, 758, 0, 0, 0, 181,
182, 223, 226, 227, 0, 169, 171, 187, 189, 190,
195, 196, 197, 198, 170, 172, 173, 186, 174, 199,
200, 0, 203, 204, 205, 1480, 0, 1108, 184, 0,
1102, 1103, 1105, 183, 1652, 1653, 334, 117, 312, 313,
314, 119, 119, 0, 119, 0, 155, 414, 1919, 0,
463, 414, 0, 0, 0, 0, 0, 509, 0, 0,
0, 1919, 572, 0, 0, 595, 596, 0, 0, 0,
0, 634, 0, 635, 0, 679, 0, 636, 0, 0,
0, 0, 0, 645, 0, 870, 867, 0, 1425, 0,
1426, 1427, 1428, 1429, 1430, 1497, 1440, 1441, 1442, 1443,
1444, 1445, 1453, 1440, 1440, 1440, 1451, 1454, 1455, 1460,
1461, 1483, 1483, 1819, 1820, 1473, 1473, 1473, 1468, 0,
1473, 0, 1120, 0, 1154, 0, 1269, 0, 1266, 1267,
1268, 0, 1238, 0, 1404, 0, 0, 0, 0, 0,
0, 0, 285, 1919, 0, 0, 573, 283, 284, 0,
0, 0, 632, 0, 1919, 0, 1919, 285, 0, 285,
0, 701, 0, 285, 0, 285, 0, 0, 975, 0,
0, 0, 713, 714, 715, 716, 0, 1711, 1193, 1298,
0, 1205, 1209, 1210, 0, 787, 788, 789, 790, 0,
0, 793, 794, 795, 0, 0, 798, 0, 0, 0,
819, 0, 2017, 0, 1910, 1875, 1889, 1938, 1939, 2012,
2039, 2048, 0, 814, 848, 0, 0, 415, 417, 0,
1251, 0, 0, 1079, 1298, 0, 1717, 0, 977, 982,
978, 979, 0, 0, 850, 0, 500, 768, 2011, 1094,
285, 0, 0, 1169, 1172, 0, 213, 220, 1331, 1355,
1278, 1330, 1279, 1354, 1357, 0, 0, 1361, 1361, 1326,
1327, 1332, 1337, 1338, 1342, 1346, 1347, 1335, 0, 1339,
-2, 1289, 1290, 1291, 1321, 1322, 885, 1295, 0, 0,
1365, 0, 0, 0, 0, 0, 1692, 1693, 1694, 1695,
1696, 1697, 1698, 1699, 1700, 1517, 0, 0, 1707, 0,
1709, 0, 0, 1534, 1536, 1771, 0, 0, 0, 1780,
-2, 0, 1705, 1504, 1505, 1516, 1520, 0, 1556, 1583,
-2, 1711, 0, 1588, 1589, 1590, 0, 0, 0, -2,
0, 1802, 1804, 1497, 0, 0, 1758, 0, 0, 0,
0, 0, 1725, 0, 1738, 1744, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447, 1459, 1472, 1467, 1466, 1449, 0, 1448, 1446, 0,
1473, 1473, 1471, 1450, 0, 1479, 0, 0, 0, 1477,
0, 1465, 0, 0, 0, 1767, 1762, 1763, 1792, 1822,
1823, 1824, 1825, 1826, 2144, 2145, 2146, 2147, 2148, 2149,
2150, 2151, 2152, 2153, 2154, 2155, 2156, 2157, 2158, 2159,
2160, 2161, 2162, 2163, 2164, 2165, 2166, 2167, 2168, 2169,
2170, 2171, 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179,
2180, 2181, 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189,
2190, 2191, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199,
2200, 2201, 2202, 2203, 2204, 2205, 2206, 2207, 2208, 2209,
2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219,
0, 0, 1776, 138, 141, 0, 0, 142, 0, 216,
0, 587, 588, 589, 0, 0, 0, 0, 0, 1016,
0, 0, 0, 278, 0, 0, 239, 0, 252, 0,
0, 405, 0, 0, 0, -2, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 272, 0,
274, 275, 0, 279, 0, 0, 465, 0, 0, 0,
468, 472, 473, 466, 0, 478, 470, 471, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 721, 513, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 547, 585, 1017, 0, 575, 0, 0, 569,
570, 0, 0, 0, 0, 0, 0, 962, 851, 852,
0, 0, 0, 0, 946, 948, 949, 0, 2012, 0,
0, 0, 0, 930, 931, 932, 933, 0, 895, 896,
0, 0, 906, 907, 908, 909, 911, -2, 914, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 1139, 2039, 0, 0, 0, 0, 0,
282, 0, 0, 1151, 872, 0, 0, 0, 0, 0,
0, 0, 1008, 1009, 0, 0, 0, 0, 0, 0,
481, 1167, 1793, 1166, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 760, 0, 1784, 0, 1497, 0, 1107, 1101, 0,
0, 194, 0, 0, 318, 115, 137, 0, 148, 159,
158, 160, 161, 162, 163, 164, 165, -2, 0, 363,
0, 445, 0, 0, 460, 462, 292, 0, 0, 0,
0, 0, 502, 506, 0, 547, 0, 0, 0, 0,
571, 567, 0, 598, 600, 601, 602, 604, 597, 0,
0, 633, 0, 660, 1819, 0, 648, 651, 0, 0,
1413, 0, 0, 0, 0, 0, 0, 646, 0, 869,
0, 1417, 1421, 1425, 1431, 0, 1484, 1485, 1486, 1487,
1488, 1489, 1498, 1437, 1440, 0, 1118, 378, 0, 0,
0, 0, 1265, 1235, 1228, 0, 0, 1411, 0, 1365,
1253, 1255, 1256, 0, 0, 1768, 1405, 1788, 145, 147,
0, 0, 153, 497, 0, 505, 285, 1919, 285, 285,
0, 0, 0, 0, 0, 955, 0, 698, 285, 718,
951, 0, 953, 0, 0, 285, 0, 1146, 1221, 0,
1195, 1204, 414, 791, 792, 796, 797, 799, 800, 0,
820, 821, 0, 0, 824, 841, 825, 826, 827, 0,
829, 830, 831, 0, 0, 0, 850, 0, 0, 0,
811, 413, 1239, 1250, 1402, 0, 0, 0, 1246, 1248,
1212, 1215, 1216, 1217, 1218, 1213, 0, 0, 0, 0,
808, 285, 0, 0, 0, 0, 0, 0, 0, 770,
771, 0, 773, 774, 775, 776, 777, 778, 779, 780,
1093, 723, 724, 725, 1170, 1171, 1191, 1175, 1282, 1283,
1353, 1251, 0, 1251, 0, 0, 1340, 0, 1336, 1344,
1345, 0, 0, 888, 883, 884, 1298, 1190, 1408, 0,
1778, 1299, -2, -2, 1946, 1912, -2, 0, 1309, 1501,
1502, 0, 1506, 1507, 1508, 1509, 1510, 1511, -2, -2,
1514, 1515, 1518, 1519, -2, 1708, 1710, 0, 1771, 0,
-2, 0, 1533, 0, 1538, 1540, 1542, 0, 0, 1557,
0, 0, 1770, 1552, 1750, 0, 0, 1687, 1688, 1689,
1779, 0, 1537, 0, 0, 1769, 1768, 0, 0, 0,
1721, 1722, 0, 0, 1685, 1668, 0, 0, 0, 0,
0, 1713, 1715, 0, -2, 1805, 0, 1757, 1753, 0,
0, 0, 0, 0, 0, 0, 0, 1726, 1727, 1728,
1729, 1730, 1731, 1732, 1733, 0, 0, 0, 0, 1559,
0, 0, 0, 1591, 0, 1711, 1743, 0, 0, 0,
0, 0, 1711, 0, 1749, 0, 0, 0, 0, 0,
0, 0, 0, 1648, 1651, 0, 0, 0, 0, 0,
0, 0, 1469, 1470, 0, 1481, 0, 0, 0, 0,
0, 1400, 1764, 0, 1775, 120, 0, 0, 0, 126,
0, 0, 0, 130, 1005, 140, 1006, 0, 149, 991,
238, 997, 0, 256, 257, 259, 277, 1029, 0, 293,
296, 240, 553, 0, 0, 0, 622, 0, 0, 0,
0, 0, 1019, 1919, 285, 1919, 285, 253, 258, 260,
263, 264, 0, 0, 0, 0, 268, 265, 266, 267,
271, 273, 276, 0, 557, 559, 2022, 1831, 1891, 0,
564, 1000, 998, 1034, 469, 474, 475, 477, 999, 1035,
301, 0, 285, 0, 667, 1014, 0, 1037, 1050, 1919,
285, 1019, 722, 514, 0, 0, 0, 519, 520, 521,
522, 0, 0, 1854, 1905, 527, 528, 0, 533, 534,
0, 0, 537, 538, 1024, 0, -2, 0, 0, 544,
0, 0, 0, 0, 0, 0, 996, 1055, 0, 1791,
0, 0, 0, 957, 0, 0, 0, 0, 0, 0,
0, 0, 990, 1025, 1043, 0, 0, 928, 929, 894,
0, 0, 905, 0, 904, 1440, 910, 1440, 1440, 0,
0, 0, 657, 658, 985, 1021, 1039, 986, 1022, 1040,
987, 1041, 1142, 0, 1140, 988, 281, 1023, 1150, 1042,
1149, 285, 1153, 0, 0, 995, 1049, 0, 1007, 1051,
0, 0, 0, 0, 0, 1156, 0, 0, 0, 0,
0, 0, 0, 0, 0, 727, 761, 762, 0, 0,
0, 0, 0, 0, 0, 733, 0, 0, 0, 0,
0, 0, 0, 0, 176, 188, 201, 0, 191, 192,
193, 0, 310, 311, 333, 309, 315, 0, 118, 131,
0, 0, 0, 0, 0, 154, 0, 0, 0, 362,
366, 417, 370, 371, 372, 0, 365, 449, 0, 0,
0, 459, 0, 0, 0, 485, 0, 942, 920, 0,
0, 937, 938, 0, 899, 900, 917, 0, 501, 508,
0, 0, 0, 117, 553, 546, 0, 0, 581, 582,
584, 0, 0, 0, 0, 0, 0, 0, 659, 0,
0, 647, 0, 0, 0, 687, 0, 1412, 1414, 664,
640, 641, 642, 643, 644, 0, 0, 0, 0, 1418,
1422, 0, 0, 0, 0, 0, 0, 1438, 414, 1119,
1138, 1138, 1138, 1138, 1138, 1138, 0, 1138, 1147, 0,
0, 1270, 1271, 1227, 0, 0, 1231, 1768, 1230, 1235,
0, 1237, 1366, 1368, 1370, 1375, 1377, 0, 1406, 1785,
0, 1411, 0, 0, 0, 1260, 1259, 0, 0, 285,
548, 0, 574, 629, 0, 285, 0, 285, 0, 285,
700, 285, 285, 0, 1076, 0, 1712, 840, 835, 837,
0, 0, 823, 0, 828, 483, 0, 0, 0, 844,
0, 812, 416, 1240, 1242, 1249, 1243, 1244, 0, 0,
1718, 699, 285, 0, 845, 0, 0, 0, 0, 0,
0, 0, 772, 1173, 1358, 1360, 1359, 1333, 0, 0,
1323, 888, 1703, 0, 1325, 886, 887, 0, 1349, 0,
1364, 0, 0, 1311, 1311, 1311, 1311, 0, 1308, 0,
0, -2, -2, 0, 0, 0, 1553, 0, -2, 1535,
1539, 1541, 1543, 0, 0, 1558, 0, 0, 0, 0,
0, 1554, 0, 0, 1584, 1712, 1719, 1720, 0, 1702,
1684, 1592, 0, 1668, 0, 0, 0, 1320, 1320, 1668,
0, 0, 0, 1754, 0, 0, 1602, 1604, 1606, 1608,
0, 1616, 0, 1617, 0, 0, 1618, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 1574, 0, 0,
0, 1561, 1562, 1573, 1619, 1741, 1742, 0, 0, 0,
0, 0, 0, 1624, 0, 1748, 0, 1626, 1627, 1628,
1629, 0, 0, 0, 1635, 0, 0, 1656, 0, 0,
0, 0, 1439, 1452, 1483, 1482, 1483, 1475, 1474, 1316,
0, 122, 123, 0, 0, 0, 0, 129, 0, 0,
290, 0, 0, 0, 378, 0, 404, 0, 0, 408,
0, 0, 622, 0, 871, 0, 241, 0, 0, 0,
0, 251, 0, 249, 0, 255, 261, 269, 262, 270,
556, 0, 560, 561, 562, 563, 565, 302, 287, 0,
0, 0, 0, 304, 0, 0, 516, 517, 0, 523,
524, 0, 0, 0, 0, 0, 0, 535, 0, 550,
545, 0, 0, 540, 489, 541, 543, 542, 1001, 0,
1036, 0, 0, 0, 0, 0, 0, 0, 0, 1026,
1046, 0, 0, 0, 0, 0, 0, 854, 855, 856,
922, 0, 897, 902, 903, 0, 1440, 984, 1020, 1038,
1138, 1152, 992, 1044, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 1045, 728,
729, 730, 0, 0, 0, 0, 0, 737, 0, 739,
0, 0, 0, 0, 0, -2, 317, 319, 320, 1155,
1155, 323, 324, 1155, 1155, 0, 0, 0, 339, 346,
132, 133, 134, 0, 0, 553, 0, 361, 441, 0,
397, 445, 0, 451, 0, 442, 443, 444, 0, 455,
0, 1222, 0, 291, 0, 0, 0, 913, 891, 921,
0, 935, 939, 936, 898, 0, 0, 0, 0, 1069,
1070, 1071, 1072, 510, 511, 512, 509, 539, 553, 580,
0, 0, 0, 606, 599, 603, 0, 622, 661, 0,
662, 652, 653, 654, 655, 656, 1969, 1693, 1692, 649,
650, 0, 638, 0, 0, 663, 665, 872, 0, 1423,
0, 0, 0, 1497, 1490, 1491, 1492, 1493, 1494, 1495,
1496, 0, 292, 0, 1137, 0, 0, 0, 0, 0,
1138, 0, 377, 0, 380, 381, 0, 0, 384, 942,
0, 0, 0, 0, 390, 0, 0, 1262, 1234, 0,
0, 1233, 1236, 1409, 1871, 0, 0, 0, 0, 0,
1394, 1394, 1394, 1392, 1369, 0, 1388, 1371, 0, 1388,
1376, -2, 1377, 0, -2, 0, 1235, 1254, 1257, 0,
0, 590, 0, 498, 285, 285, 694, 0, 696, 0,
956, 952, 954, 0, 285, 805, 0, 0, 838, 822,
842, 0, 0, 0, 0, 847, 1245, 1247, 806, 0,
849, 850, 0, 0, 0, 0, 0, 1334, 1341, 1324,
0, 1296, 1351, 0, 1407, 1301, 1302, 0, 0, 0,
0, 1307, 1503, 1522, 0, 0, -2, 0, 0, 1526,
0, 0, 0, -2, 0, 0, 0, 1751, 0, -2,
1686, 1723, 1666, 1667, 1671, 1593, 1803, 0, 1714, 1668,
1668, 0, 0, 1319, 0, 1599, 1716, 1497, 1752, 1756,
0, 0, 1724, 1735, 1736, 1560, 1563, 1564, 1565, 1566,
1567, 1568, -2, -2, 1571, 1572, 0, 0, 0, 1579,
1737, 1739, 1740, 1745, 1746, 0, 1621, 1622, 1623, 1747,
0, 1630, 0, 1634, 1657, 1845, 1649, 1650, 0, 0,
0, 1637, 0, 1646, 0, 0, 1458, 1478, 1476, 1464,
1765, 124, 125, 127, 128, 592, 1002, 294, 295, 298,
375, 0, 622, 942, 623, 0, 625, 0, 454, 0,
410, 0, 422, 0, 879, 879, 0, 0, 0, 0,
0, 245, 0, 1018, 246, 0, 285, 285, 558, 1416,
0, 668, 669, 285, 285, 0, 0, 0, 0, 529,
530, 531, 532, 536, 989, 1054, 490, 0, 688, 671,
0, 0, 0, 689, 690, 0, 0, 0, 0, 0,
0, 0, 0, 958, 960, 959, 0, 860, 861, 862,
863, 0, 0, 923, 915, 0, 0, 1004, 1010, 1030,
1011, 1031, 1052, 1012, 1032, 1013, 1033, 1053, 0, 0,
0, 0, 0, 0, 0, 731, 732, 734, 0, 740,
741, 742, 743, 1497, 117, 0, 337, 0, 0, 0,
0, 0, 0, 330, 316, 0, 341, 342, 343, 344,
0, 135, 136, 586, 0, 445, 0, 367, 394, 449,
0, 368, 373, 374, 0, 456, 0, 0, 363, 0,
457, 0, 459, 1116, 492, 942, 0, 941, 0, 901,
918, 919, 0, 507, 578, 583, 0, 0, 612, 608,
621, 631, 0, 1415, 639, 0, 0, 0, 0, 1424,
1419, 0, 1432, 1499, 0, 1121, 1122, 1123, 1124, 1125,
1126, 1127, 1128, 1129, 1130, 1131, 1132, 1133, 0, 1135,
1136, 0, 382, 383, 391, 453, 942, 0, 388, 414,
392, 393, 0, 1229, 1232, 0, 1367, 0, 0, 0,
0, 0, 1389, 1393, 1390, 1391, 1386, 0, 0, 1386,
0, 1379, 0, 1252, 0, 1261, 0, 549, 630, 285,
285, 285, 1077, 836, 0, 484, 832, 833, 834, 0,
285, 763, 781, 782, 0, 0, 0, 0, 0, 1662,
0, 0, 1303, 1304, 1305, 1306, 1524, 1528, 0, 0,
0, 1530, -2, 0, 1546, 1548, 1550, 1555, 1673, 1670,
0, 1596, 1594, 1668, 1668, 1806, 1755, 1615, 1734, 0,
0, 0, 1580, 0, 1620, 1625, 0, 0, 2113, 0,
0, 1636, 1654, 1655, 0, 0, 0, 1641, 1960, 0,
0, 0, 554, 406, 453, 624, 628, 626, 627, 942,
942, 0, 0, 882, 0, 882, 0, 0, 242, 243,
244, 247, 287, 248, 254, 286, 1015, 303, 287, 0,
525, 526, 1003, 0, 0, 0, 677, 0, 0, 0,
994, 1028, 1048, 993, 1027, 1047, 0, 0, 0, 916,
1144, 0, 0, 0, 1161, 0, 735, 736, 0, 202,
318, 0, 321, 322, 325, 326, 327, 328, 0, 340,
0, 347, 349, 363, 449, 0, 0, 0, 451, 364,
0, 0, 450, 446, 0, 0, 0, 365, 458, 1220,
1111, 0, 496, 0, 889, 0, 944, 0, 912, 940,
1408, 0, 553, 0, 0, 0, 607, 622, 0, 0,
666, 0, 0, 973, 973, 1420, 0, 1134, 379, 0,
385, 0, 453, 0, 421, 0, 1410, 1380, 0, 1382,
0, 0, 0, 1384, 0, 0, 0, 0, 0, 1789,
1378, 1668, 1258, 591, 695, 697, 974, 839, 285, 846,
764, 765, 766, 767, 1704, 1286, 0, 1350, 1348, 1532,
1549, 1551, 1547, 1320, 0, 1668, 1597, 1598, -2, 0,
0, 0, 1631, 0, 1632, 0, 1658, 1659, 1638, 1639,
0, 1642, 1640, 297, 552, 0, 622, 453, 453, 423,
424, 1969, 885, 880, 0, 878, 885, 879, 0, 289,
285, 518, 672, 684, 0, 0, 691, 0, 0, 840,
285, 0, 0, 0, 0, 0, 0, 738, 308, 335,
329, 345, 0, 451, 0, 395, 398, 399, 400, 401,
402, 403, 396, 352, 369, 378, 447, 448, 441, 445,
0, 0, 0, 486, 495, 0, 0, 491, 0, 0,
943, 0, 553, 566, 0, 0, 605, 609, 610, 0,
620, 681, 0, 873, 973, 970, 0, 969, 1116, 0,
386, 387, 432, 0, 1163, 1381, 0, 1396, 1383, 0,
1387, 1372, 0, 1374, 807, 1661, 1663, 0, 1676, 0,
1595, -2, 0, 1577, 0, 0, 0, 1643, 1644, 555,
407, 622, 427, 0, 888, 881, 888, 882, 414, 250,
0, 305, 686, 684, 0, 675, 0, 0, 0, 857,
858, 0, 1157, 1158, 0, 1159, 1162, 348, 350, 440,
376, 445, 449, 1113, 0, 0, 493, 494, 942, 945,
1075, 579, 0, 0, 0, 0, 0, 292, 0, 968,
971, 972, 1112, 0, 389, 428, 429, 0, 418, 419,
420, 0, 1385, 1373, 0, 0, 0, 0, 0, 1672,
1578, 1633, 1647, 1660, 1645, 409, 622, 0, 0, 875,
876, 885, 421, 288, 673, 685, 686, 682, 0, 0,
692, 693, 0, 0, 449, 451, 1114, 1115, 890, 1298,
1073, 1074, 0, 611, 0, 0, 680, 451, 874, 452,
430, 0, 431, 0, 0, 0, 1395, 1664, 1665, 1669,
1674, 1677, -2, 2049, 1871, 0, 1675, 411, 0, 425,
888, 432, 674, 0, 0, 285, 1160, 451, 353, 1056,
1057, 1058, -2, 1062, 1063, 1064, 1065, 1066, 615, 612,
670, 1408, 433, 0, 436, 437, 0, 434, 0, 1679,
1680, 1681, 1682, 1683, 0, 877, 622, 683, 676, 859,
351, 0, 1272, -2, 1061, 1067, 0, 613, 616, 617,
618, 619, 0, 864, 435, 438, 439, 0, 426, 412,
1059, -2, 593, 0, 0, 1678, 1060, 614, 0, 0,
615, 0, 594,
}
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, 3, 3, 3, 3, 421, 3, 3,
426, 427, 419, 417, 430, 418, 428, 420, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 431, 429,
414, 413, 415, 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, 424, 3, 425, 422,
}
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,
82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
252, 253, 254, 255, 256, 257,
}
var yyTok3 = []int{
57600, 258, 57601, 259, 57602, 260, 57603, 261, 57604, 262,
57605, 263, 57606, 264, 57607, 265, 57608, 266, 57609, 267,
57610, 268, 57611, 269, 57612, 270, 57613, 271, 57614, 272,
57615, 273, 57616, 274, 57617, 275, 57618, 276, 57619, 277,
57620, 278, 57621, 279, 57622, 280, 57623, 281, 57624, 282,
57625, 283, 57626, 284, 57627, 285, 57628, 286, 57629, 287,
57630, 288, 57631, 289, 57632, 290, 57633, 291, 57634, 292,
57635, 293, 57636, 294, 57637, 295, 57638, 296, 57639, 297,
57640, 298, 57641, 299, 57642, 300, 57643, 301, 57644, 302,
57645, 303, 57646, 304, 57647, 305, 57648, 306, 57649, 307,
57650, 308, 57651, 309, 57652, 310, 57653, 311, 57654, 312,
57655, 313, 57656, 314, 57657, 315, 57658, 316, 57659, 317,
57660, 318, 57661, 319, 57662, 320, 57663, 321, 57664, 322,
57665, 323, 57666, 324, 57667, 325, 57668, 326, 57669, 327,
57670, 328, 57671, 329, 57672, 330, 57673, 331, 57674, 332,
57675, 333, 57676, 334, 57677, 335, 57678, 336, 57679, 337,
57680, 338, 57681, 339, 57682, 340, 57683, 341, 57684, 342,
57685, 343, 57686, 344, 57687, 345, 57688, 346, 57689, 347,
57690, 348, 57691, 349, 57692, 350, 57693, 351, 57694, 352,
57695, 353, 57696, 354, 57697, 355, 57698, 356, 57699, 357,
57700, 358, 57701, 359, 57702, 360, 57703, 361, 57704, 362,
57705, 363, 57706, 364, 57707, 365, 57708, 366, 57709, 367,
57710, 368, 57711, 369, 57712, 370, 57713, 371, 57714, 372,
57715, 373, 57716, 374, 57717, 375, 57718, 376, 57719, 377,
57720, 378, 57721, 379, 57722, 380, 57723, 381, 57724, 382,
57725, 383, 57726, 384, 57727, 385, 57728, 386, 57729, 387,
57730, 388, 57731, 389, 57732, 390, 57733, 391, 57734, 392,
57735, 393, 57736, 394, 57737, 395, 57738, 396, 57739, 397,
57740, 398, 57741, 399, 57742, 400, 57743, 401, 57744, 402,
57745, 403, 57746, 404, 57747, 405, 57748, 406, 57749, 407,
57750, 408, 57751, 409, 57752, 410, 57753, 411, 57754, 412,
57755, 416, 57756, 423, 0,
}
//line yaccpar:1
/* parser for yacc output */
var yyDebug = 0
type yyLexer interface {
Lex(lval *yySymType) int
Error(s string)
}
const yyFlag = -1000
func yyTokname(c int) string {
if c > 0 && c <= len(yyToknames) {
if yyToknames[c-1] != "" {
return yyToknames[c-1]
}
}
return fmt.Sprintf("tok-%v", c)
}
func yyStatname(s int) string {
if s >= 0 && s < len(yyStatenames) {
if yyStatenames[s] != "" {
return yyStatenames[s]
}
}
return fmt.Sprintf("state-%v", s)
}
func yylex1(lex yyLexer, lval *yySymType) int {
c := 0
char := lex.Lex(lval)
if char <= 0 {
c = yyTok1[0]
goto out
}
if char < len(yyTok1) {
c = yyTok1[char]
goto out
}
if char >= yyPrivate {
if char < yyPrivate+len(yyTok2) {
c = yyTok2[char-yyPrivate]
goto out
}
}
for i := 0; i < len(yyTok3); i += 2 {
c = yyTok3[i+0]
if c == char {
c = yyTok3[i+1]
goto out
}
}
out:
if c == 0 {
c = yyTok2[1] /* unknown char */
}
if yyDebug >= 3 {
fmt.Printf("lex %U %s\n", uint(char), yyTokname(c))
}
return c
}
func yyParse(yylex yyLexer) int {
var yyn int
var yylval yySymType
var yyVAL yySymType
yyS := make([]yySymType, yyMaxDepth)
Nerrs := 0 /* number of errors */
Errflag := 0 /* error recovery flag */
yystate := 0
yychar := -1
yyp := -1
goto yystack
ret0:
return 0
ret1:
return 1
yystack:
/* put a state and value onto the stack */
if yyDebug >= 4 {
fmt.Printf("char %v in %v\n", yyTokname(yychar), 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 yychar < 0 {
yychar = yylex1(yylex, &yylval)
}
yyn += yychar
if yyn < 0 || yyn >= yyLast {
goto yydefault
}
yyn = yyAct[yyn]
if yyChk[yyn] == yychar { /* valid shift */
yychar = -1
yyVAL = yylval
yystate = yyn
if Errflag > 0 {
Errflag--
}
goto yystack
}
yydefault:
/* default state action */
yyn = yyDef[yystate]
if yyn == -2 {
if yychar < 0 {
yychar = yylex1(yylex, &yylval)
}
/* 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 == yychar {
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("syntax error")
Nerrs++
if yyDebug >= 1 {
fmt.Printf("%s", yyStatname(yystate))
fmt.Printf("saw %s\n", yyTokname(yychar))
}
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 onn "error", pop stack */
if yyDebug >= 2 {
fmt.Printf("error recovery pops state %d, uncovers %d\n",
yyS[yyp].yys, yyS[yyp-1].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 {
fmt.Printf("error recovery discards %s\n", yyTokname(yychar))
}
if yychar == yyEofCode {
goto ret1
}
yychar = -1
goto yynewstate /* try again in the same state */
}
}
/* reduction by production yyn */
if yyDebug >= 2 {
fmt.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]
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:
//line simplegram.y:502
{
pg_yyget_extra(yyscanner).parsetree = yyS[yypt-0].list
}
case 2:
//line simplegram.y:509
{
if yyS[yypt-0].node != nil {
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
} else {
yyVAL.list = yyS[yypt-2].list
}
}
case 3:
//line simplegram.y:517
{
if yyS[yypt-0].node != nil {
yyVAL.list = list_make1(yyS[yypt-0].node)
} else {
yyVAL.list = NIL
}
}
case 4:
yyVAL.node = yyS[yypt-0].node
case 5:
yyVAL.node = yyS[yypt-0].node
case 6:
yyVAL.node = yyS[yypt-0].node
case 7:
yyVAL.node = yyS[yypt-0].node
case 8:
yyVAL.node = yyS[yypt-0].node
case 9:
yyVAL.node = yyS[yypt-0].node
case 10:
yyVAL.node = yyS[yypt-0].node
case 11:
yyVAL.node = yyS[yypt-0].node
case 12:
yyVAL.node = yyS[yypt-0].node
case 13:
yyVAL.node = yyS[yypt-0].node
case 14:
yyVAL.node = yyS[yypt-0].node
case 15:
yyVAL.node = yyS[yypt-0].node
case 16:
yyVAL.node = yyS[yypt-0].node
case 17:
yyVAL.node = yyS[yypt-0].node
case 18:
yyVAL.node = yyS[yypt-0].node
case 19:
yyVAL.node = yyS[yypt-0].node
case 20:
yyVAL.node = yyS[yypt-0].node
case 21:
yyVAL.node = yyS[yypt-0].node
case 22:
yyVAL.node = yyS[yypt-0].node
case 23:
yyVAL.node = yyS[yypt-0].node
case 24:
yyVAL.node = yyS[yypt-0].node
case 25:
yyVAL.node = yyS[yypt-0].node
case 26:
yyVAL.node = yyS[yypt-0].node
case 27:
yyVAL.node = yyS[yypt-0].node
case 28:
yyVAL.node = yyS[yypt-0].node
case 29:
yyVAL.node = yyS[yypt-0].node
case 30:
yyVAL.node = yyS[yypt-0].node
case 31:
yyVAL.node = yyS[yypt-0].node
case 32:
yyVAL.node = yyS[yypt-0].node
case 33:
yyVAL.node = yyS[yypt-0].node
case 34:
yyVAL.node = yyS[yypt-0].node
case 35:
yyVAL.node = yyS[yypt-0].node
case 36:
yyVAL.node = yyS[yypt-0].node
case 37:
yyVAL.node = yyS[yypt-0].node
case 38:
yyVAL.node = yyS[yypt-0].node
case 39:
yyVAL.node = yyS[yypt-0].node
case 40:
yyVAL.node = yyS[yypt-0].node
case 41:
yyVAL.node = yyS[yypt-0].node
case 42:
yyVAL.node = yyS[yypt-0].node
case 43:
yyVAL.node = yyS[yypt-0].node
case 44:
yyVAL.node = yyS[yypt-0].node
case 45:
yyVAL.node = yyS[yypt-0].node
case 46:
yyVAL.node = yyS[yypt-0].node
case 47:
yyVAL.node = yyS[yypt-0].node
case 48:
yyVAL.node = yyS[yypt-0].node
case 49:
yyVAL.node = yyS[yypt-0].node
case 50:
yyVAL.node = yyS[yypt-0].node
case 51:
yyVAL.node = yyS[yypt-0].node
case 52:
yyVAL.node = yyS[yypt-0].node
case 53:
yyVAL.node = yyS[yypt-0].node
case 54:
yyVAL.node = yyS[yypt-0].node
case 55:
yyVAL.node = yyS[yypt-0].node
case 56:
yyVAL.node = yyS[yypt-0].node
case 57:
yyVAL.node = yyS[yypt-0].node
case 58:
yyVAL.node = yyS[yypt-0].node
case 59:
yyVAL.node = yyS[yypt-0].node
case 60:
yyVAL.node = yyS[yypt-0].node
case 61:
yyVAL.node = yyS[yypt-0].node
case 62:
yyVAL.node = yyS[yypt-0].node
case 63:
yyVAL.node = yyS[yypt-0].node
case 64:
yyVAL.node = yyS[yypt-0].node
case 65:
yyVAL.node = yyS[yypt-0].node
case 66:
yyVAL.node = yyS[yypt-0].node
case 67:
yyVAL.node = yyS[yypt-0].node
case 68:
yyVAL.node = yyS[yypt-0].node
case 69:
yyVAL.node = yyS[yypt-0].node
case 70:
yyVAL.node = yyS[yypt-0].node
case 71:
yyVAL.node = yyS[yypt-0].node
case 72:
yyVAL.node = yyS[yypt-0].node
case 73:
yyVAL.node = yyS[yypt-0].node
case 74:
yyVAL.node = yyS[yypt-0].node
case 75:
yyVAL.node = yyS[yypt-0].node
case 76:
yyVAL.node = yyS[yypt-0].node
case 77:
yyVAL.node = yyS[yypt-0].node
case 78:
yyVAL.node = yyS[yypt-0].node
case 79:
yyVAL.node = yyS[yypt-0].node
case 80:
yyVAL.node = yyS[yypt-0].node
case 81:
yyVAL.node = yyS[yypt-0].node
case 82:
yyVAL.node = yyS[yypt-0].node
case 83:
yyVAL.node = yyS[yypt-0].node
case 84:
yyVAL.node = yyS[yypt-0].node
case 85:
yyVAL.node = yyS[yypt-0].node
case 86:
yyVAL.node = yyS[yypt-0].node
case 87:
yyVAL.node = yyS[yypt-0].node
case 88:
yyVAL.node = yyS[yypt-0].node
case 89:
yyVAL.node = yyS[yypt-0].node
case 90:
yyVAL.node = yyS[yypt-0].node
case 91:
yyVAL.node = yyS[yypt-0].node
case 92:
yyVAL.node = yyS[yypt-0].node
case 93:
yyVAL.node = yyS[yypt-0].node
case 94:
yyVAL.node = yyS[yypt-0].node
case 95:
yyVAL.node = yyS[yypt-0].node
case 96:
yyVAL.node = yyS[yypt-0].node
case 97:
yyVAL.node = yyS[yypt-0].node
case 98:
yyVAL.node = yyS[yypt-0].node
case 99:
yyVAL.node = yyS[yypt-0].node
case 100:
yyVAL.node = yyS[yypt-0].node
case 101:
yyVAL.node = yyS[yypt-0].node
case 102:
yyVAL.node = yyS[yypt-0].node
case 103:
yyVAL.node = yyS[yypt-0].node
case 104:
yyVAL.node = yyS[yypt-0].node
case 105:
yyVAL.node = yyS[yypt-0].node
case 106:
yyVAL.node = yyS[yypt-0].node
case 107:
yyVAL.node = yyS[yypt-0].node
case 108:
yyVAL.node = yyS[yypt-0].node
case 109:
yyVAL.node = yyS[yypt-0].node
case 110:
yyVAL.node = yyS[yypt-0].node
case 111:
yyVAL.node = yyS[yypt-0].node
case 112:
yyVAL.node = yyS[yypt-0].node
case 113:
yyVAL.node = yyS[yypt-0].node
case 114:
//line simplegram.y:638
{
yyVAL.node = nil
}
case 115:
//line simplegram.y:649
{
n := &CreateRoleStmt{}
n.stmt_type = ROLESTMT_ROLE
n.role = yyS[yypt-2].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 116:
//line simplegram.y:659
{
}
case 117:
//line simplegram.y:660
{
}
case 118:
//line simplegram.y:669
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 119:
//line simplegram.y:670
{
yyVAL.list = NIL
}
case 120:
//line simplegram.y:674
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 121:
//line simplegram.y:675
{
yyVAL.list = NIL
}
case 122:
//line simplegram.y:680
{
yyVAL.defelt = makeDefElem("password",
makeString(yyS[yypt-0].str))
}
case 123:
//line simplegram.y:685
{
yyVAL.defelt = makeDefElem("password", nil)
}
case 124:
//line simplegram.y:689
{
yyVAL.defelt = makeDefElem("encryptedPassword",
makeString(yyS[yypt-0].str))
}
case 125:
//line simplegram.y:694
{
yyVAL.defelt = makeDefElem("unencryptedPassword",
makeString(yyS[yypt-0].str))
}
case 126:
//line simplegram.y:699
{
yyVAL.defelt = makeDefElem("inherit", makeInteger(TRUE))
}
case 127:
//line simplegram.y:703
{
yyVAL.defelt = makeDefElem("connectionlimit", makeInteger(yyS[yypt-0].ival))
}
case 128:
//line simplegram.y:707
{
yyVAL.defelt = makeDefElem("validUntil", makeString(yyS[yypt-0].str))
}
case 129:
//line simplegram.y:712
{
yyVAL.defelt = makeDefElem("rolemembers", yyS[yypt-0].list)
}
case 130:
//line simplegram.y:716
{
/*
* We handle identifiers that aren't parser keywords with
* the following special-case codes, to avoid bloating the
* size of the main parser.
*/
switch yyS[yypt-0].str {
case "superuser":
yyVAL.defelt = makeDefElem("superuser", makeInteger(TRUE))
case "nosuperuser":
yyVAL.defelt = makeDefElem("superuser", makeInteger(FALSE))
case "createuser":
/* For backwards compatibility, synonym for SUPERUSER */
yyVAL.defelt = makeDefElem("superuser", makeInteger(TRUE))
case "nocreateuser":
/* For backwards compatibility, synonym for SUPERUSER */
yyVAL.defelt = makeDefElem("superuser", makeInteger(FALSE))
case "createrole":
yyVAL.defelt = makeDefElem("createrole", makeInteger(TRUE))
case "nocreaterole":
yyVAL.defelt = makeDefElem("createrole", makeInteger(FALSE))
case "replication":
yyVAL.defelt = makeDefElem("isreplication", makeInteger(TRUE))
case "noreplication":
yyVAL.defelt = makeDefElem("isreplication", makeInteger(FALSE))
case "createdb":
yyVAL.defelt = makeDefElem("createdb", makeInteger(TRUE))
case "nocreatedb":
yyVAL.defelt = makeDefElem("createdb", makeInteger(FALSE))
case "login":
yyVAL.defelt = makeDefElem("canlogin", makeInteger(TRUE))
case "nologin":
yyVAL.defelt = makeDefElem("canlogin", makeInteger(FALSE))
case "noinherit":
/*
* Note that INHERIT is a keyword, so it's handled by main parser, but
* NOINHERIT is handled here.
*/
yyVAL.defelt = makeDefElem("inherit", makeInteger(FALSE))
default:
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("unrecognized role option \"%s\"", yyS[yypt-0].str),
parser_errposition( /*@1*/ ))
}
}
case 131:
//line simplegram.y:761
{
yyVAL.defelt = yyS[yypt-0].defelt
}
case 132:
//line simplegram.y:764
{
yyVAL.defelt = makeDefElem("sysid", makeInteger(yyS[yypt-0].ival))
}
case 133:
//line simplegram.y:768
{
yyVAL.defelt = makeDefElem("adminmembers", yyS[yypt-0].list)
}
case 134:
//line simplegram.y:772
{
yyVAL.defelt = makeDefElem("rolemembers", yyS[yypt-0].list)
}
case 135:
//line simplegram.y:776
{
yyVAL.defelt = makeDefElem("addroleto", yyS[yypt-0].list)
}
case 136:
//line simplegram.y:780
{
yyVAL.defelt = makeDefElem("addroleto", yyS[yypt-0].list)
}
case 137:
//line simplegram.y:794
{
n := &CreateRoleStmt{}
n.stmt_type = ROLESTMT_USER
n.role = yyS[yypt-2].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 138:
//line simplegram.y:812
{
n := &AlterRoleStmt{}
n.role = yyS[yypt-2].str
n.action = +1 /* add, if there are members */
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 139:
//line simplegram.y:821
{
yyVAL.str = nil
}
case 140:
//line simplegram.y:822
{
yyVAL.str = yyS[yypt-0].str
}
case 141:
//line simplegram.y:827
{
n := &AlterRoleSetStmt{}
n.role = yyS[yypt-2].str
n.database = yyS[yypt-1].str
n.setstmt = yyS[yypt-0].vsetstmt
yyVAL.node = n
}
case 142:
//line simplegram.y:845
{
n := &AlterRoleStmt{}
n.role = yyS[yypt-2].str
n.action = +1 /* add, if there are members */
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 143:
//line simplegram.y:856
{
n := &AlterRoleSetStmt{}
n.role = yyS[yypt-1].str
n.database = nil
n.setstmt = yyS[yypt-0].vsetstmt
yyVAL.node = n
}
case 144:
//line simplegram.y:877
{
n := &DropRoleStmt{}
n.missing_ok = FALSE
n.roles = yyS[yypt-0].list
yyVAL.node = n
}
case 145:
//line simplegram.y:884
{
n := &DropRoleStmt{}
n.missing_ok = TRUE
n.roles = yyS[yypt-0].list
yyVAL.node = n
}
case 146:
//line simplegram.y:903
{
n := &DropRoleStmt{}
n.missing_ok = FALSE
n.roles = yyS[yypt-0].list
yyVAL.node = n
}
case 147:
//line simplegram.y:910
{
n := &DropRoleStmt{}
n.roles = yyS[yypt-0].list
n.missing_ok = TRUE
yyVAL.node = n
}
case 148:
//line simplegram.y:927
{
n := &CreateRoleStmt{}
n.stmt_type = ROLESTMT_GROUP
n.role = yyS[yypt-2].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 149:
//line simplegram.y:945
{
n := &AlterRoleStmt{}
n.role = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.options = list_make1(makeDefElem("rolemembers",
yyS[yypt-0].list))
yyVAL.node = n
}
case 150:
//line simplegram.y:955
{
yyVAL.ival = +1
}
case 151:
//line simplegram.y:956
{
yyVAL.ival = -1
}
case 152:
//line simplegram.y:969
{
n := &DropRoleStmt{}
n.missing_ok = FALSE
n.roles = yyS[yypt-0].list
yyVAL.node = n
}
case 153:
//line simplegram.y:976
{
n := &DropRoleStmt{}
n.missing_ok = TRUE
n.roles = yyS[yypt-0].list
yyVAL.node = n
}
case 154:
//line simplegram.y:993
{
n := &CreateSchemaStmt{}
/* One can omit the schema name or the authorization id. */
if yyS[yypt-3].str != nil {
n.schemaname = yyS[yypt-3].str
} else {
n.schemaname = yyS[yypt-1].str
}
n.authid = yyS[yypt-1].str
n.schemaElts = yyS[yypt-0].list
yyVAL.node = n
}
case 155:
//line simplegram.y:1005
{
n := &CreateSchemaStmt{}
/* ...but not both */
n.schemaname = yyS[yypt-1].str
n.authid = nil
n.schemaElts = yyS[yypt-0].list
yyVAL.node = n
}
case 156:
//line simplegram.y:1015
{
yyVAL.str = yyS[yypt-0].str
}
case 157:
//line simplegram.y:1016
{
yyVAL.str = nil
}
case 158:
//line simplegram.y:1020
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].node)
}
case 159:
//line simplegram.y:1021
{
yyVAL.list = NIL
}
case 160:
yyVAL.node = yyS[yypt-0].node
case 161:
yyVAL.node = yyS[yypt-0].node
case 162:
yyVAL.node = yyS[yypt-0].node
case 163:
yyVAL.node = yyS[yypt-0].node
case 164:
yyVAL.node = yyS[yypt-0].node
case 165:
yyVAL.node = yyS[yypt-0].node
case 166:
//line simplegram.y:1049
{
n := yyS[yypt-0].vsetstmt
n.is_local = false
yyVAL.node = n
}
case 167:
//line simplegram.y:1055
{
n := yyS[yypt-0].vsetstmt
n.is_local = true
yyVAL.node = n
}
case 168:
//line simplegram.y:1061
{
n := yyS[yypt-0].vsetstmt
n.is_local = false
yyVAL.node = n
}
case 169:
//line simplegram.y:1070
{
n := &VariableSetStmt{}
n.kind = VAR_SET_VALUE
n.name = yyS[yypt-2].str
n.args = yyS[yypt-0].list
yyVAL.vsetstmt = n
}
case 170:
//line simplegram.y:1078
{
n := &VariableSetStmt{}
n.kind = VAR_SET_VALUE
n.name = yyS[yypt-2].str
n.args = yyS[yypt-0].list
yyVAL.vsetstmt = n
}
case 171:
//line simplegram.y:1086
{
n := &VariableSetStmt{}
n.kind = VAR_SET_DEFAULT
n.name = yyS[yypt-2].str
yyVAL.vsetstmt = n
}
case 172:
//line simplegram.y:1093
{
n := &VariableSetStmt{}
n.kind = VAR_SET_DEFAULT
n.name = yyS[yypt-2].str
yyVAL.vsetstmt = n
}
case 173:
//line simplegram.y:1100
{
n := &VariableSetStmt{}
n.kind = VAR_SET_CURRENT
n.name = yyS[yypt-2].str
yyVAL.vsetstmt = n
}
case 174:
//line simplegram.y:1108
{
n := &VariableSetStmt{}
n.kind = VAR_SET_VALUE
n.name = "timezone"
if yyS[yypt-0].node != nil {
n.args = list_make1(yyS[yypt-0].node)
} else {
n.kind = VAR_SET_DEFAULT
}
yyVAL.vsetstmt = n
}
case 175:
//line simplegram.y:1120
{
n := &VariableSetStmt{}
n.kind = VAR_SET_MULTI
n.name = "TRANSACTION"
n.args = yyS[yypt-0].list
yyVAL.vsetstmt = n
}
case 176:
//line simplegram.y:1128
{
n := &VariableSetStmt{}
n.kind = VAR_SET_MULTI
n.name = "SESSION CHARACTERISTICS"
n.args = yyS[yypt-0].list
yyVAL.vsetstmt = n
}
case 177:
//line simplegram.y:1136
{
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("current database cannot be changed"),
parser_errposition( /*@2*/ ))
yyVAL.vsetstmt = nil /*not reached*/
}
case 178:
//line simplegram.y:1143
{
n := &VariableSetStmt{}
n.kind = VAR_SET_VALUE
n.name = "search_path"
n.args = list_make1(makeStringConst(yyS[yypt-0].str /*, @2*/ ))
yyVAL.vsetstmt = n
}
case 179:
//line simplegram.y:1151
{
n := &VariableSetStmt{}
n.kind = VAR_SET_VALUE
n.name = "client_encoding"
if yyS[yypt-0].str != nil {
n.args = list_make1(makeStringConst(yyS[yypt-0].str /*, @2*/ ))
} else {
n.kind = VAR_SET_DEFAULT
}
yyVAL.vsetstmt = n
}
case 180:
//line simplegram.y:1163
{
n := &VariableSetStmt{}
n.kind = VAR_SET_VALUE
n.name = "role"
n.args = list_make1(makeStringConst(yyS[yypt-0].str /*, @2*/ ))
yyVAL.vsetstmt = n
}
case 181:
//line simplegram.y:1171
{
n := &VariableSetStmt{}
n.kind = VAR_SET_VALUE
n.name = "session_authorization"
n.args = list_make1(makeStringConst(yyS[yypt-0].str /*, @3*/ ))
yyVAL.vsetstmt = n
}
case 182:
//line simplegram.y:1179
{
n := &VariableSetStmt{}
n.kind = VAR_SET_DEFAULT
n.name = "session_authorization"
yyVAL.vsetstmt = n
}
case 183:
//line simplegram.y:1186
{
n := &VariableSetStmt{}
n.kind = VAR_SET_VALUE
n.name = "xmloption"
if yyS[yypt-0].ival == XMLOPTION_DOCUMENT {
n.args = list_make1(makeStringConst("DOCUMENT" /*, @3*/ ))
} else {
n.args = list_make1(makeStringConst("CONTENT" /*, @3*/ ))
}
yyVAL.vsetstmt = n
}
case 184:
//line simplegram.y:1199
{
n := &VariableSetStmt{}
n.kind = VAR_SET_MULTI
n.name = "TRANSACTION SNAPSHOT"
n.args = list_make1(makeStringConst(yyS[yypt-0].str /*, @3*/ ))
yyVAL.vsetstmt = n
}
case 185:
//line simplegram.y:1208
{
yyVAL.str = yyS[yypt-0].str
}
case 186:
//line simplegram.y:1210
{
yyVAL.str = palloc(strlen(yyS[yypt-2].str) + strlen(yyS[yypt-0].str) + 2)
sprintf(yyVAL.str, "%s.%s", yyS[yypt-2].str, yyS[yypt-0].str)
}
case 187:
//line simplegram.y:1216
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 188:
//line simplegram.y:1217
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 189:
//line simplegram.y:1221
{
yyVAL.node = makeStringConst(yyS[yypt-0].str /*, @1*/ )
}
case 190:
//line simplegram.y:1223
{
yyVAL.node = makeAConst(yyS[yypt-0].value /*, @1*/ )
}
case 191:
//line simplegram.y:1226
{
yyVAL.str = "read uncommitted"
}
case 192:
//line simplegram.y:1227
{
yyVAL.str = "read committed"
}
case 193:
//line simplegram.y:1228
{
yyVAL.str = "repeatable read"
}
case 194:
//line simplegram.y:1229
{
yyVAL.str = "serializable"
}
case 195:
//line simplegram.y:1233
{
yyVAL.str = "true"
}
case 196:
//line simplegram.y:1234
{
yyVAL.str = "false"
}
case 197:
//line simplegram.y:1235
{
yyVAL.str = "on"
}
case 198:
//line simplegram.y:1241
{
yyVAL.str = yyS[yypt-0].str
}
case 199:
//line simplegram.y:1254
{
yyVAL.node = makeStringConst(yyS[yypt-0].str /*, @1*/ )
}
case 200:
//line simplegram.y:1258
{
yyVAL.node = makeStringConst(yyS[yypt-0].str /*, @1*/ )
}
case 201:
//line simplegram.y:1262
{
t := yyS[yypt-2].typnam
if yyS[yypt-0].list != NIL {
n := linitial(yyS[yypt-0].list)
if (n.val.val.ival & ^(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0 {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
parser_errposition( /*@3*/ ))
}
}
t.typmods = yyS[yypt-0].list
yyVAL.node = makeStringConstCast(yyS[yypt-1].str, /*, @2*/ t)
}
case 202:
//line simplegram.y:1277
{
t := yyS[yypt-5].typnam
if yyS[yypt-0].list != NIL {
n := linitial(yyS[yypt-0].list)
if (n.val.val.ival & ^(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0 {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
parser_errposition( /*@6*/ ))
}
if list_length(yyS[yypt-0].list) != 1 {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("interval precision specified twice"),
parser_errposition( /*@1*/ ))
}
t.typmods = lappend(yyS[yypt-0].list, makeIntConst(yyS[yypt-3].ival /*, @3*/ ))
} else {
t.typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
makeIntConst(yyS[yypt-3].ival /*, @3*/ ))
}
yyVAL.node = makeStringConstCast(yyS[yypt-1].str, /*, @5*/ t)
}
case 203:
//line simplegram.y:1300
{
yyVAL.node = makeAConst(yyS[yypt-0].value /*, @1*/ )
}
case 204:
//line simplegram.y:1301
{
yyVAL.node = nil
}
case 205:
//line simplegram.y:1302
{
yyVAL.node = nil
}
case 206:
//line simplegram.y:1306
{
yyVAL.str = yyS[yypt-0].str
}
case 207:
//line simplegram.y:1307
{
yyVAL.str = nil
}
case 208:
//line simplegram.y:1308
{
yyVAL.str = nil
}
case 209:
//line simplegram.y:1312
{
yyVAL.str = yyS[yypt-0].str
}
case 210:
//line simplegram.y:1313
{
yyVAL.str = yyS[yypt-0].str
}
case 211:
//line simplegram.y:1318
{
n := &VariableSetStmt{}
n.kind = VAR_RESET
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 212:
//line simplegram.y:1325
{
n := &VariableSetStmt{}
n.kind = VAR_RESET
n.name = "timezone"
yyVAL.node = n
}
case 213:
//line simplegram.y:1332
{
n := &VariableSetStmt{}
n.kind = VAR_RESET
n.name = "transaction_isolation"
yyVAL.node = n
}
case 214:
//line simplegram.y:1339
{
n := &VariableSetStmt{}
n.kind = VAR_RESET
n.name = "session_authorization"
yyVAL.node = n
}
case 215:
//line simplegram.y:1346
{
n := &VariableSetStmt{}
n.kind = VAR_RESET_ALL
yyVAL.node = n
}
case 216:
//line simplegram.y:1355
{
yyVAL.vsetstmt = yyS[yypt-0].vsetstmt
}
case 217:
//line simplegram.y:1356
{
yyVAL.vsetstmt = yyS[yypt-0].node
}
case 218:
//line simplegram.y:1362
{
n := &VariableShowStmt{}
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 219:
//line simplegram.y:1368
{
n := &VariableShowStmt{}
n.name = "timezone"
yyVAL.node = n
}
case 220:
//line simplegram.y:1374
{
n := &VariableShowStmt{}
n.name = "transaction_isolation"
yyVAL.node = n
}
case 221:
//line simplegram.y:1380
{
n := &VariableShowStmt{}
n.name = "session_authorization"
yyVAL.node = n
}
case 222:
//line simplegram.y:1386
{
n := &VariableShowStmt{}
n.name = "all"
yyVAL.node = n
}
case 223:
//line simplegram.y:1396
{
n := &ConstraintsSetStmt{}
n.constraints = yyS[yypt-1].list
n.deferred = yyS[yypt-0].boolean
yyVAL.node = n
}
case 224:
//line simplegram.y:1405
{
yyVAL.list = NIL
}
case 225:
//line simplegram.y:1406
{
yyVAL.list = yyS[yypt-0].list
}
case 226:
//line simplegram.y:1410
{
yyVAL.boolean = TRUE
}
case 227:
//line simplegram.y:1411
{
yyVAL.boolean = FALSE
}
case 228:
//line simplegram.y:1420
{
n := &CheckPointStmt{}
yyVAL.node = n
}
case 229:
//line simplegram.y:1435
{
n := &DiscardStmt{}
n.target = DISCARD_ALL
yyVAL.node = n
}
case 230:
//line simplegram.y:1441
{
n := &DiscardStmt{}
n.target = DISCARD_TEMP
yyVAL.node = n
}
case 231:
//line simplegram.y:1447
{
n := &DiscardStmt{}
n.target = DISCARD_TEMP
yyVAL.node = n
}
case 232:
//line simplegram.y:1453
{
n := &DiscardStmt{}
n.target = DISCARD_PLANS
yyVAL.node = n
}
case 233:
//line simplegram.y:1471
{
n := &AlterTableStmt{}
n.relation = yyS[yypt-1].rangevar
n.cmds = yyS[yypt-0].list
n.relkind = OBJECT_TABLE
yyVAL.node = n
}
case 234:
//line simplegram.y:1479
{
n := &AlterTableStmt{}
n.relation = yyS[yypt-1].rangevar
n.cmds = yyS[yypt-0].list
n.relkind = OBJECT_INDEX
yyVAL.node = n
}
case 235:
//line simplegram.y:1487
{
n := &AlterTableStmt{}
n.relation = yyS[yypt-1].rangevar
n.cmds = yyS[yypt-0].list
n.relkind = OBJECT_SEQUENCE
yyVAL.node = n
}
case 236:
//line simplegram.y:1495
{
n := &AlterTableStmt{}
n.relation = yyS[yypt-1].rangevar
n.cmds = yyS[yypt-0].list
n.relkind = OBJECT_VIEW
yyVAL.node = n
}
case 237:
//line simplegram.y:1505
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 238:
//line simplegram.y:1506
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 239:
//line simplegram.y:1512
{
n := &AlterTableCmd{}
n.subtype = AT_AddColumn
n.def = yyS[yypt-0].node
yyVAL.node = n
}
case 240:
//line simplegram.y:1520
{
n := &AlterTableCmd{}
n.subtype = AT_AddColumn
n.def = yyS[yypt-0].node
yyVAL.node = n
}
case 241:
//line simplegram.y:1528
{
n := &AlterTableCmd{}
n.subtype = AT_ColumnDefault
n.name = yyS[yypt-1].str
n.def = yyS[yypt-0].node
yyVAL.node = n
}
case 242:
//line simplegram.y:1537
{
n := &AlterTableCmd{}
n.subtype = AT_DropNotNull
n.name = yyS[yypt-3].str
yyVAL.node = n
}
case 243:
//line simplegram.y:1545
{
n := &AlterTableCmd{}
n.subtype = AT_SetNotNull
n.name = yyS[yypt-3].str
yyVAL.node = n
}
case 244:
//line simplegram.y:1553
{
n := &AlterTableCmd{}
n.subtype = AT_SetStatistics
n.name = yyS[yypt-3].str
n.def = makeInteger(yyS[yypt-0].ival)
yyVAL.node = n
}
case 245:
//line simplegram.y:1562
{
n := &AlterTableCmd{}
n.subtype = AT_SetOptions
n.name = yyS[yypt-2].str
n.def = yyS[yypt-0].list
yyVAL.node = n
}
case 246:
//line simplegram.y:1571
{
n := &AlterTableCmd{}
n.subtype = AT_ResetOptions
n.name = yyS[yypt-2].str
n.def = yyS[yypt-0].list
yyVAL.node = n
}
case 247:
//line simplegram.y:1580
{
n := &AlterTableCmd{}
n.subtype = AT_SetStorage
n.name = yyS[yypt-3].str
n.def = makeString(yyS[yypt-0].str)
yyVAL.node = n
}
case 248:
//line simplegram.y:1589
{
n := &AlterTableCmd{}
n.subtype = AT_DropColumn
n.name = yyS[yypt-1].str
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = TRUE
yyVAL.node = n
}
case 249:
//line simplegram.y:1599
{
n := &AlterTableCmd{}
n.subtype = AT_DropColumn
n.name = yyS[yypt-1].str
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = FALSE
yyVAL.node = n
}
case 250:
//line simplegram.y:1612
{
n := &AlterTableCmd{}
ColumnDef * def = &ColumnDef{}
n.subtype = AT_AlterColumnType
n.name = yyS[yypt-5].str
n.def = def
/* We only use these three fields of the ColumnDef node */
def.typeName = yyS[yypt-2].typnam
def.collClause = yyS[yypt-1].node
def.raw_default = yyS[yypt-0].node
yyVAL.node = n
}
case 251:
//line simplegram.y:1625
{
n := &AlterTableCmd{}
n.subtype = AT_AlterColumnGenericOptions
n.name = yyS[yypt-1].str
n.def = yyS[yypt-0].list
yyVAL.node = n
}
case 252:
//line simplegram.y:1634
{
n := &AlterTableCmd{}
n.subtype = AT_AddConstraint
n.def = yyS[yypt-0].node
yyVAL.node = n
}
case 253:
//line simplegram.y:1642
{
n := &AlterTableCmd{}
n.subtype = AT_ValidateConstraint
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 254:
//line simplegram.y:1650
{
n := &AlterTableCmd{}
n.subtype = AT_DropConstraint
n.name = yyS[yypt-1].str
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = TRUE
yyVAL.node = n
}
case 255:
//line simplegram.y:1660
{
n := &AlterTableCmd{}
n.subtype = AT_DropConstraint
n.name = yyS[yypt-1].str
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = FALSE
yyVAL.node = n
}
case 256:
//line simplegram.y:1670
{
n := &AlterTableCmd{}
n.subtype = AT_AddOids
yyVAL.node = n
}
case 257:
//line simplegram.y:1677
{
n := &AlterTableCmd{}
n.subtype = AT_DropOids
yyVAL.node = n
}
case 258:
//line simplegram.y:1684
{
n := &AlterTableCmd{}
n.subtype = AT_ClusterOn
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 259:
//line simplegram.y:1692
{
n := &AlterTableCmd{}
n.subtype = AT_DropCluster
n.name = nil
yyVAL.node = n
}
case 260:
//line simplegram.y:1700
{
n := &AlterTableCmd{}
n.subtype = AT_EnableTrig
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 261:
//line simplegram.y:1708
{
n := &AlterTableCmd{}
n.subtype = AT_EnableAlwaysTrig
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 262:
//line simplegram.y:1716
{
n := &AlterTableCmd{}
n.subtype = AT_EnableReplicaTrig
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 263:
//line simplegram.y:1724
{
n := &AlterTableCmd{}
n.subtype = AT_EnableTrigAll
yyVAL.node = n
}
case 264:
//line simplegram.y:1731
{
n := &AlterTableCmd{}
n.subtype = AT_EnableTrigUser
yyVAL.node = n
}
case 265:
//line simplegram.y:1738
{
n := &AlterTableCmd{}
n.subtype = AT_DisableTrig
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 266:
//line simplegram.y:1746
{
n := &AlterTableCmd{}
n.subtype = AT_DisableTrigAll
yyVAL.node = n
}
case 267:
//line simplegram.y:1753
{
n := &AlterTableCmd{}
n.subtype = AT_DisableTrigUser
yyVAL.node = n
}
case 268:
//line simplegram.y:1760
{
n := &AlterTableCmd{}
n.subtype = AT_EnableRule
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 269:
//line simplegram.y:1768
{
n := &AlterTableCmd{}
n.subtype = AT_EnableAlwaysRule
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 270:
//line simplegram.y:1776
{
n := &AlterTableCmd{}
n.subtype = AT_EnableReplicaRule
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 271:
//line simplegram.y:1784
{
n := &AlterTableCmd{}
n.subtype = AT_DisableRule
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 272:
//line simplegram.y:1792
{
n := &AlterTableCmd{}
n.subtype = AT_AddInherit
n.def = yyS[yypt-0].rangevar
yyVAL.node = n
}
case 273:
//line simplegram.y:1800
{
n := &AlterTableCmd{}
n.subtype = AT_DropInherit
n.def = yyS[yypt-0].rangevar
yyVAL.node = n
}
case 274:
//line simplegram.y:1808
{
n := &AlterTableCmd{}
TypeName * def = makeTypeNameFromNameList(yyS[yypt-0].list)
// /*def.location = @2;*/
n.subtype = AT_AddOf
n.def = def
yyVAL.node = n
}
case 275:
//line simplegram.y:1818
{
n := &AlterTableCmd{}
n.subtype = AT_DropOf
yyVAL.node = n
}
case 276:
//line simplegram.y:1825
{
n := &AlterTableCmd{}
n.subtype = AT_ChangeOwner
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 277:
//line simplegram.y:1833
{
n := &AlterTableCmd{}
n.subtype = AT_SetTableSpace
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 278:
//line simplegram.y:1841
{
n := &AlterTableCmd{}
n.subtype = AT_SetRelOptions
n.def = yyS[yypt-0].list
yyVAL.node = n
}
case 279:
//line simplegram.y:1849
{
n := &AlterTableCmd{}
n.subtype = AT_ResetRelOptions
n.def = yyS[yypt-0].list
yyVAL.node = n
}
case 280:
//line simplegram.y:1856
{
n := &AlterTableCmd{}
n.subtype = AT_GenericOptions
n.def = yyS[yypt-0].list
yyVAL.node = n
}
case 281:
//line simplegram.y:1865
{
yyVAL.node = yyS[yypt-0].node
}
case 282:
//line simplegram.y:1866
{
yyVAL.node = nil
}
case 283:
//line simplegram.y:1870
{
yyVAL.dbehavior = DROP_CASCADE
}
case 284:
//line simplegram.y:1871
{
yyVAL.dbehavior = DROP_RESTRICT
}
case 285:
//line simplegram.y:1872
{
yyVAL.dbehavior = DROP_RESTRICT /* default */
}
case 286:
//line simplegram.y:1877
{
n := &CollateClause{}
n.arg = nil
n.collname = yyS[yypt-0].list
// /*n.location = @1;*/
yyVAL.node = n
}
case 287:
//line simplegram.y:1884
{
yyVAL.node = nil
}
case 288:
//line simplegram.y:1888
{
yyVAL.node = yyS[yypt-0].node
}
case 289:
//line simplegram.y:1889
{
yyVAL.node = nil
}
case 290:
//line simplegram.y:1893
{
yyVAL.list = yyS[yypt-1].list
}
case 291:
//line simplegram.y:1896
{
yyVAL.list = yyS[yypt-0].list
}
case 292:
//line simplegram.y:1897
{
yyVAL.list = NIL
}
case 293:
//line simplegram.y:1901
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 294:
//line simplegram.y:1902
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].defelt)
}
case 295:
//line simplegram.y:1908
{
yyVAL.defelt = makeDefElem(yyS[yypt-2].str, yyS[yypt-0].node)
}
case 296:
//line simplegram.y:1912
{
yyVAL.defelt = makeDefElem(yyS[yypt-0].str, nil)
}
case 297:
//line simplegram.y:1916
{
yyVAL.defelt = makeDefElemExtended(yyS[yypt-4].str, yyS[yypt-2].str, yyS[yypt-0].node,
DEFELEM_UNSPEC)
}
case 298:
//line simplegram.y:1921
{
yyVAL.defelt = makeDefElemExtended(yyS[yypt-2].str, yyS[yypt-0].str, nil, DEFELEM_UNSPEC)
}
case 299:
//line simplegram.y:1936
{
n := &AlterTableStmt{}
/* can't use qualified_name, sigh */
n.relation = makeRangeVarFromAnyName(yyS[yypt-1].list, /*, @3*/ yyscanner)
n.cmds = yyS[yypt-0].list
n.relkind = OBJECT_TYPE
yyVAL.node = n
}
case 300:
//line simplegram.y:1947
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 301:
//line simplegram.y:1948
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 302:
//line simplegram.y:1954
{
n := &AlterTableCmd{}
n.subtype = AT_AddColumn
n.def = yyS[yypt-1].node
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 303:
//line simplegram.y:1963
{
n := &AlterTableCmd{}
n.subtype = AT_DropColumn
n.name = yyS[yypt-1].str
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = TRUE
yyVAL.node = n
}
case 304:
//line simplegram.y:1973
{
n := &AlterTableCmd{}
n.subtype = AT_DropColumn
n.name = yyS[yypt-1].str
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = FALSE
yyVAL.node = n
}
case 305:
//line simplegram.y:1983
{
n := &AlterTableCmd{}
ColumnDef * def = &ColumnDef{}
n.subtype = AT_AlterColumnType
n.name = yyS[yypt-5].str
n.def = def
n.behavior = yyS[yypt-0].dbehavior
/* We only use these three fields of the ColumnDef node */
def.typeName = yyS[yypt-2].typnam
def.collClause = yyS[yypt-1].node
def.raw_default = nil
yyVAL.node = n
}
case 306:
//line simplegram.y:2007
{
n := &ClosePortalStmt{}
n.portalname = yyS[yypt-0].str
yyVAL.node = n
}
case 307:
//line simplegram.y:2013
{
n := &ClosePortalStmt{}
n.portalname = nil
yyVAL.node = n
}
case 308:
//line simplegram.y:2041
{
n := &CopyStmt{}
n.relation = yyS[yypt-7].rangevar
n.query = nil
n.attlist = yyS[yypt-6].list
n.is_from = yyS[yypt-4].boolean
n.filename = yyS[yypt-3].str
n.options = NIL
/* Concatenate user-supplied flags */
switch {
case yyS[yypt-8].defelt:
n.options = lappend(n.options, yyS[yypt-8].defelt)
case yyS[yypt-5].defelt:
n.options = lappend(n.options, yyS[yypt-5].defelt)
case yyS[yypt-2].defelt:
n.options = lappend(n.options, yyS[yypt-2].defelt)
case yyS[yypt-0].list:
n.options = list_concat(n.options, yyS[yypt-0].list)
}
yyVAL.node = n
}
case 309:
//line simplegram.y:2064
{
n := &CopyStmt{}
n.relation = nil
n.query = yyS[yypt-4].node
n.attlist = NIL
n.is_from = false
n.filename = yyS[yypt-2].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 310:
//line simplegram.y:2077
{
yyVAL.boolean = TRUE
}
case 311:
//line simplegram.y:2078
{
yyVAL.boolean = FALSE
}
case 312:
//line simplegram.y:2087
{
yyVAL.str = yyS[yypt-0].str
}
case 313:
//line simplegram.y:2088
{
yyVAL.str = nil
}
case 314:
//line simplegram.y:2089
{
yyVAL.str = nil
}
case 315:
//line simplegram.y:2092
{
yyVAL.list = yyS[yypt-0].list
}
case 316:
//line simplegram.y:2093
{
yyVAL.list = yyS[yypt-1].list
}
case 317:
//line simplegram.y:2098
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 318:
//line simplegram.y:2099
{
yyVAL.list = NIL
}
case 319:
//line simplegram.y:2104
{
yyVAL.defelt = makeDefElem("format", makeString("binary"))
}
case 320:
//line simplegram.y:2108
{
yyVAL.defelt = makeDefElem("oids", makeInteger(TRUE))
}
case 321:
//line simplegram.y:2112
{
yyVAL.defelt = makeDefElem("delimiter", makeString(yyS[yypt-0].str))
}
case 322:
//line simplegram.y:2116
{
yyVAL.defelt = makeDefElem("null", makeString(yyS[yypt-0].str))
}
case 323:
//line simplegram.y:2120
{
yyVAL.defelt = makeDefElem("format", makeString("csv"))
}
case 324:
//line simplegram.y:2124
{
yyVAL.defelt = makeDefElem("header", makeInteger(TRUE))
}
case 325:
//line simplegram.y:2128
{
yyVAL.defelt = makeDefElem("quote", makeString(yyS[yypt-0].str))
}
case 326:
//line simplegram.y:2132
{
yyVAL.defelt = makeDefElem("escape", makeString(yyS[yypt-0].str))
}
case 327:
//line simplegram.y:2136
{
yyVAL.defelt = makeDefElem("force_quote", yyS[yypt-0].list)
}
case 328:
//line simplegram.y:2140
{
yyVAL.defelt = makeDefElem("force_quote", &A_Star{})
}
case 329:
//line simplegram.y:2144
{
yyVAL.defelt = makeDefElem("force_not_null", yyS[yypt-0].list)
}
case 330:
//line simplegram.y:2148
{
yyVAL.defelt = makeDefElem("encoding", makeString(yyS[yypt-0].str))
}
case 331:
//line simplegram.y:2157
{
yyVAL.defelt = makeDefElem("format", makeString("binary"))
}
case 332:
//line simplegram.y:2160
{
yyVAL.defelt = nil
}
case 333:
//line simplegram.y:2165
{
yyVAL.defelt = makeDefElem("oids", makeInteger(TRUE))
}
case 334:
//line simplegram.y:2168
{
yyVAL.defelt = nil
}
case 335:
//line simplegram.y:2173
{
yyVAL.defelt = makeDefElem("delimiter", makeString(yyS[yypt-0].str))
}
case 336:
//line simplegram.y:2176
{
yyVAL.defelt = nil
}
case 337:
//line simplegram.y:2180
{
}
case 338:
//line simplegram.y:2181
{
}
case 339:
//line simplegram.y:2187
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 340:
//line simplegram.y:2191
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].defelt)
}
case 341:
//line simplegram.y:2198
{
yyVAL.defelt = makeDefElem(yyS[yypt-1].str, yyS[yypt-0].node)
}
case 342:
//line simplegram.y:2204
{
yyVAL.node = makeString(yyS[yypt-0].str)
}
case 343:
//line simplegram.y:2205
{
yyVAL.node = yyS[yypt-0].value
}
case 344:
//line simplegram.y:2206
{
yyVAL.node = &A_Star{}
}
case 345:
//line simplegram.y:2207
{
yyVAL.node = yyS[yypt-1].list
}
case 346:
//line simplegram.y:2208
{
yyVAL.node = nil
}
case 347:
//line simplegram.y:2213
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 348:
//line simplegram.y:2217
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 349:
//line simplegram.y:2224
{
yyVAL.node = makeString(yyS[yypt-0].str)
}
case 350:
//line simplegram.y:2237
{
n := &CreateStmt{}
yyS[yypt-7].rangevar.relpersistence = yyS[yypt-9].ival
n.relation = yyS[yypt-7].rangevar
n.tableElts = yyS[yypt-5].list
n.inhRelations = yyS[yypt-3].list
n.constraints = NIL
n.options = yyS[yypt-2].list
n.oncommit = yyS[yypt-1].oncommit
n.tablespacename = yyS[yypt-0].str
n.if_not_exists = false
yyVAL.node = n
}
case 351:
//line simplegram.y:2253
{
n := &CreateStmt{}
yyS[yypt-7].rangevar.relpersistence = yyS[yypt-12].ival
n.relation = yyS[yypt-7].rangevar
n.tableElts = yyS[yypt-5].list
n.inhRelations = yyS[yypt-3].list
n.constraints = NIL
n.options = yyS[yypt-2].list
n.oncommit = yyS[yypt-1].oncommit
n.tablespacename = yyS[yypt-0].str
n.if_not_exists = true
yyVAL.node = n
}
case 352:
//line simplegram.y:2268
{
n := &CreateStmt{}
yyS[yypt-6].rangevar.relpersistence = yyS[yypt-8].ival
n.relation = yyS[yypt-6].rangevar
n.tableElts = yyS[yypt-3].list
n.ofTypename = makeTypeNameFromNameList(yyS[yypt-4].list)
// n.ofTypename.location = @6;
n.constraints = NIL
n.options = yyS[yypt-2].list
n.oncommit = yyS[yypt-1].oncommit
n.tablespacename = yyS[yypt-0].str
n.if_not_exists = false
yyVAL.node = n
}
case 353:
//line simplegram.y:2284
{
n := &CreateStmt{}
yyS[yypt-6].rangevar.relpersistence = yyS[yypt-11].ival
n.relation = yyS[yypt-6].rangevar
n.tableElts = yyS[yypt-3].list
n.ofTypename = makeTypeNameFromNameList(yyS[yypt-4].list)
// n.ofTypename.location = @9;
n.constraints = NIL
n.options = yyS[yypt-2].list
n.oncommit = yyS[yypt-1].oncommit
n.tablespacename = yyS[yypt-0].str
n.if_not_exists = true
yyVAL.node = n
}
case 354:
//line simplegram.y:2307
{
yyVAL.ival = RELPERSISTENCE_TEMP
}
case 355:
//line simplegram.y:2308
{
yyVAL.ival = RELPERSISTENCE_TEMP
}
case 356:
//line simplegram.y:2309
{
yyVAL.ival = RELPERSISTENCE_TEMP
}
case 357:
//line simplegram.y:2310
{
yyVAL.ival = RELPERSISTENCE_TEMP
}
case 358:
//line simplegram.y:2311
{
yyVAL.ival = RELPERSISTENCE_TEMP
}
case 359:
//line simplegram.y:2312
{
yyVAL.ival = RELPERSISTENCE_TEMP
}
case 360:
//line simplegram.y:2313
{
yyVAL.ival = RELPERSISTENCE_UNLOGGED
}
case 361:
//line simplegram.y:2314
{
yyVAL.ival = RELPERSISTENCE_PERMANENT
}
case 362:
//line simplegram.y:2318
{
yyVAL.list = yyS[yypt-0].list
}
case 363:
//line simplegram.y:2319
{
yyVAL.list = NIL
}
case 364:
//line simplegram.y:2323
{
yyVAL.list = yyS[yypt-1].list
}
case 365:
//line simplegram.y:2324
{
yyVAL.list = NIL
}
case 366:
//line simplegram.y:2329
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 367:
//line simplegram.y:2333
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 368:
//line simplegram.y:2340
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 369:
//line simplegram.y:2344
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 370:
//line simplegram.y:2350
{
yyVAL.node = yyS[yypt-0].node
}
case 371:
//line simplegram.y:2351
{
yyVAL.node = yyS[yypt-0].node
}
case 372:
//line simplegram.y:2352
{
yyVAL.node = yyS[yypt-0].node
}
case 373:
//line simplegram.y:2356
{
yyVAL.node = yyS[yypt-0].node
}
case 374:
//line simplegram.y:2357
{
yyVAL.node = yyS[yypt-0].node
}
case 375:
//line simplegram.y:2361
{
n := &ColumnDef{}
n.colname = yyS[yypt-3].str
n.typeName = yyS[yypt-2].typnam
n.inhcount = 0
n.is_local = true
n.is_not_null = false
n.is_from_type = false
n.storage = 0
n.raw_default = nil
n.cooked_default = nil
n.collOid = InvalidOid
n.fdwoptions = yyS[yypt-1].list
SplitColQualList(yyS[yypt-0].list, &n.constraints, &n.collClause,
yyscanner)
yyVAL.node = n
}
case 376:
//line simplegram.y:2381
{
n := &ColumnDef{}
n.colname = yyS[yypt-3].str
n.typeName = nil
n.inhcount = 0
n.is_local = true
n.is_not_null = false
n.is_from_type = false
n.storage = 0
n.raw_default = nil
n.cooked_default = nil
n.collOid = InvalidOid
SplitColQualList(yyS[yypt-0].list, &n.constraints, &n.collClause,
yyscanner)
yyVAL.node = n
}
case 377:
//line simplegram.y:2400
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].node)
}
case 378:
//line simplegram.y:2401
{
yyVAL.list = NIL
}
case 379:
//line simplegram.y:2406
{
n := yyS[yypt-0].node
Assert(IsA(n, Constraint))
n.conname = yyS[yypt-1].str
// //n.location = @1;
yyVAL.node = n
}
case 380:
//line simplegram.y:2413
{
yyVAL.node = yyS[yypt-0].node
}
case 381:
//line simplegram.y:2414
{
yyVAL.node = yyS[yypt-0].node
}
case 382:
//line simplegram.y:2416
{
/*
* Note: the CollateClause is momentarily included in
* the list built by ColQualList, but we split it out
* again in SplitColQualList.
*/
n := &CollateClause{}
n.arg = nil
n.collname = yyS[yypt-0].list
// n.location = @1;
yyVAL.node = n
}
case 383:
//line simplegram.y:2446
{
n := &Constraint{}
n.contype = CONSTR_NOTNULL
// n.location = @1;
yyVAL.node = n
}
case 384:
//line simplegram.y:2453
{
n := &Constraint{}
n.contype = CONSTR_NULL
// n.location = @1;
yyVAL.node = n
}
case 385:
//line simplegram.y:2460
{
n := &Constraint{}
n.contype = CONSTR_UNIQUE
// n.location = @1;
n.keys = nil
n.options = yyS[yypt-1].list
n.indexname = nil
n.indexspace = yyS[yypt-0].str
yyVAL.node = n
}
case 386:
//line simplegram.y:2471
{
n := &Constraint{}
n.contype = CONSTR_PRIMARY
// n.location = @1;
n.keys = nil
n.options = yyS[yypt-1].list
n.indexname = nil
n.indexspace = yyS[yypt-0].str
yyVAL.node = n
}
case 387:
//line simplegram.y:2482
{
n := &Constraint{}
n.contype = CONSTR_CHECK
// n.location = @1;
n.raw_expr = yyS[yypt-1].node
n.cooked_expr = nil
yyVAL.node = n
}
case 388:
//line simplegram.y:2491
{
n := &Constraint{}
n.contype = CONSTR_DEFAULT
// n.location = @1;
n.raw_expr = yyS[yypt-0].node
n.cooked_expr = nil
yyVAL.node = n
}
case 389:
//line simplegram.y:2500
{
n := &Constraint{}
n.contype = CONSTR_FOREIGN
// n.location = @1;
n.pktable = yyS[yypt-3].rangevar
n.fk_attrs = NIL
n.pk_attrs = yyS[yypt-2].list
n.fk_matchtype = yyS[yypt-1].ival
n.fk_upd_action = (yyS[yypt-0].ival >> 8)
n.fk_del_action = (yyS[yypt-0].ival & 0xFF)
n.skip_validation = false
n.initially_valid = true
yyVAL.node = n
}
case 390:
//line simplegram.y:2533
{
n := &Constraint{}
n.contype = CONSTR_ATTR_DEFERRABLE
// n.location = @1;
yyVAL.node = n
}
case 391:
//line simplegram.y:2540
{
n := &Constraint{}
n.contype = CONSTR_ATTR_NOT_DEFERRABLE
// n.location = @1;
yyVAL.node = n
}
case 392:
//line simplegram.y:2547
{
n := &Constraint{}
n.contype = CONSTR_ATTR_DEFERRED
// n.location = @1;
yyVAL.node = n
}
case 393:
//line simplegram.y:2554
{
n := &Constraint{}
n.contype = CONSTR_ATTR_IMMEDIATE
// n.location = @1;
yyVAL.node = n
}
case 394:
//line simplegram.y:2573
{
n := &InhRelation{}
n.relation = yyS[yypt-1].rangevar
n.options = yyS[yypt-0].ival
yyVAL.node = n
}
case 395:
//line simplegram.y:2582
{
yyVAL.ival = yyS[yypt-2].ival | yyS[yypt-0].ival
}
case 396:
//line simplegram.y:2583
{
yyVAL.ival = yyS[yypt-2].ival & ^yyS[yypt-0].ival
}
case 397:
//line simplegram.y:2584
{
yyVAL.ival = 0
}
case 398:
//line simplegram.y:2588
{
yyVAL.ival = CREATE_TABLE_LIKE_DEFAULTS
}
case 399:
//line simplegram.y:2589
{
yyVAL.ival = CREATE_TABLE_LIKE_CONSTRAINTS
}
case 400:
//line simplegram.y:2590
{
yyVAL.ival = CREATE_TABLE_LIKE_INDEXES
}
case 401:
//line simplegram.y:2591
{
yyVAL.ival = CREATE_TABLE_LIKE_STORAGE
}
case 402:
//line simplegram.y:2592
{
yyVAL.ival = CREATE_TABLE_LIKE_COMMENTS
}
case 403:
//line simplegram.y:2593
{
yyVAL.ival = CREATE_TABLE_LIKE_ALL
}
case 404:
//line simplegram.y:2603
{
n := yyS[yypt-0].node
Assert(IsA(n, Constraint))
n.conname = yyS[yypt-1].str
// n.location = @1;
yyVAL.node = n
}
case 405:
//line simplegram.y:2610
{
yyVAL.node = yyS[yypt-0].node
}
case 406:
//line simplegram.y:2615
{
n := &Constraint{}
n.contype = CONSTR_CHECK
// n.location = @1;
n.raw_expr = yyS[yypt-2].node
n.cooked_expr = nil
processCASbits(yyS[yypt-0].ival, /*, @5*/ "CHECK",
nil, nil, &n.skip_validation,
yyscanner)
n.initially_valid = !n.skip_validation
yyVAL.node = n
}
case 407:
//line simplegram.y:2629
{
n := &Constraint{}
n.contype = CONSTR_UNIQUE
// n.location = @1;
n.keys = yyS[yypt-4].list
n.options = yyS[yypt-2].list
n.indexname = nil
n.indexspace = yyS[yypt-1].str
processCASbits(yyS[yypt-0].ival, /*, @7*/ "UNIQUE",
&n.deferrable, &n.initdeferred, nil,
yyscanner)
yyVAL.node = n
}
case 408:
//line simplegram.y:2643
{
n := &Constraint{}
n.contype = CONSTR_UNIQUE
// n.location = @1;
n.keys = NIL
n.options = NIL
n.indexname = yyS[yypt-1].str
n.indexspace = nil
processCASbits(yyS[yypt-0].ival, /*, @3*/ "UNIQUE",
&n.deferrable, &n.initdeferred, nil,
yyscanner)
yyVAL.node = n
}
case 409:
//line simplegram.y:2658
{
n := &Constraint{}
n.contype = CONSTR_PRIMARY
// n.location = @1;
n.keys = yyS[yypt-4].list
n.options = yyS[yypt-2].list
n.indexname = nil
n.indexspace = yyS[yypt-1].str
processCASbits(yyS[yypt-0].ival, /*, @8*/ "PRIMARY KEY",
&n.deferrable, &n.initdeferred, nil,
yyscanner)
yyVAL.node = n
}
case 410:
//line simplegram.y:2672
{
n := &Constraint{}
n.contype = CONSTR_PRIMARY
// n.location = @1;
n.keys = NIL
n.options = NIL
n.indexname = yyS[yypt-1].str
n.indexspace = nil
processCASbits(yyS[yypt-0].ival, /*, @4*/ "PRIMARY KEY",
&n.deferrable, &n.initdeferred, nil,
yyscanner)
yyVAL.node = n
}
case 411:
//line simplegram.y:2688
{
n := &Constraint{}
n.contype = CONSTR_EXCLUSION
// n.location = @1;
n.access_method = yyS[yypt-7].str
n.exclusions = yyS[yypt-5].list
n.options = yyS[yypt-3].list
n.indexname = nil
n.indexspace = yyS[yypt-2].str
n.where_clause = yyS[yypt-1].node
processCASbits(yyS[yypt-0].ival, /*, @9*/ "EXCLUDE",
&n.deferrable, &n.initdeferred, nil,
yyscanner)
yyVAL.node = n
}
case 412:
//line simplegram.y:2705
{
n := &Constraint{}
n.contype = CONSTR_FOREIGN
// n.location = @1;
n.pktable = yyS[yypt-4].rangevar
n.fk_attrs = yyS[yypt-7].list
n.pk_attrs = yyS[yypt-3].list
n.fk_matchtype = yyS[yypt-2].ival
n.fk_upd_action = (yyS[yypt-1].ival >> 8)
n.fk_del_action = (yyS[yypt-1].ival & 0xFF)
processCASbits(yyS[yypt-0].ival, /*, @11*/ "FOREIGN KEY",
&n.deferrable, &n.initdeferred,
&n.skip_validation,
yyscanner)
n.initially_valid = !n.skip_validation
yyVAL.node = n
}
case 413:
//line simplegram.y:2725
{
yyVAL.list = yyS[yypt-1].list
}
case 414:
//line simplegram.y:2726
{
yyVAL.list = NIL
}
case 415:
//line simplegram.y:2730
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 416:
//line simplegram.y:2731
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 417:
//line simplegram.y:2735
{
yyVAL.node = makeString(yyS[yypt-0].str)
}
case 418:
//line simplegram.y:2741
{
yyVAL.ival = FKCONSTR_MATCH_FULL
}
case 419:
//line simplegram.y:2745
{
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("MATCH PARTIAL not yet implemented"),
parser_errposition( /*@1*/ ))
yyVAL.ival = FKCONSTR_MATCH_PARTIAL
}
case 420:
//line simplegram.y:2753
{
yyVAL.ival = FKCONSTR_MATCH_UNSPECIFIED
}
case 421:
//line simplegram.y:2757
{
yyVAL.ival = FKCONSTR_MATCH_UNSPECIFIED
}
case 422:
//line simplegram.y:2763
{
yyVAL.list = list_make1(yyS[yypt-0].list)
}
case 423:
//line simplegram.y:2765
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].list)
}
case 424:
//line simplegram.y:2769
{
yyVAL.list = list_make2(yyS[yypt-2].ielem, yyS[yypt-0].list)
}
case 425:
//line simplegram.y:2774
{
yyVAL.list = list_make2(yyS[yypt-5].ielem, yyS[yypt-1].list)
}
case 426:
//line simplegram.y:2780
{
yyVAL.node = yyS[yypt-1].node
}
case 427:
//line simplegram.y:2781
{
yyVAL.node = nil
}
case 428:
//line simplegram.y:2792
{
yyVAL.ival = (yyS[yypt-0].ival << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF)
}
case 429:
//line simplegram.y:2794
{
yyVAL.ival = (FKCONSTR_ACTION_NOACTION << 8) | (yyS[yypt-0].ival & 0xFF)
}
case 430:
//line simplegram.y:2796
{
yyVAL.ival = (yyS[yypt-1].ival << 8) | (yyS[yypt-0].ival & 0xFF)
}
case 431:
//line simplegram.y:2798
{
yyVAL.ival = (yyS[yypt-0].ival << 8) | (yyS[yypt-1].ival & 0xFF)
}
case 432:
//line simplegram.y:2800
{
yyVAL.ival = (FKCONSTR_ACTION_NOACTION << 8) | (FKCONSTR_ACTION_NOACTION & 0xFF)
}
case 433:
//line simplegram.y:2803
{
yyVAL.ival = yyS[yypt-0].ival
}
case 434:
//line simplegram.y:2806
{
yyVAL.ival = yyS[yypt-0].ival
}
case 435:
//line simplegram.y:2810
{
yyVAL.ival = FKCONSTR_ACTION_NOACTION
}
case 436:
//line simplegram.y:2811
{
yyVAL.ival = FKCONSTR_ACTION_RESTRICT
}
case 437:
//line simplegram.y:2812
{
yyVAL.ival = FKCONSTR_ACTION_CASCADE
}
case 438:
//line simplegram.y:2813
{
yyVAL.ival = FKCONSTR_ACTION_SETNULL
}
case 439:
//line simplegram.y:2814
{
yyVAL.ival = FKCONSTR_ACTION_SETDEFAULT
}
case 440:
//line simplegram.y:2817
{
yyVAL.list = yyS[yypt-1].list
}
case 441:
//line simplegram.y:2818
{
yyVAL.list = NIL
}
case 442:
//line simplegram.y:2823
{
yyVAL.list = yyS[yypt-0].list
}
case 443:
//line simplegram.y:2824
{
yyVAL.list = list_make1(defWithOids(true))
}
case 444:
//line simplegram.y:2825
{
yyVAL.list = list_make1(defWithOids(false))
}
case 445:
//line simplegram.y:2826
{
yyVAL.list = NIL
}
case 446:
//line simplegram.y:2829
{
yyVAL.oncommit = ONCOMMIT_DROP
}
case 447:
//line simplegram.y:2830
{
yyVAL.oncommit = ONCOMMIT_DELETE_ROWS
}
case 448:
//line simplegram.y:2831
{
yyVAL.oncommit = ONCOMMIT_PRESERVE_ROWS
}
case 449:
//line simplegram.y:2832
{
yyVAL.oncommit = ONCOMMIT_NOOP
}
case 450:
//line simplegram.y:2835
{
yyVAL.str = yyS[yypt-0].str
}
case 451:
//line simplegram.y:2836
{
yyVAL.str = nil
}
case 452:
//line simplegram.y:2839
{
yyVAL.str = yyS[yypt-0].str
}
case 453:
//line simplegram.y:2840
{
yyVAL.str = nil
}
case 454:
//line simplegram.y:2843
{
yyVAL.str = yyS[yypt-0].str
}
case 455:
//line simplegram.y:2854
{
/*
* When the SelectStmt is a set-operation tree, we must
* stuff the INTO information into the leftmost component
* Select, because that's where analyze.c will expect
* to find it.
*/
n := findLeftmostSelect(yyS[yypt-1].node)
if n.intoClause != nil {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("CREATE TABLE AS cannot specify INTO"),
parser_errposition(exprLocation(n.intoClause)))
}
n.intoClause = yyS[yypt-3].into
/* cram additional flags into the IntoClause */
yyS[yypt-3].into.rel.relpersistence = yyS[yypt-5].ival
yyS[yypt-3].into.skipData = !(yyS[yypt-0].boolean)
yyVAL.node = yyS[yypt-1].node
}
case 456:
//line simplegram.y:2876
{
yyVAL.into = &IntoClause{}
yyVAL.into.rel = yyS[yypt-4].rangevar
yyVAL.into.colNames = yyS[yypt-3].list
yyVAL.into.options = yyS[yypt-2].list
yyVAL.into.onCommit = yyS[yypt-1].oncommit
yyVAL.into.tableSpaceName = yyS[yypt-0].str
yyVAL.into.skipData = false /* might get changed later */
}
case 457:
//line simplegram.y:2887
{
yyVAL.boolean = TRUE
}
case 458:
//line simplegram.y:2888
{
yyVAL.boolean = FALSE
}
case 459:
//line simplegram.y:2889
{
yyVAL.boolean = TRUE
}
case 460:
//line simplegram.y:2903
{
n := &CreateSeqStmt{}
yyS[yypt-1].rangevar.relpersistence = yyS[yypt-3].ival
n.sequence = yyS[yypt-1].rangevar
n.options = yyS[yypt-0].list
n.ownerId = InvalidOid
yyVAL.node = n
}
case 461:
//line simplegram.y:2915
{
n := &AlterSeqStmt{}
n.sequence = yyS[yypt-1].rangevar
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 462:
//line simplegram.y:2923
{
yyVAL.list = yyS[yypt-0].list
}
case 463:
//line simplegram.y:2924
{
yyVAL.list = NIL
}
case 464:
//line simplegram.y:2927
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 465:
//line simplegram.y:2928
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 466:
//line simplegram.y:2932
{
yyVAL.defelt = makeDefElem("cache", yyS[yypt-0].value)
}
case 467:
//line simplegram.y:2936
{
yyVAL.defelt = makeDefElem("cycle", makeInteger(TRUE))
}
case 468:
//line simplegram.y:2940
{
yyVAL.defelt = makeDefElem("cycle", makeInteger(FALSE))
}
case 469:
//line simplegram.y:2944
{
yyVAL.defelt = makeDefElem("increment", yyS[yypt-0].value)
}
case 470:
//line simplegram.y:2948
{
yyVAL.defelt = makeDefElem("maxvalue", yyS[yypt-0].value)
}
case 471:
//line simplegram.y:2952
{
yyVAL.defelt = makeDefElem("minvalue", yyS[yypt-0].value)
}
case 472:
//line simplegram.y:2956
{
yyVAL.defelt = makeDefElem("maxvalue", nil)
}
case 473:
//line simplegram.y:2960
{
yyVAL.defelt = makeDefElem("minvalue", nil)
}
case 474:
//line simplegram.y:2964
{
yyVAL.defelt = makeDefElem("owned_by", yyS[yypt-0].list)
}
case 475:
//line simplegram.y:2968
{
yyVAL.defelt = makeDefElem("start", yyS[yypt-0].value)
}
case 476:
//line simplegram.y:2972
{
yyVAL.defelt = makeDefElem("restart", nil)
}
case 477:
//line simplegram.y:2976
{
yyVAL.defelt = makeDefElem("restart", yyS[yypt-0].value)
}
case 478:
//line simplegram.y:2981
{
}
case 479:
//line simplegram.y:2982
{
}
case 480:
//line simplegram.y:2986
{
yyVAL.value = makeFloat(yyS[yypt-0].str)
}
case 481:
//line simplegram.y:2988
{
yyVAL.value = makeFloat(yyS[yypt-0].str)
doNegateFloat(yyVAL.value)
}
case 482:
//line simplegram.y:2992
{
yyVAL.value = makeInteger(yyS[yypt-0].ival)
}
case 483:
//line simplegram.y:2995
{
yyVAL.list = list_make1(yyS[yypt-0].value)
}
case 484:
//line simplegram.y:2996
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].value)
}
case 485:
//line simplegram.y:3009
{
n := &CreatePLangStmt{}
n.replace = yyS[yypt-4].boolean
n.plname = yyS[yypt-0].str
/* parameters are all to be supplied by system */
n.plhandler = NIL
n.plinline = NIL
n.plvalidator = NIL
n.pltrusted = false
yyVAL.node = n
}
case 486:
//line simplegram.y:3021
{
n := &CreatePLangStmt{}
n.replace = yyS[yypt-8].boolean
n.plname = yyS[yypt-4].str
n.plhandler = yyS[yypt-2].list
n.plinline = yyS[yypt-1].list
n.plvalidator = yyS[yypt-0].list
n.pltrusted = yyS[yypt-7].boolean
yyVAL.node = n
}
case 487:
//line simplegram.y:3034
{
yyVAL.boolean = TRUE
}
case 488:
//line simplegram.y:3035
{
yyVAL.boolean = FALSE
}
case 489:
//line simplegram.y:3043
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 490:
//line simplegram.y:3044
{
yyVAL.list = lcons(makeString(yyS[yypt-1].str), yyS[yypt-0].list)
}
case 491:
//line simplegram.y:3048
{
yyVAL.list = yyS[yypt-0].list
}
case 492:
//line simplegram.y:3049
{
yyVAL.list = NIL
}
case 493:
//line simplegram.y:3053
{
yyVAL.list = yyS[yypt-0].list
}
case 494:
//line simplegram.y:3054
{
yyVAL.list = NIL
}
case 495:
//line simplegram.y:3058
{
yyVAL.list = yyS[yypt-0].list
}
case 496:
//line simplegram.y:3059
{
yyVAL.list = NIL
}
case 497:
//line simplegram.y:3064
{
n := &DropStmt{}
n.removeType = OBJECT_LANGUAGE
n.objects = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.arguments = NIL
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = false
yyVAL.node = n
}
case 498:
//line simplegram.y:3074
{
n := &DropStmt{}
n.removeType = OBJECT_LANGUAGE
n.objects = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = true
yyVAL.node = n
}
case 499:
//line simplegram.y:3085
{
}
case 500:
//line simplegram.y:3086
{
}
case 501:
//line simplegram.y:3097
{
n := &CreateTableSpaceStmt{}
n.tablespacename = yyS[yypt-3].str
n.owner = yyS[yypt-2].str
// n.location = $6;
yyVAL.node = n
}
case 502:
//line simplegram.y:3106
{
yyVAL.str = yyS[yypt-0].str
}
case 503:
//line simplegram.y:3107
{
yyVAL.str = nil
}
case 504:
//line simplegram.y:3121
{
n := &DropTableSpaceStmt{}
n.tablespacename = yyS[yypt-0].str
n.missing_ok = false
yyVAL.node = n
}
case 505:
//line simplegram.y:3128
{
n := &DropTableSpaceStmt{}
n.tablespacename = yyS[yypt-0].str
n.missing_ok = true
yyVAL.node = n
}
case 506:
//line simplegram.y:3145
{
n := &CreateExtensionStmt{}
n.extname = yyS[yypt-2].str
n.if_not_exists = false
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 507:
//line simplegram.y:3153
{
n := &CreateExtensionStmt{}
n.extname = yyS[yypt-2].str
n.if_not_exists = true
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 508:
//line simplegram.y:3164
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 509:
//line simplegram.y:3166
{
yyVAL.list = NIL
}
case 510:
//line simplegram.y:3171
{
yyVAL.defelt = makeDefElem("schema", makeString(yyS[yypt-0].str))
}
case 511:
//line simplegram.y:3175
{
yyVAL.defelt = makeDefElem("new_version", makeString(yyS[yypt-0].str))
}
case 512:
//line simplegram.y:3179
{
yyVAL.defelt = makeDefElem("old_version", makeString(yyS[yypt-0].str))
}
case 513:
//line simplegram.y:3191
{
n := &AlterExtensionStmt{}
n.extname = yyS[yypt-2].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 514:
//line simplegram.y:3201
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 515:
//line simplegram.y:3203
{
yyVAL.list = NIL
}
case 516:
//line simplegram.y:3208
{
yyVAL.defelt = makeDefElem("new_version", makeString(yyS[yypt-0].str))
}
case 517:
//line simplegram.y:3221
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-4].str
n.action = yyS[yypt-3].ival
n.objtype = OBJECT_AGGREGATE
n.objname = yyS[yypt-1].list
n.objargs = yyS[yypt-0].list
yyVAL.node = n
}
case 518:
//line simplegram.y:3231
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-7].str
n.action = yyS[yypt-6].ival
n.objtype = OBJECT_CAST
n.objname = list_make1(yyS[yypt-3].typnam)
n.objargs = list_make1(yyS[yypt-1].typnam)
yyVAL.node = n
}
case 519:
//line simplegram.y:3241
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_COLLATION
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 520:
//line simplegram.y:3250
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_CONVERSION
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 521:
//line simplegram.y:3259
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_DOMAIN
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 522:
//line simplegram.y:3268
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_FUNCTION
n.objname = yyS[yypt-0].funwithargs.funcname
n.objargs = yyS[yypt-0].funwithargs.funcargs
yyVAL.node = n
}
case 523:
//line simplegram.y:3278
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-4].str
n.action = yyS[yypt-3].ival
n.objtype = OBJECT_LANGUAGE
n.objname = list_make1(makeString(yyS[yypt-0].str))
yyVAL.node = n
}
case 524:
//line simplegram.y:3287
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-4].str
n.action = yyS[yypt-3].ival
n.objtype = OBJECT_OPERATOR
n.objname = yyS[yypt-1].list
n.objargs = yyS[yypt-0].list
yyVAL.node = n
}
case 525:
//line simplegram.y:3297
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-6].str
n.action = yyS[yypt-5].ival
n.objtype = OBJECT_OPCLASS
n.objname = yyS[yypt-2].list
n.objargs = list_make1(makeString(yyS[yypt-0].str))
yyVAL.node = n
}
case 526:
//line simplegram.y:3307
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-6].str
n.action = yyS[yypt-5].ival
n.objtype = OBJECT_OPFAMILY
n.objname = yyS[yypt-2].list
n.objargs = list_make1(makeString(yyS[yypt-0].str))
yyVAL.node = n
}
case 527:
//line simplegram.y:3317
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_SCHEMA
n.objname = list_make1(makeString(yyS[yypt-0].str))
yyVAL.node = n
}
case 528:
//line simplegram.y:3326
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_TABLE
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 529:
//line simplegram.y:3335
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-5].str
n.action = yyS[yypt-4].ival
n.objtype = OBJECT_TSPARSER
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 530:
//line simplegram.y:3344
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-5].str
n.action = yyS[yypt-4].ival
n.objtype = OBJECT_TSDICTIONARY
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 531:
//line simplegram.y:3353
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-5].str
n.action = yyS[yypt-4].ival
n.objtype = OBJECT_TSTEMPLATE
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 532:
//line simplegram.y:3362
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-5].str
n.action = yyS[yypt-4].ival
n.objtype = OBJECT_TSCONFIGURATION
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 533:
//line simplegram.y:3371
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_SEQUENCE
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 534:
//line simplegram.y:3380
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_VIEW
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 535:
//line simplegram.y:3389
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-4].str
n.action = yyS[yypt-3].ival
n.objtype = OBJECT_FOREIGN_TABLE
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 536:
//line simplegram.y:3398
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-5].str
n.action = yyS[yypt-4].ival
n.objtype = OBJECT_FDW
n.objname = list_make1(makeString(yyS[yypt-0].str))
yyVAL.node = n
}
case 537:
//line simplegram.y:3407
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_FOREIGN_SERVER
n.objname = list_make1(makeString(yyS[yypt-0].str))
yyVAL.node = n
}
case 538:
//line simplegram.y:3416
{
n := &AlterExtensionContentsStmt{}
n.extname = yyS[yypt-3].str
n.action = yyS[yypt-2].ival
n.objtype = OBJECT_TYPE
n.objname = yyS[yypt-0].list
yyVAL.node = n
}
case 539:
//line simplegram.y:3434
{
n := &CreateFdwStmt{}
n.fdwname = yyS[yypt-2].str
n.func_options = yyS[yypt-1].list
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 540:
//line simplegram.y:3444
{
yyVAL.defelt = makeDefElem("handler", yyS[yypt-0].list)
}
case 541:
//line simplegram.y:3445
{
yyVAL.defelt = makeDefElem("handler", nil)
}
case 542:
//line simplegram.y:3446
{
yyVAL.defelt = makeDefElem("validator", yyS[yypt-0].list)
}
case 543:
//line simplegram.y:3447
{
yyVAL.defelt = makeDefElem("validator", nil)
}
case 544:
//line simplegram.y:3451
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 545:
//line simplegram.y:3452
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 546:
//line simplegram.y:3456
{
yyVAL.list = yyS[yypt-0].list
}
case 547:
//line simplegram.y:3457
{
yyVAL.list = NIL
}
case 548:
//line simplegram.y:3468
{
n := &DropStmt{}
n.removeType = OBJECT_FDW
n.objects = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.arguments = NIL
n.missing_ok = false
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 549:
//line simplegram.y:3478
{
n := &DropStmt{}
n.removeType = OBJECT_FDW
n.objects = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.arguments = NIL
n.missing_ok = true
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 550:
//line simplegram.y:3497
{
n := &AlterFdwStmt{}
n.fdwname = yyS[yypt-2].str
n.func_options = yyS[yypt-1].list
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 551:
//line simplegram.y:3505
{
n := &AlterFdwStmt{}
n.fdwname = yyS[yypt-1].str
n.func_options = yyS[yypt-0].list
n.options = NIL
yyVAL.node = n
}
case 552:
//line simplegram.y:3516
{
yyVAL.list = yyS[yypt-1].list
}
case 553:
//line simplegram.y:3517
{
yyVAL.list = NIL
}
case 554:
//line simplegram.y:3522
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 555:
//line simplegram.y:3526
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].defelt)
}
case 556:
//line simplegram.y:3533
{
yyVAL.list = yyS[yypt-1].list
}
case 557:
//line simplegram.y:3538
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 558:
//line simplegram.y:3542
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].defelt)
}
case 559:
//line simplegram.y:3549
{
yyVAL.defelt = yyS[yypt-0].defelt
}
case 560:
//line simplegram.y:3553
{
yyVAL.defelt = yyS[yypt-0].defelt
yyVAL.defelt.defaction = DEFELEM_SET
}
case 561:
//line simplegram.y:3558
{
yyVAL.defelt = yyS[yypt-0].defelt
yyVAL.defelt.defaction = DEFELEM_ADD
}
case 562:
//line simplegram.y:3563
{
yyVAL.defelt = makeDefElemExtended(nil, yyS[yypt-0].str, nil, DEFELEM_DROP)
}
case 563:
//line simplegram.y:3570
{
yyVAL.defelt = makeDefElem(yyS[yypt-1].str, yyS[yypt-0].node)
}
case 564:
//line simplegram.y:3576
{
yyVAL.str = yyS[yypt-0].str
}
case 565:
//line simplegram.y:3581
{
yyVAL.node = makeString(yyS[yypt-0].str)
}
case 566:
//line simplegram.y:3593
{
n := &CreateForeignServerStmt{}
n.servername = yyS[yypt-7].str
n.servertype = yyS[yypt-6].str
n.version = yyS[yypt-5].str
n.fdwname = yyS[yypt-1].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 567:
//line simplegram.y:3605
{
yyVAL.str = yyS[yypt-0].str
}
case 568:
//line simplegram.y:3606
{
yyVAL.str = nil
}
case 569:
//line simplegram.y:3611
{
yyVAL.str = yyS[yypt-0].str
}
case 570:
//line simplegram.y:3612
{
yyVAL.str = nil
}
case 571:
//line simplegram.y:3616
{
yyVAL.str = yyS[yypt-0].str
}
case 572:
//line simplegram.y:3617
{
yyVAL.str = nil
}
case 573:
//line simplegram.y:3628
{
n := &DropStmt{}
n.removeType = OBJECT_FOREIGN_SERVER
n.objects = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.arguments = NIL
n.missing_ok = false
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 574:
//line simplegram.y:3638
{
n := &DropStmt{}
n.removeType = OBJECT_FOREIGN_SERVER
n.objects = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.arguments = NIL
n.missing_ok = true
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 575:
//line simplegram.y:3657
{
n := &AlterForeignServerStmt{}
n.servername = yyS[yypt-2].str
n.version = yyS[yypt-1].str
n.options = yyS[yypt-0].list
n.has_version = true
yyVAL.node = n
}
case 576:
//line simplegram.y:3666
{
n := &AlterForeignServerStmt{}
n.servername = yyS[yypt-1].str
n.version = yyS[yypt-0].str
n.has_version = true
yyVAL.node = n
}
case 577:
//line simplegram.y:3674
{
n := &AlterForeignServerStmt{}
n.servername = yyS[yypt-1].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 578:
//line simplegram.y:3693
{
n := &CreateForeignTableStmt{}
yyS[yypt-4].rangevar.relpersistence = RELPERSISTENCE_PERMANENT
n.base.relation = yyS[yypt-4].rangevar
n.base.tableElts = yyS[yypt-3].list
n.base.inhRelations = NIL
n.base.if_not_exists = false
/* FDW-specific data */
n.servername = yyS[yypt-1].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 579:
//line simplegram.y:3707
{
n := &CreateForeignTableStmt{}
yyS[yypt-4].rangevar.relpersistence = RELPERSISTENCE_PERMANENT
n.base.relation = yyS[yypt-4].rangevar
n.base.tableElts = yyS[yypt-3].list
n.base.inhRelations = NIL
n.base.if_not_exists = true
/* FDW-specific data */
n.servername = yyS[yypt-1].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 580:
//line simplegram.y:3721
{
yyVAL.list = yyS[yypt-1].list
}
case 581:
//line simplegram.y:3722
{
yyVAL.list = NIL
}
case 582:
//line simplegram.y:3727
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 583:
//line simplegram.y:3731
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 584:
//line simplegram.y:3737
{
yyVAL.node = yyS[yypt-0].node
}
case 585:
//line simplegram.y:3749
{
n := &AlterTableStmt{}
n.relation = yyS[yypt-1].rangevar
n.cmds = yyS[yypt-0].list
n.relkind = OBJECT_FOREIGN_TABLE
yyVAL.node = n
}
case 586:
//line simplegram.y:3766
{
n := &CreateUserMappingStmt{}
n.username = yyS[yypt-3].str
n.servername = yyS[yypt-1].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 587:
//line simplegram.y:3777
{
yyVAL.str = "current_user"
}
case 588:
//line simplegram.y:3778
{
yyVAL.str = "current_user"
}
case 589:
//line simplegram.y:3780
{
if yyS[yypt-0].str == "public" {
yyVAL.str = nil
} else {
yyVAL.str = yyS[yypt-0].str
}
}
case 590:
//line simplegram.y:3797
{
n := &DropUserMappingStmt{}
n.username = yyS[yypt-2].str
n.servername = yyS[yypt-0].str
n.missing_ok = false
yyVAL.node = n
}
case 591:
//line simplegram.y:3805
{
n := &DropUserMappingStmt{}
n.username = yyS[yypt-2].str
n.servername = yyS[yypt-0].str
n.missing_ok = true
yyVAL.node = n
}
case 592:
//line simplegram.y:3822
{
n := &AlterUserMappingStmt{}
n.username = yyS[yypt-3].str
n.servername = yyS[yypt-1].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 593:
//line simplegram.y:3843
{
n := &CreateTrigStmt{}
n.trigname = yyS[yypt-12].str
n.relation = yyS[yypt-8].rangevar
n.funcname = yyS[yypt-3].list
n.args = yyS[yypt-1].list
n.row = yyS[yypt-7].boolean
n.timing = yyS[yypt-11].ival
n.events = intVal(linitial(yyS[yypt-10].list))
n.columns = lsecond(yyS[yypt-10].list)
n.whenClause = yyS[yypt-6].node
n.isconstraint = FALSE
n.deferrable = FALSE
n.initdeferred = FALSE
n.constrrel = nil
yyVAL.node = n
}
case 594:
//line simplegram.y:3864
{
n := &CreateTrigStmt{}
n.trigname = yyS[yypt-16].str
n.relation = yyS[yypt-12].rangevar
n.funcname = yyS[yypt-3].list
n.args = yyS[yypt-1].list
n.row = TRUE
n.timing = TRIGGER_TYPE_AFTER
n.events = intVal(linitial(yyS[yypt-14].list))
n.columns = lsecond(yyS[yypt-14].list)
n.whenClause = yyS[yypt-6].node
n.isconstraint = TRUE
processCASbits(yyS[yypt-10].ival, /*, @10*/ "TRIGGER",
&n.deferrable, &n.initdeferred, nil,
yyscanner)
n.constrrel = yyS[yypt-11].rangevar
yyVAL.node = n
}
case 595:
//line simplegram.y:3885
{
yyVAL.ival = TRIGGER_TYPE_BEFORE
}
case 596:
//line simplegram.y:3886
{
yyVAL.ival = TRIGGER_TYPE_AFTER
}
case 597:
//line simplegram.y:3887
{
yyVAL.ival = TRIGGER_TYPE_INSTEAD
}
case 598:
//line simplegram.y:3892
{
yyVAL.list = yyS[yypt-0].list
}
case 599:
//line simplegram.y:3894
{
events1 := intVal(linitial(yyS[yypt-2].list))
events2 := intVal(linitial(yyS[yypt-0].list))
columns1 := lsecond(yyS[yypt-2].list)
columns2 := lsecond(yyS[yypt-0].list)
if events1 & events2 {
parser_yyerror("duplicate trigger events specified")
}
/*
* concat'ing the columns lists loses information about
* which columns went with which event, but so long as
* only UPDATE carries columns and we disallow multiple
* UPDATE items, it doesn't matter. Command execution
* should just ignore the columns for non-UPDATE events.
*/
yyVAL.list = list_make2(makeInteger(events1|events2),
list_concat(columns1, columns2))
}
case 600:
//line simplegram.y:3916
{
yyVAL.list = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL)
}
case 601:
//line simplegram.y:3918
{
yyVAL.list = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL)
}
case 602:
//line simplegram.y:3920
{
yyVAL.list = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL)
}
case 603:
//line simplegram.y:3922
{
yyVAL.list = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), yyS[yypt-0].list)
}
case 604:
//line simplegram.y:3924
{
yyVAL.list = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL)
}
case 605:
//line simplegram.y:3929
{
yyVAL.boolean = yyS[yypt-0].boolean
}
case 606:
//line simplegram.y:3933
{
/*
* If ROW/STATEMENT not specified, default to
* STATEMENT, per SQL
*/
yyVAL.boolean = FALSE
}
case 607:
//line simplegram.y:3942
{
}
case 608:
//line simplegram.y:3943
{
}
case 609:
//line simplegram.y:3947
{
yyVAL.boolean = TRUE
}
case 610:
//line simplegram.y:3948
{
yyVAL.boolean = FALSE
}
case 611:
//line simplegram.y:3952
{
yyVAL.node = yyS[yypt-1].node
}
case 612:
//line simplegram.y:3953
{
yyVAL.node = nil
}
case 613:
//line simplegram.y:3957
{
yyVAL.list = list_make1(yyS[yypt-0].value)
}
case 614:
//line simplegram.y:3958
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].value)
}
case 615:
//line simplegram.y:3959
{
yyVAL.list = NIL
}
case 616:
//line simplegram.y:3964
{
var buf []byte
snprintf(buf, len(buf), "%d", yyS[yypt-0].ival)
yyVAL.value = makeString(pstrdup(buf))
}
case 617:
//line simplegram.y:3969
{
yyVAL.value = makeString(yyS[yypt-0].str)
}
case 618:
//line simplegram.y:3970
{
yyVAL.value = makeString(yyS[yypt-0].str)
}
case 619:
//line simplegram.y:3971
{
yyVAL.value = makeString(yyS[yypt-0].str)
}
case 620:
//line simplegram.y:3975
{
yyVAL.rangevar = yyS[yypt-0].rangevar
}
case 621:
//line simplegram.y:3976
{
yyVAL.rangevar = nil
}
case 622:
//line simplegram.y:3981
{
yyVAL.ival = 0
}
case 623:
//line simplegram.y:3983
{
/*
* We must complain about conflicting options.
* We could, but choose not to, complain about redundant
* options (ie, where $2's bit is already set in $1).
*/
newspec := yyS[yypt-1].ival | yyS[yypt-0].ival
/* special message for this case */
if (newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED) {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"),
parser_errposition( /*@2*/ ))
}
/* generic message for other conflicts */
if (newspec&(CAS_NOT_DEFERRABLE|CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE|CAS_DEFERRABLE) ||
(newspec&(CAS_INITIALLY_IMMEDIATE|CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE|CAS_INITIALLY_DEFERRED) {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("conflicting constraint properties"),
parser_errposition( /*@2*/ ))
}
yyVAL.ival = newspec
}
case 624:
//line simplegram.y:4008
{
yyVAL.ival = CAS_NOT_DEFERRABLE
}
case 625:
//line simplegram.y:4009
{
yyVAL.ival = CAS_DEFERRABLE
}
case 626:
//line simplegram.y:4010
{
yyVAL.ival = CAS_INITIALLY_IMMEDIATE
}
case 627:
//line simplegram.y:4011
{
yyVAL.ival = CAS_INITIALLY_DEFERRED
}
case 628:
//line simplegram.y:4012
{
yyVAL.ival = CAS_NOT_VALID
}
case 629:
//line simplegram.y:4018
{
n := &DropStmt{}
n.removeType = OBJECT_TRIGGER
n.objects = list_make1(lappend(yyS[yypt-1].list, makeString(yyS[yypt-3].str)))
n.arguments = NIL
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = false
yyVAL.node = n
}
case 630:
//line simplegram.y:4028
{
n := &DropStmt{}
n.removeType = OBJECT_TRIGGER
n.objects = list_make1(lappend(yyS[yypt-1].list, makeString(yyS[yypt-3].str)))
n.arguments = NIL
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = true
yyVAL.node = n
}
case 631:
//line simplegram.y:4051
{
n := &CreateTrigStmt{}
n.trigname = yyS[yypt-5].str
n.args = list_make1(yyS[yypt-2].node)
n.isconstraint = TRUE
processCASbits(yyS[yypt-0].ival, /*, @8*/ "ASSERTION",
&n.deferrable, &n.initdeferred, nil,
yyscanner)
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("CREATE ASSERTION is not yet implemented"))
yyVAL.node = n
}
case 632:
//line simplegram.y:4070
{
n := &DropStmt{}
n.objects = NIL
n.arguments = NIL
n.behavior = yyS[yypt-0].dbehavior
n.removeType = OBJECT_TRIGGER /* XXX */
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("DROP ASSERTION is not yet implemented"))
yyVAL.node = n
}
case 633:
//line simplegram.y:4092
{
n := &DefineStmt{}
n.kind = OBJECT_AGGREGATE
n.oldstyle = false
n.defnames = yyS[yypt-2].list
n.args = yyS[yypt-1].list
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 634:
//line simplegram.y:4102
{
/* old-style (pre-8.2) syntax for CREATE AGGREGATE */
n := &DefineStmt{}
n.kind = OBJECT_AGGREGATE
n.oldstyle = true
n.defnames = yyS[yypt-1].list
n.args = NIL
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 635:
//line simplegram.y:4112
{
n := &DefineStmt{}
n.kind = OBJECT_OPERATOR
n.oldstyle = false
n.defnames = yyS[yypt-1].list
n.args = NIL
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 636:
//line simplegram.y:4122
{
n := &DefineStmt{}
n.kind = OBJECT_TYPE
n.oldstyle = false
n.defnames = yyS[yypt-1].list
n.args = NIL
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 637:
//line simplegram.y:4132
{
/* Shell type (identified by lack of definition) */
n := &DefineStmt{}
n.kind = OBJECT_TYPE
n.oldstyle = false
n.defnames = yyS[yypt-0].list
n.args = NIL
n.definition = NIL
yyVAL.node = n
}
case 638:
//line simplegram.y:4142
{
n := &CompositeTypeStmt{}
/* can't use qualified_name, sigh */
n.typevar = makeRangeVarFromAnyName(yyS[yypt-4].list, /*, @3*/ yyscanner)
n.coldeflist = yyS[yypt-1].list
yyVAL.node = n
}
case 639:
//line simplegram.y:4150
{
n := &CreateEnumStmt{}
n.typeName = yyS[yypt-5].list
n.vals = yyS[yypt-1].list
yyVAL.node = n
}
case 640:
//line simplegram.y:4157
{
n := &CreateRangeStmt{}
n.typeName = yyS[yypt-3].list
n.params = yyS[yypt-0].list
yyVAL.node = n
}
case 641:
//line simplegram.y:4164
{
n := &DefineStmt{}
n.kind = OBJECT_TSPARSER
n.args = NIL
n.defnames = yyS[yypt-1].list
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 642:
//line simplegram.y:4173
{
n := &DefineStmt{}
n.kind = OBJECT_TSDICTIONARY
n.args = NIL
n.defnames = yyS[yypt-1].list
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 643:
//line simplegram.y:4182
{
n := &DefineStmt{}
n.kind = OBJECT_TSTEMPLATE
n.args = NIL
n.defnames = yyS[yypt-1].list
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 644:
//line simplegram.y:4191
{
n := &DefineStmt{}
n.kind = OBJECT_TSCONFIGURATION
n.args = NIL
n.defnames = yyS[yypt-1].list
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 645:
//line simplegram.y:4200
{
n := &DefineStmt{}
n.kind = OBJECT_COLLATION
n.args = NIL
n.defnames = yyS[yypt-1].list
n.definition = yyS[yypt-0].list
yyVAL.node = n
}
case 646:
//line simplegram.y:4209
{
n := &DefineStmt{}
n.kind = OBJECT_COLLATION
n.args = NIL
n.defnames = yyS[yypt-2].list
n.definition = list_make1(makeDefElem("from", yyS[yypt-0].list))
yyVAL.node = n
}
case 647:
//line simplegram.y:4219
{
yyVAL.list = yyS[yypt-1].list
}
case 648:
//line simplegram.y:4222
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 649:
//line simplegram.y:4223
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].defelt)
}
case 650:
//line simplegram.y:4227
{
yyVAL.defelt = makeDefElem(yyS[yypt-2].str, yyS[yypt-0].node)
}
case 651:
//line simplegram.y:4231
{
yyVAL.defelt = makeDefElem(yyS[yypt-0].str, nil)
}
case 652:
//line simplegram.y:4237
{
yyVAL.node = yyS[yypt-0].typnam
}
case 653:
//line simplegram.y:4238
{
yyVAL.node = makeString(pstrdup(yyS[yypt-0].keyword))
}
case 654:
//line simplegram.y:4239
{
yyVAL.node = yyS[yypt-0].list
}
case 655:
//line simplegram.y:4240
{
yyVAL.node = yyS[yypt-0].value
}
case 656:
//line simplegram.y:4241
{
yyVAL.node = makeString(yyS[yypt-0].str)
}
case 657:
//line simplegram.y:4244
{
yyVAL.list = yyS[yypt-1].list
}
case 658:
//line simplegram.y:4245
{
yyVAL.list = NIL
}
case 659:
//line simplegram.y:4248
{
yyVAL.list = yyS[yypt-1].list
}
case 660:
//line simplegram.y:4251
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 661:
//line simplegram.y:4252
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].defelt)
}
case 662:
//line simplegram.y:4261
{
yyVAL.defelt = makeDefElem(yyS[yypt-2].str, yyS[yypt-0].node)
}
case 663:
//line simplegram.y:4267
{
yyVAL.list = yyS[yypt-0].list
}
case 664:
//line simplegram.y:4268
{
yyVAL.list = NIL
}
case 665:
//line simplegram.y:4272
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 666:
//line simplegram.y:4274
{
yyVAL.list = lappend(yyS[yypt-2].list, makeString(yyS[yypt-0].str))
}
case 667:
//line simplegram.y:4285
{
n := &AlterEnumStmt{}
n.typeName = yyS[yypt-3].list
n.newVal = yyS[yypt-0].str
n.newValNeighbor = nil
n.newValIsAfter = true
yyVAL.node = n
}
case 668:
//line simplegram.y:4294
{
n := &AlterEnumStmt{}
n.typeName = yyS[yypt-5].list
n.newVal = yyS[yypt-2].str
n.newValNeighbor = yyS[yypt-0].str
n.newValIsAfter = false
yyVAL.node = n
}
case 669:
//line simplegram.y:4303
{
n := &AlterEnumStmt{}
n.typeName = yyS[yypt-5].list
n.newVal = yyS[yypt-2].str
n.newValNeighbor = yyS[yypt-0].str
n.newValIsAfter = true
yyVAL.node = n
}
case 670:
//line simplegram.y:4328
{
n := &CreateOpClassStmt{}
n.opclassname = yyS[yypt-9].list
n.isDefault = yyS[yypt-8].boolean
n.datatype = yyS[yypt-5].typnam
n.amname = yyS[yypt-3].str
n.opfamilyname = yyS[yypt-2].list
n.items = yyS[yypt-0].list
yyVAL.node = n
}
case 671:
//line simplegram.y:4341
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 672:
//line simplegram.y:4342
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 673:
//line simplegram.y:4347
{
n := &CreateOpClassItem{}
n.itemtype = OPCLASS_ITEM_OPERATOR
n.name = yyS[yypt-2].list
n.args = NIL
n.number = yyS[yypt-3].ival
n.order_family = yyS[yypt-1].list
yyVAL.node = n
}
case 674:
//line simplegram.y:4358
{
n := &CreateOpClassItem{}
n.itemtype = OPCLASS_ITEM_OPERATOR
n.name = yyS[yypt-3].list
n.args = yyS[yypt-2].list
n.number = yyS[yypt-4].ival
n.order_family = yyS[yypt-1].list
yyVAL.node = n
}
case 675:
//line simplegram.y:4368
{
n := &CreateOpClassItem{}
n.itemtype = OPCLASS_ITEM_FUNCTION
n.name = yyS[yypt-1].list
n.args = extractArgTypes(yyS[yypt-0].list)
n.number = yyS[yypt-2].ival
yyVAL.node = n
}
case 676:
//line simplegram.y:4377
{
n := &CreateOpClassItem{}
n.itemtype = OPCLASS_ITEM_FUNCTION
n.name = yyS[yypt-1].list
n.args = extractArgTypes(yyS[yypt-0].list)
n.number = yyS[yypt-5].ival
n.class_args = yyS[yypt-3].list
yyVAL.node = n
}
case 677:
//line simplegram.y:4387
{
n := &CreateOpClassItem{}
n.itemtype = OPCLASS_ITEM_STORAGETYPE
n.storedtype = yyS[yypt-0].typnam
yyVAL.node = n
}
case 678:
//line simplegram.y:4395
{
yyVAL.boolean = TRUE
}
case 679:
//line simplegram.y:4396
{
yyVAL.boolean = FALSE
}
case 680:
//line simplegram.y:4399
{
yyVAL.list = yyS[yypt-0].list
}
case 681:
//line simplegram.y:4400
{
yyVAL.list = NIL
}
case 682:
//line simplegram.y:4403
{
yyVAL.list = NIL
}
case 683:
//line simplegram.y:4404
{
yyVAL.list = yyS[yypt-0].list
}
case 684:
//line simplegram.y:4405
{
yyVAL.list = NIL
}
case 685:
//line simplegram.y:4409
{
/*
* RECHECK no longer does anything in opclass definitions,
* but we still accept it to ease porting of old database
* dumps.
*/
ereport(NOTICE,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("RECHECK is no longer required"),
errhint("Update your data type."),
parser_errposition( /*@1*/ ))
yyVAL.boolean = TRUE
}
case 686:
//line simplegram.y:4421
{
yyVAL.boolean = FALSE
}
case 687:
//line simplegram.y:4427
{
n := &CreateOpFamilyStmt{}
n.opfamilyname = yyS[yypt-2].list
n.amname = yyS[yypt-0].str
yyVAL.node = n
}
case 688:
//line simplegram.y:4437
{
n := &AlterOpFamilyStmt{}
n.opfamilyname = yyS[yypt-4].list
n.amname = yyS[yypt-2].str
n.isDrop = false
n.items = yyS[yypt-0].list
yyVAL.node = n
}
case 689:
//line simplegram.y:4446
{
n := &AlterOpFamilyStmt{}
n.opfamilyname = yyS[yypt-4].list
n.amname = yyS[yypt-2].str
n.isDrop = true
n.items = yyS[yypt-0].list
yyVAL.node = n
}
case 690:
//line simplegram.y:4457
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 691:
//line simplegram.y:4458
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 692:
//line simplegram.y:4463
{
n := &CreateOpClassItem{}
n.itemtype = OPCLASS_ITEM_OPERATOR
n.number = yyS[yypt-3].ival
n.args = yyS[yypt-1].list
yyVAL.node = n
}
case 693:
//line simplegram.y:4471
{
n := &CreateOpClassItem{}
n.itemtype = OPCLASS_ITEM_FUNCTION
n.number = yyS[yypt-3].ival
n.args = yyS[yypt-1].list
yyVAL.node = n
}
case 694:
//line simplegram.y:4483
{
n := &DropStmt{}
n.objects = list_make1(yyS[yypt-3].list)
n.arguments = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.removeType = OBJECT_OPCLASS
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = false
yyVAL.node = n
}
case 695:
//line simplegram.y:4493
{
n := &DropStmt{}
n.objects = list_make1(yyS[yypt-3].list)
n.arguments = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.removeType = OBJECT_OPCLASS
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = true
yyVAL.node = n
}
case 696:
//line simplegram.y:4506
{
n := &DropStmt{}
n.objects = list_make1(yyS[yypt-3].list)
n.arguments = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.removeType = OBJECT_OPFAMILY
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = false
yyVAL.node = n
}
case 697:
//line simplegram.y:4516
{
n := &DropStmt{}
n.objects = list_make1(yyS[yypt-3].list)
n.arguments = list_make1(list_make1(makeString(yyS[yypt-1].str)))
n.removeType = OBJECT_OPFAMILY
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = true
yyVAL.node = n
}
case 698:
//line simplegram.y:4538
{
n := &DropOwnedStmt{}
n.roles = yyS[yypt-1].list
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 699:
//line simplegram.y:4548
{
n := &ReassignOwnedStmt{}
n.roles = yyS[yypt-2].list
n.newrole = yyS[yypt-0].str
yyVAL.node = n
}
case 700:
//line simplegram.y:4566
{
n := &DropStmt{}
n.removeType = yyS[yypt-4].objtype
n.missing_ok = TRUE
n.objects = yyS[yypt-1].list
n.arguments = NIL
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 701:
//line simplegram.y:4576
{
n := &DropStmt{}
n.removeType = yyS[yypt-2].objtype
n.missing_ok = FALSE
n.objects = yyS[yypt-1].list
n.arguments = NIL
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 702:
//line simplegram.y:4588
{
yyVAL.objtype = OBJECT_TABLE
}
case 703:
//line simplegram.y:4589
{
yyVAL.objtype = OBJECT_SEQUENCE
}
case 704:
//line simplegram.y:4590
{
yyVAL.objtype = OBJECT_VIEW
}
case 705:
//line simplegram.y:4591
{
yyVAL.objtype = OBJECT_INDEX
}
case 706:
//line simplegram.y:4592
{
yyVAL.objtype = OBJECT_FOREIGN_TABLE
}
case 707:
//line simplegram.y:4593
{
yyVAL.objtype = OBJECT_TYPE
}
case 708:
//line simplegram.y:4594
{
yyVAL.objtype = OBJECT_DOMAIN
}
case 709:
//line simplegram.y:4595
{
yyVAL.objtype = OBJECT_COLLATION
}
case 710:
//line simplegram.y:4596
{
yyVAL.objtype = OBJECT_CONVERSION
}
case 711:
//line simplegram.y:4597
{
yyVAL.objtype = OBJECT_SCHEMA
}
case 712:
//line simplegram.y:4598
{
yyVAL.objtype = OBJECT_EXTENSION
}
case 713:
//line simplegram.y:4599
{
yyVAL.objtype = OBJECT_TSPARSER
}
case 714:
//line simplegram.y:4600
{
yyVAL.objtype = OBJECT_TSDICTIONARY
}
case 715:
//line simplegram.y:4601
{
yyVAL.objtype = OBJECT_TSTEMPLATE
}
case 716:
//line simplegram.y:4602
{
yyVAL.objtype = OBJECT_TSCONFIGURATION
}
case 717:
//line simplegram.y:4606
{
yyVAL.list = list_make1(yyS[yypt-0].list)
}
case 718:
//line simplegram.y:4607
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].list)
}
case 719:
//line simplegram.y:4610
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 720:
//line simplegram.y:4611
{
yyVAL.list = lcons(makeString(yyS[yypt-1].str), yyS[yypt-0].list)
}
case 721:
//line simplegram.y:4615
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 722:
//line simplegram.y:4617
{
yyVAL.list = lappend(yyS[yypt-2].list, makeString(yyS[yypt-0].str))
}
case 723:
//line simplegram.y:4630
{
n := &TruncateStmt{}
n.relations = yyS[yypt-2].list
n.restart_seqs = yyS[yypt-1].boolean
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 724:
//line simplegram.y:4640
{
yyVAL.boolean = false
}
case 725:
//line simplegram.y:4641
{
yyVAL.boolean = true
}
case 726:
//line simplegram.y:4642
{
yyVAL.boolean = false
}
case 727:
//line simplegram.y:4669
{
n := &CommentStmt{}
n.objtype = yyS[yypt-3].objtype
n.objname = yyS[yypt-2].list
n.objargs = NIL
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 728:
//line simplegram.y:4678
{
n := &CommentStmt{}
n.objtype = OBJECT_AGGREGATE
n.objname = yyS[yypt-3].list
n.objargs = yyS[yypt-2].list
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 729:
//line simplegram.y:4687
{
n := &CommentStmt{}
n.objtype = OBJECT_FUNCTION
n.objname = yyS[yypt-3].list
n.objargs = extractArgTypes(yyS[yypt-2].list)
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 730:
//line simplegram.y:4696
{
n := &CommentStmt{}
n.objtype = OBJECT_OPERATOR
n.objname = yyS[yypt-3].list
n.objargs = yyS[yypt-2].list
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 731:
//line simplegram.y:4705
{
n := &CommentStmt{}
n.objtype = OBJECT_CONSTRAINT
n.objname = lappend(yyS[yypt-2].list, makeString(yyS[yypt-4].str))
n.objargs = NIL
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 732:
//line simplegram.y:4714
{
n := &CommentStmt{}
n.objtype = OBJECT_RULE
n.objname = lappend(yyS[yypt-2].list, makeString(yyS[yypt-4].str))
n.objargs = NIL
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 733:
//line simplegram.y:4723
{
/* Obsolete syntax supported for awhile for compatibility */
n := &CommentStmt{}
n.objtype = OBJECT_RULE
n.objname = list_make1(makeString(yyS[yypt-2].str))
n.objargs = NIL
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 734:
//line simplegram.y:4732
{
n := &CommentStmt{}
n.objtype = OBJECT_TRIGGER
n.objname = lappend(yyS[yypt-2].list, makeString(yyS[yypt-4].str))
n.objargs = NIL
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 735:
//line simplegram.y:4741
{
n := &CommentStmt{}
n.objtype = OBJECT_OPCLASS
n.objname = yyS[yypt-4].list
n.objargs = list_make1(makeString(yyS[yypt-2].str))
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 736:
//line simplegram.y:4750
{
n := &CommentStmt{}
n.objtype = OBJECT_OPFAMILY
n.objname = yyS[yypt-4].list
n.objargs = list_make1(makeString(yyS[yypt-2].str))
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 737:
//line simplegram.y:4759
{
n := &CommentStmt{}
n.objtype = OBJECT_LARGEOBJECT
n.objname = list_make1(yyS[yypt-2].value)
n.objargs = NIL
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 738:
//line simplegram.y:4768
{
n := &CommentStmt{}
n.objtype = OBJECT_CAST
n.objname = list_make1(yyS[yypt-5].typnam)
n.objargs = list_make1(yyS[yypt-3].typnam)
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 739:
//line simplegram.y:4777
{
n := &CommentStmt{}
n.objtype = OBJECT_LANGUAGE
n.objname = yyS[yypt-2].list
n.objargs = NIL
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 740:
//line simplegram.y:4786
{
n := &CommentStmt{}
n.objtype = OBJECT_TSPARSER
n.objname = yyS[yypt-2].list
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 741:
//line simplegram.y:4794
{
n := &CommentStmt{}
n.objtype = OBJECT_TSDICTIONARY
n.objname = yyS[yypt-2].list
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 742:
//line simplegram.y:4802
{
n := &CommentStmt{}
n.objtype = OBJECT_TSTEMPLATE
n.objname = yyS[yypt-2].list
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 743:
//line simplegram.y:4810
{
n := &CommentStmt{}
n.objtype = OBJECT_TSCONFIGURATION
n.objname = yyS[yypt-2].list
n.comment = yyS[yypt-0].str
yyVAL.node = n
}
case 744:
//line simplegram.y:4820
{
yyVAL.objtype = OBJECT_COLUMN
}
case 745:
//line simplegram.y:4821
{
yyVAL.objtype = OBJECT_DATABASE
}
case 746:
//line simplegram.y:4822
{
yyVAL.objtype = OBJECT_SCHEMA
}
case 747:
//line simplegram.y:4823
{
yyVAL.objtype = OBJECT_INDEX
}
case 748:
//line simplegram.y:4824
{
yyVAL.objtype = OBJECT_SEQUENCE
}
case 749:
//line simplegram.y:4825
{
yyVAL.objtype = OBJECT_TABLE
}
case 750:
//line simplegram.y:4826
{
yyVAL.objtype = OBJECT_DOMAIN
}
case 751:
//line simplegram.y:4827
{
yyVAL.objtype = OBJECT_TYPE
}
case 752:
//line simplegram.y:4828
{
yyVAL.objtype = OBJECT_VIEW
}
case 753:
//line simplegram.y:4829
{
yyVAL.objtype = OBJECT_COLLATION
}
case 754:
//line simplegram.y:4830
{
yyVAL.objtype = OBJECT_CONVERSION
}
case 755:
//line simplegram.y:4831
{
yyVAL.objtype = OBJECT_TABLESPACE
}
case 756:
//line simplegram.y:4832
{
yyVAL.objtype = OBJECT_EXTENSION
}
case 757:
//line simplegram.y:4833
{
yyVAL.objtype = OBJECT_ROLE
}
case 758:
//line simplegram.y:4834
{
yyVAL.objtype = OBJECT_FOREIGN_TABLE
}
case 759:
//line simplegram.y:4835
{
yyVAL.objtype = OBJECT_FOREIGN_SERVER
}
case 760:
//line simplegram.y:4836
{
yyVAL.objtype = OBJECT_FDW
}
case 761:
//line simplegram.y:4840
{
yyVAL.str = yyS[yypt-0].str
}
case 762:
//line simplegram.y:4841
{
yyVAL.str = nil
}
case 763:
//line simplegram.y:4857
{
n := &SecLabelStmt{}
n.provider = yyS[yypt-5].str
n.objtype = yyS[yypt-3].objtype
n.objname = yyS[yypt-2].list
n.objargs = NIL
n.label = yyS[yypt-0].str
yyVAL.node = n
}
case 764:
//line simplegram.y:4868
{
n := &SecLabelStmt{}
n.provider = yyS[yypt-6].str
n.objtype = OBJECT_AGGREGATE
n.objname = yyS[yypt-3].list
n.objargs = yyS[yypt-2].list
n.label = yyS[yypt-0].str
yyVAL.node = n
}
case 765:
//line simplegram.y:4879
{
n := &SecLabelStmt{}
n.provider = yyS[yypt-6].str
n.objtype = OBJECT_FUNCTION
n.objname = yyS[yypt-3].list
n.objargs = extractArgTypes(yyS[yypt-2].list)
n.label = yyS[yypt-0].str
yyVAL.node = n
}
case 766:
//line simplegram.y:4890
{
n := &SecLabelStmt{}
n.provider = yyS[yypt-6].str
n.objtype = OBJECT_LARGEOBJECT
n.objname = list_make1(yyS[yypt-2].value)
n.objargs = NIL
n.label = yyS[yypt-0].str
yyVAL.node = n
}
case 767:
//line simplegram.y:4901
{
n := &SecLabelStmt{}
n.provider = yyS[yypt-6].str
n.objtype = OBJECT_LANGUAGE
n.objname = yyS[yypt-2].list
n.objargs = NIL
n.label = yyS[yypt-0].str
yyVAL.node = n
}
case 768:
//line simplegram.y:4912
{
yyVAL.str = yyS[yypt-0].str
}
case 769:
//line simplegram.y:4913
{
yyVAL.str = nil
}
case 770:
//line simplegram.y:4917
{
yyVAL.objtype = OBJECT_COLUMN
}
case 771:
//line simplegram.y:4918
{
yyVAL.objtype = OBJECT_DATABASE
}
case 772:
//line simplegram.y:4919
{
yyVAL.objtype = OBJECT_FOREIGN_TABLE
}
case 773:
//line simplegram.y:4920
{
yyVAL.objtype = OBJECT_SCHEMA
}
case 774:
//line simplegram.y:4921
{
yyVAL.objtype = OBJECT_SEQUENCE
}
case 775:
//line simplegram.y:4922
{
yyVAL.objtype = OBJECT_TABLE
}
case 776:
//line simplegram.y:4923
{
yyVAL.objtype = OBJECT_TYPE
}
case 777:
//line simplegram.y:4924
{
yyVAL.objtype = OBJECT_ROLE
}
case 778:
//line simplegram.y:4925
{
yyVAL.objtype = OBJECT_TABLESPACE
}
case 779:
//line simplegram.y:4926
{
yyVAL.objtype = OBJECT_TYPE
}
case 780:
//line simplegram.y:4927
{
yyVAL.objtype = OBJECT_VIEW
}
case 781:
//line simplegram.y:4930
{
yyVAL.str = yyS[yypt-0].str
}
case 782:
//line simplegram.y:4931
{
yyVAL.str = nil
}
case 783:
//line simplegram.y:4942
{
n := yyS[yypt-0].node
n.ismove = FALSE
yyVAL.node = n
}
case 784:
//line simplegram.y:4948
{
n := yyS[yypt-0].node
n.ismove = TRUE
yyVAL.node = n
}
case 785:
//line simplegram.y:4956
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_FORWARD
n.howMany = 1
yyVAL.node = n
}
case 786:
//line simplegram.y:4964
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_FORWARD
n.howMany = 1
yyVAL.node = n
}
case 787:
//line simplegram.y:4972
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_FORWARD
n.howMany = 1
yyVAL.node = n
}
case 788:
//line simplegram.y:4980
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_BACKWARD
n.howMany = 1
yyVAL.node = n
}
case 789:
//line simplegram.y:4988
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_ABSOLUTE
n.howMany = 1
yyVAL.node = n
}
case 790:
//line simplegram.y:4996
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_ABSOLUTE
n.howMany = -1
yyVAL.node = n
}
case 791:
//line simplegram.y:5004
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_ABSOLUTE
n.howMany = yyS[yypt-2].ival
yyVAL.node = n
}
case 792:
//line simplegram.y:5012
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_RELATIVE
n.howMany = yyS[yypt-2].ival
yyVAL.node = n
}
case 793:
//line simplegram.y:5020
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_FORWARD
n.howMany = yyS[yypt-2].ival
yyVAL.node = n
}
case 794:
//line simplegram.y:5028
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_FORWARD
n.howMany = FETCH_ALL
yyVAL.node = n
}
case 795:
//line simplegram.y:5036
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_FORWARD
n.howMany = 1
yyVAL.node = n
}
case 796:
//line simplegram.y:5044
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_FORWARD
n.howMany = yyS[yypt-2].ival
yyVAL.node = n
}
case 797:
//line simplegram.y:5052
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_FORWARD
n.howMany = FETCH_ALL
yyVAL.node = n
}
case 798:
//line simplegram.y:5060
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_BACKWARD
n.howMany = 1
yyVAL.node = n
}
case 799:
//line simplegram.y:5068
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_BACKWARD
n.howMany = yyS[yypt-2].ival
yyVAL.node = n
}
case 800:
//line simplegram.y:5076
{
n := &FetchStmt{}
n.portalname = yyS[yypt-0].str
n.direction = FETCH_BACKWARD
n.howMany = FETCH_ALL
yyVAL.node = n
}
case 801:
//line simplegram.y:5085
{
}
case 802:
//line simplegram.y:5086
{
}
case 803:
//line simplegram.y:5089
{
}
case 804:
//line simplegram.y:5090
{
}
case 805:
//line simplegram.y:5102
{
n := &GrantStmt{}
n.is_grant = true
n.privileges = yyS[yypt-5].list
n.targtype = (yyS[yypt-3].privtarget).targtype
n.objtype = (yyS[yypt-3].privtarget).objtype
n.objects = (yyS[yypt-3].privtarget).objs
n.grantees = yyS[yypt-1].list
n.grant_option = yyS[yypt-0].boolean
yyVAL.node = n
}
case 806:
//line simplegram.y:5118
{
n := &GrantStmt{}
n.is_grant = false
n.grant_option = false
n.privileges = yyS[yypt-5].list
n.targtype = (yyS[yypt-3].privtarget).targtype
n.objtype = (yyS[yypt-3].privtarget).objtype
n.objects = (yyS[yypt-3].privtarget).objs
n.grantees = yyS[yypt-1].list
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 807:
//line simplegram.y:5132
{
n := &GrantStmt{}
n.is_grant = false
n.grant_option = true
n.privileges = yyS[yypt-5].list
n.targtype = (yyS[yypt-3].privtarget).targtype
n.objtype = (yyS[yypt-3].privtarget).objtype
n.objects = (yyS[yypt-3].privtarget).objs
n.grantees = yyS[yypt-1].list
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 808:
//line simplegram.y:5157
{
yyVAL.list = yyS[yypt-0].list
}
case 809:
//line simplegram.y:5159
{
yyVAL.list = NIL
}
case 810:
//line simplegram.y:5161
{
yyVAL.list = NIL
}
case 811:
//line simplegram.y:5163
{
n := &AccessPriv{}
n.priv_name = nil
n.cols = yyS[yypt-1].list
yyVAL.list = list_make1(n)
}
case 812:
//line simplegram.y:5170
{
n := &AccessPriv{}
n.priv_name = nil
n.cols = yyS[yypt-1].list
yyVAL.list = list_make1(n)
}
case 813:
//line simplegram.y:5178
{
yyVAL.list = list_make1(yyS[yypt-0].accesspriv)
}
case 814:
//line simplegram.y:5179
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].accesspriv)
}
case 815:
//line simplegram.y:5183
{
n := &AccessPriv{}
n.priv_name = pstrdup(yyS[yypt-1].keyword)
n.cols = yyS[yypt-0].list
yyVAL.accesspriv = n
}
case 816:
//line simplegram.y:5190
{
n := &AccessPriv{}
n.priv_name = pstrdup(yyS[yypt-1].keyword)
n.cols = yyS[yypt-0].list
yyVAL.accesspriv = n
}
case 817:
//line simplegram.y:5197
{
n := &AccessPriv{}
n.priv_name = pstrdup(yyS[yypt-1].keyword)
n.cols = yyS[yypt-0].list
yyVAL.accesspriv = n
}
case 818:
//line simplegram.y:5204
{
n := &AccessPriv{}
n.priv_name = yyS[yypt-1].str
n.cols = yyS[yypt-0].list
yyVAL.accesspriv = n
}
case 819:
//line simplegram.y:5218
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_RELATION
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 820:
//line simplegram.y:5226
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_RELATION
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 821:
//line simplegram.y:5234
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_SEQUENCE
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 822:
//line simplegram.y:5242
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_FDW
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 823:
//line simplegram.y:5250
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_FOREIGN_SERVER
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 824:
//line simplegram.y:5258
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_FUNCTION
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 825:
//line simplegram.y:5266
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_DATABASE
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 826:
//line simplegram.y:5274
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_DOMAIN
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 827:
//line simplegram.y:5282
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_LANGUAGE
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 828:
//line simplegram.y:5290
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_LARGEOBJECT
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 829:
//line simplegram.y:5298
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_NAMESPACE
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 830:
//line simplegram.y:5306
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_TABLESPACE
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 831:
//line simplegram.y:5314
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_OBJECT
n.objtype = ACL_OBJECT_TYPE
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 832:
//line simplegram.y:5322
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_ALL_IN_SCHEMA
n.objtype = ACL_OBJECT_RELATION
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 833:
//line simplegram.y:5330
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_ALL_IN_SCHEMA
n.objtype = ACL_OBJECT_SEQUENCE
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 834:
//line simplegram.y:5338
{
n := palloc(sizeof(PrivTarget))
n.targtype = ACL_TARGET_ALL_IN_SCHEMA
n.objtype = ACL_OBJECT_FUNCTION
n.objs = yyS[yypt-0].list
yyVAL.privtarget = n
}
case 835:
//line simplegram.y:5349
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 836:
//line simplegram.y:5350
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 837:
//line simplegram.y:5354
{
n := &PrivGrantee{}
/* This hack lets us avoid reserving PUBLIC as a keyword*/
if strcmp(yyS[yypt-0].str, "public") == 0 {
n.rolname = nil
} else {
n.rolname = yyS[yypt-0].str
}
yyVAL.node = n
}
case 838:
//line simplegram.y:5364
{
n := &PrivGrantee{}
/* Treat GROUP PUBLIC as a synonym for PUBLIC */
if strcmp(yyS[yypt-0].str, "public") == 0 {
n.rolname = nil
} else {
n.rolname = yyS[yypt-0].str
}
yyVAL.node = n
}
case 839:
//line simplegram.y:5377
{
yyVAL.boolean = TRUE
}
case 840:
//line simplegram.y:5378
{
yyVAL.boolean = FALSE
}
case 841:
//line simplegram.y:5382
{
yyVAL.list = list_make1(yyS[yypt-0].funwithargs)
}
case 842:
//line simplegram.y:5384
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].funwithargs)
}
case 843:
//line simplegram.y:5389
{
n := &FuncWithArgs{}
n.funcname = yyS[yypt-1].list
n.funcargs = extractArgTypes(yyS[yypt-0].list)
yyVAL.funwithargs = n
}
case 844:
//line simplegram.y:5405
{
n := &GrantRoleStmt{}
n.is_grant = true
n.granted_roles = yyS[yypt-4].list
n.grantee_roles = yyS[yypt-2].list
n.admin_opt = yyS[yypt-1].boolean
n.grantor = yyS[yypt-0].str
yyVAL.node = n
}
case 845:
//line simplegram.y:5418
{
n := &GrantRoleStmt{}
n.is_grant = false
n.admin_opt = false
n.granted_roles = yyS[yypt-4].list
n.grantee_roles = yyS[yypt-2].list
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 846:
//line simplegram.y:5428
{
n := &GrantRoleStmt{}
n.is_grant = false
n.admin_opt = true
n.granted_roles = yyS[yypt-4].list
n.grantee_roles = yyS[yypt-2].list
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 847:
//line simplegram.y:5439
{
yyVAL.boolean = TRUE
}
case 848:
//line simplegram.y:5440
{
yyVAL.boolean = FALSE
}
case 849:
//line simplegram.y:5443
{
yyVAL.str = yyS[yypt-0].str
}
case 850:
//line simplegram.y:5444
{
yyVAL.str = nil
}
case 851:
//line simplegram.y:5455
{
n := &AlterDefaultPrivilegesStmt{}
n.options = yyS[yypt-1].list
n.action = yyS[yypt-0].node
yyVAL.node = n
}
case 852:
//line simplegram.y:5464
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 853:
//line simplegram.y:5465
{
yyVAL.list = NIL
}
case 854:
//line simplegram.y:5470
{
yyVAL.defelt = makeDefElem("schemas", yyS[yypt-0].list)
}
case 855:
//line simplegram.y:5474
{
yyVAL.defelt = makeDefElem("roles", yyS[yypt-0].list)
}
case 856:
//line simplegram.y:5478
{
yyVAL.defelt = makeDefElem("roles", yyS[yypt-0].list)
}
case 857:
//line simplegram.y:5490
{
n := &GrantStmt{}
n.is_grant = true
n.privileges = yyS[yypt-5].list
n.targtype = ACL_TARGET_DEFAULTS
n.objtype = yyS[yypt-3].ival
n.objects = NIL
n.grantees = yyS[yypt-1].list
n.grant_option = yyS[yypt-0].boolean
yyVAL.node = n
}
case 858:
//line simplegram.y:5503
{
n := &GrantStmt{}
n.is_grant = false
n.grant_option = false
n.privileges = yyS[yypt-5].list
n.targtype = ACL_TARGET_DEFAULTS
n.objtype = yyS[yypt-3].ival
n.objects = NIL
n.grantees = yyS[yypt-1].list
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 859:
//line simplegram.y:5517
{
n := &GrantStmt{}
n.is_grant = false
n.grant_option = true
n.privileges = yyS[yypt-5].list
n.targtype = ACL_TARGET_DEFAULTS
n.objtype = yyS[yypt-3].ival
n.objects = NIL
n.grantees = yyS[yypt-1].list
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 860:
//line simplegram.y:5532
{
yyVAL.ival = ACL_OBJECT_RELATION
}
case 861:
//line simplegram.y:5533
{
yyVAL.ival = ACL_OBJECT_FUNCTION
}
case 862:
//line simplegram.y:5534
{
yyVAL.ival = ACL_OBJECT_SEQUENCE
}
case 863:
//line simplegram.y:5535
{
yyVAL.ival = ACL_OBJECT_TYPE
}
case 864:
//line simplegram.y:5550
{
n := &IndexStmt{}
n.unique = yyS[yypt-12].boolean
n.concurrent = yyS[yypt-10].boolean
n.idxname = yyS[yypt-9].str
n.relation = yyS[yypt-7].rangevar
n.accessMethod = yyS[yypt-6].str
n.indexParams = yyS[yypt-4].list
n.options = yyS[yypt-2].list
n.tableSpace = yyS[yypt-1].str
n.whereClause = yyS[yypt-0].node
n.indexOid = InvalidOid
yyVAL.node = n
}
case 865:
//line simplegram.y:5567
{
yyVAL.boolean = TRUE
}
case 866:
//line simplegram.y:5568
{
yyVAL.boolean = FALSE
}
case 867:
//line simplegram.y:5572
{
yyVAL.boolean = TRUE
}
case 868:
//line simplegram.y:5573
{
yyVAL.boolean = FALSE
}
case 869:
//line simplegram.y:5577
{
yyVAL.str = yyS[yypt-0].str
}
case 870:
//line simplegram.y:5578
{
yyVAL.str = nil
}
case 871:
//line simplegram.y:5582
{
yyVAL.str = yyS[yypt-0].str
}
case 872:
//line simplegram.y:5583
{
yyVAL.str = DEFAULT_INDEX_TYPE
}
case 873:
//line simplegram.y:5586
{
yyVAL.list = list_make1(yyS[yypt-0].ielem)
}
case 874:
//line simplegram.y:5587
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].ielem)
}
case 875:
//line simplegram.y:5596
{
yyVAL.ielem = &IndexElem{}
yyVAL.ielem.name = yyS[yypt-4].str
yyVAL.ielem.expr = nil
yyVAL.ielem.indexcolname = nil
yyVAL.ielem.collation = yyS[yypt-3].list
yyVAL.ielem.opclass = yyS[yypt-2].list
yyVAL.ielem.ordering = yyS[yypt-1].ival
yyVAL.ielem.nulls_ordering = yyS[yypt-0].ival
}
case 876:
//line simplegram.y:5607
{
yyVAL.ielem = &IndexElem{}
yyVAL.ielem.name = nil
yyVAL.ielem.expr = yyS[yypt-4].node
yyVAL.ielem.indexcolname = nil
yyVAL.ielem.collation = yyS[yypt-3].list
yyVAL.ielem.opclass = yyS[yypt-2].list
yyVAL.ielem.ordering = yyS[yypt-1].ival
yyVAL.ielem.nulls_ordering = yyS[yypt-0].ival
}
case 877:
//line simplegram.y:5618
{
yyVAL.ielem = &IndexElem{}
yyVAL.ielem.name = nil
yyVAL.ielem.expr = yyS[yypt-5].node
yyVAL.ielem.indexcolname = nil
yyVAL.ielem.collation = yyS[yypt-3].list
yyVAL.ielem.opclass = yyS[yypt-2].list
yyVAL.ielem.ordering = yyS[yypt-1].ival
yyVAL.ielem.nulls_ordering = yyS[yypt-0].ival
}
case 878:
//line simplegram.y:5630
{
yyVAL.list = yyS[yypt-0].list
}
case 879:
//line simplegram.y:5631
{
yyVAL.list = NIL
}
case 880:
//line simplegram.y:5634
{
yyVAL.list = yyS[yypt-0].list
}
case 881:
//line simplegram.y:5635
{
yyVAL.list = yyS[yypt-0].list
}
case 882:
//line simplegram.y:5636
{
yyVAL.list = NIL
}
case 883:
//line simplegram.y:5639
{
yyVAL.ival = SORTBY_ASC
}
case 884:
//line simplegram.y:5640
{
yyVAL.ival = SORTBY_DESC
}
case 885:
//line simplegram.y:5641
{
yyVAL.ival = SORTBY_DEFAULT
}
case 886:
//line simplegram.y:5644
{
yyVAL.ival = SORTBY_NULLS_FIRST
}
case 887:
//line simplegram.y:5645
{
yyVAL.ival = SORTBY_NULLS_LAST
}
case 888:
//line simplegram.y:5646
{
yyVAL.ival = SORTBY_NULLS_DEFAULT
}
case 889:
//line simplegram.y:5664
{
n := &CreateFunctionStmt{}
n.replace = yyS[yypt-7].boolean
n.funcname = yyS[yypt-5].list
n.parameters = yyS[yypt-4].list
n.returnType = yyS[yypt-2].typnam
n.options = yyS[yypt-1].list
n.withClause = yyS[yypt-0].list
yyVAL.node = n
}
case 890:
//line simplegram.y:5676
{
n := &CreateFunctionStmt{}
n.replace = yyS[yypt-10].boolean
n.funcname = yyS[yypt-8].list
n.parameters = mergeTableFuncParameters(yyS[yypt-7].list, yyS[yypt-3].list)
n.returnType = TableFuncTypeName(yyS[yypt-3].list)
// n.returnType.location = @7;
n.options = yyS[yypt-1].list
n.withClause = yyS[yypt-0].list
yyVAL.node = n
}
case 891:
//line simplegram.y:5689
{
n := &CreateFunctionStmt{}
n.replace = yyS[yypt-5].boolean
n.funcname = yyS[yypt-3].list
n.parameters = yyS[yypt-2].list
n.returnType = nil
n.options = yyS[yypt-1].list
n.withClause = yyS[yypt-0].list
yyVAL.node = n
}
case 892:
//line simplegram.y:5702
{
yyVAL.boolean = TRUE
}
case 893:
//line simplegram.y:5703
{
yyVAL.boolean = FALSE
}
case 894:
//line simplegram.y:5706
{
yyVAL.list = yyS[yypt-1].list
}
case 895:
//line simplegram.y:5707
{
yyVAL.list = NIL
}
case 896:
//line simplegram.y:5711
{
yyVAL.list = list_make1(yyS[yypt-0].fun_param)
}
case 897:
//line simplegram.y:5712
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].fun_param)
}
case 898:
//line simplegram.y:5720
{
yyVAL.list = yyS[yypt-1].list
}
case 899:
//line simplegram.y:5721
{
yyVAL.list = NIL
}
case 900:
//line simplegram.y:5725
{
yyVAL.list = list_make1(yyS[yypt-0].fun_param)
}
case 901:
//line simplegram.y:5727
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].fun_param)
}
case 902:
//line simplegram.y:5742
{
n := &FunctionParameter{}
n.name = yyS[yypt-1].str
n.argType = yyS[yypt-0].typnam
n.mode = yyS[yypt-2].fun_param_mode
n.defexpr = nil
yyVAL.fun_param = n
}
case 903:
//line simplegram.y:5751
{
n := &FunctionParameter{}
n.name = yyS[yypt-2].str
n.argType = yyS[yypt-0].typnam
n.mode = yyS[yypt-1].fun_param_mode
n.defexpr = nil
yyVAL.fun_param = n
}
case 904:
//line simplegram.y:5760
{
n := &FunctionParameter{}
n.name = yyS[yypt-1].str
n.argType = yyS[yypt-0].typnam
n.mode = FUNC_PARAM_IN
n.defexpr = nil
yyVAL.fun_param = n
}
case 905:
//line simplegram.y:5769
{
n := &FunctionParameter{}
n.name = nil
n.argType = yyS[yypt-0].typnam
n.mode = yyS[yypt-1].fun_param_mode
n.defexpr = nil
yyVAL.fun_param = n
}
case 906:
//line simplegram.y:5778
{
n := &FunctionParameter{}
n.name = nil
n.argType = yyS[yypt-0].typnam
n.mode = FUNC_PARAM_IN
n.defexpr = nil
yyVAL.fun_param = n
}
case 907:
//line simplegram.y:5789
{
yyVAL.fun_param_mode = FUNC_PARAM_IN
}
case 908:
//line simplegram.y:5790
{
yyVAL.fun_param_mode = FUNC_PARAM_OUT
}
case 909:
//line simplegram.y:5791
{
yyVAL.fun_param_mode = FUNC_PARAM_INOUT
}
case 910:
//line simplegram.y:5792
{
yyVAL.fun_param_mode = FUNC_PARAM_INOUT
}
case 911:
//line simplegram.y:5793
{
yyVAL.fun_param_mode = FUNC_PARAM_VARIADIC
}
case 912:
yyVAL.str = yyS[yypt-0].str
case 913:
//line simplegram.y:5804
{
/* We can catch over-specified results here if we want to,
* but for now better to silently swallow typmod, etc.
* - thomas 2000-03-22
*/
yyVAL.typnam = yyS[yypt-0].typnam
}
case 914:
//line simplegram.y:5817
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 915:
//line simplegram.y:5819
{
yyVAL.typnam = makeTypeNameFromNameList(lcons(makeString(yyS[yypt-3].str), yyS[yypt-2].list))
yyVAL.typnam.pct_type = true
// $$.location = @1;
}
case 916:
//line simplegram.y:5825
{
yyVAL.typnam = makeTypeNameFromNameList(lcons(makeString(yyS[yypt-3].str), yyS[yypt-2].list))
yyVAL.typnam.pct_type = true
yyVAL.typnam.setof = TRUE
// $$.location = @2;
}
case 917:
//line simplegram.y:5835
{
yyVAL.fun_param = yyS[yypt-0].fun_param
}
case 918:
//line simplegram.y:5839
{
yyVAL.fun_param = yyS[yypt-2].fun_param
yyVAL.fun_param.defexpr = yyS[yypt-0].node
}
case 919:
//line simplegram.y:5844
{
yyVAL.fun_param = yyS[yypt-2].fun_param
yyVAL.fun_param.defexpr = yyS[yypt-0].node
}
case 920:
//line simplegram.y:5853
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 921:
//line simplegram.y:5854
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 922:
//line simplegram.y:5862
{
yyVAL.defelt = makeDefElem("strict", makeInteger(FALSE))
}
case 923:
//line simplegram.y:5866
{
yyVAL.defelt = makeDefElem("strict", makeInteger(TRUE))
}
case 924:
//line simplegram.y:5870
{
yyVAL.defelt = makeDefElem("strict", makeInteger(TRUE))
}
case 925:
//line simplegram.y:5874
{
yyVAL.defelt = makeDefElem("volatility", makeString("immutable"))
}
case 926:
//line simplegram.y:5878
{
yyVAL.defelt = makeDefElem("volatility", makeString("stable"))
}
case 927:
//line simplegram.y:5882
{
yyVAL.defelt = makeDefElem("volatility", makeString("volatile"))
}
case 928:
//line simplegram.y:5886
{
yyVAL.defelt = makeDefElem("security", makeInteger(TRUE))
}
case 929:
//line simplegram.y:5890
{
yyVAL.defelt = makeDefElem("security", makeInteger(FALSE))
}
case 930:
//line simplegram.y:5894
{
yyVAL.defelt = makeDefElem("security", makeInteger(TRUE))
}
case 931:
//line simplegram.y:5898
{
yyVAL.defelt = makeDefElem("security", makeInteger(FALSE))
}
case 932:
//line simplegram.y:5902
{
yyVAL.defelt = makeDefElem("cost", yyS[yypt-0].value)
}
case 933:
//line simplegram.y:5906
{
yyVAL.defelt = makeDefElem("rows", yyS[yypt-0].value)
}
case 934:
//line simplegram.y:5910
{
/* we abuse the normal content of a DefElem here */
yyVAL.defelt = makeDefElem("set", yyS[yypt-0].vsetstmt)
}
case 935:
//line simplegram.y:5917
{
yyVAL.defelt = makeDefElem("as", yyS[yypt-0].list)
}
case 936:
//line simplegram.y:5921
{
yyVAL.defelt = makeDefElem("language", makeString(yyS[yypt-0].str))
}
case 937:
//line simplegram.y:5925
{
yyVAL.defelt = makeDefElem("window", makeInteger(TRUE))
}
case 938:
//line simplegram.y:5929
{
yyVAL.defelt = yyS[yypt-0].defelt
}
case 939:
//line simplegram.y:5934
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 940:
//line simplegram.y:5936
{
yyVAL.list = list_make2(makeString(yyS[yypt-2].str), makeString(yyS[yypt-0].str))
}
case 941:
//line simplegram.y:5942
{
yyVAL.list = yyS[yypt-0].list
}
case 942:
//line simplegram.y:5943
{
yyVAL.list = NIL
}
case 943:
//line simplegram.y:5947
{
n := &FunctionParameter{}
n.name = yyS[yypt-1].str
n.argType = yyS[yypt-0].typnam
n.mode = FUNC_PARAM_TABLE
n.defexpr = nil
yyVAL.fun_param = n
}
case 944:
//line simplegram.y:5959
{
yyVAL.list = list_make1(yyS[yypt-0].fun_param)
}
case 945:
//line simplegram.y:5963
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].fun_param)
}
case 946:
//line simplegram.y:5978
{
n := &AlterFunctionStmt{}
n.fun = yyS[yypt-2].funwithargs
n.actions = yyS[yypt-1].list
yyVAL.node = n
}
case 947:
//line simplegram.y:5988
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 948:
//line simplegram.y:5989
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 951:
//line simplegram.y:6011
{
n := &DropStmt{}
n.removeType = OBJECT_FUNCTION
n.objects = list_make1(yyS[yypt-2].list)
n.arguments = list_make1(extractArgTypes(yyS[yypt-1].list))
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = false
yyVAL.node = n
}
case 952:
//line simplegram.y:6021
{
n := &DropStmt{}
n.removeType = OBJECT_FUNCTION
n.objects = list_make1(yyS[yypt-2].list)
n.arguments = list_make1(extractArgTypes(yyS[yypt-1].list))
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = true
yyVAL.node = n
}
case 953:
//line simplegram.y:6034
{
n := &DropStmt{}
n.removeType = OBJECT_AGGREGATE
n.objects = list_make1(yyS[yypt-2].list)
n.arguments = list_make1(yyS[yypt-1].list)
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = false
yyVAL.node = n
}
case 954:
//line simplegram.y:6044
{
n := &DropStmt{}
n.removeType = OBJECT_AGGREGATE
n.objects = list_make1(yyS[yypt-2].list)
n.arguments = list_make1(yyS[yypt-1].list)
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = true
yyVAL.node = n
}
case 955:
//line simplegram.y:6057
{
n := &DropStmt{}
n.removeType = OBJECT_OPERATOR
n.objects = list_make1(yyS[yypt-2].list)
n.arguments = list_make1(yyS[yypt-1].list)
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = false
yyVAL.node = n
}
case 956:
//line simplegram.y:6067
{
n := &DropStmt{}
n.removeType = OBJECT_OPERATOR
n.objects = list_make1(yyS[yypt-2].list)
n.arguments = list_make1(yyS[yypt-1].list)
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = true
yyVAL.node = n
}
case 957:
//line simplegram.y:6080
{
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("missing argument"),
errhint("Use NONE to denote the missing argument of a unary operator."),
parser_errposition( /*@3*/ ))
}
case 958:
//line simplegram.y:6088
{
yyVAL.list = list_make2(yyS[yypt-3].typnam, yyS[yypt-1].typnam)
}
case 959:
//line simplegram.y:6090
{
yyVAL.list = list_make2(nil, yyS[yypt-1].typnam)
}
case 960:
//line simplegram.y:6092
{
yyVAL.list = list_make2(yyS[yypt-3].typnam, nil)
}
case 961:
//line simplegram.y:6097
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 962:
//line simplegram.y:6099
{
yyVAL.list = lcons(makeString(yyS[yypt-2].str), yyS[yypt-0].list)
}
case 963:
//line simplegram.y:6112
{
n := &DoStmt{}
n.args = yyS[yypt-0].list
yyVAL.node = n
}
case 964:
//line simplegram.y:6120
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 965:
//line simplegram.y:6121
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 966:
//line simplegram.y:6126
{
yyVAL.defelt = makeDefElem("as", makeString(yyS[yypt-0].str))
}
case 967:
//line simplegram.y:6130
{
yyVAL.defelt = makeDefElem("language", makeString(yyS[yypt-0].str))
}
case 968:
//line simplegram.y:6143
{
n := &CreateCastStmt{}
n.sourcetype = yyS[yypt-7].typnam
n.targettype = yyS[yypt-5].typnam
n.fun = yyS[yypt-1].funwithargs
n.context = yyS[yypt-0].ival
n.inout = false
yyVAL.node = n
}
case 969:
//line simplegram.y:6154
{
n := &CreateCastStmt{}
n.sourcetype = yyS[yypt-6].typnam
n.targettype = yyS[yypt-4].typnam
n.fun = nil
n.context = yyS[yypt-0].ival
n.inout = false
yyVAL.node = n
}
case 970:
//line simplegram.y:6165
{
n := &CreateCastStmt{}
n.sourcetype = yyS[yypt-6].typnam
n.targettype = yyS[yypt-4].typnam
n.fun = nil
n.context = yyS[yypt-0].ival
n.inout = true
yyVAL.node = n
}
case 971:
//line simplegram.y:6176
{
yyVAL.ival = COERCION_IMPLICIT
}
case 972:
//line simplegram.y:6177
{
yyVAL.ival = COERCION_ASSIGNMENT
}
case 973:
//line simplegram.y:6178
{
yyVAL.ival = COERCION_EXPLICIT
}
case 974:
//line simplegram.y:6183
{
n := &DropStmt{}
n.removeType = OBJECT_CAST
n.objects = list_make1(list_make1(yyS[yypt-4].typnam))
n.arguments = list_make1(list_make1(yyS[yypt-2].typnam))
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = yyS[yypt-6].boolean
yyVAL.node = n
}
case 975:
//line simplegram.y:6194
{
yyVAL.boolean = TRUE
}
case 976:
//line simplegram.y:6195
{
yyVAL.boolean = FALSE
}
case 977:
//line simplegram.y:6210
{
n := &ReindexStmt{}
n.kind = yyS[yypt-2].objtype
n.relation = yyS[yypt-1].rangevar
n.name = nil
yyVAL.node = n
}
case 978:
//line simplegram.y:6218
{
n := &ReindexStmt{}
n.kind = OBJECT_DATABASE
n.name = yyS[yypt-1].str
n.relation = nil
n.do_system = true
n.do_user = false
yyVAL.node = n
}
case 979:
//line simplegram.y:6228
{
n := &ReindexStmt{}
n.kind = OBJECT_DATABASE
n.name = yyS[yypt-1].str
n.relation = nil
n.do_system = true
n.do_user = true
yyVAL.node = n
}
case 980:
//line simplegram.y:6240
{
yyVAL.objtype = OBJECT_INDEX
}
case 981:
//line simplegram.y:6241
{
yyVAL.objtype = OBJECT_TABLE
}
case 982:
//line simplegram.y:6244
{
yyVAL.boolean = TRUE
}
case 983:
//line simplegram.y:6245
{
yyVAL.boolean = FALSE
}
case 984:
//line simplegram.y:6256
{
n := &RenameStmt{}
n.renameType = OBJECT_AGGREGATE
n.object = yyS[yypt-4].list
n.objarg = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 985:
//line simplegram.y:6265
{
n := &RenameStmt{}
n.renameType = OBJECT_COLLATION
n.object = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 986:
//line simplegram.y:6273
{
n := &RenameStmt{}
n.renameType = OBJECT_CONVERSION
n.object = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 987:
//line simplegram.y:6281
{
n := &RenameStmt{}
n.renameType = OBJECT_DATABASE
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 988:
//line simplegram.y:6289
{
n := &RenameStmt{}
n.renameType = OBJECT_DOMAIN
n.object = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 989:
//line simplegram.y:6297
{
n := &RenameStmt{}
n.renameType = OBJECT_FDW
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 990:
//line simplegram.y:6305
{
n := &RenameStmt{}
n.renameType = OBJECT_FUNCTION
n.object = yyS[yypt-3].funwithargs.funcname
n.objarg = yyS[yypt-3].funwithargs.funcargs
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 991:
//line simplegram.y:6314
{
n := &RenameStmt{}
n.renameType = OBJECT_ROLE
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 992:
//line simplegram.y:6322
{
n := &RenameStmt{}
n.renameType = OBJECT_LANGUAGE
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 993:
//line simplegram.y:6330
{
n := &RenameStmt{}
n.renameType = OBJECT_OPCLASS
n.object = yyS[yypt-5].list
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 994:
//line simplegram.y:6339
{
n := &RenameStmt{}
n.renameType = OBJECT_OPFAMILY
n.object = yyS[yypt-5].list
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 995:
//line simplegram.y:6348
{
n := &RenameStmt{}
n.renameType = OBJECT_SCHEMA
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 996:
//line simplegram.y:6356
{
n := &RenameStmt{}
n.renameType = OBJECT_FOREIGN_SERVER
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 997:
//line simplegram.y:6364
{
n := &RenameStmt{}
n.renameType = OBJECT_TABLE
n.relation = yyS[yypt-3].rangevar
n.subname = nil
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 998:
//line simplegram.y:6373
{
n := &RenameStmt{}
n.renameType = OBJECT_SEQUENCE
n.relation = yyS[yypt-3].rangevar
n.subname = nil
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 999:
//line simplegram.y:6382
{
n := &RenameStmt{}
n.renameType = OBJECT_VIEW
n.relation = yyS[yypt-3].rangevar
n.subname = nil
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1000:
//line simplegram.y:6391
{
n := &RenameStmt{}
n.renameType = OBJECT_INDEX
n.relation = yyS[yypt-3].rangevar
n.subname = nil
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1001:
//line simplegram.y:6400
{
n := &RenameStmt{}
n.renameType = OBJECT_FOREIGN_TABLE
n.relation = yyS[yypt-3].rangevar
n.subname = nil
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1002:
//line simplegram.y:6409
{
n := &RenameStmt{}
n.renameType = OBJECT_COLUMN
n.relationType = OBJECT_TABLE
n.relation = yyS[yypt-5].rangevar
n.subname = yyS[yypt-2].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1003:
//line simplegram.y:6419
{
n := &RenameStmt{}
n.renameType = OBJECT_COLUMN
n.relationType = OBJECT_FOREIGN_TABLE
n.relation = yyS[yypt-5].rangevar
n.subname = yyS[yypt-2].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1004:
//line simplegram.y:6429
{
n := &RenameStmt{}
n.renameType = OBJECT_TRIGGER
n.relation = yyS[yypt-3].rangevar
n.subname = yyS[yypt-5].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1005:
//line simplegram.y:6438
{
n := &RenameStmt{}
n.renameType = OBJECT_ROLE
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1006:
//line simplegram.y:6446
{
n := &RenameStmt{}
n.renameType = OBJECT_ROLE
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1007:
//line simplegram.y:6454
{
n := &RenameStmt{}
n.renameType = OBJECT_TABLESPACE
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1008:
//line simplegram.y:6462
{
n :=
&AlterTableSpaceOptionsStmt{}
n.tablespacename = yyS[yypt-2].str
n.options = yyS[yypt-0].list
n.isReset = FALSE
yyVAL.node = n
}
case 1009:
//line simplegram.y:6471
{
n :=
&AlterTableSpaceOptionsStmt{}
n.tablespacename = yyS[yypt-2].str
n.options = yyS[yypt-0].list
n.isReset = TRUE
yyVAL.node = n
}
case 1010:
//line simplegram.y:6480
{
n := &RenameStmt{}
n.renameType = OBJECT_TSPARSER
n.object = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1011:
//line simplegram.y:6488
{
n := &RenameStmt{}
n.renameType = OBJECT_TSDICTIONARY
n.object = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1012:
//line simplegram.y:6496
{
n := &RenameStmt{}
n.renameType = OBJECT_TSTEMPLATE
n.object = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1013:
//line simplegram.y:6504
{
n := &RenameStmt{}
n.renameType = OBJECT_TSCONFIGURATION
n.object = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1014:
//line simplegram.y:6512
{
n := &RenameStmt{}
n.renameType = OBJECT_TYPE
n.object = yyS[yypt-3].list
n.newname = yyS[yypt-0].str
yyVAL.node = n
}
case 1015:
//line simplegram.y:6520
{
n := &RenameStmt{}
n.renameType = OBJECT_ATTRIBUTE
n.relationType = OBJECT_TYPE
n.relation = makeRangeVarFromAnyName(yyS[yypt-6].list, /*, @3*/ yyscanner)
n.subname = yyS[yypt-3].str
n.newname = yyS[yypt-1].str
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 1016:
//line simplegram.y:6532
{
yyVAL.ival = COLUMN
}
case 1017:
//line simplegram.y:6533
{
yyVAL.ival = 0
}
case 1018:
//line simplegram.y:6536
{
yyVAL.ival = 1
}
case 1019:
//line simplegram.y:6537
{
yyVAL.ival = 0
}
case 1020:
//line simplegram.y:6548
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_AGGREGATE
n.object = yyS[yypt-4].list
n.objarg = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1021:
//line simplegram.y:6557
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_COLLATION
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1022:
//line simplegram.y:6565
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_CONVERSION
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1023:
//line simplegram.y:6573
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_DOMAIN
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1024:
//line simplegram.y:6581
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_EXTENSION
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1025:
//line simplegram.y:6589
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_FUNCTION
n.object = yyS[yypt-3].funwithargs.funcname
n.objarg = yyS[yypt-3].funwithargs.funcargs
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1026:
//line simplegram.y:6598
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_OPERATOR
n.object = yyS[yypt-4].list
n.objarg = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1027:
//line simplegram.y:6607
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_OPCLASS
n.object = yyS[yypt-5].list
n.addname = yyS[yypt-3].str
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1028:
//line simplegram.y:6616
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_OPFAMILY
n.object = yyS[yypt-5].list
n.addname = yyS[yypt-3].str
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1029:
//line simplegram.y:6625
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_TABLE
n.relation = yyS[yypt-3].rangevar
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1030:
//line simplegram.y:6633
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_TSPARSER
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1031:
//line simplegram.y:6641
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_TSDICTIONARY
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1032:
//line simplegram.y:6649
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_TSTEMPLATE
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1033:
//line simplegram.y:6657
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_TSCONFIGURATION
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1034:
//line simplegram.y:6665
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_SEQUENCE
n.relation = yyS[yypt-3].rangevar
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1035:
//line simplegram.y:6673
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_VIEW
n.relation = yyS[yypt-3].rangevar
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1036:
//line simplegram.y:6681
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_FOREIGN_TABLE
n.relation = yyS[yypt-3].rangevar
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1037:
//line simplegram.y:6689
{
n := &AlterObjectSchemaStmt{}
n.objectType = OBJECT_TYPE
n.object = yyS[yypt-3].list
n.newschema = yyS[yypt-0].str
yyVAL.node = n
}
case 1038:
//line simplegram.y:6705
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_AGGREGATE
n.object = yyS[yypt-4].list
n.objarg = yyS[yypt-3].list
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1039:
//line simplegram.y:6714
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_COLLATION
n.object = yyS[yypt-3].list
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1040:
//line simplegram.y:6722
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_CONVERSION
n.object = yyS[yypt-3].list
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1041:
//line simplegram.y:6730
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_DATABASE
n.object = list_make1(makeString(yyS[yypt-3].str))
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1042:
//line simplegram.y:6738
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_DOMAIN
n.object = yyS[yypt-3].list
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1043:
//line simplegram.y:6746
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_FUNCTION
n.object = yyS[yypt-3].funwithargs.funcname
n.objarg = yyS[yypt-3].funwithargs.funcargs
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1044:
//line simplegram.y:6755
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_LANGUAGE
n.object = list_make1(makeString(yyS[yypt-3].str))
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1045:
//line simplegram.y:6763
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_LARGEOBJECT
n.object = list_make1(yyS[yypt-3].value)
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1046:
//line simplegram.y:6771
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_OPERATOR
n.object = yyS[yypt-4].list
n.objarg = yyS[yypt-3].list
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1047:
//line simplegram.y:6780
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_OPCLASS
n.object = yyS[yypt-5].list
n.addname = yyS[yypt-3].str
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1048:
//line simplegram.y:6789
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_OPFAMILY
n.object = yyS[yypt-5].list
n.addname = yyS[yypt-3].str
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1049:
//line simplegram.y:6798
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_SCHEMA
n.object = list_make1(makeString(yyS[yypt-3].str))
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1050:
//line simplegram.y:6806
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_TYPE
n.object = yyS[yypt-3].list
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1051:
//line simplegram.y:6814
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_TABLESPACE
n.object = list_make1(makeString(yyS[yypt-3].str))
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1052:
//line simplegram.y:6822
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_TSDICTIONARY
n.object = yyS[yypt-3].list
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1053:
//line simplegram.y:6830
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_TSCONFIGURATION
n.object = yyS[yypt-3].list
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1054:
//line simplegram.y:6838
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_FDW
n.object = list_make1(makeString(yyS[yypt-3].str))
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1055:
//line simplegram.y:6846
{
n := &AlterOwnerStmt{}
n.objectType = OBJECT_FOREIGN_SERVER
n.object = list_make1(makeString(yyS[yypt-3].str))
n.newowner = yyS[yypt-0].str
yyVAL.node = n
}
case 1056:
//line simplegram.y:6865
{
n := &RuleStmt{}
n.replace = yyS[yypt-11].boolean
n.relation = yyS[yypt-4].rangevar
n.rulename = yyS[yypt-9].str
n.whereClause = yyS[yypt-3].node
n.event = yyS[yypt-6].ival
n.instead = yyS[yypt-1].boolean
n.actions = yyS[yypt-0].list
yyVAL.node = n
}
case 1057:
//line simplegram.y:6879
{
yyVAL.list = NIL
}
case 1058:
//line simplegram.y:6880
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1059:
//line simplegram.y:6881
{
yyVAL.list = yyS[yypt-1].list
}
case 1060:
//line simplegram.y:6887
{
if yyS[yypt-0].node != nil {
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
} else {
yyVAL.list = yyS[yypt-2].list
}
}
case 1061:
//line simplegram.y:6894
{
if yyS[yypt-0].node != nil {
yyVAL.list = list_make1(yyS[yypt-0].node)
} else {
yyVAL.list = NIL
}
}
case 1062:
yyVAL.node = yyS[yypt-0].node
case 1063:
yyVAL.node = yyS[yypt-0].node
case 1064:
yyVAL.node = yyS[yypt-0].node
case 1065:
yyVAL.node = yyS[yypt-0].node
case 1066:
yyVAL.node = yyS[yypt-0].node
case 1067:
//line simplegram.y:6911
{
yyVAL.node = yyS[yypt-0].node
}
case 1068:
//line simplegram.y:6912
{
yyVAL.node = nil
}
case 1069:
//line simplegram.y:6915
{
yyVAL.ival = CMD_SELECT
}
case 1070:
//line simplegram.y:6916
{
yyVAL.ival = CMD_UPDATE
}
case 1071:
//line simplegram.y:6917
{
yyVAL.ival = CMD_DELETE
}
case 1072:
//line simplegram.y:6918
{
yyVAL.ival = CMD_INSERT
}
case 1073:
//line simplegram.y:6922
{
yyVAL.boolean = TRUE
}
case 1074:
//line simplegram.y:6923
{
yyVAL.boolean = FALSE
}
case 1075:
//line simplegram.y:6924
{
yyVAL.boolean = FALSE
}
case 1076:
//line simplegram.y:6930
{
n := &DropStmt{}
n.removeType = OBJECT_RULE
n.objects = list_make1(lappend(yyS[yypt-1].list, makeString(yyS[yypt-3].str)))
n.arguments = NIL
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = false
yyVAL.node = n
}
case 1077:
//line simplegram.y:6940
{
n := &DropStmt{}
n.removeType = OBJECT_RULE
n.objects = list_make1(lappend(yyS[yypt-1].list, makeString(yyS[yypt-3].str)))
n.arguments = NIL
n.behavior = yyS[yypt-0].dbehavior
n.missing_ok = true
yyVAL.node = n
}
case 1078:
//line simplegram.y:6961
{
n := &NotifyStmt{}
n.conditionname = yyS[yypt-1].str
n.payload = yyS[yypt-0].str
yyVAL.node = n
}
case 1079:
//line simplegram.y:6970
{
yyVAL.str = yyS[yypt-0].str
}
case 1080:
//line simplegram.y:6971
{
yyVAL.str = nil
}
case 1081:
//line simplegram.y:6975
{
n := &ListenStmt{}
n.conditionname = yyS[yypt-0].str
yyVAL.node = n
}
case 1082:
//line simplegram.y:6984
{
n := &UnlistenStmt{}
n.conditionname = yyS[yypt-0].str
yyVAL.node = n
}
case 1083:
//line simplegram.y:6990
{
n := &UnlistenStmt{}
n.conditionname = nil
yyVAL.node = n
}
case 1084:
//line simplegram.y:7009
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_ROLLBACK
n.options = NIL
yyVAL.node = n
}
case 1085:
//line simplegram.y:7016
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_BEGIN
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 1086:
//line simplegram.y:7023
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_START
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 1087:
//line simplegram.y:7030
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_COMMIT
n.options = NIL
yyVAL.node = n
}
case 1088:
//line simplegram.y:7037
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_COMMIT
n.options = NIL
yyVAL.node = n
}
case 1089:
//line simplegram.y:7044
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_ROLLBACK
n.options = NIL
yyVAL.node = n
}
case 1090:
//line simplegram.y:7051
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_SAVEPOINT
n.options = list_make1(makeDefElem("savepoint_name",
makeString(yyS[yypt-0].str)))
yyVAL.node = n
}
case 1091:
//line simplegram.y:7059
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_RELEASE
n.options = list_make1(makeDefElem("savepoint_name",
makeString(yyS[yypt-0].str)))
yyVAL.node = n
}
case 1092:
//line simplegram.y:7067
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_RELEASE
n.options = list_make1(makeDefElem("savepoint_name",
makeString(yyS[yypt-0].str)))
yyVAL.node = n
}
case 1093:
//line simplegram.y:7075
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_ROLLBACK_TO
n.options = list_make1(makeDefElem("savepoint_name",
makeString(yyS[yypt-0].str)))
yyVAL.node = n
}
case 1094:
//line simplegram.y:7083
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_ROLLBACK_TO
n.options = list_make1(makeDefElem("savepoint_name",
makeString(yyS[yypt-0].str)))
yyVAL.node = n
}
case 1095:
//line simplegram.y:7091
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_PREPARE
n.gid = yyS[yypt-0].str
yyVAL.node = n
}
case 1096:
//line simplegram.y:7098
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_COMMIT_PREPARED
n.gid = yyS[yypt-0].str
yyVAL.node = n
}
case 1097:
//line simplegram.y:7105
{
n := &TransactionStmt{}
n.kind = TRANS_STMT_ROLLBACK_PREPARED
n.gid = yyS[yypt-0].str
yyVAL.node = n
}
case 1098:
//line simplegram.y:7113
{
}
case 1099:
//line simplegram.y:7114
{
}
case 1100:
//line simplegram.y:7115
{
}
case 1101:
//line simplegram.y:7120
{
yyVAL.defelt = makeDefElem("transaction_isolation",
makeStringConst(yyS[yypt-0].str /*, @3*/ ))
}
case 1102:
//line simplegram.y:7123
{
yyVAL.defelt = makeDefElem("transaction_read_only",
makeIntConst(TRUE /*, @1*/ ))
}
case 1103:
//line simplegram.y:7126
{
yyVAL.defelt = makeDefElem("transaction_read_only",
makeIntConst(FALSE /*, @1*/ ))
}
case 1104:
//line simplegram.y:7129
{
yyVAL.defelt = makeDefElem("transaction_deferrable",
makeIntConst(TRUE /*, @1*/ ))
}
case 1105:
//line simplegram.y:7132
{
yyVAL.defelt = makeDefElem("transaction_deferrable",
makeIntConst(FALSE /*, @1*/ ))
}
case 1106:
//line simplegram.y:7139
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 1107:
//line simplegram.y:7141
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].defelt)
}
case 1108:
//line simplegram.y:7143
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 1109:
yyVAL.list = yyS[yypt-0].list
case 1110:
//line simplegram.y:7149
{
yyVAL.list = NIL
}
case 1111:
//line simplegram.y:7163
{
n := &ViewStmt{}
n.view = yyS[yypt-5].rangevar
n.view.relpersistence = yyS[yypt-7].ival
n.aliases = yyS[yypt-4].list
n.query = yyS[yypt-1].node
n.replace = false
n.options = yyS[yypt-3].list
yyVAL.node = n
}
case 1112:
//line simplegram.y:7175
{
n := &ViewStmt{}
n.view = yyS[yypt-5].rangevar
n.view.relpersistence = yyS[yypt-7].ival
n.aliases = yyS[yypt-4].list
n.query = yyS[yypt-1].node
n.replace = true
n.options = yyS[yypt-3].list
yyVAL.node = n
}
case 1113:
//line simplegram.y:7189
{
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("WITH CHECK OPTION is not implemented"))
}
case 1114:
//line simplegram.y:7195
{
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("WITH CHECK OPTION is not implemented"))
}
case 1115:
//line simplegram.y:7201
{
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("WITH CHECK OPTION is not implemented"))
}
case 1116:
//line simplegram.y:7206
{
yyVAL.list = NIL
}
case 1117:
//line simplegram.y:7217
{
n := &LoadStmt{}
n.filename = yyS[yypt-0].str
yyVAL.node = n
}
case 1118:
//line simplegram.y:7233
{
n := &CreatedbStmt{}
n.dbname = yyS[yypt-2].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 1119:
//line simplegram.y:7242
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 1120:
//line simplegram.y:7243
{
yyVAL.list = NIL
}
case 1121:
//line simplegram.y:7248
{
yyVAL.defelt = makeDefElem("tablespace", makeString(yyS[yypt-0].str))
}
case 1122:
//line simplegram.y:7252
{
yyVAL.defelt = makeDefElem("tablespace", nil)
}
case 1123:
//line simplegram.y:7256
{
yyVAL.defelt = makeDefElem("location", makeString(yyS[yypt-0].str))
}
case 1124:
//line simplegram.y:7260
{
yyVAL.defelt = makeDefElem("location", nil)
}
case 1125:
//line simplegram.y:7264
{
yyVAL.defelt = makeDefElem("template", makeString(yyS[yypt-0].str))
}
case 1126:
//line simplegram.y:7268
{
yyVAL.defelt = makeDefElem("template", nil)
}
case 1127:
//line simplegram.y:7272
{
yyVAL.defelt = makeDefElem("encoding", makeString(yyS[yypt-0].str))
}
case 1128:
//line simplegram.y:7276
{
yyVAL.defelt = makeDefElem("encoding", makeInteger(yyS[yypt-0].ival))
}
case 1129:
//line simplegram.y:7280
{
yyVAL.defelt = makeDefElem("encoding", nil)
}
case 1130:
//line simplegram.y:7284
{
yyVAL.defelt = makeDefElem("lc_collate", makeString(yyS[yypt-0].str))
}
case 1131:
//line simplegram.y:7288
{
yyVAL.defelt = makeDefElem("lc_collate", nil)
}
case 1132:
//line simplegram.y:7292
{
yyVAL.defelt = makeDefElem("lc_ctype", makeString(yyS[yypt-0].str))
}
case 1133:
//line simplegram.y:7296
{
yyVAL.defelt = makeDefElem("lc_ctype", nil)
}
case 1134:
//line simplegram.y:7300
{
yyVAL.defelt = makeDefElem("connectionlimit", makeInteger(yyS[yypt-0].ival))
}
case 1135:
//line simplegram.y:7304
{
yyVAL.defelt = makeDefElem("owner", makeString(yyS[yypt-0].str))
}
case 1136:
//line simplegram.y:7308
{
yyVAL.defelt = makeDefElem("owner", nil)
}
case 1137:
//line simplegram.y:7317
{
}
case 1138:
//line simplegram.y:7318
{
}
case 1139:
//line simplegram.y:7330
{
n := &AlterDatabaseStmt{}
n.dbname = yyS[yypt-2].str
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 1140:
//line simplegram.y:7337
{
n := &AlterDatabaseStmt{}
n.dbname = yyS[yypt-3].str
n.options = list_make1(makeDefElem("tablespace",
makeString(yyS[yypt-0].str)))
yyVAL.node = n
}
case 1141:
//line simplegram.y:7348
{
n := &AlterDatabaseSetStmt{}
n.dbname = yyS[yypt-1].str
n.setstmt = yyS[yypt-0].vsetstmt
yyVAL.node = n
}
case 1142:
//line simplegram.y:7358
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].defelt)
}
case 1143:
//line simplegram.y:7359
{
yyVAL.list = NIL
}
case 1144:
//line simplegram.y:7364
{
yyVAL.defelt = makeDefElem("connectionlimit", makeInteger(yyS[yypt-0].ival))
}
case 1145:
//line simplegram.y:7378
{
n := &DropdbStmt{}
n.dbname = yyS[yypt-0].str
n.missing_ok = FALSE
yyVAL.node = n
}
case 1146:
//line simplegram.y:7385
{
n := &DropdbStmt{}
n.dbname = yyS[yypt-0].str
n.missing_ok = TRUE
yyVAL.node = n
}
case 1147:
//line simplegram.y:7402
{
n := &CreateDomainStmt{}
n.domainname = yyS[yypt-3].list
n.typeName = yyS[yypt-1].typnam
SplitColQualList(yyS[yypt-0].list, &n.constraints, &n.collClause,
yyscanner)
yyVAL.node = n
}
case 1148:
//line simplegram.y:7415
{
n := &AlterDomainStmt{}
n.subtype = 'T'
n.typeName = yyS[yypt-1].list
n.def = yyS[yypt-0].node
yyVAL.node = n
}
case 1149:
//line simplegram.y:7424
{
n := &AlterDomainStmt{}
n.subtype = 'N'
n.typeName = yyS[yypt-3].list
yyVAL.node = n
}
case 1150:
//line simplegram.y:7432
{
n := &AlterDomainStmt{}
n.subtype = 'O'
n.typeName = yyS[yypt-3].list
yyVAL.node = n
}
case 1151:
//line simplegram.y:7440
{
n := &AlterDomainStmt{}
n.subtype = 'C'
n.typeName = yyS[yypt-2].list
n.def = yyS[yypt-0].node
yyVAL.node = n
}
case 1152:
//line simplegram.y:7449
{
n := &AlterDomainStmt{}
n.subtype = 'X'
n.typeName = yyS[yypt-4].list
n.name = yyS[yypt-1].str
n.behavior = yyS[yypt-0].dbehavior
yyVAL.node = n
}
case 1153:
//line simplegram.y:7459
{
n := &AlterDomainStmt{}
n.subtype = 'V'
n.typeName = yyS[yypt-3].list
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 1154:
//line simplegram.y:7468
{
}
case 1155:
//line simplegram.y:7469
{
}
case 1156:
//line simplegram.y:7481
{
n := &AlterTSDictionaryStmt{}
n.dictname = yyS[yypt-1].list
n.options = yyS[yypt-0].list
yyVAL.node = n
}
case 1157:
//line simplegram.y:7491
{
n := &AlterTSConfigurationStmt{}
n.cfgname = yyS[yypt-6].list
n.tokentype = yyS[yypt-2].list
n.dicts = yyS[yypt-0].list
n.override = false
n.replace = false
yyVAL.node = n
}
case 1158:
//line simplegram.y:7501
{
n := &AlterTSConfigurationStmt{}
n.cfgname = yyS[yypt-6].list
n.tokentype = yyS[yypt-2].list
n.dicts = yyS[yypt-0].list
n.override = true
n.replace = false
yyVAL.node = n
}
case 1159:
//line simplegram.y:7511
{
n := &AlterTSConfigurationStmt{}
n.cfgname = yyS[yypt-6].list
n.tokentype = NIL
n.dicts = list_make2(yyS[yypt-2].list, yyS[yypt-0].list)
n.override = false
n.replace = true
yyVAL.node = n
}
case 1160:
//line simplegram.y:7521
{
n := &AlterTSConfigurationStmt{}
n.cfgname = yyS[yypt-8].list
n.tokentype = yyS[yypt-4].list
n.dicts = list_make2(yyS[yypt-2].list, yyS[yypt-0].list)
n.override = false
n.replace = true
yyVAL.node = n
}
case 1161:
//line simplegram.y:7531
{
n := &AlterTSConfigurationStmt{}
n.cfgname = yyS[yypt-4].list
n.tokentype = yyS[yypt-0].list
n.missing_ok = false
yyVAL.node = n
}
case 1162:
//line simplegram.y:7539
{
n := &AlterTSConfigurationStmt{}
n.cfgname = yyS[yypt-6].list
n.tokentype = yyS[yypt-0].list
n.missing_ok = true
yyVAL.node = n
}
case 1163:
//line simplegram.y:7561
{
n := &CreateConversionStmt{}
n.conversion_name = yyS[yypt-6].list
n.for_encoding_name = yyS[yypt-4].str
n.to_encoding_name = yyS[yypt-2].str
n.func_name = yyS[yypt-0].list
n.def = yyS[yypt-8].boolean
yyVAL.node = n
}
case 1164:
//line simplegram.y:7583
{
n := &ClusterStmt{}
n.relation = yyS[yypt-1].rangevar
n.indexname = yyS[yypt-0].str
n.verbose = yyS[yypt-2].boolean
yyVAL.node = n
}
case 1165:
//line simplegram.y:7591
{
n := &ClusterStmt{}
n.relation = nil
n.indexname = nil
n.verbose = yyS[yypt-0].boolean
yyVAL.node = n
}
case 1166:
//line simplegram.y:7600
{
n := &ClusterStmt{}
n.relation = yyS[yypt-0].rangevar
n.indexname = yyS[yypt-2].str
n.verbose = yyS[yypt-3].boolean
yyVAL.node = n
}
case 1167:
//line simplegram.y:7610
{
yyVAL.str = yyS[yypt-0].str
}
case 1168:
//line simplegram.y:7611
{
yyVAL.str = nil
}
case 1169:
//line simplegram.y:7624
{
n := &VacuumStmt{}
n.options = VACOPT_VACUUM
if yyS[yypt-2].boolean {
n.options |= VACOPT_FULL
}
if yyS[yypt-0].boolean {
n.options |= VACOPT_VERBOSE
}
if yyS[yypt-1].boolean {
n.freeze_min_age = 0
n.freeze_table_age = 0
} else {
n.freeze_min_age = -1
n.freeze_table_age = -1
}
n.relation = nil
n.va_cols = NIL
yyVAL.node = n
}
case 1170:
//line simplegram.y:7645
{
n := &VacuumStmt{}
n.options = VACOPT_VACUUM
if yyS[yypt-3].boolean {
n.options |= VACOPT_FULL
}
if yyS[yypt-1].boolean {
n.options |= VACOPT_VERBOSE
}
if yyS[yypt-2].boolean {
n.freeze_min_age = 0
n.freeze_table_age = 0
} else {
n.freeze_min_age = -1
n.freeze_table_age = -1
}
n.relation = yyS[yypt-0].rangevar
n.va_cols = NIL
yyVAL.node = n
}
case 1171:
//line simplegram.y:7666
{
n := yyS[yypt-0].node
n.options |= VACOPT_VACUUM
if yyS[yypt-3].boolean {
n.options |= VACOPT_FULL
}
if yyS[yypt-1].boolean {
n.options |= VACOPT_VERBOSE
}
if yyS[yypt-2].boolean {
n.freeze_min_age = 0
n.freeze_table_age = 0
} else {
n.freeze_min_age = -1
n.freeze_table_age = -1
}
yyVAL.node = n
}
case 1172:
//line simplegram.y:7686
{
n := &VacuumStmt{}
n.options = VACOPT_VACUUM | yyS[yypt-1].ival
if n.options & VACOPT_FREEZE {
n.freeze_min_age = 0
n.freeze_table_age = 0
} else {
n.freeze_min_age = -1
n.freeze_table_age = -1
}
n.relation = nil
n.va_cols = NIL
yyVAL.node = n
}
case 1173:
//line simplegram.y:7701
{
n := &VacuumStmt{}
n.options = VACOPT_VACUUM | yyS[yypt-3].ival
if n.options & VACOPT_FREEZE {
n.freeze_min_age = 0
n.freeze_table_age = 0
} else {
n.freeze_min_age = -1
n.freeze_table_age = -1
}
n.relation = yyS[yypt-1].rangevar
n.va_cols = yyS[yypt-0].list
if n.va_cols != NIL { /* implies analyze */
n.options |= VACOPT_ANALYZE
}
yyVAL.node = n
}
case 1174:
//line simplegram.y:7720
{
yyVAL.ival = yyS[yypt-0].ival
}
case 1175:
//line simplegram.y:7721
{
yyVAL.ival = yyS[yypt-2].ival | yyS[yypt-0].ival
}
case 1176:
//line simplegram.y:7725
{
yyVAL.ival = VACOPT_ANALYZE
}
case 1177:
//line simplegram.y:7726
{
yyVAL.ival = VACOPT_VERBOSE
}
case 1178:
//line simplegram.y:7727
{
yyVAL.ival = VACOPT_FREEZE
}
case 1179:
//line simplegram.y:7728
{
yyVAL.ival = VACOPT_FULL
}
case 1180:
//line simplegram.y:7733
{
n := &VacuumStmt{}
n.options = VACOPT_ANALYZE
if yyS[yypt-0].boolean {
n.options |= VACOPT_VERBOSE
}
n.freeze_min_age = -1
n.freeze_table_age = -1
n.relation = nil
n.va_cols = NIL
yyVAL.node = n
}
case 1181:
//line simplegram.y:7746
{
n := &VacuumStmt{}
n.options = VACOPT_ANALYZE
if yyS[yypt-2].boolean {
n.options |= VACOPT_VERBOSE
}
n.freeze_min_age = -1
n.freeze_table_age = -1
n.relation = yyS[yypt-1].rangevar
n.va_cols = yyS[yypt-0].list
yyVAL.node = n
}
case 1182:
//line simplegram.y:7761
{
}
case 1183:
//line simplegram.y:7762
{
}
case 1184:
//line simplegram.y:7766
{
yyVAL.boolean = TRUE
}
case 1185:
//line simplegram.y:7767
{
yyVAL.boolean = FALSE
}
case 1186:
//line simplegram.y:7770
{
yyVAL.boolean = TRUE
}
case 1187:
//line simplegram.y:7771
{
yyVAL.boolean = FALSE
}
case 1188:
//line simplegram.y:7774
{
yyVAL.boolean = TRUE
}
case 1189:
//line simplegram.y:7775
{
yyVAL.boolean = FALSE
}
case 1190:
//line simplegram.y:7779
{
yyVAL.list = yyS[yypt-1].list
}
case 1191:
//line simplegram.y:7780
{
yyVAL.list = NIL
}
case 1192:
//line simplegram.y:7794
{
n := &ExplainStmt{}
n.query = yyS[yypt-0].node
n.options = NIL
yyVAL.node = n
}
case 1193:
//line simplegram.y:7801
{
n := &ExplainStmt{}
n.query = yyS[yypt-0].node
n.options = list_make1(makeDefElem("analyze", nil))
if yyS[yypt-1].boolean {
n.options = lappend(n.options,
makeDefElem("verbose", nil))
}
yyVAL.node = n
}
case 1194:
//line simplegram.y:7812
{
n := &ExplainStmt{}
n.query = yyS[yypt-0].node
n.options = list_make1(makeDefElem("verbose", nil))
yyVAL.node = n
}
case 1195:
//line simplegram.y:7819
{
n := &ExplainStmt{}
n.query = yyS[yypt-0].node
n.options = yyS[yypt-2].list
yyVAL.node = n
}
case 1196:
yyVAL.node = yyS[yypt-0].node
case 1197:
yyVAL.node = yyS[yypt-0].node
case 1198:
yyVAL.node = yyS[yypt-0].node
case 1199:
yyVAL.node = yyS[yypt-0].node
case 1200:
yyVAL.node = yyS[yypt-0].node
case 1201:
yyVAL.node = yyS[yypt-0].node
case 1202:
yyVAL.node = yyS[yypt-0].node
case 1203:
//line simplegram.y:7839
{
yyVAL.list = list_make1(yyS[yypt-0].defelt)
}
case 1204:
//line simplegram.y:7843
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].defelt)
}
case 1205:
//line simplegram.y:7850
{
yyVAL.defelt = makeDefElem(yyS[yypt-1].str, yyS[yypt-0].node)
}
case 1206:
//line simplegram.y:7856
{
yyVAL.str = yyS[yypt-0].str
}
case 1207:
//line simplegram.y:7857
{
yyVAL.str = "analyze"
}
case 1208:
//line simplegram.y:7858
{
yyVAL.str = "verbose"
}
case 1209:
//line simplegram.y:7862
{
yyVAL.node = makeString(yyS[yypt-0].str)
}
case 1210:
//line simplegram.y:7863
{
yyVAL.node = yyS[yypt-0].value
}
case 1211:
//line simplegram.y:7864
{
yyVAL.node = nil
}
case 1212:
//line simplegram.y:7875
{
n := &PrepareStmt{}
n.name = yyS[yypt-3].str
n.argtypes = yyS[yypt-2].list
n.query = yyS[yypt-0].node
yyVAL.node = n
}
case 1213:
//line simplegram.y:7884
{
yyVAL.list = yyS[yypt-1].list
}
case 1214:
//line simplegram.y:7885
{
yyVAL.list = NIL
}
case 1215:
yyVAL.node = yyS[yypt-0].node
case 1216:
yyVAL.node = yyS[yypt-0].node
case 1217:
yyVAL.node = yyS[yypt-0].node
case 1218:
yyVAL.node = yyS[yypt-0].node
case 1219:
//line simplegram.y:7903
{
n := &ExecuteStmt{}
n.name = yyS[yypt-1].str
n.params = yyS[yypt-0].list
n.into = nil
yyVAL.node = n
}
case 1220:
//line simplegram.y:7912
{
n := &ExecuteStmt{}
n.name = yyS[yypt-2].str
n.params = yyS[yypt-1].list
n.into = yyS[yypt-5].into
/* cram additional flags into the IntoClause */
yyS[yypt-5].into.rel.relpersistence = yyS[yypt-7].ival
yyS[yypt-5].into.skipData = !(yyS[yypt-0].boolean)
yyVAL.node = n
}
case 1221:
//line simplegram.y:7923
{
yyVAL.list = yyS[yypt-1].list
}
case 1222:
//line simplegram.y:7924
{
yyVAL.list = NIL
}
case 1223:
//line simplegram.y:7935
{
n := &DeallocateStmt{}
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 1224:
//line simplegram.y:7941
{
n := &DeallocateStmt{}
n.name = yyS[yypt-0].str
yyVAL.node = n
}
case 1225:
//line simplegram.y:7947
{
n := &DeallocateStmt{}
n.name = nil
yyVAL.node = n
}
case 1226:
//line simplegram.y:7953
{
n := &DeallocateStmt{}
n.name = nil
yyVAL.node = n
}
case 1227:
//line simplegram.y:7969
{
yyS[yypt-1].istmt.relation = yyS[yypt-2].rangevar
yyS[yypt-1].istmt.returningList = yyS[yypt-0].list
yyS[yypt-1].istmt.withClause = yyS[yypt-5].with
yyVAL.node = yyS[yypt-1].istmt
}
case 1228:
//line simplegram.y:7979
{
yyVAL.istmt = &InsertStmt{}
yyVAL.istmt.cols = NIL
yyVAL.istmt.selectStmt = yyS[yypt-0].node
}
case 1229:
//line simplegram.y:7985
{
yyVAL.istmt = &InsertStmt{}
yyVAL.istmt.cols = yyS[yypt-2].list
yyVAL.istmt.selectStmt = yyS[yypt-0].node
}
case 1230:
//line simplegram.y:7991
{
yyVAL.istmt = &InsertStmt{}
yyVAL.istmt.cols = NIL
yyVAL.istmt.selectStmt = nil
}
case 1231:
//line simplegram.y:8000
{
yyVAL.list = list_make1(yyS[yypt-0].target)
}
case 1232:
//line simplegram.y:8002
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].target)
}
case 1233:
//line simplegram.y:8007
{
yyVAL.target = &ResTarget{}
yyVAL.target.name = yyS[yypt-1].str
yyVAL.target.indirection = check_indirection(yyS[yypt-0].list, yyscanner)
yyVAL.target.val = nil
// $$.location = @1;
}
case 1234:
//line simplegram.y:8017
{
yyVAL.list = yyS[yypt-0].list
}
case 1235:
//line simplegram.y:8018
{
yyVAL.list = NIL
}
case 1236:
//line simplegram.y:8031
{
n := &DeleteStmt{}
n.relation = yyS[yypt-3].rangevar
n.usingClause = yyS[yypt-2].list
n.whereClause = yyS[yypt-1].node
n.returningList = yyS[yypt-0].list
n.withClause = yyS[yypt-6].with
yyVAL.node = n
}
case 1237:
//line simplegram.y:8043
{
yyVAL.list = yyS[yypt-0].list
}
case 1238:
//line simplegram.y:8044
{
yyVAL.list = NIL
}
case 1239:
//line simplegram.y:8056
{
n := &LockStmt{}
n.relations = yyS[yypt-2].list
n.mode = yyS[yypt-1].ival
n.nowait = yyS[yypt-0].boolean
yyVAL.node = n
}
case 1240:
//line simplegram.y:8066
{
yyVAL.ival = yyS[yypt-1].ival
}
case 1241:
//line simplegram.y:8067
{
yyVAL.ival = AccessExclusiveLock
}
case 1242:
//line simplegram.y:8070
{
yyVAL.ival = AccessShareLock
}
case 1243:
//line simplegram.y:8071
{
yyVAL.ival = RowShareLock
}
case 1244:
//line simplegram.y:8072
{
yyVAL.ival = RowExclusiveLock
}
case 1245:
//line simplegram.y:8073
{
yyVAL.ival = ShareUpdateExclusiveLock
}
case 1246:
//line simplegram.y:8074
{
yyVAL.ival = ShareLock
}
case 1247:
//line simplegram.y:8075
{
yyVAL.ival = ShareRowExclusiveLock
}
case 1248:
//line simplegram.y:8076
{
yyVAL.ival = ExclusiveLock
}
case 1249:
//line simplegram.y:8077
{
yyVAL.ival = AccessExclusiveLock
}
case 1250:
//line simplegram.y:8080
{
yyVAL.boolean = TRUE
}
case 1251:
//line simplegram.y:8081
{
yyVAL.boolean = FALSE
}
case 1252:
//line simplegram.y:8097
{
n := &UpdateStmt{}
n.relation = yyS[yypt-5].rangevar
n.targetList = yyS[yypt-3].list
n.fromClause = yyS[yypt-2].list
n.whereClause = yyS[yypt-1].node
n.returningList = yyS[yypt-0].list
n.withClause = yyS[yypt-7].with
yyVAL.node = n
}
case 1253:
//line simplegram.y:8110
{
yyVAL.list = yyS[yypt-0].list
}
case 1254:
//line simplegram.y:8111
{
yyVAL.list = list_concat(yyS[yypt-2].list, yyS[yypt-0].list)
}
case 1255:
//line simplegram.y:8115
{
yyVAL.list = list_make1(yyS[yypt-0].target)
}
case 1256:
//line simplegram.y:8116
{
yyVAL.list = yyS[yypt-0].list
}
case 1257:
//line simplegram.y:8121
{
yyVAL.target = yyS[yypt-2].target
yyVAL.target.val = yyS[yypt-0].node
}
case 1258:
//line simplegram.y:8129
{
ListCell * col_cell
ListCell * val_cell
/*
* Break the ctext_row apart, merge individual expressions
* into the destination ResTargets. XXX this approach
* cannot work for general row expressions as sources.
*/
if list_length(yyS[yypt-3].list) != list_length(yyS[yypt-0].list) {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("number of columns does not match number of values"),
parser_errposition( /*@1*/ ))
}
/*
forboth(col_cell, $2, val_cell, $5)
{
ResTarget *res_col = lfirst(col_cell);
Node *res_val = lfirst(val_cell);
res_col.val = res_val;
}
*/
panic("fixme")
yyVAL.list = yyS[yypt-3].list
}
case 1259:
//line simplegram.y:8159
{
yyVAL.target = &ResTarget{}
yyVAL.target.name = yyS[yypt-1].str
yyVAL.target.indirection = check_indirection(yyS[yypt-0].list, yyscanner)
yyVAL.target.val = nil /* upper production sets this */
// $$.location = @1;
}
case 1260:
//line simplegram.y:8168
{
yyVAL.list = list_make1(yyS[yypt-0].target)
}
case 1261:
//line simplegram.y:8169
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].target)
}
case 1262:
//line simplegram.y:8180
{
n := &DeclareCursorStmt{}
n.portalname = yyS[yypt-5].str
/* currently we always set FAST_PLAN option */
n.options = yyS[yypt-4].ival | yyS[yypt-2].ival | CURSOR_OPT_FAST_PLAN
n.query = yyS[yypt-0].node
yyVAL.node = n
}
case 1263:
//line simplegram.y:8189
{
yyVAL.str = yyS[yypt-0].str
}
case 1264:
//line simplegram.y:8192
{
yyVAL.ival = 0
}
case 1265:
//line simplegram.y:8193
{
yyVAL.ival = yyS[yypt-2].ival | CURSOR_OPT_NO_SCROLL
}
case 1266:
//line simplegram.y:8194
{
yyVAL.ival = yyS[yypt-1].ival | CURSOR_OPT_SCROLL
}
case 1267:
//line simplegram.y:8195
{
yyVAL.ival = yyS[yypt-1].ival | CURSOR_OPT_BINARY
}
case 1268:
//line simplegram.y:8196
{
yyVAL.ival = yyS[yypt-1].ival | CURSOR_OPT_INSENSITIVE
}
case 1269:
//line simplegram.y:8199
{
yyVAL.ival = 0
}
case 1270:
//line simplegram.y:8200
{
yyVAL.ival = CURSOR_OPT_HOLD
}
case 1271:
//line simplegram.y:8201
{
yyVAL.ival = 0
}
case 1272:
yyVAL.node = yyS[yypt-0].node
case 1273:
yyVAL.node = yyS[yypt-0].node
case 1274:
//line simplegram.y:8254
{
yyVAL.node = yyS[yypt-1].node
}
case 1275:
//line simplegram.y:8255
{
yyVAL.node = yyS[yypt-1].node
}
case 1276:
//line simplegram.y:8269
{
yyVAL.node = yyS[yypt-0].node
}
case 1277:
//line simplegram.y:8271
{
insertSelectOptions(yyS[yypt-1].node, yyS[yypt-0].list, NIL,
nil, nil, nil,
yyscanner)
yyVAL.node = yyS[yypt-1].node
}
case 1278:
//line simplegram.y:8278
{
insertSelectOptions(yyS[yypt-3].node, yyS[yypt-2].list, yyS[yypt-1].list,
list_nth(yyS[yypt-0].list, 0), list_nth(yyS[yypt-0].list, 1),
nil,
yyscanner)
yyVAL.node = yyS[yypt-3].node
}
case 1279:
//line simplegram.y:8286
{
insertSelectOptions(yyS[yypt-3].node, yyS[yypt-2].list, yyS[yypt-0].list,
list_nth(yyS[yypt-1].list, 0), list_nth(yyS[yypt-1].list, 1),
nil,
yyscanner)
yyVAL.node = yyS[yypt-3].node
}
case 1280:
//line simplegram.y:8294
{
insertSelectOptions(yyS[yypt-0].node, nil, NIL,
nil, nil,
yyS[yypt-1].with,
yyscanner)
yyVAL.node = yyS[yypt-0].node
}
case 1281:
//line simplegram.y:8302
{
insertSelectOptions(yyS[yypt-1].node, yyS[yypt-0].list, NIL,
nil, nil,
yyS[yypt-2].with,
yyscanner)
yyVAL.node = yyS[yypt-1].node
}
case 1282:
//line simplegram.y:8310
{
insertSelectOptions(yyS[yypt-3].node, yyS[yypt-2].list, yyS[yypt-1].list,
list_nth(yyS[yypt-0].list, 0), list_nth(yyS[yypt-0].list, 1),
yyS[yypt-4].with,
yyscanner)
yyVAL.node = yyS[yypt-3].node
}
case 1283:
//line simplegram.y:8318
{
insertSelectOptions(yyS[yypt-3].node, yyS[yypt-2].list, yyS[yypt-0].list,
list_nth(yyS[yypt-1].list, 0), list_nth(yyS[yypt-1].list, 1),
yyS[yypt-4].with,
yyscanner)
yyVAL.node = yyS[yypt-3].node
}
case 1284:
//line simplegram.y:8328
{
yyVAL.node = yyS[yypt-0].node
}
case 1285:
//line simplegram.y:8329
{
yyVAL.node = yyS[yypt-0].node
}
case 1286:
//line simplegram.y:8359
{
n := &SelectStmt{}
n.distinctClause = yyS[yypt-7].list
n.targetList = yyS[yypt-6].list
n.intoClause = yyS[yypt-5].into
n.fromClause = yyS[yypt-4].list
n.whereClause = yyS[yypt-3].node
n.groupClause = yyS[yypt-2].list
n.havingClause = yyS[yypt-1].node
n.windowClause = yyS[yypt-0].list
yyVAL.node = n
}
case 1287:
//line simplegram.y:8371
{
yyVAL.node = yyS[yypt-0].node
}
case 1288:
//line simplegram.y:8373
{
/* same as SELECT * FROM relation_expr */
ColumnRef * cr = &ColumnRef{}
ResTarget * rt = &ResTarget{}
n := &SelectStmt{}
cr.fields = list_make1(&A_Star{})
// cr.location = -1;
rt.name = nil
rt.indirection = NIL
rt.val = cr
// rt.location = -1;
n.targetList = list_make1(rt)
n.fromClause = list_make1(yyS[yypt-0].rangevar)
yyVAL.node = n
}
case 1289:
//line simplegram.y:8391
{
yyVAL.node = makeSetOp(SETOP_UNION, yyS[yypt-1].boolean, yyS[yypt-3].node, yyS[yypt-0].node)
}
case 1290:
//line simplegram.y:8395
{
yyVAL.node = makeSetOp(SETOP_INTERSECT, yyS[yypt-1].boolean, yyS[yypt-3].node, yyS[yypt-0].node)
}
case 1291:
//line simplegram.y:8399
{
yyVAL.node = makeSetOp(SETOP_EXCEPT, yyS[yypt-1].boolean, yyS[yypt-3].node, yyS[yypt-0].node)
}
case 1292:
//line simplegram.y:8414
{
yyVAL.with = &WithClause{}
yyVAL.with.ctes = yyS[yypt-0].list
yyVAL.with.recursive = false
// $$.location = @1;
}
case 1293:
//line simplegram.y:8421
{
yyVAL.with = &WithClause{}
yyVAL.with.ctes = yyS[yypt-0].list
yyVAL.with.recursive = true
// $$.location = @1;
}
case 1294:
//line simplegram.y:8430
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1295:
//line simplegram.y:8431
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 1296:
//line simplegram.y:8435
{
n := &CommonTableExpr{}
n.ctename = yyS[yypt-5].str
n.aliascolnames = yyS[yypt-4].list
n.ctequery = yyS[yypt-1].node
// n.location = @1;
yyVAL.node = n
}
case 1297:
//line simplegram.y:8446
{
yyVAL.with = yyS[yypt-0].with
}
case 1298:
//line simplegram.y:8447
{
yyVAL.with = nil
}
case 1299:
//line simplegram.y:8452
{
yyVAL.into = &IntoClause{}
yyVAL.into.rel = yyS[yypt-0].rangevar
yyVAL.into.colNames = NIL
yyVAL.into.options = NIL
yyVAL.into.onCommit = ONCOMMIT_NOOP
yyVAL.into.tableSpaceName = nil
yyVAL.into.skipData = false
}
case 1300:
//line simplegram.y:8462
{
yyVAL.into = nil
}
case 1301:
//line simplegram.y:8471
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_TEMP
}
case 1302:
//line simplegram.y:8476
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_TEMP
}
case 1303:
//line simplegram.y:8481
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_TEMP
}
case 1304:
//line simplegram.y:8486
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_TEMP
}
case 1305:
//line simplegram.y:8491
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_TEMP
}
case 1306:
//line simplegram.y:8496
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_TEMP
}
case 1307:
//line simplegram.y:8501
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_UNLOGGED
}
case 1308:
//line simplegram.y:8506
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_PERMANENT
}
case 1309:
//line simplegram.y:8511
{
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.relpersistence = RELPERSISTENCE_PERMANENT
}
case 1310:
//line simplegram.y:8517
{
}
case 1311:
//line simplegram.y:8518
{
}
case 1312:
//line simplegram.y:8521
{
yyVAL.boolean = TRUE
}
case 1313:
//line simplegram.y:8522
{
yyVAL.boolean = FALSE
}
case 1314:
//line simplegram.y:8523
{
yyVAL.boolean = FALSE
}
case 1315:
//line simplegram.y:8530
{
yyVAL.list = list_make1(NIL)
}
case 1316:
//line simplegram.y:8531
{
yyVAL.list = yyS[yypt-1].list
}
case 1317:
//line simplegram.y:8532
{
yyVAL.list = NIL
}
case 1318:
//line simplegram.y:8533
{
yyVAL.list = NIL
}
case 1319:
//line simplegram.y:8537
{
yyVAL.list = yyS[yypt-0].list
}
case 1320:
//line simplegram.y:8538
{
yyVAL.list = NIL
}
case 1321:
//line simplegram.y:8542
{
yyVAL.list = yyS[yypt-0].list
}
case 1322:
//line simplegram.y:8546
{
yyVAL.list = list_make1(yyS[yypt-0].sortby)
}
case 1323:
//line simplegram.y:8547
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].sortby)
}
case 1324:
//line simplegram.y:8551
{
yyVAL.sortby = &SortBy{}
yyVAL.sortby.node = yyS[yypt-3].node
yyVAL.sortby.sortby_dir = SORTBY_USING
yyVAL.sortby.sortby_nulls = yyS[yypt-0].ival
yyVAL.sortby.useOp = yyS[yypt-1].list
// $$.location = @3;
}
case 1325:
//line simplegram.y:8560
{
yyVAL.sortby = &SortBy{}
yyVAL.sortby.node = yyS[yypt-2].node
yyVAL.sortby.sortby_dir = yyS[yypt-1].ival
yyVAL.sortby.sortby_nulls = yyS[yypt-0].ival
yyVAL.sortby.useOp = NIL
// $$.location = -1; /* no operator */
}
case 1326:
//line simplegram.y:8572
{
yyVAL.list = list_make2(yyS[yypt-0].node, yyS[yypt-1].node)
}
case 1327:
//line simplegram.y:8573
{
yyVAL.list = list_make2(yyS[yypt-1].node, yyS[yypt-0].node)
}
case 1328:
//line simplegram.y:8574
{
yyVAL.list = list_make2(nil, yyS[yypt-0].node)
}
case 1329:
//line simplegram.y:8575
{
yyVAL.list = list_make2(yyS[yypt-0].node, nil)
}
case 1330:
//line simplegram.y:8579
{
yyVAL.list = yyS[yypt-0].list
}
case 1331:
//line simplegram.y:8580
{
yyVAL.list = list_make2(nil, nil)
}
case 1332:
//line simplegram.y:8585
{
yyVAL.node = yyS[yypt-0].node
}
case 1333:
//line simplegram.y:8587
{
/* Disabled because it was too confusing, bjm 2002-02-18 */
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("LIMIT #,# syntax is not supported"),
errhint("Use separate LIMIT and OFFSET clauses."),
parser_errposition( /*@1*/ ))
}
case 1334:
//line simplegram.y:8596
{
yyVAL.node = yyS[yypt-2].node
}
case 1335:
//line simplegram.y:8601
{
yyVAL.node = yyS[yypt-0].node
}
case 1336:
//line simplegram.y:8604
{
yyVAL.node = yyS[yypt-1].node
}
case 1337:
//line simplegram.y:8608
{
yyVAL.node = yyS[yypt-0].node
}
case 1338:
//line simplegram.y:8610
{
/* LIMIT ALL is represented as a nil constant */
yyVAL.node = makeNullAConst( /*@1*/ )
}
case 1339:
//line simplegram.y:8616
{
yyVAL.node = yyS[yypt-0].node
}
case 1340:
//line simplegram.y:8626
{
yyVAL.node = makeIntConst(yyS[yypt-0].ival /*, @1*/ )
}
case 1341:
//line simplegram.y:8627
{
yyVAL.node = yyS[yypt-1].node
}
case 1342:
//line simplegram.y:8628
{
yyVAL.node = makeIntConst(1, -1)
}
case 1343:
//line simplegram.y:8636
{
yyVAL.node = yyS[yypt-0].node
}
case 1344:
//line simplegram.y:8640
{
yyVAL.ival = 0
}
case 1345:
//line simplegram.y:8641
{
yyVAL.ival = 0
}
case 1346:
//line simplegram.y:8644
{
yyVAL.ival = 0
}
case 1347:
//line simplegram.y:8645
{
yyVAL.ival = 0
}
case 1348:
//line simplegram.y:8650
{
yyVAL.list = yyS[yypt-0].list
}
case 1349:
//line simplegram.y:8651
{
yyVAL.list = NIL
}
case 1350:
//line simplegram.y:8655
{
yyVAL.node = yyS[yypt-0].node
}
case 1351:
//line simplegram.y:8656
{
yyVAL.node = nil
}
case 1352:
//line simplegram.y:8660
{
yyVAL.list = yyS[yypt-0].list
}
case 1353:
//line simplegram.y:8661
{
yyVAL.list = NIL
}
case 1354:
//line simplegram.y:8665
{
yyVAL.list = yyS[yypt-0].list
}
case 1355:
//line simplegram.y:8666
{
yyVAL.list = NIL
}
case 1356:
//line simplegram.y:8670
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1357:
//line simplegram.y:8671
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].node)
}
case 1358:
//line simplegram.y:8676
{
n := &LockingClause{}
n.lockedRels = yyS[yypt-1].list
n.forUpdate = TRUE
n.noWait = yyS[yypt-0].boolean
yyVAL.node = n
}
case 1359:
//line simplegram.y:8684
{
n := &LockingClause{}
n.lockedRels = yyS[yypt-1].list
n.forUpdate = FALSE
n.noWait = yyS[yypt-0].boolean
yyVAL.node = n
}
case 1360:
//line simplegram.y:8694
{
yyVAL.list = yyS[yypt-0].list
}
case 1361:
//line simplegram.y:8695
{
yyVAL.list = NIL
}
case 1362:
//line simplegram.y:8701
{
n := &SelectStmt{}
n.valuesLists = list_make1(yyS[yypt-0].list)
yyVAL.node = n
}
case 1363:
//line simplegram.y:8707
{
n := yyS[yypt-2].node
n.valuesLists = lappend(n.valuesLists, yyS[yypt-0].list)
yyVAL.node = n
}
case 1364:
//line simplegram.y:8724
{
yyVAL.list = yyS[yypt-0].list
}
case 1365:
//line simplegram.y:8725
{
yyVAL.list = NIL
}
case 1366:
//line simplegram.y:8729
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1367:
//line simplegram.y:8730
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 1368:
//line simplegram.y:8741
{
yyVAL.node = yyS[yypt-0].rangevar
}
case 1369:
//line simplegram.y:8745
{
yyS[yypt-1].rangevar.alias = yyS[yypt-0].alias
yyVAL.node = yyS[yypt-1].rangevar
}
case 1370:
//line simplegram.y:8750
{
n := &RangeFunction{}
n.funccallnode = yyS[yypt-0].node
n.coldeflist = NIL
yyVAL.node = n
}
case 1371:
//line simplegram.y:8757
{
n := &RangeFunction{}
n.funccallnode = yyS[yypt-1].node
n.alias = yyS[yypt-0].alias
n.coldeflist = NIL
yyVAL.node = n
}
case 1372:
//line simplegram.y:8765
{
n := &RangeFunction{}
n.funccallnode = yyS[yypt-4].node
n.coldeflist = yyS[yypt-1].list
yyVAL.node = n
}
case 1373:
//line simplegram.y:8772
{
n := &RangeFunction{}
Alias * a = &Alias{}
n.funccallnode = yyS[yypt-5].node
a.aliasname = yyS[yypt-3].str
n.alias = a
n.coldeflist = yyS[yypt-1].list
yyVAL.node = n
}
case 1374:
//line simplegram.y:8782
{
n := &RangeFunction{}
Alias * a = &Alias{}
n.funccallnode = yyS[yypt-4].node
a.aliasname = yyS[yypt-3].str
n.alias = a
n.coldeflist = yyS[yypt-1].list
yyVAL.node = n
}
case 1375:
//line simplegram.y:8792
{
/*
* The SQL spec does not permit a subselect
* (<derived_table>) without an alias clause,
* so we don't either. This avoids the problem
* of needing to invent a unique refname for it.
* That could be surmounted if there's sufficient
* popular demand, but for now let's just implement
* the spec and see if anyone complains.
* However, it does seem like a good idea to emit
* an error message that's better than "syntax error".
*/
if IsA(yyS[yypt-0].node, SelectStmt) &&
(yyS[yypt-0].node).valuesLists {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("VALUES in FROM must have an alias"),
errhint("For example, FROM (VALUES ...) [AS] foo."),
parser_errposition( /*@1*/ ))
} else {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("subquery in FROM must have an alias"),
errhint("For example, FROM (SELECT ...) [AS] foo."),
parser_errposition( /*@1*/ ))
}
yyVAL.node = nil
}
case 1376:
//line simplegram.y:8820
{
n := &RangeSubselect{}
n.subquery = yyS[yypt-1].node
n.alias = yyS[yypt-0].alias
yyVAL.node = n
}
case 1377:
//line simplegram.y:8827
{
yyVAL.node = yyS[yypt-0].jexpr
}
case 1378:
//line simplegram.y:8831
{
yyS[yypt-2].jexpr.alias = yyS[yypt-0].alias
yyVAL.node = yyS[yypt-2].jexpr
}
case 1379:
//line simplegram.y:8857
{
yyVAL.jexpr = yyS[yypt-1].jexpr
}
case 1380:
//line simplegram.y:8861
{
/* CROSS JOIN is same as unqualified inner join */
n := &JoinExpr{}
n.jointype = JOIN_INNER
n.isNatural = FALSE
n.larg = yyS[yypt-3].node
n.rarg = yyS[yypt-0].node
n.usingClause = NIL
n.quals = nil
yyVAL.jexpr = n
}
case 1381:
//line simplegram.y:8872
{
n := &JoinExpr{}
n.jointype = yyS[yypt-3].jtype
n.isNatural = FALSE
n.larg = yyS[yypt-4].node
n.rarg = yyS[yypt-1].node
if yyS[yypt-0].node != nil && IsA(yyS[yypt-0].node, List) {
n.usingClause = yyS[yypt-0].node /* USING clause */
} else {
n.quals = yyS[yypt-0].node /* ON clause */
}
yyVAL.jexpr = n
}
case 1382:
//line simplegram.y:8884
{
/* letting join_type reduce to empty doesn't work */
n := &JoinExpr{}
n.jointype = JOIN_INNER
n.isNatural = FALSE
n.larg = yyS[yypt-3].node
n.rarg = yyS[yypt-1].node
if yyS[yypt-0].node != nil && IsA(yyS[yypt-0].node, List) {
n.usingClause = yyS[yypt-0].node /* USING clause */
} else {
n.quals = yyS[yypt-0].node /* ON clause */
}
yyVAL.jexpr = n
}
case 1383:
//line simplegram.y:8896
{
n := &JoinExpr{}
n.jointype = yyS[yypt-2].jtype
n.isNatural = TRUE
n.larg = yyS[yypt-4].node
n.rarg = yyS[yypt-0].node
n.usingClause = NIL /* figure out which columns later... */
n.quals = nil /* fill later */
yyVAL.jexpr = n
}
case 1384:
//line simplegram.y:8905
{
/* letting join_type reduce to empty doesn't work */
n := &JoinExpr{}
n.jointype = JOIN_INNER
n.isNatural = TRUE
n.larg = yyS[yypt-3].node
n.rarg = yyS[yypt-0].node
n.usingClause = NIL /* figure out which columns later... */
n.quals = nil /* fill later */
yyVAL.jexpr = n
}
case 1385:
//line simplegram.y:8917
{
yyVAL.alias = &Alias{}
yyVAL.alias.aliasname = yyS[yypt-3].str
yyVAL.alias.colnames = yyS[yypt-1].list
}
case 1386:
//line simplegram.y:8923
{
yyVAL.alias = &Alias{}
yyVAL.alias.aliasname = yyS[yypt-0].str
}
case 1387:
//line simplegram.y:8928
{
yyVAL.alias = &Alias{}
yyVAL.alias.aliasname = yyS[yypt-3].str
yyVAL.alias.colnames = yyS[yypt-1].list
}
case 1388:
//line simplegram.y:8934
{
yyVAL.alias = &Alias{}
yyVAL.alias.aliasname = yyS[yypt-0].str
}
case 1389:
//line simplegram.y:8940
{
yyVAL.jtype = JOIN_FULL
}
case 1390:
//line simplegram.y:8941
{
yyVAL.jtype = JOIN_LEFT
}
case 1391:
//line simplegram.y:8942
{
yyVAL.jtype = JOIN_RIGHT
}
case 1392:
//line simplegram.y:8943
{
yyVAL.jtype = JOIN_INNER
}
case 1393:
//line simplegram.y:8947
{
yyVAL.node = nil
}
case 1394:
//line simplegram.y:8948
{
yyVAL.node = nil
}
case 1395:
//line simplegram.y:8960
{
yyVAL.node = yyS[yypt-1].list
}
case 1396:
//line simplegram.y:8961
{
yyVAL.node = yyS[yypt-0].node
}
case 1397:
//line simplegram.y:8967
{
/* default inheritance */
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.inhOpt = INH_DEFAULT
yyVAL.rangevar.alias = nil
}
case 1398:
//line simplegram.y:8973
{
/* inheritance query */
yyVAL.rangevar = yyS[yypt-1].rangevar
yyVAL.rangevar.inhOpt = INH_YES
yyVAL.rangevar.alias = nil
}
case 1399:
//line simplegram.y:8979
{
/* no inheritance */
yyVAL.rangevar = yyS[yypt-0].rangevar
yyVAL.rangevar.inhOpt = INH_NO
yyVAL.rangevar.alias = nil
}
case 1400:
//line simplegram.y:8985
{
/* no inheritance, SQL99-style syntax */
yyVAL.rangevar = yyS[yypt-1].rangevar
yyVAL.rangevar.inhOpt = INH_NO
yyVAL.rangevar.alias = nil
}
case 1401:
//line simplegram.y:8994
{
yyVAL.list = list_make1(yyS[yypt-0].rangevar)
}
case 1402:
//line simplegram.y:8995
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].rangevar)
}
case 1403:
//line simplegram.y:9009
{
yyVAL.rangevar = yyS[yypt-0].rangevar
}
case 1404:
//line simplegram.y:9013
{
Alias * alias = &Alias{}
alias.aliasname = yyS[yypt-0].str
yyS[yypt-1].rangevar.alias = alias
yyVAL.rangevar = yyS[yypt-1].rangevar
}
case 1405:
//line simplegram.y:9020
{
Alias * alias = &Alias{}
alias.aliasname = yyS[yypt-0].str
yyS[yypt-2].rangevar.alias = alias
yyVAL.rangevar = yyS[yypt-2].rangevar
}
case 1406:
//line simplegram.y:9029
{
yyVAL.node = yyS[yypt-0].node
}
case 1407:
//line simplegram.y:9034
{
yyVAL.node = yyS[yypt-0].node
}
case 1408:
//line simplegram.y:9035
{
yyVAL.node = nil
}
case 1409:
//line simplegram.y:9040
{
yyVAL.node = yyS[yypt-0].node
}
case 1410:
//line simplegram.y:9042
{
n := &CurrentOfExpr{}
/* cvarno is filled in by parse analysis */
n.cursor_name = yyS[yypt-0].str
n.cursor_param = 0
yyVAL.node = n
}
case 1411:
//line simplegram.y:9048
{
yyVAL.node = nil
}
case 1412:
//line simplegram.y:9053
{
yyVAL.list = yyS[yypt-0].list
}
case 1413:
//line simplegram.y:9054
{
yyVAL.list = NIL
}
case 1414:
//line simplegram.y:9059
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1415:
//line simplegram.y:9063
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 1416:
//line simplegram.y:9069
{
n := &ColumnDef{}
n.colname = yyS[yypt-2].str
n.typeName = yyS[yypt-1].typnam
n.inhcount = 0
n.is_local = true
n.is_not_null = false
n.is_from_type = false
n.storage = 0
n.raw_default = nil
n.cooked_default = nil
n.collClause = yyS[yypt-0].node
n.collOid = InvalidOid
n.constraints = NIL
yyVAL.node = n
}
case 1417:
//line simplegram.y:9098
{
yyVAL.typnam = yyS[yypt-1].typnam
yyVAL.typnam.arrayBounds = yyS[yypt-0].list
}
case 1418:
//line simplegram.y:9103
{
yyVAL.typnam = yyS[yypt-1].typnam
yyVAL.typnam.arrayBounds = yyS[yypt-0].list
yyVAL.typnam.setof = TRUE
}
case 1419:
//line simplegram.y:9110
{
yyVAL.typnam = yyS[yypt-4].typnam
yyVAL.typnam.arrayBounds = list_make1(makeInteger(yyS[yypt-1].ival))
}
case 1420:
//line simplegram.y:9115
{
yyVAL.typnam = yyS[yypt-4].typnam
yyVAL.typnam.arrayBounds = list_make1(makeInteger(yyS[yypt-1].ival))
yyVAL.typnam.setof = TRUE
}
case 1421:
//line simplegram.y:9121
{
yyVAL.typnam = yyS[yypt-1].typnam
yyVAL.typnam.arrayBounds = list_make1(makeInteger(-1))
}
case 1422:
//line simplegram.y:9126
{
yyVAL.typnam = yyS[yypt-1].typnam
yyVAL.typnam.arrayBounds = list_make1(makeInteger(-1))
yyVAL.typnam.setof = TRUE
}
case 1423:
//line simplegram.y:9135
{
yyVAL.list = lappend(yyS[yypt-2].list, makeInteger(-1))
}
case 1424:
//line simplegram.y:9137
{
yyVAL.list = lappend(yyS[yypt-3].list, makeInteger(yyS[yypt-1].ival))
}
case 1425:
//line simplegram.y:9139
{
yyVAL.list = NIL
}
case 1426:
//line simplegram.y:9143
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1427:
//line simplegram.y:9144
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1428:
//line simplegram.y:9145
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1429:
//line simplegram.y:9146
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1430:
//line simplegram.y:9147
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1431:
//line simplegram.y:9149
{
yyVAL.typnam = yyS[yypt-1].typnam
yyVAL.typnam.typmods = yyS[yypt-0].list
}
case 1432:
//line simplegram.y:9154
{
yyVAL.typnam = yyS[yypt-4].typnam
if yyS[yypt-0].list != NIL {
if list_length(yyS[yypt-0].list) != 1 {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("interval precision specified twice"),
parser_errposition( /*@1*/ ))
}
yyVAL.typnam.typmods = lappend(yyS[yypt-0].list, makeIntConst(yyS[yypt-2].ival /*, @3*/ ))
} else {
yyVAL.typnam.typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
makeIntConst(yyS[yypt-2].ival /*, @3*/ ))
}
}
case 1433:
//line simplegram.y:9183
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1434:
//line simplegram.y:9184
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1435:
//line simplegram.y:9185
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1436:
//line simplegram.y:9186
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1437:
//line simplegram.y:9198
{
yyVAL.typnam = makeTypeName(yyS[yypt-1].str)
yyVAL.typnam.typmods = yyS[yypt-0].list
// $$.location = @1;
}
case 1438:
//line simplegram.y:9204
{
yyVAL.typnam = makeTypeNameFromNameList(lcons(makeString(yyS[yypt-2].str), yyS[yypt-1].list))
yyVAL.typnam.typmods = yyS[yypt-0].list
// $$.location = @1;
}
case 1439:
//line simplegram.y:9211
{
yyVAL.list = yyS[yypt-1].list
}
case 1440:
//line simplegram.y:9212
{
yyVAL.list = NIL
}
case 1441:
//line simplegram.y:9219
{
yyVAL.typnam = SystemTypeName("int4")
// $$.location = @1;
}
case 1442:
//line simplegram.y:9224
{
yyVAL.typnam = SystemTypeName("int4")
// $$.location = @1;
}
case 1443:
//line simplegram.y:9229
{
yyVAL.typnam = SystemTypeName("int2")
// $$.location = @1;
}
case 1444:
//line simplegram.y:9234
{
yyVAL.typnam = SystemTypeName("int8")
// $$.location = @1;
}
case 1445:
//line simplegram.y:9239
{
yyVAL.typnam = SystemTypeName("float4")
// $$.location = @1;
}
case 1446:
//line simplegram.y:9244
{
yyVAL.typnam = yyS[yypt-0].typnam
// $$.location = @1;
}
case 1447:
//line simplegram.y:9249
{
yyVAL.typnam = SystemTypeName("float8")
// $$.location = @1;
}
case 1448:
//line simplegram.y:9254
{
yyVAL.typnam = SystemTypeName("numeric")
yyVAL.typnam.typmods = yyS[yypt-0].list
// $$.location = @1;
}
case 1449:
//line simplegram.y:9260
{
yyVAL.typnam = SystemTypeName("numeric")
yyVAL.typnam.typmods = yyS[yypt-0].list
// $$.location = @1;
}
case 1450:
//line simplegram.y:9266
{
yyVAL.typnam = SystemTypeName("numeric")
yyVAL.typnam.typmods = yyS[yypt-0].list
// $$.location = @1;
}
case 1451:
//line simplegram.y:9272
{
yyVAL.typnam = SystemTypeName("bool")
// $$.location = @1;
}
case 1452:
//line simplegram.y:9279
{
/*
* Check FLOAT() precision limits assuming IEEE floating
* types - thomas 1997-09-18
*/
switch {
case yyS[yypt-1].ival < 1:
ereport(ERROR,
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("precision for type float must be at least 1 bit"),
parser_errposition( /*@2*/ ))
case yyS[yypt-1].ival <= 24:
yyVAL.typnam = SystemTypeName("float4")
case yyS[yypt-1].ival <= 53:
yyVAL.typnam = SystemTypeName("float8")
default:
ereport(ERROR,
errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("precision for type float must be less than 54 bits"),
parser_errposition( /*@2*/ ))
}
}
case 1453:
//line simplegram.y:9301
{
yyVAL.typnam = SystemTypeName("float8")
}
case 1454:
//line simplegram.y:9311
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1455:
//line simplegram.y:9315
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1456:
//line simplegram.y:9323
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1457:
//line simplegram.y:9327
{
yyVAL.typnam = yyS[yypt-0].typnam
yyVAL.typnam.typmods = NIL
}
case 1458:
//line simplegram.y:9335
{
var typname string
if yyS[yypt-3].boolean {
typename = "varbit"
} else {
typename = "bit"
}
yyVAL.typnam = SystemTypeName(typname)
yyVAL.typnam.typmods = yyS[yypt-1].list
// $$.location = @1;
}
case 1459:
//line simplegram.y:9353
{
/* bit defaults to bit(1), varbit to no limit */
if yyS[yypt-0].boolean {
yyVAL.typnam = SystemTypeName("varbit")
} else {
yyVAL.typnam = SystemTypeName("bit")
yyVAL.typnam.typmods = list_make1(makeIntConst(1, -1))
}
// $$.location = @1;
}
case 1460:
//line simplegram.y:9370
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1461:
//line simplegram.y:9374
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1462:
//line simplegram.y:9380
{
yyVAL.typnam = yyS[yypt-0].typnam
}
case 1463:
//line simplegram.y:9384
{
/* Length was not specified so allow to be unrestricted.
* This handles problems with fixed-length (bpchar) strings
* which in column definitions must default to a length
* of one, but should not be constrained if the length
* was not specified.
*/
yyVAL.typnam = yyS[yypt-0].typnam
yyVAL.typnam.typmods = NIL
}
case 1464:
//line simplegram.y:9396
{
if (yyS[yypt-0].str != nil) && (strcmp(yyS[yypt-0].str, "sql_text") != 0) {
typ := palloc(strlen(yyS[yypt-4].str) + 1 + strlen(yyS[yypt-0].str) + 1)
strcpy(typ, yyS[yypt-4].str)
strcat(typ, "_")
strcat(typ, yyS[yypt-0].str)
yyS[yypt-4].str = typ
}
yyVAL.typnam = SystemTypeName(yyS[yypt-4].str)
yyVAL.typnam.typmods = list_make1(makeIntConst(yyS[yypt-2].ival /*, @3*/ ))
// $$.location = @1;
}
case 1465:
//line simplegram.y:9412
{
if (yyS[yypt-0].str != nil) && (strcmp(yyS[yypt-0].str, "sql_text") != 0) {
typ := palloc(strlen(yyS[yypt-1].str) + 1 + strlen(yyS[yypt-0].str) + 1)
strcpy(typ, yyS[yypt-1].str)
strcat(typ, "_")
strcat(typ, yyS[yypt-0].str)
yyS[yypt-1].str = typ
}
yyVAL.typnam = SystemTypeName(yyS[yypt-1].str)
/* char defaults to char(1), varchar to no limit */
if strcmp(yyS[yypt-1].str, "bpchar") == 0 {
yyVAL.typnam.typmods = list_make1(makeIntConst(1, -1))
}
// $$.location = @1;
}
case 1466:
//line simplegram.y:9432
{
if yyS[yypt-0].boolean {
yyVAL.str = "varchar"
} else {
yyVAL.str = "bpchar"
}
}
case 1467:
//line simplegram.y:9440
{
if yyS[yypt-0].boolean {
yyVAL.str = "varchar"
} else {
yyVAL.str = "bpchar"
}
}
case 1468:
//line simplegram.y:9448
{
yyVAL.str = "varchar"
}
case 1469:
//line simplegram.y:9450
{
if yyS[yypt-1].keyword {
yyVAL.str = "varchar"
} else {
yyVAL.str = "bpchar"
}
}
case 1470:
//line simplegram.y:9458
{
if yyS[yypt-1].keyword {
yyVAL.str = "varchar"
} else {
yyVAL.str = "bpchar"
}
}
case 1471:
//line simplegram.y:9466
{
if yyS[yypt-0].boolean {
yyVAL.str = "varchar"
} else {
yyVAL.str = "bpchar"
}
}
case 1472:
//line simplegram.y:9476
{
yyVAL.boolean = TRUE
}
case 1473:
//line simplegram.y:9477
{
yyVAL.boolean = FALSE
}
case 1474:
//line simplegram.y:9481
{
yyVAL.str = yyS[yypt-0].str
}
case 1475:
//line simplegram.y:9482
{
yyVAL.str = nil
}
case 1476:
//line simplegram.y:9490
{
if yyS[yypt-0].boolean {
yyVAL.typnam = SystemTypeName("timestamptz")
} else {
yyVAL.typnam = SystemTypeName("timestamp")
}
yyVAL.typnam.typmods = list_make1(makeIntConst(yyS[yypt-2].ival /*, @3*/ ))
// $$.location = @1;
}
case 1477:
//line simplegram.y:9500
{
if yyS[yypt-0].boolean {
yyVAL.typnam = SystemTypeName("timestamptz")
} else {
yyVAL.typnam = SystemTypeName("timestamp")
}
// $$.location = @1;
}
case 1478:
//line simplegram.y:9509
{
if yyS[yypt-0].boolean {
yyVAL.typnam = SystemTypeName("timetz")
} else {
yyVAL.typnam = SystemTypeName("time")
}
yyVAL.typnam.typmods = list_make1(makeIntConst(yyS[yypt-2].ival /*, @3*/ ))
// $$.location = @1;
}
case 1479:
//line simplegram.y:9519
{
if yyS[yypt-0].boolean {
yyVAL.typnam = SystemTypeName("timetz")
} else {
yyVAL.typnam = SystemTypeName("time")
}
// $$.location = @1;
}
case 1480:
//line simplegram.y:9531
{
yyVAL.typnam = SystemTypeName("interval")
// $$.location = @1;
}
case 1481:
//line simplegram.y:9538
{
yyVAL.boolean = TRUE
}
case 1482:
//line simplegram.y:9539
{
yyVAL.boolean = FALSE
}
case 1483:
//line simplegram.y:9540
{
yyVAL.boolean = FALSE
}
case 1484:
//line simplegram.y:9545
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(YEAR) /*, @1*/ ))
}
case 1485:
//line simplegram.y:9547
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(MONTH) /*, @1*/ ))
}
case 1486:
//line simplegram.y:9549
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(DAY) /*, @1*/ ))
}
case 1487:
//line simplegram.y:9551
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(HOUR) /*, @1*/ ))
}
case 1488:
//line simplegram.y:9553
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(MINUTE) /*, @1*/ ))
}
case 1489:
//line simplegram.y:9555
{
yyVAL.list = yyS[yypt-0].list
}
case 1490:
//line simplegram.y:9557
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
INTERVAL_MASK(MONTH) /*, @1*/ ))
}
case 1491:
//line simplegram.y:9562
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
INTERVAL_MASK(HOUR) /*, @1*/ ))
}
case 1492:
//line simplegram.y:9567
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
INTERVAL_MASK(HOUR) |
INTERVAL_MASK(MINUTE) /*, @1*/ ))
}
case 1493:
//line simplegram.y:9573
{
yyVAL.list = yyS[yypt-0].list
linitial(yyVAL.list) = makeIntConst(INTERVAL_MASK(DAY) |
INTERVAL_MASK(HOUR) |
INTERVAL_MASK(MINUTE) |
INTERVAL_MASK(SECOND) /*, @1*/ )
}
case 1494:
//line simplegram.y:9581
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
INTERVAL_MASK(MINUTE) /*, @1*/ ))
}
case 1495:
//line simplegram.y:9586
{
yyVAL.list = yyS[yypt-0].list
linitial(yyVAL.list) = makeIntConst(INTERVAL_MASK(HOUR) |
INTERVAL_MASK(MINUTE) |
INTERVAL_MASK(SECOND) /*, @1*/ )
}
case 1496:
//line simplegram.y:9593
{
yyVAL.list = yyS[yypt-0].list
linitial(yyVAL.list) = makeIntConst(INTERVAL_MASK(MINUTE) |
INTERVAL_MASK(SECOND) /*, @1*/ )
}
case 1497:
//line simplegram.y:9599
{
yyVAL.list = NIL
}
case 1498:
//line simplegram.y:9604
{
yyVAL.list = list_make1(makeIntConst(INTERVAL_MASK(SECOND) /*, @1*/ ))
}
case 1499:
//line simplegram.y:9608
{
yyVAL.list = list_make2(makeIntConst(INTERVAL_MASK(SECOND) /*, @1*/ ),
makeIntConst(yyS[yypt-1].ival /*, @3*/ ))
}
case 1500:
//line simplegram.y:9637
{
yyVAL.node = yyS[yypt-0].node
}
case 1501:
//line simplegram.y:9639
{
yyVAL.node = makeTypeCast(yyS[yypt-2].node, yyS[yypt-0].typnam /*, @2*/ )
}
case 1502:
//line simplegram.y:9641
{
n := &CollateClause{}
n.arg = yyS[yypt-2].node
n.collname = yyS[yypt-0].list
// n.location = @2;
yyVAL.node = n
}
case 1503:
//line simplegram.y:9649
{
n := &FuncCall{}
n.funcname = SystemFuncName("timezone")
n.args = list_make2(yyS[yypt-0].node, yyS[yypt-4].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = n
}
case 1504:
//line simplegram.y:9671
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "+", nil, yyS[yypt-0].node /*, @1*/ )
}
case 1505:
//line simplegram.y:9673
{
yyVAL.node = doNegate(yyS[yypt-0].node /*, @1*/ )
}
case 1506:
//line simplegram.y:9675
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "+", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1507:
//line simplegram.y:9677
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "-", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1508:
//line simplegram.y:9679
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "*", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1509:
//line simplegram.y:9681
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "/", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1510:
//line simplegram.y:9683
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "%", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1511:
//line simplegram.y:9685
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "^", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1512:
//line simplegram.y:9687
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "<", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1513:
//line simplegram.y:9689
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, ">", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1514:
//line simplegram.y:9691
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "=", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1515:
//line simplegram.y:9694
{
yyVAL.node = makeA_Expr(AEXPR_OP, yyS[yypt-1].list, yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1516:
//line simplegram.y:9696
{
yyVAL.node = makeA_Expr(AEXPR_OP, yyS[yypt-1].list, nil, yyS[yypt-0].node /*, @1*/ )
}
case 1517:
//line simplegram.y:9698
{
yyVAL.node = makeA_Expr(AEXPR_OP, yyS[yypt-0].list, yyS[yypt-1].node, nil /*, @2*/ )
}
case 1518:
//line simplegram.y:9701
{
yyVAL.node = makeA_Expr(AEXPR_AND, NIL, yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1519:
//line simplegram.y:9703
{
yyVAL.node = makeA_Expr(AEXPR_OR, NIL, yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1520:
//line simplegram.y:9705
{
yyVAL.node = makeA_Expr(AEXPR_NOT, NIL, nil, yyS[yypt-0].node /*, @1*/ )
}
case 1521:
//line simplegram.y:9708
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "~~", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1522:
//line simplegram.y:9710
{
n := &FuncCall{}
n.funcname = SystemFuncName("like_escape")
n.args = list_make2(yyS[yypt-2].node, yyS[yypt-0].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "~~", yyS[yypt-4].node, n /*, @2*/ )
}
case 1523:
//line simplegram.y:9723
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "!~~", yyS[yypt-3].node, yyS[yypt-0].node /*, @2*/ )
}
case 1524:
//line simplegram.y:9725
{
n := &FuncCall{}
n.funcname = SystemFuncName("like_escape")
n.args = list_make2(yyS[yypt-2].node, yyS[yypt-0].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "!~~", yyS[yypt-5].node, n /*, @2*/ )
}
case 1525:
//line simplegram.y:9738
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "~~*", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1526:
//line simplegram.y:9740
{
n := &FuncCall{}
n.funcname = SystemFuncName("like_escape")
n.args = list_make2(yyS[yypt-2].node, yyS[yypt-0].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "~~*", yyS[yypt-4].node, n /*, @2*/ )
}
case 1527:
//line simplegram.y:9753
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "!~~*", yyS[yypt-3].node, yyS[yypt-0].node /*, @2*/ )
}
case 1528:
//line simplegram.y:9755
{
n := &FuncCall{}
n.funcname = SystemFuncName("like_escape")
n.args = list_make2(yyS[yypt-2].node, yyS[yypt-0].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "!~~*", yyS[yypt-5].node, n /*, @2*/ )
}
case 1529:
//line simplegram.y:9769
{
n := &FuncCall{}
n.funcname = SystemFuncName("similar_escape")
n.args = list_make2(yyS[yypt-0].node, makeNullAConst(-1))
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "~", yyS[yypt-3].node, n /*, @2*/ )
}
case 1530:
//line simplegram.y:9782
{
n := &FuncCall{}
n.funcname = SystemFuncName("similar_escape")
n.args = list_make2(yyS[yypt-2].node, yyS[yypt-0].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "~", yyS[yypt-5].node, n /*, @2*/ )
}
case 1531:
//line simplegram.y:9795
{
n := &FuncCall{}
n.funcname = SystemFuncName("similar_escape")
n.args = list_make2(yyS[yypt-0].node, makeNullAConst(-1))
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "!~", yyS[yypt-4].node, n /*, @2*/ )
}
case 1532:
//line simplegram.y:9808
{
n := &FuncCall{}
n.funcname = SystemFuncName("similar_escape")
n.args = list_make2(yyS[yypt-2].node, yyS[yypt-0].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @2;
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "!~", yyS[yypt-6].node, n /*, @2*/ )
}
case 1533:
//line simplegram.y:9831
{
n := &NullTest{}
n.arg = yyS[yypt-2].node
n.nulltesttype = IS_NULL
yyVAL.node = n
}
case 1534:
//line simplegram.y:9838
{
n := &NullTest{}
n.arg = yyS[yypt-1].node
n.nulltesttype = IS_NULL
yyVAL.node = n
}
case 1535:
//line simplegram.y:9845
{
n := &NullTest{}
n.arg = yyS[yypt-3].node
n.nulltesttype = IS_NOT_NULL
yyVAL.node = n
}
case 1536:
//line simplegram.y:9852
{
n := &NullTest{}
n.arg = yyS[yypt-1].node
n.nulltesttype = IS_NOT_NULL
yyVAL.node = n
}
case 1537:
//line simplegram.y:9859
{
yyVAL.node = makeOverlaps(yyS[yypt-2].list, yyS[yypt-0].list, /*, @2*/ yyscanner)
}
case 1538:
//line simplegram.y:9863
{
b := &BooleanTest{}
b.arg = yyS[yypt-2].node
b.booltesttype = IS_TRUE
yyVAL.node = b
}
case 1539:
//line simplegram.y:9870
{
b := &BooleanTest{}
b.arg = yyS[yypt-3].node
b.booltesttype = IS_NOT_TRUE
yyVAL.node = b
}
case 1540:
//line simplegram.y:9877
{
b := &BooleanTest{}
b.arg = yyS[yypt-2].node
b.booltesttype = IS_FALSE
yyVAL.node = b
}
case 1541:
//line simplegram.y:9884
{
b := &BooleanTest{}
b.arg = yyS[yypt-3].node
b.booltesttype = IS_NOT_FALSE
yyVAL.node = b
}
case 1542:
//line simplegram.y:9891
{
b := &BooleanTest{}
b.arg = yyS[yypt-2].node
b.booltesttype = IS_UNKNOWN
yyVAL.node = b
}
case 1543:
//line simplegram.y:9898
{
b := &BooleanTest{}
b.arg = yyS[yypt-3].node
b.booltesttype = IS_NOT_UNKNOWN
yyVAL.node = b
}
case 1544:
//line simplegram.y:9905
{
yyVAL.node = makeSimpleA_Expr(AEXPR_DISTINCT, "=", yyS[yypt-4].node, yyS[yypt-0].node /*, @2*/ )
}
case 1545:
//line simplegram.y:9909
{
yyVAL.node = makeA_Expr(AEXPR_NOT, NIL, nil,
makeSimpleA_Expr(AEXPR_DISTINCT,
"=", yyS[yypt-5].node, yyS[yypt-0].node /*, @2*/ ),
/*@2*/ )
}
case 1546:
//line simplegram.y:9917
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OF, "=", yyS[yypt-5].node, yyS[yypt-1].list /*, @2*/ )
}
case 1547:
//line simplegram.y:9921
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OF, "<>", yyS[yypt-6].node, yyS[yypt-1].list /*, @2*/ )
}
case 1548:
//line simplegram.y:9931
{
yyVAL.node = makeA_Expr(AEXPR_AND, NIL,
makeSimpleA_Expr(AEXPR_OP, ">=", yyS[yypt-5].node, yyS[yypt-2].node /*, @2*/ ),
makeSimpleA_Expr(AEXPR_OP, "<=", yyS[yypt-5].node, yyS[yypt-0].node /*, @2*/ ),
/*@2*/ )
}
case 1549:
//line simplegram.y:9938
{
yyVAL.node = makeA_Expr(AEXPR_OR, NIL,
makeSimpleA_Expr(AEXPR_OP, "<", yyS[yypt-6].node, yyS[yypt-2].node /*, @2*/ ),
makeSimpleA_Expr(AEXPR_OP, ">", yyS[yypt-6].node, yyS[yypt-0].node /*, @2*/ ),
/*@2*/ )
}
case 1550:
//line simplegram.y:9945
{
yyVAL.node = makeA_Expr(AEXPR_OR, NIL,
makeA_Expr(AEXPR_AND, NIL,
makeSimpleA_Expr(AEXPR_OP, ">=", yyS[yypt-5].node, yyS[yypt-2].node /*, @2*/ ),
makeSimpleA_Expr(AEXPR_OP, "<=", yyS[yypt-5].node, yyS[yypt-0].node /*, @2*/ ),
/*@2*/ ),
makeA_Expr(AEXPR_AND, NIL,
makeSimpleA_Expr(AEXPR_OP, ">=", yyS[yypt-5].node, yyS[yypt-0].node /*, @2*/ ),
makeSimpleA_Expr(AEXPR_OP, "<=", yyS[yypt-5].node, yyS[yypt-2].node /*, @2*/ ),
/*@2*/ ),
/*@2*/ )
}
case 1551:
//line simplegram.y:9958
{
yyVAL.node = makeA_Expr(AEXPR_AND, NIL,
makeA_Expr(AEXPR_OR, NIL,
makeSimpleA_Expr(AEXPR_OP, "<", yyS[yypt-6].node, yyS[yypt-2].node /*, @2*/ ),
makeSimpleA_Expr(AEXPR_OP, ">", yyS[yypt-6].node, yyS[yypt-0].node /*, @2*/ ),
/*@2*/ ),
makeA_Expr(AEXPR_OR, NIL,
makeSimpleA_Expr(AEXPR_OP, "<", yyS[yypt-6].node, yyS[yypt-0].node /*, @2*/ ),
makeSimpleA_Expr(AEXPR_OP, ">", yyS[yypt-6].node, yyS[yypt-2].node /*, @2*/ ),
/*@2*/ ),
/*@2*/ )
}
case 1552:
//line simplegram.y:9971
{
/* in_expr returns a SubLink or a list of a_exprs */
if IsA(yyS[yypt-0].node, SubLink) {
/* generate foo = ANY (subquery) */
n := yyS[yypt-0].node
n.subLinkType = ANY_SUBLINK
n.testexpr = yyS[yypt-2].node
n.operName = list_make1(makeString("="))
// n.location = @2;
yyVAL.node = n
} else {
/* generate scalar IN expression */
yyVAL.node = makeSimpleA_Expr(AEXPR_IN, "=", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
}
case 1553:
//line simplegram.y:9984
{
/* in_expr returns a SubLink or a list of a_exprs */
if IsA(yyS[yypt-0].node, SubLink) {
/* generate NOT (foo = ANY (subquery)) */
/* Make an = ANY node */
n := yyS[yypt-0].node
n.subLinkType = ANY_SUBLINK
n.testexpr = yyS[yypt-3].node
n.operName = list_make1(makeString("="))
// n.location = @3;
/* Stick a NOT on top */
yyVAL.node = makeA_Expr(AEXPR_NOT, NIL, nil, n /*, @2*/ )
} else {
/* generate scalar NOT IN expression */
yyVAL.node = makeSimpleA_Expr(AEXPR_IN, "<>", yyS[yypt-3].node, yyS[yypt-0].node /*, @2*/ )
}
}
case 1554:
//line simplegram.y:9997
{
n := &SubLink{}
n.subLinkType = yyS[yypt-1].ival
n.testexpr = yyS[yypt-3].node
n.operName = yyS[yypt-2].list
n.subselect = yyS[yypt-0].node
// n.location = @2;
yyVAL.node = n
}
case 1555:
//line simplegram.y:10007
{
if yyS[yypt-3].ival == ANY_SUBLINK {
yyVAL.node = makeA_Expr(AEXPR_OP_ANY, yyS[yypt-4].list, yyS[yypt-5].node, yyS[yypt-1].node /*, @2*/ )
} else {
yyVAL.node = makeA_Expr(AEXPR_OP_ALL, yyS[yypt-4].list, yyS[yypt-5].node, yyS[yypt-1].node /*, @2*/ )
}
}
case 1556:
//line simplegram.y:10015
{
/* Not sure how to get rid of the parentheses
* but there are lots of shift/reduce errors without them.
*
* Should be able to implement this by plopping the entire
* select into a node, then transforming the target expressions
* from whatever they are into count(*), and testing the
* entire result equal to one.
* But, will probably implement a separate node in the executor.
*/
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("UNIQUE predicate is not yet implemented"),
parser_errposition( /*@1*/ ))
}
case 1557:
//line simplegram.y:10030
{
yyVAL.node = makeXmlExpr(IS_DOCUMENT, nil, NIL,
list_make1(yyS[yypt-2].node) /*, @2*/ )
}
case 1558:
//line simplegram.y:10035
{
yyVAL.node = makeA_Expr(AEXPR_NOT, NIL, nil,
makeXmlExpr(IS_DOCUMENT, nil, NIL,
list_make1(yyS[yypt-3].node) /*, @2*/ ),
/*@2*/ )
}
case 1559:
//line simplegram.y:10053
{
yyVAL.node = yyS[yypt-0].node
}
case 1560:
//line simplegram.y:10055
{
yyVAL.node = makeTypeCast(yyS[yypt-2].node, yyS[yypt-0].typnam /*, @2*/ )
}
case 1561:
//line simplegram.y:10057
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "+", nil, yyS[yypt-0].node /*, @1*/ )
}
case 1562:
//line simplegram.y:10059
{
yyVAL.node = doNegate(yyS[yypt-0].node /*, @1*/ )
}
case 1563:
//line simplegram.y:10061
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "+", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1564:
//line simplegram.y:10063
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "-", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1565:
//line simplegram.y:10065
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "*", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1566:
//line simplegram.y:10067
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "/", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1567:
//line simplegram.y:10069
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "%", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1568:
//line simplegram.y:10071
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "^", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1569:
//line simplegram.y:10073
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "<", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1570:
//line simplegram.y:10075
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, ">", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1571:
//line simplegram.y:10077
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OP, "=", yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1572:
//line simplegram.y:10079
{
yyVAL.node = makeA_Expr(AEXPR_OP, yyS[yypt-1].list, yyS[yypt-2].node, yyS[yypt-0].node /*, @2*/ )
}
case 1573:
//line simplegram.y:10081
{
yyVAL.node = makeA_Expr(AEXPR_OP, yyS[yypt-1].list, nil, yyS[yypt-0].node /*, @1*/ )
}
case 1574:
//line simplegram.y:10083
{
yyVAL.node = makeA_Expr(AEXPR_OP, yyS[yypt-0].list, yyS[yypt-1].node, nil /*, @2*/ )
}
case 1575:
//line simplegram.y:10085
{
yyVAL.node = makeSimpleA_Expr(AEXPR_DISTINCT, "=", yyS[yypt-4].node, yyS[yypt-0].node /*, @2*/ )
}
case 1576:
//line simplegram.y:10089
{
yyVAL.node = makeA_Expr(AEXPR_NOT, NIL,
nil, makeSimpleA_Expr(AEXPR_DISTINCT, "=", yyS[yypt-5].node, yyS[yypt-0].node /*, @2*/ ) /*, @2*/ )
}
case 1577:
//line simplegram.y:10094
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OF, "=", yyS[yypt-5].node, yyS[yypt-1].list /*, @2*/ )
}
case 1578:
//line simplegram.y:10098
{
yyVAL.node = makeSimpleA_Expr(AEXPR_OF, "<>", yyS[yypt-6].node, yyS[yypt-1].list /*, @2*/ )
}
case 1579:
//line simplegram.y:10102
{
yyVAL.node = makeXmlExpr(IS_DOCUMENT, nil, NIL,
list_make1(yyS[yypt-2].node) /*, @2*/ )
}
case 1580:
//line simplegram.y:10107
{
yyVAL.node = makeA_Expr(AEXPR_NOT, NIL, nil,
makeXmlExpr(IS_DOCUMENT, nil, NIL,
list_make1(yyS[yypt-3].node) /*, @2*/ ),
/*@2*/ )
}
case 1581:
//line simplegram.y:10123
{
yyVAL.node = yyS[yypt-0].node
}
case 1582:
//line simplegram.y:10124
{
yyVAL.node = yyS[yypt-0].node
}
case 1583:
//line simplegram.y:10126
{
p := &ParamRef{}
p.number = yyS[yypt-1].ival
// p.location = @1;
if yyS[yypt-0].list {
n := &A_Indirection{}
n.arg = p
n.indirection = check_indirection(yyS[yypt-0].list, yyscanner)
yyVAL.node = n
} else {
yyVAL.node = p
}
}
case 1584:
//line simplegram.y:10140
{
if yyS[yypt-0].list {
n := &A_Indirection{}
n.arg = yyS[yypt-2].node
n.indirection = check_indirection(yyS[yypt-0].list, yyscanner)
yyVAL.node = n
} else {
yyVAL.node = yyS[yypt-2].node
}
}
case 1585:
//line simplegram.y:10151
{
yyVAL.node = yyS[yypt-0].node
}
case 1586:
//line simplegram.y:10153
{
yyVAL.node = yyS[yypt-0].node
}
case 1587:
//line simplegram.y:10155
{
n := &SubLink{}
n.subLinkType = EXPR_SUBLINK
n.testexpr = nil
n.operName = NIL
n.subselect = yyS[yypt-0].node
// n.location = @1;
yyVAL.node = n
}
case 1588:
//line simplegram.y:10165
{
n := &SubLink{}
n.subLinkType = EXISTS_SUBLINK
n.testexpr = nil
n.operName = NIL
n.subselect = yyS[yypt-0].node
// n.location = @1;
yyVAL.node = n
}
case 1589:
//line simplegram.y:10175
{
n := &SubLink{}
n.subLinkType = ARRAY_SUBLINK
n.testexpr = nil
n.operName = NIL
n.subselect = yyS[yypt-0].node
// n.location = @1;
yyVAL.node = n
}
case 1590:
//line simplegram.y:10185
{
n := yyS[yypt-0].node
Assert(IsA(n, A_ArrayExpr))
/* point outermost A_ArrayExpr to the ARRAY keyword */
// n.location = @1;
yyVAL.node = n
}
case 1591:
//line simplegram.y:10192
{
RowExpr * r = &RowExpr{}
r.args = yyS[yypt-0].list
r.row_typeid = InvalidOid /* not analyzed yet */
// r.location = @1;
yyVAL.node = r
}
case 1592:
//line simplegram.y:10209
{
n := &FuncCall{}
n.funcname = yyS[yypt-3].list
n.args = NIL
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = yyS[yypt-0].windef
// n.location = @1;
yyVAL.node = n
}
case 1593:
//line simplegram.y:10222
{
n := &FuncCall{}
n.funcname = yyS[yypt-4].list
n.args = yyS[yypt-2].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = yyS[yypt-0].windef
// n.location = @1;
yyVAL.node = n
}
case 1594:
//line simplegram.y:10235
{
n := &FuncCall{}
n.funcname = yyS[yypt-5].list
n.args = list_make1(yyS[yypt-2].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = TRUE
n.over = yyS[yypt-0].windef
// n.location = @1;
yyVAL.node = n
}
case 1595:
//line simplegram.y:10248
{
n := &FuncCall{}
n.funcname = yyS[yypt-7].list
n.args = lappend(yyS[yypt-5].list, yyS[yypt-2].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = TRUE
n.over = yyS[yypt-0].windef
// n.location = @1;
yyVAL.node = n
}
case 1596:
//line simplegram.y:10261
{
n := &FuncCall{}
n.funcname = yyS[yypt-5].list
n.args = yyS[yypt-3].list
n.agg_order = yyS[yypt-2].list
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = yyS[yypt-0].windef
// n.location = @1;
yyVAL.node = n
}
case 1597:
//line simplegram.y:10274
{
n := &FuncCall{}
n.funcname = yyS[yypt-6].list
n.args = yyS[yypt-3].list
n.agg_order = yyS[yypt-2].list
n.agg_star = FALSE
n.agg_distinct = FALSE
/* Ideally we'd mark the FuncCall node to indicate
* "must be an aggregate", but there's no provision
* for that in FuncCall at the moment.
*/
n.func_variadic = FALSE
n.over = yyS[yypt-0].windef
// n.location = @1;
yyVAL.node = n
}
case 1598:
//line simplegram.y:10290
{
n := &FuncCall{}
n.funcname = yyS[yypt-6].list
n.args = yyS[yypt-3].list
n.agg_order = yyS[yypt-2].list
n.agg_star = FALSE
n.agg_distinct = TRUE
n.func_variadic = FALSE
n.over = yyS[yypt-0].windef
// n.location = @1;
yyVAL.node = n
}
case 1599:
//line simplegram.y:10303
{
/*
* We consider AGGREGATE(*) to invoke a parameterless
* aggregate. This does the right thing for COUNT(*),
* and there are no other aggregates in SQL92 that accept
* '*' as parameter.
*
* The FuncCall node is also marked agg_star = true,
* so that later processing can detect what the argument
* really was.
*/
n := &FuncCall{}
n.funcname = yyS[yypt-4].list
n.args = NIL
n.agg_order = NIL
n.agg_star = TRUE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = yyS[yypt-0].windef
// n.location = @1;
yyVAL.node = n
}
case 1600:
//line simplegram.y:10325
{
/*
* Translate as "'now'::text::date".
*
* We cannot use "'now'::date" because coerce_type() will
* immediately reduce that to a constant representing
* today's date. We need to delay the conversion until
* runtime, else the wrong things will happen when
* CURRENT_DATE is used in a column default value or rule.
*
* This could be simplified if we had a way to generate
* an expression tree representing runtime application
* of type-input conversion functions. (As of PG 7.3
* that is actually possible, but not clear that we want
* to rely on it.)
*/
Node * n
n = makeStringConstCast("now", /*, @1*/ SystemTypeName("text"))
yyVAL.node = makeTypeCast(n, SystemTypeName("date"), -1)
}
case 1601:
//line simplegram.y:10345
{
/*
* Translate as "'now'::text::timetz".
* See comments for CURRENT_DATE.
*/
Node * n
n = makeStringConstCast("now", /*, @1*/ SystemTypeName("text"))
yyVAL.node = makeTypeCast(n, SystemTypeName("timetz"), -1)
}
case 1602:
//line simplegram.y:10354
{
/*
* Translate as "'now'::text::timetz(n)".
* See comments for CURRENT_DATE.
*/
Node * n
TypeName * d
n = makeStringConstCast("now", /*, @1*/ SystemTypeName("text"))
d = SystemTypeName("timetz")
d.typmods = list_make1(makeIntConst(yyS[yypt-1].ival /*, @3*/ ))
yyVAL.node = makeTypeCast(n, d, -1)
}
case 1603:
//line simplegram.y:10366
{
/*
* Translate as "now()", since we have a function that
* does exactly what is needed.
*/
n := &FuncCall{}
n.funcname = SystemFuncName("now")
n.args = NIL
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1604:
//line simplegram.y:10382
{
/*
* Translate as "'now'::text::timestamptz(n)".
* See comments for CURRENT_DATE.
*/
Node * n
TypeName * d
n = makeStringConstCast("now", /*, @1*/ SystemTypeName("text"))
d = SystemTypeName("timestamptz")
d.typmods = list_make1(makeIntConst(yyS[yypt-1].ival /*, @3*/ ))
yyVAL.node = makeTypeCast(n, d, -1)
}
case 1605:
//line simplegram.y:10394
{
/*
* Translate as "'now'::text::time".
* See comments for CURRENT_DATE.
*/
Node * n
n = makeStringConstCast("now", /*, @1*/ SystemTypeName("text"))
yyVAL.node = makeTypeCast(n, SystemTypeName("time"), -1)
}
case 1606:
//line simplegram.y:10403
{
/*
* Translate as "'now'::text::time(n)".
* See comments for CURRENT_DATE.
*/
Node * n
TypeName * d
n = makeStringConstCast("now", /*, @1*/ SystemTypeName("text"))
d = SystemTypeName("time")
d.typmods = list_make1(makeIntConst(yyS[yypt-1].ival /*, @3*/ ))
yyVAL.node = makeTypeCast(n, d, -1)
}
case 1607:
//line simplegram.y:10415
{
/*
* Translate as "'now'::text::timestamp".
* See comments for CURRENT_DATE.
*/
Node * n
n = makeStringConstCast("now", /*, @1*/ SystemTypeName("text"))
yyVAL.node = makeTypeCast(n, SystemTypeName("timestamp"), -1)
}
case 1608:
//line simplegram.y:10424
{
/*
* Translate as "'now'::text::timestamp(n)".
* See comments for CURRENT_DATE.
*/
Node * n
TypeName * d
n = makeStringConstCast("now", /*, @1*/ SystemTypeName("text"))
d = SystemTypeName("timestamp")
d.typmods = list_make1(makeIntConst(yyS[yypt-1].ival /*, @3*/ ))
yyVAL.node = makeTypeCast(n, d, -1)
}
case 1609:
//line simplegram.y:10436
{
n := &FuncCall{}
n.funcname = SystemFuncName("current_user")
n.args = NIL
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1610:
//line simplegram.y:10449
{
n := &FuncCall{}
n.funcname = SystemFuncName("current_user")
n.args = NIL
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1611:
//line simplegram.y:10462
{
n := &FuncCall{}
n.funcname = SystemFuncName("session_user")
n.args = NIL
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1612:
//line simplegram.y:10475
{
n := &FuncCall{}
n.funcname = SystemFuncName("current_user")
n.args = NIL
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1613:
//line simplegram.y:10488
{
n := &FuncCall{}
n.funcname = SystemFuncName("current_database")
n.args = NIL
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1614:
//line simplegram.y:10501
{
n := &FuncCall{}
n.funcname = SystemFuncName("current_schema")
n.args = NIL
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1615:
//line simplegram.y:10514
{
yyVAL.node = makeTypeCast(yyS[yypt-3].node, yyS[yypt-1].typnam /*, @1*/ )
}
case 1616:
//line simplegram.y:10516
{
n := &FuncCall{}
n.funcname = SystemFuncName("date_part")
n.args = yyS[yypt-1].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1617:
//line simplegram.y:10529
{
/* overlay(A PLACING B FROM C FOR D) is converted to
* overlay(A, B, C, D)
* overlay(A PLACING B FROM C) is converted to
* overlay(A, B, C)
*/
n := &FuncCall{}
n.funcname = SystemFuncName("overlay")
n.args = yyS[yypt-1].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1618:
//line simplegram.y:10546
{
/* position(A in B) is converted to position(B, A) */
n := &FuncCall{}
n.funcname = SystemFuncName("position")
n.args = yyS[yypt-1].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1619:
//line simplegram.y:10559
{
/* substring(A from B for C) is converted to
* substring(A, B, C) - thomas 2000-11-28
*/
n := &FuncCall{}
n.funcname = SystemFuncName("substring")
n.args = yyS[yypt-1].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1620:
//line simplegram.y:10574
{
/* TREAT(expr AS target) converts expr of a particular type to target,
* which is defined to be a subtype of the original expression.
* In SQL99, this is intended for use with structured UDTs,
* but let's make this a generally useful form allowing stronger
* coercions than are handled by implicit casting.
*/
n := &FuncCall{}
/* Convert SystemTypeName() to SystemFuncName() even though
* at the moment they result in the same thing.
*/
n.funcname = SystemFuncName((llast(yyS[yypt-1].typnam.names)).val.str)
n.args = list_make1(yyS[yypt-3].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1621:
//line simplegram.y:10594
{
/* various trim expressions are defined in SQL92
* - thomas 1997-07-19
*/
n := &FuncCall{}
n.funcname = SystemFuncName("btrim")
n.args = yyS[yypt-1].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1622:
//line simplegram.y:10609
{
n := &FuncCall{}
n.funcname = SystemFuncName("ltrim")
n.args = yyS[yypt-1].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1623:
//line simplegram.y:10622
{
n := &FuncCall{}
n.funcname = SystemFuncName("rtrim")
n.args = yyS[yypt-1].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1624:
//line simplegram.y:10635
{
n := &FuncCall{}
n.funcname = SystemFuncName("btrim")
n.args = yyS[yypt-1].list
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1625:
//line simplegram.y:10648
{
yyVAL.node = makeSimpleA_Expr(AEXPR_NULLIF, "=", yyS[yypt-3].node, yyS[yypt-1].node /*, @1*/ )
}
case 1626:
//line simplegram.y:10652
{
CoalesceExpr * c = &CoalesceExpr{}
c.args = yyS[yypt-1].list
// c.location = @1;
yyVAL.node = c
}
case 1627:
//line simplegram.y:10659
{
MinMaxExpr * v = &MinMaxExpr{}
v.args = yyS[yypt-1].list
v.op = IS_GREATEST
// v.location = @1;
yyVAL.node = v
}
case 1628:
//line simplegram.y:10667
{
MinMaxExpr * v = &MinMaxExpr{}
v.args = yyS[yypt-1].list
v.op = IS_LEAST
// v.location = @1;
yyVAL.node = v
}
case 1629:
//line simplegram.y:10675
{
yyVAL.node = makeXmlExpr(IS_XMLCONCAT, nil, NIL, yyS[yypt-1].list /*, @1*/ )
}
case 1630:
//line simplegram.y:10679
{
yyVAL.node = makeXmlExpr(IS_XMLELEMENT, yyS[yypt-1].str, NIL, NIL /*, @1*/ )
}
case 1631:
//line simplegram.y:10683
{
yyVAL.node = makeXmlExpr(IS_XMLELEMENT, yyS[yypt-3].str, yyS[yypt-1].list, NIL /*, @1*/ )
}
case 1632:
//line simplegram.y:10687
{
yyVAL.node = makeXmlExpr(IS_XMLELEMENT, yyS[yypt-3].str, NIL, yyS[yypt-1].list /*, @1*/ )
}
case 1633:
//line simplegram.y:10691
{
yyVAL.node = makeXmlExpr(IS_XMLELEMENT, yyS[yypt-5].str, yyS[yypt-3].list, yyS[yypt-1].list /*, @1*/ )
}
case 1634:
//line simplegram.y:10695
{
/* xmlexists(A PASSING [BY REF] B [BY REF]) is
* converted to xmlexists(A, B)*/
n := &FuncCall{}
n.funcname = SystemFuncName("xmlexists")
n.args = list_make2(yyS[yypt-2].node, yyS[yypt-1].node)
n.agg_order = NIL
n.agg_star = FALSE
n.agg_distinct = FALSE
n.func_variadic = FALSE
n.over = nil
// n.location = @1;
yyVAL.node = n
}
case 1635:
//line simplegram.y:10709
{
yyVAL.node = makeXmlExpr(IS_XMLFOREST, nil, yyS[yypt-1].list, NIL /*, @1*/ )
}
case 1636:
//line simplegram.y:10713
{
XmlExpr * x =
makeXmlExpr(IS_XMLPARSE, nil, NIL,
list_make2(yyS[yypt-2].node, makeBoolAConst(yyS[yypt-1].boolean, -1)),
/*@1*/ )
x.xmloption = yyS[yypt-3].ival
yyVAL.node = x
}
case 1637:
//line simplegram.y:10722
{
yyVAL.node = makeXmlExpr(IS_XMLPI, yyS[yypt-1].str, nil, NIL /*, @1*/ )
}
case 1638:
//line simplegram.y:10726
{
yyVAL.node = makeXmlExpr(IS_XMLPI, yyS[yypt-3].str, nil, list_make1(yyS[yypt-1].node) /*, @1*/ )
}
case 1639:
//line simplegram.y:10730
{
yyVAL.node = makeXmlExpr(IS_XMLROOT, nil, NIL,
list_make3(yyS[yypt-4].node, yyS[yypt-2].node, yyS[yypt-1].node) /*, @1*/ )
}
case 1640:
//line simplegram.y:10735
{
n := &XmlSerialize{}
n.xmloption = yyS[yypt-4].ival
n.expr = yyS[yypt-3].node
n.typeName = yyS[yypt-1].typnam
// n.location = @1;
yyVAL.node = n
}
case 1641:
//line simplegram.y:10749
{
yyVAL.node = yyS[yypt-0].node
}
case 1642:
//line simplegram.y:10751
{
yyVAL.node = makeNullAConst(-1)
}
case 1643:
//line simplegram.y:10755
{
yyVAL.node = makeIntConst(XML_STANDALONE_YES, -1)
}
case 1644:
//line simplegram.y:10757
{
yyVAL.node = makeIntConst(XML_STANDALONE_NO, -1)
}
case 1645:
//line simplegram.y:10759
{
yyVAL.node = makeIntConst(XML_STANDALONE_NO_VALUE, -1)
}
case 1646:
//line simplegram.y:10761
{
yyVAL.node = makeIntConst(XML_STANDALONE_OMITTED, -1)
}
case 1647:
//line simplegram.y:10764
{
yyVAL.list = yyS[yypt-1].list
}
case 1648:
//line simplegram.y:10767
{
yyVAL.list = list_make1(yyS[yypt-0].target)
}
case 1649:
//line simplegram.y:10768
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].target)
}
case 1650:
//line simplegram.y:10772
{
yyVAL.target = &ResTarget{}
yyVAL.target.name = yyS[yypt-0].str
yyVAL.target.indirection = NIL
yyVAL.target.val = yyS[yypt-2].node
// $$.location = @1;
}
case 1651:
//line simplegram.y:10780
{
yyVAL.target = &ResTarget{}
yyVAL.target.name = nil
yyVAL.target.indirection = NIL
yyVAL.target.val = yyS[yypt-0].node
// $$.location = @1;
}
case 1652:
//line simplegram.y:10789
{
yyVAL.ival = XMLOPTION_DOCUMENT
}
case 1653:
//line simplegram.y:10790
{
yyVAL.ival = XMLOPTION_CONTENT
}
case 1654:
//line simplegram.y:10793
{
yyVAL.boolean = TRUE
}
case 1655:
//line simplegram.y:10794
{
yyVAL.boolean = FALSE
}
case 1656:
//line simplegram.y:10795
{
yyVAL.boolean = FALSE
}
case 1657:
//line simplegram.y:10801
{
yyVAL.node = yyS[yypt-0].node
}
case 1658:
//line simplegram.y:10805
{
yyVAL.node = yyS[yypt-2].node
}
case 1659:
//line simplegram.y:10809
{
yyVAL.node = yyS[yypt-0].node
}
case 1660:
//line simplegram.y:10813
{
yyVAL.node = yyS[yypt-2].node
}
case 1661:
//line simplegram.y:10823
{
yyVAL.list = yyS[yypt-0].list
}
case 1662:
//line simplegram.y:10824
{
yyVAL.list = NIL
}
case 1663:
//line simplegram.y:10828
{
yyVAL.list = list_make1(yyS[yypt-0].windef)
}
case 1664:
//line simplegram.y:10830
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].windef)
}
case 1665:
//line simplegram.y:10835
{
n := yyS[yypt-0].windef
n.name = yyS[yypt-2].str
yyVAL.windef = n
}
case 1666:
//line simplegram.y:10843
{
yyVAL.windef = yyS[yypt-0].windef
}
case 1667:
//line simplegram.y:10845
{
n := &WindowDef{}
n.name = yyS[yypt-0].str
n.refname = nil
n.partitionClause = NIL
n.orderClause = NIL
n.frameOptions = FRAMEOPTION_DEFAULTS
n.startOffset = nil
n.endOffset = nil
// n.location = @2;
yyVAL.windef = n
}
case 1668:
//line simplegram.y:10858
{
yyVAL.windef = nil
}
case 1669:
//line simplegram.y:10863
{
n := &WindowDef{}
n.name = nil
n.refname = yyS[yypt-4].str
n.partitionClause = yyS[yypt-3].list
n.orderClause = yyS[yypt-2].list
/* copy relevant fields of opt_frame_clause */
n.frameOptions = yyS[yypt-1].windef.frameOptions
n.startOffset = yyS[yypt-1].windef.startOffset
n.endOffset = yyS[yypt-1].windef.endOffset
// n.location = @1;
yyVAL.windef = n
}
case 1670:
//line simplegram.y:10887
{
yyVAL.str = yyS[yypt-0].str
}
case 1671:
//line simplegram.y:10888
{
yyVAL.str = nil
}
case 1672:
//line simplegram.y:10891
{
yyVAL.list = yyS[yypt-0].list
}
case 1673:
//line simplegram.y:10892
{
yyVAL.list = NIL
}
case 1674:
//line simplegram.y:10904
{
n := yyS[yypt-0].windef
n.frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE
if n.frameOptions & (FRAMEOPTION_START_VALUE_PRECEDING |
FRAMEOPTION_END_VALUE_PRECEDING) {
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("RANGE PRECEDING is only supported with UNBOUNDED"),
parser_errposition( /*@1*/ ))
}
if n.frameOptions & (FRAMEOPTION_START_VALUE_FOLLOWING |
FRAMEOPTION_END_VALUE_FOLLOWING) {
ereport(ERROR,
errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
errmsg("RANGE FOLLOWING is only supported with UNBOUNDED"),
parser_errposition( /*@1*/ ))
}
yyVAL.windef = n
}
case 1675:
//line simplegram.y:10924
{
n := yyS[yypt-0].windef
n.frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS
yyVAL.windef = n
}
case 1676:
//line simplegram.y:10930
{
n := &WindowDef{}
n.frameOptions = FRAMEOPTION_DEFAULTS
n.startOffset = nil
n.endOffset = nil
yyVAL.windef = n
}
case 1677:
//line simplegram.y:10940
{
n := yyS[yypt-0].windef
/* reject invalid cases */
if n.frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING {
ereport(ERROR,
errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
parser_errposition( /*@1*/ ))
}
if n.frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING {
ereport(ERROR,
errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame starting from following row cannot end with current row"),
parser_errposition( /*@1*/ ))
}
n.frameOptions |= FRAMEOPTION_END_CURRENT_ROW
yyVAL.windef = n
}
case 1678:
//line simplegram.y:10958
{
WindowDef * n1 = yyS[yypt-2].windef
WindowDef * n2 = yyS[yypt-0].windef
/* form merged options */
frameOptions := n1.frameOptions
/* shift converts START_ options to END_ options */
frameOptions |= n2.frameOptions << 1
frameOptions |= FRAMEOPTION_BETWEEN
/* reject invalid cases */
switch {
case frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING:
ereport(ERROR,
errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
parser_errposition( /*@2*/ ))
case frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING:
ereport(ERROR,
errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame end cannot be UNBOUNDED PRECEDING"),
parser_errposition( /*@4*/ ))
case ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) &&
(frameOptions & FRAMEOPTION_END_VALUE_PRECEDING)):
ereport(ERROR,
errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame starting from current row cannot have preceding rows"),
parser_errposition( /*@4*/ ))
case ((frameOptions & FRAMEOPTION_START_VALUE_FOLLOWING) &&
(frameOptions & (FRAMEOPTION_END_VALUE_PRECEDING |
FRAMEOPTION_END_CURRENT_ROW))):
ereport(ERROR,
errcode(ERRCODE_WINDOWING_ERROR),
errmsg("frame starting from following row cannot have preceding rows"),
parser_errposition( /*@4*/ ))
}
n1.frameOptions = frameOptions
n1.endOffset = n2.startOffset
yyVAL.windef = n1
}
case 1679:
//line simplegram.y:11002
{
n := &WindowDef{}
n.frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING
n.startOffset = nil
n.endOffset = nil
yyVAL.windef = n
}
case 1680:
//line simplegram.y:11010
{
n := &WindowDef{}
n.frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING
n.startOffset = nil
n.endOffset = nil
yyVAL.windef = n
}
case 1681:
//line simplegram.y:11018
{
n := &WindowDef{}
n.frameOptions = FRAMEOPTION_START_CURRENT_ROW
n.startOffset = nil
n.endOffset = nil
yyVAL.windef = n
}
case 1682:
//line simplegram.y:11026
{
n := &WindowDef{}
n.frameOptions = FRAMEOPTION_START_VALUE_PRECEDING
n.startOffset = yyS[yypt-1].node
n.endOffset = nil
yyVAL.windef = n
}
case 1683:
//line simplegram.y:11034
{
n := &WindowDef{}
n.frameOptions = FRAMEOPTION_START_VALUE_FOLLOWING
n.startOffset = yyS[yypt-1].node
n.endOffset = nil
yyVAL.windef = n
}
case 1684:
//line simplegram.y:11054
{
yyVAL.list = yyS[yypt-1].list
}
case 1685:
//line simplegram.y:11055
{
yyVAL.list = NIL
}
case 1686:
//line simplegram.y:11056
{
yyVAL.list = lappend(yyS[yypt-3].list, yyS[yypt-1].node)
}
case 1687:
//line simplegram.y:11059
{
yyVAL.ival = ANY_SUBLINK
}
case 1688:
//line simplegram.y:11060
{
yyVAL.ival = ANY_SUBLINK
}
case 1689:
//line simplegram.y:11061
{
yyVAL.ival = ALL_SUBLINK
}
case 1690:
//line simplegram.y:11064
{
yyVAL.str = yyS[yypt-0].str
}
case 1691:
//line simplegram.y:11065
{
yyVAL.str = yyS[yypt-0].str
}
case 1692:
//line simplegram.y:11068
{
yyVAL.str = "+"
}
case 1693:
//line simplegram.y:11069
{
yyVAL.str = "-"
}
case 1694:
//line simplegram.y:11070
{
yyVAL.str = "*"
}
case 1695:
//line simplegram.y:11071
{
yyVAL.str = "/"
}
case 1696:
//line simplegram.y:11072
{
yyVAL.str = "%"
}
case 1697:
//line simplegram.y:11073
{
yyVAL.str = "^"
}
case 1698:
//line simplegram.y:11074
{
yyVAL.str = "<"
}
case 1699:
//line simplegram.y:11075
{
yyVAL.str = ">"
}
case 1700:
//line simplegram.y:11076
{
yyVAL.str = "="
}
case 1701:
//line simplegram.y:11080
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 1702:
//line simplegram.y:11082
{
yyVAL.list = yyS[yypt-1].list
}
case 1703:
//line simplegram.y:11087
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 1704:
//line simplegram.y:11089
{
yyVAL.list = yyS[yypt-1].list
}
case 1705:
//line simplegram.y:11094
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 1706:
//line simplegram.y:11096
{
yyVAL.list = yyS[yypt-1].list
}
case 1707:
//line simplegram.y:11098
{
yyVAL.list = list_make1(makeString("~~"))
}
case 1708:
//line simplegram.y:11100
{
yyVAL.list = list_make1(makeString("!~~"))
}
case 1709:
//line simplegram.y:11102
{
yyVAL.list = list_make1(makeString("~~*"))
}
case 1710:
//line simplegram.y:11104
{
yyVAL.list = list_make1(makeString("!~~*"))
}
case 1711:
//line simplegram.y:11116
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1712:
//line simplegram.y:11120
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 1713:
//line simplegram.y:11127
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1714:
//line simplegram.y:11131
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 1715:
//line simplegram.y:11137
{
yyVAL.node = yyS[yypt-0].node
}
case 1716:
//line simplegram.y:11141
{
NamedArgExpr * na = &NamedArgExpr{}
na.name = yyS[yypt-2].str
na.arg = yyS[yypt-0].node
na.argnumber = -1 /* until determined */
// na.location = @1;
yyVAL.node = na
}
case 1717:
//line simplegram.y:11150
{
yyVAL.list = list_make1(yyS[yypt-0].typnam)
}
case 1718:
//line simplegram.y:11151
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].typnam)
}
case 1719:
//line simplegram.y:11155
{
yyVAL.node = makeAArrayExpr(yyS[yypt-1].list /*, @1*/ )
}
case 1720:
//line simplegram.y:11159
{
yyVAL.node = makeAArrayExpr(yyS[yypt-1].list /*, @1*/ )
}
case 1721:
//line simplegram.y:11163
{
yyVAL.node = makeAArrayExpr(NIL /*, @1*/ )
}
case 1722:
//line simplegram.y:11168
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1723:
//line simplegram.y:11169
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 1724:
//line simplegram.y:11175
{
yyVAL.list = list_make2(makeStringConst(yyS[yypt-2].str /*, @1*/ ), yyS[yypt-0].node)
}
case 1725:
//line simplegram.y:11178
{
yyVAL.list = NIL
}
case 1726:
//line simplegram.y:11185
{
yyVAL.str = yyS[yypt-0].str
}
case 1727:
//line simplegram.y:11186
{
yyVAL.str = "year"
}
case 1728:
//line simplegram.y:11187
{
yyVAL.str = "month"
}
case 1729:
//line simplegram.y:11188
{
yyVAL.str = "day"
}
case 1730:
//line simplegram.y:11189
{
yyVAL.str = "hour"
}
case 1731:
//line simplegram.y:11190
{
yyVAL.str = "minute"
}
case 1732:
//line simplegram.y:11191
{
yyVAL.str = "second"
}
case 1733:
//line simplegram.y:11192
{
yyVAL.str = yyS[yypt-0].str
}
case 1734:
//line simplegram.y:11203
{
yyVAL.list = list_make4(yyS[yypt-3].node, yyS[yypt-2].node, yyS[yypt-1].node, yyS[yypt-0].node)
}
case 1735:
//line simplegram.y:11207
{
yyVAL.list = list_make3(yyS[yypt-2].node, yyS[yypt-1].node, yyS[yypt-0].node)
}
case 1736:
//line simplegram.y:11214
{
yyVAL.node = yyS[yypt-0].node
}
case 1737:
//line simplegram.y:11220
{
yyVAL.list = list_make2(yyS[yypt-0].node, yyS[yypt-2].node)
}
case 1738:
//line simplegram.y:11221
{
yyVAL.list = NIL
}
case 1739:
//line simplegram.y:11238
{
yyVAL.list = list_make3(yyS[yypt-2].node, yyS[yypt-1].node, yyS[yypt-0].node)
}
case 1740:
//line simplegram.y:11242
{
/* not legal per SQL99, but might as well allow it */
yyVAL.list = list_make3(yyS[yypt-2].node, yyS[yypt-0].node, yyS[yypt-1].node)
}
case 1741:
//line simplegram.y:11246
{
yyVAL.list = list_make2(yyS[yypt-1].node, yyS[yypt-0].node)
}
case 1742:
//line simplegram.y:11250
{
/*
* Since there are no cases where this syntax allows
* a textual FOR value, we forcibly cast the argument
* to int4. The possible matches in pg_proc are
* substring(text,int4) and substring(text,text),
* and we don't want the parser to choose the latter,
* which it is likely to do if the second argument
* is unknown or doesn't have an implicit cast to int4.
*/
yyVAL.list = list_make3(yyS[yypt-1].node, makeIntConst(1, -1),
makeTypeCast(yyS[yypt-0].node,
SystemTypeName("int4"), -1))
}
case 1743:
//line simplegram.y:11264
{
yyVAL.list = yyS[yypt-0].list
}
case 1744:
//line simplegram.y:11268
{
yyVAL.list = NIL
}
case 1745:
//line simplegram.y:11272
{
yyVAL.node = yyS[yypt-0].node
}
case 1746:
//line simplegram.y:11275
{
yyVAL.node = yyS[yypt-0].node
}
case 1747:
//line simplegram.y:11278
{
yyVAL.list = lappend(yyS[yypt-0].list, yyS[yypt-2].node)
}
case 1748:
//line simplegram.y:11279
{
yyVAL.list = yyS[yypt-0].list
}
case 1749:
//line simplegram.y:11280
{
yyVAL.list = yyS[yypt-0].list
}
case 1750:
//line simplegram.y:11284
{
n := &SubLink{}
n.subselect = yyS[yypt-0].node
/* other fields will be filled later */
yyVAL.node = n
}
case 1751:
//line simplegram.y:11289
{
yyVAL.node = yyS[yypt-1].list
}
case 1752:
//line simplegram.y:11300
{
CaseExpr * c = &CaseExpr{}
c.casetype = InvalidOid /* not analyzed yet */
c.arg = yyS[yypt-3].node
c.args = yyS[yypt-2].list
c.defresult = yyS[yypt-1].node
// c.location = @1;
yyVAL.node = c
}
case 1753:
//line simplegram.y:11312
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1754:
//line simplegram.y:11313
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].node)
}
case 1755:
//line simplegram.y:11318
{
CaseWhen * w = &CaseWhen{}
w.expr = yyS[yypt-2].node
w.result = yyS[yypt-0].node
// w.location = @1;
yyVAL.node = w
}
case 1756:
//line simplegram.y:11328
{
yyVAL.node = yyS[yypt-0].node
}
case 1757:
//line simplegram.y:11329
{
yyVAL.node = nil
}
case 1758:
//line simplegram.y:11332
{
yyVAL.node = yyS[yypt-0].node
}
case 1759:
//line simplegram.y:11333
{
yyVAL.node = nil
}
case 1760:
//line simplegram.y:11337
{
yyVAL.node = makeColumnRef(yyS[yypt-0].str, NIL, /*, @1*/ yyscanner)
}
case 1761:
//line simplegram.y:11341
{
yyVAL.node = makeColumnRef(yyS[yypt-1].str, yyS[yypt-0].list, /*, @1*/ yyscanner)
}
case 1762:
//line simplegram.y:11348
{
yyVAL.node = makeString(yyS[yypt-0].str)
}
case 1763:
//line simplegram.y:11352
{
yyVAL.node = &A_Star{}
}
case 1764:
//line simplegram.y:11356
{
A_Indices * ai = &A_Indices{}
ai.lidx = nil
ai.uidx = yyS[yypt-1].node
yyVAL.node = ai
}
case 1765:
//line simplegram.y:11363
{
A_Indices * ai = &A_Indices{}
ai.lidx = yyS[yypt-3].node
ai.uidx = yyS[yypt-1].node
yyVAL.node = ai
}
case 1766:
//line simplegram.y:11372
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1767:
//line simplegram.y:11373
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].node)
}
case 1768:
//line simplegram.y:11377
{
yyVAL.list = NIL
}
case 1769:
//line simplegram.y:11378
{
yyVAL.list = lappend(yyS[yypt-1].list, yyS[yypt-0].node)
}
case 1772:
//line simplegram.y:11393
{
yyVAL.node = yyS[yypt-0].node
}
case 1773:
//line simplegram.y:11395
{
n := &SetToDefault{}
// n.location = @1;
yyVAL.node = n
}
case 1774:
//line simplegram.y:11403
{
yyVAL.list = list_make1(yyS[yypt-0].node)
}
case 1775:
//line simplegram.y:11404
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].node)
}
case 1776:
//line simplegram.y:11412
{
yyVAL.list = yyS[yypt-1].list
}
case 1777:
//line simplegram.y:11423
{
yyVAL.list = list_make1(yyS[yypt-0].target)
}
case 1778:
//line simplegram.y:11424
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].target)
}
case 1779:
//line simplegram.y:11428
{
yyVAL.target = &ResTarget{}
yyVAL.target.name = yyS[yypt-0].str
yyVAL.target.indirection = NIL
yyVAL.target.val = yyS[yypt-2].node
// $$.location = @1;
}
case 1780:
//line simplegram.y:11444
{
yyVAL.target = &ResTarget{}
yyVAL.target.name = yyS[yypt-0].str
yyVAL.target.indirection = NIL
yyVAL.target.val = yyS[yypt-1].node
// $$.location = @1;
}
case 1781:
//line simplegram.y:11452
{
yyVAL.target = &ResTarget{}
yyVAL.target.name = nil
yyVAL.target.indirection = NIL
yyVAL.target.val = yyS[yypt-0].node
// $$.location = @1;
}
case 1782:
//line simplegram.y:11460
{
n := &ColumnRef{}
n.fields = list_make1(&A_Star{})
// n.location = @1;
yyVAL.target = &ResTarget{}
yyVAL.target.name = nil
yyVAL.target.indirection = NIL
yyVAL.target.val = n
// $$.location = @1;
}
case 1783:
//line simplegram.y:11481
{
yyVAL.list = list_make1(yyS[yypt-0].rangevar)
}
case 1784:
//line simplegram.y:11482
{
yyVAL.list = lappend(yyS[yypt-2].list, yyS[yypt-0].rangevar)
}
case 1785:
//line simplegram.y:11494
{
yyVAL.rangevar = makeRangeVar(nil, yyS[yypt-0].str /*, @1*/ )
}
case 1786:
//line simplegram.y:11498
{
check_qualified_name(yyS[yypt-0].list, yyscanner)
yyVAL.rangevar = makeRangeVar(nil, nil /*, @1*/ )
switch list_length(yyS[yypt-0].list) {
case 1:
yyVAL.rangevar.catalogname = nil
yyVAL.rangevar.schemaname = yyS[yypt-1].str
yyVAL.rangevar.relname = strVal(linitial(yyS[yypt-0].list))
break
case 2:
yyVAL.rangevar.catalogname = yyS[yypt-1].str
yyVAL.rangevar.schemaname = strVal(linitial(yyS[yypt-0].list))
yyVAL.rangevar.relname = strVal(lsecond(yyS[yypt-0].list))
break
default:
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("improper qualified name (too many dotted names): %s",
NameListToString(lcons(makeString(yyS[yypt-1].str), yyS[yypt-0].list))),
parser_errposition( /*@1*/ ))
break
}
}
case 1787:
//line simplegram.y:11524
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 1788:
//line simplegram.y:11526
{
yyVAL.list = lappend(yyS[yypt-2].list, makeString(yyS[yypt-0].str))
}
case 1789:
//line simplegram.y:11530
{
yyVAL.str = yyS[yypt-0].str
}
case 1790:
//line simplegram.y:11533
{
yyVAL.str = yyS[yypt-0].str
}
case 1791:
//line simplegram.y:11536
{
yyVAL.str = yyS[yypt-0].str
}
case 1792:
//line simplegram.y:11538
{
yyVAL.str = yyS[yypt-0].str
}
case 1793:
//line simplegram.y:11540
{
yyVAL.str = yyS[yypt-0].str
}
case 1794:
//line simplegram.y:11542
{
yyVAL.str = yyS[yypt-0].str
}
case 1795:
//line simplegram.y:11553
{
yyVAL.list = list_make1(makeString(yyS[yypt-0].str))
}
case 1796:
//line simplegram.y:11555
{
yyVAL.list = check_func_name(lcons(makeString(yyS[yypt-1].str), yyS[yypt-0].list),
yyscanner)
}
case 1797:
//line simplegram.y:11566
{
yyVAL.node = makeIntConst(yyS[yypt-0].ival /*, @1*/ )
}
case 1798:
//line simplegram.y:11570
{
yyVAL.node = makeFloatConst(yyS[yypt-0].str /*, @1*/ )
}
case 1799:
//line simplegram.y:11574
{
yyVAL.node = makeStringConst(yyS[yypt-0].str /*, @1*/ )
}
case 1800:
//line simplegram.y:11578
{
yyVAL.node = makeBitStringConst(yyS[yypt-0].str /*, @1*/ )
}
case 1801:
//line simplegram.y:11582
{
/* This is a bit constant per SQL99:
* Without Feature F511, "BIT data type",
* a <general literal> shall not be a
* <bit string literal> or a <hex string literal>.
*/
yyVAL.node = makeBitStringConst(yyS[yypt-0].str /*, @1*/ )
}
case 1802:
//line simplegram.y:11590
{
/* generic type 'literal' syntax */
t := makeTypeNameFromNameList(yyS[yypt-1].list)
// t.location = @1;
yyVAL.node = makeStringConstCast(yyS[yypt-0].str, /*, @2*/ t)
}
case 1803:
//line simplegram.y:11596
{
/* generic syntax with a type modifier */
t := makeTypeNameFromNameList(yyS[yypt-4].list)
ListCell * lc
/*
* We must use func_arg_list in the production to avoid
* reduce/reduce conflicts, but we don't actually wish
* to allow NamedArgExpr in this context.
*/
foreach(lc, yyS[yypt-2].list)
{
NamedArgExpr * arg = lfirst(lc)
if IsA(arg, NamedArgExpr) {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("type modifier cannot have parameter name"),
parser_errposition(arg.location))
}
}
t.typmods = yyS[yypt-2].list
// t.location = @1;
yyVAL.node = makeStringConstCast(yyS[yypt-0].str, /*, @5*/ t)
}
case 1804:
//line simplegram.y:11620
{
yyVAL.node = makeStringConstCast(yyS[yypt-0].str, /*, @2*/ yyS[yypt-1].typnam)
}
case 1805:
//line simplegram.y:11625
{
t := yyS[yypt-2].typnam
t.typmods = yyS[yypt-0].list
yyVAL.node = makeStringConstCast(yyS[yypt-1].str, /*, @2*/ t)
}
case 1806:
//line simplegram.y:11631
{
t := yyS[yypt-5].typnam
if yyS[yypt-0].list != NIL {
if list_length(yyS[yypt-0].list) != 1 {
ereport(ERROR,
errcode(ERRCODE_SYNTAX_ERROR),
errmsg("interval precision specified twice"),
parser_errposition( /*@1*/ ))
}
t.typmods = lappend(yyS[yypt-0].list, makeIntConst(yyS[yypt-3].ival /*, @3*/ ))
} else {
t.typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
makeIntConst(yyS[yypt-3].ival /*, @3*/ ))
}
yyVAL.node = makeStringConstCast(yyS[yypt-1].str, /*, @5*/ t)
}
case 1807:
//line simplegram.y:11648
{
yyVAL.node = makeBoolAConst(TRUE /*, @1*/ )
}
case 1808:
//line simplegram.y:11652
{
yyVAL.node = makeBoolAConst(FALSE /*, @1*/ )
}
case 1809:
//line simplegram.y:11656
{
yyVAL.node = makeNullAConst( /*@1*/ )
}
case 1810:
//line simplegram.y:11661
{
yyVAL.ival = yyS[yypt-0].ival
}
case 1811:
//line simplegram.y:11662
{
yyVAL.str = yyS[yypt-0].str
}
case 1812:
//line simplegram.y:11663
{
yyVAL.str = yyS[yypt-0].str
}
case 1813:
//line simplegram.y:11665
{
yyVAL.ival = yyS[yypt-0].ival
}
case 1814:
//line simplegram.y:11666
{
yyVAL.ival = +yyS[yypt-0].ival
}
case 1815:
//line simplegram.y:11667
{
yyVAL.ival = -yyS[yypt-0].ival
}
case 1816:
//line simplegram.y:11683
{
yyVAL.str = yyS[yypt-0].str
}
case 1817:
//line simplegram.y:11684
{
yyVAL.str = pstrdup(yyS[yypt-0].keyword)
}
case 1818:
//line simplegram.y:11685
{
yyVAL.str = pstrdup(yyS[yypt-0].keyword)
}
case 1819:
//line simplegram.y:11690
{
yyVAL.str = yyS[yypt-0].str
}
case 1820:
//line simplegram.y:11691
{
yyVAL.str = pstrdup(yyS[yypt-0].keyword)
}
case 1821:
//line simplegram.y:11692
{
yyVAL.str = pstrdup(yyS[yypt-0].keyword)
}
case 1822:
//line simplegram.y:11698
{
yyVAL.str = yyS[yypt-0].str
}
case 1823:
//line simplegram.y:11699
{
yyVAL.str = pstrdup(yyS[yypt-0].keyword)
}
case 1824:
//line simplegram.y:11700
{
yyVAL.str = pstrdup(yyS[yypt-0].keyword)
}
case 1825:
//line simplegram.y:11701
{
yyVAL.str = pstrdup(yyS[yypt-0].keyword)
}
case 1826:
//line simplegram.y:11702
{
yyVAL.str = pstrdup(yyS[yypt-0].keyword)
}
case 1827:
yyVAL.keyword = yyS[yypt-0].keyword
case 1828:
yyVAL.keyword = yyS[yypt-0].keyword
case 1829:
yyVAL.keyword = yyS[yypt-0].keyword
case 1830:
yyVAL.keyword = yyS[yypt-0].keyword
case 1831:
yyVAL.keyword = yyS[yypt-0].keyword
case 1832:
yyVAL.keyword = yyS[yypt-0].keyword
case 1833:
yyVAL.keyword = yyS[yypt-0].keyword
case 1834:
yyVAL.keyword = yyS[yypt-0].keyword
case 1835:
yyVAL.keyword = yyS[yypt-0].keyword
case 1836:
yyVAL.keyword = yyS[yypt-0].keyword
case 1837:
yyVAL.keyword = yyS[yypt-0].keyword
case 1838:
yyVAL.keyword = yyS[yypt-0].keyword
case 1839:
yyVAL.keyword = yyS[yypt-0].keyword
case 1840:
yyVAL.keyword = yyS[yypt-0].keyword
case 1841:
yyVAL.keyword = yyS[yypt-0].keyword
case 1842:
yyVAL.keyword = yyS[yypt-0].keyword
case 1843:
yyVAL.keyword = yyS[yypt-0].keyword
case 1844:
yyVAL.keyword = yyS[yypt-0].keyword
case 1845:
yyVAL.keyword = yyS[yypt-0].keyword
case 1846:
yyVAL.keyword = yyS[yypt-0].keyword
case 1847:
yyVAL.keyword = yyS[yypt-0].keyword
case 1848:
yyVAL.keyword = yyS[yypt-0].keyword
case 1849:
yyVAL.keyword = yyS[yypt-0].keyword
case 1850:
yyVAL.keyword = yyS[yypt-0].keyword
case 1851:
yyVAL.keyword = yyS[yypt-0].keyword
case 1852:
yyVAL.keyword = yyS[yypt-0].keyword
case 1853:
yyVAL.keyword = yyS[yypt-0].keyword
case 1854:
yyVAL.keyword = yyS[yypt-0].keyword
case 1855:
yyVAL.keyword = yyS[yypt-0].keyword
case 1856:
yyVAL.keyword = yyS[yypt-0].keyword
case 1857:
yyVAL.keyword = yyS[yypt-0].keyword
case 1858:
yyVAL.keyword = yyS[yypt-0].keyword
case 1859:
yyVAL.keyword = yyS[yypt-0].keyword
case 1860:
yyVAL.keyword = yyS[yypt-0].keyword
case 1861:
yyVAL.keyword = yyS[yypt-0].keyword
case 1862:
yyVAL.keyword = yyS[yypt-0].keyword
case 1863:
yyVAL.keyword = yyS[yypt-0].keyword
case 1864:
yyVAL.keyword = yyS[yypt-0].keyword
case 1865:
yyVAL.keyword = yyS[yypt-0].keyword
case 1866:
yyVAL.keyword = yyS[yypt-0].keyword
case 1867:
yyVAL.keyword = yyS[yypt-0].keyword
case 1868:
yyVAL.keyword = yyS[yypt-0].keyword
case 1869:
yyVAL.keyword = yyS[yypt-0].keyword
case 1870:
yyVAL.keyword = yyS[yypt-0].keyword
case 1871:
yyVAL.keyword = yyS[yypt-0].keyword
case 1872:
yyVAL.keyword = yyS[yypt-0].keyword
case 1873:
yyVAL.keyword = yyS[yypt-0].keyword
case 1874:
yyVAL.keyword = yyS[yypt-0].keyword
case 1875:
yyVAL.keyword = yyS[yypt-0].keyword
case 1876:
yyVAL.keyword = yyS[yypt-0].keyword
case 1877:
yyVAL.keyword = yyS[yypt-0].keyword
case 1878:
yyVAL.keyword = yyS[yypt-0].keyword
case 1879:
yyVAL.keyword = yyS[yypt-0].keyword
case 1880:
yyVAL.keyword = yyS[yypt-0].keyword
case 1881:
yyVAL.keyword = yyS[yypt-0].keyword
case 1882:
yyVAL.keyword = yyS[yypt-0].keyword
case 1883:
yyVAL.keyword = yyS[yypt-0].keyword
case 1884:
yyVAL.keyword = yyS[yypt-0].keyword
case 1885:
yyVAL.keyword = yyS[yypt-0].keyword
case 1886:
yyVAL.keyword = yyS[yypt-0].keyword
case 1887:
yyVAL.keyword = yyS[yypt-0].keyword
case 1888:
yyVAL.keyword = yyS[yypt-0].keyword
case 1889:
yyVAL.keyword = yyS[yypt-0].keyword
case 1890:
yyVAL.keyword = yyS[yypt-0].keyword
case 1891:
yyVAL.keyword = yyS[yypt-0].keyword
case 1892:
yyVAL.keyword = yyS[yypt-0].keyword
case 1893:
yyVAL.keyword = yyS[yypt-0].keyword
case 1894:
yyVAL.keyword = yyS[yypt-0].keyword
case 1895:
yyVAL.keyword = yyS[yypt-0].keyword
case 1896:
yyVAL.keyword = yyS[yypt-0].keyword
case 1897:
yyVAL.keyword = yyS[yypt-0].keyword
case 1898:
yyVAL.keyword = yyS[yypt-0].keyword
case 1899:
yyVAL.keyword = yyS[yypt-0].keyword
case 1900:
yyVAL.keyword = yyS[yypt-0].keyword
case 1901:
yyVAL.keyword = yyS[yypt-0].keyword
case 1902:
yyVAL.keyword = yyS[yypt-0].keyword
case 1903:
yyVAL.keyword = yyS[yypt-0].keyword
case 1904:
yyVAL.keyword = yyS[yypt-0].keyword
case 1905:
yyVAL.keyword = yyS[yypt-0].keyword
case 1906:
yyVAL.keyword = yyS[yypt-0].keyword
case 1907:
yyVAL.keyword = yyS[yypt-0].keyword
case 1908:
yyVAL.keyword = yyS[yypt-0].keyword
case 1909:
yyVAL.keyword = yyS[yypt-0].keyword
case 1910:
yyVAL.keyword = yyS[yypt-0].keyword
case 1911:
yyVAL.keyword = yyS[yypt-0].keyword
case 1912:
yyVAL.keyword = yyS[yypt-0].keyword
case 1913:
yyVAL.keyword = yyS[yypt-0].keyword
case 1914:
yyVAL.keyword = yyS[yypt-0].keyword
case 1915:
yyVAL.keyword = yyS[yypt-0].keyword
case 1916:
yyVAL.keyword = yyS[yypt-0].keyword
case 1917:
yyVAL.keyword = yyS[yypt-0].keyword
case 1918:
yyVAL.keyword = yyS[yypt-0].keyword
case 1919:
yyVAL.keyword = yyS[yypt-0].keyword
case 1920:
yyVAL.keyword = yyS[yypt-0].keyword
case 1921:
yyVAL.keyword = yyS[yypt-0].keyword
case 1922:
yyVAL.keyword = yyS[yypt-0].keyword
case 1923:
yyVAL.keyword = yyS[yypt-0].keyword
case 1924:
yyVAL.keyword = yyS[yypt-0].keyword
case 1925:
yyVAL.keyword = yyS[yypt-0].keyword
case 1926:
yyVAL.keyword = yyS[yypt-0].keyword
case 1927:
yyVAL.keyword = yyS[yypt-0].keyword
case 1928:
yyVAL.keyword = yyS[yypt-0].keyword
case 1929:
yyVAL.keyword = yyS[yypt-0].keyword
case 1930:
yyVAL.keyword = yyS[yypt-0].keyword
case 1931:
yyVAL.keyword = yyS[yypt-0].keyword
case 1932:
yyVAL.keyword = yyS[yypt-0].keyword
case 1933:
yyVAL.keyword = yyS[yypt-0].keyword
case 1934:
yyVAL.keyword = yyS[yypt-0].keyword
case 1935:
yyVAL.keyword = yyS[yypt-0].keyword
case 1936:
yyVAL.keyword = yyS[yypt-0].keyword
case 1937:
yyVAL.keyword = yyS[yypt-0].keyword
case 1938:
yyVAL.keyword = yyS[yypt-0].keyword
case 1939:
yyVAL.keyword = yyS[yypt-0].keyword
case 1940:
yyVAL.keyword = yyS[yypt-0].keyword
case 1941:
yyVAL.keyword = yyS[yypt-0].keyword
case 1942:
yyVAL.keyword = yyS[yypt-0].keyword
case 1943:
yyVAL.keyword = yyS[yypt-0].keyword
case 1944:
yyVAL.keyword = yyS[yypt-0].keyword
case 1945:
yyVAL.keyword = yyS[yypt-0].keyword
case 1946:
yyVAL.keyword = yyS[yypt-0].keyword
case 1947:
yyVAL.keyword = yyS[yypt-0].keyword
case 1948:
yyVAL.keyword = yyS[yypt-0].keyword
case 1949:
yyVAL.keyword = yyS[yypt-0].keyword
case 1950:
yyVAL.keyword = yyS[yypt-0].keyword
case 1951:
yyVAL.keyword = yyS[yypt-0].keyword
case 1952:
yyVAL.keyword = yyS[yypt-0].keyword
case 1953:
yyVAL.keyword = yyS[yypt-0].keyword
case 1954:
yyVAL.keyword = yyS[yypt-0].keyword
case 1955:
yyVAL.keyword = yyS[yypt-0].keyword
case 1956:
yyVAL.keyword = yyS[yypt-0].keyword
case 1957:
yyVAL.keyword = yyS[yypt-0].keyword
case 1958:
yyVAL.keyword = yyS[yypt-0].keyword
case 1959:
yyVAL.keyword = yyS[yypt-0].keyword
case 1960:
yyVAL.keyword = yyS[yypt-0].keyword
case 1961:
yyVAL.keyword = yyS[yypt-0].keyword
case 1962:
yyVAL.keyword = yyS[yypt-0].keyword
case 1963:
yyVAL.keyword = yyS[yypt-0].keyword
case 1964:
yyVAL.keyword = yyS[yypt-0].keyword
case 1965:
yyVAL.keyword = yyS[yypt-0].keyword
case 1966:
yyVAL.keyword = yyS[yypt-0].keyword
case 1967:
yyVAL.keyword = yyS[yypt-0].keyword
case 1968:
yyVAL.keyword = yyS[yypt-0].keyword
case 1969:
yyVAL.keyword = yyS[yypt-0].keyword
case 1970:
yyVAL.keyword = yyS[yypt-0].keyword
case 1971:
yyVAL.keyword = yyS[yypt-0].keyword
case 1972:
yyVAL.keyword = yyS[yypt-0].keyword
case 1973:
yyVAL.keyword = yyS[yypt-0].keyword
case 1974:
yyVAL.keyword = yyS[yypt-0].keyword
case 1975:
yyVAL.keyword = yyS[yypt-0].keyword
case 1976:
yyVAL.keyword = yyS[yypt-0].keyword
case 1977:
yyVAL.keyword = yyS[yypt-0].keyword
case 1978:
yyVAL.keyword = yyS[yypt-0].keyword
case 1979:
yyVAL.keyword = yyS[yypt-0].keyword
case 1980:
yyVAL.keyword = yyS[yypt-0].keyword
case 1981:
yyVAL.keyword = yyS[yypt-0].keyword
case 1982:
yyVAL.keyword = yyS[yypt-0].keyword
case 1983:
yyVAL.keyword = yyS[yypt-0].keyword
case 1984:
yyVAL.keyword = yyS[yypt-0].keyword
case 1985:
yyVAL.keyword = yyS[yypt-0].keyword
case 1986:
yyVAL.keyword = yyS[yypt-0].keyword
case 1987:
yyVAL.keyword = yyS[yypt-0].keyword
case 1988:
yyVAL.keyword = yyS[yypt-0].keyword
case 1989:
yyVAL.keyword = yyS[yypt-0].keyword
case 1990:
yyVAL.keyword = yyS[yypt-0].keyword
case 1991:
yyVAL.keyword = yyS[yypt-0].keyword
case 1992:
yyVAL.keyword = yyS[yypt-0].keyword
case 1993:
yyVAL.keyword = yyS[yypt-0].keyword
case 1994:
yyVAL.keyword = yyS[yypt-0].keyword
case 1995:
yyVAL.keyword = yyS[yypt-0].keyword
case 1996:
yyVAL.keyword = yyS[yypt-0].keyword
case 1997:
yyVAL.keyword = yyS[yypt-0].keyword
case 1998:
yyVAL.keyword = yyS[yypt-0].keyword
case 1999:
yyVAL.keyword = yyS[yypt-0].keyword
case 2000:
yyVAL.keyword = yyS[yypt-0].keyword
case 2001:
yyVAL.keyword = yyS[yypt-0].keyword
case 2002:
yyVAL.keyword = yyS[yypt-0].keyword
case 2003:
yyVAL.keyword = yyS[yypt-0].keyword
case 2004:
yyVAL.keyword = yyS[yypt-0].keyword
case 2005:
yyVAL.keyword = yyS[yypt-0].keyword
case 2006:
yyVAL.keyword = yyS[yypt-0].keyword
case 2007:
yyVAL.keyword = yyS[yypt-0].keyword
case 2008:
yyVAL.keyword = yyS[yypt-0].keyword
case 2009:
yyVAL.keyword = yyS[yypt-0].keyword
case 2010:
yyVAL.keyword = yyS[yypt-0].keyword
case 2011:
yyVAL.keyword = yyS[yypt-0].keyword
case 2012:
yyVAL.keyword = yyS[yypt-0].keyword
case 2013:
yyVAL.keyword = yyS[yypt-0].keyword
case 2014:
yyVAL.keyword = yyS[yypt-0].keyword
case 2015:
yyVAL.keyword = yyS[yypt-0].keyword
case 2016:
yyVAL.keyword = yyS[yypt-0].keyword
case 2017:
yyVAL.keyword = yyS[yypt-0].keyword
case 2018:
yyVAL.keyword = yyS[yypt-0].keyword
case 2019:
yyVAL.keyword = yyS[yypt-0].keyword
case 2020:
yyVAL.keyword = yyS[yypt-0].keyword
case 2021:
yyVAL.keyword = yyS[yypt-0].keyword
case 2022:
yyVAL.keyword = yyS[yypt-0].keyword
case 2023:
yyVAL.keyword = yyS[yypt-0].keyword
case 2024:
yyVAL.keyword = yyS[yypt-0].keyword
case 2025:
yyVAL.keyword = yyS[yypt-0].keyword
case 2026:
yyVAL.keyword = yyS[yypt-0].keyword
case 2027:
yyVAL.keyword = yyS[yypt-0].keyword
case 2028:
yyVAL.keyword = yyS[yypt-0].keyword
case 2029:
yyVAL.keyword = yyS[yypt-0].keyword
case 2030:
yyVAL.keyword = yyS[yypt-0].keyword
case 2031:
yyVAL.keyword = yyS[yypt-0].keyword
case 2032:
yyVAL.keyword = yyS[yypt-0].keyword
case 2033:
yyVAL.keyword = yyS[yypt-0].keyword
case 2034:
yyVAL.keyword = yyS[yypt-0].keyword
case 2035:
yyVAL.keyword = yyS[yypt-0].keyword
case 2036:
yyVAL.keyword = yyS[yypt-0].keyword
case 2037:
yyVAL.keyword = yyS[yypt-0].keyword
case 2038:
yyVAL.keyword = yyS[yypt-0].keyword
case 2039:
yyVAL.keyword = yyS[yypt-0].keyword
case 2040:
yyVAL.keyword = yyS[yypt-0].keyword
case 2041:
yyVAL.keyword = yyS[yypt-0].keyword
case 2042:
yyVAL.keyword = yyS[yypt-0].keyword
case 2043:
yyVAL.keyword = yyS[yypt-0].keyword
case 2044:
yyVAL.keyword = yyS[yypt-0].keyword
case 2045:
yyVAL.keyword = yyS[yypt-0].keyword
case 2046:
yyVAL.keyword = yyS[yypt-0].keyword
case 2047:
yyVAL.keyword = yyS[yypt-0].keyword
case 2048:
yyVAL.keyword = yyS[yypt-0].keyword
case 2049:
yyVAL.keyword = yyS[yypt-0].keyword
case 2050:
yyVAL.keyword = yyS[yypt-0].keyword
case 2051:
yyVAL.keyword = yyS[yypt-0].keyword
case 2052:
yyVAL.keyword = yyS[yypt-0].keyword
case 2053:
yyVAL.keyword = yyS[yypt-0].keyword
case 2054:
yyVAL.keyword = yyS[yypt-0].keyword
case 2055:
yyVAL.keyword = yyS[yypt-0].keyword
case 2056:
yyVAL.keyword = yyS[yypt-0].keyword
case 2057:
yyVAL.keyword = yyS[yypt-0].keyword
case 2058:
yyVAL.keyword = yyS[yypt-0].keyword
case 2059:
yyVAL.keyword = yyS[yypt-0].keyword
case 2060:
yyVAL.keyword = yyS[yypt-0].keyword
case 2061:
yyVAL.keyword = yyS[yypt-0].keyword
case 2062:
yyVAL.keyword = yyS[yypt-0].keyword
case 2063:
yyVAL.keyword = yyS[yypt-0].keyword
case 2064:
yyVAL.keyword = yyS[yypt-0].keyword
case 2065:
yyVAL.keyword = yyS[yypt-0].keyword
case 2066:
yyVAL.keyword = yyS[yypt-0].keyword
case 2067:
yyVAL.keyword = yyS[yypt-0].keyword
case 2068:
yyVAL.keyword = yyS[yypt-0].keyword
case 2069:
yyVAL.keyword = yyS[yypt-0].keyword
case 2070:
yyVAL.keyword = yyS[yypt-0].keyword
case 2071:
yyVAL.keyword = yyS[yypt-0].keyword
case 2072:
yyVAL.keyword = yyS[yypt-0].keyword
case 2073:
yyVAL.keyword = yyS[yypt-0].keyword
case 2074:
yyVAL.keyword = yyS[yypt-0].keyword
case 2075:
yyVAL.keyword = yyS[yypt-0].keyword
case 2076:
yyVAL.keyword = yyS[yypt-0].keyword
case 2077:
yyVAL.keyword = yyS[yypt-0].keyword
case 2078:
yyVAL.keyword = yyS[yypt-0].keyword
case 2079:
yyVAL.keyword = yyS[yypt-0].keyword
case 2080:
yyVAL.keyword = yyS[yypt-0].keyword
case 2081:
yyVAL.keyword = yyS[yypt-0].keyword
case 2082:
yyVAL.keyword = yyS[yypt-0].keyword
case 2083:
yyVAL.keyword = yyS[yypt-0].keyword
case 2084:
yyVAL.keyword = yyS[yypt-0].keyword
case 2085:
yyVAL.keyword = yyS[yypt-0].keyword
case 2086:
yyVAL.keyword = yyS[yypt-0].keyword
case 2087:
yyVAL.keyword = yyS[yypt-0].keyword
case 2088:
yyVAL.keyword = yyS[yypt-0].keyword
case 2089:
yyVAL.keyword = yyS[yypt-0].keyword
case 2090:
yyVAL.keyword = yyS[yypt-0].keyword
case 2091:
yyVAL.keyword = yyS[yypt-0].keyword
case 2092:
yyVAL.keyword = yyS[yypt-0].keyword
case 2093:
yyVAL.keyword = yyS[yypt-0].keyword
case 2094:
yyVAL.keyword = yyS[yypt-0].keyword
case 2095:
yyVAL.keyword = yyS[yypt-0].keyword
case 2096:
yyVAL.keyword = yyS[yypt-0].keyword
case 2097:
yyVAL.keyword = yyS[yypt-0].keyword
case 2098:
yyVAL.keyword = yyS[yypt-0].keyword
case 2099:
yyVAL.keyword = yyS[yypt-0].keyword
case 2100:
yyVAL.keyword = yyS[yypt-0].keyword
case 2101:
yyVAL.keyword = yyS[yypt-0].keyword
case 2102:
yyVAL.keyword = yyS[yypt-0].keyword
case 2103:
yyVAL.keyword = yyS[yypt-0].keyword
case 2104:
yyVAL.keyword = yyS[yypt-0].keyword
case 2105:
yyVAL.keyword = yyS[yypt-0].keyword
case 2106:
yyVAL.keyword = yyS[yypt-0].keyword
case 2107:
yyVAL.keyword = yyS[yypt-0].keyword
case 2108:
yyVAL.keyword = yyS[yypt-0].keyword
case 2109:
yyVAL.keyword = yyS[yypt-0].keyword
case 2110:
yyVAL.keyword = yyS[yypt-0].keyword
case 2111:
yyVAL.keyword = yyS[yypt-0].keyword
case 2112:
yyVAL.keyword = yyS[yypt-0].keyword
case 2113:
yyVAL.keyword = yyS[yypt-0].keyword
case 2114:
yyVAL.keyword = yyS[yypt-0].keyword
case 2115:
yyVAL.keyword = yyS[yypt-0].keyword
case 2116:
yyVAL.keyword = yyS[yypt-0].keyword
case 2117:
yyVAL.keyword = yyS[yypt-0].keyword
case 2118:
yyVAL.keyword = yyS[yypt-0].keyword
case 2119:
yyVAL.keyword = yyS[yypt-0].keyword
case 2120:
yyVAL.keyword = yyS[yypt-0].keyword
case 2121:
yyVAL.keyword = yyS[yypt-0].keyword
case 2122:
yyVAL.keyword = yyS[yypt-0].keyword
case 2123:
yyVAL.keyword = yyS[yypt-0].keyword
case 2124:
yyVAL.keyword = yyS[yypt-0].keyword
case 2125:
yyVAL.keyword = yyS[yypt-0].keyword
case 2126:
yyVAL.keyword = yyS[yypt-0].keyword
case 2127:
yyVAL.keyword = yyS[yypt-0].keyword
case 2128:
yyVAL.keyword = yyS[yypt-0].keyword
case 2129:
yyVAL.keyword = yyS[yypt-0].keyword
case 2130:
yyVAL.keyword = yyS[yypt-0].keyword
case 2131:
yyVAL.keyword = yyS[yypt-0].keyword
case 2132:
yyVAL.keyword = yyS[yypt-0].keyword
case 2133:
yyVAL.keyword = yyS[yypt-0].keyword
case 2134:
yyVAL.keyword = yyS[yypt-0].keyword
case 2135:
yyVAL.keyword = yyS[yypt-0].keyword
case 2136:
yyVAL.keyword = yyS[yypt-0].keyword
case 2137:
yyVAL.keyword = yyS[yypt-0].keyword
case 2138:
yyVAL.keyword = yyS[yypt-0].keyword
case 2139:
yyVAL.keyword = yyS[yypt-0].keyword
case 2140:
yyVAL.keyword = yyS[yypt-0].keyword
case 2141:
yyVAL.keyword = yyS[yypt-0].keyword
case 2142:
yyVAL.keyword = yyS[yypt-0].keyword
case 2143:
yyVAL.keyword = yyS[yypt-0].keyword
case 2144:
yyVAL.keyword = yyS[yypt-0].keyword
case 2145:
yyVAL.keyword = yyS[yypt-0].keyword
case 2146:
yyVAL.keyword = yyS[yypt-0].keyword
case 2147:
yyVAL.keyword = yyS[yypt-0].keyword
case 2148:
yyVAL.keyword = yyS[yypt-0].keyword
case 2149:
yyVAL.keyword = yyS[yypt-0].keyword
case 2150:
yyVAL.keyword = yyS[yypt-0].keyword
case 2151:
yyVAL.keyword = yyS[yypt-0].keyword
case 2152:
yyVAL.keyword = yyS[yypt-0].keyword
case 2153:
yyVAL.keyword = yyS[yypt-0].keyword
case 2154:
yyVAL.keyword = yyS[yypt-0].keyword
case 2155:
yyVAL.keyword = yyS[yypt-0].keyword
case 2156:
yyVAL.keyword = yyS[yypt-0].keyword
case 2157:
yyVAL.keyword = yyS[yypt-0].keyword
case 2158:
yyVAL.keyword = yyS[yypt-0].keyword
case 2159:
yyVAL.keyword = yyS[yypt-0].keyword
case 2160:
yyVAL.keyword = yyS[yypt-0].keyword
case 2161:
yyVAL.keyword = yyS[yypt-0].keyword
case 2162:
yyVAL.keyword = yyS[yypt-0].keyword
case 2163:
yyVAL.keyword = yyS[yypt-0].keyword
case 2164:
yyVAL.keyword = yyS[yypt-0].keyword
case 2165:
yyVAL.keyword = yyS[yypt-0].keyword
case 2166:
yyVAL.keyword = yyS[yypt-0].keyword
case 2167:
yyVAL.keyword = yyS[yypt-0].keyword
case 2168:
yyVAL.keyword = yyS[yypt-0].keyword
case 2169:
yyVAL.keyword = yyS[yypt-0].keyword
case 2170:
yyVAL.keyword = yyS[yypt-0].keyword
case 2171:
yyVAL.keyword = yyS[yypt-0].keyword
case 2172:
yyVAL.keyword = yyS[yypt-0].keyword
case 2173:
yyVAL.keyword = yyS[yypt-0].keyword
case 2174:
yyVAL.keyword = yyS[yypt-0].keyword
case 2175:
yyVAL.keyword = yyS[yypt-0].keyword
case 2176:
yyVAL.keyword = yyS[yypt-0].keyword
case 2177:
yyVAL.keyword = yyS[yypt-0].keyword
case 2178:
yyVAL.keyword = yyS[yypt-0].keyword
case 2179:
yyVAL.keyword = yyS[yypt-0].keyword
case 2180:
yyVAL.keyword = yyS[yypt-0].keyword
case 2181:
yyVAL.keyword = yyS[yypt-0].keyword
case 2182:
yyVAL.keyword = yyS[yypt-0].keyword
case 2183:
yyVAL.keyword = yyS[yypt-0].keyword
case 2184:
yyVAL.keyword = yyS[yypt-0].keyword
case 2185:
yyVAL.keyword = yyS[yypt-0].keyword
case 2186:
yyVAL.keyword = yyS[yypt-0].keyword
case 2187:
yyVAL.keyword = yyS[yypt-0].keyword
case 2188:
yyVAL.keyword = yyS[yypt-0].keyword
case 2189:
yyVAL.keyword = yyS[yypt-0].keyword
case 2190:
yyVAL.keyword = yyS[yypt-0].keyword
case 2191:
yyVAL.keyword = yyS[yypt-0].keyword
case 2192:
yyVAL.keyword = yyS[yypt-0].keyword
case 2193:
yyVAL.keyword = yyS[yypt-0].keyword
case 2194:
yyVAL.keyword = yyS[yypt-0].keyword
case 2195:
yyVAL.keyword = yyS[yypt-0].keyword
case 2196:
yyVAL.keyword = yyS[yypt-0].keyword
case 2197:
yyVAL.keyword = yyS[yypt-0].keyword
case 2198:
yyVAL.keyword = yyS[yypt-0].keyword
case 2199:
yyVAL.keyword = yyS[yypt-0].keyword
case 2200:
yyVAL.keyword = yyS[yypt-0].keyword
case 2201:
yyVAL.keyword = yyS[yypt-0].keyword
case 2202:
yyVAL.keyword = yyS[yypt-0].keyword
case 2203:
yyVAL.keyword = yyS[yypt-0].keyword
case 2204:
yyVAL.keyword = yyS[yypt-0].keyword
case 2205:
yyVAL.keyword = yyS[yypt-0].keyword
case 2206:
yyVAL.keyword = yyS[yypt-0].keyword
case 2207:
yyVAL.keyword = yyS[yypt-0].keyword
case 2208:
yyVAL.keyword = yyS[yypt-0].keyword
case 2209:
yyVAL.keyword = yyS[yypt-0].keyword
case 2210:
yyVAL.keyword = yyS[yypt-0].keyword
case 2211:
yyVAL.keyword = yyS[yypt-0].keyword
case 2212:
yyVAL.keyword = yyS[yypt-0].keyword
case 2213:
yyVAL.keyword = yyS[yypt-0].keyword
case 2214:
yyVAL.keyword = yyS[yypt-0].keyword
case 2215:
yyVAL.keyword = yyS[yypt-0].keyword
case 2216:
yyVAL.keyword = yyS[yypt-0].keyword
case 2217:
yyVAL.keyword = yyS[yypt-0].keyword
case 2218:
yyVAL.keyword = yyS[yypt-0].keyword
case 2219:
yyVAL.keyword = yyS[yypt-0].keyword
}
goto yystack /* stack new state and value */
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment