diff --git a/src/backend/access/transam/varsup.c b/src/backend/access/transam/varsup.c index 2c49c05c12..b1e723361c 100644 --- a/src/backend/access/transam/varsup.c +++ b/src/backend/access/transam/varsup.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.17 1998/09/01 04:27:18 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/varsup.c,v 1.18 1998/12/18 09:10:17 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -311,6 +311,42 @@ GetNewTransactionId(TransactionId *xid) SpinRelease(OidGenLockId); } +/* + * Like GetNewTransactionId reads nextXid but don't fetch it. + */ +void +ReadNewTransactionId(TransactionId *xid) +{ + + /* ---------------- + * during bootstrap initialization, we return the special + * bootstrap transaction id. + * ---------------- + */ + if (AMI_OVERRIDE) + { + TransactionIdStore(AmiTransactionId, xid); + return; + } + + SpinAcquire(OidGenLockId); /* not good for concurrency... */ + + if (ShmemVariableCache->xid_count == 0) + { + TransactionId nextid; + + VariableRelationGetNextXid(&nextid); + TransactionIdStore(nextid, &(ShmemVariableCache->nextXid)); + ShmemVariableCache->xid_count = VAR_XID_PREFETCH; + TransactionIdAdd(&nextid, VAR_XID_PREFETCH); + VariableRelationPutNextXid(nextid); + } + + TransactionIdStore(ShmemVariableCache->nextXid, xid); + + SpinRelease(OidGenLockId); +} + /* ---------------------------------------------------------------- * object id generation support * ---------------------------------------------------------------- diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c index 6a9bb9ab63..e6adf442fe 100644 --- a/src/backend/access/transam/xact.c +++ b/src/backend/access/transam/xact.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.27 1998/12/16 11:53:44 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/access/transam/xact.c,v 1.28 1998/12/18 09:10:18 vadim Exp $ * * NOTES * Transaction aborts can now occur two ways: @@ -194,7 +194,8 @@ TransactionStateData CurrentTransactionStateData = { TransactionState CurrentTransactionState = &CurrentTransactionStateData; -int XactIsoLevel = XACT_SERIALIZED; +int DefaultXactIsoLevel = XACT_SERIALIZABLE; +int XactIsoLevel; /* ---------------- * info returned when the system is disabled @@ -798,6 +799,7 @@ StartTransaction() TransactionIdFlushCache(); FreeXactSnapshot(); + XactIsoLevel = DefaultXactIsoLevel; /* ---------------- * Check the current transaction state. If the transaction system diff --git a/src/backend/commands/command.c b/src/backend/commands/command.c index f1fc29f6f6..abbe30f906 100644 --- a/src/backend/commands/command.c +++ b/src/backend/commands/command.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.34 1998/12/15 12:45:52 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/commands/Attic/command.c,v 1.35 1998/12/18 09:10:18 vadim Exp $ * * NOTES * The PortalExecutorHeapMemory crap needs to be eliminated @@ -39,6 +39,7 @@ #include "utils/mcxt.h" #include "utils/portal.h" #include "utils/syscache.h" +#include "miscadmin.h" /* ---------------- * PortalExecutorHeapMemory stuff @@ -492,3 +493,25 @@ PerformAddAttribute(char *relationName, pfree(reltup); heap_close(rel); } + +void +LockTableCommand(LockStmt *lockstmt) +{ + Relation rel; + int aclresult; + + rel = heap_openr(lockstmt->relname); + if (rel == NULL) + elog(ERROR, "LOCK TABLE: relation %s can't be openned", lockstmt->relname); + + if (lockstmt->mode == AccessShareLock) + aclresult = pg_aclcheck(lockstmt->relname, GetPgUserName(), ACL_RD); + else + aclresult = pg_aclcheck(lockstmt->relname, GetPgUserName(), ACL_WR); + + if (aclresult != ACLCHECK_OK) + elog(ERROR, "LOCK TABLE: permission denied"); + + LockRelation(rel, lockstmt->mode); + +} diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c index 60d0056930..41bd59ca0d 100644 --- a/src/backend/commands/trigger.c +++ b/src/backend/commands/trigger.c @@ -818,8 +818,8 @@ GetTupleForTrigger(EState *estate, ItemPointer tid, bool before) case HeapTupleUpdated: ReleaseBuffer(buffer); - if (XactIsoLevel == XACT_SERIALIZED) - elog(ERROR, "Serialize access failed due to concurrent update"); + if (XactIsoLevel == XACT_SERIALIZABLE) + elog(ERROR, "Can't serialize access due to concurrent update"); else elog(ERROR, "Isolation level %u is not supported", XactIsoLevel); return(NULL); diff --git a/src/backend/commands/variable.c b/src/backend/commands/variable.c index 47400beb0e..06b1698633 100644 --- a/src/backend/commands/variable.c +++ b/src/backend/commands/variable.c @@ -2,7 +2,7 @@ * Routines for handling of 'SET var TO', * 'SHOW var' and 'RESET var' statements. * - * $Id: variable.c,v 1.17 1998/10/26 00:59:22 tgl Exp $ + * $Id: variable.c,v 1.18 1998/12/18 09:10:20 vadim Exp $ * */ @@ -15,6 +15,7 @@ #include "commands/variable.h" #include "utils/builtins.h" #include "optimizer/internal.h" +#include "access/xact.h" #ifdef MULTIBYTE #include "mb/pg_wchar.h" #endif @@ -44,6 +45,9 @@ static bool parse_geqo(const char *); static bool show_ksqo(void); static bool reset_ksqo(void); static bool parse_ksqo(const char *); +static bool show_XactIsoLevel(void); +static bool reset_XactIsoLevel(void); +static bool parse_XactIsoLevel(const char *); #ifdef QUERY_LIMIT static bool show_query_limit(void); static bool reset_query_limit(void); @@ -669,6 +673,9 @@ struct VariableParsers { "ksqo", parse_ksqo, show_ksqo, reset_ksqo }, + { + "XactIsoLevel", parse_XactIsoLevel, show_XactIsoLevel, reset_XactIsoLevel + }, #ifdef QUERY_LIMIT { "query_limit", parse_query_limit, show_query_limit, reset_query_limit @@ -773,3 +780,58 @@ reset_ksqo() _use_keyset_query_optimizer = false; return TRUE; } + +/* SET TRANSACTION */ + +static bool +parse_XactIsoLevel(const char *value) +{ + + if (value == NULL) + { + reset_XactIsoLevel(); + return TRUE; + } + + if (SerializableSnapshot != NULL) + { + elog(ERROR, "SET TRANSACTION ISOLATION LEVEL must be called before any query"); + return TRUE; + } + + + if (strcasecmp(value, "SERIALIZABLE") == 0) + XactIsoLevel = XACT_SERIALIZABLE; + else if (strcasecmp(value, "COMMITTED") == 0) + XactIsoLevel = XACT_READ_COMMITTED; + else + elog(ERROR, "Bad TRANSACTION ISOLATION LEVEL (%s)", value); + + return TRUE; +} + +static bool +show_XactIsoLevel() +{ + + if (XactIsoLevel == XACT_SERIALIZABLE) + elog(NOTICE, "TRANSACTION ISOLATION LEVEL is SERIALIZABLE"); + else + elog(NOTICE, "TRANSACTION ISOLATION LEVEL is READ COMMITTED"); + return TRUE; +} + +static bool +reset_XactIsoLevel() +{ + + if (SerializableSnapshot != NULL) + { + elog(ERROR, "SET TRANSACTION ISOLATION LEVEL must be called before any query"); + return TRUE; + } + + XactIsoLevel = DefaultXactIsoLevel; + + return TRUE; +} diff --git a/src/backend/executor/execMain.c b/src/backend/executor/execMain.c index 6b0a9bd8f7..7a7aa85485 100644 --- a/src/backend/executor/execMain.c +++ b/src/backend/executor/execMain.c @@ -26,7 +26,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.61 1998/12/16 11:53:45 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/executor/execMain.c,v 1.62 1998/12/18 09:10:21 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -1037,8 +1037,8 @@ ExecDelete(TupleTableSlot *slot, break; case HeapTupleUpdated: - if (XactIsoLevel == XACT_SERIALIZED) - elog(ERROR, "Serialize access failed due to concurrent update"); + if (XactIsoLevel == XACT_SERIALIZABLE) + elog(ERROR, "Can't serialize access due to concurrent update"); else elog(ERROR, "Isolation level %u is not supported", XactIsoLevel); return; @@ -1167,8 +1167,8 @@ ExecReplace(TupleTableSlot *slot, break; case HeapTupleUpdated: - if (XactIsoLevel == XACT_SERIALIZED) - elog(ERROR, "Serialize access failed due to concurrent update"); + if (XactIsoLevel == XACT_SERIALIZABLE) + elog(ERROR, "Can't serialize access due to concurrent update"); else elog(ERROR, "Isolation level %u is not supported", XactIsoLevel); return; diff --git a/src/backend/parser/gram.c b/src/backend/parser/gram.c index 0eb9d3eb13..452d454f2b 100644 --- a/src/backend/parser/gram.c +++ b/src/backend/parser/gram.c @@ -70,157 +70,159 @@ #define INTERVAL 320 #define INTO 321 #define IS 322 -#define JOIN 323 -#define KEY 324 -#define LANGUAGE 325 -#define LEADING 326 -#define LEFT 327 -#define LIKE 328 -#define LOCAL 329 -#define MATCH 330 -#define MINUTE_P 331 -#define MONTH_P 332 -#define NAMES 333 -#define NATIONAL 334 -#define NATURAL 335 -#define NCHAR 336 -#define NEXT 337 -#define NO 338 -#define NOT 339 -#define NULLIF 340 -#define NULL_P 341 -#define NUMERIC 342 -#define OF 343 -#define ON 344 -#define ONLY 345 -#define OPTION 346 -#define OR 347 -#define ORDER 348 -#define OUTER_P 349 -#define PARTIAL 350 -#define POSITION 351 -#define PRECISION 352 -#define PRIMARY 353 -#define PRIOR 354 -#define PRIVILEGES 355 -#define PROCEDURE 356 -#define PUBLIC 357 -#define READ 358 -#define REFERENCES 359 -#define RELATIVE 360 -#define REVOKE 361 -#define RIGHT 362 -#define ROLLBACK 363 -#define SCROLL 364 -#define SECOND_P 365 -#define SELECT 366 -#define SET 367 -#define SUBSTRING 368 -#define TABLE 369 -#define THEN 370 -#define TIME 371 -#define TIMESTAMP 372 -#define TIMEZONE_HOUR 373 -#define TIMEZONE_MINUTE 374 -#define TO 375 -#define TRAILING 376 -#define TRANSACTION 377 -#define TRIM 378 -#define TRUE_P 379 -#define UNION 380 -#define UNIQUE 381 -#define UPDATE 382 -#define USER 383 -#define USING 384 -#define VALUES 385 -#define VARCHAR 386 -#define VARYING 387 -#define VIEW 388 -#define WHEN 389 -#define WHERE 390 -#define WITH 391 -#define WORK 392 -#define YEAR_P 393 -#define ZONE 394 -#define TRIGGER 395 -#define TYPE_P 396 -#define ABORT_TRANS 397 -#define AFTER 398 -#define AGGREGATE 399 -#define ANALYZE 400 -#define BACKWARD 401 -#define BEFORE 402 -#define BINARY 403 -#define CACHE 404 -#define CLUSTER 405 -#define COPY 406 -#define CREATEDB 407 -#define CREATEUSER 408 -#define CYCLE 409 -#define DATABASE 410 -#define DELIMITERS 411 -#define DO 412 -#define EACH 413 -#define ENCODING 414 -#define EXPLAIN 415 -#define EXTEND 416 -#define FORWARD 417 -#define FUNCTION 418 -#define HANDLER 419 -#define INCREMENT 420 -#define INDEX 421 -#define INHERITS 422 -#define INSTEAD 423 -#define ISNULL 424 -#define LANCOMPILER 425 -#define LISTEN 426 -#define LOAD 427 -#define LOCATION 428 -#define LOCK_P 429 -#define MAXVALUE 430 -#define MINVALUE 431 -#define MOVE 432 -#define NEW 433 -#define NOCREATEDB 434 -#define NOCREATEUSER 435 -#define NONE 436 -#define NOTHING 437 -#define NOTIFY 438 -#define NOTNULL 439 -#define OIDS 440 -#define OPERATOR 441 -#define PASSWORD 442 -#define PROCEDURAL 443 -#define RECIPE 444 -#define RENAME 445 -#define RESET 446 -#define RETURNS 447 -#define ROW 448 -#define RULE 449 -#define SEQUENCE 450 -#define SERIAL 451 -#define SETOF 452 -#define SHOW 453 -#define START 454 -#define STATEMENT 455 -#define STDIN 456 -#define STDOUT 457 -#define TRUSTED 458 -#define UNLISTEN 459 -#define UNTIL 460 -#define VACUUM 461 -#define VALID 462 -#define VERBOSE 463 -#define VERSION 464 -#define IDENT 465 -#define SCONST 466 -#define Op 467 -#define ICONST 468 -#define PARAM 469 -#define FCONST 470 -#define OP 471 -#define UMINUS 472 -#define TYPECAST 473 +#define ISOLATION 323 +#define JOIN 324 +#define KEY 325 +#define LANGUAGE 326 +#define LEADING 327 +#define LEFT 328 +#define LEVEL 329 +#define LIKE 330 +#define LOCAL 331 +#define MATCH 332 +#define MINUTE_P 333 +#define MONTH_P 334 +#define NAMES 335 +#define NATIONAL 336 +#define NATURAL 337 +#define NCHAR 338 +#define NEXT 339 +#define NO 340 +#define NOT 341 +#define NULLIF 342 +#define NULL_P 343 +#define NUMERIC 344 +#define OF 345 +#define ON 346 +#define ONLY 347 +#define OPTION 348 +#define OR 349 +#define ORDER 350 +#define OUTER_P 351 +#define PARTIAL 352 +#define POSITION 353 +#define PRECISION 354 +#define PRIMARY 355 +#define PRIOR 356 +#define PRIVILEGES 357 +#define PROCEDURE 358 +#define PUBLIC 359 +#define READ 360 +#define REFERENCES 361 +#define RELATIVE 362 +#define REVOKE 363 +#define RIGHT 364 +#define ROLLBACK 365 +#define SCROLL 366 +#define SECOND_P 367 +#define SELECT 368 +#define SET 369 +#define SUBSTRING 370 +#define TABLE 371 +#define THEN 372 +#define TIME 373 +#define TIMESTAMP 374 +#define TIMEZONE_HOUR 375 +#define TIMEZONE_MINUTE 376 +#define TO 377 +#define TRAILING 378 +#define TRANSACTION 379 +#define TRIM 380 +#define TRUE_P 381 +#define UNION 382 +#define UNIQUE 383 +#define UPDATE 384 +#define USER 385 +#define USING 386 +#define VALUES 387 +#define VARCHAR 388 +#define VARYING 389 +#define VIEW 390 +#define WHEN 391 +#define WHERE 392 +#define WITH 393 +#define WORK 394 +#define YEAR_P 395 +#define ZONE 396 +#define TRIGGER 397 +#define TYPE_P 398 +#define ABORT_TRANS 399 +#define AFTER 400 +#define AGGREGATE 401 +#define ANALYZE 402 +#define BACKWARD 403 +#define BEFORE 404 +#define BINARY 405 +#define CACHE 406 +#define CLUSTER 407 +#define COPY 408 +#define CREATEDB 409 +#define CREATEUSER 410 +#define CYCLE 411 +#define DATABASE 412 +#define DELIMITERS 413 +#define DO 414 +#define EACH 415 +#define ENCODING 416 +#define EXPLAIN 417 +#define EXTEND 418 +#define FORWARD 419 +#define FUNCTION 420 +#define HANDLER 421 +#define INCREMENT 422 +#define INDEX 423 +#define INHERITS 424 +#define INSTEAD 425 +#define ISNULL 426 +#define LANCOMPILER 427 +#define LISTEN 428 +#define LOAD 429 +#define LOCATION 430 +#define LOCK_P 431 +#define MAXVALUE 432 +#define MINVALUE 433 +#define MOVE 434 +#define NEW 435 +#define NOCREATEDB 436 +#define NOCREATEUSER 437 +#define NONE 438 +#define NOTHING 439 +#define NOTIFY 440 +#define NOTNULL 441 +#define OIDS 442 +#define OPERATOR 443 +#define PASSWORD 444 +#define PROCEDURAL 445 +#define RECIPE 446 +#define RENAME 447 +#define RESET 448 +#define RETURNS 449 +#define ROW 450 +#define RULE 451 +#define SEQUENCE 452 +#define SERIAL 453 +#define SETOF 454 +#define SHOW 455 +#define START 456 +#define STATEMENT 457 +#define STDIN 458 +#define STDOUT 459 +#define TRUSTED 460 +#define UNLISTEN 461 +#define UNTIL 462 +#define VACUUM 463 +#define VALID 464 +#define VERBOSE 465 +#define VERSION 466 +#define IDENT 467 +#define SCONST 468 +#define Op 469 +#define ICONST 470 +#define PARAM 471 +#define FCONST 472 +#define OP 473 +#define UMINUS 474 +#define TYPECAST 475 #line 1 "gram.y" /* -*-text-*- */ @@ -235,7 +237,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.52 1998/12/15 12:46:08 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/Attic/gram.c,v 2.53 1998/12/18 09:10:23 vadim Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -270,6 +272,7 @@ #include "catalog/catname.h" #include "utils/elog.h" #include "access/xact.h" +#include "storage/lmgr.h" #ifdef MULTIBYTE #include "mb/pg_wchar.h" @@ -308,7 +311,7 @@ Oid param_type(int t); /* used in parse_expr.c */ #undef yywrap #endif /* yywrap */ -#line 88 "gram.y" +#line 89 "gram.y" typedef union { double dval; @@ -350,26 +353,26 @@ typedef union -#define YYFINAL 1687 +#define YYFINAL 1707 #define YYFLAG -32768 -#define YYNTBASE 235 +#define YYNTBASE 237 -#define YYTRANSLATE(x) ((unsigned)(x) <= 473 ? yytranslate[x] : 500) +#define YYTRANSLATE(x) ((unsigned)(x) <= 475 ? yytranslate[x] : 503) static const short yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 233, - 234, 222, 220, 232, 221, 228, 223, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 225, 226, 218, - 217, 219, 2, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 2, 2, 235, + 236, 224, 222, 234, 223, 230, 225, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 227, 228, 220, + 219, 221, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 229, 2, 230, 2, 2, 2, 2, 2, 2, 2, + 231, 2, 232, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 224, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 226, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -404,7 +407,7 @@ static const short yytranslate[] = { 0, 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, 227, 231 + 216, 217, 218, 229, 233 }; #if YYDEBUG != 0 @@ -415,393 +418,399 @@ static const short yyprhs[] = { 0, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 109, 118, 122, 126, 127, 129, 131, 132, 134, 136, 137, - 141, 143, 147, 148, 152, 153, 158, 163, 168, 172, - 174, 176, 178, 180, 182, 185, 189, 192, 196, 202, - 206, 211, 215, 222, 228, 231, 234, 242, 244, 246, - 248, 250, 252, 254, 255, 258, 259, 263, 264, 272, - 276, 278, 279, 281, 283, 287, 291, 293, 294, 297, - 299, 302, 303, 307, 309, 314, 317, 320, 323, 325, - 328, 334, 338, 340, 342, 345, 349, 353, 357, 361, - 365, 369, 373, 376, 379, 382, 386, 393, 397, 401, - 406, 410, 413, 416, 418, 420, 425, 427, 432, 434, - 436, 440, 442, 447, 452, 458, 469, 473, 475, 477, - 479, 481, 484, 488, 492, 496, 500, 504, 508, 512, - 515, 518, 521, 525, 532, 536, 540, 545, 549, 553, - 558, 562, 566, 569, 572, 575, 578, 582, 585, 590, - 594, 598, 603, 608, 614, 621, 627, 634, 638, 640, - 642, 645, 648, 649, 652, 654, 655, 659, 663, 666, - 668, 671, 674, 679, 680, 687, 691, 692, 696, 698, - 700, 705, 708, 709, 712, 714, 717, 720, 723, 726, - 728, 730, 732, 735, 737, 740, 750, 752, 753, 758, - 773, 775, 777, 779, 783, 789, 791, 793, 795, 799, - 801, 802, 804, 806, 808, 812, 813, 815, 817, 819, - 821, 827, 831, 834, 836, 838, 840, 842, 844, 846, - 848, 850, 854, 856, 860, 864, 866, 870, 872, 874, - 876, 878, 881, 885, 889, 894, 899, 901, 903, 905, - 907, 908, 910, 913, 915, 917, 919, 920, 923, 926, - 927, 935, 938, 940, 942, 944, 948, 950, 952, 954, - 956, 958, 960, 963, 965, 969, 970, 977, 989, 991, - 992, 995, 996, 998, 1000, 1004, 1006, 1013, 1017, 1020, - 1023, 1024, 1026, 1029, 1030, 1035, 1039, 1051, 1054, 1055, - 1059, 1062, 1064, 1068, 1071, 1073, 1074, 1078, 1080, 1082, - 1084, 1086, 1091, 1093, 1095, 1100, 1107, 1109, 1111, 1113, - 1115, 1117, 1119, 1121, 1123, 1125, 1127, 1131, 1135, 1139, - 1149, 1151, 1152, 1154, 1155, 1156, 1170, 1172, 1174, 1178, - 1182, 1184, 1186, 1190, 1193, 1196, 1200, 1202, 1204, 1206, - 1208, 1210, 1212, 1213, 1216, 1219, 1222, 1225, 1228, 1231, - 1234, 1237, 1240, 1242, 1244, 1245, 1251, 1254, 1261, 1265, - 1269, 1270, 1274, 1275, 1277, 1279, 1280, 1282, 1284, 1285, - 1289, 1294, 1298, 1304, 1306, 1307, 1309, 1310, 1314, 1315, - 1317, 1321, 1325, 1327, 1329, 1331, 1333, 1335, 1337, 1343, - 1348, 1351, 1360, 1364, 1365, 1369, 1371, 1374, 1379, 1383, - 1390, 1406, 1408, 1410, 1412, 1415, 1416, 1419, 1420, 1423, - 1426, 1429, 1440, 1449, 1453, 1454, 1459, 1461, 1469, 1473, - 1474, 1476, 1477, 1479, 1480, 1482, 1486, 1488, 1489, 1493, - 1494, 1496, 1500, 1503, 1506, 1509, 1512, 1514, 1516, 1517, - 1519, 1520, 1522, 1524, 1528, 1532, 1533, 1536, 1537, 1546, - 1549, 1550, 1554, 1559, 1561, 1565, 1568, 1570, 1573, 1576, - 1579, 1582, 1584, 1586, 1588, 1589, 1591, 1592, 1597, 1602, - 1603, 1605, 1609, 1611, 1615, 1617, 1620, 1621, 1623, 1626, - 1630, 1635, 1636, 1640, 1645, 1646, 1649, 1651, 1654, 1656, - 1658, 1660, 1662, 1664, 1666, 1669, 1672, 1675, 1678, 1680, - 1683, 1685, 1687, 1691, 1692, 1698, 1702, 1703, 1709, 1713, - 1714, 1719, 1721, 1726, 1729, 1731, 1735, 1738, 1740, 1741, - 1745, 1746, 1749, 1750, 1752, 1755, 1757, 1760, 1762, 1764, - 1766, 1768, 1770, 1772, 1776, 1777, 1779, 1783, 1787, 1791, - 1795, 1799, 1803, 1807, 1808, 1810, 1812, 1820, 1829, 1838, - 1846, 1854, 1858, 1862, 1864, 1866, 1868, 1870, 1872, 1874, - 1876, 1878, 1880, 1882, 1884, 1887, 1889, 1891, 1893, 1896, - 1900, 1904, 1908, 1912, 1916, 1920, 1924, 1927, 1930, 1933, - 1937, 1944, 1948, 1952, 1956, 1961, 1964, 1967, 1972, 1976, - 1981, 1983, 1985, 1990, 1992, 1997, 1999, 2001, 2006, 2011, - 2016, 2021, 2027, 2033, 2039, 2044, 2047, 2051, 2054, 2059, - 2063, 2068, 2072, 2077, 2083, 2090, 2091, 2098, 2099, 2107, - 2113, 2119, 2125, 2131, 2137, 2143, 2149, 2155, 2162, 2169, - 2176, 2183, 2190, 2197, 2204, 2211, 2218, 2225, 2232, 2239, - 2246, 2253, 2260, 2267, 2271, 2275, 2278, 2280, 2283, 2285, - 2287, 2290, 2294, 2298, 2302, 2306, 2309, 2312, 2315, 2319, - 2326, 2330, 2334, 2337, 2340, 2344, 2349, 2351, 2353, 2358, - 2360, 2365, 2367, 2369, 2374, 2379, 2385, 2391, 2397, 2402, - 2407, 2414, 2415, 2417, 2421, 2425, 2429, 2430, 2432, 2434, - 2436, 2440, 2441, 2444, 2446, 2449, 2453, 2457, 2461, 2465, - 2468, 2472, 2479, 2483, 2487, 2490, 2493, 2495, 2499, 2504, - 2509, 2514, 2520, 2526, 2532, 2537, 2541, 2542, 2545, 2546, - 2549, 2550, 2554, 2557, 2559, 2561, 2563, 2565, 2569, 2571, - 2573, 2575, 2579, 2585, 2592, 2597, 2600, 2602, 2607, 2610, - 2611, 2614, 2616, 2617, 2621, 2625, 2627, 2631, 2635, 2639, - 2641, 2643, 2648, 2651, 2655, 2659, 2661, 2665, 2667, 2671, - 2673, 2675, 2676, 2678, 2680, 2682, 2684, 2686, 2688, 2690, - 2692, 2694, 2696, 2698, 2700, 2702, 2704, 2707, 2709, 2711, - 2713, 2716, 2718, 2720, 2722, 2724, 2726, 2728, 2730, 2732, - 2734, 2736, 2738, 2740, 2742, 2744, 2746, 2748, 2750, 2752, - 2754, 2756, 2758, 2760, 2762, 2764, 2766, 2768, 2770, 2772, - 2774, 2776, 2778, 2780, 2782, 2784, 2786, 2788, 2790, 2792, - 2794, 2796, 2798, 2800, 2802, 2804, 2806, 2808, 2810, 2812, - 2814, 2816, 2818, 2820, 2822, 2824, 2826, 2828, 2830, 2832, - 2834, 2836, 2838, 2840, 2842, 2844, 2846, 2848, 2850, 2852, - 2854, 2856, 2858, 2860, 2862, 2864, 2866, 2868, 2870, 2872, - 2874, 2876, 2878, 2880, 2882, 2884, 2886, 2888, 2890, 2892, - 2894, 2896, 2898, 2900, 2902, 2904, 2906, 2908, 2910, 2912, - 2914, 2916, 2918, 2920, 2922, 2924, 2926, 2928, 2930, 2932, - 2934, 2936, 2938, 2940, 2942, 2944, 2946, 2948, 2950 + 141, 143, 147, 148, 152, 153, 158, 163, 168, 175, + 181, 185, 187, 189, 191, 193, 195, 198, 202, 207, + 210, 214, 219, 225, 229, 234, 238, 245, 251, 254, + 257, 265, 267, 269, 271, 273, 275, 277, 278, 281, + 282, 286, 287, 295, 299, 301, 302, 304, 306, 310, + 314, 316, 317, 320, 322, 325, 326, 330, 332, 337, + 340, 343, 346, 348, 351, 357, 361, 363, 365, 368, + 372, 376, 380, 384, 388, 392, 396, 399, 402, 405, + 409, 416, 420, 424, 429, 433, 436, 439, 441, 443, + 448, 450, 455, 457, 459, 463, 465, 470, 475, 481, + 492, 496, 498, 500, 502, 504, 507, 511, 515, 519, + 523, 527, 531, 535, 538, 541, 544, 548, 555, 559, + 563, 568, 572, 576, 581, 585, 589, 592, 595, 598, + 601, 605, 608, 613, 617, 621, 626, 631, 637, 644, + 650, 657, 661, 663, 665, 668, 671, 672, 675, 677, + 678, 682, 686, 689, 691, 694, 697, 702, 703, 710, + 714, 715, 719, 721, 723, 728, 731, 732, 735, 737, + 740, 743, 746, 749, 751, 753, 755, 758, 760, 763, + 773, 775, 776, 781, 796, 798, 800, 802, 806, 812, + 814, 816, 818, 822, 824, 825, 827, 829, 831, 835, + 836, 838, 840, 842, 844, 850, 854, 857, 859, 861, + 863, 865, 867, 869, 871, 873, 877, 879, 883, 887, + 889, 893, 895, 897, 899, 901, 904, 908, 912, 917, + 922, 924, 926, 928, 930, 931, 933, 936, 938, 940, + 942, 943, 946, 949, 950, 958, 961, 963, 965, 967, + 971, 973, 975, 977, 979, 981, 983, 986, 988, 992, + 993, 1000, 1012, 1014, 1015, 1018, 1019, 1021, 1023, 1027, + 1029, 1036, 1040, 1043, 1046, 1047, 1049, 1052, 1053, 1058, + 1062, 1074, 1077, 1078, 1082, 1085, 1087, 1091, 1094, 1096, + 1097, 1101, 1103, 1105, 1107, 1109, 1114, 1116, 1118, 1123, + 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, 1148, + 1150, 1154, 1158, 1162, 1172, 1174, 1175, 1177, 1178, 1179, + 1193, 1195, 1197, 1201, 1205, 1207, 1209, 1213, 1216, 1219, + 1223, 1225, 1227, 1229, 1231, 1233, 1235, 1236, 1239, 1242, + 1245, 1248, 1251, 1254, 1257, 1260, 1263, 1265, 1267, 1268, + 1274, 1277, 1284, 1288, 1292, 1293, 1297, 1298, 1300, 1302, + 1303, 1305, 1307, 1308, 1312, 1317, 1321, 1327, 1329, 1330, + 1332, 1333, 1337, 1338, 1340, 1344, 1348, 1350, 1352, 1354, + 1356, 1358, 1360, 1366, 1371, 1374, 1383, 1387, 1388, 1392, + 1394, 1397, 1402, 1406, 1415, 1423, 1430, 1432, 1433, 1440, + 1456, 1458, 1460, 1462, 1465, 1466, 1469, 1470, 1473, 1476, + 1479, 1490, 1499, 1503, 1504, 1509, 1511, 1519, 1523, 1524, + 1526, 1527, 1529, 1530, 1532, 1536, 1538, 1539, 1543, 1544, + 1546, 1550, 1553, 1556, 1559, 1562, 1564, 1566, 1567, 1569, + 1570, 1572, 1574, 1578, 1582, 1583, 1586, 1587, 1596, 1599, + 1600, 1604, 1609, 1611, 1615, 1618, 1620, 1623, 1626, 1629, + 1632, 1634, 1636, 1638, 1639, 1641, 1642, 1647, 1652, 1653, + 1655, 1659, 1661, 1665, 1667, 1670, 1671, 1673, 1676, 1680, + 1685, 1686, 1690, 1695, 1696, 1699, 1701, 1704, 1706, 1708, + 1710, 1712, 1714, 1716, 1719, 1722, 1725, 1728, 1730, 1733, + 1735, 1737, 1741, 1742, 1748, 1752, 1753, 1759, 1763, 1764, + 1769, 1771, 1776, 1779, 1781, 1785, 1788, 1790, 1791, 1795, + 1796, 1799, 1800, 1802, 1805, 1807, 1810, 1812, 1814, 1816, + 1818, 1820, 1822, 1826, 1827, 1829, 1833, 1837, 1841, 1845, + 1849, 1853, 1857, 1858, 1860, 1862, 1870, 1879, 1888, 1896, + 1904, 1908, 1912, 1914, 1916, 1918, 1920, 1922, 1924, 1926, + 1928, 1930, 1932, 1934, 1937, 1939, 1941, 1943, 1946, 1950, + 1954, 1958, 1962, 1966, 1970, 1974, 1977, 1980, 1983, 1987, + 1994, 1998, 2002, 2006, 2011, 2014, 2017, 2022, 2026, 2031, + 2033, 2035, 2040, 2042, 2047, 2049, 2051, 2056, 2061, 2066, + 2071, 2077, 2083, 2089, 2094, 2097, 2101, 2104, 2109, 2113, + 2118, 2122, 2127, 2133, 2140, 2141, 2148, 2149, 2157, 2163, + 2169, 2175, 2181, 2187, 2193, 2199, 2205, 2212, 2219, 2226, + 2233, 2240, 2247, 2254, 2261, 2268, 2275, 2282, 2289, 2296, + 2303, 2310, 2317, 2321, 2325, 2328, 2330, 2333, 2335, 2337, + 2340, 2344, 2348, 2352, 2356, 2359, 2362, 2365, 2369, 2376, + 2380, 2384, 2387, 2390, 2394, 2399, 2401, 2403, 2408, 2410, + 2415, 2417, 2419, 2424, 2429, 2435, 2441, 2447, 2452, 2457, + 2464, 2465, 2467, 2471, 2475, 2479, 2480, 2482, 2484, 2486, + 2490, 2491, 2494, 2496, 2499, 2503, 2507, 2511, 2515, 2518, + 2522, 2529, 2533, 2537, 2540, 2543, 2545, 2549, 2554, 2559, + 2564, 2570, 2576, 2582, 2587, 2591, 2592, 2595, 2596, 2599, + 2600, 2604, 2607, 2609, 2611, 2613, 2615, 2619, 2621, 2623, + 2625, 2629, 2635, 2642, 2647, 2650, 2652, 2657, 2660, 2661, + 2664, 2666, 2667, 2671, 2675, 2677, 2681, 2685, 2689, 2691, + 2693, 2698, 2701, 2705, 2709, 2711, 2715, 2717, 2721, 2723, + 2725, 2726, 2728, 2730, 2732, 2734, 2736, 2738, 2740, 2742, + 2744, 2746, 2748, 2750, 2752, 2754, 2757, 2759, 2761, 2763, + 2766, 2768, 2770, 2772, 2774, 2776, 2778, 2780, 2782, 2784, + 2786, 2788, 2790, 2792, 2794, 2796, 2798, 2800, 2802, 2804, + 2806, 2808, 2810, 2812, 2814, 2816, 2818, 2820, 2822, 2824, + 2826, 2828, 2830, 2832, 2834, 2836, 2838, 2840, 2842, 2844, + 2846, 2848, 2850, 2852, 2854, 2856, 2858, 2860, 2862, 2864, + 2866, 2868, 2870, 2872, 2874, 2876, 2878, 2880, 2882, 2884, + 2886, 2888, 2890, 2892, 2894, 2896, 2898, 2900, 2902, 2904, + 2906, 2908, 2910, 2912, 2914, 2916, 2918, 2920, 2922, 2924, + 2926, 2928, 2930, 2932, 2934, 2936, 2938, 2940, 2942, 2944, + 2946, 2948, 2950, 2952, 2954, 2956, 2958, 2960, 2962, 2964, + 2966, 2968, 2970, 2972, 2974, 2976, 2978, 2980, 2982, 2984, + 2986, 2988, 2990, 2992, 2994, 2996, 2998, 3000 }; -static const short yyrhs[] = { 236, - 0, 237, 0, 236, 237, 226, 0, 236, 237, 0, - 237, 226, 0, 252, 0, 239, 0, 254, 0, 255, - 0, 261, 0, 283, 0, 287, 0, 293, 0, 296, - 0, 238, 0, 376, 0, 306, 0, 314, 0, 295, - 0, 305, 0, 240, 0, 335, 0, 382, 0, 315, - 0, 319, 0, 326, 0, 364, 0, 365, 0, 390, - 0, 337, 0, 336, 0, 345, 0, 348, 0, 347, - 0, 343, 0, 352, 0, 325, 0, 383, 0, 355, - 0, 366, 0, 368, 0, 369, 0, 370, 0, 375, - 0, 377, 0, 247, 0, 250, 0, 251, 0, 28, - 128, 495, 241, 242, 243, 245, 246, 0, 7, 128, - 495, 241, 242, 243, 245, 246, 0, 44, 128, 495, - 0, 136, 187, 495, 0, 0, 152, 0, 179, 0, - 0, 153, 0, 180, 0, 0, 244, 232, 495, 0, - 495, 0, 61, 58, 244, 0, 0, 207, 205, 211, - 0, 0, 112, 497, 120, 248, 0, 112, 497, 217, - 248, 0, 112, 116, 139, 249, 0, 112, 78, 374, - 0, 494, 0, 39, 0, 494, 0, 39, 0, 74, - 0, 198, 497, 0, 198, 116, 139, 0, 191, 497, - 0, 191, 116, 139, 0, 7, 114, 481, 410, 253, - 0, 5, 354, 264, 0, 5, 233, 262, 234, 0, - 44, 354, 497, 0, 7, 354, 497, 112, 39, 271, - 0, 7, 354, 497, 44, 39, 0, 5, 273, 0, - 22, 480, 0, 151, 258, 481, 259, 256, 257, 260, - 0, 120, 0, 55, 0, 494, 0, 201, 0, 202, - 0, 148, 0, 0, 136, 185, 0, 0, 129, 156, - 494, 0, 0, 28, 114, 481, 233, 262, 234, 282, - 0, 262, 232, 263, 0, 263, 0, 0, 264, 0, - 272, 0, 497, 427, 265, 0, 497, 196, 267, 0, - 266, 0, 0, 266, 268, 0, 268, 0, 98, 69, - 0, 0, 27, 487, 269, 0, 269, 0, 21, 233, - 275, 234, 0, 39, 86, 0, 39, 271, 0, 84, - 86, 0, 126, 0, 98, 69, 0, 104, 497, 386, - 278, 279, 0, 270, 232, 271, 0, 271, 0, 491, - 0, 221, 271, 0, 271, 220, 271, 0, 271, 221, - 271, 0, 271, 223, 271, 0, 271, 222, 271, 0, - 271, 217, 271, 0, 271, 218, 271, 0, 271, 219, - 271, 0, 225, 271, 0, 226, 271, 0, 224, 271, - 0, 271, 231, 427, 0, 18, 233, 271, 10, 427, - 234, 0, 233, 271, 234, 0, 488, 233, 234, 0, - 488, 233, 270, 234, 0, 271, 212, 271, 0, 212, - 271, 0, 271, 212, 0, 31, 0, 32, 0, 32, - 233, 493, 234, 0, 33, 0, 33, 233, 493, 234, - 0, 34, 0, 128, 0, 27, 487, 273, 0, 273, - 0, 21, 233, 275, 234, 0, 126, 233, 387, 234, - 0, 98, 69, 233, 387, 234, 0, 54, 69, 233, - 387, 234, 104, 497, 386, 278, 279, 0, 274, 232, - 275, 0, 275, 0, 491, 0, 86, 0, 497, 0, - 221, 275, 0, 275, 220, 275, 0, 275, 221, 275, - 0, 275, 223, 275, 0, 275, 222, 275, 0, 275, - 217, 275, 0, 275, 218, 275, 0, 275, 219, 275, - 0, 225, 275, 0, 226, 275, 0, 224, 275, 0, - 275, 231, 427, 0, 18, 233, 275, 10, 427, 234, - 0, 233, 275, 234, 0, 488, 233, 234, 0, 488, - 233, 274, 234, 0, 275, 212, 275, 0, 275, 73, - 275, 0, 275, 84, 73, 275, 0, 275, 8, 275, - 0, 275, 92, 275, 0, 84, 275, 0, 212, 275, - 0, 275, 212, 0, 275, 169, 0, 275, 67, 86, - 0, 275, 184, 0, 275, 67, 84, 86, 0, 275, - 67, 124, 0, 275, 67, 50, 0, 275, 67, 84, - 124, 0, 275, 67, 84, 50, 0, 275, 61, 233, - 276, 234, 0, 275, 84, 61, 233, 276, 234, 0, - 275, 13, 277, 8, 277, 0, 275, 84, 13, 277, - 8, 277, 0, 276, 232, 277, 0, 277, 0, 491, - 0, 75, 56, 0, 75, 95, 0, 0, 280, 280, - 0, 280, 0, 0, 89, 40, 281, 0, 89, 127, - 281, 0, 83, 4, 0, 16, 0, 112, 39, 0, - 112, 86, 0, 167, 233, 411, 234, 0, 0, 28, - 114, 481, 284, 10, 398, 0, 233, 285, 234, 0, - 0, 285, 232, 286, 0, 286, 0, 497, 0, 28, - 195, 481, 288, 0, 288, 289, 0, 0, 149, 292, - 0, 154, 0, 165, 292, 0, 175, 292, 0, 176, - 292, 0, 199, 292, 0, 291, 0, 292, 0, 215, - 0, 221, 215, 0, 493, 0, 221, 493, 0, 28, - 294, 188, 70, 494, 164, 309, 170, 494, 0, 203, - 0, 0, 44, 188, 70, 494, 0, 28, 140, 487, - 297, 298, 89, 481, 300, 47, 101, 487, 233, 303, - 234, 0, 147, 0, 143, 0, 299, 0, 299, 92, - 299, 0, 299, 92, 299, 92, 299, 0, 64, 0, - 40, 0, 127, 0, 53, 301, 302, 0, 158, 0, - 0, 193, 0, 200, 0, 304, 0, 303, 232, 304, - 0, 0, 213, 0, 215, 0, 494, 0, 210, 0, - 44, 140, 487, 89, 481, 0, 28, 308, 307, 0, - 309, 310, 0, 186, 0, 141, 0, 144, 0, 101, - 0, 68, 0, 497, 0, 350, 0, 212, 0, 233, - 311, 234, 0, 312, 0, 311, 232, 312, 0, 309, - 217, 313, 0, 309, 0, 39, 217, 313, 0, 497, - 0, 349, 0, 290, 0, 494, 0, 197, 497, 0, - 44, 114, 411, 0, 44, 195, 411, 0, 51, 316, - 317, 318, 0, 177, 316, 317, 318, 0, 162, 0, - 146, 0, 105, 0, 3, 0, 0, 493, 0, 221, - 493, 0, 6, 0, 82, 0, 99, 0, 0, 61, - 487, 0, 55, 487, 0, 0, 57, 320, 89, 411, - 120, 323, 324, 0, 6, 100, 0, 6, 0, 321, - 0, 322, 0, 321, 232, 322, 0, 111, 0, 64, - 0, 127, 0, 40, 0, 194, 0, 102, 0, 58, - 497, 0, 497, 0, 136, 57, 91, 0, 0, 106, - 320, 89, 411, 55, 323, 0, 28, 327, 166, 486, - 89, 481, 328, 233, 329, 234, 338, 0, 126, 0, - 0, 129, 483, 0, 0, 330, 0, 331, 0, 330, - 232, 332, 0, 332, 0, 488, 233, 412, 234, 333, - 334, 0, 484, 333, 334, 0, 225, 427, 0, 53, - 427, 0, 0, 485, 0, 129, 485, 0, 0, 161, - 166, 486, 423, 0, 47, 189, 490, 0, 28, 163, - 488, 339, 192, 341, 338, 10, 494, 70, 494, 0, - 136, 310, 0, 0, 233, 340, 234, 0, 233, 234, - 0, 496, 0, 340, 232, 496, 0, 342, 496, 0, - 197, 0, 0, 44, 344, 487, 0, 141, 0, 166, - 0, 194, 0, 133, 0, 44, 144, 487, 346, 0, - 487, 0, 222, 0, 44, 163, 488, 339, 0, 44, - 186, 349, 233, 351, 234, 0, 212, 0, 350, 0, - 220, 0, 221, 0, 222, 0, 223, 0, 218, 0, - 219, 0, 217, 0, 487, 0, 487, 232, 487, 0, - 181, 232, 487, 0, 487, 232, 181, 0, 7, 114, - 481, 410, 190, 354, 353, 120, 487, 0, 487, 0, - 0, 25, 0, 0, 0, 28, 194, 487, 10, 356, - 89, 361, 120, 360, 423, 157, 362, 357, 0, 182, - 0, 383, 0, 229, 358, 230, 0, 233, 358, 234, - 0, 359, 0, 383, 0, 359, 383, 226, 0, 359, - 383, 0, 383, 226, 0, 481, 228, 484, 0, 481, - 0, 111, 0, 127, 0, 40, 0, 64, 0, 168, - 0, 0, 183, 481, 0, 171, 481, 0, 204, 481, - 0, 204, 222, 0, 142, 367, 0, 12, 367, 0, - 26, 367, 0, 46, 367, 0, 108, 367, 0, 137, - 0, 122, 0, 0, 28, 133, 487, 10, 397, 0, - 172, 489, 0, 28, 155, 482, 136, 371, 372, 0, - 28, 155, 482, 0, 173, 217, 373, 0, 0, 159, - 217, 374, 0, 0, 494, 0, 39, 0, 0, 494, - 0, 39, 0, 0, 44, 155, 482, 0, 150, 486, - 89, 481, 0, 206, 378, 379, 0, 206, 378, 379, - 481, 380, 0, 208, 0, 0, 145, 0, 0, 233, - 381, 234, 0, 0, 487, 0, 381, 232, 487, 0, - 160, 378, 383, 0, 397, 0, 392, 0, 391, 0, - 384, 0, 363, 0, 389, 0, 64, 66, 481, 386, - 385, 0, 130, 233, 478, 234, 0, 39, 130, 0, - 111, 405, 478, 415, 423, 413, 414, 399, 0, 233, - 387, 234, 0, 0, 387, 232, 388, 0, 388, 0, - 497, 455, 0, 40, 55, 481, 423, 0, 174, 403, - 481, 0, 127, 481, 112, 476, 415, 423, 0, 38, - 487, 393, 35, 53, 111, 405, 478, 415, 423, 413, - 414, 399, 406, 394, 0, 148, 0, 63, 0, 109, - 0, 63, 109, 0, 0, 53, 395, 0, 0, 103, - 90, 0, 127, 396, 0, 88, 387, 0, 111, 405, - 478, 402, 415, 423, 413, 414, 399, 406, 0, 111, - 405, 478, 415, 423, 413, 414, 399, 0, 125, 404, - 400, 0, 0, 400, 125, 404, 401, 0, 401, 0, - 111, 405, 478, 415, 423, 413, 414, 0, 66, 403, - 481, 0, 0, 114, 0, 0, 6, 0, 0, 42, - 0, 42, 89, 497, 0, 6, 0, 0, 93, 15, - 407, 0, 0, 408, 0, 407, 232, 408, 0, 451, - 409, 0, 129, 212, 0, 129, 218, 0, 129, 219, - 0, 11, 0, 41, 0, 0, 222, 0, 0, 412, - 0, 487, 0, 412, 232, 487, 0, 58, 15, 456, - 0, 0, 59, 451, 0, 0, 55, 233, 424, 418, - 68, 424, 420, 234, 0, 55, 416, 0, 0, 416, - 232, 417, 0, 417, 29, 68, 417, 0, 417, 0, - 424, 10, 498, 0, 424, 497, 0, 424, 0, 80, - 418, 0, 56, 419, 0, 72, 419, 0, 107, 419, - 0, 94, 0, 62, 0, 125, 0, 0, 94, 0, - 0, 89, 233, 451, 234, 0, 129, 233, 421, 234, - 0, 0, 422, 0, 421, 232, 422, 0, 497, 0, - 497, 228, 497, 0, 493, 0, 135, 451, 0, 0, - 481, 0, 481, 222, 0, 229, 230, 426, 0, 229, - 493, 230, 426, 0, 0, 229, 230, 426, 0, 229, - 493, 230, 426, 0, 0, 428, 425, 0, 436, 0, - 197, 428, 0, 429, 0, 441, 0, 431, 0, 430, - 0, 210, 0, 141, 0, 52, 433, 0, 43, 97, - 0, 37, 435, 0, 87, 434, 0, 52, 0, 43, - 97, 0, 37, 0, 87, 0, 233, 493, 234, 0, - 0, 233, 493, 232, 493, 234, 0, 233, 493, 234, - 0, 0, 233, 493, 232, 493, 234, 0, 233, 493, - 234, 0, 0, 437, 233, 493, 234, 0, 437, 0, - 20, 438, 439, 440, 0, 19, 438, 0, 131, 0, - 79, 20, 438, 0, 81, 438, 0, 132, 0, 0, - 20, 112, 497, 0, 0, 24, 497, 0, 0, 442, - 0, 117, 443, 0, 116, 0, 65, 444, 0, 138, - 0, 77, 0, 36, 0, 60, 0, 76, 0, 110, - 0, 136, 116, 139, 0, 0, 442, 0, 138, 120, - 77, 0, 36, 120, 60, 0, 36, 120, 76, 0, - 36, 120, 110, 0, 60, 120, 76, 0, 60, 120, - 110, 0, 76, 120, 110, 0, 0, 451, 0, 86, - 0, 233, 447, 234, 61, 233, 398, 234, 0, 233, - 447, 234, 84, 61, 233, 398, 234, 0, 233, 447, - 234, 449, 450, 233, 398, 234, 0, 233, 447, 234, - 449, 233, 398, 234, 0, 233, 447, 234, 449, 233, - 447, 234, 0, 448, 232, 451, 0, 448, 232, 451, - 0, 451, 0, 212, 0, 218, 0, 217, 0, 219, - 0, 220, 0, 221, 0, 222, 0, 223, 0, 9, - 0, 6, 0, 474, 455, 0, 446, 0, 491, 0, - 497, 0, 221, 451, 0, 451, 220, 451, 0, 451, - 221, 451, 0, 451, 223, 451, 0, 451, 222, 451, - 0, 451, 218, 451, 0, 451, 219, 451, 0, 451, - 217, 451, 0, 225, 451, 0, 226, 451, 0, 224, - 451, 0, 451, 231, 427, 0, 18, 233, 451, 10, - 427, 234, 0, 233, 445, 234, 0, 451, 212, 451, - 0, 451, 73, 451, 0, 451, 84, 73, 451, 0, - 212, 451, 0, 451, 212, 0, 488, 233, 222, 234, - 0, 488, 233, 234, 0, 488, 233, 456, 234, 0, - 31, 0, 32, 0, 32, 233, 493, 234, 0, 33, - 0, 33, 233, 493, 234, 0, 34, 0, 128, 0, - 48, 233, 398, 234, 0, 49, 233, 457, 234, 0, - 96, 233, 459, 234, 0, 113, 233, 461, 234, 0, - 123, 233, 14, 464, 234, 0, 123, 233, 71, 464, - 234, 0, 123, 233, 121, 464, 234, 0, 123, 233, - 464, 234, 0, 451, 169, 0, 451, 67, 86, 0, - 451, 184, 0, 451, 67, 84, 86, 0, 451, 67, - 124, 0, 451, 67, 84, 50, 0, 451, 67, 50, - 0, 451, 67, 84, 124, 0, 451, 13, 454, 8, - 454, 0, 451, 84, 13, 454, 8, 454, 0, 0, - 451, 61, 452, 233, 465, 234, 0, 0, 451, 84, - 61, 453, 233, 467, 234, 0, 451, 212, 233, 398, - 234, 0, 451, 220, 233, 398, 234, 0, 451, 221, - 233, 398, 234, 0, 451, 223, 233, 398, 234, 0, - 451, 222, 233, 398, 234, 0, 451, 218, 233, 398, - 234, 0, 451, 219, 233, 398, 234, 0, 451, 217, - 233, 398, 234, 0, 451, 212, 9, 233, 398, 234, - 0, 451, 220, 9, 233, 398, 234, 0, 451, 221, - 9, 233, 398, 234, 0, 451, 223, 9, 233, 398, - 234, 0, 451, 222, 9, 233, 398, 234, 0, 451, - 218, 9, 233, 398, 234, 0, 451, 219, 9, 233, - 398, 234, 0, 451, 217, 9, 233, 398, 234, 0, - 451, 212, 6, 233, 398, 234, 0, 451, 220, 6, - 233, 398, 234, 0, 451, 221, 6, 233, 398, 234, - 0, 451, 223, 6, 233, 398, 234, 0, 451, 222, - 6, 233, 398, 234, 0, 451, 218, 6, 233, 398, - 234, 0, 451, 219, 6, 233, 398, 234, 0, 451, - 217, 6, 233, 398, 234, 0, 451, 8, 451, 0, - 451, 92, 451, 0, 84, 451, 0, 469, 0, 474, - 455, 0, 491, 0, 497, 0, 221, 454, 0, 454, - 220, 454, 0, 454, 221, 454, 0, 454, 223, 454, - 0, 454, 222, 454, 0, 225, 454, 0, 226, 454, - 0, 224, 454, 0, 454, 231, 427, 0, 18, 233, - 454, 10, 427, 234, 0, 233, 451, 234, 0, 454, - 212, 454, 0, 212, 454, 0, 454, 212, 0, 488, - 233, 234, 0, 488, 233, 456, 234, 0, 31, 0, - 32, 0, 32, 233, 493, 234, 0, 33, 0, 33, - 233, 493, 234, 0, 34, 0, 128, 0, 96, 233, - 459, 234, 0, 113, 233, 461, 234, 0, 123, 233, - 14, 464, 234, 0, 123, 233, 71, 464, 234, 0, - 123, 233, 121, 464, 234, 0, 123, 233, 464, 234, - 0, 229, 451, 230, 455, 0, 229, 451, 225, 451, - 230, 455, 0, 0, 445, 0, 456, 232, 445, 0, - 456, 129, 451, 0, 458, 55, 451, 0, 0, 442, - 0, 118, 0, 119, 0, 460, 61, 460, 0, 0, - 474, 455, 0, 491, 0, 221, 460, 0, 460, 220, - 460, 0, 460, 221, 460, 0, 460, 223, 460, 0, - 460, 222, 460, 0, 224, 460, 0, 460, 231, 427, - 0, 18, 233, 460, 10, 427, 234, 0, 233, 460, - 234, 0, 460, 212, 460, 0, 212, 460, 0, 460, - 212, 0, 497, 0, 488, 233, 234, 0, 488, 233, - 456, 234, 0, 96, 233, 459, 234, 0, 113, 233, - 461, 234, 0, 123, 233, 14, 464, 234, 0, 123, - 233, 71, 464, 234, 0, 123, 233, 121, 464, 234, - 0, 123, 233, 464, 234, 0, 456, 462, 463, 0, - 0, 55, 456, 0, 0, 53, 456, 0, 0, 451, - 55, 456, 0, 55, 456, 0, 456, 0, 398, 0, - 466, 0, 491, 0, 466, 232, 491, 0, 398, 0, - 468, 0, 491, 0, 468, 232, 491, 0, 17, 473, - 470, 472, 46, 0, 85, 233, 451, 232, 451, 234, - 0, 23, 233, 456, 234, 0, 470, 471, 0, 471, - 0, 134, 451, 115, 445, 0, 45, 445, 0, 0, - 474, 455, 0, 497, 0, 0, 481, 228, 475, 0, - 492, 228, 475, 0, 484, 0, 475, 228, 484, 0, - 475, 228, 222, 0, 476, 232, 477, 0, 477, 0, - 222, 0, 497, 455, 217, 445, 0, 474, 455, 0, - 481, 228, 222, 0, 478, 232, 479, 0, 479, 0, - 445, 10, 498, 0, 445, 0, 481, 228, 222, 0, - 222, 0, 497, 0, 0, 499, 0, 497, 0, 497, - 0, 210, 0, 497, 0, 210, 0, 497, 0, 497, - 0, 497, 0, 494, 0, 210, 0, 493, 0, 215, - 0, 494, 0, 427, 494, 0, 492, 0, 124, 0, - 50, 0, 214, 455, 0, 213, 0, 211, 0, 210, - 0, 497, 0, 432, 0, 437, 0, 210, 0, 442, - 0, 3, 0, 4, 0, 143, 0, 144, 0, 146, - 0, 147, 0, 149, 0, 152, 0, 153, 0, 154, - 0, 155, 0, 156, 0, 43, 0, 158, 0, 159, - 0, 162, 0, 163, 0, 164, 0, 165, 0, 166, - 0, 167, 0, 63, 0, 168, 0, 169, 0, 69, - 0, 70, 0, 170, 0, 173, 0, 75, 0, 175, - 0, 176, 0, 82, 0, 179, 0, 180, 0, 182, - 0, 184, 0, 88, 0, 185, 0, 90, 0, 186, - 0, 91, 0, 187, 0, 99, 0, 100, 0, 188, - 0, 103, 0, 189, 0, 105, 0, 190, 0, 192, - 0, 193, 0, 194, 0, 109, 0, 195, 0, 196, - 0, 199, 0, 200, 0, 201, 0, 202, 0, 116, - 0, 117, 0, 118, 0, 119, 0, 140, 0, 203, - 0, 141, 0, 207, 0, 209, 0, 139, 0, 497, - 0, 142, 0, 145, 0, 148, 0, 17, 0, 150, - 0, 23, 0, 27, 0, 151, 0, 29, 0, 30, - 0, 157, 0, 45, 0, 46, 0, 160, 0, 161, - 0, 50, 0, 54, 0, 58, 0, 171, 0, 172, - 0, 174, 0, 177, 0, 178, 0, 181, 0, 85, - 0, 93, 0, 96, 0, 97, 0, 191, 0, 197, - 0, 198, 0, 114, 0, 115, 0, 122, 0, 124, - 0, 206, 0, 208, 0, 134, 0, 30, 0, 178, +static const short yyrhs[] = { 238, + 0, 239, 0, 238, 239, 228, 0, 238, 239, 0, + 239, 228, 0, 254, 0, 241, 0, 256, 0, 257, + 0, 263, 0, 285, 0, 289, 0, 295, 0, 298, + 0, 240, 0, 378, 0, 308, 0, 316, 0, 297, + 0, 307, 0, 242, 0, 337, 0, 384, 0, 317, + 0, 321, 0, 328, 0, 366, 0, 367, 0, 392, + 0, 339, 0, 338, 0, 347, 0, 350, 0, 349, + 0, 345, 0, 354, 0, 327, 0, 385, 0, 357, + 0, 368, 0, 370, 0, 371, 0, 372, 0, 377, + 0, 379, 0, 249, 0, 252, 0, 253, 0, 28, + 130, 498, 243, 244, 245, 247, 248, 0, 7, 130, + 498, 243, 244, 245, 247, 248, 0, 44, 130, 498, + 0, 138, 189, 498, 0, 0, 154, 0, 181, 0, + 0, 155, 0, 182, 0, 0, 246, 234, 498, 0, + 498, 0, 61, 58, 246, 0, 0, 209, 207, 213, + 0, 0, 114, 500, 122, 250, 0, 114, 500, 219, + 250, 0, 114, 118, 141, 251, 0, 114, 124, 68, + 74, 105, 500, 0, 114, 124, 68, 74, 500, 0, + 114, 80, 376, 0, 497, 0, 39, 0, 497, 0, + 39, 0, 76, 0, 200, 500, 0, 200, 118, 141, + 0, 200, 124, 68, 74, 0, 193, 500, 0, 193, + 118, 141, 0, 193, 124, 68, 74, 0, 7, 116, + 484, 413, 255, 0, 5, 356, 266, 0, 5, 235, + 264, 236, 0, 44, 356, 500, 0, 7, 356, 500, + 114, 39, 273, 0, 7, 356, 500, 44, 39, 0, + 5, 275, 0, 22, 483, 0, 153, 260, 484, 261, + 258, 259, 262, 0, 122, 0, 55, 0, 497, 0, + 203, 0, 204, 0, 150, 0, 0, 138, 187, 0, + 0, 131, 158, 497, 0, 0, 28, 116, 484, 235, + 264, 236, 284, 0, 264, 234, 265, 0, 265, 0, + 0, 266, 0, 274, 0, 500, 430, 267, 0, 500, + 198, 269, 0, 268, 0, 0, 268, 270, 0, 270, + 0, 100, 70, 0, 0, 27, 490, 271, 0, 271, + 0, 21, 235, 277, 236, 0, 39, 88, 0, 39, + 273, 0, 86, 88, 0, 128, 0, 100, 70, 0, + 106, 500, 388, 280, 281, 0, 272, 234, 273, 0, + 273, 0, 494, 0, 223, 273, 0, 273, 222, 273, + 0, 273, 223, 273, 0, 273, 225, 273, 0, 273, + 224, 273, 0, 273, 219, 273, 0, 273, 220, 273, + 0, 273, 221, 273, 0, 227, 273, 0, 228, 273, + 0, 226, 273, 0, 273, 233, 430, 0, 18, 235, + 273, 10, 430, 236, 0, 235, 273, 236, 0, 491, + 235, 236, 0, 491, 235, 272, 236, 0, 273, 214, + 273, 0, 214, 273, 0, 273, 214, 0, 31, 0, + 32, 0, 32, 235, 496, 236, 0, 33, 0, 33, + 235, 496, 236, 0, 34, 0, 130, 0, 27, 490, + 275, 0, 275, 0, 21, 235, 277, 236, 0, 128, + 235, 389, 236, 0, 100, 70, 235, 389, 236, 0, + 54, 70, 235, 389, 236, 106, 500, 388, 280, 281, + 0, 276, 234, 277, 0, 277, 0, 494, 0, 88, + 0, 500, 0, 223, 277, 0, 277, 222, 277, 0, + 277, 223, 277, 0, 277, 225, 277, 0, 277, 224, + 277, 0, 277, 219, 277, 0, 277, 220, 277, 0, + 277, 221, 277, 0, 227, 277, 0, 228, 277, 0, + 226, 277, 0, 277, 233, 430, 0, 18, 235, 277, + 10, 430, 236, 0, 235, 277, 236, 0, 491, 235, + 236, 0, 491, 235, 276, 236, 0, 277, 214, 277, + 0, 277, 75, 277, 0, 277, 86, 75, 277, 0, + 277, 8, 277, 0, 277, 94, 277, 0, 86, 277, + 0, 214, 277, 0, 277, 214, 0, 277, 171, 0, + 277, 67, 88, 0, 277, 186, 0, 277, 67, 86, + 88, 0, 277, 67, 126, 0, 277, 67, 50, 0, + 277, 67, 86, 126, 0, 277, 67, 86, 50, 0, + 277, 61, 235, 278, 236, 0, 277, 86, 61, 235, + 278, 236, 0, 277, 13, 279, 8, 279, 0, 277, + 86, 13, 279, 8, 279, 0, 278, 234, 279, 0, + 279, 0, 494, 0, 77, 56, 0, 77, 97, 0, + 0, 282, 282, 0, 282, 0, 0, 91, 40, 283, + 0, 91, 129, 283, 0, 85, 4, 0, 16, 0, + 114, 39, 0, 114, 88, 0, 169, 235, 414, 236, + 0, 0, 28, 116, 484, 286, 10, 401, 0, 235, + 287, 236, 0, 0, 287, 234, 288, 0, 288, 0, + 500, 0, 28, 197, 484, 290, 0, 290, 291, 0, + 0, 151, 294, 0, 156, 0, 167, 294, 0, 177, + 294, 0, 178, 294, 0, 201, 294, 0, 293, 0, + 294, 0, 217, 0, 223, 217, 0, 496, 0, 223, + 496, 0, 28, 296, 190, 71, 497, 166, 311, 172, + 497, 0, 205, 0, 0, 44, 190, 71, 497, 0, + 28, 142, 490, 299, 300, 91, 484, 302, 47, 103, + 490, 235, 305, 236, 0, 149, 0, 145, 0, 301, + 0, 301, 94, 301, 0, 301, 94, 301, 94, 301, + 0, 64, 0, 40, 0, 129, 0, 53, 303, 304, + 0, 160, 0, 0, 195, 0, 202, 0, 306, 0, + 305, 234, 306, 0, 0, 215, 0, 217, 0, 497, + 0, 212, 0, 44, 142, 490, 91, 484, 0, 28, + 310, 309, 0, 311, 312, 0, 188, 0, 143, 0, + 146, 0, 103, 0, 69, 0, 500, 0, 352, 0, + 214, 0, 235, 313, 236, 0, 314, 0, 313, 234, + 314, 0, 311, 219, 315, 0, 311, 0, 39, 219, + 315, 0, 500, 0, 351, 0, 292, 0, 497, 0, + 199, 500, 0, 44, 116, 414, 0, 44, 197, 414, + 0, 51, 318, 319, 320, 0, 179, 318, 319, 320, + 0, 164, 0, 148, 0, 107, 0, 3, 0, 0, + 496, 0, 223, 496, 0, 6, 0, 84, 0, 101, + 0, 0, 61, 490, 0, 55, 490, 0, 0, 57, + 322, 91, 414, 122, 325, 326, 0, 6, 102, 0, + 6, 0, 323, 0, 324, 0, 323, 234, 324, 0, + 113, 0, 64, 0, 129, 0, 40, 0, 196, 0, + 104, 0, 58, 500, 0, 500, 0, 138, 57, 93, + 0, 0, 108, 322, 91, 414, 55, 325, 0, 28, + 329, 168, 489, 91, 484, 330, 235, 331, 236, 340, + 0, 128, 0, 0, 131, 486, 0, 0, 332, 0, + 333, 0, 332, 234, 334, 0, 334, 0, 491, 235, + 415, 236, 335, 336, 0, 487, 335, 336, 0, 227, + 430, 0, 53, 430, 0, 0, 488, 0, 131, 488, + 0, 0, 163, 168, 489, 426, 0, 47, 191, 493, + 0, 28, 165, 491, 341, 194, 343, 340, 10, 497, + 71, 497, 0, 138, 312, 0, 0, 235, 342, 236, + 0, 235, 236, 0, 499, 0, 342, 234, 499, 0, + 344, 499, 0, 199, 0, 0, 44, 346, 490, 0, + 143, 0, 168, 0, 196, 0, 135, 0, 44, 146, + 490, 348, 0, 490, 0, 224, 0, 44, 165, 491, + 341, 0, 44, 188, 351, 235, 353, 236, 0, 214, + 0, 352, 0, 222, 0, 223, 0, 224, 0, 225, + 0, 220, 0, 221, 0, 219, 0, 490, 0, 490, + 234, 490, 0, 183, 234, 490, 0, 490, 234, 183, + 0, 7, 116, 484, 413, 192, 356, 355, 122, 490, + 0, 490, 0, 0, 25, 0, 0, 0, 28, 196, + 490, 10, 358, 91, 363, 122, 362, 426, 159, 364, + 359, 0, 184, 0, 385, 0, 231, 360, 232, 0, + 235, 360, 236, 0, 361, 0, 385, 0, 361, 385, + 228, 0, 361, 385, 0, 385, 228, 0, 484, 230, + 487, 0, 484, 0, 113, 0, 129, 0, 40, 0, + 64, 0, 170, 0, 0, 185, 484, 0, 173, 484, + 0, 206, 484, 0, 206, 224, 0, 144, 369, 0, + 12, 369, 0, 26, 369, 0, 46, 369, 0, 110, + 369, 0, 139, 0, 124, 0, 0, 28, 135, 490, + 10, 400, 0, 174, 492, 0, 28, 157, 485, 138, + 373, 374, 0, 28, 157, 485, 0, 175, 219, 375, + 0, 0, 161, 219, 376, 0, 0, 497, 0, 39, + 0, 0, 497, 0, 39, 0, 0, 44, 157, 485, + 0, 152, 489, 91, 484, 0, 208, 380, 381, 0, + 208, 380, 381, 484, 382, 0, 210, 0, 0, 147, + 0, 0, 235, 383, 236, 0, 0, 490, 0, 383, + 234, 490, 0, 162, 380, 385, 0, 400, 0, 395, + 0, 394, 0, 386, 0, 365, 0, 391, 0, 64, + 66, 484, 388, 387, 0, 132, 235, 481, 236, 0, + 39, 132, 0, 113, 408, 481, 418, 426, 416, 417, + 402, 0, 235, 389, 236, 0, 0, 389, 234, 390, + 0, 390, 0, 500, 458, 0, 40, 55, 484, 426, + 0, 176, 406, 484, 0, 176, 406, 484, 61, 393, + 195, 212, 212, 0, 176, 406, 484, 61, 212, 212, + 212, 0, 176, 406, 484, 61, 212, 212, 0, 212, + 0, 0, 129, 484, 114, 479, 418, 426, 0, 38, + 490, 396, 35, 53, 113, 408, 481, 418, 426, 416, + 417, 402, 409, 397, 0, 150, 0, 63, 0, 111, + 0, 63, 111, 0, 0, 53, 398, 0, 0, 105, + 92, 0, 129, 399, 0, 90, 389, 0, 113, 408, + 481, 405, 418, 426, 416, 417, 402, 409, 0, 113, + 408, 481, 418, 426, 416, 417, 402, 0, 127, 407, + 403, 0, 0, 403, 127, 407, 404, 0, 404, 0, + 113, 408, 481, 418, 426, 416, 417, 0, 66, 406, + 484, 0, 0, 116, 0, 0, 6, 0, 0, 42, + 0, 42, 91, 500, 0, 6, 0, 0, 95, 15, + 410, 0, 0, 411, 0, 410, 234, 411, 0, 454, + 412, 0, 131, 214, 0, 131, 220, 0, 131, 221, + 0, 11, 0, 41, 0, 0, 224, 0, 0, 415, + 0, 490, 0, 415, 234, 490, 0, 58, 15, 459, + 0, 0, 59, 454, 0, 0, 55, 235, 427, 421, + 69, 427, 423, 236, 0, 55, 419, 0, 0, 419, + 234, 420, 0, 420, 29, 69, 420, 0, 420, 0, + 427, 10, 501, 0, 427, 500, 0, 427, 0, 82, + 421, 0, 56, 422, 0, 73, 422, 0, 109, 422, + 0, 96, 0, 62, 0, 127, 0, 0, 96, 0, + 0, 91, 235, 454, 236, 0, 131, 235, 424, 236, + 0, 0, 425, 0, 424, 234, 425, 0, 500, 0, + 500, 230, 500, 0, 496, 0, 137, 454, 0, 0, + 484, 0, 484, 224, 0, 231, 232, 429, 0, 231, + 496, 232, 429, 0, 0, 231, 232, 429, 0, 231, + 496, 232, 429, 0, 0, 431, 428, 0, 439, 0, + 199, 431, 0, 432, 0, 444, 0, 434, 0, 433, + 0, 212, 0, 143, 0, 52, 436, 0, 43, 99, + 0, 37, 438, 0, 89, 437, 0, 52, 0, 43, + 99, 0, 37, 0, 89, 0, 235, 496, 236, 0, + 0, 235, 496, 234, 496, 236, 0, 235, 496, 236, + 0, 0, 235, 496, 234, 496, 236, 0, 235, 496, + 236, 0, 0, 440, 235, 496, 236, 0, 440, 0, + 20, 441, 442, 443, 0, 19, 441, 0, 133, 0, + 81, 20, 441, 0, 83, 441, 0, 134, 0, 0, + 20, 114, 500, 0, 0, 24, 500, 0, 0, 445, + 0, 119, 446, 0, 118, 0, 65, 447, 0, 140, + 0, 79, 0, 36, 0, 60, 0, 78, 0, 112, + 0, 138, 118, 141, 0, 0, 445, 0, 140, 122, + 79, 0, 36, 122, 60, 0, 36, 122, 78, 0, + 36, 122, 112, 0, 60, 122, 78, 0, 60, 122, + 112, 0, 78, 122, 112, 0, 0, 454, 0, 88, + 0, 235, 450, 236, 61, 235, 401, 236, 0, 235, + 450, 236, 86, 61, 235, 401, 236, 0, 235, 450, + 236, 452, 453, 235, 401, 236, 0, 235, 450, 236, + 452, 235, 401, 236, 0, 235, 450, 236, 452, 235, + 450, 236, 0, 451, 234, 454, 0, 451, 234, 454, + 0, 454, 0, 214, 0, 220, 0, 219, 0, 221, + 0, 222, 0, 223, 0, 224, 0, 225, 0, 9, + 0, 6, 0, 477, 458, 0, 449, 0, 494, 0, + 500, 0, 223, 454, 0, 454, 222, 454, 0, 454, + 223, 454, 0, 454, 225, 454, 0, 454, 224, 454, + 0, 454, 220, 454, 0, 454, 221, 454, 0, 454, + 219, 454, 0, 227, 454, 0, 228, 454, 0, 226, + 454, 0, 454, 233, 430, 0, 18, 235, 454, 10, + 430, 236, 0, 235, 448, 236, 0, 454, 214, 454, + 0, 454, 75, 454, 0, 454, 86, 75, 454, 0, + 214, 454, 0, 454, 214, 0, 491, 235, 224, 236, + 0, 491, 235, 236, 0, 491, 235, 459, 236, 0, + 31, 0, 32, 0, 32, 235, 496, 236, 0, 33, + 0, 33, 235, 496, 236, 0, 34, 0, 130, 0, + 48, 235, 401, 236, 0, 49, 235, 460, 236, 0, + 98, 235, 462, 236, 0, 115, 235, 464, 236, 0, + 125, 235, 14, 467, 236, 0, 125, 235, 72, 467, + 236, 0, 125, 235, 123, 467, 236, 0, 125, 235, + 467, 236, 0, 454, 171, 0, 454, 67, 88, 0, + 454, 186, 0, 454, 67, 86, 88, 0, 454, 67, + 126, 0, 454, 67, 86, 50, 0, 454, 67, 50, + 0, 454, 67, 86, 126, 0, 454, 13, 457, 8, + 457, 0, 454, 86, 13, 457, 8, 457, 0, 0, + 454, 61, 455, 235, 468, 236, 0, 0, 454, 86, + 61, 456, 235, 470, 236, 0, 454, 214, 235, 401, + 236, 0, 454, 222, 235, 401, 236, 0, 454, 223, + 235, 401, 236, 0, 454, 225, 235, 401, 236, 0, + 454, 224, 235, 401, 236, 0, 454, 220, 235, 401, + 236, 0, 454, 221, 235, 401, 236, 0, 454, 219, + 235, 401, 236, 0, 454, 214, 9, 235, 401, 236, + 0, 454, 222, 9, 235, 401, 236, 0, 454, 223, + 9, 235, 401, 236, 0, 454, 225, 9, 235, 401, + 236, 0, 454, 224, 9, 235, 401, 236, 0, 454, + 220, 9, 235, 401, 236, 0, 454, 221, 9, 235, + 401, 236, 0, 454, 219, 9, 235, 401, 236, 0, + 454, 214, 6, 235, 401, 236, 0, 454, 222, 6, + 235, 401, 236, 0, 454, 223, 6, 235, 401, 236, + 0, 454, 225, 6, 235, 401, 236, 0, 454, 224, + 6, 235, 401, 236, 0, 454, 220, 6, 235, 401, + 236, 0, 454, 221, 6, 235, 401, 236, 0, 454, + 219, 6, 235, 401, 236, 0, 454, 8, 454, 0, + 454, 94, 454, 0, 86, 454, 0, 472, 0, 477, + 458, 0, 494, 0, 500, 0, 223, 457, 0, 457, + 222, 457, 0, 457, 223, 457, 0, 457, 225, 457, + 0, 457, 224, 457, 0, 227, 457, 0, 228, 457, + 0, 226, 457, 0, 457, 233, 430, 0, 18, 235, + 457, 10, 430, 236, 0, 235, 454, 236, 0, 457, + 214, 457, 0, 214, 457, 0, 457, 214, 0, 491, + 235, 236, 0, 491, 235, 459, 236, 0, 31, 0, + 32, 0, 32, 235, 496, 236, 0, 33, 0, 33, + 235, 496, 236, 0, 34, 0, 130, 0, 98, 235, + 462, 236, 0, 115, 235, 464, 236, 0, 125, 235, + 14, 467, 236, 0, 125, 235, 72, 467, 236, 0, + 125, 235, 123, 467, 236, 0, 125, 235, 467, 236, + 0, 231, 454, 232, 458, 0, 231, 454, 227, 454, + 232, 458, 0, 0, 448, 0, 459, 234, 448, 0, + 459, 131, 454, 0, 461, 55, 454, 0, 0, 445, + 0, 120, 0, 121, 0, 463, 61, 463, 0, 0, + 477, 458, 0, 494, 0, 223, 463, 0, 463, 222, + 463, 0, 463, 223, 463, 0, 463, 225, 463, 0, + 463, 224, 463, 0, 226, 463, 0, 463, 233, 430, + 0, 18, 235, 463, 10, 430, 236, 0, 235, 463, + 236, 0, 463, 214, 463, 0, 214, 463, 0, 463, + 214, 0, 500, 0, 491, 235, 236, 0, 491, 235, + 459, 236, 0, 98, 235, 462, 236, 0, 115, 235, + 464, 236, 0, 125, 235, 14, 467, 236, 0, 125, + 235, 72, 467, 236, 0, 125, 235, 123, 467, 236, + 0, 125, 235, 467, 236, 0, 459, 465, 466, 0, + 0, 55, 459, 0, 0, 53, 459, 0, 0, 454, + 55, 459, 0, 55, 459, 0, 459, 0, 401, 0, + 469, 0, 494, 0, 469, 234, 494, 0, 401, 0, + 471, 0, 494, 0, 471, 234, 494, 0, 17, 476, + 473, 475, 46, 0, 87, 235, 454, 234, 454, 236, + 0, 23, 235, 459, 236, 0, 473, 474, 0, 474, + 0, 136, 454, 117, 448, 0, 45, 448, 0, 0, + 477, 458, 0, 500, 0, 0, 484, 230, 478, 0, + 495, 230, 478, 0, 487, 0, 478, 230, 487, 0, + 478, 230, 224, 0, 479, 234, 480, 0, 480, 0, + 224, 0, 500, 458, 219, 448, 0, 477, 458, 0, + 484, 230, 224, 0, 481, 234, 482, 0, 482, 0, + 448, 10, 501, 0, 448, 0, 484, 230, 224, 0, + 224, 0, 500, 0, 0, 502, 0, 500, 0, 500, + 0, 212, 0, 500, 0, 212, 0, 500, 0, 500, + 0, 500, 0, 497, 0, 212, 0, 496, 0, 217, + 0, 497, 0, 430, 497, 0, 495, 0, 126, 0, + 50, 0, 216, 458, 0, 215, 0, 213, 0, 212, + 0, 500, 0, 435, 0, 440, 0, 212, 0, 445, + 0, 3, 0, 4, 0, 145, 0, 146, 0, 148, + 0, 149, 0, 151, 0, 154, 0, 155, 0, 156, + 0, 157, 0, 158, 0, 43, 0, 160, 0, 161, + 0, 164, 0, 165, 0, 166, 0, 167, 0, 168, + 0, 169, 0, 63, 0, 170, 0, 171, 0, 70, + 0, 71, 0, 172, 0, 175, 0, 77, 0, 177, + 0, 178, 0, 84, 0, 181, 0, 182, 0, 184, + 0, 186, 0, 90, 0, 187, 0, 92, 0, 188, + 0, 93, 0, 189, 0, 101, 0, 102, 0, 190, + 0, 105, 0, 191, 0, 107, 0, 192, 0, 194, + 0, 195, 0, 196, 0, 111, 0, 197, 0, 198, + 0, 201, 0, 202, 0, 203, 0, 204, 0, 118, + 0, 119, 0, 120, 0, 121, 0, 142, 0, 205, + 0, 143, 0, 209, 0, 211, 0, 141, 0, 500, + 0, 144, 0, 147, 0, 150, 0, 17, 0, 152, + 0, 23, 0, 27, 0, 153, 0, 29, 0, 30, + 0, 159, 0, 45, 0, 46, 0, 162, 0, 163, + 0, 50, 0, 54, 0, 58, 0, 173, 0, 174, + 0, 176, 0, 179, 0, 180, 0, 183, 0, 87, + 0, 95, 0, 98, 0, 99, 0, 193, 0, 199, + 0, 200, 0, 116, 0, 117, 0, 124, 0, 126, + 0, 208, 0, 210, 0, 136, 0, 30, 0, 180, 0 }; @@ -809,101 +818,102 @@ static const short yyrhs[] = { 236, #if YYDEBUG != 0 static const short yyrline[] = { 0, - 344, 346, 350, 352, 354, 358, 359, 360, 361, 362, - 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, - 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, - 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, - 393, 394, 395, 396, 397, 398, 399, 400, 410, 431, - 452, 460, 461, 464, 470, 476, 479, 485, 491, 494, - 498, 504, 505, 508, 509, 521, 528, 535, 542, 555, - 556, 559, 560, 561, 564, 570, 578, 584, 600, 610, - 614, 622, 624, 626, 628, 640, 657, 670, 672, 681, - 682, 683, 686, 687, 690, 691, 697, 698, 709, 721, - 728, 735, 738, 739, 742, 752, 767, 768, 771, 778, - 787, 796, 799, 806, 825, 834, 843, 852, 861, 870, - 879, 886, 891, 904, 906, 908, 910, 912, 914, 916, - 918, 920, 922, 924, 926, 928, 933, 938, 940, 945, - 951, 957, 959, 962, 964, 966, 972, 974, 980, 982, - 990, 996, 1000, 1008, 1017, 1026, 1033, 1038, 1044, 1046, - 1048, 1052, 1054, 1056, 1058, 1060, 1062, 1064, 1066, 1068, - 1070, 1072, 1074, 1079, 1084, 1086, 1091, 1097, 1099, 1101, - 1103, 1105, 1107, 1109, 1111, 1113, 1115, 1117, 1119, 1121, - 1123, 1125, 1127, 1129, 1136, 1143, 1150, 1159, 1164, 1170, - 1174, 1175, 1176, 1179, 1180, 1181, 1184, 1185, 1188, 1189, - 1190, 1191, 1194, 1195, 1198, 1208, 1209, 1212, 1213, 1216, - 1236, 1245, 1247, 1250, 1256, 1262, 1268, 1274, 1280, 1288, - 1289, 1291, 1295, 1302, 1306, 1321, 1333, 1334, 1336, 1352, - 1368, 1369, 1372, 1377, 1382, 1390, 1391, 1392, 1395, 1401, - 1402, 1405, 1406, 1409, 1411, 1413, 1417, 1423, 1429, 1430, - 1433, 1450, 1457, 1465, 1466, 1467, 1470, 1471, 1472, 1473, - 1474, 1477, 1480, 1481, 1484, 1490, 1496, 1504, 1505, 1506, - 1507, 1508, 1527, 1534, 1553, 1573, 1589, 1590, 1591, 1592, - 1597, 1600, 1601, 1602, 1603, 1604, 1605, 1608, 1609, 1610, - 1621, 1627, 1631, 1635, 1641, 1645, 1651, 1655, 1659, 1663, - 1667, 1673, 1677, 1681, 1687, 1691, 1702, 1719, 1736, 1737, - 1740, 1741, 1744, 1745, 1748, 1749, 1752, 1762, 1772, 1773, - 1774, 1783, 1784, 1785, 1796, 1813, 1842, 1855, 1856, 1859, - 1860, 1863, 1865, 1869, 1879, 1880, 1900, 1909, 1910, 1911, - 1912, 1916, 1925, 1926, 1930, 1940, 1949, 1949, 1951, 1952, - 1953, 1954, 1955, 1956, 1957, 1960, 1964, 1966, 1968, 1981, - 1993, 1994, 1997, 1998, 2011, 2013, 2027, 2028, 2029, 2030, - 2033, 2035, 2039, 2041, 2043, 2047, 2055, 2066, 2067, 2068, - 2069, 2072, 2073, 2085, 2093, 2101, 2107, 2129, 2135, 2141, - 2147, 2153, 2161, 2162, 2163, 2174, 2195, 2211, 2235, 2249, - 2250, 2253, 2254, 2257, 2258, 2259, 2262, 2263, 2264, 2274, - 2290, 2307, 2316, 2329, 2330, 2333, 2334, 2337, 2338, 2341, - 2343, 2355, 2376, 2377, 2378, 2379, 2380, 2381, 2392, 2400, - 2411, 2422, 2438, 2439, 2442, 2445, 2449, 2466, 2481, 2506, - 2527, 2561, 2562, 2563, 2564, 2565, 2568, 2569, 2572, 2573, - 2581, 2593, 2612, 2629, 2635, 2639, 2645, 2649, 2665, 2666, - 2669, 2670, 2673, 2674, 2677, 2678, 2679, 2680, 2683, 2684, - 2687, 2688, 2691, 2699, 2700, 2701, 2702, 2703, 2704, 2714, - 2715, 2718, 2720, 2722, 2726, 2727, 2730, 2734, 2746, 2751, - 2752, 2755, 2757, 2759, 2763, 2769, 2775, 2783, 2784, 2786, - 2788, 2790, 2792, 2794, 2796, 2800, 2801, 2804, 2805, 2806, - 2809, 2810, 2813, 2828, 2835, 2844, 2845, 2848, 2855, 2863, - 2865, 2867, 2871, 2873, 2875, 2890, 2912, 2913, 2920, 2921, - 2922, 2925, 2933, 2934, 2943, 2949, 2954, 2960, 2968, 2970, - 2972, 2974, 2978, 2989, 2995, 3002, 3007, 3013, 3021, 3027, - 3040, 3067, 3086, 3106, 3107, 3108, 3109, 3112, 3113, 3116, - 3117, 3120, 3121, 3124, 3130, 3137, 3143, 3151, 3152, 3153, - 3154, 3155, 3156, 3159, 3160, 3163, 3164, 3165, 3166, 3167, - 3168, 3169, 3170, 3171, 3181, 3183, 3200, 3210, 3220, 3233, - 3246, 3252, 3258, 3262, 3268, 3269, 3270, 3271, 3272, 3273, - 3274, 3275, 3278, 3279, 3290, 3295, 3297, 3299, 3307, 3309, - 3311, 3313, 3315, 3317, 3319, 3321, 3323, 3325, 3327, 3329, - 3345, 3361, 3363, 3365, 3367, 3369, 3371, 3373, 3385, 3392, - 3399, 3414, 3429, 3451, 3466, 3488, 3495, 3502, 3512, 3519, - 3526, 3534, 3541, 3548, 3555, 3562, 3564, 3566, 3568, 3575, - 3585, 3595, 3605, 3615, 3621, 3627, 3627, 3641, 3641, 3655, - 3665, 3675, 3685, 3695, 3705, 3715, 3725, 3735, 3745, 3755, - 3765, 3775, 3785, 3795, 3805, 3815, 3825, 3835, 3845, 3855, - 3865, 3875, 3885, 3895, 3897, 3899, 3901, 3910, 3915, 3917, - 3925, 3927, 3929, 3931, 3933, 3935, 3937, 3939, 3941, 3957, - 3973, 3975, 3977, 3979, 3981, 3988, 3995, 4010, 4025, 4047, - 4062, 4084, 4091, 4098, 4105, 4113, 4120, 4127, 4134, 4143, - 4150, 4157, 4161, 4163, 4165, 4169, 4176, 4180, 4181, 4182, - 4185, 4187, 4191, 4196, 4198, 4200, 4202, 4204, 4206, 4208, - 4210, 4226, 4242, 4244, 4246, 4248, 4250, 4258, 4265, 4272, - 4279, 4287, 4294, 4301, 4308, 4317, 4321, 4325, 4327, 4336, - 4338, 4342, 4344, 4346, 4350, 4356, 4360, 4362, 4368, 4374, - 4378, 4380, 4401, 4409, 4420, 4438, 4440, 4444, 4453, 4454, - 4457, 4462, 4470, 4474, 4482, 4492, 4494, 4496, 4507, 4509, - 4511, 4526, 4533, 4540, 4559, 4561, 4566, 4573, 4580, 4592, - 4606, 4607, 4610, 4615, 4627, 4628, 4629, 4630, 4631, 4637, - 4638, 4640, 4641, 4646, 4653, 4660, 4667, 4675, 4677, 4687, - 4699, 4707, 4708, 4709, 4716, 4718, 4720, 4731, 4732, 4733, - 4734, 4735, 4736, 4737, 4738, 4739, 4740, 4741, 4742, 4743, - 4744, 4745, 4746, 4747, 4748, 4749, 4750, 4751, 4752, 4753, - 4754, 4755, 4756, 4757, 4758, 4759, 4760, 4761, 4762, 4763, - 4764, 4765, 4766, 4767, 4768, 4769, 4770, 4771, 4772, 4773, - 4774, 4775, 4776, 4777, 4778, 4779, 4780, 4781, 4782, 4783, - 4784, 4785, 4786, 4787, 4788, 4789, 4790, 4791, 4792, 4793, - 4794, 4795, 4796, 4797, 4798, 4799, 4800, 4801, 4814, 4815, - 4816, 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, - 4826, 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, - 4836, 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, - 4846, 4847, 4848, 4849, 4850, 4851, 4852, 4855, 4862 + 347, 349, 353, 355, 357, 361, 362, 363, 364, 365, + 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, + 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, + 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, + 396, 397, 398, 399, 400, 401, 402, 403, 413, 434, + 455, 463, 464, 467, 473, 479, 482, 488, 494, 497, + 501, 507, 508, 511, 512, 524, 531, 538, 545, 554, + 563, 576, 577, 580, 581, 582, 585, 591, 597, 605, + 611, 617, 633, 643, 647, 655, 657, 659, 661, 673, + 690, 703, 705, 714, 715, 716, 719, 720, 723, 724, + 730, 731, 742, 754, 761, 768, 771, 772, 775, 785, + 800, 801, 804, 811, 820, 829, 832, 839, 858, 867, + 876, 885, 894, 903, 912, 919, 924, 937, 939, 941, + 943, 945, 947, 949, 951, 953, 955, 957, 959, 961, + 966, 971, 973, 978, 984, 990, 992, 995, 997, 999, + 1005, 1007, 1013, 1015, 1023, 1029, 1033, 1041, 1050, 1059, + 1066, 1071, 1077, 1079, 1081, 1085, 1087, 1089, 1091, 1093, + 1095, 1097, 1099, 1101, 1103, 1105, 1107, 1112, 1117, 1119, + 1124, 1130, 1132, 1134, 1136, 1138, 1140, 1142, 1144, 1146, + 1148, 1150, 1152, 1154, 1156, 1158, 1160, 1162, 1169, 1176, + 1183, 1192, 1197, 1203, 1207, 1208, 1209, 1212, 1213, 1214, + 1217, 1218, 1221, 1222, 1223, 1224, 1227, 1228, 1231, 1241, + 1242, 1245, 1246, 1249, 1269, 1278, 1280, 1283, 1289, 1295, + 1301, 1307, 1313, 1321, 1322, 1324, 1328, 1335, 1339, 1354, + 1366, 1367, 1369, 1385, 1401, 1402, 1405, 1410, 1415, 1423, + 1424, 1425, 1428, 1434, 1435, 1438, 1439, 1442, 1444, 1446, + 1450, 1456, 1462, 1463, 1466, 1483, 1490, 1498, 1499, 1500, + 1503, 1504, 1505, 1506, 1507, 1510, 1513, 1514, 1517, 1523, + 1529, 1537, 1538, 1539, 1540, 1541, 1560, 1567, 1586, 1606, + 1622, 1623, 1624, 1625, 1630, 1633, 1634, 1635, 1636, 1637, + 1638, 1641, 1642, 1643, 1654, 1660, 1664, 1668, 1674, 1678, + 1684, 1688, 1692, 1696, 1700, 1706, 1710, 1714, 1720, 1724, + 1735, 1752, 1769, 1770, 1773, 1774, 1777, 1778, 1781, 1782, + 1785, 1795, 1805, 1806, 1807, 1816, 1817, 1818, 1829, 1846, + 1875, 1888, 1889, 1892, 1893, 1896, 1898, 1902, 1912, 1913, + 1933, 1942, 1943, 1944, 1945, 1949, 1958, 1959, 1963, 1973, + 1982, 1982, 1984, 1985, 1986, 1987, 1988, 1989, 1990, 1993, + 1997, 1999, 2001, 2014, 2026, 2027, 2030, 2031, 2044, 2046, + 2060, 2061, 2062, 2063, 2066, 2068, 2072, 2074, 2076, 2080, + 2088, 2099, 2100, 2101, 2102, 2105, 2106, 2118, 2126, 2134, + 2140, 2162, 2168, 2174, 2180, 2186, 2194, 2195, 2196, 2207, + 2228, 2244, 2268, 2282, 2283, 2286, 2287, 2290, 2291, 2292, + 2295, 2296, 2297, 2307, 2323, 2340, 2349, 2362, 2363, 2366, + 2367, 2370, 2371, 2374, 2376, 2388, 2409, 2410, 2411, 2412, + 2413, 2414, 2425, 2433, 2444, 2455, 2471, 2472, 2475, 2478, + 2482, 2499, 2509, 2517, 2543, 2560, 2577, 2578, 2588, 2609, + 2643, 2644, 2645, 2646, 2647, 2650, 2651, 2654, 2655, 2663, + 2675, 2694, 2711, 2717, 2721, 2727, 2731, 2747, 2748, 2751, + 2752, 2755, 2756, 2759, 2760, 2761, 2762, 2765, 2766, 2769, + 2770, 2773, 2781, 2782, 2783, 2784, 2785, 2786, 2796, 2797, + 2800, 2802, 2804, 2808, 2809, 2812, 2816, 2828, 2833, 2834, + 2837, 2839, 2841, 2845, 2851, 2857, 2865, 2866, 2868, 2870, + 2872, 2874, 2876, 2878, 2882, 2883, 2886, 2887, 2888, 2891, + 2892, 2895, 2910, 2917, 2926, 2927, 2930, 2937, 2945, 2947, + 2949, 2953, 2955, 2957, 2972, 2994, 2995, 3002, 3003, 3004, + 3007, 3015, 3016, 3025, 3031, 3036, 3042, 3050, 3052, 3054, + 3056, 3060, 3071, 3077, 3084, 3089, 3095, 3103, 3109, 3122, + 3149, 3168, 3188, 3189, 3190, 3191, 3194, 3195, 3198, 3199, + 3202, 3203, 3206, 3212, 3219, 3225, 3233, 3234, 3235, 3236, + 3237, 3238, 3241, 3242, 3245, 3246, 3247, 3248, 3249, 3250, + 3251, 3252, 3253, 3263, 3265, 3282, 3292, 3302, 3315, 3328, + 3334, 3340, 3344, 3350, 3351, 3352, 3353, 3354, 3355, 3356, + 3357, 3360, 3361, 3372, 3377, 3379, 3381, 3389, 3391, 3393, + 3395, 3397, 3399, 3401, 3403, 3405, 3407, 3409, 3411, 3427, + 3443, 3445, 3447, 3449, 3451, 3453, 3455, 3467, 3474, 3481, + 3496, 3511, 3533, 3548, 3570, 3577, 3584, 3594, 3601, 3608, + 3616, 3623, 3630, 3637, 3644, 3646, 3648, 3650, 3657, 3667, + 3677, 3687, 3697, 3703, 3709, 3709, 3723, 3723, 3737, 3747, + 3757, 3767, 3777, 3787, 3797, 3807, 3817, 3827, 3837, 3847, + 3857, 3867, 3877, 3887, 3897, 3907, 3917, 3927, 3937, 3947, + 3957, 3967, 3977, 3979, 3981, 3983, 3992, 3997, 3999, 4007, + 4009, 4011, 4013, 4015, 4017, 4019, 4021, 4023, 4039, 4055, + 4057, 4059, 4061, 4063, 4070, 4077, 4092, 4107, 4129, 4144, + 4166, 4173, 4180, 4187, 4195, 4202, 4209, 4216, 4225, 4232, + 4239, 4243, 4245, 4247, 4251, 4258, 4262, 4263, 4264, 4267, + 4269, 4273, 4278, 4280, 4282, 4284, 4286, 4288, 4290, 4292, + 4308, 4324, 4326, 4328, 4330, 4332, 4340, 4347, 4354, 4361, + 4369, 4376, 4383, 4390, 4399, 4403, 4407, 4409, 4418, 4420, + 4424, 4426, 4428, 4432, 4438, 4442, 4444, 4450, 4456, 4460, + 4462, 4483, 4491, 4502, 4520, 4522, 4526, 4535, 4536, 4539, + 4544, 4552, 4556, 4564, 4574, 4576, 4578, 4589, 4591, 4593, + 4608, 4615, 4622, 4641, 4643, 4648, 4655, 4662, 4674, 4688, + 4689, 4692, 4697, 4709, 4710, 4711, 4712, 4713, 4719, 4720, + 4722, 4723, 4728, 4735, 4742, 4749, 4757, 4759, 4769, 4781, + 4789, 4790, 4791, 4798, 4800, 4802, 4813, 4814, 4815, 4816, + 4817, 4818, 4819, 4820, 4821, 4822, 4823, 4824, 4825, 4826, + 4827, 4828, 4829, 4830, 4831, 4832, 4833, 4834, 4835, 4836, + 4837, 4838, 4839, 4840, 4841, 4842, 4843, 4844, 4845, 4846, + 4847, 4848, 4849, 4850, 4851, 4852, 4853, 4854, 4855, 4856, + 4857, 4858, 4859, 4860, 4861, 4862, 4863, 4864, 4865, 4866, + 4867, 4868, 4869, 4870, 4871, 4872, 4873, 4874, 4875, 4876, + 4877, 4878, 4879, 4880, 4881, 4882, 4883, 4896, 4897, 4898, + 4899, 4900, 4901, 4902, 4903, 4904, 4905, 4906, 4907, 4908, + 4909, 4910, 4911, 4912, 4913, 4914, 4915, 4916, 4917, 4918, + 4919, 4920, 4921, 4922, 4923, 4924, 4925, 4926, 4927, 4928, + 4929, 4930, 4931, 4932, 4933, 4934, 4937, 4944 }; #endif @@ -918,168 +928,170 @@ static const char * const yytname[] = { "$","error","$undefined.","ABSOLUTE", "DECLARE","DEFAULT","DELETE","DESC","DISTINCT","DOUBLE","DROP","ELSE","END_TRANS", "EXECUTE","EXISTS","EXTRACT","FALSE_P","FETCH","FLOAT","FOR","FOREIGN","FROM", "FULL","GRANT","GROUP","HAVING","HOUR_P","IN","INNER_P","INSENSITIVE","INSERT", -"INTERVAL","INTO","IS","JOIN","KEY","LANGUAGE","LEADING","LEFT","LIKE","LOCAL", -"MATCH","MINUTE_P","MONTH_P","NAMES","NATIONAL","NATURAL","NCHAR","NEXT","NO", -"NOT","NULLIF","NULL_P","NUMERIC","OF","ON","ONLY","OPTION","OR","ORDER","OUTER_P", -"PARTIAL","POSITION","PRECISION","PRIMARY","PRIOR","PRIVILEGES","PROCEDURE", -"PUBLIC","READ","REFERENCES","RELATIVE","REVOKE","RIGHT","ROLLBACK","SCROLL", -"SECOND_P","SELECT","SET","SUBSTRING","TABLE","THEN","TIME","TIMESTAMP","TIMEZONE_HOUR", -"TIMEZONE_MINUTE","TO","TRAILING","TRANSACTION","TRIM","TRUE_P","UNION","UNIQUE", -"UPDATE","USER","USING","VALUES","VARCHAR","VARYING","VIEW","WHEN","WHERE","WITH", -"WORK","YEAR_P","ZONE","TRIGGER","TYPE_P","ABORT_TRANS","AFTER","AGGREGATE", -"ANALYZE","BACKWARD","BEFORE","BINARY","CACHE","CLUSTER","COPY","CREATEDB","CREATEUSER", -"CYCLE","DATABASE","DELIMITERS","DO","EACH","ENCODING","EXPLAIN","EXTEND","FORWARD", -"FUNCTION","HANDLER","INCREMENT","INDEX","INHERITS","INSTEAD","ISNULL","LANCOMPILER", -"LISTEN","LOAD","LOCATION","LOCK_P","MAXVALUE","MINVALUE","MOVE","NEW","NOCREATEDB", -"NOCREATEUSER","NONE","NOTHING","NOTIFY","NOTNULL","OIDS","OPERATOR","PASSWORD", -"PROCEDURAL","RECIPE","RENAME","RESET","RETURNS","ROW","RULE","SEQUENCE","SERIAL", -"SETOF","SHOW","START","STATEMENT","STDIN","STDOUT","TRUSTED","UNLISTEN","UNTIL", -"VACUUM","VALID","VERBOSE","VERSION","IDENT","SCONST","Op","ICONST","PARAM", -"FCONST","OP","'='","'<'","'>'","'+'","'-'","'*'","'/'","'|'","':'","';'","UMINUS", -"'.'","'['","']'","TYPECAST","','","'('","')'","stmtblock","stmtmulti","stmt", -"CreateUserStmt","AlterUserStmt","DropUserStmt","user_passwd_clause","user_createdb_clause", -"user_createuser_clause","user_group_list","user_group_clause","user_valid_clause", -"VariableSetStmt","var_value","zone_value","VariableShowStmt","VariableResetStmt", -"AddAttrStmt","alter_clause","ClosePortalStmt","CopyStmt","copy_dirn","copy_file_name", -"opt_binary","opt_with_copy","copy_delimiter","CreateStmt","OptTableElementList", -"OptTableElement","columnDef","ColQualifier","ColQualList","ColPrimaryKey","ColConstraint", -"ColConstraintElem","default_list","default_expr","TableConstraint","ConstraintElem", -"constraint_list","constraint_expr","c_list","c_expr","key_match","key_actions", -"key_action","key_reference","OptInherit","CreateAsStmt","OptCreateAs","CreateAsList", -"CreateAsElement","CreateSeqStmt","OptSeqList","OptSeqElem","NumericOnly","FloatOnly", -"IntegerOnly","CreatePLangStmt","PLangTrusted","DropPLangStmt","CreateTrigStmt", -"TriggerActionTime","TriggerEvents","TriggerOneEvent","TriggerForSpec","TriggerForOpt", -"TriggerForType","TriggerFuncArgs","TriggerFuncArg","DropTrigStmt","DefineStmt", -"def_rest","def_type","def_name","definition","def_list","def_elem","def_arg", -"DestroyStmt","FetchStmt","opt_direction","fetch_how_many","opt_portal_name", -"GrantStmt","privileges","operation_commalist","operation","grantee","opt_with_grant", -"RevokeStmt","IndexStmt","index_opt_unique","access_method_clause","index_params", -"index_list","func_index","index_elem","opt_type","opt_class","ExtendStmt","RecipeStmt", -"ProcedureStmt","opt_with","func_args","func_args_list","func_return","set_opt", -"RemoveStmt","remove_type","RemoveAggrStmt","aggr_argtype","RemoveFuncStmt", -"RemoveOperStmt","all_Op","MathOp","oper_argtypes","RenameStmt","opt_name","opt_column", -"RuleStmt","@1","OptStmtList","OptStmtBlock","OptStmtMulti","event_object","event", -"opt_instead","NotifyStmt","ListenStmt","UnlistenStmt","TransactionStmt","opt_trans", -"ViewStmt","LoadStmt","CreatedbStmt","opt_database1","opt_database2","location", -"encoding","DestroydbStmt","ClusterStmt","VacuumStmt","opt_verbose","opt_analyze", -"opt_va_list","va_list","ExplainStmt","OptimizableStmt","InsertStmt","insert_rest", -"opt_column_list","columnList","columnElem","DeleteStmt","LockStmt","UpdateStmt", -"CursorStmt","opt_cursor","cursor_clause","opt_readonly","opt_of","SelectStmt", -"SubSelect","union_clause","select_list","SubUnion","result","opt_table","opt_union", -"opt_unique","sort_clause","sortby_list","sortby","OptUseOp","opt_inh_star", -"relation_name_list","name_list","group_clause","having_clause","from_clause", -"from_list","from_val","join_expr","join_outer","join_spec","join_list","join_using", -"where_clause","relation_expr","opt_array_bounds","nest_array_bounds","Typename", -"Array","Generic","generic","Numeric","numeric","opt_float","opt_numeric","opt_decimal", -"Character","character","opt_varying","opt_charset","opt_collate","Datetime", -"datetime","opt_timezone","opt_interval","a_expr_or_null","row_expr","row_descriptor", -"row_list","row_op","sub_type","a_expr","@2","@3","b_expr","opt_indirection", -"expr_list","extract_list","extract_arg","position_list","position_expr","substr_list", -"substr_from","substr_for","trim_list","in_expr","in_expr_nodes","not_in_expr", -"not_in_expr_nodes","case_expr","when_clause_list","when_clause","case_default", -"case_arg","attr","attrs","res_target_list","res_target_el","res_target_list2", -"res_target_el2","opt_id","relation_name","database_name","access_method","attr_name", -"class","index_name","name","func_name","file_name","recipe_name","AexprConst", -"ParamNo","Iconst","Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation", NULL +"INTERVAL","INTO","IS","ISOLATION","JOIN","KEY","LANGUAGE","LEADING","LEFT", +"LEVEL","LIKE","LOCAL","MATCH","MINUTE_P","MONTH_P","NAMES","NATIONAL","NATURAL", +"NCHAR","NEXT","NO","NOT","NULLIF","NULL_P","NUMERIC","OF","ON","ONLY","OPTION", +"OR","ORDER","OUTER_P","PARTIAL","POSITION","PRECISION","PRIMARY","PRIOR","PRIVILEGES", +"PROCEDURE","PUBLIC","READ","REFERENCES","RELATIVE","REVOKE","RIGHT","ROLLBACK", +"SCROLL","SECOND_P","SELECT","SET","SUBSTRING","TABLE","THEN","TIME","TIMESTAMP", +"TIMEZONE_HOUR","TIMEZONE_MINUTE","TO","TRAILING","TRANSACTION","TRIM","TRUE_P", +"UNION","UNIQUE","UPDATE","USER","USING","VALUES","VARCHAR","VARYING","VIEW", +"WHEN","WHERE","WITH","WORK","YEAR_P","ZONE","TRIGGER","TYPE_P","ABORT_TRANS", +"AFTER","AGGREGATE","ANALYZE","BACKWARD","BEFORE","BINARY","CACHE","CLUSTER", +"COPY","CREATEDB","CREATEUSER","CYCLE","DATABASE","DELIMITERS","DO","EACH","ENCODING", +"EXPLAIN","EXTEND","FORWARD","FUNCTION","HANDLER","INCREMENT","INDEX","INHERITS", +"INSTEAD","ISNULL","LANCOMPILER","LISTEN","LOAD","LOCATION","LOCK_P","MAXVALUE", +"MINVALUE","MOVE","NEW","NOCREATEDB","NOCREATEUSER","NONE","NOTHING","NOTIFY", +"NOTNULL","OIDS","OPERATOR","PASSWORD","PROCEDURAL","RECIPE","RENAME","RESET", +"RETURNS","ROW","RULE","SEQUENCE","SERIAL","SETOF","SHOW","START","STATEMENT", +"STDIN","STDOUT","TRUSTED","UNLISTEN","UNTIL","VACUUM","VALID","VERBOSE","VERSION", +"IDENT","SCONST","Op","ICONST","PARAM","FCONST","OP","'='","'<'","'>'","'+'", +"'-'","'*'","'/'","'|'","':'","';'","UMINUS","'.'","'['","']'","TYPECAST","','", +"'('","')'","stmtblock","stmtmulti","stmt","CreateUserStmt","AlterUserStmt", +"DropUserStmt","user_passwd_clause","user_createdb_clause","user_createuser_clause", +"user_group_list","user_group_clause","user_valid_clause","VariableSetStmt", +"var_value","zone_value","VariableShowStmt","VariableResetStmt","AddAttrStmt", +"alter_clause","ClosePortalStmt","CopyStmt","copy_dirn","copy_file_name","opt_binary", +"opt_with_copy","copy_delimiter","CreateStmt","OptTableElementList","OptTableElement", +"columnDef","ColQualifier","ColQualList","ColPrimaryKey","ColConstraint","ColConstraintElem", +"default_list","default_expr","TableConstraint","ConstraintElem","constraint_list", +"constraint_expr","c_list","c_expr","key_match","key_actions","key_action","key_reference", +"OptInherit","CreateAsStmt","OptCreateAs","CreateAsList","CreateAsElement","CreateSeqStmt", +"OptSeqList","OptSeqElem","NumericOnly","FloatOnly","IntegerOnly","CreatePLangStmt", +"PLangTrusted","DropPLangStmt","CreateTrigStmt","TriggerActionTime","TriggerEvents", +"TriggerOneEvent","TriggerForSpec","TriggerForOpt","TriggerForType","TriggerFuncArgs", +"TriggerFuncArg","DropTrigStmt","DefineStmt","def_rest","def_type","def_name", +"definition","def_list","def_elem","def_arg","DestroyStmt","FetchStmt","opt_direction", +"fetch_how_many","opt_portal_name","GrantStmt","privileges","operation_commalist", +"operation","grantee","opt_with_grant","RevokeStmt","IndexStmt","index_opt_unique", +"access_method_clause","index_params","index_list","func_index","index_elem", +"opt_type","opt_class","ExtendStmt","RecipeStmt","ProcedureStmt","opt_with", +"func_args","func_args_list","func_return","set_opt","RemoveStmt","remove_type", +"RemoveAggrStmt","aggr_argtype","RemoveFuncStmt","RemoveOperStmt","all_Op","MathOp", +"oper_argtypes","RenameStmt","opt_name","opt_column","RuleStmt","@1","OptStmtList", +"OptStmtBlock","OptStmtMulti","event_object","event","opt_instead","NotifyStmt", +"ListenStmt","UnlistenStmt","TransactionStmt","opt_trans","ViewStmt","LoadStmt", +"CreatedbStmt","opt_database1","opt_database2","location","encoding","DestroydbStmt", +"ClusterStmt","VacuumStmt","opt_verbose","opt_analyze","opt_va_list","va_list", +"ExplainStmt","OptimizableStmt","InsertStmt","insert_rest","opt_column_list", +"columnList","columnElem","DeleteStmt","LockStmt","opt_lmode","UpdateStmt","CursorStmt", +"opt_cursor","cursor_clause","opt_readonly","opt_of","SelectStmt","SubSelect", +"union_clause","select_list","SubUnion","result","opt_table","opt_union","opt_unique", +"sort_clause","sortby_list","sortby","OptUseOp","opt_inh_star","relation_name_list", +"name_list","group_clause","having_clause","from_clause","from_list","from_val", +"join_expr","join_outer","join_spec","join_list","join_using","where_clause", +"relation_expr","opt_array_bounds","nest_array_bounds","Typename","Array","Generic", +"generic","Numeric","numeric","opt_float","opt_numeric","opt_decimal","Character", +"character","opt_varying","opt_charset","opt_collate","Datetime","datetime", +"opt_timezone","opt_interval","a_expr_or_null","row_expr","row_descriptor","row_list", +"row_op","sub_type","a_expr","@2","@3","b_expr","opt_indirection","expr_list", +"extract_list","extract_arg","position_list","position_expr","substr_list","substr_from", +"substr_for","trim_list","in_expr","in_expr_nodes","not_in_expr","not_in_expr_nodes", +"case_expr","when_clause_list","when_clause","case_default","case_arg","attr", +"attrs","res_target_list","res_target_el","res_target_list2","res_target_el2", +"opt_id","relation_name","database_name","access_method","attr_name","class", +"index_name","name","func_name","file_name","recipe_name","AexprConst","ParamNo", +"Iconst","Sconst","UserId","TypeId","ColId","ColLabel","SpecialRuleRelation", NULL }; #endif static const short yyr1[] = { 0, - 235, 235, 236, 236, 236, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 237, 237, - 237, 237, 237, 237, 237, 237, 237, 237, 238, 239, - 240, 241, 241, 242, 242, 242, 243, 243, 243, 244, - 244, 245, 245, 246, 246, 247, 247, 247, 247, 248, - 248, 249, 249, 249, 250, 250, 251, 251, 252, 253, - 253, 253, 253, 253, 253, 254, 255, 256, 256, 257, - 257, 257, 258, 258, 259, 259, 260, 260, 261, 262, - 262, 262, 263, 263, 264, 264, 265, 265, 266, 266, - 267, 267, 268, 268, 269, 269, 269, 269, 269, 269, - 269, 270, 270, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 271, 271, 271, 271, 271, 271, 271, 271, 271, 271, - 272, 272, 273, 273, 273, 273, 274, 274, 275, 275, - 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, - 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, - 275, 275, 275, 275, 275, 275, 275, 275, 275, 275, - 275, 275, 275, 275, 275, 275, 275, 276, 276, 277, - 278, 278, 278, 279, 279, 279, 280, 280, 281, 281, - 281, 281, 282, 282, 283, 284, 284, 285, 285, 286, - 287, 288, 288, 289, 289, 289, 289, 289, 289, 290, - 290, 291, 291, 292, 292, 293, 294, 294, 295, 296, - 297, 297, 298, 298, 298, 299, 299, 299, 300, 301, - 301, 302, 302, 303, 303, 303, 304, 304, 304, 304, - 305, 306, 307, 308, 308, 308, 309, 309, 309, 309, - 309, 310, 311, 311, 312, 312, 312, 313, 313, 313, - 313, 313, 314, 314, 315, 315, 316, 316, 316, 316, - 316, 317, 317, 317, 317, 317, 317, 318, 318, 318, - 319, 320, 320, 320, 321, 321, 322, 322, 322, 322, - 322, 323, 323, 323, 324, 324, 325, 326, 327, 327, - 328, 328, 329, 329, 330, 330, 331, 332, 333, 333, - 333, 334, 334, 334, 335, 336, 337, 338, 338, 339, - 339, 340, 340, 341, 342, 342, 343, 344, 344, 344, - 344, 345, 346, 346, 347, 348, 349, 349, 350, 350, - 350, 350, 350, 350, 350, 351, 351, 351, 351, 352, - 353, 353, 354, 354, 356, 355, 357, 357, 357, 357, - 358, 358, 359, 359, 359, 360, 360, 361, 361, 361, - 361, 362, 362, 363, 364, 365, 365, 366, 366, 366, - 366, 366, 367, 367, 367, 368, 369, 370, 370, 371, - 371, 372, 372, 373, 373, 373, 374, 374, 374, 375, - 376, 377, 377, 378, 378, 379, 379, 380, 380, 381, - 381, 382, 383, 383, 383, 383, 383, 383, 384, 385, - 385, 385, 386, 386, 387, 387, 388, 389, 390, 391, - 392, 393, 393, 393, 393, 393, 394, 394, 395, 395, - 396, 397, 398, 399, 399, 400, 400, 401, 402, 402, - 403, 403, 404, 404, 405, 405, 405, 405, 406, 406, - 407, 407, 408, 409, 409, 409, 409, 409, 409, 410, - 410, 411, 412, 412, 413, 413, 414, 414, 415, 415, - 415, 416, 416, 416, 417, 417, 417, 418, 418, 418, - 418, 418, 418, 418, 418, 419, 419, 420, 420, 420, - 421, 421, 422, 422, 422, 423, 423, 424, 424, 425, - 425, 425, 426, 426, 426, 427, 427, 427, 428, 428, - 428, 429, 430, 430, 431, 431, 431, 431, 432, 432, - 432, 432, 433, 433, 434, 434, 434, 435, 435, 435, - 436, 436, 437, 437, 437, 437, 437, 438, 438, 439, - 439, 440, 440, 441, 441, 441, 441, 442, 442, 442, - 442, 442, 442, 443, 443, 444, 444, 444, 444, 444, - 444, 444, 444, 444, 445, 445, 446, 446, 446, 446, - 446, 447, 448, 448, 449, 449, 449, 449, 449, 449, - 449, 449, 450, 450, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 452, 451, 453, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 451, 451, 451, - 451, 451, 451, 451, 451, 451, 451, 454, 454, 454, + 237, 237, 238, 238, 238, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 239, 239, + 239, 239, 239, 239, 239, 239, 239, 239, 240, 241, + 242, 243, 243, 244, 244, 244, 245, 245, 245, 246, + 246, 247, 247, 248, 248, 249, 249, 249, 249, 249, + 249, 250, 250, 251, 251, 251, 252, 252, 252, 253, + 253, 253, 254, 255, 255, 255, 255, 255, 255, 256, + 257, 258, 258, 259, 259, 259, 260, 260, 261, 261, + 262, 262, 263, 264, 264, 264, 265, 265, 266, 266, + 267, 267, 268, 268, 269, 269, 270, 270, 271, 271, + 271, 271, 271, 271, 271, 272, 272, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 273, 273, 273, 273, 273, 273, 273, 273, + 273, 273, 273, 273, 274, 274, 275, 275, 275, 275, + 276, 276, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 277, 277, 277, 277, 277, 277, 277, 277, 277, + 277, 278, 278, 279, 280, 280, 280, 281, 281, 281, + 282, 282, 283, 283, 283, 283, 284, 284, 285, 286, + 286, 287, 287, 288, 289, 290, 290, 291, 291, 291, + 291, 291, 291, 292, 292, 293, 293, 294, 294, 295, + 296, 296, 297, 298, 299, 299, 300, 300, 300, 301, + 301, 301, 302, 303, 303, 304, 304, 305, 305, 305, + 306, 306, 306, 306, 307, 308, 309, 310, 310, 310, + 311, 311, 311, 311, 311, 312, 313, 313, 314, 314, + 314, 315, 315, 315, 315, 315, 316, 316, 317, 317, + 318, 318, 318, 318, 318, 319, 319, 319, 319, 319, + 319, 320, 320, 320, 321, 322, 322, 322, 323, 323, + 324, 324, 324, 324, 324, 325, 325, 325, 326, 326, + 327, 328, 329, 329, 330, 330, 331, 331, 332, 332, + 333, 334, 335, 335, 335, 336, 336, 336, 337, 338, + 339, 340, 340, 341, 341, 342, 342, 343, 344, 344, + 345, 346, 346, 346, 346, 347, 348, 348, 349, 350, + 351, 351, 352, 352, 352, 352, 352, 352, 352, 353, + 353, 353, 353, 354, 355, 355, 356, 356, 358, 357, + 359, 359, 359, 359, 360, 360, 361, 361, 361, 362, + 362, 363, 363, 363, 363, 364, 364, 365, 366, 367, + 367, 368, 368, 368, 368, 368, 369, 369, 369, 370, + 371, 372, 372, 373, 373, 374, 374, 375, 375, 375, + 376, 376, 376, 377, 378, 379, 379, 380, 380, 381, + 381, 382, 382, 383, 383, 384, 385, 385, 385, 385, + 385, 385, 386, 387, 387, 387, 388, 388, 389, 389, + 390, 391, 392, 392, 392, 392, 393, 393, 394, 395, + 396, 396, 396, 396, 396, 397, 397, 398, 398, 399, + 400, 401, 402, 402, 403, 403, 404, 405, 405, 406, + 406, 407, 407, 408, 408, 408, 408, 409, 409, 410, + 410, 411, 412, 412, 412, 412, 412, 412, 413, 413, + 414, 415, 415, 416, 416, 417, 417, 418, 418, 418, + 419, 419, 419, 420, 420, 420, 421, 421, 421, 421, + 421, 421, 421, 421, 422, 422, 423, 423, 423, 424, + 424, 425, 425, 425, 426, 426, 427, 427, 428, 428, + 428, 429, 429, 429, 430, 430, 430, 431, 431, 431, + 432, 433, 433, 434, 434, 434, 434, 435, 435, 435, + 435, 436, 436, 437, 437, 437, 438, 438, 438, 439, + 439, 440, 440, 440, 440, 440, 441, 441, 442, 442, + 443, 443, 444, 444, 444, 444, 445, 445, 445, 445, + 445, 445, 446, 446, 447, 447, 447, 447, 447, 447, + 447, 447, 447, 448, 448, 449, 449, 449, 449, 449, + 450, 451, 451, 452, 452, 452, 452, 452, 452, 452, + 452, 453, 453, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, - 454, 454, 454, 454, 454, 454, 454, 454, 454, 455, - 455, 455, 456, 456, 456, 457, 457, 458, 458, 458, - 459, 459, 460, 460, 460, 460, 460, 460, 460, 460, - 460, 460, 460, 460, 460, 460, 460, 460, 460, 460, - 460, 460, 460, 460, 460, 461, 461, 462, 462, 463, - 463, 464, 464, 464, 465, 465, 466, 466, 467, 467, - 468, 468, 469, 469, 469, 470, 470, 471, 472, 472, - 473, 473, 473, 474, 474, 475, 475, 475, 476, 476, - 476, 477, 477, 477, 478, 478, 479, 479, 479, 479, - 480, 480, 481, 481, 482, 483, 484, 485, 486, 487, - 488, 489, 490, 491, 491, 491, 491, 491, 491, 491, - 492, 493, 494, 495, 496, 496, 496, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 497, 497, - 497, 497, 497, 497, 497, 497, 497, 497, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 498, 498, 498, - 498, 498, 498, 498, 498, 498, 498, 499, 499 + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 455, 454, 456, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 454, 454, 454, 454, + 454, 454, 454, 454, 454, 454, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 457, 457, + 457, 457, 457, 457, 457, 457, 457, 457, 458, 458, + 458, 459, 459, 459, 460, 460, 461, 461, 461, 462, + 462, 463, 463, 463, 463, 463, 463, 463, 463, 463, + 463, 463, 463, 463, 463, 463, 463, 463, 463, 463, + 463, 463, 463, 463, 464, 464, 465, 465, 466, 466, + 467, 467, 467, 468, 468, 469, 469, 470, 470, 471, + 471, 472, 472, 472, 473, 473, 474, 475, 475, 476, + 476, 476, 477, 477, 478, 478, 478, 479, 479, 479, + 480, 480, 480, 481, 481, 482, 482, 482, 482, 483, + 483, 484, 484, 485, 486, 487, 488, 489, 490, 491, + 492, 493, 494, 494, 494, 494, 494, 494, 494, 495, + 496, 497, 498, 499, 499, 499, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 500, 500, 500, + 500, 500, 500, 500, 500, 500, 500, 501, 501, 501, + 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, + 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, + 501, 501, 501, 501, 501, 501, 501, 501, 501, 501, + 501, 501, 501, 501, 501, 501, 502, 502 }; static const short yyr2[] = { 0, @@ -1089,84 +1101,84 @@ static const short yyr2[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 8, 3, 3, 0, 1, 1, 0, 1, 1, 0, 3, - 1, 3, 0, 3, 0, 4, 4, 4, 3, 1, - 1, 1, 1, 1, 2, 3, 2, 3, 5, 3, - 4, 3, 6, 5, 2, 2, 7, 1, 1, 1, - 1, 1, 1, 0, 2, 0, 3, 0, 7, 3, - 1, 0, 1, 1, 3, 3, 1, 0, 2, 1, - 2, 0, 3, 1, 4, 2, 2, 2, 1, 2, - 5, 3, 1, 1, 2, 3, 3, 3, 3, 3, - 3, 3, 2, 2, 2, 3, 6, 3, 3, 4, - 3, 2, 2, 1, 1, 4, 1, 4, 1, 1, - 3, 1, 4, 4, 5, 10, 3, 1, 1, 1, - 1, 2, 3, 3, 3, 3, 3, 3, 3, 2, - 2, 2, 3, 6, 3, 3, 4, 3, 3, 4, - 3, 3, 2, 2, 2, 2, 3, 2, 4, 3, - 3, 4, 4, 5, 6, 5, 6, 3, 1, 1, - 2, 2, 0, 2, 1, 0, 3, 3, 2, 1, - 2, 2, 4, 0, 6, 3, 0, 3, 1, 1, - 4, 2, 0, 2, 1, 2, 2, 2, 2, 1, - 1, 1, 2, 1, 2, 9, 1, 0, 4, 14, - 1, 1, 1, 3, 5, 1, 1, 1, 3, 1, - 0, 1, 1, 1, 3, 0, 1, 1, 1, 1, - 5, 3, 2, 1, 1, 1, 1, 1, 1, 1, - 1, 3, 1, 3, 3, 1, 3, 1, 1, 1, - 1, 2, 3, 3, 4, 4, 1, 1, 1, 1, - 0, 1, 2, 1, 1, 1, 0, 2, 2, 0, - 7, 2, 1, 1, 1, 3, 1, 1, 1, 1, - 1, 1, 2, 1, 3, 0, 6, 11, 1, 0, - 2, 0, 1, 1, 3, 1, 6, 3, 2, 2, - 0, 1, 2, 0, 4, 3, 11, 2, 0, 3, - 2, 1, 3, 2, 1, 0, 3, 1, 1, 1, - 1, 4, 1, 1, 4, 6, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 3, 3, 3, 9, - 1, 0, 1, 0, 0, 13, 1, 1, 3, 3, - 1, 1, 3, 2, 2, 3, 1, 1, 1, 1, - 1, 1, 0, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 1, 1, 0, 5, 2, 6, 3, 3, - 0, 3, 0, 1, 1, 0, 1, 1, 0, 3, - 4, 3, 5, 1, 0, 1, 0, 3, 0, 1, - 3, 3, 1, 1, 1, 1, 1, 1, 5, 4, - 2, 8, 3, 0, 3, 1, 2, 4, 3, 6, - 15, 1, 1, 1, 2, 0, 2, 0, 2, 2, - 2, 10, 8, 3, 0, 4, 1, 7, 3, 0, - 1, 0, 1, 0, 1, 3, 1, 0, 3, 0, - 1, 3, 2, 2, 2, 2, 1, 1, 0, 1, - 0, 1, 1, 3, 3, 0, 2, 0, 8, 2, - 0, 3, 4, 1, 3, 2, 1, 2, 2, 2, - 2, 1, 1, 1, 0, 1, 0, 4, 4, 0, - 1, 3, 1, 3, 1, 2, 0, 1, 2, 3, - 4, 0, 3, 4, 0, 2, 1, 2, 1, 1, - 1, 1, 1, 1, 2, 2, 2, 2, 1, 2, - 1, 1, 3, 0, 5, 3, 0, 5, 3, 0, - 4, 1, 4, 2, 1, 3, 2, 1, 0, 3, - 0, 2, 0, 1, 2, 1, 2, 1, 1, 1, - 1, 1, 1, 3, 0, 1, 3, 3, 3, 3, - 3, 3, 3, 0, 1, 1, 7, 8, 8, 7, - 7, 3, 3, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 2, 1, 1, 1, 2, 3, + 1, 3, 0, 3, 0, 4, 4, 4, 6, 5, + 3, 1, 1, 1, 1, 1, 2, 3, 4, 2, + 3, 4, 5, 3, 4, 3, 6, 5, 2, 2, + 7, 1, 1, 1, 1, 1, 1, 0, 2, 0, + 3, 0, 7, 3, 1, 0, 1, 1, 3, 3, + 1, 0, 2, 1, 2, 0, 3, 1, 4, 2, + 2, 2, 1, 2, 5, 3, 1, 1, 2, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 3, - 6, 3, 3, 3, 4, 2, 2, 4, 3, 4, - 1, 1, 4, 1, 4, 1, 1, 4, 4, 4, - 4, 5, 5, 5, 4, 2, 3, 2, 4, 3, - 4, 3, 4, 5, 6, 0, 6, 0, 7, 5, - 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, + 6, 3, 3, 4, 3, 2, 2, 1, 1, 4, + 1, 4, 1, 1, 3, 1, 4, 4, 5, 10, + 3, 1, 1, 1, 1, 2, 3, 3, 3, 3, + 3, 3, 3, 2, 2, 2, 3, 6, 3, 3, + 4, 3, 3, 4, 3, 3, 2, 2, 2, 2, + 3, 2, 4, 3, 3, 4, 4, 5, 6, 5, + 6, 3, 1, 1, 2, 2, 0, 2, 1, 0, + 3, 3, 2, 1, 2, 2, 4, 0, 6, 3, + 0, 3, 1, 1, 4, 2, 0, 2, 1, 2, + 2, 2, 2, 1, 1, 1, 2, 1, 2, 9, + 1, 0, 4, 14, 1, 1, 1, 3, 5, 1, + 1, 1, 3, 1, 0, 1, 1, 1, 3, 0, + 1, 1, 1, 1, 5, 3, 2, 1, 1, 1, + 1, 1, 1, 1, 1, 3, 1, 3, 3, 1, + 3, 1, 1, 1, 1, 2, 3, 3, 4, 4, + 1, 1, 1, 1, 0, 1, 2, 1, 1, 1, + 0, 2, 2, 0, 7, 2, 1, 1, 1, 3, + 1, 1, 1, 1, 1, 1, 2, 1, 3, 0, + 6, 11, 1, 0, 2, 0, 1, 1, 3, 1, + 6, 3, 2, 2, 0, 1, 2, 0, 4, 3, + 11, 2, 0, 3, 2, 1, 3, 2, 1, 0, + 3, 1, 1, 1, 1, 4, 1, 1, 4, 6, + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 9, 1, 0, 1, 0, 0, 13, + 1, 1, 3, 3, 1, 1, 3, 2, 2, 3, + 1, 1, 1, 1, 1, 1, 0, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 1, 1, 0, 5, + 2, 6, 3, 3, 0, 3, 0, 1, 1, 0, + 1, 1, 0, 3, 4, 3, 5, 1, 0, 1, + 0, 3, 0, 1, 3, 3, 1, 1, 1, 1, + 1, 1, 5, 4, 2, 8, 3, 0, 3, 1, + 2, 4, 3, 8, 7, 6, 1, 0, 6, 15, + 1, 1, 1, 2, 0, 2, 0, 2, 2, 2, + 10, 8, 3, 0, 4, 1, 7, 3, 0, 1, + 0, 1, 0, 1, 3, 1, 0, 3, 0, 1, + 3, 2, 2, 2, 2, 1, 1, 0, 1, 0, + 1, 1, 3, 3, 0, 2, 0, 8, 2, 0, + 3, 4, 1, 3, 2, 1, 2, 2, 2, 2, + 1, 1, 1, 0, 1, 0, 4, 4, 0, 1, + 3, 1, 3, 1, 2, 0, 1, 2, 3, 4, + 0, 3, 4, 0, 2, 1, 2, 1, 1, 1, + 1, 1, 1, 2, 2, 2, 2, 1, 2, 1, + 1, 3, 0, 5, 3, 0, 5, 3, 0, 4, + 1, 4, 2, 1, 3, 2, 1, 0, 3, 0, + 2, 0, 1, 2, 1, 2, 1, 1, 1, 1, + 1, 1, 3, 0, 1, 3, 3, 3, 3, 3, + 3, 3, 0, 1, 1, 7, 8, 8, 7, 7, + 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 2, 1, 1, 1, 2, 3, 3, + 3, 3, 3, 3, 3, 2, 2, 2, 3, 6, + 3, 3, 3, 4, 2, 2, 4, 3, 4, 1, + 1, 4, 1, 4, 1, 1, 4, 4, 4, 4, + 5, 5, 5, 4, 2, 3, 2, 4, 3, 4, + 3, 4, 5, 6, 0, 6, 0, 7, 5, 5, + 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, - 6, 6, 6, 3, 3, 2, 1, 2, 1, 1, - 2, 3, 3, 3, 3, 2, 2, 2, 3, 6, - 3, 3, 2, 2, 3, 4, 1, 1, 4, 1, - 4, 1, 1, 4, 4, 5, 5, 5, 4, 4, - 6, 0, 1, 3, 3, 3, 0, 1, 1, 1, - 3, 0, 2, 1, 2, 3, 3, 3, 3, 2, - 3, 6, 3, 3, 2, 2, 1, 3, 4, 4, - 4, 5, 5, 5, 4, 3, 0, 2, 0, 2, - 0, 3, 2, 1, 1, 1, 1, 3, 1, 1, - 1, 3, 5, 6, 4, 2, 1, 4, 2, 0, - 2, 1, 0, 3, 3, 1, 3, 3, 3, 1, - 1, 4, 2, 3, 3, 1, 3, 1, 3, 1, - 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 6, 6, 3, 3, 2, 1, 2, 1, 1, 2, + 3, 3, 3, 3, 2, 2, 2, 3, 6, 3, + 3, 2, 2, 3, 4, 1, 1, 4, 1, 4, + 1, 1, 4, 4, 5, 5, 5, 4, 4, 6, + 0, 1, 3, 3, 3, 0, 1, 1, 1, 3, + 0, 2, 1, 2, 3, 3, 3, 3, 2, 3, + 6, 3, 3, 2, 2, 1, 3, 4, 4, 4, + 5, 5, 5, 4, 3, 0, 2, 0, 2, 0, + 3, 2, 1, 1, 1, 1, 3, 1, 1, 1, + 3, 5, 6, 4, 2, 1, 4, 2, 0, 2, + 1, 0, 3, 3, 1, 3, 3, 3, 1, 1, + 4, 2, 3, 3, 1, 3, 1, 3, 1, 1, + 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 2, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1177,221 +1189,224 @@ static const short yyr2[] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 1, 1, 1, 1 }; static const short yydefact[] = { 0, - 0, 405, 812, 405, 238, 0, 0, 0, 405, 0, - 291, 0, 0, 0, 405, 478, 0, 0, 405, 0, - 94, 425, 0, 0, 0, 472, 291, 0, 0, 0, - 0, 425, 1, 2, 15, 7, 21, 46, 47, 48, + 0, 409, 821, 409, 242, 0, 0, 0, 409, 0, + 295, 0, 0, 0, 409, 487, 0, 0, 409, 0, + 98, 429, 0, 0, 0, 481, 295, 0, 0, 0, + 0, 429, 1, 2, 15, 7, 21, 46, 47, 48, 6, 8, 9, 10, 11, 12, 13, 19, 14, 20, 17, 18, 24, 25, 37, 26, 22, 31, 30, 35, - 32, 34, 33, 36, 39, 437, 27, 28, 40, 41, - 42, 43, 44, 16, 45, 23, 38, 436, 438, 29, - 435, 434, 433, 0, 0, 404, 403, 399, 840, 841, - 580, 852, 581, 861, 864, 865, 868, 582, 579, 871, - 876, 878, 880, 882, 883, 885, 887, 892, 583, 899, - 900, 901, 902, 578, 908, 903, 905, 842, 843, 844, - 845, 846, 847, 848, 849, 850, 851, 853, 854, 855, - 856, 857, 858, 859, 860, 862, 863, 866, 867, 869, - 870, 872, 873, 874, 875, 877, 879, 881, 884, 886, - 888, 889, 890, 891, 893, 894, 895, 896, 897, 898, - 904, 906, 907, 838, 839, 86, 811, 400, 0, 319, - 0, 0, 0, 265, 266, 0, 0, 264, 0, 0, - 237, 0, 0, 0, 456, 820, 0, 0, 0, 351, - 0, 348, 0, 0, 0, 349, 0, 0, 350, 0, - 0, 401, 0, 290, 289, 288, 287, 297, 303, 310, - 308, 307, 309, 311, 0, 304, 305, 0, 0, 402, - 477, 475, 0, 419, 899, 0, 948, 949, 0, 814, - 813, 398, 0, 819, 93, 0, 424, 0, 0, 395, - 833, 407, 822, 471, 0, 297, 394, 899, 77, 899, - 75, 397, 396, 427, 4, 5, 491, 834, 53, 217, - 53, 0, 0, 409, 815, 0, 821, 0, 223, 0, - 268, 267, 271, 365, 363, 364, 359, 360, 361, 362, - 262, 0, 270, 269, 0, 453, 454, 452, 0, 527, - 283, 492, 493, 51, 0, 0, 420, 0, 357, 0, - 358, 0, 284, 347, 823, 336, 294, 295, 296, 832, - 0, 300, 292, 302, 0, 0, 444, 0, 0, 793, - 0, 569, 569, 0, 641, 642, 644, 646, 560, 852, - 0, 0, 830, 554, 594, 0, 569, 0, 0, 596, - 557, 0, 0, 899, 900, 0, 829, 647, 565, 905, - 0, 838, 0, 732, 825, 0, 810, 0, 0, 0, - 0, 0, 532, 539, 542, 541, 537, 562, 540, 839, - 808, 616, 595, 697, 732, 470, 806, 0, 0, 617, - 828, 824, 826, 618, 418, 69, 417, 0, 0, 0, - 0, 0, 96, 432, 527, 449, 300, 78, 76, 426, - 422, 3, 490, 0, 0, 56, 102, 0, 56, 0, - 242, 241, 0, 411, 0, 0, 375, 221, 0, 0, - 263, 0, 455, 0, 0, 448, 0, 0, 354, 352, - 353, 355, 0, 239, 293, 0, 0, 285, 0, 306, - 0, 0, 0, 476, 0, 732, 0, 0, 792, 0, - 568, 564, 571, 0, 0, 0, 0, 547, 546, 0, - 737, 0, 545, 580, 581, 582, 578, 586, 577, 569, - 567, 696, 0, 0, 548, 742, 767, 0, 575, 0, - 0, 576, 585, 544, 543, 538, 574, 636, 0, 831, - 619, 629, 627, 628, 0, 0, 0, 595, 827, 0, - 536, 0, 0, 0, 0, 666, 0, 0, 0, 0, - 656, 658, 637, 0, 0, 0, 0, 0, 0, 0, - 0, 615, 472, 0, 501, 0, 0, 0, 73, 74, - 68, 72, 71, 66, 70, 67, 801, 732, 501, 800, - 0, 732, 421, 0, 0, 335, 286, 429, 374, 374, - 374, 374, 79, 0, 54, 55, 59, 0, 0, 0, - 0, 0, 0, 101, 103, 104, 152, 0, 219, 220, - 0, 59, 406, 247, 246, 248, 0, 243, 0, 413, - 551, 852, 549, 552, 341, 0, 836, 837, 342, 835, - 346, 0, 0, 225, 0, 0, 0, 0, 222, 0, - 0, 276, 0, 273, 0, 0, 526, 494, 261, 0, - 0, 366, 299, 298, 0, 0, 446, 732, 0, 478, - 0, 439, 0, 0, 790, 787, 791, 0, 0, 0, - 573, 733, 0, 0, 0, 0, 478, 0, 739, 740, - 738, 0, 0, 0, 0, 0, 0, 0, 566, 0, + 32, 34, 33, 36, 39, 441, 27, 28, 40, 41, + 42, 43, 44, 16, 45, 23, 38, 440, 442, 29, + 439, 438, 437, 0, 0, 408, 407, 403, 849, 850, + 589, 861, 590, 870, 873, 874, 877, 591, 588, 880, + 885, 887, 889, 891, 892, 894, 896, 901, 592, 908, + 909, 910, 911, 587, 917, 912, 914, 851, 852, 853, + 854, 855, 856, 857, 858, 859, 860, 862, 863, 864, + 865, 866, 867, 868, 869, 871, 872, 875, 876, 878, + 879, 881, 882, 883, 884, 886, 888, 890, 893, 895, + 897, 898, 899, 900, 902, 903, 904, 905, 906, 907, + 913, 915, 916, 847, 848, 90, 820, 404, 0, 323, + 0, 0, 0, 269, 270, 0, 0, 268, 0, 0, + 241, 0, 0, 0, 465, 829, 0, 0, 0, 355, + 0, 352, 0, 0, 0, 353, 0, 0, 354, 0, + 0, 405, 0, 294, 293, 292, 291, 301, 307, 314, + 312, 311, 313, 315, 0, 308, 309, 0, 0, 406, + 486, 484, 0, 423, 908, 0, 0, 957, 958, 0, + 823, 822, 402, 0, 828, 97, 0, 428, 0, 0, + 399, 842, 411, 831, 480, 0, 301, 398, 908, 0, + 80, 908, 0, 77, 401, 400, 431, 4, 5, 500, + 843, 53, 221, 53, 0, 0, 413, 824, 0, 830, + 0, 227, 0, 272, 271, 275, 369, 367, 368, 363, + 364, 365, 366, 266, 0, 274, 273, 0, 462, 463, + 461, 0, 536, 287, 501, 502, 51, 0, 0, 424, + 0, 361, 0, 362, 0, 288, 351, 832, 340, 298, + 299, 300, 841, 0, 304, 296, 306, 0, 0, 448, + 0, 0, 802, 0, 578, 578, 0, 650, 651, 653, + 655, 569, 861, 0, 0, 839, 563, 603, 0, 578, + 0, 0, 605, 566, 0, 0, 908, 909, 0, 838, + 656, 574, 914, 0, 847, 0, 741, 834, 0, 819, + 0, 0, 0, 0, 0, 541, 548, 551, 550, 546, + 571, 549, 848, 817, 625, 604, 706, 741, 479, 815, + 0, 0, 626, 837, 833, 835, 627, 422, 71, 421, + 0, 0, 0, 0, 0, 0, 100, 436, 536, 453, + 304, 81, 0, 78, 0, 430, 426, 3, 499, 0, + 0, 56, 106, 0, 56, 0, 246, 245, 0, 415, + 0, 0, 379, 225, 0, 0, 267, 0, 464, 0, + 0, 452, 0, 0, 358, 356, 357, 359, 0, 243, + 297, 0, 0, 289, 0, 310, 0, 0, 0, 485, + 0, 741, 0, 0, 801, 0, 577, 573, 580, 0, + 0, 0, 0, 556, 555, 0, 746, 0, 554, 589, + 590, 591, 587, 595, 586, 578, 576, 705, 0, 0, + 557, 751, 776, 0, 584, 0, 0, 585, 594, 553, + 552, 547, 583, 645, 0, 840, 628, 638, 636, 637, + 0, 0, 0, 604, 836, 0, 545, 0, 0, 0, + 0, 675, 0, 0, 0, 0, 665, 667, 646, 0, + 0, 0, 0, 0, 0, 0, 0, 624, 481, 0, + 510, 0, 0, 0, 75, 76, 68, 74, 0, 73, + 66, 72, 67, 810, 741, 510, 809, 0, 741, 425, + 0, 0, 339, 458, 290, 82, 79, 433, 378, 378, + 378, 378, 83, 0, 54, 55, 59, 0, 0, 0, + 0, 0, 0, 105, 107, 108, 156, 0, 223, 224, + 0, 59, 410, 251, 250, 252, 0, 247, 0, 417, + 560, 861, 558, 561, 345, 0, 845, 846, 346, 844, + 350, 0, 0, 229, 0, 0, 0, 0, 226, 0, + 0, 280, 0, 277, 0, 0, 535, 503, 265, 0, + 0, 370, 303, 302, 0, 0, 450, 741, 0, 487, + 0, 443, 0, 0, 799, 796, 800, 0, 0, 0, + 582, 742, 0, 0, 0, 0, 487, 0, 748, 749, + 747, 0, 0, 0, 0, 0, 0, 0, 575, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 732, 0, 744, 757, 769, 0, 0, 0, 0, - 0, 0, 595, 774, 0, 0, 632, 0, 0, 535, - 0, 0, 913, 915, 916, 918, 919, 921, 922, 925, - 926, 927, 934, 935, 936, 937, 941, 942, 943, 944, - 947, 910, 911, 912, 914, 917, 920, 923, 924, 928, - 929, 930, 931, 932, 933, 938, 939, 940, 945, 946, - 909, 807, 694, 0, 717, 718, 720, 722, 0, 0, - 0, 723, 0, 0, 0, 0, 0, 0, 0, 732, - 0, 699, 700, 0, 662, 0, 657, 660, 634, 0, - 668, 0, 695, 0, 0, 0, 633, 0, 0, 0, - 626, 0, 0, 0, 624, 0, 0, 0, 625, 0, - 0, 0, 620, 0, 0, 0, 621, 0, 0, 0, - 623, 0, 0, 0, 622, 630, 0, 805, 0, 527, - 809, 794, 796, 817, 0, 639, 0, 795, 803, 0, - 527, 0, 0, 95, 89, 88, 0, 0, 423, 373, - 102, 85, 0, 0, 0, 372, 52, 57, 58, 63, - 0, 0, 0, 0, 0, 0, 214, 0, 216, 112, - 108, 215, 63, 0, 0, 416, 0, 408, 550, 0, - 340, 345, 339, 0, 0, 0, 224, 234, 226, 227, - 228, 229, 0, 0, 0, 0, 272, 322, 478, 0, - 356, 0, 0, 312, 316, 314, 0, 443, 447, 441, - 0, 0, 317, 0, 0, 786, 0, 0, 0, 0, - 563, 0, 0, 785, 643, 645, 0, 559, 0, 648, - 649, 0, 553, 588, 589, 590, 591, 592, 593, 587, - 0, 0, 556, 0, 742, 767, 0, 755, 745, 750, - 0, 650, 0, 756, 0, 0, 0, 0, 0, 743, - 0, 0, 771, 651, 584, 0, 773, 0, 0, 0, - 655, 0, 732, 0, 0, 605, 607, 606, 608, 609, - 610, 611, 612, 0, 602, 0, 530, 535, 561, 0, - 0, 0, 742, 767, 0, 713, 701, 708, 706, 707, - 0, 0, 714, 0, 0, 0, 0, 0, 698, 0, - 0, 661, 659, 663, 0, 0, 635, 0, 0, 0, + 0, 741, 0, 753, 766, 778, 0, 0, 0, 0, + 0, 0, 604, 783, 0, 0, 641, 0, 0, 544, + 0, 0, 922, 924, 925, 927, 928, 930, 931, 934, + 935, 936, 943, 944, 945, 946, 950, 951, 952, 953, + 956, 919, 920, 921, 923, 926, 929, 932, 933, 937, + 938, 939, 940, 941, 942, 947, 948, 949, 954, 955, + 918, 816, 703, 0, 726, 727, 729, 731, 0, 0, + 0, 732, 0, 0, 0, 0, 0, 0, 0, 741, + 0, 708, 709, 0, 671, 0, 666, 669, 643, 0, + 677, 0, 704, 0, 0, 0, 642, 0, 0, 0, + 635, 0, 0, 0, 633, 0, 0, 0, 634, 0, + 0, 0, 629, 0, 0, 0, 630, 0, 0, 0, + 632, 0, 0, 0, 631, 639, 0, 814, 0, 536, + 818, 803, 805, 826, 0, 648, 0, 804, 894, 70, + 812, 0, 536, 0, 0, 99, 93, 92, 0, 457, + 0, 0, 427, 377, 106, 89, 0, 0, 0, 376, + 52, 57, 58, 63, 0, 0, 0, 0, 0, 0, + 218, 0, 220, 116, 112, 219, 63, 0, 0, 420, + 0, 412, 559, 0, 344, 349, 343, 0, 0, 0, + 228, 238, 230, 231, 232, 233, 0, 0, 0, 0, + 276, 326, 487, 0, 360, 0, 0, 316, 320, 318, + 0, 447, 451, 445, 0, 0, 321, 0, 0, 795, + 0, 0, 0, 0, 572, 0, 0, 794, 652, 654, + 0, 568, 0, 657, 658, 0, 562, 597, 598, 599, + 600, 601, 602, 596, 0, 0, 565, 0, 751, 776, + 0, 764, 754, 759, 0, 659, 0, 765, 0, 0, + 0, 0, 0, 752, 0, 0, 780, 660, 593, 0, + 782, 0, 0, 0, 664, 0, 741, 0, 0, 614, + 616, 615, 617, 618, 619, 620, 621, 0, 611, 0, + 539, 544, 570, 0, 0, 0, 751, 776, 0, 722, + 710, 717, 715, 716, 0, 0, 723, 0, 0, 0, + 0, 0, 707, 0, 0, 670, 668, 672, 0, 0, + 644, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 469, 0, 500, 504, 507, 528, 496, 0, 638, - 640, 799, 450, 804, 0, 91, 92, 98, 90, 0, - 430, 0, 0, 80, 0, 82, 0, 371, 0, 65, - 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, - 0, 159, 828, 161, 151, 0, 0, 0, 100, 0, - 99, 218, 220, 0, 106, 0, 0, 0, 0, 0, - 0, 119, 105, 107, 110, 114, 65, 0, 244, 415, - 410, 414, 419, 343, 0, 0, 344, 390, 391, 388, - 389, 0, 235, 0, 0, 232, 360, 280, 230, 231, - 277, 279, 281, 278, 275, 274, 0, 0, 0, 368, - 369, 367, 313, 0, 301, 445, 501, 0, 0, 789, - 783, 0, 570, 572, 735, 734, 0, 501, 736, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 753, 741, - 754, 746, 747, 749, 748, 751, 758, 0, 768, 0, - 766, 652, 653, 654, 772, 0, 730, 0, 0, 614, - 613, 0, 0, 535, 0, 531, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 711, 664, 712, 702, 703, - 705, 704, 709, 715, 0, 775, 0, 776, 777, 0, - 0, 0, 0, 670, 0, 0, 677, 0, 0, 675, - 0, 0, 676, 0, 0, 671, 0, 0, 672, 0, - 0, 674, 0, 0, 673, 515, 0, 0, 0, 506, - 529, 0, 498, 798, 797, 802, 0, 87, 0, 428, - 81, 0, 0, 0, 0, 0, 50, 0, 183, 184, - 162, 172, 170, 171, 0, 0, 0, 0, 0, 0, - 0, 0, 186, 188, 185, 0, 0, 0, 0, 0, - 0, 0, 0, 153, 0, 0, 0, 154, 0, 111, - 0, 0, 0, 144, 145, 147, 149, 116, 150, 0, - 0, 0, 0, 0, 0, 117, 0, 124, 118, 120, - 444, 109, 49, 251, 0, 0, 412, 338, 0, 0, - 0, 282, 233, 816, 321, 0, 501, 0, 527, 440, - 788, 631, 558, 527, 784, 555, 0, 760, 761, 0, - 0, 0, 765, 759, 770, 732, 0, 0, 0, 0, - 604, 0, 533, 535, 0, 719, 721, 724, 725, 0, - 0, 0, 729, 716, 667, 0, 665, 779, 0, 780, - 781, 686, 678, 693, 685, 691, 683, 692, 684, 687, - 679, 688, 680, 690, 682, 689, 681, 517, 513, 517, - 515, 512, 517, 514, 0, 502, 0, 505, 0, 0, - 465, 0, 431, 84, 0, 370, 62, 61, 0, 0, - 175, 181, 0, 200, 0, 191, 0, 187, 190, 179, - 0, 0, 0, 182, 178, 167, 168, 169, 163, 164, - 166, 165, 173, 176, 0, 158, 0, 155, 0, 0, - 113, 0, 0, 0, 142, 125, 135, 133, 134, 0, - 143, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 203, 250, 0, 0, 245, 0, 527, 387, 236, 0, - 323, 324, 326, 331, 0, 817, 527, 315, 496, 496, - 0, 762, 763, 764, 731, 597, 0, 600, 601, 0, - 534, 0, 726, 727, 728, 778, 669, 0, 516, 509, - 510, 508, 511, 0, 503, 495, 497, 474, 480, 97, - 83, 0, 64, 0, 0, 0, 199, 193, 189, 192, - 0, 0, 180, 0, 177, 0, 213, 115, 0, 0, - 0, 138, 141, 130, 131, 132, 126, 127, 129, 128, - 136, 139, 0, 123, 0, 206, 252, 253, 249, 0, - 0, 0, 0, 339, 0, 0, 0, 334, 0, 496, - 498, 498, 752, 598, 599, 710, 782, 520, 473, 0, - 0, 462, 60, 0, 196, 0, 194, 0, 0, 157, - 444, 0, 146, 148, 0, 140, 201, 202, 0, 121, - 205, 0, 337, 393, 386, 318, 325, 330, 329, 0, - 818, 328, 332, 0, 498, 465, 465, 0, 0, 0, - 478, 464, 467, 0, 174, 198, 197, 195, 203, 0, - 122, 0, 0, 204, 256, 392, 0, 333, 331, 465, - 442, 463, 0, 0, 499, 0, 474, 479, 481, 489, - 206, 137, 210, 0, 0, 207, 208, 260, 257, 258, - 0, 254, 259, 377, 0, 0, 376, 378, 334, 480, - 0, 0, 521, 525, 523, 501, 0, 0, 487, 488, - 0, 483, 156, 209, 211, 212, 0, 240, 0, 381, - 382, 0, 327, 458, 518, 0, 519, 0, 527, 466, - 482, 484, 485, 486, 255, 379, 384, 385, 380, 0, - 451, 522, 524, 496, 383, 0, 0, 457, 498, 459, - 0, 460, 468, 461, 0, 0, 0 + 0, 0, 0, 0, 0, 478, 0, 509, 513, 516, + 537, 505, 0, 647, 649, 69, 808, 459, 813, 0, + 95, 96, 102, 94, 456, 0, 0, 434, 0, 0, + 84, 0, 86, 0, 375, 0, 65, 0, 0, 164, + 0, 0, 0, 0, 0, 0, 0, 0, 163, 837, + 165, 155, 0, 0, 0, 104, 0, 103, 222, 224, + 0, 110, 0, 0, 0, 0, 0, 0, 123, 109, + 111, 114, 118, 65, 0, 248, 419, 414, 418, 423, + 347, 0, 0, 348, 394, 395, 392, 393, 0, 239, + 0, 0, 236, 364, 284, 234, 235, 281, 283, 285, + 282, 279, 278, 0, 0, 0, 372, 373, 371, 317, + 0, 305, 449, 510, 0, 0, 798, 792, 0, 579, + 581, 744, 743, 0, 510, 745, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 762, 750, 763, 755, 756, + 758, 757, 760, 767, 0, 777, 0, 775, 661, 662, + 663, 781, 0, 739, 0, 0, 623, 622, 0, 0, + 544, 0, 540, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 720, 673, 721, 711, 712, 714, 713, 718, + 724, 0, 784, 0, 785, 786, 0, 0, 0, 0, + 679, 0, 0, 686, 0, 0, 684, 0, 0, 685, + 0, 0, 680, 0, 0, 681, 0, 0, 683, 0, + 0, 682, 524, 0, 0, 0, 515, 538, 0, 507, + 807, 806, 811, 0, 91, 455, 0, 0, 432, 85, + 0, 0, 0, 0, 0, 50, 0, 187, 188, 166, + 176, 174, 175, 0, 0, 0, 0, 0, 0, 0, + 0, 190, 192, 189, 0, 0, 0, 0, 0, 0, + 0, 0, 157, 0, 0, 0, 158, 0, 115, 0, + 0, 0, 148, 149, 151, 153, 120, 154, 0, 0, + 0, 0, 0, 0, 121, 0, 128, 122, 124, 448, + 113, 49, 255, 0, 0, 416, 342, 0, 0, 0, + 286, 237, 825, 325, 0, 510, 0, 536, 444, 797, + 640, 567, 536, 793, 564, 0, 769, 770, 0, 0, + 0, 774, 768, 779, 741, 0, 0, 0, 0, 613, + 0, 542, 544, 0, 728, 730, 733, 734, 0, 0, + 0, 738, 725, 676, 0, 674, 788, 0, 789, 790, + 695, 687, 702, 694, 700, 692, 701, 693, 696, 688, + 697, 689, 699, 691, 698, 690, 526, 522, 526, 524, + 521, 526, 523, 0, 511, 0, 514, 0, 0, 474, + 0, 454, 435, 88, 0, 374, 62, 61, 0, 0, + 179, 185, 0, 204, 0, 195, 0, 191, 194, 183, + 0, 0, 0, 186, 182, 171, 172, 173, 167, 168, + 170, 169, 177, 180, 0, 162, 0, 159, 0, 0, + 117, 0, 0, 0, 146, 129, 139, 137, 138, 0, + 147, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 207, 254, 0, 0, 249, 0, 536, 391, 240, 0, + 327, 328, 330, 335, 0, 826, 536, 319, 505, 505, + 0, 771, 772, 773, 740, 606, 0, 609, 610, 0, + 543, 0, 735, 736, 737, 787, 678, 0, 525, 518, + 519, 517, 520, 0, 512, 504, 506, 483, 489, 101, + 87, 0, 64, 0, 0, 0, 203, 197, 193, 196, + 0, 0, 184, 0, 181, 0, 217, 119, 0, 0, + 0, 142, 145, 134, 135, 136, 130, 131, 133, 132, + 140, 143, 0, 127, 0, 210, 256, 257, 253, 0, + 0, 0, 0, 343, 0, 0, 0, 338, 0, 505, + 507, 507, 761, 607, 608, 719, 791, 529, 482, 0, + 0, 471, 60, 0, 200, 0, 198, 0, 0, 161, + 448, 0, 150, 152, 0, 144, 205, 206, 0, 125, + 209, 0, 341, 397, 390, 322, 329, 334, 333, 0, + 827, 332, 336, 0, 507, 474, 474, 0, 0, 0, + 487, 473, 476, 0, 178, 202, 201, 199, 207, 0, + 126, 0, 0, 208, 260, 396, 0, 337, 335, 474, + 446, 472, 0, 0, 508, 0, 483, 488, 490, 498, + 210, 141, 214, 0, 0, 211, 212, 264, 261, 262, + 0, 258, 263, 381, 0, 0, 380, 382, 338, 489, + 0, 0, 530, 534, 532, 510, 0, 0, 496, 497, + 0, 492, 160, 213, 215, 216, 0, 244, 0, 385, + 386, 0, 331, 467, 527, 0, 528, 0, 536, 475, + 491, 493, 494, 495, 259, 383, 388, 389, 384, 0, + 460, 531, 533, 505, 387, 0, 0, 466, 507, 468, + 0, 469, 477, 470, 0, 0, 0 }; -static const short yydefgoto[] = { 1685, - 33, 34, 35, 36, 37, 406, 557, 820, 1377, 1030, - 1227, 38, 534, 531, 39, 40, 41, 553, 42, 43, - 807, 1018, 236, 545, 1218, 44, 563, 564, 565, 1063, - 1064, 1055, 1065, 1066, 1513, 1276, 566, 567, 1405, 1040, - 1486, 1487, 1516, 1560, 1561, 1616, 1051, 45, 408, 568, - 569, 46, 418, 599, 1088, 1089, 1090, 47, 182, 48, - 49, 413, 577, 578, 1285, 1433, 1519, 1621, 1622, 50, - 51, 281, 183, 602, 421, 603, 604, 1091, 52, 53, - 208, 312, 438, 54, 215, 216, 217, 865, 1105, 55, - 56, 184, 1098, 1440, 1441, 1442, 1443, 1528, 1572, 57, - 58, 59, 1076, 416, 586, 843, 844, 60, 201, 61, - 430, 62, 63, 1092, 283, 611, 64, 1027, 813, 65, - 592, 1627, 1649, 1650, 1437, 1082, 1597, 66, 67, 68, - 69, 88, 70, 71, 72, 580, 838, 1071, 386, 73, - 74, 75, 238, 401, 809, 1020, 76, 77, 78, 622, - 442, 616, 617, 79, 80, 81, 82, 289, 1671, 1678, - 1682, 83, 638, 1479, 1582, 1583, 525, 245, 1540, 223, - 1542, 1608, 1609, 1642, 404, 291, 292, 1213, 1371, 790, - 1004, 1005, 1365, 1470, 1580, 1632, 1633, 426, 1006, 501, - 947, 362, 363, 364, 365, 366, 587, 463, 475, 458, - 367, 368, 452, 631, 881, 369, 370, 479, 469, 632, - 372, 496, 497, 944, 1153, 373, 744, 976, 739, 490, - 674, 642, 643, 660, 661, 667, 923, 1141, 675, 1177, - 1178, 1339, 1340, 374, 625, 626, 877, 445, 375, 792, - 539, 540, 376, 377, 166, 447, 264, 1295, 793, 1573, - 233, 293, 379, 242, 306, 380, 381, 382, 383, 259, - 589, 384, 722, 231 +static const short yydefgoto[] = { 1705, + 33, 34, 35, 36, 37, 412, 567, 834, 1397, 1047, + 1246, 38, 541, 537, 39, 40, 41, 563, 42, 43, + 819, 1033, 237, 552, 1235, 44, 573, 574, 575, 1080, + 1081, 1072, 1082, 1083, 1533, 1295, 576, 577, 1425, 1057, + 1506, 1507, 1536, 1580, 1581, 1636, 1068, 45, 414, 578, + 579, 46, 424, 609, 1105, 1106, 1107, 47, 182, 48, + 49, 419, 587, 588, 1304, 1453, 1539, 1641, 1642, 50, + 51, 284, 183, 612, 427, 613, 614, 1108, 52, 53, + 208, 315, 444, 54, 215, 216, 217, 879, 1122, 55, + 56, 184, 1115, 1460, 1461, 1462, 1463, 1548, 1592, 57, + 58, 59, 1093, 422, 596, 857, 858, 60, 201, 61, + 436, 62, 63, 1109, 286, 621, 64, 1044, 827, 65, + 602, 1647, 1669, 1670, 1457, 1099, 1617, 66, 67, 68, + 69, 88, 70, 71, 72, 590, 852, 1088, 389, 73, + 74, 75, 239, 407, 823, 1037, 76, 77, 78, 632, + 448, 626, 627, 79, 80, 821, 81, 82, 292, 1691, + 1698, 1702, 83, 648, 1499, 1602, 1603, 531, 246, 1560, + 223, 1562, 1628, 1629, 1662, 410, 294, 295, 1230, 1390, + 800, 1018, 1019, 1384, 1490, 1600, 1652, 1653, 432, 1020, + 507, 961, 365, 366, 367, 368, 369, 597, 469, 481, + 464, 370, 371, 458, 641, 895, 372, 373, 485, 475, + 642, 375, 502, 503, 958, 1170, 376, 754, 990, 749, + 496, 684, 652, 653, 670, 671, 677, 937, 1158, 685, + 1194, 1195, 1358, 1359, 377, 635, 636, 891, 451, 378, + 802, 546, 547, 379, 380, 166, 453, 267, 1314, 803, + 1593, 234, 296, 382, 243, 309, 383, 384, 385, 386, + 262, 599, 387, 732, 232 }; -static const short yypact[] = { 14807, - 186, -5, 14272, -5, 1271, 14272, 65, 2664, -5, 156, - 82, 318, 86, 318, -5, 259, 13600, 13264, -5, 14272, - 172, 29, 206, 13264, 204, 302, 82, 13264, 14440, 14608, - 11499, 29, 14807, 227,-32768,-32768,-32768,-32768,-32768,-32768, +static const short yypact[] = { 15105, + 16, 273, 14734, 273, 1351, 14734, 46, 1640, 273, -30, + 56, 324, 140, 324, 273, 234, 13374, 13544, 273, 14734, + 160, 153, 163, 13544, 181, 229, 56, 13544, 13884, 14054, + 11508, 153, 15105, 230,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 13264, 246,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 13544, 189,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, @@ -1399,1568 +1414,1378 @@ static const short yypact[] = { 14807, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 13264,-32768, - 246, 14272, 14272,-32768,-32768, 14272, 14272,-32768, 14272, 13264, --32768, 277, 11163, 303, 51,-32768, 13264, 14272, 246,-32768, - 14272,-32768, 14272, 14272, 14272,-32768, 1084, 417,-32768, 14272, - 14272,-32768, 294,-32768,-32768,-32768,-32768, 34, 405,-32768, --32768,-32768,-32768,-32768, 425, 289,-32768, 13264, 446,-32768, --32768, 450, 5281, 15, 416, -82,-32768,-32768, 442,-32768, --32768,-32768, 473,-32768,-32768, 13264,-32768, 512, 14272,-32768, --32768,-32768,-32768,-32768, 13264, 34,-32768, 447,-32768, 448, --32768,-32768,-32768, 426, 365,-32768, 373,-32768, 477, 377, - 477, 614, 296, 497,-32768, 401,-32768, 631,-32768, 574, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 449,-32768,-32768, 14272, 540,-32768,-32768, 615, 530, --32768, 453,-32768,-32768, 592, 11667,-32768, 401,-32768, 465, --32768, 204,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 476, 345,-32768,-32768, 14272, 420, 470, 14272, 14272, 12339, - 483, 575, 575, 502,-32768, 517, 520,-32768, 523, 609, - 529, 532,-32768, 535, 484, 702, 575, 8176, 541,-32768, - 542, 545, 555, -98, 81, 556,-32768,-32768,-32768, 77, - 2628, 170, 8176, 516,-32768, 8176,-32768, 8176, 8176, 8176, - 7513, 204, 571,-32768,-32768,-32768,-32768, 569,-32768, 198, - 793,-32768, 10565,-32768, 516, -7,-32768, 576, 584,-32768, - 578,-32768,-32768, 255,-32768,-32768,-32768, -6, 30, 30, - 11331, 13264, 671,-32768, 530,-32768, 345,-32768,-32768,-32768, - 13264,-32768,-32768, 45, 622, -37, 13096, 810, -37, 710, --32768,-32768, 89, 653, 3034, 637,-32768, -27, 204, 10995, --32768, 743,-32768, 780, 8176,-32768, 14272, 13264,-32768,-32768, --32768,-32768, 13768,-32768,-32768, 14272, 14272,-32768, 715,-32768, - 14272, 48, 781,-32768, 704, 516, 616, 578, 617, 8176, --32768,-32768, 829, 7513, 476, 476, 476,-32768,-32768, 744, - 818, 476,-32768, 736, 738, 746, 747,-32768,-32768, 575, --32768, 1285, 8176, 476,-32768, 9472, 7513, 752,-32768, 4614, - 609,-32768, 733,-32768,-32768,-32768,-32768, 415, 8176,-32768, - 643, 643, 643, 643, 641, 645, 648, 2109,-32768, 112, --32768, 476, 12701, 8176, 8392,-32768, 44, 8176, 313, 8176, --32768,-32768, 7738, 5506, 5731, 5956, 6181, 6406, 6631, 6856, - 15051,-32768, 302, 5281, 827, 11835, 3509, 14272,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 516, 16,-32768, - 655, 174,-32768, 700, 37,-32768,-32768, 654, 28, 863, - 863, 863,-32768, 246,-32768,-32768, -30, 656, 14272, 821, - 823, 663, 220,-32768,-32768,-32768,-32768, 269,-32768, 3291, - 744, -30,-32768,-32768,-32768,-32768, 811, 812, 686, 748, --32768, 808,-32768,-32768,-32768, 298,-32768,-32768,-32768,-32768, - 709, 819, 268,-32768, 268, 268, 268, 268,-32768, 745, - 703, 705, 308,-32768, 13264, 806, 10565,-32768,-32768, 687, - 692, 695,-32768,-32768, 13432, 336,-32768, 516, 799, 259, - 697,-32768, 13432, 8176, 67,-32768,-32768, 14272, 2799, 820, - 907,-32768, -39, 707, 708, 364, 259, 712,-32768,-32768, --32768, 714, 883, 719, 231, 270, 833, 862,-32768, 2195, - 387, 711, 722, 725, 734, 9472, 9472, 9472, 9472, 732, - 456, 516, 739,-32768, 255, -19, 735, 843, 7075, 7513, - 7075, 7075, 3246, -43, 751, 2565,-32768, 802, 8176, 759, - 757, 756,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 13544,-32768, + 189, 14734, 14734,-32768,-32768, 14734, 14734,-32768, 14734, 13544, +-32768, 280, 11168, 322, 78,-32768, 13544, 14734, 189,-32768, + 14734,-32768, 14734, 14734, 14734,-32768, 1166, 438,-32768, 14734, + 14734,-32768, 307,-32768,-32768,-32768,-32768, 118, 433,-32768, +-32768,-32768,-32768,-32768, 456, 304,-32768, 13544, 476,-32768, +-32768, 477, 5539, 0, 423, 504, -19,-32768,-32768, 457, +-32768,-32768,-32768, 491,-32768,-32768, 13544,-32768, 74, 14734, +-32768,-32768,-32768,-32768,-32768, 13544, 118,-32768, 442, 521, +-32768, 458, 532,-32768,-32768,-32768, 466, 375,-32768, 380, +-32768, 505, 389, 505, 623, 362, 508,-32768, 418,-32768, + 631,-32768, 587,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 426,-32768,-32768, 14734, 551,-32768, +-32768, 632, 533,-32768, 441,-32768,-32768, 580, 11678,-32768, + 418,-32768, 450,-32768, 181,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 467, 405,-32768,-32768, 14734, 30, 454, + 14734, 14734, 12439, 481, 556, 556, 490,-32768, 493, 535, +-32768, 539, 592, 540, 557,-32768, 558, 386, 680, 556, + 8460, 565,-32768, 569, 570, 575, -83, -60, 577,-32768, +-32768,-32768, -69, 595, 135, 8460, 548,-32768, 8460,-32768, + 8460, 8460, 8460, 7791, 181, 583,-32768,-32768,-32768,-32768, + 582,-32768, 177, 698,-32768, 3160,-32768, 548, -11,-32768, + 482, 585,-32768, 496,-32768,-32768, 190,-32768,-32768,-32768, + -1, 723, 9, 9, 11338, 13544, 663,-32768, 533, 754, + 405,-32768, 744,-32768, 749,-32768, 13544,-32768,-32768, 49, + 639, -21, 13204, 820, -21, 718,-32768,-32768, 64, 658, + 4670, 641,-32768, 407, 181, 10998,-32768, 747,-32768, 787, + 8460,-32768, 14734, 13544,-32768,-32768,-32768,-32768, 14224,-32768, +-32768, 14734, 14734,-32768, 719,-32768, 14734, 86, 789,-32768, + 706, 548, 613, 496, 616, 8460,-32768,-32768, 827, 7791, + 467, 467, 467,-32768,-32768, 736, 355, 467,-32768, 728, + 737, 739, 741,-32768,-32768, 556,-32768, 473, 8460, 467, +-32768, 9768, 7791, 740,-32768, 4866, 592,-32768, 732,-32768, +-32768,-32768,-32768, 544, 8460,-32768, 643, 643, 643, 643, + 636, 649, 645, 1507,-32768, -81,-32768, 467, 12805, 8460, + 8678,-32768, 29, 8460, 253, 8460,-32768,-32768, 8018, 5766, + 5993, 6220, 6447, 6674, 6901, 7128, 15460,-32768, 229, 5539, + 822, 11848, 3563, 14734,-32768,-32768,-32768,-32768, 14904,-32768, +-32768,-32768,-32768,-32768, 548, -10,-32768, 656, 292,-32768, + 701, 72,-32768, 681,-32768,-32768,-32768, 657, 22, 870, + 870, 870,-32768, 189,-32768,-32768, 116, 661, 14734, 830, + 831, 662, 193,-32768,-32768,-32768,-32768, 209,-32768, 15375, + 736, 116,-32768,-32768,-32768,-32768, 814, 809, 687, 750, +-32768, 811,-32768,-32768,-32768, 227,-32768,-32768,-32768,-32768, + 709, 826, 184,-32768, 184, 184, 184, 184,-32768, 753, + 694, 703, 326,-32768, 13544, 810, 3160,-32768,-32768, 696, + 695, 702,-32768,-32768, 13714, 400,-32768, 548, 813, 234, + 705,-32768, 13714, 8460, 32,-32768,-32768, 14734, 2559, 835, + 920,-32768, -80, 714, 720, 406, 234, 721,-32768,-32768, +-32768, 722, 905, 726, 53, 217, 853, 887,-32768, 1845, + 447, 735, 745, 746, 751, 9768, 9768, 9768, 9768, 731, + 277, 548, 761,-32768, 190, -13, 748, 860, 7349, 7791, + 7349, 7349, 2777, -59, 769, 2322,-32768, 768, 8460, 773, + 777, 779,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 1285, 760,-32768, 762, 763,-32768, 764, 765, - 766,-32768, 8392, 8392, 8392, 8392, 8392, 8176, 117, 516, - 768,-32768, 255, 771,-32768, 235,-32768,-32768, 1416, 8392, --32768, 8176, 2424, 772, 775, 7294, 415, 776, 777, 7294, - 506, 778, 779, 7294, 1797, 782, 783, 7294, 1797, 784, - 785, 7294, 191, 794, 795, 7294, 191, 804, 805, 7294, - 643, 807, 809, 7294, 643,-32768, 13264,-32768, 10321, 530, --32768, 798,-32768,-32768, 813,-32768, -23, 798,-32768, 12339, - 530, 12003, 796,-32768,-32768,-32768, 230, 14272,-32768,-32768, - 13096,-32768, 14272, 14272, 14272, 14272,-32768,-32768,-32768, 931, - 9904, 53, 815, 824, 14272, 13096, 874, 14272,-32768, 948, - 57,-32768, 931, 13264, 89, 38, 835,-32768,-32768, 12902, --32768,-32768, 923, 12902, 432, 476,-32768,-32768,-32768,-32768, --32768,-32768, 11163, 10794, 10794, 10995,-32768, 934, 259, 14272, --32768, 13936, 14272,-32768, 924,-32768, 14272,-32768,-32768,-32768, - 5281, 5281,-32768, 10485, 7513,-32768, 1018, 15051, 14272, 14272, --32768, 8176, 7513,-32768,-32768,-32768, 476,-32768, 5281,-32768, --32768, 8176,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, - 8176, 476,-32768, 9472, 9472, 7513, 4838, 489, 838, 838, - 471,-32768, 9472, 9688, 9472, 9472, 9472, 9472, 15051,-32768, - 3733, 7513, 1013,-32768,-32768, 837, -43, 840, 842, 7513, --32768, 8176, 516, 839, 1016,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 33, 2336, 134,-32768, 759,-32768, 8392, - 476, 476, 9472, 7513, 5062, 559, 847, 847, 847, 847, - 910, 8392, 8608, 8392, 8392, 8392, 8392, 15051,-32768, 3952, - 14885,-32768,-32768,-32768, 131, 848, 1416, 744, 744, 846, - 744, 744, 850, 744, 744, 852, 744, 744, 853, 744, - 744, 855, 744, 744, 856, 744, 744, 858, 744, 744, - 859,-32768, 13264, 865, 1070, 14104, 891, 1054, 12171,-32768, --32768,-32768,-32768,-32768, 7513,-32768,-32768, 985,-32768, 396, --32768, 397, 3291,-32768, 90,-32768, 996,-32768, 1059, 911, - 887, 9904,-32768, 9904, 9904, 9904, 9904, 9904, 9904, 978, - 892,-32768,-32768, 901,-32768, 14272, 14272, 408,-32768, 902, --32768,-32768,-32768, 1052,-32768, 903, 14272, 8824, 1037, 1055, - 14272,-32768,-32768, 57,-32768,-32768, 911, 1085, 1045,-32768, --32768,-32768, 15,-32768, 449, 1129,-32768,-32768,-32768,-32768, --32768, 1020,-32768, 972, 14272,-32768, 54,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 938, 925, 5281,-32768, --32768,-32768,-32768, 1086,-32768,-32768, 25, 413, 7513,-32768, --32768, 932,-32768,-32768, 10565,-32768, 935, 25, 10565, 1472, - 936, 228, 942, 944, 7075, 7075, 7075, 945,-32768, 753, - 489, 213, 213, 838, 838,-32768,-32768, 52, -43, 7513, --32768,-32768,-32768,-32768, -43, 10525,-32768, 744, 926,-32768, --32768, 7957, 947, 759, 927,-32768, 395, 953, 954, 955, - 957, 7075, 7075, 7075, 959,-32768, 758, 559, 240, 240, - 847, 847,-32768,-32768, 79,-32768, 968, 971,-32768, 8392, - 14885, 973, 974,-32768, 979, 980,-32768, 981, 983,-32768, - 984, 986,-32768, 988, 989,-32768, 990, 992,-32768, 994, - 995,-32768, 997, 998,-32768, 721, 13264, 1097, 12701,-32768, --32768, 1153, 1146,-32768,-32768,-32768, 1074,-32768, 14272,-32768, --32768, 1180, 1196, 14272, 246, 1031,-32768, 9904, 1514, 650, - 1007, 1007, 1007, 1007, 1657, 9904, 14998, 1008, 212, 9904, - 350, 9904,-32768,-32768, 10120, 9904, 9904, 9904, 9904, 9904, - 9904, 9904, 15051,-32768, 4390, 454, 481,-32768, 14272,-32768, - 9904, 474, 1021,-32768, 1024, 1026,-32768,-32768,-32768, 9040, - 9040, 9040, 9040, 9040, 9040, 933, 1027,-32768,-32768,-32768, - 470,-32768,-32768, 1082, 1204, 89,-32768,-32768, 204, 13264, - 204,-32768,-32768,-32768,-32768, 14272, 25, 1162, 530,-32768, --32768,-32768,-32768, 530,-32768,-32768, 15051,-32768,-32768, 1028, - 1030, 1032,-32768,-32768, -43, 516, 1039, 744, 1040, 1042, - 10565, 744,-32768, 759, 15051,-32768,-32768,-32768,-32768, 1044, - 1056, 1057,-32768,-32768,-32768, 14998, 758,-32768, 1058, 1029, +-32768,-32768, 473, 781,-32768, 783, 784,-32768, 790, 803, + 804,-32768, 8678, 8678, 8678, 8678, 8678, 8460, 128, 548, + 819,-32768, 190, 824,-32768, 312,-32768,-32768, 871, 8678, +-32768, 8460, 3200, 838, 849, 7570, 544, 852, 855, 7570, + 12227, 862, 863, 7570, 531, 865, 866, 7570, 531, 867, + 868, 7570, 279, 872, 874, 7570, 279, 875, 876, 7570, + 643, 878, 880, 7570, 643,-32768, 13544,-32768, 10625, 533, +-32768, 742,-32768,-32768, 807,-32768, -20, 742, 14734,-32768, +-32768, 12439, 533, 12018, 752,-32768,-32768,-32768, 244, 843, + 828, 14734,-32768,-32768, 13204,-32768, 14734, 14734, 14734, 14734, +-32768,-32768,-32768, 986, 10204, 81, 881, 882, 14734, 13204, + 910, 14734,-32768, 988, 618,-32768, 986, 13544, 64, 19, + 886,-32768,-32768, 13008,-32768,-32768, 968, 13008, 349, 467, +-32768,-32768,-32768,-32768,-32768,-32768, 11168, 10795, 10795, 10998, +-32768, 996, 234, 14734,-32768, 14394, 14734,-32768, 990,-32768, + 14734,-32768,-32768,-32768, 5539, 5539,-32768, 2751, 7791,-32768, + 1080, 15460, 14734, 14734,-32768, 8460, 7791,-32768,-32768,-32768, + 467,-32768, 5539,-32768,-32768, 8460,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 8460, 467,-32768, 9768, 9768, 7791, + 5092, 788, 896, 896, 566,-32768, 9768, 9986, 9768, 9768, + 9768, 9768, 15460,-32768, 3789, 7791, 1077,-32768,-32768, 899, + -59, 901, 903, 7791,-32768, 8460, 548, 897, 1079,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 28, 2030, 84, +-32768, 773,-32768, 8678, 467, 467, 9768, 7791, 5318, 812, + 908, 908, 908, 908, 562, 8678, 8896, 8678, 8678, 8678, + 8678, 15460,-32768, 4010, 15204,-32768,-32768,-32768, 132, 907, + 871, 736, 736, 911, 736, 736, 913, 736, 736, 914, + 736, 736, 917, 736, 736, 919, 736, 736, 924, 736, + 736, 927, 736, 736, 933,-32768, 13544, 909, 1115, 14564, + 948, 1132, 12188,-32768,-32768,-32768,-32768,-32768,-32768, 7791, +-32768,-32768, 1044,-32768, 979, 981, 465,-32768, 469, 15375, +-32768, 43,-32768, 1074,-32768, 1140, 997, 969, 10204,-32768, + 10204, 10204, 10204, 10204, 10204, 10204, 808, 973,-32768,-32768, + 987,-32768, 14734, 14734, 475,-32768, 991,-32768,-32768,-32768, + 1155,-32768, 992, 14734, 9114, 1141, 1160, 14734,-32768,-32768, + 618,-32768,-32768, 997, 1179, 1139,-32768,-32768,-32768, 0, +-32768, 426, 1224,-32768,-32768,-32768,-32768,-32768, 1114,-32768, + 1067, 14734,-32768, 373,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 1029, 1007, 5539,-32768,-32768,-32768,-32768, + 1186,-32768,-32768, -9, 485, 7791,-32768,-32768, 1009,-32768, +-32768, 3160,-32768, 1014, -9, 3160, 995, 1015, 162, 1017, + 1018, 7349, 7349, 7349, 1019,-32768, 978, 788, 300, 300, + 896, 896,-32768,-32768, 33, -59, 7791,-32768,-32768,-32768, +-32768, -59, 2979,-32768, 736, 1025,-32768,-32768, 8239, 1034, + 773, 1027,-32768, 260, 1036, 1037, 1042, 1059, 7349, 7349, + 7349, 1063,-32768, 1060, 812, 321, 321, 908, 908,-32768, +-32768, 52,-32768, 1066, 1046,-32768, 8678, 15204, 1078, 1081, +-32768, 1082, 1084,-32768, 1089, 1090,-32768, 1091, 1094,-32768, + 1096, 1097,-32768, 1101, 1107,-32768, 1108, 1111,-32768, 1112, + 1113,-32768, 825, 13544, 1201, 12805,-32768,-32768, 1281, 1244, +-32768,-32768,-32768, 1152,-32768,-32768, 1142, 14734,-32768,-32768, + 1274, 1312, 14734, 189, 1148,-32768, 10204, 1138, 1024, 1123, + 1123, 1123, 1123, 1571, 10204, 15289, 1129, 366, 10204, 299, + 10204,-32768,-32768, 10422, 10204, 10204, 10204, 10204, 10204, 10204, + 10204, 15460,-32768, 4452, 486, 495,-32768, 14734,-32768, 10204, + 296, 1134,-32768, 1135, 1137,-32768,-32768,-32768, 9332, 9332, + 9332, 9332, 9332, 9332, 844, 1143,-32768,-32768,-32768, 454, +-32768,-32768, 1213, 1329, 64,-32768,-32768, 181, 13544, 181, +-32768,-32768,-32768,-32768, 14734, -9, 1284, 533,-32768,-32768, +-32768,-32768, 533,-32768,-32768, 15460,-32768,-32768, 1145, 1146, + 1157,-32768,-32768, -59, 548, 1161, 736, 1162, 1163, 3160, + 736,-32768, 773, 15460,-32768,-32768,-32768,-32768, 1164, 1165, + 1167,-32768,-32768,-32768, 15289, 1060,-32768, 1168, 1150,-32768, -32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768, 1171,-32768, 1171, - 721,-32768, 1171,-32768, 1220,-32768, 13264,-32768, 7513, 8176, - 1164, 204,-32768,-32768, 9040,-32768, 1067,-32768, 1089, 10549, --32768, 1514, 1300,-32768, 14998,-32768, 237,-32768,-32768, 1530, - 14998, 1076, 9904, 10605, 650, 884, 1879, 1879, 293, 293, - 1007, 1007,-32768,-32768, 487, 10589, 1206,-32768, 1077, 1820, --32768, 9040, 476, 476, 888, 1083, 1083, 1083, 1083, 1063, - 9256, 9040, 9040, 9040, 9040, 9040, 9040, 9040, 15051, 4171, - 1243,-32768, -57, 1223,-32768, 1251, 530, 1099,-32768, 1091, - 1096,-32768,-32768, 35, 1100, 901, 530,-32768, 1054, 1054, - 1095,-32768,-32768,-32768,-32768,-32768, 1098,-32768,-32768, 1101, --32768, 1105,-32768,-32768,-32768,-32768,-32768, 14998,-32768,-32768, --32768,-32768,-32768, 13264,-32768, -43, 10565, 1334, 1248,-32768, - 933, 246,-32768, 15051, 14998, 504,-32768,-32768,-32768,-32768, - 1337, 14998, 1530, 9904,-32768, 14272,-32768,-32768, 148, 1108, - 1113,-32768, 888, 933, 963, 963, 352, 352, 1083, 1083, --32768,-32768, 507, 933, 111, 1260,-32768,-32768,-32768, 14272, - 204, 1193, 14272, 923, 14272, 15051, 15051, 17, 14272, 1054, - 1146, 1146,-32768,-32768,-32768,-32768,-32768, 11,-32768, 1240, - 1338,-32768,-32768, 1120,-32768, 14998,-32768, 14998, 508, 10589, - 470, 15051,-32768,-32768, 9040,-32768,-32768,-32768, 55,-32768, - 1260, 1122,-32768, 1188,-32768,-32768,-32768,-32768,-32768, 1147, --32768,-32768,-32768, 553, 1146, 1164, 1164, 1126, 1132, 1128, - 259, 1242,-32768, 8176,-32768,-32768,-32768,-32768, 1243, 1134, - 933, 146, 146,-32768, 393,-32768, 264,-32768, 35, 1164, --32768,-32768, 8176, 12507,-32768, 5281, 1334, 1138,-32768, 2363, - 1260,-32768,-32768, 1367, 70,-32768,-32768,-32768,-32768,-32768, - 560,-32768,-32768,-32768, 512, 512,-32768,-32768, 17, 1248, - 2000, 564,-32768,-32768, 1145, 25, 1240, 8176,-32768,-32768, - 280,-32768,-32768,-32768,-32768,-32768, 393,-32768, 1144, 512, - 1149, 1142,-32768, 1325,-32768, 12507,-32768, 14272, 530,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 1154,-32768,-32768, 281, --32768,-32768,-32768, 1054,-32768, 1291, 1295,-32768, 1146,-32768, - 14272,-32768,-32768, 1152, 1386, 1387,-32768 +-32768,-32768,-32768,-32768,-32768,-32768, 1298,-32768, 1298, 825, +-32768, 1298,-32768, 1327,-32768, 13544,-32768, 7791, 8460, 1275, + 181,-32768,-32768,-32768, 9332,-32768, 1171,-32768, 1193, 3059, +-32768, 1138, 1403,-32768, 15289,-32768, 455,-32768,-32768, 1975, + 15289, 1177, 10204, 3291, 1024, 12243, 10697, 10697, 354, 354, + 1123, 1123,-32768,-32768, 498, 3176, 1307,-32768, 1178, 1658, +-32768, 9332, 467, 467, 1117, 1182, 1182, 1182, 1182, 900, + 9550, 9332, 9332, 9332, 9332, 9332, 9332, 9332, 15460, 4231, + 1340,-32768, -122, 1315,-32768, 1348, 533, 1190,-32768, 1187, + 1191,-32768,-32768, 31, 1189, 987, 533,-32768, 1132, 1132, + 1192,-32768,-32768,-32768,-32768,-32768, 1195,-32768,-32768, 1197, +-32768, 1198,-32768,-32768,-32768,-32768,-32768, 15289,-32768,-32768, +-32768,-32768,-32768, 13544,-32768, -59, 3160, 1420, 1341,-32768, + 844, 189,-32768, 15460, 15289, 503,-32768,-32768,-32768,-32768, + 1427, 15289, 1975, 10204,-32768, 14734,-32768,-32768, 395, 1212, + 1216,-32768, 1117, 844, 964, 964, 377, 377, 1182, 1182, +-32768,-32768, 513, 844, 235, 1346,-32768,-32768,-32768, 14734, + 181, 1294, 14734, 968, 14734, 15460, 15460, -70, 14734, 1132, + 1244, 1244,-32768,-32768,-32768,-32768,-32768, 173,-32768, 1342, + 1439,-32768,-32768, 1220,-32768, 15289,-32768, 15289, 525, 3176, + 454, 15460,-32768,-32768, 9332,-32768,-32768,-32768, 66,-32768, + 1346, 1222,-32768, 1288,-32768,-32768,-32768,-32768,-32768, 1247, +-32768,-32768,-32768, 526, 1244, 1275, 1275, 1225, 1226, 1227, + 234, 1335,-32768, 8460,-32768,-32768,-32768,-32768, 1340, 1228, + 844, 44, 44,-32768, 437,-32768, 492,-32768, 31, 1275, +-32768,-32768, 8460, 12609,-32768, 5539, 1420, 1231,-32768, 2154, + 1346,-32768,-32768, 1464, 98,-32768,-32768,-32768,-32768,-32768, + 529,-32768,-32768,-32768, 74, 74,-32768,-32768, -70, 1341, + 1933, 537,-32768,-32768, 1239, -9, 1342, 8460,-32768,-32768, + 221,-32768,-32768,-32768,-32768,-32768, 437,-32768, 1238, 74, + 1243, 1236,-32768, 1421,-32768, 12609,-32768, 14734, 533,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 1245,-32768,-32768, 198, +-32768,-32768,-32768, 1132,-32768, 1383, 1386,-32768, 1244,-32768, + 14734,-32768,-32768, 1246, 1477, 1478,-32768 }; static const short yypgoto[] = {-32768, --32768, 1356,-32768,-32768,-32768, 1135, 991, 826,-32768, 570, - 326,-32768, 1012,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, 594, 580, 595,-32768, --32768,-32768, 343, 151,-32768, -764,-32768, -519,-32768, -972, - -78, -1191, -179, -178, -144, -163,-32768,-32768,-32768,-32768, - 604,-32768,-32768,-32768,-32768,-32768, 74,-32768,-32768,-32768, --32768,-32768,-32768, -812,-32768,-32768,-32768,-32768, -212,-32768, --32768,-32768,-32768, -173, 361,-32768, 582, 585,-32768,-32768, - 1414, 1197, 1047,-32768, 1428,-32768, 1130, 822,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768, -77, -152, -180,-32768, --32768,-32768, -74, 1157,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 1254, -181,-32768,-32768,-32768, -387,-32768, --32768,-32768, -174,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 573,-32768,-32768,-32768,-32768,-32768,-32768, 383,-32768, --32768,-32768, 1427,-32768,-32768,-32768,-32768, -234,-32768,-32768, - -1246, -816, 593,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, 1060, -227, -1180,-32768, -170,-32768, 941, -139, -613, - -158,-32768, -165,-32768,-32768, -194, -54, -1393, -1456, -538, --32768, -1124, 115, -1041,-32768,-32768, -177, -364, -984,-32768, - -914, -477, 1131,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768, -383, -276,-32768,-32768,-32768, 1143,-32768,-32768, -175, --32768, 329,-32768,-32768,-32768, 1722,-32768,-32768, -632, -367, - -436,-32768,-32768, -808, -438, -807,-32768,-32768, -599,-32768, --32768,-32768,-32768,-32768,-32768, 861,-32768,-32768, 872, 956, --32768, 688, -860, 966,-32768, 27, 1293,-32768, -987, -75, - -141, 31, 890,-32768,-32768, 2025, 1480, -203, -12, -169, - -457, -3, 283,-32768 +-32768, 1450,-32768,-32768,-32768, 1221, 1069, 906,-32768, 640, + 408,-32768, 1095,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 665, 655, 669,-32768, +-32768,-32768, 417, 218,-32768, -1194,-32768, -529,-32768, -987, + -8, -1232, -109, -130, -79, -110,-32768,-32768,-32768,-32768, + 667,-32768,-32768,-32768,-32768,-32768, 392,-32768,-32768,-32768, +-32768,-32768,-32768, -833,-32768,-32768,-32768,-32768, -162,-32768, +-32768,-32768,-32768, -179, 420,-32768, 644, 648,-32768,-32768, + 1491, 1279, 1120,-32768, 1508,-32768, 1208, 895,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, -15, -90, -118,-32768, +-32768,-32768, -6, 1232,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 1337, -190,-32768,-32768,-32768, 65,-32768, +-32768,-32768, -114,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768, 402,-32768,-32768,-32768,-32768,-32768,-32768, 446,-32768, +-32768,-32768, 1511,-32768,-32768,-32768,-32768, -238,-32768,-32768, + -1265, -819, 664,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, 1144, 169, -1217,-32768, -113,-32768, 1026, -68, + -618, -93,-32768, -100,-32768,-32768, -198, 14, -1429, -1469, + -538,-32768, -1150, 185, -1082,-32768,-32768, -112, -381, -1007, +-32768, -929, -464, 1215,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768, -399, -269,-32768,-32768,-32768, 1128,-32768,-32768, + -217,-32768, 397,-32768,-32768,-32768, 1980,-32768,-32768, -655, + -367, -447,-32768,-32768, -800, -559, -693,-32768,-32768, -629, +-32768,-32768,-32768,-32768,-32768,-32768, 938,-32768,-32768, 884, + 1043,-32768, 764, -854, 1050,-32768, 121, 1387,-32768, -1004, + -7, 6, 38, 1158,-32768,-32768, 2050, 1650, -12, -16, + -166, -511, -3, 359,-32768 }; -#define YYLAST 15261 +#define YYLAST 15672 static const short yytable[] = { 167, - 801, 261, 186, 394, 313, 303, 871, 522, 1048, 282, - 1107, 1108, 243, 226, 230, 301, 234, 633, 1206, 294, - 230, 1215, 1069, 889, 230, 249, 251, 230, 1118, 812, - 546, 588, 529, 1156, 1431, 922, 185, 389, 1150, 307, - 666, 1151, 313, 786, 229, 1383, 453, 371, 558, 549, - 240, 550, 810, 385, 247, 1531, 1532, 253, 523, 1229, - 471, 1230, 1231, 1232, 1233, 1234, 1235, 530, 533, 926, - 789, 928, 929, 558, 1576, 1577, 1070, 1056, 627, 789, - 230, 560, 1366, 1057, 204, 882, 619, 1526, 551, 882, - 797, 805, 831, 745, 1592, 1058, 1123, 395, 1124, 1578, - 956, 957, 958, 959, 960, 882, 560, 435, 1645, 882, - 257, 875, -576, 286, 555, 308, 86, 975, 1600, 187, - 439, 593, 818, 443, 962, 561, 594, 746, 574, 747, - -576, 87, 309, 1222, 390, 1517, 1575, 595, 1180, 1579, - 1059, 556, 1518, 422, 1160, 1570, 1161, 596, 597, 819, - 561, 218, 575, 562, 1060, 1646, 806, 1552, 620, 287, - 1061, 1613, 814, 815, 816, 230, 1557, 748, 186, 186, - 799, 598, 265, 267, 803, 186, 230, 621, 562, 284, - 882, 1593, 1062, 230, 186, 495, 205, 186, 883, 186, - 265, 267, 883, 649, 884, 260, 186, 186, 288, 1491, - 624, 1223, 262, 263, 241, 1558, 269, 882, 883, 268, - 1011, 387, 883, 290, 230, 576, 478, 908, 909, 910, - 911, 295, 1683, 296, 524, 241, 1571, 206, 1614, 1256, - 1257, 304, 230, 927, 552, 234, 237, 1307, 1297, 1323, - 241, 230, 1475, 207, 317, 1099, 310, 800, 241, 378, - 869, 634, 635, 636, 311, 1380, 524, 1615, 644, 1527, - 811, 1386, 393, 1382, 221, 1152, 310, 1390, 1293, 1394, - 651, 396, 1395, 1396, 1397, 1398, 1399, 1400, 1401, 1402, - 1679, 234, 1406, 883, 972, 1314, 1488, -544, 1410, 434, - 894, -585, 186, 1545, 920, 1387, 681, 1388, 682, 84, - 222, 6, 1045, 7, 1589, -544, 895, 1128, 1444, -585, - 883, 186, 1334, 85, 186, 444, 449, 1157, 1471, 235, - 973, 1473, 1489, 209, 310, 750, 431, 13, 963, 1167, - 1168, 1169, 1170, 1171, 1172, 1389, 964, 965, 966, 967, - 896, 680, 963, 832, 203, 897, 310, 968, 371, 499, - 964, 965, 966, 967, 1586, 1165, 1587, 210, 974, 1421, - 1490, 968, 1391, 1154, 1422, 1423, 1424, 1425, 1426, 1427, - 1428, 239, 969, 751, 16, 532, 535, 535, 1429, 898, - -543, 211, 1074, 1676, 817, 752, 1077, 542, 230, 848, - 18, 848, 848, 848, 848, 1601, 1602, 230, -543, 436, - 1112, -814, 489, 570, 1325, 437, 600, 1677, -574, 1461, - 1392, 590, 519, 520, 241, 244, 284, 541, 543, 1630, - 1493, 521, 1393, 186, 230, 1008, -574, 548, 212, 186, - 1016, 1017, 186, 186, 917, 918, 1013, 618, 411, 914, - 241, 1136, 412, 919, 213, 1624, 28, 915, 916, 917, - 918, 826, 256, 827, 609, 258, 588, 608, 919, 210, - 588, 966, 967, 612, 270, 1122, 613, 614, 285, 666, - 968, 1078, 665, 1435, 1130, 1131, 1132, 1133, 1134, 1135, - 310, 507, -814, 211, 1138, 1139, 302, -821, 846, 1538, - 1173, 1662, 1625, 1145, 1056, 1079, 1626, 1663, 1664, 721, - 828, 743, 829, 305, 314, 1415, 1416, 1417, 1418, 1419, - 1420, 214, 1058, 315, 1251, 1252, 913, 666, 505, 464, - 316, 1550, 794, 1253, 794, 1310, 1311, 1312, 980, 840, - 212, 841, 983, 1175, 318, 1565, 986, 1444, 319, 856, - 989, 857, 1080, 465, 992, 831, 213, 1337, 995, 6, - 378, 7, 998, 391, 388, 186, 1001, 1059, 1081, 466, - 99, 392, 1330, 1331, 1332, 1147, 506, 867, 1299, 868, - 400, 1060, 507, 1427, 1428, 13, 168, 1061, 508, 1304, - 495, 202, 1429, 511, 495, 398, 399, 220, 495, 822, - 402, 232, 495, 109, 403, 887, 495, 888, 512, 1062, - 495, 230, 1618, 241, 495, 1619, 963, 1620, 495, 407, - 1481, 866, 405, 214, 964, 965, 966, 967, 902, 866, - 903, 467, 16, 410, 794, 968,-32768, 1219, 826, 1220, - 1221, 858, 414, 415, 517, 518, 519, 520, 18, 867, - 417, 1258, 1083, 419, 524, 521, 1300, 1499, 423, 424, - 848, 848, 665, 665, 665, 665, 1503, 1504, 1505, 1506, - 1507, 1508, 1509, 1510, 425, 1514, 847, 914, 849, 850, - 851, 852, 301, 301, 511, 915, 916, 917, 918, 1084, - 428, 420, 914, 1117, 427, 867, 919, 1407, 310, 512, - 915, 916, 917, 918, 28, 371, 371, 433, 1121, 1110, --32768, 919, 441, 1315, 1129, 459, 451, 1116, 915, 916, - 917, 918, 867, 371, 1408, 450, 1239, 513, 1494, 919, - 1495, 470, 514, 515, 516, 517, 518, 519, 520, 743, - 743, 743, 743, 743, 454, 1546, 521, 1547, 1555, 1546, - 1556, 1588, 1155, 1176, 489, 1636, 743, 1158, 1159, 455, - 1182, 1183, 456, 1185, 1186, 457, 1188, 1189, 1447, 1191, - 1192, 460, 1194, 1195, 461, 1197, 1198, 462, 1200, 1201, --32768, 1203, 1204, 473, 474, 1403, 1358, 476, 964, 965, - 966, 967, 1359, 230, 427, 230, 1599, 477, 480, 968, - 1591, 1647, 1360, 1648, 1019, 1656, 542, 1657, 794, 500, - 1361, 502, 503, 526, 186, 528, 544, 1023, 554, 1023, - 1025, 1026, 186, 1002, 1362, 1007, 527, 1044, 1243, 571, - 16, 618, 1023, 1072, 1053, 579, 541, 1363, 591, 1451, - 230, 605, 606, 1244, 615, 623, 590, 624, 1021, 1216, - 590, 1093, 1093, 628, -814, 1364, 1028, 1462, 630, 284, - 1094, 1094, 284, 91, 637, 645, 186, 646, 186, 1103, - 1068,-32768, 934, 618, 1684, 647, 648, 668, 478, 1249, - 1250, 1251, 1252, 521, 677, 1113, 1114, 93, 678, 679, - 1253, 789, 802, 1083, 804, 935, 808, 810, 821, 823, - 1100, 824, 1102, 98, 99, 825, 1237, 378, 378, 834, - 665, 665, 836, 835, 839, 842, 837, 845, 853, 665, - 665, 665, 665, 665, 665, 378, 859, 504, 860, 854, - 1317, 855, 505, 371, 1319, 861, 862, 109, 870, 872, - 880, 879, 1476, 1301, 1449, 639, 640, 892, 900, 1450, - 885, 886, 899, 904, 1238, 890, 743, 891, 1455, 665, - 1239, 1511, 893, 1338, 905, 114, 1240, 906, 743, 743, - 743, 743, 743, 743, 914, 912, 907, 1606, 924, 963, - 506, 921, 915, 916, 917, 918, 507, 964, 965, 966, - 967, 925, 508, 919, 931, 1236, 948, 946, 968, 949, - 1237, 1029, 950, 509, 951, 952, 953, 954, 955, 230, - 970, 510, 1210, 971, 978, 794, 1544, 979, 981, 982, - 984, 985, 1015, 936, 987, 988, 990, 991, 937, 938, - 939, 940, 941, 942, 943, 1009, 993, 994, 1044, 1007, - 1044, 1044, 1044, 1044, 1044, 1044, 996, 997, 1238, 999, - 1050, 1000, 618, 618, 1239, 1054, 1010, 1046, 1568, 1569, - 1240, 1073, 1243, 186, 267, 1378, 1047, 1281, 1075, 1104, - 387, 1241, 1097, 1111, 1409, 1140, 266, 1244, 919, 1242, - 1142, 1148, 1522, 1143, 1590, 1144, 1149, 968, 511, 1184, - 1181, 1292, 1530, 1187, 298, 1190, 1193, 1262, 1196, 1199, - 1457, 1202, 1205, 512, 1460, 1245, 1207, 1659, 1208,-32768, - 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1425, 1426, 1427, - 1428, 1212, 1211, 1217, 1253, 1224, 1225, 1226, 1429, 1228, - 1260, 513, 1279, 1280, 1255, 378, 514, 515, 516, 517, - 518, 519, 520, -821, 1259, 1261, 1286, 1284, 1289, 1290, - 521, 1291, 1298, 1166, 1421, 165, 1243, 1294, 165, 1422, - 1423, 1424, 1425, 1426, 1427, 1428, 1324, 1296, 1318, 165, - 165, 1244, 165, 1429, 1367, 1302, 165, 1369, 1303, 1306, - 165, 165, 165, 165, 1421, 1308, 743, 1309, 1313, 1322, --32768,-32768, 1425, 1426, 1427, 1428, 1326, 1327, 1328, 1245, - 1329, 446, 1333, 1429, 1246, 1247, 1248, 1249, 1250, 1251, - 1252, 1335, 1336, 230, 1370, 721, 1342, 1343, 1253, 1500, - 1501, 1254, 1344, 1345, 1346, 186, 1347, 1348, 1374, 1349, - 186, 1350, 1351, 1352, 1044, 1353, 165, 1354, 1355, 1372, - 1356, 1357, 1044, 1007, 1375, 1379, 1044, 1253, 1044, 1432, - 1385, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1044, 1373, - 1434, 1044, 1448, 1412, 1376, 186, 1413, 1044, 1414, 1430, - 1468, 1452, 538, 1453, 1469, 1454, 267, 267, 267, 267, - 267, 267, 1456, 1458, 1421, 1459, 1436, 1463, 1439, 1422, - 1423, 1424, 1425, 1426, 1427, 1428, 230, 1474, 1478, 1464, - 1465, 1467, 1446, 1429, 1674, 299, 1502, 505, 1482, 1483, - 274, 275, 276, 277, 278, 279, 280, 1485, 1492, 1496, - 1497, 165, 1543, 1429, 165, 165, 1438, 1515, 165, 165, - 1521, 165, 165, 1520, 1524, 165, 1523, 1525, 1533, 165, - 165, 1534, 1529, 165, 1535, 165, 165, 165, 1536, 1539, - 1541, 1553, 165, 165, 1548, 506, 1554, 662, 1559, 1564, - 1581, 507, 1584, 1585, 1595, 1596, 1571, 508, 1603, 1480, - 165, 1605, 1628, 230, 1604, 663, 1607, 1612, 509, 1638, - 1644, 267, 1658, 1666, 1668, 1669, 740, 1670, 165, 1675, - 1680, 165, 1681, 867, 169, 1686, 1687, 165, 255, 1044, - 1651, 1651, 1283, 1007, 741, 409, 170, 833, 171, 572, - 1634, 536, 1067, 172, 1022, 1049, 1282, 1024, 267, 1611, - 173, 174, 1411, 1549, 175, 1667, 1594, 267, 267, 267, - 267, 267, 267, 267, 267, 176, 267, 165, 505, 1617, - 371, 1052, 1643, 177, 1665, 1288, -320, 1096, 165, 1095, - 246, 219, 397, 547, 873, 440, 1629, 1567, 1653, 1566, - 300, 1652, 1634, 511, 432, 1287, 178, 165, 254, 1106, - 165, 165, 165, 787, 179, 180, 1660, 1637, 512, 573, - 230, 1654, 1661, 181, 1574, 1472, 506, 468, 1672, 504, - 1320, 486, 507, 798, 505, 876, 297, 1012,-32768, 788, - 1044, 1368, 1551, 487, 1598, 0, 513, 0, 0, 0, - 1007, 514, 515, 516, 517, 518, 519, 520, 1563, 0, - 0, 0, 0, 0, 0, 521, 186, 0, 0, 794, - 0, 794, 0, 0, 0, 186, 1237, 662, 662, 662, - 662, 0, 506, 165, 165, 0, 0, 0, 507, 0, - 0, 0, 1237, 165, 508, 663, 663, 663, 663, 165, - 1562, 267, 0, 0, 0, 509, 0, 165, 0, 0, - 0, 0, 165, 510, 0, 0, 0, 0, 0, 165, - 165, 0, 0, 0, 1238, 165, 0, 0, 165, 165, - 1239, 0, 1623, 165, 511, 0, 1240, 0, 0, 0, - 1238, 0, 0, 0, 0, 0, 1239, 1241, 0, 512, - 1635, 0,-32768, 641, 740, 740, 740, 740, 740, 0, + 398, 306, 186, 285, 264, 374, 304, 813, 244, 1223, + 528, 885, 643, 227, 231, 1086, 235, 553, 1232, 1065, + 231, 598, 297, 1403, 231, 251, 254, 231, 903, 826, + 1124, 1125, 1173, 1167, 1451, 676, 1168, 535, 388, 1551, + 1552, 936, 568, 185, 799, 799, 824, 540, 1135, 940, + 896, 942, 943, 559, 529, 560, 459, 1087, 204, 1633, + 1590, 1248, 796, 1249, 1250, 1251, 1252, 1253, 1254, 210, + 477, 896, 1537, 1385, 536, 570, 889, 484, 755, 1538, + 231, 1596, 1597, 1546, 637, 807, 1241, 970, 971, 972, + 973, 974, 561, 211, 1435, 1436, 1437, 1438, 1439, 1440, + 187, 568, 393, 584, 989, 1612, 922, 923, 924, 925, + 896, 6, 908, 7, 756, 845, 757, 896, 1140, 445, + 1595, 571, 449, 310, 629, 1620, 817, 585, 1634, -585, + 909, 84, 565, 313, 570, 976, 1665, 13, 230, 1197, + 289, 1591, 212, -553, 241, 85, 501, -585, 248, 572, + 690, 256, -594, 897, 758, 898, 1242, 1635, 213, 566, + 203, -553, 205, 896, 910, 231, 1177, 634, 186, 186, + -594, 1326, 268, 270, 897, 186, 231, 811, 1511, 287, + 571, 815, 896, 231, 186, 1666, 16, 186, 290, 186, + 268, 270, 586, 818, 1613, 316, 186, 186, 630, 394, + 1501, 311, 18, 206, 260, 218, 659, 390, 572, 265, + 266, 242, 242, 897, 231, 1025, 271, 631, 312, 207, + 897, 242, 530, 812, 530, 214, 1141, 291, 298, 1703, + 299, 242, 941, 231, 316, 1495, 235, 1519, 307, 221, + 562, 1342, 231, 1275, 1276, 399, 1523, 1524, 1525, 1526, + 1527, 1528, 1529, 1530, 1116, 1534, 825, 1547, 28, 1400, + 883, 1316, 1169, 1598, 1699, 760, 897, 1402, 1333, 1344, + 832, 1410, 1565, 1414, 1178, 222, 1415, 1416, 1417, 1418, + 1419, 1420, 1421, 1422, 235, 897, 1426, 1353, 440, 263, + 1577, 1145, 1430, 428, 911, 186, 1491, 833, 313, 1493, + 272, 441, 1696, 1599, 934, 1609, 1062, 293, 1174, 236, + 1464, 1411, 374, 761, 186, 1171, 1073, 186, 450, 455, + 1184, 1185, 1186, 1187, 1188, 1189, 1697, 762, 912, 209, + 240, 1578, 313, 1606, 1075, 1607, 437, 927, 320, 1182, + 314, 977, 1091, 381, 245, 977, 1094, -552, 505, 978, + 979, 980, 981, 978, 979, 980, 981, 397, 1139, 1412, + 982, 986, 238, 210, 982, -552, 400, 1147, 1148, 1149, + 1150, 1151, 1152, 1413, 538, 928, 542, 542, 1621, 1622, + 1611, 1076, 983, 929, 930, 931, 932, 211, 1095, -583, + 91, 549, 231, 242, 933, 1077, 86, 831, 313, 987, + 261, 1078, 1650, 231, 1572, 168, 860, -583, 610, 580, + 202, 87, 1096, 1481, 93, 1406, 220, 600, 1022, -823, + 233, 470, 287, 1079, -830, 1513, 840, 1129, 841, 186, + 231, 1028, 98, 99, 1682, 186, 212, 988, 186, 186, + 1683, 1684, 842, 628, 843, 471, 1031, 1032, 644, 645, + 646, 1407, 213, 1408, 598, 654, 242, 259, 598, 442, + 854, 1097, 855, 472, 99, 443, 109, 661, 1153, 273, + 618, 1455, 676, 977, 649, 650, 622, 1098, 675, 623, + 624, 978, 979, 980, 981, 511, 1558, 1155, 1156, 288, + 928, 1409, 982, 691, 114, 692, 1162, 109, 929, 930, + 931, 932, 525, 526, 1508, 731, 417, 753, 305, 933, + 418, 527, 1329, 1330, 1331, 548, 550, 1190, 308, 214, + 676, -823, 495, 931, 932, 473, 1570, 558, 804, 6, + 804, 7, 933, 512, 317, 810, 1192, 319, 1585, 513, + 1464, 1356, 1509, 511, 980, 981, 318, 514, 501, 1349, + 1350, 1351, 501, 982, 619, 13, 501, 603, 515, 870, + 501, 871, 604, 391, 501, 186, 321, 322, 501, 510, + 395, 392, 501, 605, 511, 845, 501, 1270, 1271, 1164, + 1510, 396, 402, 606, 607, 1318, 1272, 313, 403, 1312, + 862, 512, 862, 862, 862, 862, 1323, 513, 404, 405, + 1447, 1448, 408, 409, 16, 514, 836, 608, 1441, 1449, + 513, 231, 406, 1442, 1443, 1444, 1445, 1446, 1447, 1448, + 18, 880, 512, 413, 828, 829, 830, 1449, 513, 880, + 91, 332, 416, 881, 804, 882, 514, 487, 1073, 901, + 423, 902, 411, 517, 1074, 420, 337, 515, 1638, 242, + 381, 1639, 421, 1640, 93, 516, 1075, 425, 518, 338, + 426, 429, 675, 675, 675, 675, 430, 374, 374, 431, + 434, 1127, 98, 99, 433, 1644, 28, 304, 304, 1133, + 916, 313, 917, 344, 439, 374, 519, 1101, 447, 457, + 465, 520, 521, 522, 523, 524, 525, 526, 1238, 476, + 1239, 517, 840, 1076, 1240, 527, 109, 509, 881, 1334, + 1277, 532, 488, 489, 517, 456, 518, 1077, 530, 881, + 1319, 1427, 1645, 1078, 460, 534, 1646, 461, 881, 518, + 1428, 1514, 517, 1515, 114, 872, 1566, 490, 1567, 753, + 753, 753, 753, 753, 519, 1079, 1575, 518, 1576, 846, +-32768,-32768, 523, 524, 525, 526, 753,-32768, 1566, 433, + 1608, 1619, 1667, 527, 1668, 523, 524, 525, 526, 462, + 1676, 1656, 1677, 463, 466, 519, 527, 1467, 495, 928, + 520, 521, 522, 523, 524, 525, 526, 929, 930, 931, + 932, 467, 468, 231, 527, 231, 539, 1183, 933, 479, + 551, 1146, 1034, 480, 482, 1026, 491, 1423, 549, 483, + 804, 486, 1233, 506, 554, 1255, 508, 556, 186, 533, + 1256, 1040, 557, 1040, 1042, 1043, 186, 564, 948, 581, + 16, 1061, 589, 1089, 601, 628, 1040, 615, 1070, 616, + 625, 634, 638, 633, 231, -823, 640, 1100, 647, 655, + 600, 1110, 1110, 949, 600, 862, 862, 678, 656, 1038, + 657, 1471, 658, 287, 1111, 1111, 287, 1045, 1257, 484, + 186, 687, 186, 1120, 1258, 527, 799, 628, 689, 1482, + 1377, 1704, 1259, 511, 688, 814, 1378, 816, 1134, 1130, + 1131, 822, 820, 1260, 824, 835, 839, 1379, 374, 837, + 838, 1261, 849, 1138, 848, 850, 1380, 856, 1320, 853, + 851, 1117, 868, 1119, 675, 675, 859, 1016, 867, 1021, + 1381, 869, 873, 675, 675, 675, 675, 675, 675, 874, + 875, 512, 548, 1382, 994, 876, 1469, 513, 997, 886, + 1496, 1470, 1000, 894, 884,-32768, 1003, 1172, 893, 899, + 1006, 1383, 1175, 1176, 1009, 900, 904, 905, 1012, 906, + 753, 907, 1015, 675, 913, 914, 926, 1475, 1085, 918, + 1030, 1023, 753, 753, 753, 753, 753, 753, 1262, 919, + 920, 950, 1626, 938, 1531, 921, 951, 952, 953, 954, + 955, 956, 957, 1263, 861, 935, 863, 864, 865, 866, + 939,-32768, 510, 960, 945, 381, 381, 511, 962, 929, + 930, 931, 932, 231, 963, 964, 1227, 965, 966, 804, + 933, 1264, 1036, 381, 967,-32768, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 978, 979, 980, 981, 968, 969, 1564, + 1272, 517, 1024, 1273, 982, 1061, 1046, 1061, 1061, 1061, + 1061, 1061, 1061, 984, 1035, 512, 518, 1441, 985, 628, + 628, 513, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 514, + 186, 270, 992, 390, 1300, 1542, 1449, 1398, 1067, 1429, + 515, 1588, 1589, 993, 519, 1550, 995, 1071, 516, 996, + 1258, 1100, 523, 524, 525, 526, 998, 999, 1311, 1001, + 1002, 1004, 1005, 527, 1090, 1092, 1007, 1610, 1008, 1010, + 1011, 1281, 1013, 1441, 1014, 1063, 1064, 1679, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, 1128, 1114, 1121, 933, 1157, + 165, 1165, 1449, 165, 1159, 1522, 1160, 1021, 1161, 1166, + 982, 1198, 1224, 1225, 165, 165, 1201, 165, 1204, 1207, + 1256, 165, 1210, 1193, 1213, 165, 165, 165, 165, 1216, + 1199, 1200, 1219, 1202, 1203, 517, 1205, 1206, 1222, 1208, + 1209, 1228, 1211, 1212, 1234, 1214, 1215, 1441, 1217, 1218, + 518, 1220, 1221,-32768,-32768, 1445, 1446, 1447, 1448, 1229, + 1236, 928, 1237, 753, 1262, 1243, 1449, 1244, 1257, 929, + 930, 931, 932, 1247, 1258, 1245, 452, 1274, 519, 1263, + 933, 165, 1259, 520, 521, 522, 523, 524, 525, 526, + 231, -830, 731, 1260, 1279, 1278, 1280, 527, 1298, 1299, + 1324, 1303, 1305, 1308, 186, 1309, 381,-32768, 1310, 186, + 1313, 1315, 1317, 1061, 1321, 1268, 1269, 1270, 1271, 1322, + 1325, 1061, 1327, 1328, 1332, 1061, 1272, 1061, 1343, 1337, + 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1061, 1341, 1386, + 1061, 1345, 1346, 977, 186, 1393, 1061, 1347, 545, 1355, + 1396, 978, 979, 980, 981, 270, 270, 270, 270, 270, + 270, 1456, 982, 1459, 1348, 1388, 165, 1694, 1352, 165, + 165, 1354, 1389, 165, 165, 231, 165, 165, 1262, 1391, + 165, 1466, 1394, 1361, 165, 165, 1362, 1363, 165, 1364, + 165, 165, 165, 1263, 1365, 1366, 1367, 165, 165, 1368, +-32768, 1369, 1370, 1336, 269, 1563, 1371, 1338, 1445, 1446, + 1447, 1448, 1372, 1373, 1021, 165, 1374, 1375, 1376, 1449, + 1395, 1264, 301, 1392, 1399, 1272, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 1405, 165, 672, 1357, 165, 1432, 1433, + 1272, 1434, 1452, 165, 1500, 1454, 1468, 1450, 1648, 302, + 1472, 1473, 231, 1488, 277, 278, 279, 280, 281, 282, + 283, 270, 1474, 1489, 750, 1494, 1476, 1478, 1479, 1483, + 1484, 1498, 1485, 1487, 1502, 1503, 1671, 1671, 374, 1061, + 1505, 1512, 1516, 1517, 1449, 165, 1535, 1540, 1541, 1543, + 1520, 1521, 1544, 1549, 1545, 1559, 165, 1553, 270, 1458, + 1554, 1687, 1555, 1556, 1568, 1561, 1579, 270, 270, 270, + 270, 270, 270, 270, 270, 165, 270, 1573, 165, 165, + 165, 1574, 1584, 1604, 1601, 1605, 1615, 1616, 1591, 1623, + 1624, 1627, 1625, 1632, 1658, 474, 169, 1664, 1678, 1686, + 1688, 1689, 1695, 1690, 1700, 1701, 1706, 1707, 170, 881, + 171, 493, 258, 582, 415, 172, 1084, 847, 543, 1039, + 231, 1302, 173, 174, 1066, 1041, 175, 1301, 1431, 1631, + 1663, 1614, 1637, 1569, 1685, 1477, 1021, 176, 1069, 1480, + 1061, 1307, 1571, 1113, 510, 177, 1112, 247, -324, 511, + 555, 219, 165, 165, 1583, 401, 446, 887, 1649, 1587, + 1673, 1672, 438, 303, 165, 1306, 186, 1586, 178, 804, + 165, 804, 257, 1680, 1123, 186, 179, 180, 165, 672, + 672, 672, 672, 165, 797, 181, 1674, 1681, 1657, 583, + 165, 165, 1594, 1692, 1492, 1339, 165, 512, 492, 165, + 165, 270, 890, 513, 165, 1027, 808, 1582, 1255, 798, + 300, 514, 1618, 1256, 1387, 0, 0, 0, 0, 0, + 0, 0, 515, 0, 651, 0, 0, 0, 1643, 0, + 516, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1654, 0, 0, 1021, 0, 0, 0, 0, 0, + 1655, 0, 0, 0, 0, 0, 750, 750, 750, 750, + 750, 1257, 0, 0, 0, 0, 165, 1258, 0, 673, + 0, 0, 0, 750, 0, 1259, 0, 0, 0, 0, + 1643, 0, 0, 0, 493, 0, 1260, 0, 0, 165, + 0, 165, 0, 1654, 1261, 1255, 165, 0, 751, 0, + 1256, 0, 1655, 0, 1693, 0, 0, 517, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 740, 741, 741, 741, 741, 741, 513, 0, 0, - 0, 0, 378, 0, 1623, 517, 518, 519, 520, 741, - 511, 0, 0, 0, 0, 165, 521, 0, 0, 0, - 0, 0, 1635, 0, 1673, 512, 0, 0, 0, 0, - 0, 0, 0, 487, 1236, 0, 0, 0, 165, 1237, - 165, 538, 0, 0, 0, 0, 0, 618, 0, 0, - 0, 0, 1243, 513, 0, 0, 0, 0, 514, 515, - 516, 517, 518, 519, 520, 0, 0, 1244, 1243, 0, - 0, 165, 521, 0, 0, 1305, 0, 0, 0, 0, - 1041, 0, 487, 1244, 0, 0, 0, 1238, 0, 0, - 0, 0, 0, 1239, 0, 1245, 0, 0, 0, 1240, - 1246, 1247, 1248, 1249, 1250, 1251, 1252, 0, 0, 0, - 1241, 1245, 0, 0, 1253, 0, 0, 165, 1242, 1249, - 1250, 1251, 1252, 0, 0, 0, 0, 165, 0, 0, - 1253, 0, 0, 0, 0, 165, 0, 0, 0, 0, - 165, 0, 0, 0, 0, 662, 662, 0, 0, 0, - 0, 0, 0, 0, 662, 662, 662, 662, 662, 662, - 0, 0, 0, 663, 663, 0, 0, 0, 0, 448, - 0, 0, 663, 663, 663, 663, 663, 663, 0, 505, + 0, 0, 518, 0, 0, 545, 165, 628, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 493, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1257, 0, + 519, 0, 0, 0, 1258, 520, 521, 522, 523, 524, + 525, 526, 1259, 0, 0, 0, 0, 0, 0, 527, + -613, 1262, 165, 1260, 0, 0, 381, 0, 0, 0, + 0, 1261, 165, 0, 0, 188, 1263, 0, 0, 0, + 165, 0, 0, 0, 0, 165, 0, 0, 0, 189, + 0, 0, 0, 0, 190, 0, 0, 0, 0, 0, + 0, 191, 192, 0, 1264, 193, 0, 0, 0, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 194, 0, 0, 0, + 0, 672, 672, 1272, 195, 0, 1401, 196, 0, 0, + 672, 672, 672, 672, 672, 672, 0, 0, 0, 0, + 0, 0, 0, 673, 673, 673, 673, 197, 1262, 198, + 0, 0, 0, 0, 0, 199, 200, 0, 0, 0, + 0, 0, 0, 1263, 0, 0, 0, 750, 0, 0, + 672, 0, 510, 0, 0, 0, 0, 511, 0, 750, + 750, 750, 750, 750, 750, 0, 0, 0, 0, 0, + 0, 1264, 0, 0, 0, 0, 1265, 1266, 1267, 1268, + 1269, 1270, 1271, 0, 0, 0, 0, 0, 0, 0, + 1272, 0, 0, 1518, 0, 0, 0, 0, 0, 0, + 751, 751, 751, 751, 751, 512, 0, 0, 0, 0, + 0, 513, 0, 0, 0, 0, 0, 751, 0, 514, + 0, 0, 0, 0, 165, 0, 165, 0, 0, 0, + 515, 0, 0, 0, 0, 0, 165, 0, 516, 165, + 510, 165, 0, 0, 0, 511, 0, 0, 0, 165, + 0, 0, 165, 0, 165, 165, 165, 165, 0, 0, + 0, 0, 0, 0, 0, 0, 165, 165, 0, 165, + 0, 0, 454, 0, 0, 165, 0, 0, 0, 0, + 0, 165, 0, 0, 0, 165, 0, 1256, 0, 0, + 0, 0, 1058, 512, 165, 165, 165, 165, 0, 513, + 0, 165, 0, 165, 165, 0, 0, 514, 165, 0, + 0, 0, 0, 0, 0, 517, 0, 0, 515, 493, + 165, 165, 0, 0, 0, 0, 516, 0, 0, 0, + 518, 0, 0, 0, 0, 1257, 0, 510, 0, 0, + 0, 1258, 511, 0, 454, 0, 0, 0, 0,-32768, + 0, 0, 0, 0, 0, 0, 0, 0, 519, 0, + 493, 0, 0, 520, 521, 522, 523, 524, 525, 526, + 0, 0, 0, 0, 0, 673, 673, 527, 915, 0, + 750, 0, 0, 0, 673, 673, 673, 673, 673, 673, + 512, 0, 0, 0, 0, 0, 513, 0, 0, 0, + 0, 0, 0, 517, 514, 0, 0, 0, 0, 493, + 0, 0, 493, 0, 0, 515, 0, 0, 518, 0, + 0, 751, 0, 516, 673, 0, 0, 0, 0, 0, + 0, 0, 0, 751, 751, 751, 751, 751, 751, 0, + 0, 0, 0, 0, 165, 1262, 519, 165, 0, 0, + 165, 520, 521, 522, 523, 524, 525, 526, 0, 0, + 1263, 510, 0, 0, 1659, 527, 511, 493, 1675, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 740, 0, 0, 662, 1243, 0, 1236, 0, 0, - 0, 0, 1237, 740, 740, 740, 740, 740, 740, 741, - 1244, 0, 663, 0, 0, 0, 0, 0, 0, 0, - 0, 741, 741, 741, 741, 741, 741, 506, 0, 0, - 0, 0, 0, 507, 0, 0, 0, 0, 1245, 508, - 448, 0, 0, 1246, 1247, 1248, 1249, 1250, 1251, 1252, - 1238, 0, 0, 0, 0, 0, 1239, 1253, 0, 0, - 1381, 1237, 1240, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1241, 0, 0, 0, 0, 0, 0, - 0, 1242, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1041, 0, 1041, 1041, 1041, 1041, 1041, 1041, 165, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 1238, - 0, 0, 165, 0, 165, 1239, 0, 1277, 0, 0, - 165, 1240, 0, 165, 0, 165, 165, 165, 165, 0, - 0, 0, 0, 0, 0, 511, 0, 165, 165, 0, - 165, 0, 0, 0, 0, 0, 165, 0, 0, 0, - 512, 0, 165, 0, 0, 0, 165, 0, 1243, 0, - 0, 0, 0, 0, 0, 165, 165, 165, 165, 0, - 0, 0, 165, 1244, 165, 165, 0, 504, 513, 165, - 0, 0, 505, 0,-32768,-32768, 517, 518, 519, 520, - 487, 165, 165, 0, 0, 0, 0, 521, 0, 0, - 0, 1245, 0, 0, 0, 0, 1246, 1247, 1248, 1249, - 1250, 1251, 1252, 0, 0, 0, 0, 1243, 0, 0, - 1253, 740, 0, 1498, 0, 0, 0, 0, 0, 472, - 506, 487, 1244, 0, 0, 0, 507, 0, 0, 741, - 0, 0, 508, 0, 488, 0, 0, 491, 0, 492, - 493, 494, 498, 509, 0, 0, 0, 0, 0, 0, - 1245, 510, 0, 0, 0, 0,-32768,-32768, 1249, 1250, - 1251, 1252, 0, 0, 0, 0, 0, 0, 0, 1253, - 487, 0, 0, 487, 0, 0, 504, 1041, 0, 0, - 0, 505, 0, 0, 0, 1041, 0, 0, 0, 1041, - 0, 1041, 0, 0, 1041, 1041, 1041, 1041, 1041, 1041, - 1041, 1041, 0, 0, 1041, 165, 607, 0, 165, 0, - 1041, 165, 0, 0, 0, 0, 0, 0, 0, 1277, - 1277, 1277, 1277, 1277, 1277, 487, 0, 0, 511, 506, - 0, 629, 0, 0, 0, 507, 0, 0, 0, 0, - 0, 508, 0, 512, 0, 1445, 0, 0, 165, 165, - 0, 0, 509, 0, 650, 0, 0, 0, 0, 165, - 510, 673, 504, 165, 0, 0, 0, 505, 0, 0, - 676, 513, 0, 0, 0, 0, 514, 515, 516, 517, - 518, 519, 520, 0, 0, 723, 0, 165, 0, 749, - 521, 753, 0, 1655, 757, 761, 765, 769, 773, 777, - 781, 785, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 506, 0, 0, 0, 0, - 0, 507, 0, 0, 1277, 0, 0, 508, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 511, 509, 448, - 0, 0, 1041, 0, 0, 0, 510, 0, 0, 0, - 0, 0, 512, 0, 0, 0, 0, 0, 0, 0, - 1043, 1277, 0, 0, 0, 0, 0, 0, 0, 0, - 1277, 1277, 1277, 1277, 1277, 1277, 1277, 1277, 0, 1277, - 513, 0, 0, 487, 0, 514, 515, 516, 517, 518, - 519, 520, 0, 0, 0, 0, 0, 0, 0, 521, - -604, 0, 0, 504, 0, 874, 0, 0, 505, 165, - 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 165, 0, 511, 0, 0, 165, 0, 0, 0, - 504, 0, 0, 1639, 0, 505, 0, 0, 512, 487, - 0, 0, 0, 1041, 0, 0, 0, 0, 0, 0, - 673, 0, 673, 673, 0, 487, 506, 0, 0, 0, - 945, 165, 507, 1640, 0, 0, 513, 0, 508, 0, - 0, 514, 515, 516, 517, 518, 519, 520, 0, 509, - 0, 0, 0, 506, 0, 521, 901, 510, 0, 507, - 0, 504, 165, 0, 0, 508, 505, 0, 165, 0, - 0, 0, 0, 0, 1277, 0, 509, 0, 0, 487, - 1043, 0, 0, 0, 510, 0, 0, 0, 0, 961, - 0, 0, 0, 0, 0, 0, 0, 487, 0, 0, - 0, 0, 0, 977, 0, 0, 0, 498, 487, 0, - 0, 498, 0, 0, 506, 498, 0, 0, 0, 498, - 507, 1641, 0, 498, 0, 0, 508, 498, 0, 0, - 664, 498, 0, 0, 511, 498, 0, 509, 0, 165, - 0, 1043, 0, 1043, 1043, 1043, 1043, 1043, 1043, 512, - 0, 0, 0, 0, 0, 0, 0, 487, 0, 742, - 0, 511, 0, 487, 0, 0, 0, 1043, 0, 0, - 0, 0, 0, 0, 0, 0, 512, 513, 0, 0, - 0, 0, 514, 515, 516, 517, 518, 519, 520, 0, - 0, 0, 0, 0, 0, 0, 521, -603, 0, 0, - 0, 487, 504, 0, 513, 0, 0, 505, 0, 514, - 515, 516, 517, 518, 519, 520, 0, 0, 0, 0, - 0, 0, 511, 521, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 1115, 0, 0, 0, 512, 0, 0, - 487, 0, 0, 1119, 0, 0, 165, 0, 0, 0, - 0, 0, 1120, 0, 0, 506, 487, 487, 673, 0, - 0, 507, 0, 0, 487, 513, 0, 508, 165, 0, - 514, 515, 516, 517, 518, 519, 520, 0, 509, 0, - 0, 0, 0, 1146, 521, 0, 510, 0, 0, 0, - 1043, 0, 165, 91, 329, 165, 0, 165, 487, 487, - 481, 165, 0, 0, 0, 0, 673, 0, 0, 334, - 664, 664, 664, 664, 0, 0, 0, 93, 487, 0, - 487, 0, 335, 0, 487, 0, 0, 0, 0, 0, - 0, 0, 0, 98, 99, 0, 0, 1043, 0, 0, - 0, 0, 0, 0, 341, 1043, 1043, 0, 0, 1043, - 0, 1043, 0, 0, 1043, 1043, 1043, 1043, 1043, 1043, - 1043, 1043, 0, 511, 1043, 0, 0, 109, 0, 0, - 1043, 0, 0, 482, 483, 0, 165, 0, 512, 1043, - 1043, 1043, 1043, 1043, 1043, 0, 0, 742, 742, 742, - 742, 742, 0, 0, 0, 114, 0, 0, 484, 0, - 0, 0, 0, 0, 742, 0, 513, 188, 0, 0, - 0, 514, 515, 516, 517, 518, 519, 520, 0, 932, - 0, 189, 0, 0, 933, 521, 190, 0, 165, 0, - 165, 0, 0, 191, 192, 0, 504, 193, 878, 0, - 0, 505, 0, 0, 0, 1043, 0, 0, 194, 0, - 0, 0, 0, 165, 0, 0, 195, 0, 0, 196, - 0, 0, 0, 0, 0, 0, 0, 485, 0, 0, - 0, 0, 0, 0, 0, 1042, 673, 673, 673, 197, - 0, 198, 0, 0, 1043, 0, 0, 199, 200, 506, - 0, 0, 0, 0, 1043, 507, 0, 0, 0, 0, - 1043, 508, 1043, 1321, 0, 0, 0, 0, 0, 0, - 0, 0, 509, 673, 673, 673, 0, 0, 0, 0, - 510, 1043, 0, 0, 0, 0, 0, 0, 0, 0, - 1043, 1043, 1043, 1043, 1043, 1043, 1043, 1043, 0, 1043, + 0, 0, 0, 0, 0, 0, 0, 0, 1264, 0, + 165, 165, 0, 0, 1660, 0, 1268, 1269, 1270, 1271, + 517, 165, 0, 0, 0, 165, 1058, 1272, 1058, 1058, + 1058, 1058, 1058, 1058, 512, 518, 0, 0, 0, 0, + 513, 0, 0, 0, 0, 0, 0, 0, 514, 165, + 0, 0, 1296, 0, 0, 0, 0, 0, 0, 515, + 0, 0, 0, 519, 0, 0, 0, 516, 520, 521, + 522, 523, 524, 525, 526, 0, 0, 0, 0, 0, + 0, 0, 527, -612, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 664, 664, - 0, 0, 0, 0, 0, 0, 0, 664, 664, 664, - 664, 664, 664, 0, 0, 0, 0, 1043, 0, 0, + 0, 0, 0, 0, 1661, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1043, 0, 0, 511, 0, 0, - 0, 1043, 0, 1043, 742, 0, 0, 664, 0, 0, - 0, 0, 512, 0, 0, 0, 742, 742, 742, 742, - 742, 742, 0, 0, 0, 1179, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 513, 0, 0, 0, 0, 514, 515, 516, 517, 518, - 519, 520, 0, 0, 0, 1043, 0, 1043, 0, 521, - 0, 0, 0, 0, 1043, 0, 89, 90, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 322, 323, 0, 0, 1042, 0, 1042, 1042, - 1042, 1042, 1042, 1042, 0, 0, 0, 0, 0, 91, - 581, 0, 0, 0, 0, 0, 582, 0, 0, 0, - 0, 0, 1278, 0, 0, 583, 0, 0, 0, 0, - 0, 1477, 0, 93, 0, 0, 94, 0, 0, 0, - 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, - 99, 0, 336, 0, 337, 100, 0, 0, 0, 0, - 584, 101, 0, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 110, - 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 117, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 742, 1341, 139, 0, 140, 141, - 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 0, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 162, 0, 163, 164, 0, 0, 0, 0, 0, 0, - 0, 0, 1042, 504, 0, 0, 0, 0, 505, 0, - 1042, 1384, 0, 0, 1042, 0, 1042, 585, 0, 1042, - 1042, 1042, 1042, 1042, 1042, 1042, 1042, 0, 0, 1042, - 0, 0, 0, 0, 0, 1042, 0, 0, 0, 0, - 0, 0, 0, 0, 1278, 1278, 1278, 1278, 1278, 1278, - 930, 0, 0, 0, 0, 1610, 506, 0, 0, 322, - 323, 0, 507, 0, 0, 0, 0, 0, 508, 0, - 0, 0, 0, 0, 1631, 0, 91, 329, 0, 509, - 0, 0, 0, 481, 0, 0, 0, 510, 0, 0, - 0, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 0, 0, 0, 335, 0, 0, 0, 1610, - 1466, 0, 0, 0, 0, 0, 98, 99, 0, 336, - 0, 337, 0, 0, 0, 0, 0, 341, 0, 0, + 478, 0, 0, 0, 517, 493, 0, 0, 0, 510, + 0, 0, 0, 0, 511, 494, 0, 0, 497, 518, + 498, 499, 500, 504, 0, 0, 0, 0, 0, 0, + 0, 165, 0, 165, 751, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 165, 0, 519, 0, 0, + 165, 0, 520, 521, 522, 523, 524, 525, 526, 0, + 0, 0, 512, 493, 0, 0, 527, 0, 513, 0, + 0, 0, 0, 0, 0, 0, 514, 0, 0, 493, + 0, 0, 0, 0, 1058, 165, 0, 515, 0, 0, + 617, 0, 1058, 0, 0, 516, 1058, 0, 1058, 0, + 0, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 1058, 0, + 0, 1058, 0, 0, 0, 639, 165, 1058, 0, 0, + 0, 0, 165, 0, 0, 0, 1296, 1296, 1296, 1296, + 1296, 1296, 0, 493, 0, 0, 0, 0, 660, 0, + 0, 454, 0, 0, 0, 683, 0, 0, 0, 0, + 0, 493, 1465, 0, 686, 0, 0, 0, 0, 0, + 0, 0, 493, 0, 1060, 0, 0, 0, 0, 733, + 0, 0, 517, 759, 0, 763, 0, 0, 767, 771, + 775, 779, 783, 787, 791, 795, 0, 518, 0, 0, + 0, 0, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 1278, - 109, 0, 0, 0, 0, 0, 482, 483, 0, 1384, - 0, 0, 0, 0, 511, 1384, 0, 1042, 0, 0, - 0, 349, 0, 0, 0, 0, 0, 0, 114, 512, - 0, 484, 0, 0, 0, 0, 1278, 0, 0, 0, - 0, 0, 0, 0, 0, 1278, 1278, 1278, 1278, 1278, - 1278, 1278, 1278, 0, 1278, 0, 0, 513, 0, 0, - 0, 0, 514, 515, 516, 517, 518, 519, 520, 0, - 0, 0, 0, 0, 0, 0, 521, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 830, 351, 0, 0, - 0, 0, 1537, 0, 0, 0, 0, 0, 0, 0, - 485, 0, 0, 0, 0, 0, 0, 0, 0, 1384, - 0, 89, 90, 0, 0, 0, 1384, 0, 1042, 0, - 0, 0, 0, 0, 0, 320, 321, 322, 323, 0, - 0, 324, 0, 0, 0, 0, 0, 0, 227, 325, - 326, 327, 328, 0, 91, 329, 0, 0, 0, 0, - 0, 330, 0, 0, 0, 0, 331, 332, 333, 0, - 334, 0, 0, 0, 0, 0, 0, 0, 93, 0, - 1384, 94, 1384, 335, 0, 0, 0, 95, 96, 1278, - 0, 0, 0, 97, 98, 99, 0, 336, 0, 337, - 100, 0, 338, 339, 340, 341, 101, 0, 102, 103, - 0, 0, 0, 0, 342, 0, 0, 104, 105, 0, - 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, - 0, 343, 0, 0, 344, 345, 112, 113, 0, 0, - 0, 346, 347, 0, 0, 0, 348, 0, 0, 349, - 0, 0, 0, 0, 0, 0, 114, 115, 116, 350, - 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, - 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, - 0, 139, 0, 140, 141, 0, 228, 142, 143, 0, - 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, - 152, 153, 154, 155, 156, 351, 0, 157, 158, 159, - 160, 161, 0, 0, 0, 162, 0, 163, 352, 241, - 353, 310, 354, 355, 0, 0, 0, 0, 0, 356, - 795, 0, 358, 359, 360, 89, 90, 0, 0, 0, - 0, 361, 796, 0, 0, 0, 0, 0, 0, 320, - 321, 322, 323, 0, 0, 324, 0, 0, 0, 0, - 0, 0, 227, 325, 326, 327, 328, 0, 91, 329, - 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, - 331, 332, 333, 0, 334, 0, 0, 0, 0, 0, - 0, 0, 93, 0, 0, 94, 0, 335, 0, 0, - 0, 95, 96, 0, 0, 0, 0, 97, 98, 99, - 0, 336, 0, 337, 100, 0, 338, 339, 340, 341, - 101, 0, 102, 103, 0, 0, 0, 0, 342, 0, - 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, - 0, 108, 109, 0, 0, 343, 0, 0, 344, 345, - 112, 113, 0, 0, 0, 346, 347, 0, 0, 0, - 348, 0, 0, 349, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 350, 0, 118, 119, 0, 120, 121, - 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, - 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, - 228, 142, 143, 0, 144, 0, 145, 146, 147, 148, - 149, 150, 151, 0, 152, 153, 154, 155, 156, 351, - 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, - 0, 163, 352, 241, 353, 310, 354, 355, 0, 0, - 0, 0, 0, 356, 89, 90, 358, 359, 360, 0, - 0, 0, 0, 0, 0, 361, 1137, 0, 320, 321, - 322, 323, 0, 0, 324, 0, 0, 0, 0, 0, - 0, 227, 325, 326, 327, 328, 0, 91, 329, 0, - 0, 0, 0, 0, 330, 0, 0, 0, 0, 331, - 332, 333, 0, 334, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 335, 0, 0, 0, - 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, - 336, 0, 337, 100, 0, 338, 339, 340, 341, 101, - 0, 102, 103, 0, 0, 0, 0, 342, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 343, 0, 0, 344, 345, 112, - 113, 0, 0, 0, 346, 347, 0, 0, 0, 348, - 0, 0, 349, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 350, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 0, 0, 139, 0, 140, 141, 0, 228, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 351, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, - 163, 352, 241, 353, 310, 354, 355, 0, 0, 0, - 0, 0, 356, 89, 90, 358, 359, 360, 0, 0, - 0, 0, 0, 0, 361, 1174, 0, 0, 1263, 322, - 323, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 1264, 1265, 1266, 1267, 0, 91, 329, 0, 0, - 0, 0, 0, 330, 0, 0, 0, 0, 0, 0, - 333, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 335, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 336, - 0, 337, 100, 0, 0, 0, 0, 341, 101, 0, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 0, 0, 0, 344, 345, 112, 113, - 0, 0, 0, 0, 347, 0, 0, 0, 1269, 0, - 0, 349, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 350, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 0, 139, 0, 140, 141, 0, 0, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 351, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, - 352, 241, 1270, 310, 354, 355, 0, 0, 0, 0, - 0, 1271, 89, 90, 1272, 1273, 1274, 0, 0, 0, - 0, 0, 0, 1275, 1512, 0, 0, 1031, 322, 323, + 0, 674, 493, 0, 0, 519, 0, 0, 493, 0, + 520, 521, 522, 523, 524, 525, 526, 0, 946, 0, + 0, 0, 1296, 947, 527, 0, 0, 0, 0, 0, + 752, 0, 0, 0, 0, 0, 510, 0, 892, 0, + 1058, 511, 0, 0, 0, 0, 493, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1296, + 0, 0, 0, 0, 0, 0, 0, 0, 1296, 1296, + 1296, 1296, 1296, 1296, 1296, 1296, 0, 1296, 0, 0, + 0, 0, 0, 888, 0, 493, 0, 0, 0, 512, + 0, 165, 0, 0, 0, 513, 0, 0, 0, 0, + 0, 493, 493, 514, 1060, 0, 0, 0, 0, 493, + 0, 0, 0, 165, 515, 0, 0, 0, 0, 0, + 0, 0, 516, 0, 0, 0, 0, 0, 683, 0, + 683, 683, 0, 0, 0, 0, 0, 165, 959, 0, + 165, 1058, 165, 493, 493, 0, 165, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 91, 329, 0, 0, 0, - 0, 0, 330, 0, 0, 0, 0, 0, 0, 333, - 0, 334, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 335, 0, 0, 0, 95, 96, - 0, 0, 0, 0, 97, 98, 99, 0, 336, 0, - 337, 100, 0, 1032, 0, 1033, 341, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 344, 345, 112, 113, 0, - 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, - 349, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 350, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 351, 0, 157, 158, - 159, 160, 161, 0, 0, 0, 162, 0, 163, 352, - 241, 1034, 310, 354, 355, 0, 0, 0, 0, 0, - 1035, 0, 0, 1036, 1037, 1038, 89, 90, 0, 0, - 0, 0, 1039, 1404, 0, 0, 0, 669, 0, 0, - 320, 321, 322, 323, 0, 0, 324, 0, 0, 0, - 0, 0, 0, 227, 325, 326, 327, 328, 0, 91, - 329, 0, 0, 0, 0, 0, 330, 0, 0, 0, - 0, 331, 332, 333, 0, 334, 0, 0, 670, 0, - 0, 0, 0, 93, 0, 0, 94, 0, 335, 0, - 0, 0, 95, 96, 671, 0, 0, 0, 97, 98, - 99, 0, 336, 0, 337, 100, 0, 338, 339, 340, - 341, 101, 0, 102, 103, 0, 0, 0, 0, 342, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 343, 0, 0, 344, - 345, 112, 113, 0, 672, 0, 346, 347, 0, 0, - 0, 348, 0, 0, 349, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 350, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, - 0, 228, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 351, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 162, 0, 163, 352, 241, 353, 310, 354, 355, 0, - 0, 0, 0, 0, 356, 0, 0, 358, 359, 360, - 89, 90, 0, 0, 0, 0, 361, 0, 0, 0, - 0, 1125, 0, 0, 320, 321, 322, 323, 0, 0, - 324, 0, 0, 0, 0, 0, 0, 227, 325, 326, - 327, 328, 0, 91, 329, 0, 0, 0, 0, 0, - 330, 0, 0, 0, 0, 331, 332, 333, 0, 334, - 0, 0, 670, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 335, 0, 0, 0, 95, 96, 1126, 0, - 0, 0, 97, 98, 99, 0, 336, 0, 337, 100, - 0, 338, 339, 340, 341, 101, 0, 102, 103, 0, - 0, 0, 0, 342, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 343, 0, 0, 344, 345, 112, 113, 0, 1127, 0, - 346, 347, 0, 0, 0, 348, 0, 0, 349, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 350, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 228, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 351, 0, 157, 158, 159, 160, - 161, 0, 0, 0, 162, 0, 163, 352, 241, 353, - 310, 354, 355, 0, 0, 0, 0, 0, 356, 0, - 0, 358, 359, 360, 89, 90, 0, 0, 0, 0, - 361, 0, 0, 0, 0, 1162, 0, 0, 320, 321, - 322, 323, 0, 0, 324, 0, 0, 0, 0, 0, - 0, 227, 325, 326, 327, 328, 0, 91, 329, 0, - 0, 0, 0, 0, 330, 0, 0, 0, 0, 331, - 332, 333, 0, 334, 0, 0, 670, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 335, 0, 0, 0, - 95, 96, 1163, 0, 0, 0, 97, 98, 99, 0, - 336, 0, 337, 100, 0, 338, 339, 340, 341, 101, - 0, 102, 103, 0, 0, 0, 0, 342, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 343, 0, 0, 344, 345, 112, - 113, 0, 1164, 0, 346, 347, 0, 0, 0, 348, - 0, 0, 349, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 350, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 0, 0, 139, 0, 140, 141, 0, 228, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 351, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, - 163, 352, 241, 353, 310, 354, 355, 0, 0, 0, - 0, 0, 356, 89, 90, 358, 359, 360, 0, 0, - 0, 0, 0, 0, 361, 0, 0, 320, 321, 322, - 323, 0, 0, 324, 0, 0, 0, 0, 0, 0, - 227, 325, 326, 327, 328, 0, 91, 329, 0, 0, - 0, 0, 0, 330, 0, 0, 0, 0, 331, 332, - 333, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 335, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 336, - 0, 337, 100, 0, 338, 339, 340, 341, 101, 0, - 102, 103, 0, 0, 0, 0, 342, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 343, 0, 0, 344, 345, 112, 113, - 0, 0, 0, 346, 347, 0, 0, 0, 348, 0, - 0, 349, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 350, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 0, 139, 0, 140, 141, 0, 228, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 351, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, - 352, 241, 353, 310, 354, 355, 0, 0, 0, 0, - 0, 356, 357, 0, 358, 359, 360, 0, 89, 90, - 0, 758, 0, 361, 759, 0, 0, 0, 0, 0, - 0, 0, 320, 321, 322, 323, 0, 0, 324, 0, - 0, 0, 0, 0, 0, 227, 325, 326, 327, 328, - 0, 91, 329, 0, 0, 0, 0, 0, 330, 0, - 0, 0, 0, 331, 332, 333, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 335, 0, 0, 0, 95, 96, 0, 0, 0, 0, - 97, 98, 99, 0, 336, 0, 337, 100, 0, 338, - 339, 0, 341, 101, 0, 102, 103, 0, 0, 0, - 0, 342, 0, 0, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 343, 0, - 0, 344, 345, 112, 113, 0, 0, 0, 346, 347, - 0, 0, 0, 348, 0, 0, 349, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 350, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, - 140, 141, 0, 228, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 351, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 162, 0, 163, 352, 241, 353, 310, 354, - 355, 0, 0, 0, 0, 0, 356, 0, 0, 358, - 359, 360, 0, 89, 90, 0, 762, 0, 760, 763, - 0, 0, 0, 0, 0, 0, 0, 320, 321, 322, - 323, 0, 0, 324, 0, 0, 0, 0, 0, 0, - 227, 325, 326, 327, 328, 0, 91, 329, 0, 0, - 0, 0, 0, 330, 0, 0, 0, 0, 331, 332, - 333, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 335, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 336, - 0, 337, 100, 0, 338, 339, 0, 341, 101, 0, - 102, 103, 0, 0, 0, 0, 342, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 343, 0, 0, 344, 345, 112, 113, - 0, 0, 0, 346, 347, 0, 0, 0, 348, 0, - 0, 349, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 350, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 0, 139, 0, 140, 141, 0, 228, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 351, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, - 352, 241, 353, 310, 354, 355, 0, 0, 0, 0, - 0, 356, 0, 0, 358, 359, 360, 0, 89, 90, - 0, 766, 0, 764, 767, 0, 0, 0, 0, 0, - 0, 0, 320, 321, 322, 323, 0, 0, 324, 0, - 0, 0, 0, 0, 0, 227, 325, 326, 327, 328, - 0, 91, 329, 0, 0, 0, 0, 0, 330, 0, - 0, 0, 0, 331, 332, 333, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 335, 0, 0, 0, 95, 96, 0, 0, 0, 0, - 97, 98, 99, 0, 336, 0, 337, 100, 0, 338, - 339, 0, 341, 101, 0, 102, 103, 0, 0, 0, - 0, 342, 0, 0, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 343, 0, - 0, 344, 345, 112, 113, 0, 0, 0, 346, 347, - 0, 0, 0, 348, 0, 0, 349, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 350, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, - 140, 141, 0, 228, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 351, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 162, 0, 163, 352, 241, 353, 310, 354, - 355, 0, 0, 0, 0, 0, 356, 0, 0, 358, - 359, 360, 0, 89, 90, 0, 770, 0, 768, 771, - 0, 0, 0, 0, 0, 0, 0, 320, 321, 322, - 323, 0, 0, 324, 0, 0, 0, 0, 0, 0, - 227, 325, 326, 327, 328, 0, 91, 329, 0, 0, - 0, 0, 0, 330, 0, 0, 0, 0, 331, 332, - 333, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 335, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 336, - 0, 337, 100, 0, 338, 339, 0, 341, 101, 0, - 102, 103, 0, 0, 0, 0, 342, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 343, 0, 0, 344, 345, 112, 113, - 0, 0, 0, 346, 347, 0, 0, 0, 348, 0, - 0, 349, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 350, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 0, 139, 0, 140, 141, 0, 228, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 351, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, - 352, 241, 353, 310, 354, 355, 0, 0, 0, 0, - 0, 356, 0, 0, 358, 359, 360, 0, 89, 90, - 0, 774, 0, 772, 775, 0, 0, 0, 0, 0, - 0, 0, 320, 321, 322, 323, 0, 0, 324, 0, - 0, 0, 0, 0, 0, 227, 325, 326, 327, 328, - 0, 91, 329, 0, 0, 0, 0, 0, 330, 0, - 0, 0, 0, 331, 332, 333, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 335, 0, 0, 0, 95, 96, 0, 0, 0, 0, - 97, 98, 99, 0, 336, 0, 337, 100, 0, 338, - 339, 0, 341, 101, 0, 102, 103, 0, 0, 0, - 0, 342, 0, 0, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 343, 0, - 0, 344, 345, 112, 113, 0, 0, 0, 346, 347, - 0, 0, 0, 348, 0, 0, 349, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 350, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, - 140, 141, 0, 228, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 351, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 162, 0, 163, 352, 241, 353, 310, 354, - 355, 0, 0, 0, 0, 0, 356, 0, 0, 358, - 359, 360, 0, 89, 90, 0, 778, 0, 776, 779, - 0, 0, 0, 0, 0, 0, 0, 320, 321, 322, - 323, 0, 0, 324, 0, 0, 0, 0, 0, 0, - 227, 325, 326, 327, 328, 0, 91, 329, 0, 0, - 0, 0, 0, 330, 0, 0, 0, 0, 331, 332, - 333, 0, 334, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 335, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 336, - 0, 337, 100, 0, 338, 339, 0, 341, 101, 0, - 102, 103, 0, 0, 0, 0, 342, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 343, 0, 0, 344, 345, 112, 113, - 0, 0, 0, 346, 347, 0, 0, 0, 348, 0, - 0, 349, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 350, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 0, 139, 0, 140, 141, 0, 228, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 351, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, - 352, 241, 353, 310, 354, 355, 0, 0, 0, 0, - 0, 356, 0, 0, 358, 359, 360, 0, 89, 90, - 0, 782, 0, 780, 783, 0, 0, 0, 0, 0, - 0, 0, 320, 321, 322, 323, 0, 0, 324, 0, - 0, 0, 0, 0, 0, 227, 325, 326, 327, 328, - 0, 91, 329, 0, 0, 0, 0, 0, 330, 0, - 0, 0, 0, 331, 332, 333, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 335, 0, 0, 0, 95, 96, 0, 0, 0, 0, - 97, 98, 99, 0, 336, 0, 337, 100, 0, 338, - 339, 0, 341, 101, 0, 102, 103, 0, 0, 0, - 0, 342, 0, 0, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 343, 0, - 0, 344, 345, 112, 113, 0, 0, 0, 346, 347, - 0, 0, 0, 348, 0, 0, 349, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 350, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, - 140, 141, 0, 228, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 351, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 162, 0, 163, 352, 241, 353, 310, 354, - 355, 0, 0, 0, 0, 0, 356, 89, 90, 358, - 359, 360, 0, 0, 0, 0, 0, 0, 784, 0, - 0, 320, 321, 322, 323, 0, 0, 324, 0, 0, - 0, 0, 0, 0, 227, 325, 326, 327, 328, 0, - 91, 329, 0, 0, 0, 0, 0, 330, 0, 0, - 0, 0, 331, 332, 333, 0, 334, 0, 0, 670, - 0, 0, 0, 0, 93, 0, 0, 94, 0, 335, - 0, 0, 0, 95, 96, 0, 0, 0, 0, 97, - 98, 99, 0, 336, 0, 337, 100, 0, 338, 339, - 340, 341, 101, 0, 102, 103, 0, 0, 0, 0, - 342, 0, 0, 104, 105, 0, 0, 106, 0, 107, - 0, 0, 0, 108, 109, 0, 0, 343, 0, 0, - 344, 345, 112, 113, 0, 0, 0, 346, 347, 0, - 0, 0, 348, 0, 0, 349, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 350, 0, 118, 119, 0, + 0, 0, 0, 493, 0, 493, 0, 0, 1060, 493, + 1060, 1060, 1060, 1060, 1060, 1060, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 674, 674, 674, 674, 0, + 0, 0, 0, 0, 1060, 0, 0, 975, 0, 517, + 0, 0, 1296, 0, 0, 0, 0, 0, 0, 0, + 0, 991, 0, 0, 518, 504, 0, 0, 0, 504, + 0, 165, 0, 504, 0, 0, 0, 504, 510, 0, + 0, 504, 0, 511, 0, 504, 0, 0, 0, 504, + 0, 0, 519, 504, 0, 0, 0, 520, 521, 522, + 523, 524, 525, 526, 510, 0, 0, 0, 0, 511, + 0, 527, 752, 752, 752, 752, 752, 0, 0, 0, + 0, 0, 0, 165, 0, 165, 0, 0, 0, 752, + 0, 512, 0, 0, 0, 0, 0, 513, 0, 0, + 0, 0, 0, 0, 0, 514, 0, 0, 165, 0, + 0, 944, 0, 0, 0, 0, 515, 512, 0, 0, + 0, 0, 0, 513, 516, 0, 0, 1060, 0, 0, + 0, 514, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 515, 0, 0, 0, 0, 1126, 0, 0, + 516, 0, 0, 0, 0, 1132, 0, 0, 0, 0, + 0, 0, 0, 0, 1059, 1136, 0, 0, 0, 0, + 0, 0, 0, 0, 1137, 0, 1060, 0, 0, 0, + 683, 0, 0, 0, 1060, 1060, 0, 0, 1060, 0, + 1060, 0, 0, 1060, 1060, 1060, 1060, 1060, 1060, 1060, + 1060, 517, 0, 1060, 0, 1163, 0, 0, 0, 1060, + 0, 0, 0, 0, 0, 0, 518, 0, 1060, 1060, + 1060, 1060, 1060, 1060, 0, 0, 0, 517, 683, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 518, 0, 519, 0, 0, 674, 674, 520, + 521, 522, 523, 524, 525, 526, 674, 674, 674, 674, + 674, 674, 0, 527, 0, 0, 510, 0, 0, 0, + 519, 511, 0, 0, 0, 520, 521, 522, 523, 524, + 525, 526, 0, 0, 1060, 0, 0, 0, 0, 527, + 0, 0, 0, 752, 0, 0, 674, 0, 0, 0, + 0, 0, 0, 0, 0, 752, 752, 752, 752, 752, + 752, 0, 0, 0, 1196, 0, 0, 0, 0, 512, + 0, 0, 0, 0, 1060, 513, 0, 0, 0, 0, + 0, 0, 0, 514, 1060, 0, 0, 0, 0, 0, + 1060, 0, 1060, 0, 515, 0, 1255, 0, 1504, 0, + 0, 1256, 516, 0, 0, 0, 0, 0, 0, 0, + 0, 1060, 0, 0, 0, 0, 0, 0, 0, 0, + 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1060, 1059, 1060, + 1059, 1059, 1059, 1059, 1059, 1059, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 1257, + 0, 683, 683, 683, 1297, 1258, 0, 0, 0, 0, + 0, 0, 0, 1259, 0, 0, 0, 1060, 0, 0, + 0, 0, 0, 0, 1260, 0, 0, 0, 1340, 517, + 0, 0, 1261, 0, 1060, 0, 0, 0, 683, 683, + 683, 1060, 0, 1060, 518, 0, 0, 510, 0, 0, + 0, 0, 511, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 1255, 0, 0, 0, 0, 1256, 0, + 0, 0, 519, 0, 0, 0, 0, 520, 521, 522, + 523, 524, 525, 526, 0, 0, 0, 510, 0, 0, + 1335, 527, 511, 0, 0, 1060, 0, 1060, 0, 0, + 512, 0, 0, 0, 1060, 0, 513, 0, 0, 1262, + 0, 0, 0, 0, 514, 0, 1257, 0, 0, 0, + 0, 0, 1258, 0, 1263, 515, 752, 1360, 0, 0, + 1259, 0, 0, 516, 0, 0, 0, 0, 0, 0, + 512, 1260, 0, 0, 0, 0, 513, 0, 0, 1261, + 0, 0, 1264, 0, 514, 0, 0, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 0, 515, 0, 0, 0, 0, + 0, 1272, 0, 0, 0, 0, 1059, 0, 1255, 0, + 0, 0, 0, 1256, 1059, 1404, 0, 0, 1059, 0, + 1059, 0, 0, 1059, 1059, 1059, 1059, 1059, 1059, 1059, + 1059, 0, 0, 1059, 0, 0, 0, 0, 0, 1059, + 517, 0, 0, 0, 0, 0, 0, 0, 1297, 1297, + 1297, 1297, 1297, 1297, 0, 518, 1262, 0, 0, 0, + 0, 1257, 0, 0, 0, 0, 0, 1258, 0, 0, + 0, 1263, 0, 0, 0, 1259, 0, 0, 1497, 0, + 517, 0, 0, 519, 0, 0, 1260, 0, 520, 521, + 522, 523, 524, 525, 526, 518, 0, 0, 0, 1264, + 0, 0, 527, 0, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, 0, 0, 0, 1486, 0, 0, 0, 1272, 0, + 0, 0, 0, 519, 0, 0, 0, 0, 520, 521, + 522, 523, 524, 525, 526, 0, 0, 0, 0, 0, + 0, 0, 527, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1297, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1404, 0, 0, 0, 0, 0, + 1404, 1262, 1059, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 1263, 0, 0, 0, + 0, 1297, 0, 0, 0, 0, 0, 0, 0, 0, + 1297, 1297, 1297, 1297, 1297, 1297, 1297, 1297, 0, 1297, + 0, 0, 0, 0, 1264, 0, 0, 0, 0, 1265, + 1266, 1267, 1268, 1269, 1270, 1271, 0, 0, 0, 0, + 0, 0, 0, 1272, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1557, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1404, 0, 0, 0, 0, 0, + 0, 1404, 0, 1059, 0, 89, 90, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 323, + 324, 325, 326, 1630, 0, 327, 0, 0, 0, 0, + 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, + 0, 0, 1651, 0, 0, 333, 0, 0, 0, 0, + 334, 335, 336, 0, 337, 1404, 0, 1404, 0, 0, + 0, 0, 93, 0, 1297, 94, 0, 338, 0, 0, + 0, 0, 95, 96, 0, 0, 0, 1630, 0, 97, + 98, 99, 0, 339, 0, 340, 100, 0, 341, 342, + 343, 344, 101, 0, 102, 103, 0, 0, 0, 0, + 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, + 0, 0, 0, 108, 109, 0, 0, 346, 0, 0, + 347, 348, 112, 113, 0, 0, 0, 349, 350, 0, + 0, 0, 351, 0, 0, 352, 0, 0, 0, 0, + 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, - 141, 0, 228, 142, 143, 0, 144, 0, 145, 146, + 141, 0, 229, 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 156, 351, 0, 157, 158, 159, 160, 161, 0, 0, - 0, 162, 0, 163, 352, 241, 353, 310, 354, 355, - 0, 0, 0, 0, 0, 356, 89, 90, 358, 359, - 360, 0, 0, 0, 0, 0, 0, 361, 0, 0, - 320, 321, 322, 323, 0, 0, 324, 0, 0, 0, - 0, 0, 0, 227, 325, 326, 327, 328, 0, 91, - 329, 0, 0, 0, 0, 0, 330, 0, 0, 0, - 0, 331, 332, 333, 0, 334, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 94, 0, 335, 0, - 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, - 99, 0, 336, 0, 337, 100, 0, 338, 339, 340, - 341, 101, 0, 102, 103, 0, 0, 0, 0, 342, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 637, 0, 343, 0, 0, 344, - 345, 112, 113, 0, 0, 0, 346, 347, 0, 0, - 0, 348, 0, 0, 349, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 350, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, - 0, 228, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 351, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 162, 0, 163, 352, 241, 353, 310, 354, 355, 0, - 0, 0, 0, 0, 356, 89, 90, 358, 359, 360, - 0, 0, 0, 0, 0, 0, 361, 0, 0, 320, - 321, 322, 323, 0, 0, 324, 0, 0, 0, 0, - 0, 0, 227, 325, 326, 327, 328, 0, 91, 329, - 0, 0, 0, 0, 0, 330, 0, 0, 0, 0, - 331, 332, 333, 0, 334, 0, 0, 0, 0, 0, - 0, 0, 93, 0, 0, 94, 0, 335, 0, 0, - 0, 95, 96, 0, 0, 0, 0, 97, 98, 99, - 0, 336, 0, 337, 100, 0, 338, 339, 340, 341, - 101, 0, 102, 103, 0, 0, 0, 0, 342, 0, + 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, + 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, + 0, 0, 0, 0, 0, 359, 805, 0, 361, 362, + 363, 89, 90, 0, 0, 0, 0, 364, 806, 0, + 0, 0, 0, 0, 0, 323, 324, 325, 326, 0, + 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, + 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, + 337, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, + 0, 340, 100, 0, 341, 342, 343, 344, 101, 0, + 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 346, 0, 0, 347, 348, 112, 113, + 0, 0, 0, 349, 350, 0, 0, 0, 351, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, + 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, + 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, + 0, 359, 89, 90, 361, 362, 363, 0, 0, 0, + 0, 0, 0, 364, 1154, 0, 323, 324, 325, 326, + 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, + 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, + 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, + 339, 0, 340, 100, 0, 341, 342, 343, 344, 101, + 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, + 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, + 108, 109, 0, 0, 346, 0, 0, 347, 348, 112, + 113, 0, 0, 0, 349, 350, 0, 0, 0, 351, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, + 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, + 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, + 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 0, 0, 139, 0, 140, 141, 0, 229, + 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, + 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, + 0, 0, 359, 89, 90, 361, 362, 363, 0, 0, + 0, 0, 0, 0, 364, 1191, 0, 0, 1282, 325, + 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1283, 1284, 1285, 1286, 0, 91, 332, 0, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 0, 0, + 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, + 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, + 0, 339, 0, 340, 100, 0, 0, 0, 0, 344, + 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, - 0, 108, 109, 0, 0, 343, 0, 0, 344, 345, - 112, 113, 0, 0, 0, 346, 347, 0, 0, 0, - 348, 0, 0, 349, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 350, 0, 118, 119, 0, 120, 121, + 0, 108, 109, 0, 0, 0, 0, 0, 347, 348, + 112, 113, 0, 0, 0, 0, 350, 0, 0, 0, + 1288, 0, 0, 352, 0, 0, 0, 0, 0, 0, + 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, - 228, 142, 143, 0, 144, 0, 145, 146, 147, 148, - 149, 150, 151, 0, 152, 153, 154, 155, 156, 351, + 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, - 0, 163, 352, 241, 353, 310, 354, 355, 0, 0, - 0, 0, 0, 356, 0, 0, 358, 359, 360, 0, - 89, 90, 0, 754, 0, 361, 755, 0, 0, 0, - 0, 0, 0, 0, 320, 321, 322, 323, 0, 0, - 324, 0, 0, 0, 0, 0, 0, 227, 325, 326, - 327, 328, 0, 91, 329, 0, 0, 0, 0, 0, - 330, 0, 0, 0, 0, 331, 332, 333, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 335, 0, 0, 0, 95, 96, 0, 0, - 0, 0, 97, 98, 99, 0, 336, 0, 337, 100, - 0, 0, 339, 0, 341, 101, 0, 102, 103, 0, - 0, 0, 0, 342, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 343, 0, 0, 344, 345, 112, 113, 0, 0, 0, - 346, 347, 0, 0, 0, 348, 0, 0, 349, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 350, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 228, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 351, 0, 157, 158, 159, 160, - 161, 0, 0, 0, 162, 0, 163, 352, 241,-32768, - 310, 354, 355, 0, 0, 0, 0, 0, 356, 89, - 90, 358, 359, 360, 0, 0, 0, 0, 0, 0, - 756, 0, 0, 320, 321, 322, 323, 0, 0, 324, - 0, 0, 0, 0, 0, 0, 227, 325, 326, 327, - 328, 0, 91, 329, 0, 0, 0, 0, 0, 330, - 0, 0, 0, 0, 331, 332, 333, 0, 334, 0, - 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, - 0, 335, 0, 0, 0, 95, 96, 0, 0, 0, - 0, 97, 98, 99, 0, 336, 0, 337, 100, 0, - 338, 339, 0, 341, 101, 0, 102, 103, 0, 0, - 0, 0, 342, 0, 0, 104, 105, 0, 0, 106, - 0, 107, 0, 0, 0, 108, 109, 637, 0, 343, - 0, 0, 344, 345, 112, 113, 0, 0, 0, 346, - 347, 0, 0, 0, 348, 0, 0, 349, 0, 0, - 0, 0, 0, 0, 114, 115, 116, 350, 0, 118, - 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, - 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, - 0, 140, 141, 0, 228, 142, 143, 0, 144, 0, - 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, - 154, 155, 156, 351, 0, 157, 158, 159, 160, 161, - 0, 0, 0, 162, 0, 163, 352, 241, 353, 310, - 354, 355, 0, 0, 0, 0, 0, 356, 89, 90, - 358, 359, 360, 0, 0, 0, 0, 0, 0, 361, - 0, 0, 320, 321, 322, 323, 0, 0, 324, 0, - 0, 0, 0, 0, 0, 227, 325, 326, 327, 328, - 0, 91, 329, 0, 0, 0, 0, 0, 330, 0, - 0, 0, 0, 331, 332, 333, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 335, 0, 0, 0, 95, 96, 0, 0, 0, 0, - 97, 98, 99, 0, 336, 0, 337, 100, 0, 338, - 339, 0, 341, 101, 0, 102, 103, 0, 0, 0, - 0, 342, 0, 0, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 343, 0, - 0, 344, 345, 112, 113, 0, 0, 0, 346, 347, - 0, 0, 0, 348, 0, 0, 349, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 350, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, - 140, 141, 0, 228, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 351, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 162, 0, 163, 352, 241, 353, 310, 354, - 355, 0, 0, 0, 89, 90, 356, 0, 0, 358, - 359, 360, 0, 0, 0, 0, 0, 0, 361, 724, - 322, 323, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 227, 725, 726, 727, 728, 0, 91, 329, 0, - 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, - 0, 333, 0, 334, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 335, 0, 0, 0, - 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, - 336, 0, 337, 100, 0, 0, 0, 0, 341, 101, - 0, 102, 103, 0, 0, 0, 0, 729, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 730, 0, 0, 344, 345, 112, - 113, 0, 0, 0, 731, 347, 0, 0, 0, 732, - 0, 0, 349, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 350, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 0, 0, 139, 0, 140, 141, 0, 228, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 351, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, - 163, 352, 241, 733, 310, 354, 355, 0, 0, 0, - 89, 90, 734, 0, 0, 735, 736, 737, 0, 0, - 0, 0, 0, 0, 738, 724, 322, 323, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 725, 726, - 727, 728, 0, 91, 329, 0, 0, 0, 0, 0, - 330, 0, 0, 0, 0, 0, 0, 333, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 335, 0, 0, 0, 95, 96, 0, 0, - 0, 0, 97, 98, 99, 0, 336, 0, 337, 100, - 0, 0, 0, 0, 341, 101, 0, 102, 103, 0, - 0, 0, 0, 729, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 730, 0, 0, 344, 345, 112, 113, 0, 0, 0, - 731, 347, 0, 0, 0, 732, 0, 0, 349, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 350, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 228, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 351, 0, 157, 158, 159, 160, - 161, 0, 0, 0, 162, 0, 163, 352, 241,-32768, - 310, 354, 355, 0, 0, 0, 89, 90, 734, 0, - 0, 735, 736, 737, 0, 0, 0, 0, 0, 0, - 738, 1263, 322, 323, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1264, 1265, 1266, 1267, 0, 91, - 329, 0, 0, 0, 0, 0, 330, 0, 0, 0, - 0, 0, 0, 333, 0, 334, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 94, 0, 335, 0, - 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, - 99, 0, 336, 0, 337, 100, 0, 0, 0, 1268, - 341, 101, 0, 102, 103, 0, 0, 0, 0, 0, + 0, 163, 355, 242, 1289, 313, 357, 358, 0, 0, + 0, 0, 0, 1290, 89, 90, 1291, 1292, 1293, 0, + 0, 0, 0, 0, 0, 1294, 1532, 0, 0, 1048, + 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 332, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, + 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, + 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, + 99, 0, 339, 0, 340, 100, 0, 1049, 0, 1050, + 344, 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 344, - 345, 112, 113, 0, 0, 0, 0, 347, 0, 0, - 0, 1269, 0, 0, 349, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 350, 0, 118, 119, 0, 120, + 0, 0, 108, 109, 0, 0, 0, 0, 0, 347, + 348, 112, 113, 0, 0, 0, 0, 350, 0, 0, + 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 351, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 162, 0, 163, 352, 241, 1270, 310, 354, 355, 0, - 0, 0, 89, 90, 1271, 0, 0, 1272, 1273, 1274, - 0, 0, 0, 0, 0, 0, 1275, 1263, 322, 323, + 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, + 162, 0, 163, 355, 242, 1051, 313, 357, 358, 0, + 0, 0, 89, 90, 1052, 0, 0, 1053, 1054, 1055, + 0, 0, 0, 0, 0, 0, 1056, 1424, 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 1264, 1265, 1266, 1267, 0, 91, 329, 0, 0, 0, - 0, 0, 330, 0, 0, 0, 0, 0, 0, 333, - 0, 334, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 335, 0, 0, 0, 95, 96, - 0, 0, 0, 0, 97, 98, 99, 0, 336, 0, - 337, 100, 0, 0, 0, 0, 341, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 344, 345, 112, 113, 0, - 0, 0, 0, 347, 0, 0, 0, 1269, 0, 0, - 349, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 350, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 351, 0, 157, 158, - 159, 160, 161, 0, 0, 0, 162, 0, 163, 352, - 241, 1270, 310, 354, 355, 0, 0, 0, 89, 90, - 1271, 0, 0, 1272, 1273, 1274, 0, 0, 0, 0, - 0, 0, 1275, 1263, 322, 323, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 1264, 1265, 1266, 1267, - 0, 91, 329, 0, 0, 0, 0, 0, 330, 0, - 0, 0, 0, 0, 0, 333, 0, 334, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 335, 0, 0, 0, 95, 96, 0, 0, 0, 0, - 97, 98, 99, 0, 336, 0, 337, 100, 0, 0, - 0, 0, 341, 101, 0, 102, 103, 0, 0, 0, - 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, - 0, 344, 345, 112, 113, 0, 0, 0, 0, 347, - 0, 0, 0, 1269, 0, 0, 349, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 350, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, - 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 351, 0, 157, 158, 159, 160, 161, 0, - 0, 0, 162, 0, 163, 352, 241,-32768, 310, 354, - 355, 0, 0, 0, 89, 90, 1271, 0, 0, 1272, - 1273, 1274, 0, 0, 0, 0, 0, 0, 1275, 652, - 322, 323, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 227, 0, 0, 0, 0, 0, 91, 329, 0, - 0, 0, 0, 0, 330, 0, 0, 0, 0, 0, - 0, 333, 0, 334, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 335, 0, 0, 0, - 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, - 336, 0, 337, 100, 0, 0, 0, 0, 341, 101, - 0, 102, 103, 0, 0, 0, 0, 653, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 654, 0, 0, 344, 345, 112, - 113, 0, 0, 0, 655, 347, 0, 0, 0, 0, - 0, 0, 349, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 350, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 0, 0, 139, 0, 140, 141, 0, 228, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 351, 0, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, - 163, 352, 241, 656, 310, 354, 355, 0, 0, 0, - 89, 90, 657, 0, 0, 658, 0, 0, 0, 0, - 0, 0, 0, 0, 659, 652, 322, 323, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 227, 0, 0, - 0, 0, 0, 91, 329, 0, 0, 0, 0, 0, - 330, 0, 0, 0, 0, 0, 0, 333, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 335, 0, 0, 0, 95, 96, 0, 0, - 0, 0, 97, 98, 99, 0, 336, 0, 337, 100, - 0, 0, 0, 0, 341, 101, 0, 102, 103, 0, - 0, 0, 0, 653, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 654, 0, 0, 344, 345, 112, 113, 0, 0, 0, - 655, 347, 0, 0, 0, 0, 0, 0, 349, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 350, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 228, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 351, 0, 157, 158, 159, 160, - 161, 0, 0, 0, 162, 0, 163, 352, 241,-32768, - 310, 354, 355, 0, 0, 0, 89, 90, 657, 0, - 0, 658, 0, 0, 0, 0, 0, 0, 0, 0, - 659, 1031, 322, 323, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, - 329, 0, 0, 0, 0, 0, 330, 0, 0, 0, - 0, 0, 0, 333, 0, 334, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 94, 0, 335, 0, - 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, - 99, 0, 336, 0, 337, 100, 0, 1032, 0, 1033, - 341, 101, 0, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 344, - 345, 112, 113, 0, 0, 0, 0, 347, 0, 0, - 0, 0, 0, 0, 349, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 350, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, - 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 351, 0, 157, 158, 159, 160, 161, 0, 0, 0, - 162, 0, 163, 352, 241, 1034, 310, 354, 355, 0, - 0, 0, 89, 90, 1035, 0, 0, 1036, 1037, 1038, - 0, 0, 0, 0, 0, 0, 1039, 1031, 322, 323, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 91, 329, 0, 0, 0, - 0, 0, 330, 0, 0, 0, 0, 0, 0, 333, - 0, 334, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 335, 0, 0, 0, 95, 96, - 0, 0, 0, 0, 97, 98, 99, 0, 336, 0, - 337, 100, 0, 0, 0, 1033, 341, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 344, 345, 112, 113, 0, - 0, 0, 0, 347, 0, 0, 0, 0, 0, 0, - 349, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 350, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 351, 0, 157, 158, - 159, 160, 161, 89, 90, 0, 162, 0, 163, 352, - 241,-32768, 310, 354, 355, 0, 0, 0, 0, 0, - 1035, 0, 0, 1036, 1037, 1038, 0, 0, 0, 0, - 227, 0, 1039, 0, 0, 0, 91, 0, 0, 0, - 0, 0, 0, 92, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 0, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 0, - 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 0, 504, 139, 0, 140, 141, 505, 228, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, - 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, - 164, 0, 504, 0, 0, 0, 0, 505, 0, 0, - 0, 0, 0, 0, 0, 506, 0, 0, 0, 0, - 0, 507, 0, 1003, 0, 0, 1236, 508, 1484, 0, - 0, 1237, 0, 0, 0, 0, 0, 0, 509, 0, - 0, 0, 504, 0, 0, 0, 510, 505, 0, 0, - 0, 0, 0, 0, 0, 506, 0, 0, 0, 0, - 0, 507, 0, 0, 0, 0, 1236, 508, 0, 1109, - 0, 1237, 0, 0, 0, 0, 0, 0, 509, 1238, - 0, 0, 1236, 0, 0, 1239, 510, 1237, 0, 0, - 0, 1240, 0, 0, 0, 506, 0, 0, 0, 0, - 0, 507, 1241, 0, 0, 0, 0, 508, 0, 0, - 1242, 0, 0, 0, 0, 0, 0, 0, 509, 1238, - 0, 0, 0, 511, 0, 1239, 510, 0, 0, 0, - 0, 1240, 0, 0, 0, 1238, 0, 0, 512, 0, - 0, 1239, 1241, 0, 0, 0, 0, 1240, 0, 0, - 1242, 0, 0, 0, 0, 0, 0, 0, 1241, 0, - 0, 0, 0, 511, 0, 0, 513, 0, 0, 0, - 0, 514, 515, 516, 517, 518, 519, 520, 512, 0, - 0, 0, 0, 0, 0, 521, 0, 1243, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1244, 511, 0, 0, 513, 0, 0, 0, - 0, 514, 515, 516, 517, 518, 519, 520, 512, 0, - 0, 0, 0, 0, 1316, 521, 0, 1243, 0, 0, - 1245, 0, 0, 0, 0, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, 1244, 1243, 0, 0, 513, 0, 0, 1253, - 0, 514, 515, 516, 517, 518, 519, 520, 1244, 0, - 0, 0, 0, 0, 0, 521, 89, 90, 0, 0, - 1245, 0, 0, 0, 0, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, 0, 0, 0, 0, 1245, 0, 0, 1253, - 0, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 0, 91, - 0, 0, 0, 0, 0, 1253, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, - 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, - 99, 0, 0, 0, 0, 100, 0, 0, 0, 0, - 0, 101, 0, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 110, - 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 117, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, - 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 1085, 0, 157, 158, 159, 160, 161, 89, 90, 0, - 162, 0, 163, 164, 241, 299, 310, 0, 1086, 0, - 274, 275, 276, 277, 1087, 279, 280, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 91, 0, 0, 601, 0, 0, 0, 92, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 94, 0, 0, - 0, 0, 271, 95, 96, 0, 0, 0, 0, 97, - 98, 99, 0, 0, 0, 0, 100, 0, 0, 0, - 0, 0, 101, 0, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 272, 0, 106, 0, 107, - 0, 0, 0, 108, 109, 0, 0, 0, 0, 0, - 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 117, 0, 118, 119, 0, - 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, - 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 89, 90, 139, 0, 140, - 141, 0, 0, 142, 143, 0, 144, 0, 145, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 156, 0, 0, 157, 158, 159, 160, 161, 91, 0, - 0, 162, 0, 163, 164, 92, 273, 0, 0, 0, - 0, 274, 275, 276, 277, 278, 279, 280, 0, 0, - 0, 0, 93, 0, 0, 94, 0, 0, 0, 0, - 271, 95, 96, 0, 0, 0, 0, 97, 98, 99, - 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, - 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 272, 0, 106, 0, 107, 0, 0, - 0, 108, 109, 0, 0, 0, 0, 0, 110, 111, - 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 117, 0, 118, 119, 0, 120, 121, - 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, - 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 89, 90, 139, 0, 140, 141, 0, - 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, - 149, 150, 151, 0, 152, 153, 154, 155, 156, 0, - 227, 157, 158, 159, 160, 161, 91, 0, 0, 162, - 0, 163, 164, 92, 273, 0, 0, 0, 0, 274, - 275, 276, 277, 278, 279, 280, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 0, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 0, - 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 89, 90, 139, 0, 140, 141, 0, 228, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 0, 227, 157, - 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, - 164, 92, 0, 0, 354, 0, 0, 0, 0, 0, - 0, 0, 537, 0, 0, 0, 0, 0, 93, 0, - 0, 94, 0, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 97, 98, 99, 0, 0, 0, 0, - 100, 0, 0, 0, 0, 0, 101, 0, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, - 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 114, 115, 116, 117, - 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, - 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 89, - 90, 139, 0, 140, 141, 0, 228, 142, 143, 0, - 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, - 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, - 160, 161, 91, 0, 0, 162, 0, 163, 164, 92, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 252, 0, 0, 0, 0, 0, 93, 0, 0, 94, - 0, 0, 0, 0, 0, 95, 96, 0, 0, 0, - 0, 97, 98, 99, 0, 0, 0, 0, 100, 0, - 0, 0, 0, 0, 101, 0, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, - 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, - 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 114, 115, 116, 117, 0, 118, - 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, - 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 89, 90, 139, - 0, 140, 141, 0, 0, 142, 143, 0, 144, 0, - 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, - 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, - 91, 0, 0, 162, 0, 163, 164, 92, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 429, 0, - 0, 0, 0, 0, 93, 0, 0, 94, 0, 0, - 0, 0, 0, 95, 96, 0, 0, 0, 0, 97, - 98, 99, 0, 0, 0, 0, 100, 0, 0, 0, - 0, 0, 101, 0, 102, 103, 0, 0, 0, 0, - 0, 0, 0, 104, 105, 0, 0, 106, 0, 107, - 0, 0, 0, 108, 109, 0, 0, 0, 0, 0, - 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 114, 115, 116, 117, 0, 118, 119, 0, - 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, - 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, - 134, 135, 136, 137, 138, 89, 90, 139, 0, 140, - 141, 0, 0, 142, 143, 0, 144, 0, 145, 146, - 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, - 156, 0, 0, 157, 158, 159, 160, 161, 91, 0, - 0, 162, 0, 163, 164, 92, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 791, 0, 0, 0, - 0, 0, 93, 0, 0, 94, 0, 0, 0, 0, - 0, 95, 96, 0, 0, 0, 0, 97, 98, 99, - 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, - 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, - 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, - 0, 108, 109, 0, 0, 0, 0, 0, 110, 111, - 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 114, 115, 116, 117, 0, 118, 119, 0, 120, 121, - 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, - 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, - 136, 137, 138, 89, 90, 139, 0, 140, 141, 0, - 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, - 149, 150, 151, 0, 152, 153, 154, 155, 156, 0, - 0, 157, 158, 159, 160, 161, 91, 0, 0, 162, - 0, 163, 164, 92, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 1014, 0, 0, 0, 0, 0, - 93, 0, 0, 94, 0, 0, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 0, - 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, - 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, - 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, - 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, - 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 89, 90, 139, 0, 140, 141, 0, 0, 142, - 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 0, 152, 153, 154, 155, 156, 0, 227, 157, - 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, - 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 1214, 0, 0, 0, 0, 0, 93, 0, - 0, 94, 0, 0, 0, 0, 0, 95, 96, 0, - 0, 0, 0, 97, 98, 99, 0, 0, 0, 0, - 100, 0, 0, 0, 0, 0, 101, 0, 102, 103, - 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, - 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, - 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 114, 115, 116, 117, - 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, - 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, - 130, 131, 132, 133, 134, 135, 136, 137, 138, 89, - 90, 139, 0, 140, 141, 0, 228, 142, 143, 0, - 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, - 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, - 160, 161, 91, 0, 0, 162, 0, 163, 164, 92, - 0, 0, 354, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, - 0, 0, 0, 0, 0, 95, 96, 0, 0, 0, - 0, 97, 98, 99, 0, 0, 0, 0, 100, 0, - 0, 0, 0, 0, 101, 0, 102, 103, 0, 0, - 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, - 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, - 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 114, 115, 116, 117, 0, 118, - 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, - 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, - 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, - 0, 140, 141, 0, 0, 142, 143, 0, 144, 0, - 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, - 154, 155, 156, 89, 90, 157, 158, 159, 160, 161, - 0, 0, 0, 162, 0, 163, 164, 683, 0, 310, - 0, 0, 0, 684, 0, 0, 0, 685, 0, 686, - 687, 0, 0, 0, 0, 0, 91, 0, 0, 0, - 0, 0, 0, 92, 0, 688, 689, 0, 0, 0, - 690, 0, 0, 0, 691, 0, 0, 0, 692, 0, - 93, 0, 0, 94, 0, 0, 0, 0, 0, 95, - 96, 0, 0, 0, 0, 97, 98, 99, 0, 0, - 0, 0, 100, 0, 0, 693, 0, 0, 101, 0, - 102, 103, 0, 694, 0, 0, 695, 696, 0, 104, - 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, - 109, 0, 0, 0, 697, 698, 110, 111, 112, 113, - 0, 0, 699, 0, 700, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 701, 0, 0, 0, 114, 115, - 116, 117, 702, 118, 119, 703, 120, 121, 704, 122, - 705, 706, 123, 124, 125, 126, 127, 707, 128, 129, - 708, 709, 130, 131, 132, 133, 134, 135, 136, 137, - 138, 710, 711, 139, 712, 140, 141, 713, 714, 142, - 143, 715, 144, 0, 145, 146, 147, 148, 149, 150, - 151, 716, 152, 153, 154, 155, 156, 717, 718, 157, - 158, 159, 160, 161, 89, 90, 719, 162, 720, 163, - 164, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 322, 323, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 91, 581, 0, - 0, 0, 0, 0, 582, 0, 0, 0, 0, 0, - 0, 0, 0, 583, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 0, 0, 0, 0, - 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, - 336, 0, 337, 100, 0, 0, 0, 0, 584, 101, + 0, 0, 0, 0, 0, 91, 591, 0, 0, 0, + 0, 0, 592, 0, 0, 0, 0, 0, 0, 0, + 0, 593, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, + 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, + 339, 0, 340, 100, 0, 0, 0, 0, 594, 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 349, 0, 0, 0, 0, 0, 0, 114, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, 89, 90, - 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, - 163, 164, 0, 0, 0, 0, 558, 0, 0, 0, - 0, 0, 559, 0, 0, 0, 0, 0, 0, 0, - 0, 91, 0, 0, 0, 0, 0, 0, 92, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 560, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, - 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, - 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, - 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, - 0, 0, 0, 561, 104, 105, 0, 0, 106, 0, - 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, - 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, - 0, 562, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, - 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, - 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, - 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, - 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, - 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, - 155, 156, 0, 227, 157, 158, 159, 160, 161, 91, - 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, - 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, - 99, 0, 0, 0, 0, 100, 0, 0, 0, 0, - 0, 101, 0, 102, 103, 0, 0, 0, 0, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 162, 679, + 163, 164, 323, 324, 325, 326, 0, 0, 327, 0, + 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, + 0, 91, 332, 0, 0, 595, 0, 0, 333, 0, + 0, 0, 0, 334, 335, 336, 0, 337, 0, 0, + 680, 0, 0, 0, 0, 93, 0, 0, 94, 0, + 338, 0, 0, 0, 0, 95, 96, 681, 0, 0, + 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, + 0, 341, 342, 343, 344, 101, 0, 102, 103, 0, + 0, 0, 0, 345, 0, 0, 104, 105, 0, 0, + 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, + 346, 0, 0, 347, 348, 112, 113, 0, 682, 0, + 349, 350, 0, 0, 0, 351, 0, 0, 352, 0, + 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, + 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, + 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, + 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, + 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, + 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, + 313, 357, 358, 0, 0, 0, 0, 0, 359, 0, + 0, 361, 362, 363, 89, 90, 0, 0, 0, 0, + 364, 0, 0, 0, 0, 1142, 0, 0, 323, 324, + 325, 326, 0, 0, 327, 0, 0, 0, 0, 0, + 0, 228, 328, 329, 330, 331, 0, 91, 332, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 334, + 335, 336, 0, 337, 0, 0, 680, 0, 0, 0, + 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, + 0, 95, 96, 1143, 0, 0, 0, 0, 97, 98, + 99, 0, 339, 0, 340, 100, 0, 341, 342, 343, + 344, 101, 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 110, - 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 117, 0, 118, 119, 0, 120, + 0, 0, 108, 109, 0, 0, 346, 0, 0, 347, + 348, 112, 113, 0, 1144, 0, 349, 350, 0, 0, + 0, 351, 0, 0, 352, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 89, 90, 139, 0, 140, 141, - 0, 228, 142, 143, 0, 144, 0, 145, 146, 147, + 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, + 0, 229, 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 0, 0, 157, 158, 159, 160, 161, 91, 0, 0, - 162, 0, 163, 164, 92, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 863, - 0, 93, 0, 0, 94, 0, 0, 0, 0, 0, - 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, - 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, - 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 0, 864, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 0, 0, 0, 110, 111, 112, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 117, 0, 118, 119, 0, 120, 121, 0, + 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, + 162, 0, 163, 355, 242, 356, 313, 357, 358, 0, + 0, 0, 0, 0, 359, 0, 0, 361, 362, 363, + 89, 90, 0, 0, 0, 0, 364, 0, 0, 0, + 0, 1179, 0, 0, 323, 324, 325, 326, 0, 0, + 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, + 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 334, 335, 336, 0, 337, + 0, 0, 680, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 338, 0, 0, 0, 0, 95, 96, 1180, + 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, + 340, 100, 0, 341, 342, 343, 344, 101, 0, 102, + 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 346, 0, 0, 347, 348, 112, 113, 0, + 1181, 0, 349, 350, 0, 0, 0, 351, 0, 0, + 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, + 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, + 359, 89, 90, 361, 362, 363, 0, 0, 0, 0, + 0, 0, 364, 0, 0, 323, 324, 325, 326, 0, + 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, + 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, + 337, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, + 0, 340, 100, 0, 341, 342, 343, 344, 101, 0, + 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 346, 0, 0, 347, 348, 112, 113, + 0, 0, 0, 349, 350, 0, 0, 0, 351, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, + 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, + 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, + 0, 359, 360, 0, 361, 362, 363, 0, 89, 90, + 0, 768, 0, 364, 769, 0, 0, 0, 0, 0, + 0, 0, 323, 324, 325, 326, 0, 0, 327, 0, + 0, 0, 0, 0, 0, 228, 328, 329, 330, 331, + 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, + 0, 0, 0, 334, 335, 336, 0, 337, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, + 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, + 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, + 0, 341, 342, 0, 344, 101, 0, 102, 103, 0, + 0, 0, 0, 345, 0, 0, 104, 105, 0, 0, + 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, + 346, 0, 0, 347, 348, 112, 113, 0, 0, 0, + 349, 350, 0, 0, 0, 351, 0, 0, 352, 0, + 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, + 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, + 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, + 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, + 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, + 161, 0, 0, 0, 162, 0, 163, 355, 242, 356, + 313, 357, 358, 0, 0, 0, 0, 0, 359, 0, + 0, 361, 362, 363, 0, 89, 90, 0, 772, 0, + 770, 773, 0, 0, 0, 0, 0, 0, 0, 323, + 324, 325, 326, 0, 0, 327, 0, 0, 0, 0, + 0, 0, 228, 328, 329, 330, 331, 0, 91, 332, + 0, 0, 0, 0, 0, 333, 0, 0, 0, 0, + 334, 335, 336, 0, 337, 0, 0, 0, 0, 0, + 0, 0, 93, 0, 0, 94, 0, 338, 0, 0, + 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, + 98, 99, 0, 339, 0, 340, 100, 0, 341, 342, + 0, 344, 101, 0, 102, 103, 0, 0, 0, 0, + 345, 0, 0, 104, 105, 0, 0, 106, 0, 107, + 0, 0, 0, 108, 109, 0, 0, 346, 0, 0, + 347, 348, 112, 113, 0, 0, 0, 349, 350, 0, + 0, 0, 351, 0, 0, 352, 0, 0, 0, 0, + 0, 0, 114, 115, 116, 353, 0, 118, 119, 0, + 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, + 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, + 134, 135, 136, 137, 138, 0, 0, 139, 0, 140, + 141, 0, 229, 142, 143, 0, 144, 0, 145, 146, + 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, + 156, 354, 0, 157, 158, 159, 160, 161, 0, 0, + 0, 162, 0, 163, 355, 242, 356, 313, 357, 358, + 0, 0, 0, 0, 0, 359, 0, 0, 361, 362, + 363, 0, 89, 90, 0, 776, 0, 774, 777, 0, + 0, 0, 0, 0, 0, 0, 323, 324, 325, 326, + 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, + 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, + 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, + 339, 0, 340, 100, 0, 341, 342, 0, 344, 101, + 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, + 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, + 108, 109, 0, 0, 346, 0, 0, 347, 348, 112, + 113, 0, 0, 0, 349, 350, 0, 0, 0, 351, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, + 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 89, 90, 139, 0, 140, 141, 0, 0, + 137, 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 0, 0, - 157, 158, 159, 160, 161, 91, 0, 0, 162, 0, - 163, 164, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 0, 0, 0, 0, 95, 96, - 0, 0, 0, 0, 97, 98, 99, 224, 0, 0, + 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, + 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, + 0, 0, 359, 0, 0, 361, 362, 363, 0, 89, + 90, 0, 780, 0, 778, 781, 0, 0, 0, 0, + 0, 0, 0, 323, 324, 325, 326, 0, 0, 327, + 0, 0, 0, 0, 0, 0, 228, 328, 329, 330, + 331, 0, 91, 332, 0, 0, 0, 0, 0, 333, + 0, 0, 0, 0, 334, 335, 336, 0, 337, 0, + 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, + 0, 338, 0, 0, 0, 0, 95, 96, 0, 0, + 0, 0, 0, 97, 98, 99, 0, 339, 0, 340, + 100, 0, 341, 342, 0, 344, 101, 0, 102, 103, + 0, 0, 0, 0, 345, 0, 0, 104, 105, 0, + 0, 106, 0, 107, 0, 0, 0, 108, 109, 0, + 0, 346, 0, 0, 347, 348, 112, 113, 0, 0, + 0, 349, 350, 0, 0, 0, 351, 0, 0, 352, + 0, 0, 0, 0, 0, 0, 114, 115, 116, 353, + 0, 118, 119, 0, 120, 121, 0, 122, 0, 0, + 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, + 130, 131, 132, 133, 134, 135, 136, 137, 138, 0, + 0, 139, 0, 140, 141, 0, 229, 142, 143, 0, + 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, + 152, 153, 154, 155, 156, 354, 0, 157, 158, 159, + 160, 161, 0, 0, 0, 162, 0, 163, 355, 242, + 356, 313, 357, 358, 0, 0, 0, 0, 0, 359, + 0, 0, 361, 362, 363, 0, 89, 90, 0, 784, + 0, 782, 785, 0, 0, 0, 0, 0, 0, 0, + 323, 324, 325, 326, 0, 0, 327, 0, 0, 0, + 0, 0, 0, 228, 328, 329, 330, 331, 0, 91, + 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, + 0, 334, 335, 336, 0, 337, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 339, 0, 340, 100, 0, 341, + 342, 0, 344, 101, 0, 102, 103, 0, 0, 0, + 0, 345, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 346, 0, + 0, 347, 348, 112, 113, 0, 0, 0, 349, 350, + 0, 0, 0, 351, 0, 0, 352, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 353, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, + 140, 141, 0, 229, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, + 0, 0, 162, 0, 163, 355, 242, 356, 313, 357, + 358, 0, 0, 0, 0, 0, 359, 0, 0, 361, + 362, 363, 0, 89, 90, 0, 788, 0, 786, 789, + 0, 0, 0, 0, 0, 0, 0, 323, 324, 325, + 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, + 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 334, 335, + 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, + 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, + 0, 339, 0, 340, 100, 0, 341, 342, 0, 344, + 101, 0, 102, 103, 0, 0, 0, 0, 345, 0, + 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, + 0, 108, 109, 0, 0, 346, 0, 0, 347, 348, + 112, 113, 0, 0, 0, 349, 350, 0, 0, 0, + 351, 0, 0, 352, 0, 0, 0, 0, 0, 0, + 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, + 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, + 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, + 229, 142, 143, 0, 144, 0, 145, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, + 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, + 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, + 0, 0, 0, 359, 0, 0, 361, 362, 363, 0, + 89, 90, 0, 792, 0, 790, 793, 0, 0, 0, + 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, + 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, + 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 334, 335, 336, 0, 337, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, + 340, 100, 0, 341, 342, 0, 344, 101, 0, 102, + 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 346, 0, 0, 347, 348, 112, 113, 0, + 0, 0, 349, 350, 0, 0, 0, 351, 0, 0, + 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, + 242, 356, 313, 357, 358, 0, 0, 0, 0, 0, + 359, 89, 90, 361, 362, 363, 0, 0, 0, 0, + 0, 0, 794, 0, 0, 323, 324, 325, 326, 0, + 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, + 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, + 337, 0, 0, 680, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, + 0, 340, 100, 0, 341, 342, 343, 344, 101, 0, + 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 346, 0, 0, 347, 348, 112, 113, + 0, 0, 0, 349, 350, 0, 0, 0, 351, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, + 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, + 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, + 0, 359, 89, 90, 361, 362, 363, 0, 0, 0, + 0, 0, 0, 364, 0, 0, 323, 324, 325, 326, + 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, + 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, + 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, + 339, 0, 340, 100, 0, 341, 342, 343, 344, 101, + 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, + 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, + 108, 109, 647, 0, 346, 0, 0, 347, 348, 112, + 113, 0, 0, 0, 349, 350, 0, 0, 0, 351, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, + 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, + 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, + 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 0, 0, 139, 0, 140, 141, 0, 229, + 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, + 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, + 0, 0, 359, 89, 90, 361, 362, 363, 0, 0, + 0, 0, 0, 0, 364, 0, 0, 323, 324, 325, + 326, 0, 0, 327, 0, 0, 0, 0, 0, 0, + 228, 328, 329, 330, 331, 0, 91, 332, 0, 0, + 0, 0, 0, 333, 0, 0, 0, 0, 334, 335, + 336, 0, 337, 0, 0, 0, 0, 0, 0, 0, + 93, 0, 0, 94, 0, 338, 0, 0, 0, 0, + 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, + 0, 339, 0, 340, 100, 0, 341, 342, 343, 344, + 101, 0, 102, 103, 0, 0, 0, 0, 345, 0, + 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, + 0, 108, 109, 0, 0, 346, 0, 0, 347, 348, + 112, 113, 0, 0, 0, 349, 350, 0, 0, 0, + 351, 0, 0, 352, 0, 0, 0, 0, 0, 0, + 114, 115, 116, 353, 0, 118, 119, 0, 120, 121, + 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, + 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, + 136, 137, 138, 0, 0, 139, 0, 140, 141, 0, + 229, 142, 143, 0, 144, 0, 145, 146, 147, 148, + 149, 150, 151, 0, 152, 153, 154, 155, 156, 354, + 0, 157, 158, 159, 160, 161, 0, 0, 0, 162, + 0, 163, 355, 242, 356, 313, 357, 358, 0, 0, + 0, 0, 0, 359, 0, 0, 361, 362, 363, 0, + 89, 90, 0, 764, 0, 364, 765, 0, 0, 0, + 0, 0, 0, 0, 323, 324, 325, 326, 0, 0, + 327, 0, 0, 0, 0, 0, 0, 228, 328, 329, + 330, 331, 0, 91, 332, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 334, 335, 336, 0, 337, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, + 340, 100, 0, 0, 342, 0, 344, 101, 0, 102, + 103, 0, 0, 0, 0, 345, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 346, 0, 0, 347, 348, 112, 113, 0, + 0, 0, 349, 350, 0, 0, 0, 351, 0, 0, + 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, + 242,-32768, 313, 357, 358, 0, 0, 0, 0, 0, + 359, 89, 90, 361, 362, 363, 0, 0, 0, 0, + 0, 0, 766, 0, 0, 323, 324, 325, 326, 0, + 0, 327, 0, 0, 0, 0, 0, 0, 228, 328, + 329, 330, 331, 0, 91, 332, 0, 0, 0, 0, + 0, 333, 0, 0, 0, 0, 334, 335, 336, 0, + 337, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 338, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 339, + 0, 340, 100, 0, 341, 342, 0, 344, 101, 0, + 102, 103, 0, 0, 0, 0, 345, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 647, 0, 346, 0, 0, 347, 348, 112, 113, + 0, 0, 0, 349, 350, 0, 0, 0, 351, 0, + 0, 352, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 353, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 0, 0, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 354, 0, 157, + 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, + 355, 242, 356, 313, 357, 358, 0, 0, 0, 0, + 0, 359, 89, 90, 361, 362, 363, 0, 0, 0, + 0, 0, 0, 364, 0, 0, 323, 324, 325, 326, + 0, 0, 327, 0, 0, 0, 0, 0, 0, 228, + 328, 329, 330, 331, 0, 91, 332, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 334, 335, 336, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, + 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, + 339, 0, 340, 100, 0, 341, 342, 0, 344, 101, + 0, 102, 103, 0, 0, 0, 0, 345, 0, 0, + 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, + 108, 109, 0, 0, 346, 0, 0, 347, 348, 112, + 113, 0, 0, 0, 349, 350, 0, 0, 0, 351, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, + 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, + 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, + 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 0, 0, 139, 0, 140, 141, 0, 229, + 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, + 163, 355, 242, 356, 313, 357, 358, 0, 0, 0, + 89, 90, 359, 0, 0, 361, 362, 363, 0, 0, + 0, 0, 0, 0, 364, 734, 325, 326, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 735, 736, + 737, 738, 0, 91, 332, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 0, 0, 336, 0, 337, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, + 340, 100, 0, 0, 0, 0, 344, 101, 0, 102, + 103, 0, 0, 0, 0, 739, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 740, 0, 0, 347, 348, 112, 113, 0, + 0, 0, 741, 350, 0, 0, 0, 742, 0, 0, + 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, + 242, 743, 313, 357, 358, 0, 0, 0, 89, 90, + 744, 0, 0, 745, 746, 747, 0, 0, 0, 0, + 0, 0, 748, 734, 325, 326, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 735, 736, 737, 738, + 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, + 0, 0, 0, 0, 0, 336, 0, 337, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, + 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, + 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, + 0, 0, 0, 0, 344, 101, 0, 102, 103, 0, + 0, 0, 0, 739, 0, 0, 104, 105, 0, 0, + 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, + 740, 0, 0, 347, 348, 112, 113, 0, 0, 0, + 741, 350, 0, 0, 0, 742, 0, 0, 352, 0, + 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, + 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, + 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, + 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, + 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, + 161, 0, 0, 0, 162, 0, 163, 355, 242,-32768, + 313, 357, 358, 0, 0, 0, 89, 90, 744, 0, + 0, 745, 746, 747, 0, 0, 0, 0, 0, 0, + 748, 1282, 325, 326, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 1283, 1284, 1285, 1286, 0, 91, + 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, + 0, 0, 0, 336, 0, 337, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 339, 0, 340, 100, 0, 0, + 0, 1287, 344, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 347, 348, 112, 113, 0, 0, 0, 0, 350, + 0, 0, 0, 1288, 0, 0, 352, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 353, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, + 0, 0, 162, 0, 163, 355, 242, 1289, 313, 357, + 358, 0, 0, 0, 89, 90, 1290, 0, 0, 1291, + 1292, 1293, 0, 0, 0, 0, 0, 0, 1294, 1282, + 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 1283, 1284, 1285, 1286, 0, 91, 332, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, + 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, + 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, + 99, 0, 339, 0, 340, 100, 0, 0, 0, 0, + 344, 101, 0, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, + 0, 0, 108, 109, 0, 0, 0, 0, 0, 347, + 348, 112, 113, 0, 0, 0, 0, 350, 0, 0, + 0, 1288, 0, 0, 352, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, + 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, + 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, + 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, + 354, 0, 157, 158, 159, 160, 161, 0, 0, 0, + 162, 0, 163, 355, 242, 1289, 313, 357, 358, 0, + 0, 0, 89, 90, 1290, 0, 0, 1291, 1292, 1293, + 0, 0, 0, 0, 0, 0, 1294, 1282, 325, 326, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 1283, 1284, 1285, 1286, 0, 91, 332, 0, 0, 0, + 0, 0, 333, 0, 0, 0, 0, 0, 0, 336, + 0, 337, 0, 0, 0, 0, 0, 0, 0, 93, + 0, 0, 94, 0, 338, 0, 0, 0, 0, 95, + 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, + 339, 0, 340, 100, 0, 0, 0, 0, 344, 101, + 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, + 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, + 108, 109, 0, 0, 0, 0, 0, 347, 348, 112, + 113, 0, 0, 0, 0, 350, 0, 0, 0, 1288, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, + 115, 116, 353, 0, 118, 119, 0, 120, 121, 0, + 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, + 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, + 137, 138, 0, 0, 139, 0, 140, 141, 0, 0, + 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, + 150, 151, 0, 152, 153, 154, 155, 156, 354, 0, + 157, 158, 159, 160, 161, 0, 0, 0, 162, 0, + 163, 355, 242,-32768, 313, 357, 358, 0, 0, 0, + 89, 90, 1290, 0, 0, 1291, 1292, 1293, 0, 0, + 0, 0, 0, 0, 1294, 662, 325, 326, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 228, 0, 0, + 0, 0, 0, 91, 332, 0, 0, 0, 0, 0, + 333, 0, 0, 0, 0, 0, 0, 336, 0, 337, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 338, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, + 340, 100, 0, 0, 0, 0, 344, 101, 0, 102, + 103, 0, 0, 0, 0, 663, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 664, 0, 0, 347, 348, 112, 113, 0, + 0, 0, 665, 350, 0, 0, 0, 0, 0, 0, + 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 353, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 0, 0, 139, 0, 140, 141, 0, 229, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 354, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 162, 0, 163, 355, + 242, 666, 313, 357, 358, 0, 0, 0, 89, 90, + 667, 0, 0, 668, 0, 0, 0, 0, 0, 0, + 0, 0, 669, 662, 325, 326, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 228, 0, 0, 0, 0, + 0, 91, 332, 0, 0, 0, 0, 0, 333, 0, + 0, 0, 0, 0, 0, 336, 0, 337, 0, 0, + 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, + 338, 0, 0, 0, 0, 95, 96, 0, 0, 0, + 0, 0, 97, 98, 99, 0, 339, 0, 340, 100, + 0, 0, 0, 0, 344, 101, 0, 102, 103, 0, + 0, 0, 0, 663, 0, 0, 104, 105, 0, 0, + 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, + 664, 0, 0, 347, 348, 112, 113, 0, 0, 0, + 665, 350, 0, 0, 0, 0, 0, 0, 352, 0, + 0, 0, 0, 0, 0, 114, 115, 116, 353, 0, + 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, + 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, + 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, + 139, 0, 140, 141, 0, 229, 142, 143, 0, 144, + 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, + 153, 154, 155, 156, 354, 0, 157, 158, 159, 160, + 161, 0, 0, 0, 162, 0, 163, 355, 242,-32768, + 313, 357, 358, 0, 0, 0, 89, 90, 667, 0, + 0, 668, 0, 0, 0, 0, 0, 0, 0, 0, + 669, 1048, 325, 326, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 91, + 332, 0, 0, 0, 0, 0, 333, 0, 0, 0, + 0, 0, 0, 336, 0, 337, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 338, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 339, 0, 340, 100, 0, 1049, + 0, 1050, 344, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 347, 348, 112, 113, 0, 0, 0, 0, 350, + 0, 0, 0, 0, 0, 0, 352, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 353, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 354, 0, 157, 158, 159, 160, 161, 0, + 0, 0, 162, 0, 163, 355, 242, 1051, 313, 357, + 358, 0, 0, 0, 89, 90, 1052, 0, 0, 1053, + 1054, 1055, 0, 0, 0, 0, 0, 0, 1056, 1048, + 325, 326, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 91, 332, 0, + 0, 0, 0, 0, 333, 0, 0, 0, 0, 0, + 0, 336, 0, 337, 0, 0, 0, 0, 0, 0, + 0, 93, 0, 0, 94, 0, 338, 0, 0, 0, + 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, + 99, 0, 339, 0, 340, 100, 0, 0, 0, 1050, + 344, 101, 0, 102, 103, 0, 0, 0, 0, 0, + 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, + 0, 0, 108, 109, 0, 0, 0, 0, 0, 347, + 348, 112, 113, 0, 0, 0, 0, 350, 0, 0, + 0, 0, 0, 0, 352, 0, 0, 0, 0, 0, + 0, 114, 115, 116, 353, 0, 118, 119, 0, 120, + 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, + 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, + 135, 136, 137, 138, 0, 0, 139, 0, 140, 141, + 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, + 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, + 354, 0, 157, 158, 159, 160, 161, 89, 90, 0, + 162, 0, 163, 355, 242,-32768, 313, 357, 358, 0, + 0, 0, 0, 0, 1052, 0, 0, 1053, 1054, 1055, + 0, 0, 0, 0, 228, 0, 1056, 0, 0, 0, + 91, 0, 0, 0, 0, 0, 0, 92, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 94, 0, 0, + 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, + 0, 97, 98, 99, 0, 0, 0, 0, 100, 1256, + 0, 0, 0, 0, 101, 0, 102, 103, 0, 0, + 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, + 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, + 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 1257, 0, 0, + 0, 0, 0, 1258, 114, 115, 116, 117, 0, 118, + 119, 1259, 120, 121, 0, 122, 0, 0, 123, 124, + 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 89, 90, 139, + 0, 140, 141, 0, 229, 142, 143, 0, 144, 0, + 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, + 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, + 91, 0, 0, 162, 0, 163, 164, 92, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 93, 0, 0, 94, 0, 1017, + 0, 0, 0, 0, 95, 96, 0, 1262, 0, 0, + 0, 97, 98, 99, 0, 0, 0, 0, 100, 0, + 0, 0, 1263, 0, 101, 0, 102, 103, 0, 0, + 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, + 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, + 1264, 0, 110, 111, 112, 113,-32768,-32768, 1268, 1269, + 1270, 1271, 0, 0, 0, 0, 0, 0, 0, 1272, + 0, 0, 0, 0, 114, 115, 116, 117, 0, 118, + 119, 0, 120, 121, 0, 122, 0, 0, 123, 124, + 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 0, 0, 139, + 0, 140, 141, 0, 0, 142, 143, 0, 144, 0, + 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, + 154, 155, 156, 1102, 0, 157, 158, 159, 160, 161, + 89, 90, 0, 162, 0, 163, 164, 242, 302, 313, + 0, 1103, 0, 277, 278, 279, 280, 1104, 282, 283, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 0, 0, 611, 0, 0, 0, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 0, 274, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 275, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, + 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, + 92, 276, 0, 0, 0, 0, 277, 278, 279, 280, + 281, 282, 283, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 0, 274, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 275, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 0, 228, 157, 158, + 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, + 92, 276, 0, 0, 0, 0, 277, 278, 279, 280, + 281, 282, 283, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 225, 111, 112, 113, 0, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 89, 90, 139, 0, 140, 141, 0, 229, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 0, 228, 157, 158, + 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, + 92, 0, 0, 357, 0, 0, 0, 0, 0, 0, + 0, 544, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 89, 90, 139, 0, 140, 141, 0, 229, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, + 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 255, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, @@ -2971,25 +2796,178 @@ static const short yytable[] = { 167, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 95, 96, 0, 0, - 0, 0, 97, 98, 99, 0, 0, 0, 0, 100, - 0, 0, 0, 0, 0, 101, 0, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, + 0, 435, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 117, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 89, 90, - 139, 0, 140, 141, 0, 0, 142, 143, 610, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, - 161, 91, 0, 0, 162, 0, 163, 164, 92, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, + 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 801, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, + 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, + 92, 0, 0, 0, 0, 0, 0, 0, 0, 511, + 0, 1029, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 1256, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, + 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, + 103, 0, 0, 0, 0, 0, 0, 512, 104, 105, + 0, 0, 106, 513, 107, 0, 0, 0, 108, 109, + 0, 514, 0, 1257, 0, 110, 111, 112, 113, 1258, + 0, 0, 0, 0, 0, 0, 0, 1259, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, + 159, 160, 161, 0, 0, 0, 162, 517, 163, 164, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 1231, 518, 1262, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 1263, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 519, 89, 90, 0, 0, 520, 521, 522, 523, 524, + 525, 526, 0, 0, 0, 0, 1264, 0, 0, 527, + 0, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 228, 0, + 0, 0, 0, 0, 91, 1272, 0, 0, 0, 0, + 0, 92, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 89, 90, 139, 0, 140, 141, 0, 229, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, + 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, + 164, 92, 0, 0, 357, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, + 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, + 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, + 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, + 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, + 105, 0, 0, 106, 0, 107, 0, 0, 0, 108, + 109, 0, 0, 0, 0, 0, 110, 111, 112, 113, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 114, 115, + 116, 117, 0, 118, 119, 0, 120, 121, 0, 122, + 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, + 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, + 138, 0, 0, 139, 0, 140, 141, 0, 0, 142, + 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, + 151, 0, 152, 153, 154, 155, 156, 89, 90, 157, + 158, 159, 160, 161, 0, 0, 0, 162, 0, 163, + 164, 693, 0, 313, 0, 0, 0, 694, 0, 0, + 0, 695, 0, 696, 697, 0, 0, 0, 0, 0, + 91, 0, 0, 0, 0, 0, 0, 92, 0, 698, + 699, 0, 0, 0, 700, 0, 0, 0, 701, 0, + 0, 0, 702, 0, 93, 0, 0, 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, 0, 0, 0, + 0, 97, 98, 99, 0, 0, 0, 0, 100, 0, + 0, 703, 0, 0, 101, 0, 102, 103, 0, 704, + 0, 0, 705, 706, 0, 104, 105, 0, 0, 106, + 0, 107, 0, 0, 0, 108, 109, 0, 0, 0, + 707, 708, 110, 111, 112, 113, 0, 0, 709, 0, + 710, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 711, 0, 0, 0, 114, 115, 116, 117, 712, 118, + 119, 713, 120, 121, 714, 122, 715, 716, 123, 124, + 125, 126, 127, 717, 128, 129, 718, 719, 130, 131, + 132, 133, 134, 135, 136, 137, 138, 720, 721, 139, + 722, 140, 141, 723, 724, 142, 143, 725, 144, 0, + 145, 146, 147, 148, 149, 150, 151, 726, 152, 153, + 154, 155, 156, 727, 728, 157, 158, 159, 160, 161, + 89, 90, 729, 162, 730, 163, 164, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 325, 326, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 91, 591, 0, 0, 0, 0, 0, + 592, 0, 0, 0, 0, 0, 0, 0, 0, 593, + 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, + 94, 0, 0, 0, 0, 0, 0, 95, 96, 0, + 0, 0, 0, 0, 97, 98, 99, 0, 339, 0, + 340, 100, 0, 0, 0, 0, 594, 101, 0, 102, + 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, + 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, + 0, 0, 0, 0, 0, 110, 111, 112, 113, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 352, 0, 0, 0, 0, 0, 0, 114, 115, 116, + 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, + 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, + 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, + 0, 0, 139, 0, 140, 141, 0, 0, 142, 143, + 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, + 0, 152, 153, 154, 155, 156, 89, 90, 157, 158, + 159, 160, 161, 0, 0, 0, 162, 0, 163, 164, + 0, 0, 0, 0, 568, 0, 0, 0, 0, 0, + 569, 0, 0, 0, 0, 0, 0, 0, 0, 91, + 0, 0, 0, 0, 0, 0, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 570, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 571, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, + 0, 572, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 224, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 225, 111, 112, 113, 0, 0, 226, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 228, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, @@ -3000,1652 +2978,1773 @@ static const short yytable[] = { 167, 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, - 140, 141, 0, 1209, 142, 143, 1101, 144, 0, 145, + 140, 141, 0, 229, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 877, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 878, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, - 0, 0, 95, 96, 0, 0, 0, 0, 97, 98, - 99, 0, 0, 0, 0, 100, 0, 0, 0, 0, - 0, 101, 0, 102, 103, 0, 0, 0, 0, 0, - 0, 0, 104, 105, 0, 0, 106, 0, 107, 0, - 0, 0, 108, 109, 0, 0, 0, 0, 0, 110, - 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 249, 111, 112, 113, 0, 0, 250, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 114, 115, 116, 117, 0, 118, 119, 0, 120, - 121, 0, 122, 0, 0, 123, 124, 125, 126, 127, - 0, 128, 129, 0, 0, 130, 131, 132, 133, 134, - 135, 136, 137, 138, 89, 90, 139, 0, 140, 141, - 0, 0, 142, 143, 0, 144, 0, 145, 146, 147, - 148, 149, 150, 151, 0, 152, 153, 154, 155, 156, - 0, 0, 157, 158, 159, 160, 161, 91, 0, 0, - 162, 0, 163, 164, 92, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 93, 0, 0, 94, 0, 0, 0, 0, 0, - 95, 96, 0, 0, 0, 0, 97, 98, 99, 0, - 0, 0, 0, 100, 0, 0, 0, 0, 0, 101, - 0, 102, 103, 0, 0, 0, 0, 0, 0, 0, - 104, 105, 0, 0, 106, 0, 107, 0, 0, 0, - 108, 109, 0, 0, 0, 0, 0, 110, 111, 112, - 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 114, - 115, 116, 117, 0, 118, 119, 0, 120, 121, 0, - 122, 0, 0, 123, 124, 125, 126, 127, 0, 128, - 129, 0, 0, 130, 131, 132, 133, 134, 135, 136, - 137, 138, 89, 90, 139, 0, 140, 141, 0, 0, - 142, 143, 0, 144, 0, 145, 146, 147, 148, 149, - 150, 151, 0, 152, 153, 154, 155, 156, 0, 0, - 157, 158, 159, 160, 161, 91, 0, 0, 162, 0, - 163, 164, 92, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 93, - 0, 0, 94, 0, 0, 0, 0, 0, 95, 96, - 0, 0, 0, 0, 97, 98, 99, 0, 0, 0, - 0, 100, 0, 0, 0, 0, 0, 101, 0, 102, - 103, 0, 0, 0, 0, 0, 0, 0, 104, 105, - 0, 0, 106, 0, 107, 0, 0, 0, 108, 109, - 0, 0, 0, 0, 0, 248, 111, 112, 113, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 252, 111, 112, 113, 0, 0, 253, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 0, 142, 143, 620, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 1226, 142, 143, 1118, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 106, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 89, 90, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 91, + 0, 0, 162, 0, 163, 164, 92, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 93, 0, 0, 94, 0, 0, 0, + 0, 0, 0, 95, 96, 0, 0, 0, 0, 0, + 97, 98, 99, 0, 0, 0, 0, 100, 0, 0, + 0, 0, 0, 101, 0, 102, 103, 0, 0, 0, + 0, 0, 0, 0, 104, 105, 0, 0, 809, 0, + 107, 0, 0, 0, 108, 109, 0, 0, 0, 0, + 0, 110, 111, 112, 113, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 114, 115, 116, 117, 0, 118, 119, + 0, 120, 121, 0, 122, 0, 0, 123, 124, 125, + 126, 127, 0, 128, 129, 0, 0, 130, 131, 132, + 133, 134, 135, 136, 137, 138, 0, 0, 139, 0, + 140, 141, 0, 0, 142, 143, 0, 144, 0, 145, + 146, 147, 148, 149, 150, 151, 0, 152, 153, 154, + 155, 156, 0, 0, 157, 158, 159, 160, 161, 0, + 0, 1, 162, 0, 163, 164, 2, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, + 4, 0, 5, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 6, 0, 7, 0, 0, 0, 8, 0, + 9, 10, 0, 0, 0, 11, 0, 0, 0, 0, + 0, 12, 0, 0, 0, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 114, 115, 116, - 117, 0, 118, 119, 0, 120, 121, 0, 122, 0, - 0, 123, 124, 125, 126, 127, 0, 128, 129, 0, - 0, 130, 131, 132, 133, 134, 135, 136, 137, 138, - 89, 90, 139, 0, 140, 141, 0, 0, 142, 143, - 0, 144, 0, 145, 146, 147, 148, 149, 150, 151, - 0, 152, 153, 154, 155, 156, 0, 0, 157, 158, - 159, 160, 161, 91, 0, 0, 162, 0, 163, 164, - 92, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 94, 0, 0, 0, 0, 0, 95, 96, 0, 0, - 0, 0, 97, 98, 99, 0, 0, 0, 0, 100, - 0, 0, 0, 0, 0, 101, 0, 102, 103, 0, - 0, 0, 0, 0, 0, 0, 104, 105, 0, 0, - 106, 0, 107, 0, 0, 0, 108, 109, 0, 0, - 0, 0, 0, 250, 111, 112, 113, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 114, 115, 116, 117, 0, - 118, 119, 0, 120, 121, 0, 122, 0, 0, 123, - 124, 125, 126, 127, 0, 128, 129, 0, 0, 130, - 131, 132, 133, 134, 135, 136, 137, 138, 0, 0, - 139, 0, 140, 141, 0, 0, 142, 143, 0, 144, - 0, 145, 146, 147, 148, 149, 150, 151, 0, 152, - 153, 154, 155, 156, 0, 0, 157, 158, 159, 160, - 161, 0, 0, 1, 162, 0, 163, 164, 2, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, - 0, 0, 4, 0, 5, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 6, 0, 7, 0, 0, 0, - 8, 0, 9, 10, 0, 0, 0, 11, 0, 0, - 0, 0, 0, 12, 0, 0, 0, 0, 0, 0, - 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 322, 323, 0, 0, 0, 0, 0, 0, 0, 14, 0, 15, 0, 0, 16, 17, 0, - 91, 329, 0, 0, 0, 0, 0, 481, 0, 0, - 0, 0, 0, 18, 333, 0, 334, 0, 0, 0, - 0, 0, 0, 0, 93, 0, 0, 0, 19, 335, - 0, 0, 0, 0, 0, 0, 20, 21, 0, 0, - 98, 99, 0, 336, 0, 337, 22, 23, 0, 0, - 0, 341, 0, 0, 0, 0, 0, 24, 25, 0, - 26, 0, 0, 27, 0, 0, 0, 0, 0, 28, - 0, 0, 0, 0, 109, 637, 0, 29, 0, 0, - 482, 483, 0, 0, 30, 0, 0, 0, 347, 0, - 31, 0, 32, 0, 0, 349, 322, 323, 0, 0, - 0, 0, 114, 0, 0, 484, 0, 0, 0, 0, - 0, 0, 0, 91, 329, 0, 0, 0, 0, 0, - 481, 0, 0, 0, 0, 0, 0, 333, 0, 334, - 0, 0, 0, 0, 0, 0, 0, 93, 0, 0, - 0, 0, 335, 0, 0, 0, 0, 0, 0, 322, - 323, 0, 0, 98, 99, 0, 336, 0, 337, 0, - 0, 351, 0, 0, 341, 0, 91, 329, 0, 0, - 0, 0, 0, 481, 485, 241, 0, 310, 354, 355, - 0, 0, 334, 0, 0, 0, 0, 109, 0, 0, - 93, 0, 0, 482, 483, 335, 0, 0, 0, 0, - 0, 347, 0, 0, 0, 0, 98, 99, 349, 336, - 0, 337, 0, 0, 0, 114, 0, 341, 484, 0, + 0, 0, 325, 326, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 18, 0, 0, 0, 0, 0, 91, + 332, 0, 0, 0, 0, 0, 487, 0, 19, 0, + 0, 0, 0, 336, 0, 337, 20, 21, 0, 0, + 0, 0, 0, 93, 0, 0, 22, 23, 338, 0, + 0, 0, 0, 0, 0, 0, 0, 24, 25, 0, + 26, 98, 99, 27, 339, 0, 340, 0, 0, 28, + 0, 0, 344, 0, 0, 0, 0, 29, 0, 0, + 0, 0, 0, 0, 30, 0, 0, 325, 326, 0, + 31, 0, 32, 0, 0, 109, 647, 0, 0, 0, + 0, 488, 489, 0, 91, 332, 0, 0, 0, 350, + 0, 487, 0, 0, 0, 0, 352, 0, 336, 0, + 337, 0, 0, 114, 0, 0, 490, 0, 93, 0, + 0, 0, 0, 338, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 98, 99, 0, 339, + 0, 340, 0, 0, 0, 0, 0, 344, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 325, 326, 0, 0, 0, 0, 0, + 109, 0, 354, 0, 0, 0, 488, 489, 0, 0, + 91, 332, 0, 0, 350, 491, 242, 487, 313, 357, + 358, 352, 0, 0, 0, 0, 337, 0, 114, 0, + 0, 490, 0, 0, 93, 0, 0, 0, 0, 338, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 98, 99, 0, 339, 0, 340, 0, 0, + 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 325, 326, + 0, 0, 0, 0, 0, 0, 109, 354, 0, 0, + 0, 0, 488, 489, 0, 91, 332, 0, 0, 0, + 491, 242, 487, 313, 357, 358, 0, 352, 0, 0, + 0, 337, 0, 0, 114, 0, 0, 490, 0, 93, + 0, 0, 0, 0, 338, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 98, 99, 0, + 339, 0, 340, 0, 0, 0, 0, 0, 344, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 109, 0, 0, 0, 0, 0, 482, 483, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 349, 0, 0, 0, 0, 0, 0, 114, 0, - 0, 484, 0, 0, 351, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 485, 241, 0, - 310, 354, 355, 0, 0, 0, 0, 0, 0, 0, + 0, 109, 844, 354, 0, 0, 0, 488, 489, 0, + 0, 0, 0, 0, 0, 0, 491, 0, 0, 0, + 0, 0, 352, 0, 0, 0, 0, 0, 0, 114, + 0, 0, 490, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 351, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 485 + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 354, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 491 }; static const short yycheck[] = { 3, - 539, 171, 6, 238, 208, 200, 620, 375, 825, 183, - 871, 872, 25, 17, 18, 197, 20, 454, 1003, 189, - 24, 1009, 835, 637, 28, 29, 30, 31, 889, 549, - 395, 415, 39, 948, 1281, 55, 6, 120, 6, 6, - 477, 9, 246, 521, 18, 1237, 323, 223, 21, 5, - 24, 7, 25, 39, 28, 1449, 1450, 31, 66, 1032, - 337, 1034, 1035, 1036, 1037, 1038, 1039, 74, 39, 669, - 55, 671, 672, 21, 1531, 1532, 39, 21, 446, 55, - 84, 54, 1207, 27, 3, 129, 39, 53, 44, 129, - 527, 55, 570, 50, 40, 39, 905, 239, 906, 89, - 733, 734, 735, 736, 737, 129, 54, 311, 39, 129, - 84, 45, 211, 63, 152, 82, 122, 750, 1575, 55, - 315, 149, 153, 318, 8, 98, 154, 84, 40, 86, - 229, 137, 99, 44, 217, 193, 1530, 165, 8, 129, - 84, 179, 200, 285, 953, 129, 954, 175, 176, 180, - 98, 66, 64, 126, 98, 86, 120, 10, 111, 109, - 104, 16, 550, 551, 552, 169, 56, 124, 172, 173, - 538, 199, 176, 177, 542, 179, 180, 130, 126, 183, - 129, 127, 126, 187, 188, 361, 105, 191, 232, 193, - 194, 195, 232, 470, 234, 169, 200, 201, 148, 1391, - 134, 112, 172, 173, 211, 95, 180, 129, 232, 179, - 234, 224, 232, 187, 218, 127, 136, 656, 657, 658, - 659, 191, 1679, 193, 232, 211, 210, 146, 83, 1046, - 1047, 201, 236, 670, 190, 239, 208, 10, 1099, 1154, - 211, 245, 1367, 162, 218, 859, 213, 232, 211, 223, - 618, 455, 456, 457, 221, 1228, 232, 112, 462, 225, - 233, 50, 236, 1236, 6, 233, 213, 1240, 215, 1242, - 474, 245, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, - 1674, 285, 1255, 232, 50, 234, 50, 211, 1261, 302, - 60, 211, 296, 1485, 662, 84, 500, 86, 502, 114, - 42, 38, 822, 40, 1551, 229, 76, 907, 1296, 229, - 232, 315, 234, 128, 318, 319, 320, 950, 1360, 148, - 86, 1363, 86, 6, 213, 13, 296, 64, 212, 962, - 963, 964, 965, 966, 967, 124, 220, 221, 222, 223, - 110, 230, 212, 571, 189, 76, 213, 231, 524, 362, - 220, 221, 222, 223, 1546, 955, 1548, 40, 124, 212, - 124, 231, 13, 230, 217, 218, 219, 220, 221, 222, - 223, 166, 740, 61, 111, 388, 389, 390, 231, 110, - 211, 64, 840, 103, 554, 73, 844, 391, 392, 593, - 127, 595, 596, 597, 598, 1576, 1577, 401, 229, 55, - 878, 228, 229, 407, 10, 61, 419, 127, 211, 1324, - 61, 415, 222, 223, 211, 114, 420, 391, 392, 1600, - 1393, 231, 73, 427, 428, 790, 229, 401, 111, 433, - 201, 202, 436, 437, 222, 223, 801, 441, 143, 212, - 211, 919, 147, 231, 127, 182, 183, 220, 221, 222, - 223, 232, 226, 234, 428, 210, 840, 427, 231, 40, - 844, 222, 223, 433, 188, 904, 436, 437, 166, 906, - 231, 40, 476, 1286, 913, 914, 915, 916, 917, 918, - 213, 67, 228, 64, 921, 922, 70, 233, 221, 1474, - 968, 212, 229, 930, 21, 64, 233, 218, 219, 503, - 232, 505, 234, 210, 100, 1270, 1271, 1272, 1273, 1274, - 1275, 194, 39, 89, 222, 223, 61, 954, 13, 36, - 232, 1494, 526, 231, 528, 1125, 1126, 1127, 756, 232, - 111, 234, 760, 970, 89, 1523, 764, 1525, 89, 232, - 768, 234, 111, 60, 772, 1023, 127, 1180, 776, 38, - 524, 40, 780, 112, 139, 559, 784, 84, 127, 76, - 77, 89, 1162, 1163, 1164, 933, 61, 232, 1107, 234, - 145, 98, 67, 222, 223, 64, 4, 104, 73, 1118, - 756, 9, 231, 169, 760, 139, 139, 15, 764, 559, - 226, 19, 768, 110, 222, 232, 772, 234, 184, 126, - 776, 605, 210, 211, 780, 213, 212, 215, 784, 233, - 1375, 615, 136, 194, 220, 221, 222, 223, 232, 623, - 234, 138, 111, 10, 628, 231, 212, 232, 232, 234, - 234, 605, 136, 233, 220, 221, 222, 223, 127, 232, - 10, 234, 846, 70, 232, 231, 234, 1412, 109, 35, - 854, 855, 656, 657, 658, 659, 1421, 1422, 1423, 1424, - 1425, 1426, 1427, 1428, 135, 1430, 593, 212, 595, 596, - 597, 598, 854, 855, 169, 220, 221, 222, 223, 853, - 89, 233, 212, 887, 232, 232, 231, 234, 213, 184, - 220, 221, 222, 223, 183, 871, 872, 233, 902, 875, - 212, 231, 233, 1140, 234, 97, 132, 883, 220, 221, - 222, 223, 232, 889, 234, 233, 67, 212, 232, 231, - 234, 20, 217, 218, 219, 220, 221, 222, 223, 733, - 734, 735, 736, 737, 233, 232, 231, 234, 232, 232, - 234, 234, 946, 971, 229, 1606, 750, 951, 952, 233, - 978, 979, 233, 981, 982, 233, 984, 985, 1297, 987, - 988, 233, 990, 991, 233, 993, 994, 233, 996, 997, - 212, 999, 1000, 233, 233, 1253, 56, 233, 220, 221, - 222, 223, 62, 787, 232, 789, 234, 233, 233, 231, - 1555, 232, 72, 234, 807, 232, 800, 234, 802, 229, - 80, 233, 10, 228, 808, 228, 136, 811, 187, 813, - 814, 815, 816, 787, 94, 789, 233, 821, 169, 10, - 111, 825, 826, 836, 828, 173, 800, 107, 192, 1307, - 834, 89, 53, 184, 120, 55, 840, 134, 808, 1015, - 844, 854, 855, 228, 228, 125, 816, 1325, 20, 853, - 854, 855, 856, 36, 111, 120, 860, 120, 862, 863, - 834, 212, 61, 867, 1681, 120, 120, 116, 136, 220, - 221, 222, 223, 231, 234, 879, 880, 60, 234, 232, - 231, 55, 228, 1087, 185, 84, 233, 25, 233, 69, - 860, 69, 862, 76, 77, 233, 13, 871, 872, 89, - 904, 905, 217, 92, 97, 197, 159, 89, 164, 913, - 914, 915, 916, 917, 918, 889, 111, 8, 232, 217, - 1148, 217, 13, 1099, 1152, 234, 232, 110, 130, 233, - 24, 112, 1369, 1109, 1299, 118, 119, 55, 77, 1304, - 234, 234, 110, 233, 61, 234, 950, 234, 1316, 953, - 67, 1429, 234, 1181, 233, 138, 73, 233, 962, 963, - 964, 965, 966, 967, 212, 234, 233, 1581, 234, 212, - 61, 233, 220, 221, 222, 223, 67, 220, 221, 222, - 223, 139, 73, 231, 234, 8, 230, 229, 231, 234, - 13, 61, 233, 84, 233, 233, 233, 233, 233, 1003, - 233, 92, 1006, 233, 233, 1009, 1484, 233, 233, 233, - 233, 233, 217, 212, 233, 233, 233, 233, 217, 218, - 219, 220, 221, 222, 223, 228, 233, 233, 1032, 1003, - 1034, 1035, 1036, 1037, 1038, 1039, 233, 233, 61, 233, - 167, 233, 1046, 1047, 67, 98, 234, 233, 1526, 1527, - 73, 217, 169, 1057, 1058, 1225, 233, 1061, 136, 136, - 1073, 84, 129, 46, 1259, 53, 177, 184, 231, 92, - 234, 233, 1437, 234, 1552, 234, 61, 231, 169, 234, - 233, 1085, 1447, 234, 195, 234, 234, 1057, 234, 234, - 1318, 234, 234, 184, 1322, 212, 232, 1636, 29, 212, - 217, 218, 219, 220, 221, 222, 223, 220, 221, 222, - 223, 58, 222, 129, 231, 120, 58, 207, 231, 233, - 69, 212, 86, 69, 233, 1099, 217, 218, 219, 220, - 221, 222, 223, 233, 233, 233, 92, 53, 10, 120, - 231, 170, 57, 234, 212, 3, 169, 210, 6, 217, - 218, 219, 220, 221, 222, 223, 230, 233, 233, 17, - 18, 184, 20, 231, 68, 234, 24, 15, 234, 234, - 28, 29, 30, 31, 212, 234, 1180, 234, 234, 233, - 218, 219, 220, 221, 222, 223, 234, 234, 234, 212, - 234, 320, 234, 231, 217, 218, 219, 220, 221, 222, - 223, 234, 232, 1207, 59, 1209, 234, 234, 231, 1413, - 1414, 234, 234, 234, 234, 1219, 234, 234, 39, 234, - 1224, 234, 234, 234, 1228, 234, 84, 234, 234, 156, - 234, 234, 1236, 1207, 39, 205, 1240, 231, 1242, 158, - 233, 1245, 1246, 1247, 1248, 1249, 1250, 1251, 1252, 1219, - 47, 1255, 91, 233, 1224, 1259, 233, 1261, 233, 233, - 232, 234, 391, 234, 94, 234, 1270, 1271, 1272, 1273, - 1274, 1275, 234, 234, 212, 234, 1289, 234, 1291, 217, - 218, 219, 220, 221, 222, 223, 1290, 68, 125, 234, - 234, 234, 1296, 231, 1659, 212, 234, 13, 232, 211, - 217, 218, 219, 220, 221, 222, 223, 8, 233, 104, - 234, 169, 1482, 231, 172, 173, 1290, 75, 176, 177, - 70, 179, 180, 101, 234, 183, 228, 232, 234, 187, - 188, 234, 233, 191, 234, 193, 194, 195, 234, 6, - 93, 234, 200, 201, 8, 61, 234, 476, 89, 157, - 111, 67, 15, 234, 233, 168, 210, 73, 233, 1372, - 218, 234, 1597, 1367, 233, 476, 125, 234, 84, 232, - 4, 1375, 228, 230, 226, 234, 505, 53, 236, 226, - 90, 239, 88, 232, 114, 0, 0, 245, 33, 1393, - 1625, 1626, 1067, 1367, 505, 261, 126, 572, 128, 409, - 1604, 390, 833, 133, 811, 826, 1064, 813, 1412, 1589, - 140, 141, 1262, 1492, 144, 1650, 1561, 1421, 1422, 1423, - 1424, 1425, 1426, 1427, 1428, 155, 1430, 285, 13, 1593, - 1606, 828, 1611, 163, 1647, 1075, 166, 856, 296, 855, - 27, 14, 246, 397, 623, 316, 1599, 1525, 1629, 1524, - 197, 1626, 1656, 169, 298, 1073, 186, 315, 32, 867, - 318, 319, 320, 523, 194, 195, 1637, 1607, 184, 410, - 1474, 1630, 1638, 203, 1529, 1361, 61, 335, 1656, 8, - 1152, 351, 67, 528, 13, 625, 194, 800, 73, 524, - 1494, 1209, 1496, 351, 1570, -1, 212, -1, -1, -1, - 1474, 217, 218, 219, 220, 221, 222, 223, 1521, -1, - -1, -1, -1, -1, -1, 231, 1520, -1, -1, 1523, - -1, 1525, -1, -1, -1, 1529, 13, 656, 657, 658, - 659, -1, 61, 391, 392, -1, -1, -1, 67, -1, - -1, -1, 13, 401, 73, 656, 657, 658, 659, 407, - 1520, 1555, -1, -1, -1, 84, -1, 415, -1, -1, - -1, -1, 420, 92, -1, -1, -1, -1, -1, 427, - 428, -1, -1, -1, 61, 433, -1, -1, 436, 437, - 67, -1, 1595, 441, 169, -1, 73, -1, -1, -1, - 61, -1, -1, -1, -1, -1, 67, 84, -1, 184, - 1604, -1, 73, 461, 733, 734, 735, 736, 737, -1, + 239, 200, 6, 183, 171, 223, 197, 546, 25, 1017, + 378, 630, 460, 17, 18, 849, 20, 399, 1023, 839, + 24, 421, 189, 1256, 28, 29, 30, 31, 647, 559, + 885, 886, 962, 6, 1300, 483, 9, 39, 39, 1469, + 1470, 55, 21, 6, 55, 55, 25, 39, 903, 679, + 131, 681, 682, 5, 66, 7, 326, 39, 3, 16, + 131, 1049, 527, 1051, 1052, 1053, 1054, 1055, 1056, 40, + 340, 131, 195, 1224, 76, 54, 45, 138, 50, 202, + 84, 1551, 1552, 53, 452, 533, 44, 743, 744, 745, + 746, 747, 44, 64, 1289, 1290, 1291, 1292, 1293, 1294, + 55, 21, 122, 40, 760, 40, 666, 667, 668, 669, + 131, 38, 60, 40, 86, 580, 88, 131, 919, 318, + 1550, 100, 321, 6, 39, 1595, 55, 64, 85, 213, + 78, 116, 154, 215, 54, 8, 39, 64, 18, 8, + 63, 212, 113, 213, 24, 130, 364, 231, 28, 128, + 232, 31, 213, 234, 126, 236, 114, 114, 129, 181, + 191, 231, 107, 131, 112, 169, 967, 136, 172, 173, + 231, 10, 176, 177, 234, 179, 180, 545, 1411, 183, + 100, 549, 131, 187, 188, 88, 113, 191, 111, 193, + 194, 195, 129, 122, 129, 208, 200, 201, 113, 219, + 1395, 84, 129, 148, 84, 66, 476, 224, 128, 172, + 173, 213, 213, 234, 218, 236, 179, 132, 101, 164, + 234, 213, 234, 234, 234, 196, 920, 150, 191, 1699, + 193, 213, 680, 237, 247, 1386, 240, 1432, 201, 6, + 192, 1171, 246, 1063, 1064, 240, 1441, 1442, 1443, 1444, + 1445, 1446, 1447, 1448, 873, 1450, 235, 227, 185, 1247, + 628, 1116, 235, 91, 1694, 13, 234, 1255, 236, 10, + 155, 1259, 1505, 1261, 968, 42, 1264, 1265, 1266, 1267, + 1268, 1269, 1270, 1271, 288, 234, 1274, 236, 305, 169, + 56, 921, 1280, 288, 78, 299, 1379, 182, 215, 1382, + 180, 314, 105, 131, 672, 1571, 836, 187, 964, 150, + 1315, 13, 530, 61, 318, 232, 21, 321, 322, 323, + 976, 977, 978, 979, 980, 981, 129, 75, 112, 6, + 168, 97, 215, 1566, 39, 1568, 299, 61, 218, 969, + 223, 214, 854, 223, 116, 214, 858, 213, 365, 222, + 223, 224, 225, 222, 223, 224, 225, 237, 918, 61, + 233, 50, 210, 40, 233, 231, 246, 927, 928, 929, + 930, 931, 932, 75, 391, 214, 393, 394, 1596, 1597, + 1575, 86, 750, 222, 223, 224, 225, 64, 40, 213, + 36, 395, 396, 213, 233, 100, 124, 564, 215, 88, + 212, 106, 1620, 407, 10, 4, 223, 231, 425, 413, + 9, 139, 64, 1343, 60, 50, 15, 421, 800, 230, + 19, 36, 426, 128, 235, 1413, 234, 892, 236, 433, + 434, 813, 78, 79, 214, 439, 113, 126, 442, 443, + 220, 221, 234, 447, 236, 60, 203, 204, 461, 462, + 463, 86, 129, 88, 854, 468, 213, 228, 858, 55, + 234, 113, 236, 78, 79, 61, 112, 480, 933, 190, + 433, 1305, 920, 214, 120, 121, 439, 129, 482, 442, + 443, 222, 223, 224, 225, 13, 1494, 935, 936, 168, + 214, 126, 233, 506, 140, 508, 944, 112, 222, 223, + 224, 225, 224, 225, 50, 509, 145, 511, 71, 233, + 149, 233, 1142, 1143, 1144, 395, 396, 982, 212, 196, + 968, 230, 231, 224, 225, 140, 1514, 407, 532, 38, + 534, 40, 233, 61, 102, 539, 984, 234, 1543, 67, + 1545, 1197, 88, 13, 224, 225, 91, 75, 766, 1179, + 1180, 1181, 770, 233, 434, 64, 774, 151, 86, 234, + 778, 236, 156, 141, 782, 569, 91, 91, 786, 8, + 114, 68, 790, 167, 13, 1040, 794, 224, 225, 947, + 126, 91, 141, 177, 178, 1124, 233, 215, 68, 217, + 603, 61, 605, 606, 607, 608, 1135, 67, 141, 68, + 224, 225, 228, 224, 113, 75, 569, 201, 214, 233, + 67, 615, 147, 219, 220, 221, 222, 223, 224, 225, + 129, 625, 61, 235, 560, 561, 562, 233, 67, 633, + 36, 37, 10, 234, 638, 236, 75, 43, 21, 234, + 10, 236, 138, 171, 27, 138, 52, 86, 212, 213, + 530, 215, 235, 217, 60, 94, 39, 71, 186, 65, + 235, 111, 666, 667, 668, 669, 35, 885, 886, 137, + 91, 889, 78, 79, 234, 184, 185, 868, 869, 897, + 234, 215, 236, 89, 235, 903, 214, 867, 235, 134, + 99, 219, 220, 221, 222, 223, 224, 225, 234, 20, + 236, 171, 234, 86, 236, 233, 112, 10, 234, 1157, + 236, 230, 118, 119, 171, 235, 186, 100, 234, 234, + 236, 236, 231, 106, 235, 230, 235, 235, 234, 186, + 236, 234, 171, 236, 140, 615, 234, 143, 236, 743, + 744, 745, 746, 747, 214, 128, 234, 186, 236, 581, + 220, 221, 222, 223, 224, 225, 760, 214, 234, 234, + 236, 236, 234, 233, 236, 222, 223, 224, 225, 235, + 234, 1626, 236, 235, 235, 214, 233, 1316, 231, 214, + 219, 220, 221, 222, 223, 224, 225, 222, 223, 224, + 225, 235, 235, 797, 233, 799, 74, 236, 233, 235, + 138, 236, 819, 235, 235, 809, 212, 1272, 812, 235, + 814, 235, 1030, 231, 61, 8, 235, 74, 822, 235, + 13, 825, 74, 827, 828, 829, 830, 189, 61, 10, + 113, 835, 175, 850, 194, 839, 840, 91, 842, 53, + 122, 136, 230, 55, 848, 230, 20, 860, 113, 122, + 854, 868, 869, 86, 858, 868, 869, 118, 122, 822, + 122, 1326, 122, 867, 868, 869, 870, 830, 61, 138, + 874, 236, 876, 877, 67, 233, 55, 881, 234, 1344, + 56, 1701, 75, 13, 236, 230, 62, 187, 901, 893, + 894, 235, 212, 86, 25, 235, 235, 73, 1116, 70, + 70, 94, 94, 916, 91, 219, 82, 199, 1126, 99, + 161, 874, 219, 876, 918, 919, 91, 797, 166, 799, + 96, 219, 113, 927, 928, 929, 930, 931, 932, 234, + 236, 61, 812, 109, 766, 234, 1318, 67, 770, 235, + 1388, 1323, 774, 24, 132, 75, 778, 960, 114, 236, + 782, 127, 965, 966, 786, 236, 236, 236, 790, 55, + 964, 236, 794, 967, 112, 79, 236, 1335, 848, 235, + 219, 230, 976, 977, 978, 979, 980, 981, 171, 235, + 235, 214, 1601, 236, 1449, 235, 219, 220, 221, 222, + 223, 224, 225, 186, 603, 235, 605, 606, 607, 608, + 141, 214, 8, 231, 236, 885, 886, 13, 232, 222, + 223, 224, 225, 1017, 236, 235, 1020, 235, 235, 1023, + 233, 214, 195, 903, 235, 214, 219, 220, 221, 222, + 223, 224, 225, 222, 223, 224, 225, 235, 235, 1504, + 233, 171, 236, 236, 233, 1049, 61, 1051, 1052, 1053, + 1054, 1055, 1056, 235, 212, 61, 186, 214, 235, 1063, + 1064, 67, 219, 220, 221, 222, 223, 224, 225, 75, + 1074, 1075, 235, 1090, 1078, 1457, 233, 1244, 169, 1278, + 86, 1546, 1547, 235, 214, 1467, 235, 100, 94, 235, + 67, 1104, 222, 223, 224, 225, 235, 235, 1102, 235, + 235, 235, 235, 233, 219, 138, 235, 1572, 235, 235, + 235, 1074, 235, 214, 235, 235, 235, 1656, 219, 220, + 221, 222, 223, 224, 225, 46, 131, 138, 233, 53, + 3, 235, 233, 6, 236, 236, 236, 1017, 236, 61, + 233, 235, 234, 29, 17, 18, 236, 20, 236, 236, + 13, 24, 236, 985, 236, 28, 29, 30, 31, 236, + 992, 993, 236, 995, 996, 171, 998, 999, 236, 1001, + 1002, 224, 1004, 1005, 131, 1007, 1008, 214, 1010, 1011, + 186, 1013, 1014, 220, 221, 222, 223, 224, 225, 58, + 212, 214, 212, 1197, 171, 122, 233, 58, 61, 222, + 223, 224, 225, 235, 67, 209, 323, 235, 214, 186, + 233, 84, 75, 219, 220, 221, 222, 223, 224, 225, + 1224, 235, 1226, 86, 70, 235, 235, 233, 88, 70, + 236, 53, 94, 10, 1238, 122, 1116, 214, 172, 1243, + 212, 235, 57, 1247, 236, 222, 223, 224, 225, 236, + 236, 1255, 236, 236, 236, 1259, 233, 1261, 232, 235, + 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, 235, 69, + 1274, 236, 236, 214, 1278, 1238, 1280, 236, 395, 234, + 1243, 222, 223, 224, 225, 1289, 1290, 1291, 1292, 1293, + 1294, 1308, 233, 1310, 236, 15, 169, 1679, 236, 172, + 173, 236, 59, 176, 177, 1309, 179, 180, 171, 158, + 183, 1315, 39, 236, 187, 188, 236, 236, 191, 236, + 193, 194, 195, 186, 236, 236, 236, 200, 201, 236, + 214, 236, 236, 1165, 177, 1502, 236, 1169, 222, 223, + 224, 225, 236, 236, 1224, 218, 236, 236, 236, 233, + 39, 214, 195, 212, 207, 233, 219, 220, 221, 222, + 223, 224, 225, 235, 237, 482, 1198, 240, 235, 235, + 233, 235, 160, 246, 1391, 47, 93, 235, 1617, 214, + 236, 236, 1386, 234, 219, 220, 221, 222, 223, 224, + 225, 1395, 236, 96, 511, 69, 236, 236, 236, 236, + 236, 127, 236, 236, 234, 213, 1645, 1646, 1626, 1413, + 8, 235, 106, 236, 233, 288, 77, 103, 71, 230, + 1433, 1434, 236, 235, 234, 6, 299, 236, 1432, 1309, + 236, 1670, 236, 236, 8, 95, 91, 1441, 1442, 1443, + 1444, 1445, 1446, 1447, 1448, 318, 1450, 236, 321, 322, + 323, 236, 159, 15, 113, 236, 235, 170, 212, 235, + 235, 127, 236, 236, 234, 338, 116, 4, 230, 232, + 228, 236, 228, 53, 92, 90, 0, 0, 128, 234, + 130, 354, 33, 415, 264, 135, 847, 582, 394, 825, + 1494, 1084, 142, 143, 840, 827, 146, 1081, 1281, 1609, + 1631, 1581, 1613, 1512, 1667, 1337, 1386, 157, 842, 1341, + 1514, 1092, 1516, 870, 8, 165, 869, 27, 168, 13, + 401, 14, 395, 396, 1541, 247, 319, 633, 1619, 1545, + 1649, 1646, 301, 197, 407, 1090, 1540, 1544, 188, 1543, + 413, 1545, 32, 1657, 881, 1549, 196, 197, 421, 666, + 667, 668, 669, 426, 529, 205, 1650, 1658, 1627, 416, + 433, 434, 1549, 1676, 1380, 1169, 439, 61, 354, 442, + 443, 1575, 635, 67, 447, 812, 534, 1540, 8, 530, + 194, 75, 1590, 13, 1226, -1, -1, -1, -1, -1, + -1, -1, 86, -1, 467, -1, -1, -1, 1615, -1, + 94, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 1624, -1, -1, 1494, -1, -1, -1, -1, -1, + 1624, -1, -1, -1, -1, -1, 743, 744, 745, 746, + 747, 61, -1, -1, -1, -1, 509, 67, -1, 482, + -1, -1, -1, 760, -1, 75, -1, -1, -1, -1, + 1667, -1, -1, -1, 527, -1, 86, -1, -1, 532, + -1, 534, -1, 1676, 94, 8, 539, -1, 511, -1, + 13, -1, 1676, -1, 1678, -1, -1, 171, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 750, 733, 734, 735, 736, 737, 212, -1, -1, - -1, -1, 1606, -1, 1647, 220, 221, 222, 223, 750, - 169, -1, -1, -1, -1, 503, 231, -1, -1, -1, - -1, -1, 1656, -1, 1658, 184, -1, -1, -1, -1, - -1, -1, -1, 521, 8, -1, -1, -1, 526, 13, - 528, 800, -1, -1, -1, -1, -1, 1681, -1, -1, - -1, -1, 169, 212, -1, -1, -1, -1, 217, 218, - 219, 220, 221, 222, 223, -1, -1, 184, 169, -1, - -1, 559, 231, -1, -1, 234, -1, -1, -1, -1, - 821, -1, 570, 184, -1, -1, -1, 61, -1, -1, - -1, -1, -1, 67, -1, 212, -1, -1, -1, 73, - 217, 218, 219, 220, 221, 222, 223, -1, -1, -1, - 84, 212, -1, -1, 231, -1, -1, 605, 92, 220, - 221, 222, 223, -1, -1, -1, -1, 615, -1, -1, - 231, -1, -1, -1, -1, 623, -1, -1, -1, -1, - 628, -1, -1, -1, -1, 904, 905, -1, -1, -1, - -1, -1, -1, -1, 913, 914, 915, 916, 917, 918, - -1, -1, -1, 904, 905, -1, -1, -1, -1, 320, - -1, -1, 913, 914, 915, 916, 917, 918, -1, 13, + -1, -1, 186, -1, -1, 812, 569, 1701, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 580, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 61, -1, + 214, -1, -1, -1, 67, 219, 220, 221, 222, 223, + 224, 225, 75, -1, -1, -1, -1, -1, -1, 233, + 234, 171, 615, 86, -1, -1, 1626, -1, -1, -1, + -1, 94, 625, -1, -1, 116, 186, -1, -1, -1, + 633, -1, -1, -1, -1, 638, -1, -1, -1, 130, + -1, -1, -1, -1, 135, -1, -1, -1, -1, -1, + -1, 142, 143, -1, 214, 146, -1, -1, -1, 219, + 220, 221, 222, 223, 224, 225, 157, -1, -1, -1, + -1, 918, 919, 233, 165, -1, 236, 168, -1, -1, + 927, 928, 929, 930, 931, 932, -1, -1, -1, -1, + -1, -1, -1, 666, 667, 668, 669, 188, 171, 190, + -1, -1, -1, -1, -1, 196, 197, -1, -1, -1, + -1, -1, -1, 186, -1, -1, -1, 964, -1, -1, + 967, -1, 8, -1, -1, -1, -1, 13, -1, 976, + 977, 978, 979, 980, 981, -1, -1, -1, -1, -1, + -1, 214, -1, -1, -1, -1, 219, 220, 221, 222, + 223, 224, 225, -1, -1, -1, -1, -1, -1, -1, + 233, -1, -1, 236, -1, -1, -1, -1, -1, -1, + 743, 744, 745, 746, 747, 61, -1, -1, -1, -1, + -1, 67, -1, -1, -1, -1, -1, 760, -1, 75, + -1, -1, -1, -1, 797, -1, 799, -1, -1, -1, + 86, -1, -1, -1, -1, -1, 809, -1, 94, 812, + 8, 814, -1, -1, -1, 13, -1, -1, -1, 822, + -1, -1, 825, -1, 827, 828, 829, 830, -1, -1, + -1, -1, -1, -1, -1, -1, 839, 840, -1, 842, + -1, -1, 323, -1, -1, 848, -1, -1, -1, -1, + -1, 854, -1, -1, -1, 858, -1, 13, -1, -1, + -1, -1, 835, 61, 867, 868, 869, 870, -1, 67, + -1, 874, -1, 876, 877, -1, -1, 75, 881, -1, + -1, -1, -1, -1, -1, 171, -1, -1, 86, 892, + 893, 894, -1, -1, -1, -1, 94, -1, -1, -1, + 186, -1, -1, -1, -1, 61, -1, 8, -1, -1, + -1, 67, 13, -1, 395, -1, -1, -1, -1, 75, + -1, -1, -1, -1, -1, -1, -1, -1, 214, -1, + 933, -1, -1, 219, 220, 221, 222, 223, 224, 225, + -1, -1, -1, -1, -1, 918, 919, 233, 234, -1, + 1197, -1, -1, -1, 927, 928, 929, 930, 931, 932, + 61, -1, -1, -1, -1, -1, 67, -1, -1, -1, + -1, -1, -1, 171, 75, -1, -1, -1, -1, 982, + -1, -1, 985, -1, -1, 86, -1, -1, 186, -1, + -1, 964, -1, 94, 967, -1, -1, -1, -1, -1, + -1, -1, -1, 976, 977, 978, 979, 980, 981, -1, + -1, -1, -1, -1, 1017, 171, 214, 1020, -1, -1, + 1023, 219, 220, 221, 222, 223, 224, 225, -1, -1, + 186, 8, -1, -1, 11, 233, 13, 1040, 236, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 950, -1, -1, 953, 169, -1, 8, -1, -1, - -1, -1, 13, 962, 963, 964, 965, 966, 967, 950, - 184, -1, 953, -1, -1, -1, -1, -1, -1, -1, - -1, 962, 963, 964, 965, 966, 967, 61, -1, -1, - -1, -1, -1, 67, -1, -1, -1, -1, 212, 73, - 391, -1, -1, 217, 218, 219, 220, 221, 222, 223, - 61, -1, -1, -1, -1, -1, 67, 231, -1, -1, - 234, 13, 73, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 84, -1, -1, -1, -1, -1, -1, - -1, 92, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1032, -1, 1034, 1035, 1036, 1037, 1038, 1039, 787, - -1, 789, -1, -1, -1, -1, -1, -1, -1, 61, - -1, -1, 800, -1, 802, 67, -1, 1058, -1, -1, - 808, 73, -1, 811, -1, 813, 814, 815, 816, -1, - -1, -1, -1, -1, -1, 169, -1, 825, 826, -1, - 828, -1, -1, -1, -1, -1, 834, -1, -1, -1, - 184, -1, 840, -1, -1, -1, 844, -1, 169, -1, - -1, -1, -1, -1, -1, 853, 854, 855, 856, -1, - -1, -1, 860, 184, 862, 863, -1, 8, 212, 867, - -1, -1, 13, -1, 218, 219, 220, 221, 222, 223, - 878, 879, 880, -1, -1, -1, -1, 231, -1, -1, - -1, 212, -1, -1, -1, -1, 217, 218, 219, 220, - 221, 222, 223, -1, -1, -1, -1, 169, -1, -1, - 231, 1180, -1, 234, -1, -1, -1, -1, -1, 338, - 61, 919, 184, -1, -1, -1, 67, -1, -1, 1180, - -1, -1, 73, -1, 353, -1, -1, 356, -1, 358, - 359, 360, 361, 84, -1, -1, -1, -1, -1, -1, - 212, 92, -1, -1, -1, -1, 218, 219, 220, 221, - 222, 223, -1, -1, -1, -1, -1, -1, -1, 231, - 968, -1, -1, 971, -1, -1, 8, 1228, -1, -1, - -1, 13, -1, -1, -1, 1236, -1, -1, -1, 1240, - -1, 1242, -1, -1, 1245, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, -1, -1, 1255, 1003, 425, -1, 1006, -1, - 1261, 1009, -1, -1, -1, -1, -1, -1, -1, 1270, - 1271, 1272, 1273, 1274, 1275, 1023, -1, -1, 169, 61, - -1, 450, -1, -1, -1, 67, -1, -1, -1, -1, - -1, 73, -1, 184, -1, 1296, -1, -1, 1046, 1047, - -1, -1, 84, -1, 473, -1, -1, -1, -1, 1057, - 92, 480, 8, 1061, -1, -1, -1, 13, -1, -1, - 489, 212, -1, -1, -1, -1, 217, 218, 219, 220, - 221, 222, 223, -1, -1, 504, -1, 1085, -1, 508, - 231, 510, -1, 234, 513, 514, 515, 516, 517, 518, - 519, 520, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, - -1, 67, -1, -1, 1375, -1, -1, 73, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 169, 84, 800, - -1, -1, 1393, -1, -1, -1, 92, -1, -1, -1, - -1, -1, 184, -1, -1, -1, -1, -1, -1, -1, - 821, 1412, -1, -1, -1, -1, -1, -1, -1, -1, - 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, -1, 1430, - 212, -1, -1, 1181, -1, 217, 218, 219, 220, 221, - 222, 223, -1, -1, -1, -1, -1, -1, -1, 231, - 232, -1, -1, 8, -1, 624, -1, -1, 13, 1207, - -1, 1209, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 1219, -1, 169, -1, -1, 1224, -1, -1, -1, - 8, -1, -1, 11, -1, 13, -1, -1, 184, 1237, - -1, -1, -1, 1494, -1, -1, -1, -1, -1, -1, - 669, -1, 671, 672, -1, 1253, 61, -1, -1, -1, - 679, 1259, 67, 41, -1, -1, 212, -1, 73, -1, - -1, 217, 218, 219, 220, 221, 222, 223, -1, 84, - -1, -1, -1, 61, -1, 231, 232, 92, -1, 67, - -1, 8, 1290, -1, -1, 73, 13, -1, 1296, -1, - -1, -1, -1, -1, 1555, -1, 84, -1, -1, 1307, - 971, -1, -1, -1, 92, -1, -1, -1, -1, 738, - -1, -1, -1, -1, -1, -1, -1, 1325, -1, -1, - -1, -1, -1, 752, -1, -1, -1, 756, 1336, -1, - -1, 760, -1, -1, 61, 764, -1, -1, -1, 768, - 67, 129, -1, 772, -1, -1, 73, 776, -1, -1, - 476, 780, -1, -1, 169, 784, -1, 84, -1, 1367, - -1, 1032, -1, 1034, 1035, 1036, 1037, 1038, 1039, 184, - -1, -1, -1, -1, -1, -1, -1, 1385, -1, 505, - -1, 169, -1, 1391, -1, -1, -1, 1058, -1, -1, - -1, -1, -1, -1, -1, -1, 184, 212, -1, -1, - -1, -1, 217, 218, 219, 220, 221, 222, 223, -1, - -1, -1, -1, -1, -1, -1, 231, 232, -1, -1, - -1, 1429, 8, -1, 212, -1, -1, 13, -1, 217, - 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, - -1, -1, 169, 231, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 882, -1, -1, -1, 184, -1, -1, - 1468, -1, -1, 892, -1, -1, 1474, -1, -1, -1, - -1, -1, 901, -1, -1, 61, 1484, 1485, 907, -1, - -1, 67, -1, -1, 1492, 212, -1, 73, 1496, -1, - 217, 218, 219, 220, 221, 222, 223, -1, 84, -1, - -1, -1, -1, 932, 231, -1, 92, -1, -1, -1, - 1181, -1, 1520, 36, 37, 1523, -1, 1525, 1526, 1527, - 43, 1529, -1, -1, -1, -1, 955, -1, -1, 52, - 656, 657, 658, 659, -1, -1, -1, 60, 1546, -1, - 1548, -1, 65, -1, 1552, -1, -1, -1, -1, -1, - -1, -1, -1, 76, 77, -1, -1, 1228, -1, -1, - -1, -1, -1, -1, 87, 1236, 1237, -1, -1, 1240, - -1, 1242, -1, -1, 1245, 1246, 1247, 1248, 1249, 1250, - 1251, 1252, -1, 169, 1255, -1, -1, 110, -1, -1, - 1261, -1, -1, 116, 117, -1, 1604, -1, 184, 1270, - 1271, 1272, 1273, 1274, 1275, -1, -1, 733, 734, 735, - 736, 737, -1, -1, -1, 138, -1, -1, 141, -1, - -1, -1, -1, -1, 750, -1, 212, 114, -1, -1, - -1, 217, 218, 219, 220, 221, 222, 223, -1, 225, - -1, 128, -1, -1, 230, 231, 133, -1, 1656, -1, - 1658, -1, -1, 140, 141, -1, 8, 144, 10, -1, - -1, 13, -1, -1, -1, 1336, -1, -1, 155, -1, - -1, -1, -1, 1681, -1, -1, 163, -1, -1, 166, - -1, -1, -1, -1, -1, -1, -1, 210, -1, -1, - -1, -1, -1, -1, -1, 821, 1125, 1126, 1127, 186, - -1, 188, -1, -1, 1375, -1, -1, 194, 195, 61, - -1, -1, -1, -1, 1385, 67, -1, -1, -1, -1, - 1391, 73, 1393, 1152, -1, -1, -1, -1, -1, -1, - -1, -1, 84, 1162, 1163, 1164, -1, -1, -1, -1, - 92, 1412, -1, -1, -1, -1, -1, -1, -1, -1, - 1421, 1422, 1423, 1424, 1425, 1426, 1427, 1428, -1, 1430, + -1, -1, -1, -1, -1, -1, -1, -1, 214, -1, + 1063, 1064, -1, -1, 41, -1, 222, 223, 224, 225, + 171, 1074, -1, -1, -1, 1078, 1049, 233, 1051, 1052, + 1053, 1054, 1055, 1056, 61, 186, -1, -1, -1, -1, + 67, -1, -1, -1, -1, -1, -1, -1, 75, 1102, + -1, -1, 1075, -1, -1, -1, -1, -1, -1, 86, + -1, -1, -1, 214, -1, -1, -1, 94, 219, 220, + 221, 222, 223, 224, 225, -1, -1, -1, -1, -1, + -1, -1, 233, 234, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 904, 905, - -1, -1, -1, -1, -1, -1, -1, 913, 914, 915, - 916, 917, 918, -1, -1, -1, -1, 1468, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 1485, -1, -1, 169, -1, -1, - -1, 1492, -1, 1494, 950, -1, -1, 953, -1, -1, - -1, -1, 184, -1, -1, -1, 962, 963, 964, 965, - 966, 967, -1, -1, -1, 971, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 212, -1, -1, -1, -1, 217, 218, 219, 220, 221, - 222, 223, -1, -1, -1, 1546, -1, 1548, -1, 231, - -1, -1, -1, -1, 1555, -1, 3, 4, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 19, 20, -1, -1, 1032, -1, 1034, 1035, - 1036, 1037, 1038, 1039, -1, -1, -1, -1, -1, 36, - 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, - -1, -1, 1058, -1, -1, 52, -1, -1, -1, -1, - -1, 1370, -1, 60, -1, -1, 63, -1, -1, -1, - -1, -1, 69, 70, -1, -1, -1, -1, 75, 76, - 77, -1, 79, -1, 81, 82, -1, -1, -1, -1, - 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, - -1, -1, 99, 100, -1, -1, 103, -1, 105, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, 116, - 117, 118, 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 139, 140, 141, -1, 143, 144, -1, 146, - 147, -1, 149, -1, -1, 152, 153, 154, 155, 156, - -1, 158, 159, -1, -1, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 1180, 1181, 173, -1, 175, 176, - -1, -1, 179, 180, -1, 182, -1, 184, 185, 186, - 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, - -1, -1, 199, 200, 201, 202, 203, -1, -1, -1, - 207, -1, 209, 210, -1, -1, -1, -1, -1, -1, - -1, -1, 1228, 8, -1, -1, -1, -1, 13, -1, - 1236, 1237, -1, -1, 1240, -1, 1242, 234, -1, 1245, - 1246, 1247, 1248, 1249, 1250, 1251, 1252, -1, -1, 1255, - -1, -1, -1, -1, -1, 1261, -1, -1, -1, -1, - -1, -1, -1, -1, 1270, 1271, 1272, 1273, 1274, 1275, - 55, -1, -1, -1, -1, 1584, 61, -1, -1, 19, - 20, -1, 67, -1, -1, -1, -1, -1, 73, -1, - -1, -1, -1, -1, 1603, -1, 36, 37, -1, 84, - -1, -1, -1, 43, -1, -1, -1, 92, -1, -1, - -1, -1, 52, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, -1, -1, 65, -1, -1, -1, 1638, - 1336, -1, -1, -1, -1, -1, 76, 77, -1, 79, - -1, 81, -1, -1, -1, -1, -1, 87, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 1375, - 110, -1, -1, -1, -1, -1, 116, 117, -1, 1385, - -1, -1, -1, -1, 169, 1391, -1, 1393, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 184, - -1, 141, -1, -1, -1, -1, 1412, -1, -1, -1, - -1, -1, -1, -1, -1, 1421, 1422, 1423, 1424, 1425, - 1426, 1427, 1428, -1, 1430, -1, -1, 212, -1, -1, - -1, -1, 217, 218, 219, 220, 221, 222, 223, -1, - -1, -1, -1, -1, -1, -1, 231, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 196, 197, -1, -1, - -1, -1, 1468, -1, -1, -1, -1, -1, -1, -1, - 210, -1, -1, -1, -1, -1, -1, -1, -1, 1485, - -1, 3, 4, -1, -1, -1, 1492, -1, 1494, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 341, -1, -1, -1, 171, 1198, -1, -1, -1, 8, + -1, -1, -1, -1, 13, 356, -1, -1, 359, 186, + 361, 362, 363, 364, -1, -1, -1, -1, -1, -1, + -1, 1224, -1, 1226, 1197, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 1238, -1, 214, -1, -1, + 1243, -1, 219, 220, 221, 222, 223, 224, 225, -1, + -1, -1, 61, 1256, -1, -1, 233, -1, 67, -1, + -1, -1, -1, -1, -1, -1, 75, -1, -1, 1272, + -1, -1, -1, -1, 1247, 1278, -1, 86, -1, -1, + 431, -1, 1255, -1, -1, 94, 1259, -1, 1261, -1, + -1, 1264, 1265, 1266, 1267, 1268, 1269, 1270, 1271, -1, + -1, 1274, -1, -1, -1, 456, 1309, 1280, -1, -1, + -1, -1, 1315, -1, -1, -1, 1289, 1290, 1291, 1292, + 1293, 1294, -1, 1326, -1, -1, -1, -1, 479, -1, + -1, 812, -1, -1, -1, 486, -1, -1, -1, -1, + -1, 1344, 1315, -1, 495, -1, -1, -1, -1, -1, + -1, -1, 1355, -1, 835, -1, -1, -1, -1, 510, + -1, -1, 171, 514, -1, 516, -1, -1, 519, 520, + 521, 522, 523, 524, 525, 526, -1, 186, -1, -1, + -1, -1, -1, 1386, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 482, 1405, -1, -1, 214, -1, -1, 1411, -1, + 219, 220, 221, 222, 223, 224, 225, -1, 227, -1, + -1, -1, 1395, 232, 233, -1, -1, -1, -1, -1, + 511, -1, -1, -1, -1, -1, 8, -1, 10, -1, + 1413, 13, -1, -1, -1, -1, 1449, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 1432, + -1, -1, -1, -1, -1, -1, -1, -1, 1441, 1442, + 1443, 1444, 1445, 1446, 1447, 1448, -1, 1450, -1, -1, + -1, -1, -1, 634, -1, 1488, -1, -1, -1, 61, + -1, 1494, -1, -1, -1, 67, -1, -1, -1, -1, + -1, 1504, 1505, 75, 985, -1, -1, -1, -1, 1512, + -1, -1, -1, 1516, 86, -1, -1, -1, -1, -1, + -1, -1, 94, -1, -1, -1, -1, -1, 679, -1, + 681, 682, -1, -1, -1, -1, -1, 1540, 689, -1, + 1543, 1514, 1545, 1546, 1547, -1, 1549, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 1566, -1, 1568, -1, -1, 1049, 1572, + 1051, 1052, 1053, 1054, 1055, 1056, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 666, 667, 668, 669, -1, + -1, -1, -1, -1, 1075, -1, -1, 748, -1, 171, + -1, -1, 1575, -1, -1, -1, -1, -1, -1, -1, + -1, 762, -1, -1, 186, 766, -1, -1, -1, 770, + -1, 1624, -1, 774, -1, -1, -1, 778, 8, -1, + -1, 782, -1, 13, -1, 786, -1, -1, -1, 790, + -1, -1, 214, 794, -1, -1, -1, 219, 220, 221, + 222, 223, 224, 225, 8, -1, -1, -1, -1, 13, + -1, 233, 743, 744, 745, 746, 747, -1, -1, -1, + -1, -1, -1, 1676, -1, 1678, -1, -1, -1, 760, + -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, + -1, -1, -1, -1, -1, 75, -1, -1, 1701, -1, + -1, 55, -1, -1, -1, -1, 86, 61, -1, -1, + -1, -1, -1, 67, 94, -1, -1, 1198, -1, -1, + -1, 75, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 86, -1, -1, -1, -1, 117, -1, -1, + 94, -1, -1, -1, -1, 896, -1, -1, -1, -1, + -1, -1, -1, -1, 835, 906, -1, -1, -1, -1, + -1, -1, -1, -1, 915, -1, 1247, -1, -1, -1, + 921, -1, -1, -1, 1255, 1256, -1, -1, 1259, -1, + 1261, -1, -1, 1264, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, 171, -1, 1274, -1, 946, -1, -1, -1, 1280, + -1, -1, -1, -1, -1, -1, 186, -1, 1289, 1290, + 1291, 1292, 1293, 1294, -1, -1, -1, 171, 969, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 186, -1, 214, -1, -1, 918, 919, 219, + 220, 221, 222, 223, 224, 225, 927, 928, 929, 930, + 931, 932, -1, 233, -1, -1, 8, -1, -1, -1, + 214, 13, -1, -1, -1, 219, 220, 221, 222, 223, + 224, 225, -1, -1, 1355, -1, -1, -1, -1, 233, + -1, -1, -1, 964, -1, -1, 967, -1, -1, -1, + -1, -1, -1, -1, -1, 976, 977, 978, 979, 980, + 981, -1, -1, -1, 985, -1, -1, -1, -1, 61, + -1, -1, -1, -1, 1395, 67, -1, -1, -1, -1, + -1, -1, -1, 75, 1405, -1, -1, -1, -1, -1, + 1411, -1, 1413, -1, 86, -1, 8, -1, 10, -1, + -1, 13, 94, -1, -1, -1, -1, -1, -1, -1, + -1, 1432, -1, -1, -1, -1, -1, -1, -1, -1, + 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, 1049, 1450, + 1051, 1052, 1053, 1054, 1055, 1056, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 61, + -1, 1142, 1143, 1144, 1075, 67, -1, -1, -1, -1, + -1, -1, -1, 75, -1, -1, -1, 1488, -1, -1, + -1, -1, -1, -1, 86, -1, -1, -1, 1169, 171, + -1, -1, 94, -1, 1505, -1, -1, -1, 1179, 1180, + 1181, 1512, -1, 1514, 186, -1, -1, 8, -1, -1, + -1, -1, 13, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 8, -1, -1, -1, -1, 13, -1, + -1, -1, 214, -1, -1, -1, -1, 219, 220, 221, + 222, 223, 224, 225, -1, -1, -1, 8, -1, -1, + 232, 233, 13, -1, -1, 1566, -1, 1568, -1, -1, + 61, -1, -1, -1, 1575, -1, 67, -1, -1, 171, + -1, -1, -1, -1, 75, -1, 61, -1, -1, -1, + -1, -1, 67, -1, 186, 86, 1197, 1198, -1, -1, + 75, -1, -1, 94, -1, -1, -1, -1, -1, -1, + 61, 86, -1, -1, -1, -1, 67, -1, -1, 94, + -1, -1, 214, -1, 75, -1, -1, 219, 220, 221, + 222, 223, 224, 225, -1, 86, -1, -1, -1, -1, + -1, 233, -1, -1, -1, -1, 1247, -1, 8, -1, + -1, -1, -1, 13, 1255, 1256, -1, -1, 1259, -1, + 1261, -1, -1, 1264, 1265, 1266, 1267, 1268, 1269, 1270, + 1271, -1, -1, 1274, -1, -1, -1, -1, -1, 1280, + 171, -1, -1, -1, -1, -1, -1, -1, 1289, 1290, + 1291, 1292, 1293, 1294, -1, 186, 171, -1, -1, -1, + -1, 61, -1, -1, -1, -1, -1, 67, -1, -1, + -1, 186, -1, -1, -1, 75, -1, -1, 1389, -1, + 171, -1, -1, 214, -1, -1, 86, -1, 219, 220, + 221, 222, 223, 224, 225, 186, -1, -1, -1, 214, + -1, -1, 233, -1, 219, 220, 221, 222, 223, 224, + 225, -1, -1, -1, 1355, -1, -1, -1, 233, -1, + -1, -1, -1, 214, -1, -1, -1, -1, 219, 220, + 221, 222, 223, 224, 225, -1, -1, -1, -1, -1, + -1, -1, 233, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1395, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1405, -1, -1, -1, -1, -1, + 1411, 171, 1413, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 186, -1, -1, -1, + -1, 1432, -1, -1, -1, -1, -1, -1, -1, -1, + 1441, 1442, 1443, 1444, 1445, 1446, 1447, 1448, -1, 1450, + -1, -1, -1, -1, 214, -1, -1, -1, -1, 219, + 220, 221, 222, 223, 224, 225, -1, -1, -1, -1, + -1, -1, -1, 233, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 1488, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 1505, -1, -1, -1, -1, -1, + -1, 1512, -1, 1514, -1, 3, 4, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, 17, + 18, 19, 20, 1604, -1, 23, -1, -1, -1, -1, + -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, + -1, -1, 1623, -1, -1, 43, -1, -1, -1, -1, + 48, 49, 50, -1, 52, 1566, -1, 1568, -1, -1, + -1, -1, 60, -1, 1575, 63, -1, 65, -1, -1, + -1, -1, 70, 71, -1, -1, -1, 1658, -1, 77, + 78, 79, -1, 81, -1, 83, 84, -1, 86, 87, + 88, 89, 90, -1, 92, 93, -1, -1, -1, -1, + 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, + -1, -1, -1, 111, 112, -1, -1, 115, -1, -1, + 118, 119, 120, 121, -1, -1, -1, 125, 126, -1, + -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, + 148, 149, -1, 151, -1, -1, 154, 155, 156, 157, + 158, -1, 160, 161, -1, -1, 164, 165, 166, 167, + 168, 169, 170, 171, 172, -1, -1, 175, -1, 177, + 178, -1, 180, 181, 182, -1, 184, -1, 186, 187, + 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, + 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + -1, -1, -1, -1, -1, 223, 224, -1, 226, 227, + 228, 3, 4, -1, -1, -1, -1, 235, 236, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, - 1546, 63, 1548, 65, -1, -1, -1, 69, 70, 1555, - -1, -1, -1, 75, 76, 77, -1, 79, -1, 81, - 82, -1, 84, 85, 86, 87, 88, -1, 90, 91, - -1, -1, -1, -1, 96, -1, -1, 99, 100, -1, - -1, 103, -1, 105, -1, -1, -1, 109, 110, -1, - -1, 113, -1, -1, 116, 117, 118, 119, -1, -1, - -1, 123, 124, -1, -1, -1, 128, -1, -1, 131, - -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, - -1, 143, 144, -1, 146, 147, -1, 149, -1, -1, - 152, 153, 154, 155, 156, -1, 158, 159, -1, -1, - 162, 163, 164, 165, 166, 167, 168, 169, 170, -1, - -1, 173, -1, 175, 176, -1, 178, 179, 180, -1, - 182, -1, 184, 185, 186, 187, 188, 189, 190, -1, - 192, 193, 194, 195, 196, 197, -1, 199, 200, 201, - 202, 203, -1, -1, -1, 207, -1, 209, 210, 211, - 212, 213, 214, 215, -1, -1, -1, -1, -1, 221, - 222, -1, 224, 225, 226, 3, 4, -1, -1, -1, - -1, 233, 234, -1, -1, -1, -1, -1, -1, 17, - 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, - -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, - -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, - 48, 49, 50, -1, 52, -1, -1, -1, -1, -1, - -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, - -1, 69, 70, -1, -1, -1, -1, 75, 76, 77, - -1, 79, -1, 81, 82, -1, 84, 85, 86, 87, - 88, -1, 90, 91, -1, -1, -1, -1, 96, -1, - -1, 99, 100, -1, -1, 103, -1, 105, -1, -1, - -1, 109, 110, -1, -1, 113, -1, -1, 116, 117, - 118, 119, -1, -1, -1, 123, 124, -1, -1, -1, - 128, -1, -1, 131, -1, -1, -1, -1, -1, -1, - 138, 139, 140, 141, -1, 143, 144, -1, 146, 147, - -1, 149, -1, -1, 152, 153, 154, 155, 156, -1, - 158, 159, -1, -1, 162, 163, 164, 165, 166, 167, - 168, 169, 170, -1, -1, 173, -1, 175, 176, -1, - 178, 179, 180, -1, 182, -1, 184, 185, 186, 187, - 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, - -1, 199, 200, 201, 202, 203, -1, -1, -1, 207, - -1, 209, 210, 211, 212, 213, 214, 215, -1, -1, - -1, -1, -1, 221, 3, 4, 224, 225, 226, -1, - -1, -1, -1, -1, -1, 233, 234, -1, 17, 18, - 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, - -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, - -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, - 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, - 69, 70, -1, -1, -1, -1, 75, 76, 77, -1, - 79, -1, 81, 82, -1, 84, 85, 86, 87, 88, - -1, 90, 91, -1, -1, -1, -1, 96, -1, -1, - 99, 100, -1, -1, 103, -1, 105, -1, -1, -1, - 109, 110, -1, -1, 113, -1, -1, 116, 117, 118, - 119, -1, -1, -1, 123, 124, -1, -1, -1, 128, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 139, 140, 141, -1, 143, 144, -1, 146, 147, -1, - 149, -1, -1, 152, 153, 154, 155, 156, -1, 158, - 159, -1, -1, 162, 163, 164, 165, 166, 167, 168, - 169, 170, -1, -1, 173, -1, 175, 176, -1, 178, - 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, - 189, 190, -1, 192, 193, 194, 195, 196, 197, -1, - 199, 200, 201, 202, 203, -1, -1, -1, 207, -1, - 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, - -1, -1, 221, 3, 4, 224, 225, 226, -1, -1, - -1, -1, -1, -1, 233, 234, -1, -1, 18, 19, + -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, + -1, 83, 84, -1, 86, 87, 88, 89, 90, -1, + 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, + -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, + -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, -1, -1, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, + 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, + -1, 223, 3, 4, 226, 227, 228, -1, -1, -1, + -1, -1, -1, 235, 236, -1, 17, 18, 19, 20, + -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, + -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 81, -1, 83, 84, -1, 86, 87, 88, 89, 90, + -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, + 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, + 111, 112, -1, -1, 115, -1, -1, 118, 119, 120, + 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, + -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, + 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, + 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, + 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, + 171, 172, -1, -1, 175, -1, 177, 178, -1, 180, + 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, + 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, + 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, + -1, -1, 223, 3, 4, 226, 227, 228, -1, -1, + -1, -1, -1, -1, 235, 236, -1, -1, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, -1, 65, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, 79, - -1, 81, 82, -1, -1, -1, -1, 87, 88, -1, - 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, -1, -1, -1, 116, 117, 118, 119, - -1, -1, -1, -1, 124, -1, -1, -1, 128, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 139, - 140, 141, -1, 143, 144, -1, 146, 147, -1, 149, - -1, -1, 152, 153, 154, 155, 156, -1, 158, 159, - -1, -1, 162, 163, 164, 165, 166, 167, 168, 169, - 170, -1, -1, 173, -1, 175, 176, -1, -1, 179, - 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, - 190, -1, 192, 193, 194, 195, 196, 197, -1, 199, - 200, 201, 202, 203, -1, -1, -1, 207, -1, 209, - 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, - -1, 221, 3, 4, 224, 225, 226, -1, -1, -1, - -1, -1, -1, 233, 234, -1, -1, 18, 19, 20, + 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, + -1, 81, -1, 83, 84, -1, -1, -1, -1, 89, + 90, -1, 92, 93, -1, -1, -1, -1, -1, -1, + -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, + -1, 111, 112, -1, -1, -1, -1, -1, 118, 119, + 120, 121, -1, -1, -1, -1, 126, -1, -1, -1, + 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, + 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, + -1, 151, -1, -1, 154, 155, 156, 157, 158, -1, + 160, 161, -1, -1, 164, 165, 166, 167, 168, 169, + 170, 171, 172, -1, -1, 175, -1, 177, 178, -1, + -1, 181, 182, -1, 184, -1, 186, 187, 188, 189, + 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, + -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, + -1, -1, -1, 223, 3, 4, 226, 227, 228, -1, + -1, -1, -1, -1, -1, 235, 236, -1, -1, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, + -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, + -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, 81, -1, 83, 84, -1, 86, -1, 88, + 89, 90, -1, 92, 93, -1, -1, -1, -1, -1, + -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, + -1, -1, 111, 112, -1, -1, -1, -1, -1, 118, + 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, + -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, + -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, + 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, + -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, + 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, + -1, -1, 181, 182, -1, 184, -1, 186, 187, 188, + 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, + 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, + -1, -1, 3, 4, 223, -1, -1, 226, 227, 228, + -1, -1, -1, -1, -1, -1, 235, 236, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, -1, -1, - -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, + -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, -1, 65, -1, -1, -1, 69, 70, - -1, -1, -1, -1, 75, 76, 77, -1, 79, -1, - 81, 82, -1, 84, -1, 86, 87, 88, -1, 90, - 91, -1, -1, -1, -1, -1, -1, -1, 99, 100, - -1, -1, 103, -1, 105, -1, -1, -1, 109, 110, - -1, -1, -1, -1, -1, 116, 117, 118, 119, -1, - -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 139, 140, - 141, -1, 143, 144, -1, 146, 147, -1, 149, -1, - -1, 152, 153, 154, 155, 156, -1, 158, 159, -1, - -1, 162, 163, 164, 165, 166, 167, 168, 169, 170, - -1, -1, 173, -1, 175, 176, -1, -1, 179, 180, - -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, - -1, 192, 193, 194, 195, 196, 197, -1, 199, 200, - 201, 202, 203, -1, -1, -1, 207, -1, 209, 210, - 211, 212, 213, 214, 215, -1, -1, -1, -1, -1, - 221, -1, -1, 224, 225, 226, 3, 4, -1, -1, - -1, -1, 233, 234, -1, -1, -1, 14, -1, -1, - 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, - -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, - 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, - -1, 48, 49, 50, -1, 52, -1, -1, 55, -1, - -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, - -1, -1, 69, 70, 71, -1, -1, -1, 75, 76, - 77, -1, 79, -1, 81, 82, -1, 84, 85, 86, - 87, 88, -1, 90, 91, -1, -1, -1, -1, 96, - -1, -1, 99, 100, -1, -1, 103, -1, 105, -1, - -1, -1, 109, 110, -1, -1, 113, -1, -1, 116, - 117, 118, 119, -1, 121, -1, 123, 124, -1, -1, - -1, 128, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 139, 140, 141, -1, 143, 144, -1, 146, - 147, -1, 149, -1, -1, 152, 153, 154, 155, 156, - -1, 158, 159, -1, -1, 162, 163, 164, 165, 166, - 167, 168, 169, 170, -1, -1, 173, -1, 175, 176, - -1, 178, 179, 180, -1, 182, -1, 184, 185, 186, - 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, - 197, -1, 199, 200, 201, 202, 203, -1, -1, -1, - 207, -1, 209, 210, 211, 212, 213, 214, 215, -1, - -1, -1, -1, -1, 221, -1, -1, 224, 225, 226, - 3, 4, -1, -1, -1, -1, 233, -1, -1, -1, - -1, 14, -1, -1, 17, 18, 19, 20, -1, -1, - 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, - 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, - 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, - -1, -1, 55, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, -1, -1, -1, 69, 70, 71, -1, - -1, -1, 75, 76, 77, -1, 79, -1, 81, 82, - -1, 84, 85, 86, 87, 88, -1, 90, 91, -1, - -1, -1, -1, 96, -1, -1, 99, 100, -1, -1, - 103, -1, 105, -1, -1, -1, 109, 110, -1, -1, - 113, -1, -1, 116, 117, 118, 119, -1, 121, -1, - 123, 124, -1, -1, -1, 128, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, - 143, 144, -1, 146, 147, -1, 149, -1, -1, 152, - 153, 154, 155, 156, -1, 158, 159, -1, -1, 162, - 163, 164, 165, 166, 167, 168, 169, 170, -1, -1, - 173, -1, 175, 176, -1, 178, 179, 180, -1, 182, - -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, - 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, - 203, -1, -1, -1, 207, -1, 209, 210, 211, 212, - 213, 214, 215, -1, -1, -1, -1, -1, 221, -1, - -1, 224, 225, 226, 3, 4, -1, -1, -1, -1, - 233, -1, -1, -1, -1, 14, -1, -1, 17, 18, + -1, -1, 63, -1, -1, -1, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 81, -1, 83, 84, -1, -1, -1, -1, 89, 90, + -1, 92, 93, -1, -1, -1, -1, -1, -1, -1, + 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, + 111, 112, -1, -1, -1, -1, -1, 118, 119, 120, + 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, + 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, + 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, + 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, + 171, 172, -1, -1, 175, -1, 177, 178, -1, -1, + 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, + 191, 192, -1, 194, 195, 196, 197, 198, 3, 4, + 201, 202, 203, 204, 205, -1, -1, -1, 209, 14, + 211, 212, 17, 18, 19, 20, -1, -1, 23, -1, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + -1, 36, 37, -1, -1, 236, -1, -1, 43, -1, + -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, + 55, -1, -1, -1, -1, 60, -1, -1, 63, -1, + 65, -1, -1, -1, -1, 70, 71, 72, -1, -1, + -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, + -1, 86, 87, 88, 89, 90, -1, 92, 93, -1, + -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, + 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, + 115, -1, -1, 118, 119, 120, 121, -1, 123, -1, + 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, + -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, + 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, + 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, + 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, + 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, + -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, + 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, + 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, -1, -1, -1, -1, -1, 223, -1, + -1, 226, 227, 228, 3, 4, -1, -1, -1, -1, + 235, -1, -1, -1, -1, 14, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, 55, -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, - 69, 70, 71, -1, -1, -1, 75, 76, 77, -1, - 79, -1, 81, 82, -1, 84, 85, 86, 87, 88, - -1, 90, 91, -1, -1, -1, -1, 96, -1, -1, - 99, 100, -1, -1, 103, -1, 105, -1, -1, -1, - 109, 110, -1, -1, 113, -1, -1, 116, 117, 118, - 119, -1, 121, -1, 123, 124, -1, -1, -1, 128, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 139, 140, 141, -1, 143, 144, -1, 146, 147, -1, - 149, -1, -1, 152, 153, 154, 155, 156, -1, 158, - 159, -1, -1, 162, 163, 164, 165, 166, 167, 168, - 169, 170, -1, -1, 173, -1, 175, 176, -1, 178, - 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, - 189, 190, -1, 192, 193, 194, 195, 196, 197, -1, - 199, 200, 201, 202, 203, -1, -1, -1, 207, -1, - 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, - -1, -1, 221, 3, 4, 224, 225, 226, -1, -1, - -1, -1, -1, -1, 233, -1, -1, 17, 18, 19, - 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, - 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, - -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, - 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, -1, 65, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, 79, - -1, 81, 82, -1, 84, 85, 86, 87, 88, -1, - 90, 91, -1, -1, -1, -1, 96, -1, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, 113, -1, -1, 116, 117, 118, 119, - -1, -1, -1, 123, 124, -1, -1, -1, 128, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 139, - 140, 141, -1, 143, 144, -1, 146, 147, -1, 149, - -1, -1, 152, 153, 154, 155, 156, -1, 158, 159, - -1, -1, 162, 163, 164, 165, 166, 167, 168, 169, - 170, -1, -1, 173, -1, 175, 176, -1, 178, 179, - 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, - 190, -1, 192, 193, 194, 195, 196, 197, -1, 199, - 200, 201, 202, 203, -1, -1, -1, 207, -1, 209, - 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, - -1, 221, 222, -1, 224, 225, 226, -1, 3, 4, - -1, 6, -1, 233, 9, -1, -1, -1, -1, -1, + -1, 70, 71, 72, -1, -1, -1, -1, 77, 78, + 79, -1, 81, -1, 83, 84, -1, 86, 87, 88, + 89, 90, -1, 92, 93, -1, -1, -1, -1, 98, + -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, + -1, -1, 111, 112, -1, -1, 115, -1, -1, 118, + 119, 120, 121, -1, 123, -1, 125, 126, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, + -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, + 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, + -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, + 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, + -1, 180, 181, 182, -1, 184, -1, 186, 187, 188, + 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, + 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, + -1, -1, -1, -1, 223, -1, -1, 226, 227, 228, + 3, 4, -1, -1, -1, -1, 235, -1, -1, -1, + -1, 14, -1, -1, 17, 18, 19, 20, -1, -1, + 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, + 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, + -1, -1, 55, -1, -1, -1, -1, 60, -1, -1, + 63, -1, 65, -1, -1, -1, -1, 70, 71, 72, + -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, + 83, 84, -1, 86, 87, 88, 89, 90, -1, 92, + 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, + 123, -1, 125, 126, -1, -1, -1, 130, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, + 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, + 223, 3, 4, 226, 227, 228, -1, -1, -1, -1, + -1, -1, 235, -1, -1, 17, 18, 19, 20, -1, + -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, + 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, + -1, 83, 84, -1, 86, 87, 88, 89, 90, -1, + 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, + -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, + -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, -1, -1, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, + 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, + -1, 223, 224, -1, 226, 227, 228, -1, 3, 4, + -1, 6, -1, 235, 9, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, 69, 70, -1, -1, -1, -1, - 75, 76, 77, -1, 79, -1, 81, 82, -1, 84, - 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, - -1, 96, -1, -1, 99, 100, -1, -1, 103, -1, - 105, -1, -1, -1, 109, 110, -1, -1, 113, -1, - -1, 116, 117, 118, 119, -1, -1, -1, 123, 124, - -1, -1, -1, 128, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 139, 140, 141, -1, 143, 144, - -1, 146, 147, -1, 149, -1, -1, 152, 153, 154, - 155, 156, -1, 158, 159, -1, -1, 162, 163, 164, - 165, 166, 167, 168, 169, 170, -1, -1, 173, -1, - 175, 176, -1, 178, 179, 180, -1, 182, -1, 184, - 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, - 195, 196, 197, -1, 199, 200, 201, 202, 203, -1, - -1, -1, 207, -1, 209, 210, 211, 212, 213, 214, - 215, -1, -1, -1, -1, -1, 221, -1, -1, 224, - 225, 226, -1, 3, 4, -1, 6, -1, 233, 9, - -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, - 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, - 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, - -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, - 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, -1, 65, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, 79, - -1, 81, 82, -1, 84, 85, -1, 87, 88, -1, - 90, 91, -1, -1, -1, -1, 96, -1, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, 113, -1, -1, 116, 117, 118, 119, - -1, -1, -1, 123, 124, -1, -1, -1, 128, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 139, - 140, 141, -1, 143, 144, -1, 146, 147, -1, 149, - -1, -1, 152, 153, 154, 155, 156, -1, 158, 159, - -1, -1, 162, 163, 164, 165, 166, 167, 168, 169, - 170, -1, -1, 173, -1, 175, 176, -1, 178, 179, - 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, - 190, -1, 192, 193, 194, 195, 196, 197, -1, 199, - 200, 201, 202, 203, -1, -1, -1, 207, -1, 209, - 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, - -1, 221, -1, -1, 224, 225, 226, -1, 3, 4, - -1, 6, -1, 233, 9, -1, -1, -1, -1, -1, - -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, 69, 70, -1, -1, -1, -1, - 75, 76, 77, -1, 79, -1, 81, 82, -1, 84, - 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, - -1, 96, -1, -1, 99, 100, -1, -1, 103, -1, - 105, -1, -1, -1, 109, 110, -1, -1, 113, -1, - -1, 116, 117, 118, 119, -1, -1, -1, 123, 124, - -1, -1, -1, 128, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 139, 140, 141, -1, 143, 144, - -1, 146, 147, -1, 149, -1, -1, 152, 153, 154, - 155, 156, -1, 158, 159, -1, -1, 162, 163, 164, - 165, 166, 167, 168, 169, 170, -1, -1, 173, -1, - 175, 176, -1, 178, 179, 180, -1, 182, -1, 184, - 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, - 195, 196, 197, -1, 199, 200, 201, 202, 203, -1, - -1, -1, 207, -1, 209, 210, 211, 212, 213, 214, - 215, -1, -1, -1, -1, -1, 221, -1, -1, 224, - 225, 226, -1, 3, 4, -1, 6, -1, 233, 9, - -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, - 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, - 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, - -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, - 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, -1, 65, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, 79, - -1, 81, 82, -1, 84, 85, -1, 87, 88, -1, - 90, 91, -1, -1, -1, -1, 96, -1, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, 113, -1, -1, 116, 117, 118, 119, - -1, -1, -1, 123, 124, -1, -1, -1, 128, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 139, - 140, 141, -1, 143, 144, -1, 146, 147, -1, 149, - -1, -1, 152, 153, 154, 155, 156, -1, 158, 159, - -1, -1, 162, 163, 164, 165, 166, 167, 168, 169, - 170, -1, -1, 173, -1, 175, 176, -1, 178, 179, - 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, - 190, -1, 192, 193, 194, 195, 196, 197, -1, 199, - 200, 201, 202, 203, -1, -1, -1, 207, -1, 209, - 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, - -1, 221, -1, -1, 224, 225, 226, -1, 3, 4, - -1, 6, -1, 233, 9, -1, -1, -1, -1, -1, - -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, 69, 70, -1, -1, -1, -1, - 75, 76, 77, -1, 79, -1, 81, 82, -1, 84, - 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, - -1, 96, -1, -1, 99, 100, -1, -1, 103, -1, - 105, -1, -1, -1, 109, 110, -1, -1, 113, -1, - -1, 116, 117, 118, 119, -1, -1, -1, 123, 124, - -1, -1, -1, 128, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 139, 140, 141, -1, 143, 144, - -1, 146, 147, -1, 149, -1, -1, 152, 153, 154, - 155, 156, -1, 158, 159, -1, -1, 162, 163, 164, - 165, 166, 167, 168, 169, 170, -1, -1, 173, -1, - 175, 176, -1, 178, 179, 180, -1, 182, -1, 184, - 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, - 195, 196, 197, -1, 199, 200, 201, 202, 203, -1, - -1, -1, 207, -1, 209, 210, 211, 212, 213, 214, - 215, -1, -1, -1, -1, -1, 221, -1, -1, 224, - 225, 226, -1, 3, 4, -1, 6, -1, 233, 9, - -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, - 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, - 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, - -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, - 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, -1, 65, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, 79, - -1, 81, 82, -1, 84, 85, -1, 87, 88, -1, - 90, 91, -1, -1, -1, -1, 96, -1, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, 113, -1, -1, 116, 117, 118, 119, - -1, -1, -1, 123, 124, -1, -1, -1, 128, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, 139, - 140, 141, -1, 143, 144, -1, 146, 147, -1, 149, - -1, -1, 152, 153, 154, 155, 156, -1, 158, 159, - -1, -1, 162, 163, 164, 165, 166, 167, 168, 169, - 170, -1, -1, 173, -1, 175, 176, -1, 178, 179, - 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, - 190, -1, 192, 193, 194, 195, 196, 197, -1, 199, - 200, 201, 202, 203, -1, -1, -1, 207, -1, 209, - 210, 211, 212, 213, 214, 215, -1, -1, -1, -1, - -1, 221, -1, -1, 224, 225, 226, -1, 3, 4, - -1, 6, -1, 233, 9, -1, -1, -1, -1, -1, - -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, 69, 70, -1, -1, -1, -1, - 75, 76, 77, -1, 79, -1, 81, 82, -1, 84, - 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, - -1, 96, -1, -1, 99, 100, -1, -1, 103, -1, - 105, -1, -1, -1, 109, 110, -1, -1, 113, -1, - -1, 116, 117, 118, 119, -1, -1, -1, 123, 124, - -1, -1, -1, 128, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 139, 140, 141, -1, 143, 144, - -1, 146, 147, -1, 149, -1, -1, 152, 153, 154, - 155, 156, -1, 158, 159, -1, -1, 162, 163, 164, - 165, 166, 167, 168, 169, 170, -1, -1, 173, -1, - 175, 176, -1, 178, 179, 180, -1, 182, -1, 184, - 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, - 195, 196, 197, -1, 199, 200, 201, 202, 203, -1, - -1, -1, 207, -1, 209, 210, 211, 212, 213, 214, - 215, -1, -1, -1, -1, -1, 221, 3, 4, 224, - 225, 226, -1, -1, -1, -1, -1, -1, 233, -1, - -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, - -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, - 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, - -1, -1, 48, 49, 50, -1, 52, -1, -1, 55, - -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, - -1, -1, -1, 69, 70, -1, -1, -1, -1, 75, - 76, 77, -1, 79, -1, 81, 82, -1, 84, 85, - 86, 87, 88, -1, 90, 91, -1, -1, -1, -1, - 96, -1, -1, 99, 100, -1, -1, 103, -1, 105, - -1, -1, -1, 109, 110, -1, -1, 113, -1, -1, - 116, 117, 118, 119, -1, -1, -1, 123, 124, -1, - -1, -1, 128, -1, -1, 131, -1, -1, -1, -1, - -1, -1, 138, 139, 140, 141, -1, 143, 144, -1, - 146, 147, -1, 149, -1, -1, 152, 153, 154, 155, - 156, -1, 158, 159, -1, -1, 162, 163, 164, 165, - 166, 167, 168, 169, 170, -1, -1, 173, -1, 175, - 176, -1, 178, 179, 180, -1, 182, -1, 184, 185, - 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, - 196, 197, -1, 199, 200, 201, 202, 203, -1, -1, - -1, 207, -1, 209, 210, 211, 212, 213, 214, 215, - -1, -1, -1, -1, -1, 221, 3, 4, 224, 225, - 226, -1, -1, -1, -1, -1, -1, 233, -1, -1, - 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, - -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, - 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, - -1, 48, 49, 50, -1, 52, -1, -1, -1, -1, - -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, - -1, -1, 69, 70, -1, -1, -1, -1, 75, 76, - 77, -1, 79, -1, 81, 82, -1, 84, 85, 86, - 87, 88, -1, 90, 91, -1, -1, -1, -1, 96, - -1, -1, 99, 100, -1, -1, 103, -1, 105, -1, - -1, -1, 109, 110, 111, -1, 113, -1, -1, 116, - 117, 118, 119, -1, -1, -1, 123, 124, -1, -1, - -1, 128, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 139, 140, 141, -1, 143, 144, -1, 146, - 147, -1, 149, -1, -1, 152, 153, 154, 155, 156, - -1, 158, 159, -1, -1, 162, 163, 164, 165, 166, - 167, 168, 169, 170, -1, -1, 173, -1, 175, 176, - -1, 178, 179, 180, -1, 182, -1, 184, 185, 186, - 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, - 197, -1, 199, 200, 201, 202, 203, -1, -1, -1, - 207, -1, 209, 210, 211, 212, 213, 214, 215, -1, - -1, -1, -1, -1, 221, 3, 4, 224, 225, 226, - -1, -1, -1, -1, -1, -1, 233, -1, -1, 17, + 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, + -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, + -1, 86, 87, -1, 89, 90, -1, 92, 93, -1, + -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, + 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, + 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, + 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, + -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, + 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, + 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, + 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, + 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, + -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, + 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, + 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, -1, -1, -1, -1, -1, 223, -1, + -1, 226, 227, 228, -1, 3, 4, -1, 6, -1, + 235, 9, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, -1, - -1, 69, 70, -1, -1, -1, -1, 75, 76, 77, - -1, 79, -1, 81, 82, -1, 84, 85, 86, 87, - 88, -1, 90, 91, -1, -1, -1, -1, 96, -1, - -1, 99, 100, -1, -1, 103, -1, 105, -1, -1, - -1, 109, 110, -1, -1, 113, -1, -1, 116, 117, - 118, 119, -1, -1, -1, 123, 124, -1, -1, -1, - 128, -1, -1, 131, -1, -1, -1, -1, -1, -1, - 138, 139, 140, 141, -1, 143, 144, -1, 146, 147, - -1, 149, -1, -1, 152, 153, 154, 155, 156, -1, - 158, 159, -1, -1, 162, 163, 164, 165, 166, 167, - 168, 169, 170, -1, -1, 173, -1, 175, 176, -1, - 178, 179, 180, -1, 182, -1, 184, 185, 186, 187, - 188, 189, 190, -1, 192, 193, 194, 195, 196, 197, - -1, 199, 200, 201, 202, 203, -1, -1, -1, 207, - -1, 209, 210, 211, 212, 213, 214, 215, -1, -1, - -1, -1, -1, 221, -1, -1, 224, 225, 226, -1, - 3, 4, -1, 6, -1, 233, 9, -1, -1, -1, + -1, -1, 70, 71, -1, -1, -1, -1, -1, 77, + 78, 79, -1, 81, -1, 83, 84, -1, 86, 87, + -1, 89, 90, -1, 92, 93, -1, -1, -1, -1, + 98, -1, -1, 101, 102, -1, -1, 105, -1, 107, + -1, -1, -1, 111, 112, -1, -1, 115, -1, -1, + 118, 119, 120, 121, -1, -1, -1, 125, 126, -1, + -1, -1, 130, -1, -1, 133, -1, -1, -1, -1, + -1, -1, 140, 141, 142, 143, -1, 145, 146, -1, + 148, 149, -1, 151, -1, -1, 154, 155, 156, 157, + 158, -1, 160, 161, -1, -1, 164, 165, 166, 167, + 168, 169, 170, 171, 172, -1, -1, 175, -1, 177, + 178, -1, 180, 181, 182, -1, 184, -1, 186, 187, + 188, 189, 190, 191, 192, -1, 194, 195, 196, 197, + 198, 199, -1, 201, 202, 203, 204, 205, -1, -1, + -1, 209, -1, 211, 212, 213, 214, 215, 216, 217, + -1, -1, -1, -1, -1, 223, -1, -1, 226, 227, + 228, -1, 3, 4, -1, 6, -1, 235, 9, -1, + -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, + -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, + -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 81, -1, 83, 84, -1, 86, 87, -1, 89, 90, + -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, + 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, + 111, 112, -1, -1, 115, -1, -1, 118, 119, 120, + 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, + -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, + 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, + 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, + 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, + 171, 172, -1, -1, 175, -1, 177, 178, -1, 180, + 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, + 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, + 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, + -1, -1, 223, -1, -1, 226, 227, 228, -1, 3, + 4, -1, 6, -1, 235, 9, -1, -1, -1, -1, + -1, -1, -1, 17, 18, 19, 20, -1, -1, 23, + -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, + 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, + -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, + -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, + -1, 65, -1, -1, -1, -1, 70, 71, -1, -1, + -1, -1, -1, 77, 78, 79, -1, 81, -1, 83, + 84, -1, 86, 87, -1, 89, 90, -1, 92, 93, + -1, -1, -1, -1, 98, -1, -1, 101, 102, -1, + -1, 105, -1, 107, -1, -1, -1, 111, 112, -1, + -1, 115, -1, -1, 118, 119, 120, 121, -1, -1, + -1, 125, 126, -1, -1, -1, 130, -1, -1, 133, + -1, -1, -1, -1, -1, -1, 140, 141, 142, 143, + -1, 145, 146, -1, 148, 149, -1, 151, -1, -1, + 154, 155, 156, 157, 158, -1, 160, 161, -1, -1, + 164, 165, 166, 167, 168, 169, 170, 171, 172, -1, + -1, 175, -1, 177, 178, -1, 180, 181, 182, -1, + 184, -1, 186, 187, 188, 189, 190, 191, 192, -1, + 194, 195, 196, 197, 198, 199, -1, 201, 202, 203, + 204, 205, -1, -1, -1, 209, -1, 211, 212, 213, + 214, 215, 216, 217, -1, -1, -1, -1, -1, 223, + -1, -1, 226, 227, 228, -1, 3, 4, -1, 6, + -1, 235, 9, -1, -1, -1, -1, -1, -1, -1, + 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, + -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, + 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, + -1, 48, 49, 50, -1, 52, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, 81, -1, 83, 84, -1, 86, + 87, -1, 89, 90, -1, 92, 93, -1, -1, -1, + -1, 98, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, 115, -1, + -1, 118, 119, 120, 121, -1, -1, -1, 125, 126, + -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, -1, -1, 175, -1, + 177, 178, -1, 180, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, + -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, + 217, -1, -1, -1, -1, -1, 223, -1, -1, 226, + 227, 228, -1, 3, 4, -1, 6, -1, 235, 9, + -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, + 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, + -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, + 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, + 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, + -1, 81, -1, 83, 84, -1, 86, 87, -1, 89, + 90, -1, 92, 93, -1, -1, -1, -1, 98, -1, + -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, + -1, 111, 112, -1, -1, 115, -1, -1, 118, 119, + 120, 121, -1, -1, -1, 125, 126, -1, -1, -1, + 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, + 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, + -1, 151, -1, -1, 154, 155, 156, 157, 158, -1, + 160, 161, -1, -1, 164, 165, 166, 167, 168, 169, + 170, 171, 172, -1, -1, 175, -1, 177, 178, -1, + 180, 181, 182, -1, 184, -1, 186, 187, 188, 189, + 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, + -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, + -1, -1, -1, 223, -1, -1, 226, 227, 228, -1, + 3, 4, -1, 6, -1, 235, 9, -1, -1, -1, -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, -1, -1, -1, 69, 70, -1, -1, - -1, -1, 75, 76, 77, -1, 79, -1, 81, 82, - -1, -1, 85, -1, 87, 88, -1, 90, 91, -1, - -1, -1, -1, 96, -1, -1, 99, 100, -1, -1, - 103, -1, 105, -1, -1, -1, 109, 110, -1, -1, - 113, -1, -1, 116, 117, 118, 119, -1, -1, -1, - 123, 124, -1, -1, -1, 128, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, - 143, 144, -1, 146, 147, -1, 149, -1, -1, 152, - 153, 154, 155, 156, -1, 158, 159, -1, -1, 162, - 163, 164, 165, 166, 167, 168, 169, 170, -1, -1, - 173, -1, 175, 176, -1, 178, 179, 180, -1, 182, - -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, - 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, - 203, -1, -1, -1, 207, -1, 209, 210, 211, 212, - 213, 214, 215, -1, -1, -1, -1, -1, 221, 3, - 4, 224, 225, 226, -1, -1, -1, -1, -1, -1, - 233, -1, -1, 17, 18, 19, 20, -1, -1, 23, - -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, - 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, - -1, -1, -1, -1, 48, 49, 50, -1, 52, -1, - -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, - -1, 65, -1, -1, -1, 69, 70, -1, -1, -1, - -1, 75, 76, 77, -1, 79, -1, 81, 82, -1, - 84, 85, -1, 87, 88, -1, 90, 91, -1, -1, - -1, -1, 96, -1, -1, 99, 100, -1, -1, 103, - -1, 105, -1, -1, -1, 109, 110, 111, -1, 113, - -1, -1, 116, 117, 118, 119, -1, -1, -1, 123, - 124, -1, -1, -1, 128, -1, -1, 131, -1, -1, - -1, -1, -1, -1, 138, 139, 140, 141, -1, 143, - 144, -1, 146, 147, -1, 149, -1, -1, 152, 153, - 154, 155, 156, -1, 158, 159, -1, -1, 162, 163, - 164, 165, 166, 167, 168, 169, 170, -1, -1, 173, - -1, 175, 176, -1, 178, 179, 180, -1, 182, -1, - 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, - 194, 195, 196, 197, -1, 199, 200, 201, 202, 203, - -1, -1, -1, 207, -1, 209, 210, 211, 212, 213, - 214, 215, -1, -1, -1, -1, -1, 221, 3, 4, - 224, 225, 226, -1, -1, -1, -1, -1, -1, 233, - -1, -1, 17, 18, 19, 20, -1, -1, 23, -1, - -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, - -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, 48, 49, 50, -1, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, 69, 70, -1, -1, -1, -1, - 75, 76, 77, -1, 79, -1, 81, 82, -1, 84, - 85, -1, 87, 88, -1, 90, 91, -1, -1, -1, - -1, 96, -1, -1, 99, 100, -1, -1, 103, -1, - 105, -1, -1, -1, 109, 110, -1, -1, 113, -1, - -1, 116, 117, 118, 119, -1, -1, -1, 123, 124, - -1, -1, -1, 128, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 139, 140, 141, -1, 143, 144, - -1, 146, 147, -1, 149, -1, -1, 152, 153, 154, - 155, 156, -1, 158, 159, -1, -1, 162, 163, 164, - 165, 166, 167, 168, 169, 170, -1, -1, 173, -1, - 175, 176, -1, 178, 179, 180, -1, 182, -1, 184, - 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, - 195, 196, 197, -1, 199, 200, 201, 202, 203, -1, - -1, -1, 207, -1, 209, 210, 211, 212, 213, 214, - 215, -1, -1, -1, 3, 4, 221, -1, -1, 224, - 225, 226, -1, -1, -1, -1, -1, -1, 233, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, - -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, - -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, - 69, 70, -1, -1, -1, -1, 75, 76, 77, -1, - 79, -1, 81, 82, -1, -1, -1, -1, 87, 88, - -1, 90, 91, -1, -1, -1, -1, 96, -1, -1, - 99, 100, -1, -1, 103, -1, 105, -1, -1, -1, - 109, 110, -1, -1, 113, -1, -1, 116, 117, 118, - 119, -1, -1, -1, 123, 124, -1, -1, -1, 128, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 139, 140, 141, -1, 143, 144, -1, 146, 147, -1, - 149, -1, -1, 152, 153, 154, 155, 156, -1, 158, - 159, -1, -1, 162, 163, 164, 165, 166, 167, 168, - 169, 170, -1, -1, 173, -1, 175, 176, -1, 178, - 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, - 189, 190, -1, 192, 193, 194, 195, 196, 197, -1, - 199, 200, 201, 202, 203, -1, -1, -1, 207, -1, - 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, - 3, 4, 221, -1, -1, 224, 225, 226, -1, -1, - -1, -1, -1, -1, 233, 18, 19, 20, -1, -1, + 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, + 83, 84, -1, 86, 87, -1, 89, 90, -1, 92, + 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, + -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, + 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, + 223, 3, 4, 226, 227, 228, -1, -1, -1, -1, + -1, -1, 235, -1, -1, 17, 18, 19, 20, -1, + -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, + 52, -1, -1, 55, -1, -1, -1, -1, 60, -1, + -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, + -1, 83, 84, -1, 86, 87, 88, 89, 90, -1, + 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, 115, -1, -1, 118, 119, 120, 121, + -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, + -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, -1, -1, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, + 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, + -1, 223, 3, 4, 226, 227, 228, -1, -1, -1, + -1, -1, -1, 235, -1, -1, 17, 18, 19, 20, + -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, + -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 81, -1, 83, 84, -1, 86, 87, 88, 89, 90, + -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, + 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, + 111, 112, 113, -1, 115, -1, -1, 118, 119, 120, + 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, + -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, + 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, + 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, + 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, + 171, 172, -1, -1, 175, -1, 177, 178, -1, 180, + 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, + 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, + 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, + -1, -1, 223, 3, 4, 226, 227, 228, -1, -1, + -1, -1, -1, -1, 235, -1, -1, 17, 18, 19, + 20, -1, -1, 23, -1, -1, -1, -1, -1, -1, + 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, + -1, -1, -1, 43, -1, -1, -1, -1, 48, 49, + 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, + 60, -1, -1, 63, -1, 65, -1, -1, -1, -1, + 70, 71, -1, -1, -1, -1, -1, 77, 78, 79, + -1, 81, -1, 83, 84, -1, 86, 87, 88, 89, + 90, -1, 92, 93, -1, -1, -1, -1, 98, -1, + -1, 101, 102, -1, -1, 105, -1, 107, -1, -1, + -1, 111, 112, -1, -1, 115, -1, -1, 118, 119, + 120, 121, -1, -1, -1, 125, 126, -1, -1, -1, + 130, -1, -1, 133, -1, -1, -1, -1, -1, -1, + 140, 141, 142, 143, -1, 145, 146, -1, 148, 149, + -1, 151, -1, -1, 154, 155, 156, 157, 158, -1, + 160, 161, -1, -1, 164, 165, 166, 167, 168, 169, + 170, 171, 172, -1, -1, 175, -1, 177, 178, -1, + 180, 181, 182, -1, 184, -1, 186, 187, 188, 189, + 190, 191, 192, -1, 194, 195, 196, 197, 198, 199, + -1, 201, 202, 203, 204, 205, -1, -1, -1, 209, + -1, 211, 212, 213, 214, 215, 216, 217, -1, -1, + -1, -1, -1, 223, -1, -1, 226, 227, 228, -1, + 3, 4, -1, 6, -1, 235, 9, -1, -1, -1, + -1, -1, -1, -1, 17, 18, 19, 20, -1, -1, + 23, -1, -1, -1, -1, -1, -1, 30, 31, 32, + 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, + 43, -1, -1, -1, -1, 48, 49, 50, -1, 52, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, + 83, 84, -1, -1, 87, -1, 89, 90, -1, 92, + 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, + -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, + 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, -1, -1, -1, -1, -1, + 223, 3, 4, 226, 227, 228, -1, -1, -1, -1, + -1, -1, 235, -1, -1, 17, 18, 19, 20, -1, + -1, 23, -1, -1, -1, -1, -1, -1, 30, 31, + 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, 48, 49, 50, -1, + 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, 65, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, 81, + -1, 83, 84, -1, 86, 87, -1, 89, 90, -1, + 92, 93, -1, -1, -1, -1, 98, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, 113, -1, 115, -1, -1, 118, 119, 120, 121, + -1, -1, -1, 125, 126, -1, -1, -1, 130, -1, + -1, 133, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, -1, -1, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, 199, -1, 201, + 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, + 212, 213, 214, 215, 216, 217, -1, -1, -1, -1, + -1, 223, 3, 4, 226, 227, 228, -1, -1, -1, + -1, -1, -1, 235, -1, -1, 17, 18, 19, 20, + -1, -1, 23, -1, -1, -1, -1, -1, -1, 30, + 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, + -1, -1, 43, -1, -1, -1, -1, 48, 49, 50, + -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, + -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 81, -1, 83, 84, -1, 86, 87, -1, 89, 90, + -1, 92, 93, -1, -1, -1, -1, 98, -1, -1, + 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, + 111, 112, -1, -1, 115, -1, -1, 118, 119, 120, + 121, -1, -1, -1, 125, 126, -1, -1, -1, 130, + -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, + 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, + 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, + 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, + 171, 172, -1, -1, 175, -1, 177, 178, -1, 180, + 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, + 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, + 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, + 3, 4, 223, -1, -1, 226, 227, 228, -1, -1, + -1, -1, -1, -1, 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, -1, -1, -1, 69, 70, -1, -1, - -1, -1, 75, 76, 77, -1, 79, -1, 81, 82, - -1, -1, -1, -1, 87, 88, -1, 90, 91, -1, - -1, -1, -1, 96, -1, -1, 99, 100, -1, -1, - 103, -1, 105, -1, -1, -1, 109, 110, -1, -1, - 113, -1, -1, 116, 117, 118, 119, -1, -1, -1, - 123, 124, -1, -1, -1, 128, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, - 143, 144, -1, 146, 147, -1, 149, -1, -1, 152, - 153, 154, 155, 156, -1, 158, 159, -1, -1, 162, - 163, 164, 165, 166, 167, 168, 169, 170, -1, -1, - 173, -1, 175, 176, -1, 178, 179, 180, -1, 182, - -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, - 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, - 203, -1, -1, -1, 207, -1, 209, 210, 211, 212, - 213, 214, 215, -1, -1, -1, 3, 4, 221, -1, - -1, 224, 225, 226, -1, -1, -1, -1, -1, -1, - 233, 18, 19, 20, -1, -1, -1, -1, -1, -1, + 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, + 83, 84, -1, -1, -1, -1, 89, 90, -1, 92, + 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, + -1, -1, 125, 126, -1, -1, -1, 130, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, + 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, -1, -1, -1, 3, 4, + 223, -1, -1, 226, 227, 228, -1, -1, -1, -1, + -1, -1, 235, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 30, 31, 32, 33, 34, + -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, + -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, + -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, + 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, + -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, + -1, -1, -1, -1, 89, 90, -1, 92, 93, -1, + -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, + 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, + 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, + 125, 126, -1, -1, -1, 130, -1, -1, 133, -1, + -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, + 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, + 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, + 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, + 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, + -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, + 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, + 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, -1, -1, -1, 3, 4, 223, -1, + -1, 226, 227, 228, -1, -1, -1, -1, -1, -1, + 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, - -1, -1, 69, 70, -1, -1, -1, -1, 75, 76, - 77, -1, 79, -1, 81, 82, -1, -1, -1, 86, - 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, - -1, -1, 99, 100, -1, -1, 103, -1, 105, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, 116, - 117, 118, 119, -1, -1, -1, -1, 124, -1, -1, - -1, 128, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 139, 140, 141, -1, 143, 144, -1, 146, - 147, -1, 149, -1, -1, 152, 153, 154, 155, 156, - -1, 158, 159, -1, -1, 162, 163, 164, 165, 166, - 167, 168, 169, 170, -1, -1, 173, -1, 175, 176, - -1, -1, 179, 180, -1, 182, -1, 184, 185, 186, - 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, - 197, -1, 199, 200, 201, 202, 203, -1, -1, -1, - 207, -1, 209, 210, 211, 212, 213, 214, 215, -1, - -1, -1, 3, 4, 221, -1, -1, 224, 225, 226, - -1, -1, -1, -1, -1, -1, 233, 18, 19, 20, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, 81, -1, 83, 84, -1, -1, + -1, 88, 89, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, 130, -1, -1, 133, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, -1, -1, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, + -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, + 217, -1, -1, -1, 3, 4, 223, -1, -1, 226, + 227, 228, -1, -1, -1, -1, -1, -1, 235, 18, + 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 31, 32, 33, 34, -1, 36, 37, -1, + -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, + -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, 81, -1, 83, 84, -1, -1, -1, -1, + 89, 90, -1, 92, 93, -1, -1, -1, -1, -1, + -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, + -1, -1, 111, 112, -1, -1, -1, -1, -1, 118, + 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, + -1, 130, -1, -1, 133, -1, -1, -1, -1, -1, + -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, + 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, + -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, + 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, + -1, -1, 181, 182, -1, 184, -1, 186, 187, 188, + 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, + 199, -1, 201, 202, 203, 204, 205, -1, -1, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, + -1, -1, 3, 4, 223, -1, -1, 226, 227, 228, + -1, -1, -1, -1, -1, -1, 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 31, 32, 33, 34, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, -1, 65, -1, -1, -1, 69, 70, - -1, -1, -1, -1, 75, 76, 77, -1, 79, -1, - 81, 82, -1, -1, -1, -1, 87, 88, -1, 90, - 91, -1, -1, -1, -1, -1, -1, -1, 99, 100, - -1, -1, 103, -1, 105, -1, -1, -1, 109, 110, - -1, -1, -1, -1, -1, 116, 117, 118, 119, -1, - -1, -1, -1, 124, -1, -1, -1, 128, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 139, 140, - 141, -1, 143, 144, -1, 146, 147, -1, 149, -1, - -1, 152, 153, 154, 155, 156, -1, 158, 159, -1, - -1, 162, 163, 164, 165, 166, 167, 168, 169, 170, - -1, -1, 173, -1, 175, 176, -1, -1, 179, 180, - -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, - -1, 192, 193, 194, 195, 196, 197, -1, 199, 200, - 201, 202, 203, -1, -1, -1, 207, -1, 209, 210, - 211, 212, 213, 214, 215, -1, -1, -1, 3, 4, - 221, -1, -1, 224, 225, 226, -1, -1, -1, -1, - -1, -1, 233, 18, 19, 20, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 31, 32, 33, 34, - -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - 65, -1, -1, -1, 69, 70, -1, -1, -1, -1, - 75, 76, 77, -1, 79, -1, 81, 82, -1, -1, - -1, -1, 87, 88, -1, 90, 91, -1, -1, -1, - -1, -1, -1, -1, 99, 100, -1, -1, 103, -1, - 105, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, 116, 117, 118, 119, -1, -1, -1, -1, 124, - -1, -1, -1, 128, -1, -1, 131, -1, -1, -1, - -1, -1, -1, 138, 139, 140, 141, -1, 143, 144, - -1, 146, 147, -1, 149, -1, -1, 152, 153, 154, - 155, 156, -1, 158, 159, -1, -1, 162, 163, 164, - 165, 166, 167, 168, 169, 170, -1, -1, 173, -1, - 175, 176, -1, -1, 179, 180, -1, 182, -1, 184, - 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, - 195, 196, 197, -1, 199, 200, 201, 202, 203, -1, - -1, -1, 207, -1, 209, 210, 211, 212, 213, 214, - 215, -1, -1, -1, 3, 4, 221, -1, -1, 224, - 225, 226, -1, -1, -1, -1, -1, -1, 233, 18, - 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 30, -1, -1, -1, -1, -1, 36, 37, -1, - -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, - -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, - 69, 70, -1, -1, -1, -1, 75, 76, 77, -1, - 79, -1, 81, 82, -1, -1, -1, -1, 87, 88, - -1, 90, 91, -1, -1, -1, -1, 96, -1, -1, - 99, 100, -1, -1, 103, -1, 105, -1, -1, -1, - 109, 110, -1, -1, 113, -1, -1, 116, 117, 118, - 119, -1, -1, -1, 123, 124, -1, -1, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 139, 140, 141, -1, 143, 144, -1, 146, 147, -1, - 149, -1, -1, 152, 153, 154, 155, 156, -1, 158, - 159, -1, -1, 162, 163, 164, 165, 166, 167, 168, - 169, 170, -1, -1, 173, -1, 175, 176, -1, 178, - 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, - 189, 190, -1, 192, 193, 194, 195, 196, 197, -1, - 199, 200, 201, 202, 203, -1, -1, -1, 207, -1, - 209, 210, 211, 212, 213, 214, 215, -1, -1, -1, - 3, 4, 221, -1, -1, 224, -1, -1, -1, -1, - -1, -1, -1, -1, 233, 18, 19, 20, -1, -1, + -1, -1, 63, -1, 65, -1, -1, -1, -1, 70, + 71, -1, -1, -1, -1, -1, 77, 78, 79, -1, + 81, -1, 83, 84, -1, -1, -1, -1, 89, 90, + -1, 92, 93, -1, -1, -1, -1, -1, -1, -1, + 101, 102, -1, -1, 105, -1, 107, -1, -1, -1, + 111, 112, -1, -1, -1, -1, -1, 118, 119, 120, + 121, -1, -1, -1, -1, 126, -1, -1, -1, 130, + -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, + 141, 142, 143, -1, 145, 146, -1, 148, 149, -1, + 151, -1, -1, 154, 155, 156, 157, 158, -1, 160, + 161, -1, -1, 164, 165, 166, 167, 168, 169, 170, + 171, 172, -1, -1, 175, -1, 177, 178, -1, -1, + 181, 182, -1, 184, -1, 186, 187, 188, 189, 190, + 191, 192, -1, 194, 195, 196, 197, 198, 199, -1, + 201, 202, 203, 204, 205, -1, -1, -1, 209, -1, + 211, 212, 213, 214, 215, 216, 217, -1, -1, -1, + 3, 4, 223, -1, -1, 226, 227, 228, -1, -1, + -1, -1, -1, -1, 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, 65, -1, -1, -1, 69, 70, -1, -1, - -1, -1, 75, 76, 77, -1, 79, -1, 81, 82, - -1, -1, -1, -1, 87, 88, -1, 90, 91, -1, - -1, -1, -1, 96, -1, -1, 99, 100, -1, -1, - 103, -1, 105, -1, -1, -1, 109, 110, -1, -1, - 113, -1, -1, 116, 117, 118, 119, -1, -1, -1, - 123, 124, -1, -1, -1, -1, -1, -1, 131, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, - 143, 144, -1, 146, 147, -1, 149, -1, -1, 152, - 153, 154, 155, 156, -1, 158, 159, -1, -1, 162, - 163, 164, 165, 166, 167, 168, 169, 170, -1, -1, - 173, -1, 175, 176, -1, 178, 179, 180, -1, 182, - -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, - 193, 194, 195, 196, 197, -1, 199, 200, 201, 202, - 203, -1, -1, -1, 207, -1, 209, 210, 211, 212, - 213, 214, 215, -1, -1, -1, 3, 4, 221, -1, - -1, 224, -1, -1, -1, -1, -1, -1, -1, -1, - 233, 18, 19, 20, -1, -1, -1, -1, -1, -1, + 63, -1, 65, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, + 83, 84, -1, -1, -1, -1, 89, 90, -1, 92, + 93, -1, -1, -1, -1, 98, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, 115, -1, -1, 118, 119, 120, 121, -1, + -1, -1, 125, 126, -1, -1, -1, -1, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + -1, -1, 175, -1, 177, 178, -1, 180, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, 199, -1, 201, 202, + 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, + 213, 214, 215, 216, 217, -1, -1, -1, 3, 4, + 223, -1, -1, 226, -1, -1, -1, -1, -1, -1, + -1, -1, 235, 18, 19, 20, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 30, -1, -1, -1, -1, + -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, + -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, + -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, + 65, -1, -1, -1, -1, 70, 71, -1, -1, -1, + -1, -1, 77, 78, 79, -1, 81, -1, 83, 84, + -1, -1, -1, -1, 89, 90, -1, 92, 93, -1, + -1, -1, -1, 98, -1, -1, 101, 102, -1, -1, + 105, -1, 107, -1, -1, -1, 111, 112, -1, -1, + 115, -1, -1, 118, 119, 120, 121, -1, -1, -1, + 125, 126, -1, -1, -1, -1, -1, -1, 133, -1, + -1, -1, -1, -1, -1, 140, 141, 142, 143, -1, + 145, 146, -1, 148, 149, -1, 151, -1, -1, 154, + 155, 156, 157, 158, -1, 160, 161, -1, -1, 164, + 165, 166, 167, 168, 169, 170, 171, 172, -1, -1, + 175, -1, 177, 178, -1, 180, 181, 182, -1, 184, + -1, 186, 187, 188, 189, 190, 191, 192, -1, 194, + 195, 196, 197, 198, 199, -1, 201, 202, 203, 204, + 205, -1, -1, -1, 209, -1, 211, 212, 213, 214, + 215, 216, 217, -1, -1, -1, 3, 4, 223, -1, + -1, 226, -1, -1, -1, -1, -1, -1, -1, -1, + 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, 65, -1, - -1, -1, 69, 70, -1, -1, -1, -1, 75, 76, - 77, -1, 79, -1, 81, 82, -1, 84, -1, 86, - 87, 88, -1, 90, 91, -1, -1, -1, -1, -1, - -1, -1, 99, 100, -1, -1, 103, -1, 105, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, 116, - 117, 118, 119, -1, -1, -1, -1, 124, -1, -1, - -1, -1, -1, -1, 131, -1, -1, -1, -1, -1, - -1, 138, 139, 140, 141, -1, 143, 144, -1, 146, - 147, -1, 149, -1, -1, 152, 153, 154, 155, 156, - -1, 158, 159, -1, -1, 162, 163, 164, 165, 166, - 167, 168, 169, 170, -1, -1, 173, -1, 175, 176, - -1, -1, 179, 180, -1, 182, -1, 184, 185, 186, - 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, - 197, -1, 199, 200, 201, 202, 203, -1, -1, -1, - 207, -1, 209, 210, 211, 212, 213, 214, 215, -1, - -1, -1, 3, 4, 221, -1, -1, 224, 225, 226, - -1, -1, -1, -1, -1, -1, 233, 18, 19, 20, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 36, 37, -1, -1, -1, - -1, -1, 43, -1, -1, -1, -1, -1, -1, 50, - -1, 52, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, -1, 65, -1, -1, -1, 69, 70, - -1, -1, -1, -1, 75, 76, 77, -1, 79, -1, - 81, 82, -1, -1, -1, 86, 87, 88, -1, 90, - 91, -1, -1, -1, -1, -1, -1, -1, 99, 100, - -1, -1, 103, -1, 105, -1, -1, -1, 109, 110, - -1, -1, -1, -1, -1, 116, 117, 118, 119, -1, - -1, -1, -1, 124, -1, -1, -1, -1, -1, -1, - 131, -1, -1, -1, -1, -1, -1, 138, 139, 140, - 141, -1, 143, 144, -1, 146, 147, -1, 149, -1, - -1, 152, 153, 154, 155, 156, -1, 158, 159, -1, - -1, 162, 163, 164, 165, 166, 167, 168, 169, 170, - -1, -1, 173, -1, 175, 176, -1, -1, 179, 180, - -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, - -1, 192, 193, 194, 195, 196, 197, -1, 199, 200, - 201, 202, 203, 3, 4, -1, 207, -1, 209, 210, - 211, 212, 213, 214, 215, -1, -1, -1, -1, -1, - 221, -1, -1, 224, 225, 226, -1, -1, -1, -1, - 30, -1, 233, -1, -1, -1, 36, -1, -1, -1, - -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 60, -1, -1, 63, -1, -1, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, -1, - -1, -1, 82, -1, -1, -1, -1, -1, 88, -1, - 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, -1, -1, -1, 116, 117, 118, 119, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, - 140, 141, -1, 143, 144, -1, 146, 147, -1, 149, - -1, -1, 152, 153, 154, 155, 156, -1, 158, 159, - -1, -1, 162, 163, 164, 165, 166, 167, 168, 169, - 170, -1, 8, 173, -1, 175, 176, 13, 178, 179, - 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, - 190, -1, 192, 193, 194, 195, 196, -1, -1, 199, - 200, 201, 202, 203, -1, -1, -1, 207, -1, 209, - 210, -1, 8, -1, -1, -1, -1, 13, -1, -1, - -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, - -1, 67, -1, 233, -1, -1, 8, 73, 10, -1, - -1, 13, -1, -1, -1, -1, -1, -1, 84, -1, - -1, -1, 8, -1, -1, -1, 92, 13, -1, -1, - -1, -1, -1, -1, -1, 61, -1, -1, -1, -1, - -1, 67, -1, -1, -1, -1, 8, 73, -1, 115, - -1, 13, -1, -1, -1, -1, -1, -1, 84, 61, - -1, -1, 8, -1, -1, 67, 92, 13, -1, -1, - -1, 73, -1, -1, -1, 61, -1, -1, -1, -1, - -1, 67, 84, -1, -1, -1, -1, 73, -1, -1, - 92, -1, -1, -1, -1, -1, -1, -1, 84, 61, - -1, -1, -1, 169, -1, 67, 92, -1, -1, -1, - -1, 73, -1, -1, -1, 61, -1, -1, 184, -1, - -1, 67, 84, -1, -1, -1, -1, 73, -1, -1, - 92, -1, -1, -1, -1, -1, -1, -1, 84, -1, - -1, -1, -1, 169, -1, -1, 212, -1, -1, -1, - -1, 217, 218, 219, 220, 221, 222, 223, 184, -1, - -1, -1, -1, -1, -1, 231, -1, 169, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 184, 169, -1, -1, 212, -1, -1, -1, - -1, 217, 218, 219, 220, 221, 222, 223, 184, -1, - -1, -1, -1, -1, 230, 231, -1, 169, -1, -1, - 212, -1, -1, -1, -1, 217, 218, 219, 220, 221, - 222, 223, 184, 169, -1, -1, 212, -1, -1, 231, - -1, 217, 218, 219, 220, 221, 222, 223, 184, -1, - -1, -1, -1, -1, -1, 231, 3, 4, -1, -1, - 212, -1, -1, -1, -1, 217, 218, 219, 220, 221, - 222, 223, -1, -1, -1, -1, 212, -1, -1, 231, - -1, 217, 218, 219, 220, 221, 222, 223, -1, 36, - -1, -1, -1, -1, -1, 231, 43, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, - -1, -1, 69, 70, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, -1, 82, -1, -1, -1, -1, - -1, 88, -1, 90, 91, -1, -1, -1, -1, -1, - -1, -1, 99, 100, -1, -1, 103, -1, 105, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, 116, - 117, 118, 119, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 138, 139, 140, 141, -1, 143, 144, -1, 146, - 147, -1, 149, -1, -1, 152, 153, 154, 155, 156, - -1, 158, 159, -1, -1, 162, 163, 164, 165, 166, - 167, 168, 169, 170, -1, -1, 173, -1, 175, 176, - -1, -1, 179, 180, -1, 182, -1, 184, 185, 186, - 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, - 197, -1, 199, 200, 201, 202, 203, 3, 4, -1, - 207, -1, 209, 210, 211, 212, 213, -1, 215, -1, - 217, 218, 219, 220, 221, 222, 223, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 36, -1, -1, 39, -1, -1, -1, 43, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, 63, -1, -1, - -1, -1, 68, 69, 70, -1, -1, -1, -1, 75, - 76, 77, -1, -1, -1, -1, 82, -1, -1, -1, - -1, -1, 88, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, 100, 101, -1, 103, -1, 105, - -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, - 116, 117, 118, 119, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 138, 139, 140, 141, -1, 143, 144, -1, - 146, 147, -1, 149, -1, -1, 152, 153, 154, 155, - 156, -1, 158, 159, -1, -1, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 3, 4, 173, -1, 175, - 176, -1, -1, 179, 180, -1, 182, -1, 184, 185, - 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, - 196, -1, -1, 199, 200, 201, 202, 203, 36, -1, - -1, 207, -1, 209, 210, 43, 212, -1, -1, -1, - -1, 217, 218, 219, 220, 221, 222, 223, -1, -1, - -1, -1, 60, -1, -1, 63, -1, -1, -1, -1, - 68, 69, 70, -1, -1, -1, -1, 75, 76, 77, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, - -1, 99, 100, 101, -1, 103, -1, 105, -1, -1, - -1, 109, 110, -1, -1, -1, -1, -1, 116, 117, - 118, 119, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 138, 139, 140, 141, -1, 143, 144, -1, 146, 147, - -1, 149, -1, -1, 152, 153, 154, 155, 156, -1, - 158, 159, -1, -1, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 3, 4, 173, -1, 175, 176, -1, - -1, 179, 180, -1, 182, -1, 184, 185, 186, 187, - 188, 189, 190, -1, 192, 193, 194, 195, 196, -1, - 30, 199, 200, 201, 202, 203, 36, -1, -1, 207, - -1, 209, 210, 43, 212, -1, -1, -1, -1, 217, - 218, 219, 220, 221, 222, 223, -1, -1, -1, -1, - 60, -1, -1, 63, -1, -1, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, -1, - -1, -1, 82, -1, -1, -1, -1, -1, 88, -1, - 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, -1, -1, -1, 116, 117, 118, 119, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, - 140, 141, -1, 143, 144, -1, 146, 147, -1, 149, - -1, -1, 152, 153, 154, 155, 156, -1, 158, 159, - -1, -1, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 3, 4, 173, -1, 175, 176, -1, 178, 179, - 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, - 190, -1, 192, 193, 194, 195, 196, -1, 30, 199, - 200, 201, 202, 203, 36, -1, -1, 207, -1, 209, - 210, 43, -1, -1, 214, -1, -1, -1, -1, -1, - -1, -1, 222, -1, -1, -1, -1, -1, 60, -1, - -1, 63, -1, -1, -1, -1, -1, 69, 70, -1, - -1, -1, -1, 75, 76, 77, -1, -1, -1, -1, - 82, -1, -1, -1, -1, -1, 88, -1, 90, 91, - -1, -1, -1, -1, -1, -1, -1, 99, 100, -1, - -1, 103, -1, 105, -1, -1, -1, 109, 110, -1, - -1, -1, -1, -1, 116, 117, 118, 119, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, - -1, 143, 144, -1, 146, 147, -1, 149, -1, -1, - 152, 153, 154, 155, 156, -1, 158, 159, -1, -1, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 3, - 4, 173, -1, 175, 176, -1, 178, 179, 180, -1, - 182, -1, 184, 185, 186, 187, 188, 189, 190, -1, - 192, 193, 194, 195, 196, -1, -1, 199, 200, 201, - 202, 203, 36, -1, -1, 207, -1, 209, 210, 43, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 222, -1, -1, -1, -1, -1, 60, -1, -1, 63, - -1, -1, -1, -1, -1, 69, 70, -1, -1, -1, - -1, 75, 76, 77, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, 88, -1, 90, 91, -1, -1, - -1, -1, -1, -1, -1, 99, 100, -1, -1, 103, - -1, 105, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, 116, 117, 118, 119, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, 139, 140, 141, -1, 143, - 144, -1, 146, 147, -1, 149, -1, -1, 152, 153, - 154, 155, 156, -1, 158, 159, -1, -1, 162, 163, - 164, 165, 166, 167, 168, 169, 170, 3, 4, 173, - -1, 175, 176, -1, -1, 179, 180, -1, 182, -1, - 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, - 194, 195, 196, -1, -1, 199, 200, 201, 202, 203, - 36, -1, -1, 207, -1, 209, 210, 43, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 222, -1, - -1, -1, -1, -1, 60, -1, -1, 63, -1, -1, - -1, -1, -1, 69, 70, -1, -1, -1, -1, 75, - 76, 77, -1, -1, -1, -1, 82, -1, -1, -1, - -1, -1, 88, -1, 90, 91, -1, -1, -1, -1, - -1, -1, -1, 99, 100, -1, -1, 103, -1, 105, - -1, -1, -1, 109, 110, -1, -1, -1, -1, -1, - 116, 117, 118, 119, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 138, 139, 140, 141, -1, 143, 144, -1, - 146, 147, -1, 149, -1, -1, 152, 153, 154, 155, - 156, -1, 158, 159, -1, -1, 162, 163, 164, 165, - 166, 167, 168, 169, 170, 3, 4, 173, -1, 175, - 176, -1, -1, 179, 180, -1, 182, -1, 184, 185, - 186, 187, 188, 189, 190, -1, 192, 193, 194, 195, - 196, -1, -1, 199, 200, 201, 202, 203, 36, -1, - -1, 207, -1, 209, 210, 43, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 222, -1, -1, -1, - -1, -1, 60, -1, -1, 63, -1, -1, -1, -1, - -1, 69, 70, -1, -1, -1, -1, 75, 76, 77, - -1, -1, -1, -1, 82, -1, -1, -1, -1, -1, - 88, -1, 90, 91, -1, -1, -1, -1, -1, -1, - -1, 99, 100, -1, -1, 103, -1, 105, -1, -1, - -1, 109, 110, -1, -1, -1, -1, -1, 116, 117, - 118, 119, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 138, 139, 140, 141, -1, 143, 144, -1, 146, 147, - -1, 149, -1, -1, 152, 153, 154, 155, 156, -1, - 158, 159, -1, -1, 162, 163, 164, 165, 166, 167, - 168, 169, 170, 3, 4, 173, -1, 175, 176, -1, - -1, 179, 180, -1, 182, -1, 184, 185, 186, 187, - 188, 189, 190, -1, 192, 193, 194, 195, 196, -1, - -1, 199, 200, 201, 202, 203, 36, -1, -1, 207, - -1, 209, 210, 43, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 222, -1, -1, -1, -1, -1, - 60, -1, -1, 63, -1, -1, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, -1, - -1, -1, 82, -1, -1, -1, -1, -1, 88, -1, - 90, 91, -1, -1, -1, -1, -1, -1, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, -1, -1, -1, 116, 117, 118, 119, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 138, 139, - 140, 141, -1, 143, 144, -1, 146, 147, -1, 149, - -1, -1, 152, 153, 154, 155, 156, -1, 158, 159, - -1, -1, 162, 163, 164, 165, 166, 167, 168, 169, - 170, 3, 4, 173, -1, 175, 176, -1, -1, 179, - 180, -1, 182, -1, 184, 185, 186, 187, 188, 189, - 190, -1, 192, 193, 194, 195, 196, -1, 30, 199, - 200, 201, 202, 203, 36, -1, -1, 207, -1, 209, - 210, 43, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 222, -1, -1, -1, -1, -1, 60, -1, - -1, 63, -1, -1, -1, -1, -1, 69, 70, -1, - -1, -1, -1, 75, 76, 77, -1, -1, -1, -1, - 82, -1, -1, -1, -1, -1, 88, -1, 90, 91, - -1, -1, -1, -1, -1, -1, -1, 99, 100, -1, - -1, 103, -1, 105, -1, -1, -1, 109, 110, -1, - -1, -1, -1, -1, 116, 117, 118, 119, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 138, 139, 140, 141, - -1, 143, 144, -1, 146, 147, -1, 149, -1, -1, - 152, 153, 154, 155, 156, -1, 158, 159, -1, -1, - 162, 163, 164, 165, 166, 167, 168, 169, 170, 3, - 4, 173, -1, 175, 176, -1, 178, 179, 180, -1, - 182, -1, 184, 185, 186, 187, 188, 189, 190, -1, - 192, 193, 194, 195, 196, -1, -1, 199, 200, 201, - 202, 203, 36, -1, -1, 207, -1, 209, 210, 43, - -1, -1, 214, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, - -1, -1, -1, -1, -1, 69, 70, -1, -1, -1, - -1, 75, 76, 77, -1, -1, -1, -1, 82, -1, - -1, -1, -1, -1, 88, -1, 90, 91, -1, -1, - -1, -1, -1, -1, -1, 99, 100, -1, -1, 103, - -1, 105, -1, -1, -1, 109, 110, -1, -1, -1, - -1, -1, 116, 117, 118, 119, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 138, 139, 140, 141, -1, 143, - 144, -1, 146, 147, -1, 149, -1, -1, 152, 153, - 154, 155, 156, -1, 158, 159, -1, -1, 162, 163, - 164, 165, 166, 167, 168, 169, 170, -1, -1, 173, - -1, 175, 176, -1, -1, 179, 180, -1, 182, -1, - 184, 185, 186, 187, 188, 189, 190, -1, 192, 193, - 194, 195, 196, 3, 4, 199, 200, 201, 202, 203, - -1, -1, -1, 207, -1, 209, 210, 17, -1, 213, - -1, -1, -1, 23, -1, -1, -1, 27, -1, 29, - 30, -1, -1, -1, -1, -1, 36, -1, -1, -1, - -1, -1, -1, 43, -1, 45, 46, -1, -1, -1, - 50, -1, -1, -1, 54, -1, -1, -1, 58, -1, - 60, -1, -1, 63, -1, -1, -1, -1, -1, 69, - 70, -1, -1, -1, -1, 75, 76, 77, -1, -1, - -1, -1, 82, -1, -1, 85, -1, -1, 88, -1, - 90, 91, -1, 93, -1, -1, 96, 97, -1, 99, - 100, -1, -1, 103, -1, 105, -1, -1, -1, 109, - 110, -1, -1, -1, 114, 115, 116, 117, 118, 119, - -1, -1, 122, -1, 124, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 134, -1, -1, -1, 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, -1, 184, 185, 186, 187, 188, 189, - 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, - 200, 201, 202, 203, 3, 4, 206, 207, 208, 209, - 210, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, 81, -1, 83, 84, -1, 86, + -1, 88, 89, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, 126, + -1, -1, -1, -1, -1, -1, 133, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, -1, -1, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, 199, -1, 201, 202, 203, 204, 205, -1, + -1, -1, 209, -1, 211, 212, 213, 214, 215, 216, + 217, -1, -1, -1, 3, 4, 223, -1, -1, 226, + 227, 228, -1, -1, -1, -1, -1, -1, 235, 18, 19, 20, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, - -1, -1, -1, 52, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, -1, -1, -1, -1, - 69, 70, -1, -1, -1, -1, 75, 76, 77, -1, - 79, -1, 81, 82, -1, -1, -1, -1, 87, 88, - -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, - 99, 100, -1, -1, 103, -1, 105, -1, -1, -1, - 109, 110, -1, -1, -1, -1, -1, 116, 117, 118, - 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, 131, -1, -1, -1, -1, -1, -1, 138, - 139, 140, 141, -1, 143, 144, -1, 146, 147, -1, - 149, -1, -1, 152, 153, 154, 155, 156, -1, 158, - 159, -1, -1, 162, 163, 164, 165, 166, 167, 168, - 169, 170, -1, -1, 173, -1, 175, 176, -1, -1, - 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, - 189, 190, -1, 192, 193, 194, 195, 196, 3, 4, - 199, 200, 201, 202, 203, -1, -1, -1, 207, -1, - 209, 210, -1, -1, -1, -1, 21, -1, -1, -1, - -1, -1, 27, -1, -1, -1, -1, -1, -1, -1, - -1, 36, -1, -1, -1, -1, -1, -1, 43, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 54, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - -1, -1, -1, -1, 69, 70, -1, -1, -1, -1, - 75, 76, 77, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, 88, -1, 90, 91, -1, -1, -1, - -1, -1, -1, 98, 99, 100, -1, -1, 103, -1, - 105, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, 116, 117, 118, 119, -1, -1, -1, -1, -1, - -1, 126, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 138, 139, 140, 141, -1, 143, 144, - -1, 146, 147, -1, 149, -1, -1, 152, 153, 154, - 155, 156, -1, 158, 159, -1, -1, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 3, 4, 173, -1, - 175, 176, -1, -1, 179, 180, -1, 182, -1, 184, - 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, - 195, 196, -1, 30, 199, 200, 201, 202, 203, 36, - -1, -1, 207, -1, 209, 210, 43, -1, -1, -1, + -1, 50, -1, 52, -1, -1, -1, -1, -1, -1, + -1, 60, -1, -1, 63, -1, 65, -1, -1, -1, + -1, 70, 71, -1, -1, -1, -1, -1, 77, 78, + 79, -1, 81, -1, 83, 84, -1, -1, -1, 88, + 89, 90, -1, 92, 93, -1, -1, -1, -1, -1, + -1, -1, 101, 102, -1, -1, 105, -1, 107, -1, + -1, -1, 111, 112, -1, -1, -1, -1, -1, 118, + 119, 120, 121, -1, -1, -1, -1, 126, -1, -1, + -1, -1, -1, -1, 133, -1, -1, -1, -1, -1, + -1, 140, 141, 142, 143, -1, 145, 146, -1, 148, + 149, -1, 151, -1, -1, 154, 155, 156, 157, 158, + -1, 160, 161, -1, -1, 164, 165, 166, 167, 168, + 169, 170, 171, 172, -1, -1, 175, -1, 177, 178, + -1, -1, 181, 182, -1, 184, -1, 186, 187, 188, + 189, 190, 191, 192, -1, 194, 195, 196, 197, 198, + 199, -1, 201, 202, 203, 204, 205, 3, 4, -1, + 209, -1, 211, 212, 213, 214, 215, 216, 217, -1, + -1, -1, -1, -1, 223, -1, -1, 226, 227, 228, + -1, -1, -1, -1, 30, -1, 235, -1, -1, -1, + 36, -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, - -1, -1, 69, 70, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, -1, 82, -1, -1, -1, -1, - -1, 88, -1, 90, 91, -1, -1, -1, -1, -1, - -1, -1, 99, 100, -1, -1, 103, -1, 105, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, 116, - 117, 118, 119, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, 60, -1, -1, 63, -1, -1, + -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, + -1, 77, 78, 79, -1, -1, -1, -1, 84, 13, + -1, -1, -1, -1, 90, -1, 92, 93, -1, -1, + -1, -1, -1, -1, -1, 101, 102, -1, -1, 105, + -1, 107, -1, -1, -1, 111, 112, -1, -1, -1, + -1, -1, 118, 119, 120, 121, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 61, -1, -1, + -1, -1, -1, 67, 140, 141, 142, 143, -1, 145, + 146, 75, 148, 149, -1, 151, -1, -1, 154, 155, + 156, 157, 158, -1, 160, 161, -1, -1, 164, 165, + 166, 167, 168, 169, 170, 171, 172, 3, 4, 175, + -1, 177, 178, -1, 180, 181, 182, -1, 184, -1, + 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, + 196, 197, 198, -1, -1, 201, 202, 203, 204, 205, + 36, -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 138, 139, 140, 141, -1, 143, 144, -1, 146, - 147, -1, 149, -1, -1, 152, 153, 154, 155, 156, - -1, 158, 159, -1, -1, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 3, 4, 173, -1, 175, 176, - -1, 178, 179, 180, -1, 182, -1, 184, 185, 186, - 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, - -1, -1, 199, 200, 201, 202, 203, 36, -1, -1, - 207, -1, 209, 210, 43, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 58, - -1, 60, -1, -1, 63, -1, -1, -1, -1, -1, - 69, 70, -1, -1, -1, -1, 75, 76, 77, -1, - -1, -1, -1, 82, -1, -1, -1, -1, -1, 88, - -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, - 99, 100, -1, 102, 103, -1, 105, -1, -1, -1, - 109, 110, -1, -1, -1, -1, -1, 116, 117, 118, - 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, - 139, 140, 141, -1, 143, 144, -1, 146, 147, -1, - 149, -1, -1, 152, 153, 154, 155, 156, -1, 158, - 159, -1, -1, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 3, 4, 173, -1, 175, 176, -1, -1, - 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, - 189, 190, -1, 192, 193, 194, 195, 196, -1, -1, - 199, 200, 201, 202, 203, 36, -1, -1, 207, -1, - 209, 210, 43, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, -1, -1, -1, -1, -1, 69, 70, - -1, -1, -1, -1, 75, 76, 77, 78, -1, -1, - -1, 82, -1, -1, -1, -1, -1, 88, -1, 90, - 91, -1, -1, -1, -1, -1, -1, -1, 99, 100, - -1, -1, 103, -1, 105, -1, -1, -1, 109, 110, - -1, -1, -1, -1, -1, 116, 117, 118, 119, -1, + -1, -1, -1, -1, 60, -1, -1, 63, -1, 235, + -1, -1, -1, -1, 70, 71, -1, 171, -1, -1, + -1, 77, 78, 79, -1, -1, -1, -1, 84, -1, + -1, -1, 186, -1, 90, -1, 92, 93, -1, -1, + -1, -1, -1, -1, -1, 101, 102, -1, -1, 105, + -1, 107, -1, -1, -1, 111, 112, -1, -1, -1, + 214, -1, 118, 119, 120, 121, 220, 221, 222, 223, + 224, 225, -1, -1, -1, -1, -1, -1, -1, 233, + -1, -1, -1, -1, 140, 141, 142, 143, -1, 145, + 146, -1, 148, 149, -1, 151, -1, -1, 154, 155, + 156, 157, 158, -1, 160, 161, -1, -1, 164, 165, + 166, 167, 168, 169, 170, 171, 172, -1, -1, 175, + -1, 177, 178, -1, -1, 181, 182, -1, 184, -1, + 186, 187, 188, 189, 190, 191, 192, -1, 194, 195, + 196, 197, 198, 199, -1, 201, 202, 203, 204, 205, + 3, 4, -1, 209, -1, 211, 212, 213, 214, 215, + -1, 217, -1, 219, 220, 221, 222, 223, 224, 225, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, - 141, -1, 143, 144, -1, 146, 147, -1, 149, -1, - -1, 152, 153, 154, 155, 156, -1, 158, 159, -1, - -1, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 3, 4, 173, -1, 175, 176, -1, -1, 179, 180, - -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, - -1, 192, 193, 194, 195, 196, -1, -1, 199, 200, - 201, 202, 203, 36, -1, -1, 207, -1, 209, 210, + -1, -1, -1, 36, -1, -1, 39, -1, -1, -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, 69, 70, -1, -1, - -1, -1, 75, 76, 77, -1, -1, -1, -1, 82, - -1, -1, -1, -1, -1, 88, -1, 90, 91, -1, - -1, -1, -1, -1, -1, -1, 99, 100, -1, -1, - 103, -1, 105, -1, -1, -1, 109, 110, -1, -1, - -1, -1, -1, 116, 117, 118, 119, -1, -1, -1, + 63, -1, -1, -1, -1, -1, 69, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, + 103, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, - 143, 144, -1, 146, 147, -1, 149, -1, -1, 152, - 153, 154, 155, 156, -1, 158, 159, -1, -1, 162, - 163, 164, 165, 166, 167, 168, 169, 170, 3, 4, - 173, -1, 175, 176, -1, -1, 179, 180, 181, 182, - -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, - 193, 194, 195, 196, -1, -1, 199, 200, 201, 202, - 203, 36, -1, -1, 207, -1, 209, 210, 43, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, + 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, + 43, 214, -1, -1, -1, -1, 219, 220, 221, 222, + 223, 224, 225, -1, -1, -1, -1, 60, -1, -1, + 63, -1, -1, -1, -1, -1, 69, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, + 103, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, - -1, -1, -1, -1, 69, 70, -1, -1, -1, -1, - 75, 76, 77, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, 88, -1, 90, 91, -1, -1, -1, - -1, -1, -1, -1, 99, 100, -1, -1, 103, -1, - 105, -1, -1, -1, 109, 110, -1, -1, -1, -1, - -1, 116, 117, 118, 119, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, -1, 30, 201, 202, + 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, + 43, 214, -1, -1, -1, -1, 219, 220, 221, 222, + 223, 224, 225, -1, -1, -1, -1, 60, -1, -1, + 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, 138, 139, 140, 141, -1, 143, 144, - -1, 146, 147, -1, 149, -1, -1, 152, 153, 154, - 155, 156, -1, 158, 159, -1, -1, 162, 163, 164, - 165, 166, 167, 168, 169, 170, 3, 4, 173, -1, - 175, 176, -1, 10, 179, 180, 181, 182, -1, 184, - 185, 186, 187, 188, 189, 190, -1, 192, 193, 194, - 195, 196, -1, -1, 199, 200, 201, 202, 203, 36, - -1, -1, 207, -1, 209, 210, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 3, 4, 175, -1, 177, 178, -1, 180, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, -1, 30, 201, 202, + 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, + 43, -1, -1, 216, -1, -1, -1, -1, -1, -1, + -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, + 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 3, 4, 175, -1, 177, 178, -1, 180, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, + 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, + 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, + 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, + 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, + 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, + 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, + 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, + 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, + 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + 3, 4, 175, -1, 177, 178, -1, -1, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, + 203, 204, 205, 36, -1, -1, 209, -1, 211, 212, + 43, -1, -1, -1, -1, -1, -1, -1, -1, 13, + -1, 224, -1, -1, -1, -1, -1, 60, -1, -1, + 63, -1, -1, -1, -1, 13, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, -1, -1, + -1, 84, -1, -1, -1, -1, -1, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, 61, 101, 102, + -1, -1, 105, 67, 107, -1, -1, -1, 111, 112, + -1, 75, -1, 61, -1, 118, 119, 120, 121, 67, + -1, -1, -1, -1, -1, -1, -1, 75, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + -1, -1, 175, -1, 177, 178, -1, -1, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, -1, -1, 201, 202, + 203, 204, 205, -1, -1, -1, 209, 171, 211, 212, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 224, 186, 171, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 186, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 214, 3, 4, -1, -1, 219, 220, 221, 222, 223, + 224, 225, -1, -1, -1, -1, 214, -1, -1, 233, + -1, 219, 220, 221, 222, 223, 224, 225, 30, -1, + -1, -1, -1, -1, 36, 233, -1, -1, -1, -1, + -1, 43, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, 3, 4, 175, -1, 177, 178, -1, 180, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, -1, -1, 201, + 202, 203, 204, 205, 36, -1, -1, 209, -1, 211, + 212, 43, -1, -1, 216, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, + -1, 63, -1, -1, -1, -1, -1, -1, 70, 71, + -1, -1, -1, -1, -1, 77, 78, 79, -1, -1, + -1, -1, 84, -1, -1, -1, -1, -1, 90, -1, + 92, 93, -1, -1, -1, -1, -1, -1, -1, 101, + 102, -1, -1, 105, -1, 107, -1, -1, -1, 111, + 112, -1, -1, -1, -1, -1, 118, 119, 120, 121, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 140, 141, + 142, 143, -1, 145, 146, -1, 148, 149, -1, 151, + -1, -1, 154, 155, 156, 157, 158, -1, 160, 161, + -1, -1, 164, 165, 166, 167, 168, 169, 170, 171, + 172, -1, -1, 175, -1, 177, 178, -1, -1, 181, + 182, -1, 184, -1, 186, 187, 188, 189, 190, 191, + 192, -1, 194, 195, 196, 197, 198, 3, 4, 201, + 202, 203, 204, 205, -1, -1, -1, 209, -1, 211, + 212, 17, -1, 215, -1, -1, -1, 23, -1, -1, + -1, 27, -1, 29, 30, -1, -1, -1, -1, -1, + 36, -1, -1, -1, -1, -1, -1, 43, -1, 45, + 46, -1, -1, -1, 50, -1, -1, -1, 54, -1, + -1, -1, 58, -1, 60, -1, -1, 63, -1, -1, + -1, -1, -1, -1, 70, 71, -1, -1, -1, -1, + -1, 77, 78, 79, -1, -1, -1, -1, 84, -1, + -1, 87, -1, -1, 90, -1, 92, 93, -1, 95, + -1, -1, 98, 99, -1, 101, 102, -1, -1, 105, + -1, 107, -1, -1, -1, 111, 112, -1, -1, -1, + 116, 117, 118, 119, 120, 121, -1, -1, 124, -1, + 126, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 136, -1, -1, -1, 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, -1, + 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, + 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, + 3, 4, 208, 209, 210, 211, 212, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 36, 37, -1, -1, -1, -1, -1, + 43, -1, -1, -1, -1, -1, -1, -1, -1, 52, + -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, + 63, -1, -1, -1, -1, -1, -1, 70, 71, -1, + -1, -1, -1, -1, 77, 78, 79, -1, 81, -1, + 83, 84, -1, -1, -1, -1, 89, 90, -1, 92, + 93, -1, -1, -1, -1, -1, -1, -1, 101, 102, + -1, -1, 105, -1, 107, -1, -1, -1, 111, 112, + -1, -1, -1, -1, -1, 118, 119, 120, 121, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + 133, -1, -1, -1, -1, -1, -1, 140, 141, 142, + 143, -1, 145, 146, -1, 148, 149, -1, 151, -1, + -1, 154, 155, 156, 157, 158, -1, 160, 161, -1, + -1, 164, 165, 166, 167, 168, 169, 170, 171, 172, + -1, -1, 175, -1, 177, 178, -1, -1, 181, 182, + -1, 184, -1, 186, 187, 188, 189, 190, 191, 192, + -1, 194, 195, 196, 197, 198, 3, 4, 201, 202, + 203, 204, 205, -1, -1, -1, 209, -1, 211, 212, + -1, -1, -1, -1, 21, -1, -1, -1, -1, -1, + 27, -1, -1, -1, -1, -1, -1, -1, -1, 36, + -1, -1, -1, -1, -1, -1, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 54, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, 100, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, + -1, 128, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, - -1, -1, 69, 70, -1, -1, -1, -1, 75, 76, - 77, -1, -1, -1, -1, 82, -1, -1, -1, -1, - -1, 88, -1, 90, 91, -1, -1, -1, -1, -1, - -1, -1, 99, 100, -1, -1, 103, -1, 105, -1, - -1, -1, 109, 110, -1, -1, -1, -1, -1, 116, - 117, 118, 119, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, 80, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, 124, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 138, 139, 140, 141, -1, 143, 144, -1, 146, - 147, -1, 149, -1, -1, 152, 153, 154, 155, 156, - -1, 158, 159, -1, -1, 162, 163, 164, 165, 166, - 167, 168, 169, 170, 3, 4, 173, -1, 175, 176, - -1, -1, 179, 180, -1, 182, -1, 184, 185, 186, - 187, 188, 189, 190, -1, 192, 193, 194, 195, 196, - -1, -1, 199, 200, 201, 202, 203, 36, -1, -1, - 207, -1, 209, 210, 43, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, 30, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 60, -1, -1, 63, -1, -1, -1, -1, -1, - 69, 70, -1, -1, -1, -1, 75, 76, 77, -1, - -1, -1, -1, 82, -1, -1, -1, -1, -1, 88, - -1, 90, 91, -1, -1, -1, -1, -1, -1, -1, - 99, 100, -1, -1, 103, -1, 105, -1, -1, -1, - 109, 110, -1, -1, -1, -1, -1, 116, 117, 118, - 119, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 138, - 139, 140, 141, -1, 143, 144, -1, 146, 147, -1, - 149, -1, -1, 152, 153, 154, 155, 156, -1, 158, - 159, -1, -1, 162, 163, 164, 165, 166, 167, 168, - 169, 170, 3, 4, 173, -1, 175, 176, -1, -1, - 179, 180, -1, 182, -1, 184, 185, 186, 187, 188, - 189, 190, -1, 192, 193, 194, 195, 196, -1, -1, - 199, 200, 201, 202, 203, 36, -1, -1, 207, -1, - 209, 210, 43, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, 60, - -1, -1, 63, -1, -1, -1, -1, -1, 69, 70, - -1, -1, -1, -1, 75, 76, 77, -1, -1, -1, - -1, 82, -1, -1, -1, -1, -1, 88, -1, 90, - 91, -1, -1, -1, -1, -1, -1, -1, 99, 100, - -1, -1, 103, -1, 105, -1, -1, -1, 109, 110, - -1, -1, -1, -1, -1, 116, 117, 118, 119, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 138, 139, 140, - 141, -1, 143, 144, -1, 146, 147, -1, 149, -1, - -1, 152, 153, 154, 155, 156, -1, 158, 159, -1, - -1, 162, 163, 164, 165, 166, 167, 168, 169, 170, - 3, 4, 173, -1, 175, 176, -1, -1, 179, 180, - -1, 182, -1, 184, 185, 186, 187, 188, 189, 190, - -1, 192, 193, 194, 195, 196, -1, -1, 199, 200, - 201, 202, 203, 36, -1, -1, 207, -1, 209, 210, - 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - 63, -1, -1, -1, -1, -1, 69, 70, -1, -1, - -1, -1, 75, 76, 77, -1, -1, -1, -1, 82, - -1, -1, -1, -1, -1, 88, -1, 90, 91, -1, - -1, -1, -1, -1, -1, -1, 99, 100, -1, -1, - 103, -1, 105, -1, -1, -1, 109, 110, -1, -1, - -1, -1, -1, 116, 117, 118, 119, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, 180, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, 138, 139, 140, 141, -1, - 143, 144, -1, 146, 147, -1, 149, -1, -1, 152, - 153, 154, 155, 156, -1, 158, 159, -1, -1, 162, - 163, 164, 165, 166, 167, 168, 169, 170, -1, -1, - 173, -1, 175, 176, -1, -1, 179, 180, -1, 182, - -1, 184, 185, 186, 187, 188, 189, 190, -1, 192, - 193, 194, 195, 196, -1, -1, 199, 200, 201, 202, - 203, -1, -1, 7, 207, -1, 209, 210, 12, -1, - -1, -1, -1, -1, -1, -1, -1, -1, 22, -1, - -1, -1, 26, -1, 28, -1, -1, -1, -1, -1, - -1, -1, -1, -1, 38, -1, 40, -1, -1, -1, - 44, -1, 46, 47, -1, -1, -1, 51, -1, -1, - -1, -1, -1, 57, -1, -1, -1, -1, -1, -1, - 64, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 58, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, 104, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, 124, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, 124, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, -1, 181, 182, 183, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, 10, 181, 182, 183, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, 3, 4, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, 36, + -1, -1, 209, -1, 211, 212, 43, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 60, -1, -1, 63, -1, -1, -1, + -1, -1, -1, 70, 71, -1, -1, -1, -1, -1, + 77, 78, 79, -1, -1, -1, -1, 84, -1, -1, + -1, -1, -1, 90, -1, 92, 93, -1, -1, -1, + -1, -1, -1, -1, 101, 102, -1, -1, 105, -1, + 107, -1, -1, -1, 111, 112, -1, -1, -1, -1, + -1, 118, 119, 120, 121, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 140, 141, 142, 143, -1, 145, 146, + -1, 148, 149, -1, 151, -1, -1, 154, 155, 156, + 157, 158, -1, 160, 161, -1, -1, 164, 165, 166, + 167, 168, 169, 170, 171, 172, -1, -1, 175, -1, + 177, 178, -1, -1, 181, 182, -1, 184, -1, 186, + 187, 188, 189, 190, 191, 192, -1, 194, 195, 196, + 197, 198, -1, -1, 201, 202, 203, 204, 205, -1, + -1, 7, 209, -1, 211, 212, 12, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 22, -1, -1, -1, + 26, -1, 28, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 38, -1, 40, -1, -1, -1, 44, -1, + 46, 47, -1, -1, -1, 51, -1, -1, -1, -1, + -1, 57, -1, -1, -1, -1, -1, -1, 64, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 108, -1, 110, -1, -1, 113, 114, -1, + -1, -1, 19, 20, -1, -1, -1, -1, -1, -1, + -1, -1, -1, 129, -1, -1, -1, -1, -1, 36, + 37, -1, -1, -1, -1, -1, 43, -1, 144, -1, + -1, -1, -1, 50, -1, 52, 152, 153, -1, -1, + -1, -1, -1, 60, -1, -1, 162, 163, 65, -1, + -1, -1, -1, -1, -1, -1, -1, 173, 174, -1, + 176, 78, 79, 179, 81, -1, 83, -1, -1, 185, + -1, -1, 89, -1, -1, -1, -1, 193, -1, -1, + -1, -1, -1, -1, 200, -1, -1, 19, 20, -1, + 206, -1, 208, -1, -1, 112, 113, -1, -1, -1, + -1, 118, 119, -1, 36, 37, -1, -1, -1, 126, + -1, 43, -1, -1, -1, -1, 133, -1, 50, -1, + 52, -1, -1, 140, -1, -1, 143, -1, 60, -1, + -1, -1, -1, 65, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, 78, 79, -1, 81, + -1, 83, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, -1, -1, -1, -1, -1, - -1, -1, 106, -1, 108, -1, -1, 111, 112, -1, - 36, 37, -1, -1, -1, -1, -1, 43, -1, -1, - -1, -1, -1, 127, 50, -1, 52, -1, -1, -1, - -1, -1, -1, -1, 60, -1, -1, -1, 142, 65, - -1, -1, -1, -1, -1, -1, 150, 151, -1, -1, - 76, 77, -1, 79, -1, 81, 160, 161, -1, -1, - -1, 87, -1, -1, -1, -1, -1, 171, 172, -1, - 174, -1, -1, 177, -1, -1, -1, -1, -1, 183, - -1, -1, -1, -1, 110, 111, -1, 191, -1, -1, - 116, 117, -1, -1, 198, -1, -1, -1, 124, -1, - 204, -1, 206, -1, -1, 131, 19, 20, -1, -1, - -1, -1, 138, -1, -1, 141, -1, -1, -1, -1, - -1, -1, -1, 36, 37, -1, -1, -1, -1, -1, - 43, -1, -1, -1, -1, -1, -1, 50, -1, 52, - -1, -1, -1, -1, -1, -1, -1, 60, -1, -1, - -1, -1, 65, -1, -1, -1, -1, -1, -1, 19, - 20, -1, -1, 76, 77, -1, 79, -1, 81, -1, - -1, 197, -1, -1, 87, -1, 36, 37, -1, -1, - -1, -1, -1, 43, 210, 211, -1, 213, 214, 215, - -1, -1, 52, -1, -1, -1, -1, 110, -1, -1, - 60, -1, -1, 116, 117, 65, -1, -1, -1, -1, - -1, 124, -1, -1, -1, -1, 76, 77, 131, 79, - -1, 81, -1, -1, -1, 138, -1, 87, 141, -1, + 112, -1, 199, -1, -1, -1, 118, 119, -1, -1, + 36, 37, -1, -1, 126, 212, 213, 43, 215, 216, + 217, 133, -1, -1, -1, -1, 52, -1, 140, -1, + -1, 143, -1, -1, 60, -1, -1, -1, -1, 65, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, 78, 79, -1, 81, -1, 83, -1, -1, + -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 19, 20, + -1, -1, -1, -1, -1, -1, 112, 199, -1, -1, + -1, -1, 118, 119, -1, 36, 37, -1, -1, -1, + 212, 213, 43, 215, 216, 217, -1, 133, -1, -1, + -1, 52, -1, -1, 140, -1, -1, 143, -1, 60, + -1, -1, -1, -1, 65, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, 78, 79, -1, + 81, -1, 83, -1, -1, -1, -1, -1, 89, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 110, -1, -1, -1, -1, -1, 116, 117, -1, -1, - -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, 131, -1, -1, -1, -1, -1, -1, 138, -1, - -1, 141, -1, -1, 197, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 210, 211, -1, - 213, 214, 215, -1, -1, -1, -1, -1, -1, -1, + -1, 112, 198, 199, -1, -1, -1, 118, 119, -1, + -1, -1, -1, -1, -1, -1, 212, -1, -1, -1, + -1, -1, 133, -1, -1, -1, -1, -1, -1, 140, + -1, -1, 143, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, -1, 197, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, - 210 + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, -1, -1, -1, 199, -1, + -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, + -1, 212 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/misc/bison.simple" @@ -5146,27 +5245,27 @@ yyreduce: switch (yyn) { case 1: -#line 345 "gram.y" +#line 348 "gram.y" { parsetree = yyvsp[0].list; ; break;} case 2: -#line 347 "gram.y" +#line 350 "gram.y" { parsetree = lcons(yyvsp[0].node,NIL); ; break;} case 3: -#line 351 "gram.y" +#line 354 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[-1].node); ; break;} case 4: -#line 353 "gram.y" +#line 356 "gram.y" { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ; break;} case 5: -#line 355 "gram.y" +#line 358 "gram.y" { yyval.list = lcons(yyvsp[-1].node,NIL); ; break;} case 49: -#line 412 "gram.y" +#line 415 "gram.y" { CreateUserStmt *n = makeNode(CreateUserStmt); n->user = yyvsp[-5].str; @@ -5179,7 +5278,7 @@ case 49: ; break;} case 50: -#line 433 "gram.y" +#line 436 "gram.y" { AlterUserStmt *n = makeNode(AlterUserStmt); n->user = yyvsp[-5].str; @@ -5192,7 +5291,7 @@ case 50: ; break;} case 51: -#line 453 "gram.y" +#line 456 "gram.y" { DropUserStmt *n = makeNode(DropUserStmt); n->user = yyvsp[0].str; @@ -5200,15 +5299,15 @@ case 51: ; break;} case 52: -#line 460 "gram.y" +#line 463 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 53: -#line 461 "gram.y" +#line 464 "gram.y" { yyval.str = NULL; ; break;} case 54: -#line 465 "gram.y" +#line 468 "gram.y" { bool* b; yyval.pboolean = (b = (bool*)palloc(sizeof(bool))); @@ -5216,7 +5315,7 @@ case 54: ; break;} case 55: -#line 471 "gram.y" +#line 474 "gram.y" { bool* b; yyval.pboolean = (b = (bool*)palloc(sizeof(bool))); @@ -5224,11 +5323,11 @@ case 55: ; break;} case 56: -#line 476 "gram.y" +#line 479 "gram.y" { yyval.pboolean = NULL; ; break;} case 57: -#line 480 "gram.y" +#line 483 "gram.y" { bool* b; yyval.pboolean = (b = (bool*)palloc(sizeof(bool))); @@ -5236,7 +5335,7 @@ case 57: ; break;} case 58: -#line 486 "gram.y" +#line 489 "gram.y" { bool* b; yyval.pboolean = (b = (bool*)palloc(sizeof(bool))); @@ -5244,39 +5343,39 @@ case 58: ; break;} case 59: -#line 491 "gram.y" +#line 494 "gram.y" { yyval.pboolean = NULL; ; break;} case 60: -#line 495 "gram.y" +#line 498 "gram.y" { yyval.list = lcons((void*)makeString(yyvsp[0].str), yyvsp[-2].list); ; break;} case 61: -#line 499 "gram.y" +#line 502 "gram.y" { yyval.list = lcons((void*)makeString(yyvsp[0].str), NIL); ; break;} case 62: -#line 504 "gram.y" +#line 507 "gram.y" { yyval.list = yyvsp[0].list; ; break;} case 63: -#line 505 "gram.y" +#line 508 "gram.y" { yyval.list = NULL; ; break;} case 64: -#line 508 "gram.y" +#line 511 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 65: -#line 509 "gram.y" +#line 512 "gram.y" { yyval.str = NULL; ; break;} case 66: -#line 522 "gram.y" +#line 525 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->name = yyvsp[-2].str; @@ -5285,7 +5384,7 @@ case 66: ; break;} case 67: -#line 529 "gram.y" +#line 532 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->name = yyvsp[-2].str; @@ -5294,7 +5393,7 @@ case 67: ; break;} case 68: -#line 536 "gram.y" +#line 539 "gram.y" { VariableSetStmt *n = makeNode(VariableSetStmt); n->name = "timezone"; @@ -5303,7 +5402,29 @@ case 68: ; break;} case 69: -#line 543 "gram.y" +#line 546 "gram.y" +{ + VariableSetStmt *n = makeNode(VariableSetStmt); + n->name = "XactIsoLevel"; + n->value = yyvsp[0].str; + if (strcasecmp(n->value, "COMMITTED")) + elog(ERROR,"parser: syntax error at or near \"%s\"", n->value); + yyval.node = (Node *) n; + ; + break;} +case 70: +#line 555 "gram.y" +{ + VariableSetStmt *n = makeNode(VariableSetStmt); + n->name = "XactIsoLevel"; + n->value = yyvsp[0].str; + if (strcasecmp(n->value, "SERIALIZABLE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", n->value); + yyval.node = (Node *) n; + ; + break;} +case 71: +#line 564 "gram.y" { #ifdef MB VariableSetStmt *n = makeNode(VariableSetStmt); @@ -5315,60 +5436,76 @@ case 69: #endif ; break;} -case 70: -#line 555 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 71: -#line 556 "gram.y" -{ yyval.str = NULL; ; - break;} case 72: -#line 559 "gram.y" +#line 576 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 73: -#line 560 "gram.y" +#line 577 "gram.y" { yyval.str = NULL; ; break;} case 74: -#line 561 "gram.y" -{ yyval.str = NULL; ; +#line 580 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 75: -#line 565 "gram.y" -{ - VariableShowStmt *n = makeNode(VariableShowStmt); - n->name = yyvsp[0].str; - yyval.node = (Node *) n; - ; +#line 581 "gram.y" +{ yyval.str = NULL; ; break;} case 76: -#line 571 "gram.y" -{ - VariableShowStmt *n = makeNode(VariableShowStmt); - n->name = "timezone"; - yyval.node = (Node *) n; - ; +#line 582 "gram.y" +{ yyval.str = NULL; ; break;} case 77: -#line 579 "gram.y" +#line 586 "gram.y" { - VariableResetStmt *n = makeNode(VariableResetStmt); + VariableShowStmt *n = makeNode(VariableShowStmt); n->name = yyvsp[0].str; yyval.node = (Node *) n; ; break;} case 78: -#line 585 "gram.y" +#line 592 "gram.y" +{ + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = "timezone"; + yyval.node = (Node *) n; + ; + break;} +case 79: +#line 598 "gram.y" +{ + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = "XactIsoLevel"; + yyval.node = (Node *) n; + ; + break;} +case 80: +#line 606 "gram.y" +{ + VariableResetStmt *n = makeNode(VariableResetStmt); + n->name = yyvsp[0].str; + yyval.node = (Node *) n; + ; + break;} +case 81: +#line 612 "gram.y" { VariableResetStmt *n = makeNode(VariableResetStmt); n->name = "timezone"; yyval.node = (Node *) n; ; break;} -case 79: -#line 601 "gram.y" +case 82: +#line 618 "gram.y" +{ + VariableResetStmt *n = makeNode(VariableResetStmt); + n->name = "XactIsoLevel"; + yyval.node = (Node *) n; + ; + break;} +case 83: +#line 634 "gram.y" { AddAttrStmt *n = makeNode(AddAttrStmt); n->relname = yyvsp[-2].str; @@ -5377,14 +5514,14 @@ case 79: yyval.node = (Node *)n; ; break;} -case 80: -#line 611 "gram.y" +case 84: +#line 644 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 81: -#line 615 "gram.y" +case 85: +#line 648 "gram.y" { Node *lp = lfirst(yyvsp[-1].list); @@ -5393,32 +5530,32 @@ case 81: yyval.node = lp; ; break;} -case 82: -#line 623 "gram.y" +case 86: +#line 656 "gram.y" { elog(ERROR,"ALTER TABLE/DROP COLUMN not yet implemented"); ; break;} -case 83: -#line 625 "gram.y" +case 87: +#line 658 "gram.y" { elog(ERROR,"ALTER TABLE/ALTER COLUMN/SET DEFAULT not yet implemented"); ; break;} -case 84: -#line 627 "gram.y" +case 88: +#line 660 "gram.y" { elog(ERROR,"ALTER TABLE/ALTER COLUMN/DROP DEFAULT not yet implemented"); ; break;} -case 85: -#line 629 "gram.y" +case 89: +#line 662 "gram.y" { elog(ERROR,"ALTER TABLE/ADD CONSTRAINT not yet implemented"); ; break;} -case 86: -#line 641 "gram.y" +case 90: +#line 674 "gram.y" { ClosePortalStmt *n = makeNode(ClosePortalStmt); n->portalname = yyvsp[0].str; yyval.node = (Node *)n; ; break;} -case 87: -#line 658 "gram.y" +case 91: +#line 691 "gram.y" { CopyStmt *n = makeNode(CopyStmt); n->binary = yyvsp[-5].boolean; @@ -5430,52 +5567,52 @@ case 87: yyval.node = (Node *)n; ; break;} -case 88: -#line 671 "gram.y" +case 92: +#line 704 "gram.y" { yyval.ival = TO; ; break;} -case 89: -#line 673 "gram.y" +case 93: +#line 706 "gram.y" { yyval.ival = FROM; ; break;} -case 90: -#line 681 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 91: -#line 682 "gram.y" -{ yyval.str = NULL; ; - break;} -case 92: -#line 683 "gram.y" -{ yyval.str = NULL; ; - break;} -case 93: -#line 686 "gram.y" -{ yyval.boolean = TRUE; ; - break;} case 94: -#line 687 "gram.y" -{ yyval.boolean = FALSE; ; +#line 714 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 95: -#line 690 "gram.y" -{ yyval.boolean = TRUE; ; +#line 715 "gram.y" +{ yyval.str = NULL; ; break;} case 96: -#line 691 "gram.y" -{ yyval.boolean = FALSE; ; +#line 716 "gram.y" +{ yyval.str = NULL; ; break;} case 97: -#line 697 "gram.y" -{ yyval.str = yyvsp[0].str; ; +#line 719 "gram.y" +{ yyval.boolean = TRUE; ; break;} case 98: -#line 698 "gram.y" -{ yyval.str = "\t"; ; +#line 720 "gram.y" +{ yyval.boolean = FALSE; ; break;} case 99: -#line 711 "gram.y" +#line 723 "gram.y" +{ yyval.boolean = TRUE; ; + break;} +case 100: +#line 724 "gram.y" +{ yyval.boolean = FALSE; ; + break;} +case 101: +#line 730 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 102: +#line 731 "gram.y" +{ yyval.str = "\t"; ; + break;} +case 103: +#line 744 "gram.y" { CreateStmt *n = makeNode(CreateStmt); n->relname = yyvsp[-4].str; @@ -5485,8 +5622,8 @@ case 99: yyval.node = (Node *)n; ; break;} -case 100: -#line 722 "gram.y" +case 104: +#line 755 "gram.y" { if (yyvsp[0].node != NULL) yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); @@ -5494,8 +5631,8 @@ case 100: yyval.list = yyvsp[-2].list; ; break;} -case 101: -#line 729 "gram.y" +case 105: +#line 762 "gram.y" { if (yyvsp[0].node != NULL) yyval.list = lcons(yyvsp[0].node, NIL); @@ -5503,20 +5640,20 @@ case 101: yyval.list = NULL; ; break;} -case 102: -#line 735 "gram.y" +case 106: +#line 768 "gram.y" { yyval.list = NULL; ; break;} -case 103: -#line 738 "gram.y" +case 107: +#line 771 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 104: -#line 739 "gram.y" +case 108: +#line 772 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 105: -#line 743 "gram.y" +case 109: +#line 776 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = yyvsp[-2].str; @@ -5527,8 +5664,8 @@ case 105: yyval.node = (Node *)n; ; break;} -case 106: -#line 753 "gram.y" +case 110: +#line 786 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = yyvsp[-2].str; @@ -5542,16 +5679,16 @@ case 106: yyval.node = (Node *)n; ; break;} -case 107: -#line 767 "gram.y" +case 111: +#line 800 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 108: -#line 768 "gram.y" +case 112: +#line 801 "gram.y" { yyval.list = NULL; ; break;} -case 109: -#line 772 "gram.y" +case 113: +#line 805 "gram.y" { if (yyvsp[0].node != NULL) yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); @@ -5559,8 +5696,8 @@ case 109: yyval.list = yyvsp[-1].list; ; break;} -case 110: -#line 779 "gram.y" +case 114: +#line 812 "gram.y" { if (yyvsp[0].node != NULL) yyval.list = lcons(yyvsp[0].node, NIL); @@ -5568,8 +5705,8 @@ case 110: yyval.list = NULL; ; break;} -case 111: -#line 788 "gram.y" +case 115: +#line 821 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; @@ -5579,24 +5716,24 @@ case 111: yyval.list = lcons((Node *)n, NIL); ; break;} -case 112: -#line 796 "gram.y" +case 116: +#line 829 "gram.y" { yyval.list = NULL; ; break;} -case 113: -#line 801 "gram.y" +case 117: +#line 834 "gram.y" { Constraint *n = (Constraint *)yyvsp[0].node; if (n != NULL) n->name = fmtId(yyvsp[-1].str); yyval.node = yyvsp[0].node; ; break;} -case 114: -#line 807 "gram.y" +case 118: +#line 840 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 115: -#line 826 "gram.y" +case 119: +#line 859 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; @@ -5606,8 +5743,8 @@ case 115: yyval.node = (Node *)n; ; break;} -case 116: -#line 835 "gram.y" +case 120: +#line 868 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_DEFAULT; @@ -5617,8 +5754,8 @@ case 116: yyval.node = (Node *)n; ; break;} -case 117: -#line 844 "gram.y" +case 121: +#line 877 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_DEFAULT; @@ -5628,8 +5765,8 @@ case 117: yyval.node = (Node *)n; ; break;} -case 118: -#line 853 "gram.y" +case 122: +#line 886 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_NOTNULL; @@ -5639,8 +5776,8 @@ case 118: yyval.node = (Node *)n; ; break;} -case 119: -#line 862 "gram.y" +case 123: +#line 895 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; @@ -5650,8 +5787,8 @@ case 119: yyval.node = (Node *)n; ; break;} -case 120: -#line 871 "gram.y" +case 124: +#line 904 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; @@ -5661,173 +5798,173 @@ case 120: yyval.node = (Node *)n; ; break;} -case 121: -#line 880 "gram.y" +case 125: +#line 913 "gram.y" { elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented"); yyval.node = NULL; ; break;} -case 122: -#line 887 "gram.y" +case 126: +#line 920 "gram.y" { yyval.list = lappend(yyvsp[-2].list,makeString(",")); yyval.list = nconc(yyval.list, yyvsp[0].list); ; break;} -case 123: -#line 892 "gram.y" +case 127: +#line 925 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 124: -#line 905 "gram.y" +case 128: +#line 938 "gram.y" { yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ; break;} -case 125: -#line 907 "gram.y" +case 129: +#line 940 "gram.y" { yyval.list = lcons( makeString( "-"), yyvsp[0].list); ; break;} -case 126: -#line 909 "gram.y" +case 130: +#line 942 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "+"), yyvsp[0].list)); ; break;} -case 127: -#line 911 "gram.y" +case 131: +#line 944 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "-"), yyvsp[0].list)); ; break;} -case 128: -#line 913 "gram.y" +case 132: +#line 946 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "/"), yyvsp[0].list)); ; break;} -case 129: -#line 915 "gram.y" +case 133: +#line 948 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "*"), yyvsp[0].list)); ; break;} -case 130: -#line 917 "gram.y" -{ elog(ERROR,"boolean expressions not supported in DEFAULT"); ; - break;} -case 131: -#line 919 "gram.y" -{ elog(ERROR,"boolean expressions not supported in DEFAULT"); ; - break;} -case 132: -#line 921 "gram.y" -{ elog(ERROR,"boolean expressions not supported in DEFAULT"); ; - break;} -case 133: -#line 923 "gram.y" -{ yyval.list = lcons( makeString( ":"), yyvsp[0].list); ; - break;} case 134: -#line 925 "gram.y" -{ yyval.list = lcons( makeString( ";"), yyvsp[0].list); ; +#line 950 "gram.y" +{ elog(ERROR,"boolean expressions not supported in DEFAULT"); ; break;} case 135: -#line 927 "gram.y" -{ yyval.list = lcons( makeString( "|"), yyvsp[0].list); ; +#line 952 "gram.y" +{ elog(ERROR,"boolean expressions not supported in DEFAULT"); ; break;} case 136: -#line 929 "gram.y" +#line 954 "gram.y" +{ elog(ERROR,"boolean expressions not supported in DEFAULT"); ; + break;} +case 137: +#line 956 "gram.y" +{ yyval.list = lcons( makeString( ":"), yyvsp[0].list); ; + break;} +case 138: +#line 958 "gram.y" +{ yyval.list = lcons( makeString( ";"), yyvsp[0].list); ; + break;} +case 139: +#line 960 "gram.y" +{ yyval.list = lcons( makeString( "|"), yyvsp[0].list); ; + break;} +case 140: +#line 962 "gram.y" { yyvsp[0].typnam->name = fmtId(yyvsp[0].typnam->name); yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-2].list), makeList( makeString("AS"), yyvsp[0].typnam, -1)); ; break;} -case 137: -#line 934 "gram.y" +case 141: +#line 967 "gram.y" { yyvsp[-1].typnam->name = fmtId(yyvsp[-1].typnam->name); yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-3].list), makeList( makeString("AS"), yyvsp[-1].typnam, -1)); ; break;} -case 138: -#line 939 "gram.y" +case 142: +#line 972 "gram.y" { yyval.list = lappend( lcons( makeString( "("), yyvsp[-1].list), makeString( ")")); ; break;} -case 139: -#line 941 "gram.y" +case 143: +#line 974 "gram.y" { yyval.list = makeList( makeString(yyvsp[-2].str), makeString("("), -1); yyval.list = lappend( yyval.list, makeString(")")); ; break;} -case 140: -#line 946 "gram.y" +case 144: +#line 979 "gram.y" { yyval.list = makeList( makeString(yyvsp[-3].str), makeString("("), -1); yyval.list = nconc( yyval.list, yyvsp[-1].list); yyval.list = lappend( yyval.list, makeString(")")); ; break;} -case 141: -#line 952 "gram.y" +case 145: +#line 985 "gram.y" { if (!strcmp("<=", yyvsp[-1].str) || !strcmp(">=", yyvsp[-1].str)) elog(ERROR,"boolean expressions not supported in DEFAULT"); yyval.list = nconc( yyvsp[-2].list, lcons( makeString( yyvsp[-1].str), yyvsp[0].list)); ; break;} -case 142: -#line 958 "gram.y" +case 146: +#line 991 "gram.y" { yyval.list = lcons( makeString( yyvsp[-1].str), yyvsp[0].list); ; break;} -case 143: -#line 960 "gram.y" +case 147: +#line 993 "gram.y" { yyval.list = lappend( yyvsp[-1].list, makeString( yyvsp[0].str)); ; break;} -case 144: -#line 963 "gram.y" +case 148: +#line 996 "gram.y" { yyval.list = lcons( makeString( "date( 'current'::datetime + '0 sec')"), NIL); ; break;} -case 145: -#line 965 "gram.y" +case 149: +#line 998 "gram.y" { yyval.list = lcons( makeString( "'now'::time"), NIL); ; break;} -case 146: -#line 967 "gram.y" +case 150: +#line 1000 "gram.y" { if (yyvsp[-1].ival != 0) elog(NOTICE,"CURRENT_TIME(%d) precision not implemented; zero used instead",yyvsp[-1].ival); yyval.list = lcons( makeString( "'now'::time"), NIL); ; break;} -case 147: -#line 973 "gram.y" +case 151: +#line 1006 "gram.y" { yyval.list = lcons( makeString( "now()"), NIL); ; break;} -case 148: -#line 975 "gram.y" +case 152: +#line 1008 "gram.y" { if (yyvsp[-1].ival != 0) elog(NOTICE,"CURRENT_TIMESTAMP(%d) precision not implemented; zero used instead",yyvsp[-1].ival); yyval.list = lcons( makeString( "now()"), NIL); ; break;} -case 149: -#line 981 "gram.y" +case 153: +#line 1014 "gram.y" { yyval.list = lcons( makeString( "CURRENT_USER"), NIL); ; break;} -case 150: -#line 983 "gram.y" +case 154: +#line 1016 "gram.y" { yyval.list = lcons( makeString( "USER"), NIL); ; break;} -case 151: -#line 991 "gram.y" +case 155: +#line 1024 "gram.y" { Constraint *n = (Constraint *)yyvsp[0].node; if (n != NULL) n->name = fmtId(yyvsp[-1].str); yyval.node = yyvsp[0].node; ; break;} -case 152: -#line 997 "gram.y" +case 156: +#line 1030 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 153: -#line 1001 "gram.y" +case 157: +#line 1034 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_CHECK; @@ -5836,8 +5973,8 @@ case 153: yyval.node = (Node *)n; ; break;} -case 154: -#line 1009 "gram.y" +case 158: +#line 1042 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_UNIQUE; @@ -5847,8 +5984,8 @@ case 154: yyval.node = (Node *)n; ; break;} -case 155: -#line 1018 "gram.y" +case 159: +#line 1051 "gram.y" { Constraint *n = makeNode(Constraint); n->contype = CONSTR_PRIMARY; @@ -5858,183 +5995,183 @@ case 155: yyval.node = (Node *)n; ; break;} -case 156: -#line 1027 "gram.y" +case 160: +#line 1060 "gram.y" { elog(NOTICE,"CREATE TABLE/FOREIGN KEY clause ignored; not yet implemented"); yyval.node = NULL; ; break;} -case 157: -#line 1034 "gram.y" +case 161: +#line 1067 "gram.y" { yyval.list = lappend(yyvsp[-2].list,makeString(",")); yyval.list = nconc(yyval.list, yyvsp[0].list); ; break;} -case 158: -#line 1039 "gram.y" +case 162: +#line 1072 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 159: -#line 1045 "gram.y" +case 163: +#line 1078 "gram.y" { yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ; break;} -case 160: -#line 1047 "gram.y" +case 164: +#line 1080 "gram.y" { yyval.list = lcons( makeString("NULL"), NIL); ; break;} -case 161: -#line 1049 "gram.y" +case 165: +#line 1082 "gram.y" { yyval.list = lcons( makeString(fmtId(yyvsp[0].str)), NIL); ; break;} -case 162: -#line 1053 "gram.y" +case 166: +#line 1086 "gram.y" { yyval.list = lcons( makeString( "-"), yyvsp[0].list); ; break;} -case 163: -#line 1055 "gram.y" +case 167: +#line 1088 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "+"), yyvsp[0].list)); ; break;} -case 164: -#line 1057 "gram.y" +case 168: +#line 1090 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "-"), yyvsp[0].list)); ; break;} -case 165: -#line 1059 "gram.y" +case 169: +#line 1092 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "/"), yyvsp[0].list)); ; break;} -case 166: -#line 1061 "gram.y" +case 170: +#line 1094 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "*"), yyvsp[0].list)); ; break;} -case 167: -#line 1063 "gram.y" +case 171: +#line 1096 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "="), yyvsp[0].list)); ; break;} -case 168: -#line 1065 "gram.y" +case 172: +#line 1098 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "<"), yyvsp[0].list)); ; break;} -case 169: -#line 1067 "gram.y" +case 173: +#line 1100 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( ">"), yyvsp[0].list)); ; break;} -case 170: -#line 1069 "gram.y" +case 174: +#line 1102 "gram.y" { yyval.list = lcons( makeString( ":"), yyvsp[0].list); ; break;} -case 171: -#line 1071 "gram.y" +case 175: +#line 1104 "gram.y" { yyval.list = lcons( makeString( ";"), yyvsp[0].list); ; break;} -case 172: -#line 1073 "gram.y" +case 176: +#line 1106 "gram.y" { yyval.list = lcons( makeString( "|"), yyvsp[0].list); ; break;} -case 173: -#line 1075 "gram.y" +case 177: +#line 1108 "gram.y" { yyvsp[0].typnam->name = fmtId(yyvsp[0].typnam->name); yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-2].list), makeList( makeString("AS"), yyvsp[0].typnam, -1)); ; break;} -case 174: -#line 1080 "gram.y" +case 178: +#line 1113 "gram.y" { yyvsp[-1].typnam->name = fmtId(yyvsp[-1].typnam->name); yyval.list = nconc( lcons( makeString( "CAST"), yyvsp[-3].list), makeList( makeString("AS"), yyvsp[-1].typnam, -1)); ; break;} -case 175: -#line 1085 "gram.y" +case 179: +#line 1118 "gram.y" { yyval.list = lappend( lcons( makeString( "("), yyvsp[-1].list), makeString( ")")); ; break;} -case 176: -#line 1087 "gram.y" +case 180: +#line 1120 "gram.y" { yyval.list = makeList( makeString(yyvsp[-2].str), makeString("("), -1); yyval.list = lappend( yyval.list, makeString(")")); ; break;} -case 177: -#line 1092 "gram.y" +case 181: +#line 1125 "gram.y" { yyval.list = makeList( makeString(yyvsp[-3].str), makeString("("), -1); yyval.list = nconc( yyval.list, yyvsp[-1].list); yyval.list = lappend( yyval.list, makeString(")")); ; break;} -case 178: -#line 1098 "gram.y" +case 182: +#line 1131 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( yyvsp[-1].str), yyvsp[0].list)); ; break;} -case 179: -#line 1100 "gram.y" +case 183: +#line 1133 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "LIKE"), yyvsp[0].list)); ; break;} -case 180: -#line 1102 "gram.y" +case 184: +#line 1135 "gram.y" { yyval.list = nconc( yyvsp[-3].list, lcons( makeString( "NOT LIKE"), yyvsp[0].list)); ; break;} -case 181: -#line 1104 "gram.y" +case 185: +#line 1137 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "AND"), yyvsp[0].list)); ; break;} -case 182: -#line 1106 "gram.y" +case 186: +#line 1139 "gram.y" { yyval.list = nconc( yyvsp[-2].list, lcons( makeString( "OR"), yyvsp[0].list)); ; break;} -case 183: -#line 1108 "gram.y" +case 187: +#line 1141 "gram.y" { yyval.list = lcons( makeString( "NOT"), yyvsp[0].list); ; break;} -case 184: -#line 1110 "gram.y" +case 188: +#line 1143 "gram.y" { yyval.list = lcons( makeString( yyvsp[-1].str), yyvsp[0].list); ; break;} -case 185: -#line 1112 "gram.y" +case 189: +#line 1145 "gram.y" { yyval.list = lappend( yyvsp[-1].list, makeString( yyvsp[0].str)); ; break;} -case 186: -#line 1114 "gram.y" +case 190: +#line 1147 "gram.y" { yyval.list = lappend( yyvsp[-1].list, makeString( "IS NULL")); ; break;} -case 187: -#line 1116 "gram.y" +case 191: +#line 1149 "gram.y" { yyval.list = lappend( yyvsp[-2].list, makeString( "IS NULL")); ; break;} -case 188: -#line 1118 "gram.y" +case 192: +#line 1151 "gram.y" { yyval.list = lappend( yyvsp[-1].list, makeString( "IS NOT NULL")); ; break;} -case 189: -#line 1120 "gram.y" +case 193: +#line 1153 "gram.y" { yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT NULL")); ; break;} -case 190: -#line 1122 "gram.y" +case 194: +#line 1155 "gram.y" { yyval.list = lappend( yyvsp[-2].list, makeString( "IS TRUE")); ; break;} -case 191: -#line 1124 "gram.y" +case 195: +#line 1157 "gram.y" { yyval.list = lappend( yyvsp[-2].list, makeString( "IS FALSE")); ; break;} -case 192: -#line 1126 "gram.y" +case 196: +#line 1159 "gram.y" { yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT TRUE")); ; break;} -case 193: -#line 1128 "gram.y" +case 197: +#line 1161 "gram.y" { yyval.list = lappend( yyvsp[-3].list, makeString( "IS NOT FALSE")); ; break;} -case 194: -#line 1130 "gram.y" +case 198: +#line 1163 "gram.y" { yyval.list = lappend( yyvsp[-4].list, makeString("IN")); yyval.list = lappend( yyval.list, makeString("(")); @@ -6042,8 +6179,8 @@ case 194: yyval.list = lappend( yyval.list, makeString(")")); ; break;} -case 195: -#line 1137 "gram.y" +case 199: +#line 1170 "gram.y" { yyval.list = lappend( yyvsp[-5].list, makeString("NOT IN")); yyval.list = lappend( yyval.list, makeString("(")); @@ -6051,8 +6188,8 @@ case 195: yyval.list = lappend( yyval.list, makeString(")")); ; break;} -case 196: -#line 1144 "gram.y" +case 200: +#line 1177 "gram.y" { yyval.list = lappend( yyvsp[-4].list, makeString("BETWEEN")); yyval.list = nconc( yyval.list, yyvsp[-2].list); @@ -6060,8 +6197,8 @@ case 196: yyval.list = nconc( yyval.list, yyvsp[0].list); ; break;} -case 197: -#line 1151 "gram.y" +case 201: +#line 1184 "gram.y" { yyval.list = lappend( yyvsp[-5].list, makeString("NOT BETWEEN")); yyval.list = nconc( yyval.list, yyvsp[-2].list); @@ -6069,81 +6206,81 @@ case 197: yyval.list = nconc( yyval.list, yyvsp[0].list); ; break;} -case 198: -#line 1160 "gram.y" +case 202: +#line 1193 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString(",")); yyval.list = nconc(yyval.list, yyvsp[0].list); ; break;} -case 199: -#line 1165 "gram.y" +case 203: +#line 1198 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 200: -#line 1171 "gram.y" +case 204: +#line 1204 "gram.y" { yyval.list = makeConstantList((A_Const *) yyvsp[0].node); ; break;} -case 201: -#line 1174 "gram.y" -{ yyval.str = NULL; ; - break;} -case 202: -#line 1175 "gram.y" -{ yyval.str = NULL; ; - break;} -case 203: -#line 1176 "gram.y" -{ yyval.str = NULL; ; - break;} -case 204: -#line 1179 "gram.y" -{ yyval.list = NIL; ; - break;} case 205: -#line 1180 "gram.y" -{ yyval.list = NIL; ; +#line 1207 "gram.y" +{ yyval.str = NULL; ; break;} case 206: -#line 1181 "gram.y" -{ yyval.list = NIL; ; +#line 1208 "gram.y" +{ yyval.str = NULL; ; break;} case 207: -#line 1184 "gram.y" -{ yyval.list = NIL; ; +#line 1209 "gram.y" +{ yyval.str = NULL; ; break;} case 208: -#line 1185 "gram.y" +#line 1212 "gram.y" { yyval.list = NIL; ; break;} case 209: -#line 1188 "gram.y" -{ yyval.str = NULL; ; - break;} -case 210: -#line 1189 "gram.y" -{ yyval.str = NULL; ; - break;} -case 211: -#line 1190 "gram.y" -{ yyval.str = NULL; ; - break;} -case 212: -#line 1191 "gram.y" -{ yyval.str = NULL; ; - break;} -case 213: -#line 1194 "gram.y" -{ yyval.list = yyvsp[-1].list; ; - break;} -case 214: -#line 1195 "gram.y" +#line 1213 "gram.y" { yyval.list = NIL; ; break;} +case 210: +#line 1214 "gram.y" +{ yyval.list = NIL; ; + break;} +case 211: +#line 1217 "gram.y" +{ yyval.list = NIL; ; + break;} +case 212: +#line 1218 "gram.y" +{ yyval.list = NIL; ; + break;} +case 213: +#line 1221 "gram.y" +{ yyval.str = NULL; ; + break;} +case 214: +#line 1222 "gram.y" +{ yyval.str = NULL; ; + break;} case 215: -#line 1199 "gram.y" +#line 1223 "gram.y" +{ yyval.str = NULL; ; + break;} +case 216: +#line 1224 "gram.y" +{ yyval.str = NULL; ; + break;} +case 217: +#line 1227 "gram.y" +{ yyval.list = yyvsp[-1].list; ; + break;} +case 218: +#line 1228 "gram.y" +{ yyval.list = NIL; ; + break;} +case 219: +#line 1232 "gram.y" { SelectStmt *n = (SelectStmt *)yyvsp[0].node; if (yyvsp[-2].list != NIL) @@ -6152,24 +6289,24 @@ case 215: yyval.node = (Node *)n; ; break;} -case 216: -#line 1208 "gram.y" +case 220: +#line 1241 "gram.y" { yyval.list = yyvsp[-1].list; ; break;} -case 217: -#line 1209 "gram.y" +case 221: +#line 1242 "gram.y" { yyval.list = NULL; ; break;} -case 218: -#line 1212 "gram.y" +case 222: +#line 1245 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 219: -#line 1213 "gram.y" +case 223: +#line 1246 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 220: -#line 1217 "gram.y" +case 224: +#line 1250 "gram.y" { ColumnDef *n = makeNode(ColumnDef); n->colname = yyvsp[0].str; @@ -6180,8 +6317,8 @@ case 220: yyval.node = (Node *)n; ; break;} -case 221: -#line 1237 "gram.y" +case 225: +#line 1270 "gram.y" { CreateSeqStmt *n = makeNode(CreateSeqStmt); n->seqname = yyvsp[-1].str; @@ -6189,98 +6326,98 @@ case 221: yyval.node = (Node *)n; ; break;} -case 222: -#line 1246 "gram.y" +case 226: +#line 1279 "gram.y" { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].defelt); ; break;} -case 223: -#line 1247 "gram.y" +case 227: +#line 1280 "gram.y" { yyval.list = NIL; ; break;} -case 224: -#line 1251 "gram.y" +case 228: +#line 1284 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = "cache"; yyval.defelt->arg = (Node *)yyvsp[0].value; ; break;} -case 225: -#line 1257 "gram.y" +case 229: +#line 1290 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = "cycle"; yyval.defelt->arg = (Node *)NULL; ; break;} -case 226: -#line 1263 "gram.y" +case 230: +#line 1296 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = "increment"; yyval.defelt->arg = (Node *)yyvsp[0].value; ; break;} -case 227: -#line 1269 "gram.y" +case 231: +#line 1302 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = "maxvalue"; yyval.defelt->arg = (Node *)yyvsp[0].value; ; break;} -case 228: -#line 1275 "gram.y" +case 232: +#line 1308 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = "minvalue"; yyval.defelt->arg = (Node *)yyvsp[0].value; ; break;} -case 229: -#line 1281 "gram.y" +case 233: +#line 1314 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = "start"; yyval.defelt->arg = (Node *)yyvsp[0].value; ; break;} -case 230: -#line 1288 "gram.y" +case 234: +#line 1321 "gram.y" { yyval.value = yyvsp[0].value; ; break;} -case 231: -#line 1289 "gram.y" +case 235: +#line 1322 "gram.y" { yyval.value = yyvsp[0].value; ; break;} -case 232: -#line 1292 "gram.y" +case 236: +#line 1325 "gram.y" { yyval.value = makeFloat(yyvsp[0].dval); ; break;} -case 233: -#line 1296 "gram.y" +case 237: +#line 1329 "gram.y" { yyval.value = makeFloat(yyvsp[0].dval); yyval.value->val.dval = - yyval.value->val.dval; ; break;} -case 234: -#line 1303 "gram.y" +case 238: +#line 1336 "gram.y" { yyval.value = makeInteger(yyvsp[0].ival); ; break;} -case 235: -#line 1307 "gram.y" +case 239: +#line 1340 "gram.y" { yyval.value = makeInteger(yyvsp[0].ival); yyval.value->val.ival = - yyval.value->val.ival; ; break;} -case 236: -#line 1323 "gram.y" +case 240: +#line 1356 "gram.y" { CreatePLangStmt *n = makeNode(CreatePLangStmt); n->plname = yyvsp[-4].str; @@ -6290,24 +6427,24 @@ case 236: yyval.node = (Node *)n; ; break;} -case 237: -#line 1333 "gram.y" +case 241: +#line 1366 "gram.y" { yyval.boolean = TRUE; ; break;} -case 238: -#line 1334 "gram.y" +case 242: +#line 1367 "gram.y" { yyval.boolean = FALSE; ; break;} -case 239: -#line 1337 "gram.y" +case 243: +#line 1370 "gram.y" { DropPLangStmt *n = makeNode(DropPLangStmt); n->plname = yyvsp[0].str; yyval.node = (Node *)n; ; break;} -case 240: -#line 1355 "gram.y" +case 244: +#line 1388 "gram.y" { CreateTrigStmt *n = makeNode(CreateTrigStmt); n->trigname = yyvsp[-11].str; @@ -6320,108 +6457,108 @@ case 240: yyval.node = (Node *)n; ; break;} -case 241: -#line 1368 "gram.y" +case 245: +#line 1401 "gram.y" { yyval.boolean = TRUE; ; break;} -case 242: -#line 1369 "gram.y" +case 246: +#line 1402 "gram.y" { yyval.boolean = FALSE; ; break;} -case 243: -#line 1373 "gram.y" +case 247: +#line 1406 "gram.y" { char *e = palloc (4); e[0] = yyvsp[0].chr; e[1] = 0; yyval.str = e; ; break;} -case 244: -#line 1378 "gram.y" +case 248: +#line 1411 "gram.y" { char *e = palloc (4); e[0] = yyvsp[-2].chr; e[1] = yyvsp[0].chr; e[2] = 0; yyval.str = e; ; break;} -case 245: -#line 1383 "gram.y" +case 249: +#line 1416 "gram.y" { char *e = palloc (4); e[0] = yyvsp[-4].chr; e[1] = yyvsp[-2].chr; e[2] = yyvsp[0].chr; e[3] = 0; yyval.str = e; ; break;} -case 246: -#line 1390 "gram.y" +case 250: +#line 1423 "gram.y" { yyval.chr = 'i'; ; break;} -case 247: -#line 1391 "gram.y" +case 251: +#line 1424 "gram.y" { yyval.chr = 'd'; ; break;} -case 248: -#line 1392 "gram.y" +case 252: +#line 1425 "gram.y" { yyval.chr = 'u'; ; break;} -case 249: -#line 1396 "gram.y" +case 253: +#line 1429 "gram.y" { yyval.boolean = yyvsp[0].boolean; ; break;} -case 250: -#line 1401 "gram.y" -{ yyval.boolean = TRUE; ; - break;} -case 251: -#line 1402 "gram.y" -{ yyval.boolean = FALSE; ; - break;} -case 252: -#line 1405 "gram.y" -{ yyval.boolean = TRUE; ; - break;} -case 253: -#line 1406 "gram.y" -{ yyval.boolean = FALSE; ; - break;} case 254: -#line 1410 "gram.y" -{ yyval.list = lcons(yyvsp[0].str, NIL); ; +#line 1434 "gram.y" +{ yyval.boolean = TRUE; ; break;} case 255: -#line 1412 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].str); ; +#line 1435 "gram.y" +{ yyval.boolean = FALSE; ; break;} case 256: -#line 1414 "gram.y" -{ yyval.list = NIL; ; +#line 1438 "gram.y" +{ yyval.boolean = TRUE; ; break;} case 257: -#line 1418 "gram.y" +#line 1439 "gram.y" +{ yyval.boolean = FALSE; ; + break;} +case 258: +#line 1443 "gram.y" +{ yyval.list = lcons(yyvsp[0].str, NIL); ; + break;} +case 259: +#line 1445 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].str); ; + break;} +case 260: +#line 1447 "gram.y" +{ yyval.list = NIL; ; + break;} +case 261: +#line 1451 "gram.y" { char *s = (char *) palloc (256); sprintf (s, "%d", yyvsp[0].ival); yyval.str = s; ; break;} -case 258: -#line 1424 "gram.y" +case 262: +#line 1457 "gram.y" { char *s = (char *) palloc (256); sprintf (s, "%g", yyvsp[0].dval); yyval.str = s; ; break;} -case 259: -#line 1429 "gram.y" +case 263: +#line 1462 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 260: -#line 1430 "gram.y" +case 264: +#line 1463 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 261: -#line 1434 "gram.y" +case 265: +#line 1467 "gram.y" { DropTrigStmt *n = makeNode(DropTrigStmt); n->trigname = yyvsp[-2].str; @@ -6429,107 +6566,107 @@ case 261: yyval.node = (Node *) n; ; break;} -case 262: -#line 1451 "gram.y" +case 266: +#line 1484 "gram.y" { yyvsp[0].dstmt->defType = yyvsp[-1].ival; yyval.node = (Node *)yyvsp[0].dstmt; ; break;} -case 263: -#line 1458 "gram.y" +case 267: +#line 1491 "gram.y" { yyval.dstmt = makeNode(DefineStmt); yyval.dstmt->defname = yyvsp[-1].str; yyval.dstmt->definition = yyvsp[0].list; ; break;} -case 264: -#line 1465 "gram.y" +case 268: +#line 1498 "gram.y" { yyval.ival = OPERATOR; ; break;} -case 265: -#line 1466 "gram.y" +case 269: +#line 1499 "gram.y" { yyval.ival = TYPE_P; ; break;} -case 266: -#line 1467 "gram.y" +case 270: +#line 1500 "gram.y" { yyval.ival = AGGREGATE; ; break;} -case 267: -#line 1470 "gram.y" +case 271: +#line 1503 "gram.y" { yyval.str = "procedure"; ; break;} -case 268: -#line 1471 "gram.y" +case 272: +#line 1504 "gram.y" { yyval.str = "join"; ; break;} -case 269: -#line 1472 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 270: -#line 1473 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 271: -#line 1474 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 272: -#line 1477 "gram.y" -{ yyval.list = yyvsp[-1].list; ; - break;} case 273: -#line 1480 "gram.y" -{ yyval.list = lcons(yyvsp[0].defelt, NIL); ; +#line 1505 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 274: -#line 1481 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); ; +#line 1506 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 275: -#line 1485 "gram.y" +#line 1507 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 276: +#line 1510 "gram.y" +{ yyval.list = yyvsp[-1].list; ; + break;} +case 277: +#line 1513 "gram.y" +{ yyval.list = lcons(yyvsp[0].defelt, NIL); ; + break;} +case 278: +#line 1514 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].defelt); ; + break;} +case 279: +#line 1518 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = yyvsp[-2].str; yyval.defelt->arg = (Node *)yyvsp[0].node; ; break;} -case 276: -#line 1491 "gram.y" +case 280: +#line 1524 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = yyvsp[0].str; yyval.defelt->arg = (Node *)NULL; ; break;} -case 277: -#line 1497 "gram.y" +case 281: +#line 1530 "gram.y" { yyval.defelt = makeNode(DefElem); yyval.defelt->defname = "default"; yyval.defelt->arg = (Node *)yyvsp[0].node; ; break;} -case 278: -#line 1504 "gram.y" +case 282: +#line 1537 "gram.y" { yyval.node = (Node *)makeString(yyvsp[0].str); ; break;} -case 279: -#line 1505 "gram.y" +case 283: +#line 1538 "gram.y" { yyval.node = (Node *)makeString(yyvsp[0].str); ; break;} -case 280: -#line 1506 "gram.y" +case 284: +#line 1539 "gram.y" { yyval.node = (Node *)yyvsp[0].value; ; break;} -case 281: -#line 1507 "gram.y" +case 285: +#line 1540 "gram.y" { yyval.node = (Node *)makeString(yyvsp[0].str); ; break;} -case 282: -#line 1509 "gram.y" +case 286: +#line 1542 "gram.y" { TypeName *n = makeNode(TypeName); n->name = yyvsp[0].str; @@ -6539,8 +6676,8 @@ case 282: yyval.node = (Node *)n; ; break;} -case 283: -#line 1528 "gram.y" +case 287: +#line 1561 "gram.y" { DestroyStmt *n = makeNode(DestroyStmt); n->relNames = yyvsp[0].list; @@ -6548,8 +6685,8 @@ case 283: yyval.node = (Node *)n; ; break;} -case 284: -#line 1535 "gram.y" +case 288: +#line 1568 "gram.y" { DestroyStmt *n = makeNode(DestroyStmt); n->relNames = yyvsp[0].list; @@ -6557,8 +6694,8 @@ case 284: yyval.node = (Node *)n; ; break;} -case 285: -#line 1554 "gram.y" +case 289: +#line 1587 "gram.y" { FetchStmt *n = makeNode(FetchStmt); if (yyvsp[-2].ival == RELATIVE) @@ -6579,8 +6716,8 @@ case 285: yyval.node = (Node *)n; ; break;} -case 286: -#line 1574 "gram.y" +case 290: +#line 1607 "gram.y" { FetchStmt *n = makeNode(FetchStmt); if (yyvsp[-1].ival < 0) @@ -6595,163 +6732,163 @@ case 286: yyval.node = (Node *)n; ; break;} -case 287: -#line 1589 "gram.y" +case 291: +#line 1622 "gram.y" { yyval.ival = FORWARD; ; break;} -case 288: -#line 1590 "gram.y" +case 292: +#line 1623 "gram.y" { yyval.ival = BACKWARD; ; break;} -case 289: -#line 1591 "gram.y" +case 293: +#line 1624 "gram.y" { yyval.ival = RELATIVE; ; break;} -case 290: -#line 1593 "gram.y" +case 294: +#line 1626 "gram.y" { elog(NOTICE,"FETCH/ABSOLUTE not supported, using RELATIVE"); yyval.ival = RELATIVE; ; break;} -case 291: -#line 1597 "gram.y" +case 295: +#line 1630 "gram.y" { yyval.ival = FORWARD; /* default */ ; break;} -case 292: -#line 1600 "gram.y" +case 296: +#line 1633 "gram.y" { yyval.ival = yyvsp[0].ival; ; break;} -case 293: -#line 1601 "gram.y" +case 297: +#line 1634 "gram.y" { yyval.ival = - yyvsp[0].ival; ; break;} -case 294: -#line 1602 "gram.y" +case 298: +#line 1635 "gram.y" { yyval.ival = 0; /* 0 means fetch all tuples*/ ; break;} -case 295: -#line 1603 "gram.y" +case 299: +#line 1636 "gram.y" { yyval.ival = 1; ; break;} -case 296: -#line 1604 "gram.y" +case 300: +#line 1637 "gram.y" { yyval.ival = -1; ; break;} -case 297: -#line 1605 "gram.y" +case 301: +#line 1638 "gram.y" { yyval.ival = 1; /*default*/ ; break;} -case 298: -#line 1608 "gram.y" +case 302: +#line 1641 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 299: -#line 1609 "gram.y" +case 303: +#line 1642 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 300: -#line 1610 "gram.y" +case 304: +#line 1643 "gram.y" { yyval.str = NULL; ; break;} -case 301: -#line 1622 "gram.y" +case 305: +#line 1655 "gram.y" { yyval.node = (Node*)makeAclStmt(yyvsp[-5].str,yyvsp[-3].list,yyvsp[-1].str,'+'); ; break;} -case 302: -#line 1628 "gram.y" +case 306: +#line 1661 "gram.y" { yyval.str = aclmakepriv("rwaR",0); ; break;} -case 303: -#line 1632 "gram.y" +case 307: +#line 1665 "gram.y" { yyval.str = aclmakepriv("rwaR",0); ; break;} -case 304: -#line 1636 "gram.y" +case 308: +#line 1669 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 305: -#line 1642 "gram.y" +case 309: +#line 1675 "gram.y" { yyval.str = aclmakepriv("",yyvsp[0].chr); ; break;} -case 306: -#line 1646 "gram.y" +case 310: +#line 1679 "gram.y" { yyval.str = aclmakepriv(yyvsp[-2].str,yyvsp[0].chr); ; break;} -case 307: -#line 1652 "gram.y" +case 311: +#line 1685 "gram.y" { yyval.chr = ACL_MODE_RD_CHR; ; break;} -case 308: -#line 1656 "gram.y" +case 312: +#line 1689 "gram.y" { yyval.chr = ACL_MODE_AP_CHR; ; break;} -case 309: -#line 1660 "gram.y" +case 313: +#line 1693 "gram.y" { yyval.chr = ACL_MODE_WR_CHR; ; break;} -case 310: -#line 1664 "gram.y" +case 314: +#line 1697 "gram.y" { yyval.chr = ACL_MODE_WR_CHR; ; break;} -case 311: -#line 1668 "gram.y" +case 315: +#line 1701 "gram.y" { yyval.chr = ACL_MODE_RU_CHR; ; break;} -case 312: -#line 1674 "gram.y" +case 316: +#line 1707 "gram.y" { yyval.str = aclmakeuser("A",""); ; break;} -case 313: -#line 1678 "gram.y" +case 317: +#line 1711 "gram.y" { yyval.str = aclmakeuser("G",yyvsp[0].str); ; break;} -case 314: -#line 1682 "gram.y" +case 318: +#line 1715 "gram.y" { yyval.str = aclmakeuser("U",yyvsp[0].str); ; break;} -case 315: -#line 1688 "gram.y" +case 319: +#line 1721 "gram.y" { yyerror("WITH GRANT OPTION is not supported. Only relation owners can set privileges"); ; break;} -case 317: -#line 1703 "gram.y" +case 321: +#line 1736 "gram.y" { yyval.node = (Node*)makeAclStmt(yyvsp[-4].str,yyvsp[-2].list,yyvsp[0].str,'-'); ; break;} -case 318: -#line 1721 "gram.y" +case 322: +#line 1754 "gram.y" { /* should check that access_method is valid, etc ... but doesn't */ @@ -6766,40 +6903,40 @@ case 318: yyval.node = (Node *)n; ; break;} -case 319: -#line 1736 "gram.y" +case 323: +#line 1769 "gram.y" { yyval.boolean = TRUE; ; break;} -case 320: -#line 1737 "gram.y" +case 324: +#line 1770 "gram.y" { yyval.boolean = FALSE; ; break;} -case 321: -#line 1740 "gram.y" +case 325: +#line 1773 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 322: -#line 1741 "gram.y" +case 326: +#line 1774 "gram.y" { yyval.str = "btree"; ; break;} -case 323: -#line 1744 "gram.y" +case 327: +#line 1777 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 324: -#line 1745 "gram.y" +case 328: +#line 1778 "gram.y" { yyval.list = lcons(yyvsp[0].ielem,NIL); ; break;} -case 325: -#line 1748 "gram.y" +case 329: +#line 1781 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].ielem); ; break;} -case 326: -#line 1749 "gram.y" +case 330: +#line 1782 "gram.y" { yyval.list = lcons(yyvsp[0].ielem, NIL); ; break;} -case 327: -#line 1753 "gram.y" +case 331: +#line 1786 "gram.y" { yyval.ielem = makeNode(IndexElem); yyval.ielem->name = yyvsp[-5].str; @@ -6808,8 +6945,8 @@ case 327: yyval.ielem->typename = yyvsp[-1].typnam; ; break;} -case 328: -#line 1763 "gram.y" +case 332: +#line 1796 "gram.y" { yyval.ielem = makeNode(IndexElem); yyval.ielem->name = yyvsp[-2].str; @@ -6818,32 +6955,32 @@ case 328: yyval.ielem->typename = yyvsp[-1].typnam; ; break;} -case 329: -#line 1772 "gram.y" -{ yyval.typnam = yyvsp[0].typnam; ; - break;} -case 330: -#line 1773 "gram.y" -{ yyval.typnam = yyvsp[0].typnam; ; - break;} -case 331: -#line 1774 "gram.y" -{ yyval.typnam = NULL; ; - break;} -case 332: -#line 1783 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} case 333: -#line 1784 "gram.y" -{ yyval.str = yyvsp[0].str; ; +#line 1805 "gram.y" +{ yyval.typnam = yyvsp[0].typnam; ; break;} case 334: -#line 1785 "gram.y" -{ yyval.str = NULL; ; +#line 1806 "gram.y" +{ yyval.typnam = yyvsp[0].typnam; ; break;} case 335: -#line 1797 "gram.y" +#line 1807 "gram.y" +{ yyval.typnam = NULL; ; + break;} +case 336: +#line 1816 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 337: +#line 1817 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 338: +#line 1818 "gram.y" +{ yyval.str = NULL; ; + break;} +case 339: +#line 1830 "gram.y" { ExtendStmt *n = makeNode(ExtendStmt); n->idxname = yyvsp[-1].str; @@ -6851,8 +6988,8 @@ case 335: yyval.node = (Node *)n; ; break;} -case 336: -#line 1814 "gram.y" +case 340: +#line 1847 "gram.y" { RecipeStmt *n; if (!IsTransactionBlock()) @@ -6863,8 +7000,8 @@ case 336: yyval.node = (Node *)n; ; break;} -case 337: -#line 1844 "gram.y" +case 341: +#line 1877 "gram.y" { ProcedureStmt *n = makeNode(ProcedureStmt); n->funcname = yyvsp[-8].str; @@ -6876,32 +7013,32 @@ case 337: yyval.node = (Node *)n; ; break;} -case 338: -#line 1855 "gram.y" +case 342: +#line 1888 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 339: -#line 1856 "gram.y" -{ yyval.list = NIL; ; - break;} -case 340: -#line 1859 "gram.y" -{ yyval.list = yyvsp[-1].list; ; - break;} -case 341: -#line 1860 "gram.y" -{ yyval.list = NIL; ; - break;} -case 342: -#line 1864 "gram.y" -{ yyval.list = lcons(makeString(yyvsp[0].str),NIL); ; - break;} case 343: -#line 1866 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ; +#line 1889 "gram.y" +{ yyval.list = NIL; ; break;} case 344: -#line 1870 "gram.y" +#line 1892 "gram.y" +{ yyval.list = yyvsp[-1].list; ; + break;} +case 345: +#line 1893 "gram.y" +{ yyval.list = NIL; ; + break;} +case 346: +#line 1897 "gram.y" +{ yyval.list = lcons(makeString(yyvsp[0].str),NIL); ; + break;} +case 347: +#line 1899 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ; + break;} +case 348: +#line 1903 "gram.y" { TypeName *n = makeNode(TypeName); n->name = yyvsp[0].str; @@ -6910,16 +7047,16 @@ case 344: yyval.node = (Node *)n; ; break;} -case 345: -#line 1879 "gram.y" +case 349: +#line 1912 "gram.y" { yyval.boolean = TRUE; ; break;} -case 346: -#line 1880 "gram.y" +case 350: +#line 1913 "gram.y" { yyval.boolean = FALSE; ; break;} -case 347: -#line 1901 "gram.y" +case 351: +#line 1934 "gram.y" { RemoveStmt *n = makeNode(RemoveStmt); n->removeType = yyvsp[-1].ival; @@ -6927,24 +7064,24 @@ case 347: yyval.node = (Node *)n; ; break;} -case 348: -#line 1909 "gram.y" +case 352: +#line 1942 "gram.y" { yyval.ival = TYPE_P; ; break;} -case 349: -#line 1910 "gram.y" +case 353: +#line 1943 "gram.y" { yyval.ival = INDEX; ; break;} -case 350: -#line 1911 "gram.y" +case 354: +#line 1944 "gram.y" { yyval.ival = RULE; ; break;} -case 351: -#line 1912 "gram.y" +case 355: +#line 1945 "gram.y" { yyval.ival = VIEW; ; break;} -case 352: -#line 1917 "gram.y" +case 356: +#line 1950 "gram.y" { RemoveAggrStmt *n = makeNode(RemoveAggrStmt); n->aggname = yyvsp[-1].str; @@ -6952,16 +7089,16 @@ case 352: yyval.node = (Node *)n; ; break;} -case 353: -#line 1925 "gram.y" +case 357: +#line 1958 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 354: -#line 1926 "gram.y" +case 358: +#line 1959 "gram.y" { yyval.str = NULL; ; break;} -case 355: -#line 1931 "gram.y" +case 359: +#line 1964 "gram.y" { RemoveFuncStmt *n = makeNode(RemoveFuncStmt); n->funcname = yyvsp[-1].str; @@ -6969,8 +7106,8 @@ case 355: yyval.node = (Node *)n; ; break;} -case 356: -#line 1941 "gram.y" +case 360: +#line 1974 "gram.y" { RemoveOperStmt *n = makeNode(RemoveOperStmt); n->opname = yyvsp[-3].str; @@ -6978,54 +7115,54 @@ case 356: yyval.node = (Node *)n; ; break;} -case 359: -#line 1951 "gram.y" +case 363: +#line 1984 "gram.y" { yyval.str = "+"; ; break;} -case 360: -#line 1952 "gram.y" +case 364: +#line 1985 "gram.y" { yyval.str = "-"; ; break;} -case 361: -#line 1953 "gram.y" +case 365: +#line 1986 "gram.y" { yyval.str = "*"; ; break;} -case 362: -#line 1954 "gram.y" +case 366: +#line 1987 "gram.y" { yyval.str = "/"; ; break;} -case 363: -#line 1955 "gram.y" +case 367: +#line 1988 "gram.y" { yyval.str = "<"; ; break;} -case 364: -#line 1956 "gram.y" +case 368: +#line 1989 "gram.y" { yyval.str = ">"; ; break;} -case 365: -#line 1957 "gram.y" +case 369: +#line 1990 "gram.y" { yyval.str = "="; ; break;} -case 366: -#line 1961 "gram.y" +case 370: +#line 1994 "gram.y" { elog(ERROR,"parser: argument type missing (use NONE for unary operators)"); ; break;} -case 367: -#line 1965 "gram.y" +case 371: +#line 1998 "gram.y" { yyval.list = makeList(makeString(yyvsp[-2].str), makeString(yyvsp[0].str), -1); ; break;} -case 368: -#line 1967 "gram.y" +case 372: +#line 2000 "gram.y" { yyval.list = makeList(NULL, makeString(yyvsp[0].str), -1); ; break;} -case 369: -#line 1969 "gram.y" +case 373: +#line 2002 "gram.y" { yyval.list = makeList(makeString(yyvsp[-2].str), NULL, -1); ; break;} -case 370: -#line 1983 "gram.y" +case 374: +#line 2016 "gram.y" { RenameStmt *n = makeNode(RenameStmt); n->relname = yyvsp[-6].str; @@ -7035,28 +7172,28 @@ case 370: yyval.node = (Node *)n; ; break;} -case 371: -#line 1993 "gram.y" +case 375: +#line 2026 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 372: -#line 1994 "gram.y" +case 376: +#line 2027 "gram.y" { yyval.str = NULL; ; break;} -case 373: -#line 1997 "gram.y" +case 377: +#line 2030 "gram.y" { yyval.ival = COLUMN; ; break;} -case 374: -#line 1998 "gram.y" +case 378: +#line 2031 "gram.y" { yyval.ival = 0; ; break;} -case 375: -#line 2012 "gram.y" +case 379: +#line 2045 "gram.y" { QueryIsRule=TRUE; ; break;} -case 376: -#line 2015 "gram.y" +case 380: +#line 2048 "gram.y" { RuleStmt *n = makeNode(RuleStmt); n->rulename = yyvsp[-10].str; @@ -7068,44 +7205,44 @@ case 376: yyval.node = (Node *)n; ; break;} -case 377: -#line 2027 "gram.y" +case 381: +#line 2060 "gram.y" { yyval.list = NIL; ; break;} -case 378: -#line 2028 "gram.y" -{ yyval.list = lcons(yyvsp[0].node, NIL); ; - break;} -case 379: -#line 2029 "gram.y" -{ yyval.list = yyvsp[-1].list; ; - break;} -case 380: -#line 2030 "gram.y" -{ yyval.list = yyvsp[-1].list; ; - break;} -case 381: -#line 2034 "gram.y" -{ yyval.list = yyvsp[0].list; ; - break;} case 382: -#line 2036 "gram.y" +#line 2061 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} case 383: -#line 2040 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[-1].node); ; +#line 2062 "gram.y" +{ yyval.list = yyvsp[-1].list; ; break;} case 384: -#line 2042 "gram.y" -{ yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ; +#line 2063 "gram.y" +{ yyval.list = yyvsp[-1].list; ; break;} case 385: -#line 2044 "gram.y" -{ yyval.list = lcons(yyvsp[-1].node, NIL); ; +#line 2067 "gram.y" +{ yyval.list = yyvsp[0].list; ; break;} case 386: -#line 2048 "gram.y" +#line 2069 "gram.y" +{ yyval.list = lcons(yyvsp[0].node, NIL); ; + break;} +case 387: +#line 2073 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list, yyvsp[-1].node); ; + break;} +case 388: +#line 2075 "gram.y" +{ yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ; + break;} +case 389: +#line 2077 "gram.y" +{ yyval.list = lcons(yyvsp[-1].node, NIL); ; + break;} +case 390: +#line 2081 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = yyvsp[-2].str; @@ -7114,8 +7251,8 @@ case 386: yyval.attr->indirection = NIL; ; break;} -case 387: -#line 2056 "gram.y" +case 391: +#line 2089 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = yyvsp[0].str; @@ -7124,96 +7261,64 @@ case 387: yyval.attr->indirection = NIL; ; break;} -case 388: -#line 2066 "gram.y" +case 392: +#line 2099 "gram.y" { yyval.ival = CMD_SELECT; ; break;} -case 389: -#line 2067 "gram.y" +case 393: +#line 2100 "gram.y" { yyval.ival = CMD_UPDATE; ; break;} -case 390: -#line 2068 "gram.y" +case 394: +#line 2101 "gram.y" { yyval.ival = CMD_DELETE; ; break;} -case 391: -#line 2069 "gram.y" +case 395: +#line 2102 "gram.y" { yyval.ival = CMD_INSERT; ; break;} -case 392: -#line 2072 "gram.y" +case 396: +#line 2105 "gram.y" { yyval.boolean = TRUE; ; break;} -case 393: -#line 2073 "gram.y" +case 397: +#line 2106 "gram.y" { yyval.boolean = FALSE; ; break;} -case 394: -#line 2086 "gram.y" +case 398: +#line 2119 "gram.y" { NotifyStmt *n = makeNode(NotifyStmt); n->relname = yyvsp[0].str; yyval.node = (Node *)n; ; break;} -case 395: -#line 2094 "gram.y" +case 399: +#line 2127 "gram.y" { ListenStmt *n = makeNode(ListenStmt); n->relname = yyvsp[0].str; yyval.node = (Node *)n; ; break;} -case 396: -#line 2102 "gram.y" +case 400: +#line 2135 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->relname = yyvsp[0].str; yyval.node = (Node *)n; ; break;} -case 397: -#line 2108 "gram.y" +case 401: +#line 2141 "gram.y" { UnlistenStmt *n = makeNode(UnlistenStmt); n->relname = "*"; yyval.node = (Node *)n; ; break;} -case 398: -#line 2130 "gram.y" -{ - TransactionStmt *n = makeNode(TransactionStmt); - n->command = ABORT_TRANS; - yyval.node = (Node *)n; - ; - break;} -case 399: -#line 2136 "gram.y" -{ - TransactionStmt *n = makeNode(TransactionStmt); - n->command = BEGIN_TRANS; - yyval.node = (Node *)n; - ; - break;} -case 400: -#line 2142 "gram.y" -{ - TransactionStmt *n = makeNode(TransactionStmt); - n->command = END_TRANS; - yyval.node = (Node *)n; - ; - break;} -case 401: -#line 2148 "gram.y" -{ - TransactionStmt *n = makeNode(TransactionStmt); - n->command = END_TRANS; - yyval.node = (Node *)n; - ; - break;} case 402: -#line 2154 "gram.y" +#line 2163 "gram.y" { TransactionStmt *n = makeNode(TransactionStmt); n->command = ABORT_TRANS; @@ -7221,19 +7326,51 @@ case 402: ; break;} case 403: -#line 2161 "gram.y" -{ yyval.boolean = TRUE; ; +#line 2169 "gram.y" +{ + TransactionStmt *n = makeNode(TransactionStmt); + n->command = BEGIN_TRANS; + yyval.node = (Node *)n; + ; break;} case 404: -#line 2162 "gram.y" -{ yyval.boolean = TRUE; ; +#line 2175 "gram.y" +{ + TransactionStmt *n = makeNode(TransactionStmt); + n->command = END_TRANS; + yyval.node = (Node *)n; + ; break;} case 405: -#line 2163 "gram.y" -{ yyval.boolean = TRUE; ; +#line 2181 "gram.y" +{ + TransactionStmt *n = makeNode(TransactionStmt); + n->command = END_TRANS; + yyval.node = (Node *)n; + ; break;} case 406: -#line 2175 "gram.y" +#line 2187 "gram.y" +{ + TransactionStmt *n = makeNode(TransactionStmt); + n->command = ABORT_TRANS; + yyval.node = (Node *)n; + ; + break;} +case 407: +#line 2194 "gram.y" +{ yyval.boolean = TRUE; ; + break;} +case 408: +#line 2195 "gram.y" +{ yyval.boolean = TRUE; ; + break;} +case 409: +#line 2196 "gram.y" +{ yyval.boolean = TRUE; ; + break;} +case 410: +#line 2208 "gram.y" { ViewStmt *n = makeNode(ViewStmt); n->viewname = yyvsp[-2].str; @@ -7245,16 +7382,16 @@ case 406: yyval.node = (Node *)n; ; break;} -case 407: -#line 2196 "gram.y" +case 411: +#line 2229 "gram.y" { LoadStmt *n = makeNode(LoadStmt); n->filename = yyvsp[0].str; yyval.node = (Node *)n; ; break;} -case 408: -#line 2212 "gram.y" +case 412: +#line 2245 "gram.y" { CreatedbStmt *n = makeNode(CreatedbStmt); if (yyvsp[-1].str == NULL && yyvsp[0].str == NULL) { @@ -7279,8 +7416,8 @@ case 408: yyval.node = (Node *)n; ; break;} -case 409: -#line 2236 "gram.y" +case 413: +#line 2269 "gram.y" { CreatedbStmt *n = makeNode(CreatedbStmt); n->dbname = yyvsp[0].str; @@ -7293,56 +7430,56 @@ case 409: yyval.node = (Node *)n; ; break;} -case 410: -#line 2249 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 411: -#line 2250 "gram.y" -{ yyval.str = NULL; ; - break;} -case 412: -#line 2253 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 413: -#line 2254 "gram.y" -{ yyval.str = NULL; ; - break;} case 414: -#line 2257 "gram.y" +#line 2282 "gram.y" { yyval.str = yyvsp[0].str; ; break;} case 415: -#line 2258 "gram.y" +#line 2283 "gram.y" { yyval.str = NULL; ; break;} case 416: -#line 2259 "gram.y" -{ yyval.str = NULL; ; - break;} -case 417: -#line 2262 "gram.y" +#line 2286 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 418: -#line 2263 "gram.y" +case 417: +#line 2287 "gram.y" { yyval.str = NULL; ; break;} +case 418: +#line 2290 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} case 419: -#line 2264 "gram.y" +#line 2291 "gram.y" { yyval.str = NULL; ; break;} case 420: -#line 2275 "gram.y" +#line 2292 "gram.y" +{ yyval.str = NULL; ; + break;} +case 421: +#line 2295 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 422: +#line 2296 "gram.y" +{ yyval.str = NULL; ; + break;} +case 423: +#line 2297 "gram.y" +{ yyval.str = NULL; ; + break;} +case 424: +#line 2308 "gram.y" { DestroydbStmt *n = makeNode(DestroydbStmt); n->dbname = yyvsp[0].str; yyval.node = (Node *)n; ; break;} -case 421: -#line 2291 "gram.y" +case 425: +#line 2324 "gram.y" { ClusterStmt *n = makeNode(ClusterStmt); n->relname = yyvsp[0].str; @@ -7350,8 +7487,8 @@ case 421: yyval.node = (Node*)n; ; break;} -case 422: -#line 2308 "gram.y" +case 426: +#line 2341 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->verbose = yyvsp[-1].boolean; @@ -7361,8 +7498,8 @@ case 422: yyval.node = (Node *)n; ; break;} -case 423: -#line 2317 "gram.y" +case 427: +#line 2350 "gram.y" { VacuumStmt *n = makeNode(VacuumStmt); n->verbose = yyvsp[-3].boolean; @@ -7374,40 +7511,40 @@ case 423: yyval.node = (Node *)n; ; break;} -case 424: -#line 2329 "gram.y" -{ yyval.boolean = TRUE; ; - break;} -case 425: -#line 2330 "gram.y" -{ yyval.boolean = FALSE; ; - break;} -case 426: -#line 2333 "gram.y" -{ yyval.boolean = TRUE; ; - break;} -case 427: -#line 2334 "gram.y" -{ yyval.boolean = FALSE; ; - break;} case 428: -#line 2337 "gram.y" -{ yyval.list = yyvsp[-1].list; ; +#line 2362 "gram.y" +{ yyval.boolean = TRUE; ; break;} case 429: -#line 2338 "gram.y" -{ yyval.list = NIL; ; +#line 2363 "gram.y" +{ yyval.boolean = FALSE; ; break;} case 430: -#line 2342 "gram.y" -{ yyval.list=lcons(yyvsp[0].str,NIL); ; +#line 2366 "gram.y" +{ yyval.boolean = TRUE; ; break;} case 431: -#line 2344 "gram.y" -{ yyval.list=lappend(yyvsp[-2].list,yyvsp[0].str); ; +#line 2367 "gram.y" +{ yyval.boolean = FALSE; ; break;} case 432: -#line 2356 "gram.y" +#line 2370 "gram.y" +{ yyval.list = yyvsp[-1].list; ; + break;} +case 433: +#line 2371 "gram.y" +{ yyval.list = NIL; ; + break;} +case 434: +#line 2375 "gram.y" +{ yyval.list=lcons(yyvsp[0].str,NIL); ; + break;} +case 435: +#line 2377 "gram.y" +{ yyval.list=lappend(yyvsp[-2].list,yyvsp[0].str); ; + break;} +case 436: +#line 2389 "gram.y" { ExplainStmt *n = makeNode(ExplainStmt); n->verbose = yyvsp[-1].boolean; @@ -7415,16 +7552,16 @@ case 432: yyval.node = (Node *)n; ; break;} -case 439: -#line 2393 "gram.y" +case 443: +#line 2426 "gram.y" { yyvsp[0].astmt->relname = yyvsp[-2].str; yyvsp[0].astmt->cols = yyvsp[-1].list; yyval.node = (Node *)yyvsp[0].astmt; ; break;} -case 440: -#line 2401 "gram.y" +case 444: +#line 2434 "gram.y" { yyval.astmt = makeNode(InsertStmt); yyval.astmt->unique = NULL; @@ -7436,8 +7573,8 @@ case 440: yyval.astmt->unionClause = NIL; ; break;} -case 441: -#line 2412 "gram.y" +case 445: +#line 2445 "gram.y" { yyval.astmt = makeNode(InsertStmt); yyval.astmt->unique = NULL; @@ -7449,8 +7586,8 @@ case 441: yyval.astmt->unionClause = NIL; ; break;} -case 442: -#line 2426 "gram.y" +case 446: +#line 2459 "gram.y" { yyval.astmt = makeNode(InsertStmt); yyval.astmt->unique = yyvsp[-6].str; @@ -7462,24 +7599,24 @@ case 442: yyval.astmt->unionClause = yyvsp[0].list; ; break;} -case 443: -#line 2438 "gram.y" +case 447: +#line 2471 "gram.y" { yyval.list = yyvsp[-1].list; ; break;} -case 444: -#line 2439 "gram.y" +case 448: +#line 2472 "gram.y" { yyval.list = NIL; ; break;} -case 445: -#line 2444 "gram.y" +case 449: +#line 2477 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 446: -#line 2446 "gram.y" +case 450: +#line 2479 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 447: -#line 2450 "gram.y" +case 451: +#line 2483 "gram.y" { Ident *id = makeNode(Ident); id->name = yyvsp[-1].str; @@ -7487,8 +7624,8 @@ case 447: yyval.node = (Node *)id; ; break;} -case 448: -#line 2468 "gram.y" +case 452: +#line 2501 "gram.y" { DeleteStmt *n = makeNode(DeleteStmt); n->relname = yyvsp[-1].str; @@ -7496,25 +7633,90 @@ case 448: yyval.node = (Node *)n; ; break;} -case 449: -#line 2482 "gram.y" +case 453: +#line 2510 "gram.y" { - DeleteStmt *n = makeNode(DeleteStmt); - A_Const *c = makeNode(A_Const); - - c->val.type = T_String; - c->val.val.str = "f"; - c->typename = makeNode(TypeName); - c->typename->name = xlateSqlType("bool"); - c->typename->typmod = -1; + LockStmt *n = makeNode(LockStmt); n->relname = yyvsp[0].str; - n->whereClause = (Node *)c; + n->mode = AccessExclusiveLock; yyval.node = (Node *)n; ; break;} -case 450: -#line 2510 "gram.y" +case 454: +#line 2518 "gram.y" +{ + LockStmt *n = makeNode(LockStmt); + + n->relname = yyvsp[-5].str; + if (strcasecmp(yyvsp[0].str, "MODE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[0].str); + if (yyvsp[-3].str != NULL) + { + if (strcasecmp(yyvsp[-3].str, "SHARE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-3].str); + if (strcasecmp(yyvsp[-1].str, "EXCLUSIVE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-1].str); + n->mode = ShareRowExclusiveLock; + } + else + { + if (strcasecmp(yyvsp[-1].str, "SHARE") == 0) + n->mode = RowShareLock; + else if (strcasecmp(yyvsp[-1].str, "EXCLUSIVE") == 0) + n->mode = RowExclusiveLock; + else + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-1].str); + } + yyval.node = (Node *)n; + ; + break;} +case 455: +#line 2544 "gram.y" +{ + LockStmt *n = makeNode(LockStmt); + + n->relname = yyvsp[-4].str; + if (strcasecmp(yyvsp[0].str, "MODE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[0].str); + if (strcasecmp(yyvsp[-2].str, "ACCESS")) + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-2].str); + if (strcasecmp(yyvsp[-1].str, "SHARE") == 0) + n->mode = AccessShareLock; + else if (strcasecmp(yyvsp[-1].str, "EXCLUSIVE") == 0) + n->mode = AccessExclusiveLock; + else + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-1].str); + yyval.node = (Node *)n; + ; + break;} +case 456: +#line 2561 "gram.y" +{ + LockStmt *n = makeNode(LockStmt); + + n->relname = yyvsp[-3].str; + if (strcasecmp(yyvsp[0].str, "MODE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[0].str); + if (strcasecmp(yyvsp[-1].str, "SHARE") == 0) + n->mode = ShareLock; + else if (strcasecmp(yyvsp[-1].str, "EXCLUSIVE") == 0) + n->mode = ExclusiveLock; + else + elog(ERROR,"parser: syntax error at or near \"%s\"", yyvsp[-1].str); + yyval.node = (Node *)n; + ; + break;} +case 457: +#line 2577 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 458: +#line 2578 "gram.y" +{ yyval.str = NULL; ; + break;} +case 459: +#line 2592 "gram.y" { UpdateStmt *n = makeNode(UpdateStmt); n->relname = yyvsp[-4].str; @@ -7524,8 +7726,8 @@ case 450: yyval.node = (Node *)n; ; break;} -case 451: -#line 2533 "gram.y" +case 460: +#line 2615 "gram.y" { SelectStmt *n = makeNode(SelectStmt); @@ -7553,54 +7755,54 @@ case 451: yyval.node = (Node *)n; ; break;} -case 452: -#line 2561 "gram.y" +case 461: +#line 2643 "gram.y" { yyval.boolean = TRUE; ; break;} -case 453: -#line 2562 "gram.y" +case 462: +#line 2644 "gram.y" { yyval.boolean = FALSE; ; break;} -case 454: -#line 2563 "gram.y" +case 463: +#line 2645 "gram.y" { yyval.boolean = FALSE; ; break;} -case 455: -#line 2564 "gram.y" +case 464: +#line 2646 "gram.y" { yyval.boolean = FALSE; ; break;} -case 456: -#line 2565 "gram.y" +case 465: +#line 2647 "gram.y" { yyval.boolean = FALSE; ; break;} -case 457: -#line 2568 "gram.y" +case 466: +#line 2650 "gram.y" { yyval.boolean = yyvsp[0].boolean; ; break;} -case 458: -#line 2569 "gram.y" +case 467: +#line 2651 "gram.y" { yyval.boolean = FALSE; ; break;} -case 459: -#line 2572 "gram.y" +case 468: +#line 2654 "gram.y" { yyval.boolean = TRUE; ; break;} -case 460: -#line 2574 "gram.y" +case 469: +#line 2656 "gram.y" { elog(ERROR,"DECLARE/UPDATE not supported;" " Cursors must be READ ONLY."); yyval.boolean = FALSE; ; break;} -case 461: -#line 2582 "gram.y" +case 470: +#line 2664 "gram.y" { yyval.boolean = FALSE; ; break;} -case 462: -#line 2597 "gram.y" +case 471: +#line 2679 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->unique = yyvsp[-8].str; @@ -7615,8 +7817,8 @@ case 462: yyval.node = (Node *)n; ; break;} -case 463: -#line 2616 "gram.y" +case 472: +#line 2698 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->unique = yyvsp[-6].str; @@ -7629,32 +7831,32 @@ case 463: yyval.node = (Node *)n; ; break;} -case 464: -#line 2630 "gram.y" +case 473: +#line 2712 "gram.y" { SelectStmt *n = (SelectStmt *)lfirst(yyvsp[0].list); n->unionall = yyvsp[-1].boolean; yyval.list = yyvsp[0].list; ; break;} -case 465: -#line 2636 "gram.y" +case 474: +#line 2718 "gram.y" { yyval.list = NIL; ; break;} -case 466: -#line 2640 "gram.y" +case 475: +#line 2722 "gram.y" { SelectStmt *n = (SelectStmt *)yyvsp[0].node; n->unionall = yyvsp[-1].boolean; yyval.list = lappend(yyvsp[-3].list, yyvsp[0].node); ; break;} -case 467: -#line 2646 "gram.y" +case 476: +#line 2728 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 468: -#line 2652 "gram.y" +case 477: +#line 2734 "gram.y" { SelectStmt *n = makeNode(SelectStmt); n->unique = yyvsp[-5].str; @@ -7667,241 +7869,241 @@ case 468: yyval.node = (Node *)n; ; break;} -case 469: -#line 2665 "gram.y" +case 478: +#line 2747 "gram.y" { yyval.str= yyvsp[0].str; ; break;} -case 470: -#line 2666 "gram.y" -{ yyval.str = NULL; ; - break;} -case 471: -#line 2669 "gram.y" -{ yyval.boolean = TRUE; ; - break;} -case 472: -#line 2670 "gram.y" -{ yyval.boolean = FALSE; ; - break;} -case 473: -#line 2673 "gram.y" -{ yyval.boolean = TRUE; ; - break;} -case 474: -#line 2674 "gram.y" -{ yyval.boolean = FALSE; ; - break;} -case 475: -#line 2677 "gram.y" -{ yyval.str = "*"; ; - break;} -case 476: -#line 2678 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 477: -#line 2679 "gram.y" -{ yyval.str = NULL; ; - break;} -case 478: -#line 2680 "gram.y" -{ yyval.str = NULL; ; - break;} case 479: -#line 2683 "gram.y" -{ yyval.list = yyvsp[0].list; ; +#line 2748 "gram.y" +{ yyval.str = NULL; ; break;} case 480: -#line 2684 "gram.y" -{ yyval.list = NIL; ; +#line 2751 "gram.y" +{ yyval.boolean = TRUE; ; break;} case 481: -#line 2687 "gram.y" -{ yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ; +#line 2752 "gram.y" +{ yyval.boolean = FALSE; ; break;} case 482: -#line 2688 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ; +#line 2755 "gram.y" +{ yyval.boolean = TRUE; ; break;} case 483: -#line 2692 "gram.y" +#line 2756 "gram.y" +{ yyval.boolean = FALSE; ; + break;} +case 484: +#line 2759 "gram.y" +{ yyval.str = "*"; ; + break;} +case 485: +#line 2760 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 486: +#line 2761 "gram.y" +{ yyval.str = NULL; ; + break;} +case 487: +#line 2762 "gram.y" +{ yyval.str = NULL; ; + break;} +case 488: +#line 2765 "gram.y" +{ yyval.list = yyvsp[0].list; ; + break;} +case 489: +#line 2766 "gram.y" +{ yyval.list = NIL; ; + break;} +case 490: +#line 2769 "gram.y" +{ yyval.list = lcons(yyvsp[0].sortgroupby, NIL); ; + break;} +case 491: +#line 2770 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].sortgroupby); ; + break;} +case 492: +#line 2774 "gram.y" { yyval.sortgroupby = makeNode(SortGroupBy); yyval.sortgroupby->node = yyvsp[-1].node; yyval.sortgroupby->useOp = yyvsp[0].str; ; break;} -case 484: -#line 2699 "gram.y" +case 493: +#line 2781 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 485: -#line 2700 "gram.y" -{ yyval.str = "<"; ; - break;} -case 486: -#line 2701 "gram.y" -{ yyval.str = ">"; ; - break;} -case 487: -#line 2702 "gram.y" -{ yyval.str = "<"; ; - break;} -case 488: -#line 2703 "gram.y" -{ yyval.str = ">"; ; - break;} -case 489: -#line 2704 "gram.y" -{ yyval.str = "<"; /*default*/ ; - break;} -case 490: -#line 2714 "gram.y" -{ yyval.boolean = TRUE; ; - break;} -case 491: -#line 2715 "gram.y" -{ yyval.boolean = FALSE; ; - break;} -case 493: -#line 2721 "gram.y" -{ yyval.list = lcons(makeString(yyvsp[0].str),NIL); ; - break;} case 494: -#line 2723 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ; +#line 2782 "gram.y" +{ yyval.str = "<"; ; break;} case 495: -#line 2726 "gram.y" -{ yyval.list = yyvsp[0].list; ; +#line 2783 "gram.y" +{ yyval.str = ">"; ; break;} case 496: -#line 2727 "gram.y" -{ yyval.list = NIL; ; +#line 2784 "gram.y" +{ yyval.str = "<"; ; break;} case 497: -#line 2731 "gram.y" +#line 2785 "gram.y" +{ yyval.str = ">"; ; + break;} +case 498: +#line 2786 "gram.y" +{ yyval.str = "<"; /*default*/ ; + break;} +case 499: +#line 2796 "gram.y" +{ yyval.boolean = TRUE; ; + break;} +case 500: +#line 2797 "gram.y" +{ yyval.boolean = FALSE; ; + break;} +case 502: +#line 2803 "gram.y" +{ yyval.list = lcons(makeString(yyvsp[0].str),NIL); ; + break;} +case 503: +#line 2805 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list,makeString(yyvsp[0].str)); ; + break;} +case 504: +#line 2808 "gram.y" +{ yyval.list = yyvsp[0].list; ; + break;} +case 505: +#line 2809 "gram.y" +{ yyval.list = NIL; ; + break;} +case 506: +#line 2813 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 498: -#line 2734 "gram.y" +case 507: +#line 2816 "gram.y" { yyval.node = NULL; ; break;} -case 499: -#line 2747 "gram.y" +case 508: +#line 2829 "gram.y" { yyval.list = NIL; elog(ERROR,"JOIN not yet implemented"); ; break;} -case 500: -#line 2751 "gram.y" +case 509: +#line 2833 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 501: -#line 2752 "gram.y" +case 510: +#line 2834 "gram.y" { yyval.list = NIL; ; break;} -case 502: -#line 2756 "gram.y" +case 511: +#line 2838 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].range); ; break;} -case 503: -#line 2758 "gram.y" +case 512: +#line 2840 "gram.y" { elog(ERROR,"CROSS JOIN not yet implemented"); ; break;} -case 504: -#line 2760 "gram.y" +case 513: +#line 2842 "gram.y" { yyval.list = lcons(yyvsp[0].range, NIL); ; break;} -case 505: -#line 2764 "gram.y" +case 514: +#line 2846 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[-2].relexp; yyval.range->name = yyvsp[0].str; ; break;} -case 506: -#line 2770 "gram.y" +case 515: +#line 2852 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[-1].relexp; yyval.range->name = yyvsp[0].str; ; break;} -case 507: -#line 2776 "gram.y" +case 516: +#line 2858 "gram.y" { yyval.range = makeNode(RangeVar); yyval.range->relExpr = yyvsp[0].relexp; yyval.range->name = NULL; ; break;} -case 508: -#line 2783 "gram.y" -{ yyval.str = NULL; ; - break;} -case 509: -#line 2785 "gram.y" -{ elog(ERROR,"FULL OUTER JOIN not yet implemented"); ; - break;} -case 510: -#line 2787 "gram.y" -{ elog(ERROR,"LEFT OUTER JOIN not yet implemented"); ; - break;} -case 511: -#line 2789 "gram.y" -{ elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); ; - break;} -case 512: -#line 2791 "gram.y" -{ elog(ERROR,"OUTER JOIN not yet implemented"); ; - break;} -case 513: -#line 2793 "gram.y" -{ elog(ERROR,"INNER JOIN not yet implemented"); ; - break;} -case 514: -#line 2795 "gram.y" -{ elog(ERROR,"UNION JOIN not yet implemented"); ; - break;} -case 515: -#line 2797 "gram.y" -{ elog(ERROR,"INNER JOIN not yet implemented"); ; - break;} -case 516: -#line 2800 "gram.y" -{ yyval.str = NULL; ; - break;} case 517: -#line 2801 "gram.y" -{ yyval.str = NULL; /* no qualifiers */ ; +#line 2865 "gram.y" +{ yyval.str = NULL; ; break;} case 518: -#line 2804 "gram.y" -{ yyval.str = NULL; ; +#line 2867 "gram.y" +{ elog(ERROR,"FULL OUTER JOIN not yet implemented"); ; break;} case 519: -#line 2805 "gram.y" -{ yyval.str = NULL; ; +#line 2869 "gram.y" +{ elog(ERROR,"LEFT OUTER JOIN not yet implemented"); ; break;} case 520: -#line 2806 "gram.y" -{ yyval.str = NULL; /* no qualifiers */ ; +#line 2871 "gram.y" +{ elog(ERROR,"RIGHT OUTER JOIN not yet implemented"); ; break;} case 521: -#line 2809 "gram.y" -{ yyval.list = lcons(yyvsp[0].joinusing, NIL); ; +#line 2873 "gram.y" +{ elog(ERROR,"OUTER JOIN not yet implemented"); ; break;} case 522: -#line 2810 "gram.y" -{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].joinusing); ; +#line 2875 "gram.y" +{ elog(ERROR,"INNER JOIN not yet implemented"); ; break;} case 523: -#line 2822 "gram.y" +#line 2877 "gram.y" +{ elog(ERROR,"UNION JOIN not yet implemented"); ; + break;} +case 524: +#line 2879 "gram.y" +{ elog(ERROR,"INNER JOIN not yet implemented"); ; + break;} +case 525: +#line 2882 "gram.y" +{ yyval.str = NULL; ; + break;} +case 526: +#line 2883 "gram.y" +{ yyval.str = NULL; /* no qualifiers */ ; + break;} +case 527: +#line 2886 "gram.y" +{ yyval.str = NULL; ; + break;} +case 528: +#line 2887 "gram.y" +{ yyval.str = NULL; ; + break;} +case 529: +#line 2888 "gram.y" +{ yyval.str = NULL; /* no qualifiers */ ; + break;} +case 530: +#line 2891 "gram.y" +{ yyval.list = lcons(yyvsp[0].joinusing, NIL); ; + break;} +case 531: +#line 2892 "gram.y" +{ yyval.list = lappend(yyvsp[-2].list, yyvsp[0].joinusing); ; + break;} +case 532: +#line 2904 "gram.y" { yyval.joinusing = makeNode(JoinUsing); yyval.joinusing->resno = 0; @@ -7909,8 +8111,8 @@ case 523: yyval.joinusing->name = yyvsp[0].str; ; break;} -case 524: -#line 2829 "gram.y" +case 533: +#line 2911 "gram.y" { yyval.joinusing = makeNode(JoinUsing); yyval.joinusing->resno = 0; @@ -7918,8 +8120,8 @@ case 524: yyval.joinusing->name = yyvsp[0].str; ; break;} -case 525: -#line 2836 "gram.y" +case 534: +#line 2918 "gram.y" { yyval.joinusing = makeNode(JoinUsing); yyval.joinusing->resno = yyvsp[0].ival; @@ -7927,16 +8129,16 @@ case 525: yyval.joinusing->name = NULL; ; break;} -case 526: -#line 2844 "gram.y" +case 535: +#line 2926 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 527: -#line 2845 "gram.y" +case 536: +#line 2927 "gram.y" { yyval.node = NULL; /* no qualifiers */ ; break;} -case 528: -#line 2849 "gram.y" +case 537: +#line 2931 "gram.y" { /* normal relations */ yyval.relexp = makeNode(RelExpr); @@ -7944,8 +8146,8 @@ case 528: yyval.relexp->inh = FALSE; ; break;} -case 529: -#line 2856 "gram.y" +case 538: +#line 2938 "gram.y" { /* inheritance query */ yyval.relexp = makeNode(RelExpr); @@ -7953,32 +8155,32 @@ case 529: yyval.relexp->inh = TRUE; ; break;} -case 530: -#line 2864 "gram.y" +case 539: +#line 2946 "gram.y" { yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; break;} -case 531: -#line 2866 "gram.y" +case 540: +#line 2948 "gram.y" { yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; break;} -case 532: -#line 2868 "gram.y" +case 541: +#line 2950 "gram.y" { yyval.list = NIL; ; break;} -case 533: -#line 2872 "gram.y" +case 542: +#line 2954 "gram.y" { yyval.list = lcons(makeInteger(-1), yyvsp[0].list); ; break;} -case 534: -#line 2874 "gram.y" +case 543: +#line 2956 "gram.y" { yyval.list = lcons(makeInteger(yyvsp[-2].ival), yyvsp[0].list); ; break;} -case 535: -#line 2876 "gram.y" +case 544: +#line 2958 "gram.y" { yyval.list = NIL; ; break;} -case 536: -#line 2891 "gram.y" +case 545: +#line 2973 "gram.y" { yyval.typnam = yyvsp[-1].typnam; yyval.typnam->arrayBounds = yyvsp[0].list; @@ -8001,78 +8203,78 @@ case 536: yyval.typnam->setof = FALSE; ; break;} -case 538: -#line 2914 "gram.y" +case 547: +#line 2996 "gram.y" { yyval.typnam = yyvsp[0].typnam; yyval.typnam->setof = TRUE; ; break;} -case 542: -#line 2926 "gram.y" +case 551: +#line 3008 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 543: -#line 2933 "gram.y" +case 552: +#line 3015 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 544: -#line 2934 "gram.y" +case 553: +#line 3016 "gram.y" { yyval.str = xlateSqlType("type"); ; break;} -case 545: -#line 2944 "gram.y" +case 554: +#line 3026 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 546: -#line 2950 "gram.y" +case 555: +#line 3032 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("float"); ; break;} -case 547: -#line 2955 "gram.y" +case 556: +#line 3037 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("integer"); yyval.typnam->typmod = -1; ; break;} -case 548: -#line 2961 "gram.y" +case 557: +#line 3043 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("integer"); yyval.typnam->typmod = -1; ; break;} -case 549: -#line 2969 "gram.y" +case 558: +#line 3051 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 550: -#line 2971 "gram.y" +case 559: +#line 3053 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 551: -#line 2973 "gram.y" +case 560: +#line 3055 "gram.y" { yyval.str = xlateSqlType("decimal"); ; break;} -case 552: -#line 2975 "gram.y" +case 561: +#line 3057 "gram.y" { yyval.str = xlateSqlType("numeric"); ; break;} -case 553: -#line 2979 "gram.y" +case 562: +#line 3061 "gram.y" { if (yyvsp[-1].ival < 1) elog(ERROR,"precision for FLOAT must be at least 1"); @@ -8084,14 +8286,14 @@ case 553: elog(ERROR,"precision for FLOAT must be less than 16"); ; break;} -case 554: -#line 2990 "gram.y" +case 563: +#line 3072 "gram.y" { yyval.str = xlateSqlType("float8"); ; break;} -case 555: -#line 2996 "gram.y" +case 564: +#line 3078 "gram.y" { if (yyvsp[-3].ival != 9) elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-3].ival); @@ -8099,21 +8301,21 @@ case 555: elog(ERROR,"NUMERIC scale %d must be zero",yyvsp[-1].ival); ; break;} -case 556: -#line 3003 "gram.y" +case 565: +#line 3085 "gram.y" { if (yyvsp[-1].ival != 9) elog(ERROR,"NUMERIC precision %d must be 9",yyvsp[-1].ival); ; break;} -case 557: -#line 3008 "gram.y" +case 566: +#line 3090 "gram.y" { yyval.str = NULL; ; break;} -case 558: -#line 3014 "gram.y" +case 567: +#line 3096 "gram.y" { if (yyvsp[-3].ival > 9) elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-3].ival); @@ -8122,22 +8324,22 @@ case 558: yyval.str = NULL; ; break;} -case 559: -#line 3022 "gram.y" +case 568: +#line 3104 "gram.y" { if (yyvsp[-1].ival > 9) elog(ERROR,"DECIMAL precision %d exceeds implementation limit of 9",yyvsp[-1].ival); yyval.str = NULL; ; break;} -case 560: -#line 3028 "gram.y" +case 569: +#line 3110 "gram.y" { yyval.str = NULL; ; break;} -case 561: -#line 3041 "gram.y" +case 570: +#line 3123 "gram.y" { yyval.typnam = makeNode(TypeName); if (strcasecmp(yyvsp[-3].str, "char") == 0) @@ -8165,8 +8367,8 @@ case 561: yyval.typnam->typmod = VARHDRSZ + yyvsp[-1].ival; ; break;} -case 562: -#line 3068 "gram.y" +case 571: +#line 3150 "gram.y" { yyval.typnam = makeNode(TypeName); /* Let's try to make all single-character types into bpchar(1) @@ -8184,8 +8386,8 @@ case 562: } ; break;} -case 563: -#line 3087 "gram.y" +case 572: +#line 3169 "gram.y" { char *type, *c; if ((yyvsp[-1].str == NULL) || (strcasecmp(yyvsp[-1].str, "sql_text") == 0)) { @@ -8206,56 +8408,56 @@ case 563: yyval.str = type; ; break;} -case 564: -#line 3106 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; - break;} -case 565: -#line 3107 "gram.y" -{ yyval.str = xlateSqlType("varchar"); ; - break;} -case 566: -#line 3108 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; - break;} -case 567: -#line 3109 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; - break;} -case 568: -#line 3112 "gram.y" -{ yyval.boolean = TRUE; ; - break;} -case 569: -#line 3113 "gram.y" -{ yyval.boolean = FALSE; ; - break;} -case 570: -#line 3116 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 571: -#line 3117 "gram.y" -{ yyval.str = NULL; ; - break;} -case 572: -#line 3120 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} case 573: -#line 3121 "gram.y" -{ yyval.str = NULL; ; +#line 3188 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; break;} case 574: -#line 3125 "gram.y" +#line 3189 "gram.y" +{ yyval.str = xlateSqlType("varchar"); ; + break;} +case 575: +#line 3190 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; + break;} +case 576: +#line 3191 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].boolean? "varchar": "char"); ; + break;} +case 577: +#line 3194 "gram.y" +{ yyval.boolean = TRUE; ; + break;} +case 578: +#line 3195 "gram.y" +{ yyval.boolean = FALSE; ; + break;} +case 579: +#line 3198 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 580: +#line 3199 "gram.y" +{ yyval.str = NULL; ; + break;} +case 581: +#line 3202 "gram.y" +{ yyval.str = yyvsp[0].str; ; + break;} +case 582: +#line 3203 "gram.y" +{ yyval.str = NULL; ; + break;} +case 583: +#line 3207 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType(yyvsp[0].str); yyval.typnam->typmod = -1; ; break;} -case 575: -#line 3131 "gram.y" +case 584: +#line 3213 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("timestamp"); @@ -8263,104 +8465,104 @@ case 575: yyval.typnam->typmod = -1; ; break;} -case 576: -#line 3138 "gram.y" +case 585: +#line 3220 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("time"); yyval.typnam->typmod = -1; ; break;} -case 577: -#line 3144 "gram.y" +case 586: +#line 3226 "gram.y" { yyval.typnam = makeNode(TypeName); yyval.typnam->name = xlateSqlType("interval"); yyval.typnam->typmod = -1; ; break;} -case 578: -#line 3151 "gram.y" +case 587: +#line 3233 "gram.y" { yyval.str = "year"; ; break;} -case 579: -#line 3152 "gram.y" +case 588: +#line 3234 "gram.y" { yyval.str = "month"; ; break;} -case 580: -#line 3153 "gram.y" +case 589: +#line 3235 "gram.y" { yyval.str = "day"; ; break;} -case 581: -#line 3154 "gram.y" +case 590: +#line 3236 "gram.y" { yyval.str = "hour"; ; break;} -case 582: -#line 3155 "gram.y" +case 591: +#line 3237 "gram.y" { yyval.str = "minute"; ; break;} -case 583: -#line 3156 "gram.y" +case 592: +#line 3238 "gram.y" { yyval.str = "second"; ; break;} -case 584: -#line 3159 "gram.y" +case 593: +#line 3241 "gram.y" { yyval.boolean = TRUE; ; break;} -case 585: -#line 3160 "gram.y" +case 594: +#line 3242 "gram.y" { yyval.boolean = FALSE; ; break;} -case 586: -#line 3163 "gram.y" +case 595: +#line 3245 "gram.y" { yyval.list = lcons(yyvsp[0].str, NIL); ; break;} -case 587: -#line 3164 "gram.y" +case 596: +#line 3246 "gram.y" { yyval.list = NIL; ; break;} -case 588: -#line 3165 "gram.y" +case 597: +#line 3247 "gram.y" { yyval.list = NIL; ; break;} -case 589: -#line 3166 "gram.y" +case 598: +#line 3248 "gram.y" { yyval.list = NIL; ; break;} -case 590: -#line 3167 "gram.y" +case 599: +#line 3249 "gram.y" { yyval.list = NIL; ; break;} -case 591: -#line 3168 "gram.y" +case 600: +#line 3250 "gram.y" { yyval.list = NIL; ; break;} -case 592: -#line 3169 "gram.y" +case 601: +#line 3251 "gram.y" { yyval.list = NIL; ; break;} -case 593: -#line 3170 "gram.y" +case 602: +#line 3252 "gram.y" { yyval.list = NIL; ; break;} -case 594: -#line 3171 "gram.y" +case 603: +#line 3253 "gram.y" { yyval.list = NIL; ; break;} -case 595: -#line 3182 "gram.y" +case 604: +#line 3264 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 596: -#line 3184 "gram.y" +case 605: +#line 3266 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Null; yyval.node = (Node *)n; ; break;} -case 597: -#line 3201 "gram.y" +case 606: +#line 3283 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-5].list; @@ -8371,8 +8573,8 @@ case 597: yyval.node = (Node *)n; ; break;} -case 598: -#line 3211 "gram.y" +case 607: +#line 3293 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-6].list; @@ -8383,8 +8585,8 @@ case 598: yyval.node = (Node *)n; ; break;} -case 599: -#line 3221 "gram.y" +case 608: +#line 3303 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-6].list; @@ -8398,8 +8600,8 @@ case 599: yyval.node = (Node *)n; ; break;} -case 600: -#line 3234 "gram.y" +case 609: +#line 3316 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = yyvsp[-5].list; @@ -8413,87 +8615,87 @@ case 600: yyval.node = (Node *)n; ; break;} -case 601: -#line 3247 "gram.y" +case 610: +#line 3329 "gram.y" { yyval.node = makeRowExpr(yyvsp[-3].str, yyvsp[-5].list, yyvsp[-1].list); ; break;} -case 602: -#line 3253 "gram.y" +case 611: +#line 3335 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 603: -#line 3259 "gram.y" +case 612: +#line 3341 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 604: -#line 3263 "gram.y" +case 613: +#line 3345 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 605: -#line 3268 "gram.y" +case 614: +#line 3350 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 606: -#line 3269 "gram.y" +case 615: +#line 3351 "gram.y" { yyval.str = "<"; ; break;} -case 607: -#line 3270 "gram.y" +case 616: +#line 3352 "gram.y" { yyval.str = "="; ; break;} -case 608: -#line 3271 "gram.y" +case 617: +#line 3353 "gram.y" { yyval.str = ">"; ; break;} -case 609: -#line 3272 "gram.y" +case 618: +#line 3354 "gram.y" { yyval.str = "+"; ; break;} -case 610: -#line 3273 "gram.y" +case 619: +#line 3355 "gram.y" { yyval.str = "-"; ; break;} -case 611: -#line 3274 "gram.y" +case 620: +#line 3356 "gram.y" { yyval.str = "*"; ; break;} -case 612: -#line 3275 "gram.y" +case 621: +#line 3357 "gram.y" { yyval.str = "/"; ; break;} -case 613: -#line 3278 "gram.y" +case 622: +#line 3360 "gram.y" { yyval.ival = ANY_SUBLINK; ; break;} -case 614: -#line 3279 "gram.y" +case 623: +#line 3361 "gram.y" { yyval.ival = ALL_SUBLINK; ; break;} -case 615: -#line 3291 "gram.y" +case 624: +#line 3373 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 616: -#line 3296 "gram.y" +case 625: +#line 3378 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 617: -#line 3298 "gram.y" +case 626: +#line 3380 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 618: -#line 3300 "gram.y" +case 627: +#line 3382 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -8502,52 +8704,52 @@ case 618: yyval.node = (Node *)n; ; break;} -case 619: -#line 3308 "gram.y" +case 628: +#line 3390 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 620: -#line 3310 "gram.y" +case 629: +#line 3392 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 621: -#line 3312 "gram.y" +case 630: +#line 3394 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 622: -#line 3314 "gram.y" +case 631: +#line 3396 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 623: -#line 3316 "gram.y" +case 632: +#line 3398 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 624: -#line 3318 "gram.y" +case 633: +#line 3400 "gram.y" { yyval.node = makeA_Expr(OP, "<", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 625: -#line 3320 "gram.y" +case 634: +#line 3402 "gram.y" { yyval.node = makeA_Expr(OP, ">", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 626: -#line 3322 "gram.y" +case 635: +#line 3404 "gram.y" { yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 627: -#line 3324 "gram.y" +case 636: +#line 3406 "gram.y" { yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ; break;} -case 628: -#line 3326 "gram.y" +case 637: +#line 3408 "gram.y" { yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ; break;} -case 629: -#line 3328 "gram.y" +case 638: +#line 3410 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 630: -#line 3330 "gram.y" +case 639: +#line 3412 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8564,8 +8766,8 @@ case 630: } ; break;} -case 631: -#line 3346 "gram.y" +case 640: +#line 3428 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -8582,32 +8784,32 @@ case 631: } ; break;} -case 632: -#line 3362 "gram.y" +case 641: +#line 3444 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 633: -#line 3364 "gram.y" +case 642: +#line 3446 "gram.y" { yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ; break;} -case 634: -#line 3366 "gram.y" +case 643: +#line 3448 "gram.y" { yyval.node = makeIndexable("~~", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 635: -#line 3368 "gram.y" +case 644: +#line 3450 "gram.y" { yyval.node = makeA_Expr(OP, "!~~", yyvsp[-3].node, yyvsp[0].node); ; break;} -case 636: -#line 3370 "gram.y" +case 645: +#line 3452 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 637: -#line 3372 "gram.y" +case 646: +#line 3454 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 638: -#line 3374 "gram.y" +case 647: +#line 3456 "gram.y" { /* cheap hack for aggregate (eg. count) */ FuncCall *n = makeNode(FuncCall); @@ -8620,8 +8822,8 @@ case 638: yyval.node = (Node *)n; ; break;} -case 639: -#line 3386 "gram.y" +case 648: +#line 3468 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -8629,8 +8831,8 @@ case 639: yyval.node = (Node *)n; ; break;} -case 640: -#line 3393 "gram.y" +case 649: +#line 3475 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -8638,8 +8840,8 @@ case 640: yyval.node = (Node *)n; ; break;} -case 641: -#line 3400 "gram.y" +case 650: +#line 3482 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8655,8 +8857,8 @@ case 641: yyval.node = (Node *)n; ; break;} -case 642: -#line 3415 "gram.y" +case 651: +#line 3497 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8672,8 +8874,8 @@ case 642: yyval.node = (Node *)n; ; break;} -case 643: -#line 3430 "gram.y" +case 652: +#line 3512 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -8696,8 +8898,8 @@ case 643: yyval.node = (Node *)n; ; break;} -case 644: -#line 3452 "gram.y" +case 653: +#line 3534 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -8713,8 +8915,8 @@ case 644: yyval.node = (Node *)n; ; break;} -case 645: -#line 3467 "gram.y" +case 654: +#line 3549 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -8737,8 +8939,8 @@ case 645: yyval.node = (Node *)n; ; break;} -case 646: -#line 3489 "gram.y" +case 655: +#line 3571 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -8746,8 +8948,8 @@ case 646: yyval.node = (Node *)n; ; break;} -case 647: -#line 3496 "gram.y" +case 656: +#line 3578 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -8755,8 +8957,8 @@ case 647: yyval.node = (Node *)n; ; break;} -case 648: -#line 3503 "gram.y" +case 657: +#line 3585 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = NIL; @@ -8767,8 +8969,8 @@ case 648: yyval.node = (Node *)n; ; break;} -case 649: -#line 3513 "gram.y" +case 658: +#line 3595 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "date_part"; @@ -8776,8 +8978,8 @@ case 649: yyval.node = (Node *)n; ; break;} -case 650: -#line 3520 "gram.y" +case 659: +#line 3602 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -8785,8 +8987,8 @@ case 650: yyval.node = (Node *)n; ; break;} -case 651: -#line 3527 "gram.y" +case 660: +#line 3609 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -8794,8 +8996,8 @@ case 651: yyval.node = (Node *)n; ; break;} -case 652: -#line 3535 "gram.y" +case 661: +#line 3617 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8803,8 +9005,8 @@ case 652: yyval.node = (Node *)n; ; break;} -case 653: -#line 3542 "gram.y" +case 662: +#line 3624 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -8812,8 +9014,8 @@ case 653: yyval.node = (Node *)n; ; break;} -case 654: -#line 3549 "gram.y" +case 663: +#line 3631 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -8821,8 +9023,8 @@ case 654: yyval.node = (Node *)n; ; break;} -case 655: -#line 3556 "gram.y" +case 664: +#line 3638 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -8830,24 +9032,24 @@ case 655: yyval.node = (Node *)n; ; break;} -case 656: -#line 3563 "gram.y" +case 665: +#line 3645 "gram.y" { yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-1].node, NULL); ; break;} -case 657: -#line 3565 "gram.y" +case 666: +#line 3647 "gram.y" { yyval.node = makeA_Expr(ISNULL, NULL, yyvsp[-2].node, NULL); ; break;} -case 658: -#line 3567 "gram.y" +case 667: +#line 3649 "gram.y" { yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-1].node, NULL); ; break;} -case 659: -#line 3569 "gram.y" +case 668: +#line 3651 "gram.y" { yyval.node = makeA_Expr(NOTNULL, NULL, yyvsp[-3].node, NULL); ; break;} -case 660: -#line 3576 "gram.y" +case 669: +#line 3658 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8858,8 +9060,8 @@ case 660: yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); ; break;} -case 661: -#line 3586 "gram.y" +case 670: +#line 3668 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8870,8 +9072,8 @@ case 661: yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); ; break;} -case 662: -#line 3596 "gram.y" +case 671: +#line 3678 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8882,8 +9084,8 @@ case 662: yyval.node = makeA_Expr(OP, "=", yyvsp[-2].node,(Node *)n); ; break;} -case 663: -#line 3606 "gram.y" +case 672: +#line 3688 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -8894,28 +9096,28 @@ case 663: yyval.node = makeA_Expr(OP, "=", yyvsp[-3].node,(Node *)n); ; break;} -case 664: -#line 3616 "gram.y" +case 673: +#line 3698 "gram.y" { yyval.node = makeA_Expr(AND, NULL, makeA_Expr(OP, ">=", yyvsp[-4].node, yyvsp[-2].node), makeA_Expr(OP, "<=", yyvsp[-4].node, yyvsp[0].node)); ; break;} -case 665: -#line 3622 "gram.y" +case 674: +#line 3704 "gram.y" { yyval.node = makeA_Expr(OR, NULL, makeA_Expr(OP, "<", yyvsp[-5].node, yyvsp[-2].node), makeA_Expr(OP, ">", yyvsp[-5].node, yyvsp[0].node)); ; break;} -case 666: -#line 3627 "gram.y" +case 675: +#line 3709 "gram.y" { saved_In_Expr = lcons(yyvsp[-1].node,saved_In_Expr); ; break;} -case 667: -#line 3628 "gram.y" +case 676: +#line 3710 "gram.y" { saved_In_Expr = lnext(saved_In_Expr); if (nodeTag(yyvsp[-1].node) == T_SubLink) @@ -8930,12 +9132,12 @@ case 667: else yyval.node = yyvsp[-1].node; ; break;} -case 668: -#line 3641 "gram.y" +case 677: +#line 3723 "gram.y" { saved_In_Expr = lcons(yyvsp[-2].node,saved_In_Expr); ; break;} -case 669: -#line 3642 "gram.y" +case 678: +#line 3724 "gram.y" { saved_In_Expr = lnext(saved_In_Expr); if (nodeTag(yyvsp[-1].node) == T_SubLink) @@ -8950,8 +9152,8 @@ case 669: else yyval.node = yyvsp[-1].node; ; break;} -case 670: -#line 3656 "gram.y" +case 679: +#line 3738 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-4].node, NULL); @@ -8962,128 +9164,128 @@ case 670: yyval.node = (Node *)n; ; break;} -case 671: -#line 3666 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("+",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 672: -#line 3676 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("-",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 673: -#line 3686 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("/",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 674: -#line 3696 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("*",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 675: -#line 3706 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("<",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 676: -#line 3716 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons(">",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 677: -#line 3726 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-4].node, NULL); - n->oper = lcons("=",NIL); - n->useor = false; - n->subLinkType = EXPR_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 678: -#line 3736 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-5].node,NIL); - n->oper = lcons(yyvsp[-4].str,NIL); - n->useor = false; - n->subLinkType = ANY_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} -case 679: -#line 3746 "gram.y" -{ - SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-5].node,NIL); - n->oper = lcons("+",NIL); - n->useor = false; - n->subLinkType = ANY_SUBLINK; - n->subselect = yyvsp[-1].node; - yyval.node = (Node *)n; - ; - break;} case 680: -#line 3756 "gram.y" +#line 3748 "gram.y" { SubLink *n = makeNode(SubLink); - n->lefthand = lcons(yyvsp[-5].node,NIL); - n->oper = lcons("-",NIL); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons("+",NIL); n->useor = false; - n->subLinkType = ANY_SUBLINK; + n->subLinkType = EXPR_SUBLINK; n->subselect = yyvsp[-1].node; yyval.node = (Node *)n; ; break;} case 681: -#line 3766 "gram.y" +#line 3758 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons("-",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 682: +#line 3768 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons("/",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 683: +#line 3778 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons("*",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 684: +#line 3788 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons("<",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 685: +#line 3798 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons(">",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 686: +#line 3808 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-4].node, NULL); + n->oper = lcons("=",NIL); + n->useor = false; + n->subLinkType = EXPR_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 687: +#line 3818 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-5].node,NIL); + n->oper = lcons(yyvsp[-4].str,NIL); + n->useor = false; + n->subLinkType = ANY_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 688: +#line 3828 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-5].node,NIL); + n->oper = lcons("+",NIL); + n->useor = false; + n->subLinkType = ANY_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 689: +#line 3838 "gram.y" +{ + SubLink *n = makeNode(SubLink); + n->lefthand = lcons(yyvsp[-5].node,NIL); + n->oper = lcons("-",NIL); + n->useor = false; + n->subLinkType = ANY_SUBLINK; + n->subselect = yyvsp[-1].node; + yyval.node = (Node *)n; + ; + break;} +case 690: +#line 3848 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9094,8 +9296,8 @@ case 681: yyval.node = (Node *)n; ; break;} -case 682: -#line 3776 "gram.y" +case 691: +#line 3858 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9106,8 +9308,8 @@ case 682: yyval.node = (Node *)n; ; break;} -case 683: -#line 3786 "gram.y" +case 692: +#line 3868 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9118,8 +9320,8 @@ case 683: yyval.node = (Node *)n; ; break;} -case 684: -#line 3796 "gram.y" +case 693: +#line 3878 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9130,8 +9332,8 @@ case 684: yyval.node = (Node *)n; ; break;} -case 685: -#line 3806 "gram.y" +case 694: +#line 3888 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node,NIL); @@ -9142,8 +9344,8 @@ case 685: yyval.node = (Node *)n; ; break;} -case 686: -#line 3816 "gram.y" +case 695: +#line 3898 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9154,8 +9356,8 @@ case 686: yyval.node = (Node *)n; ; break;} -case 687: -#line 3826 "gram.y" +case 696: +#line 3908 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9166,8 +9368,8 @@ case 687: yyval.node = (Node *)n; ; break;} -case 688: -#line 3836 "gram.y" +case 697: +#line 3918 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9178,8 +9380,8 @@ case 688: yyval.node = (Node *)n; ; break;} -case 689: -#line 3846 "gram.y" +case 698: +#line 3928 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9190,8 +9392,8 @@ case 689: yyval.node = (Node *)n; ; break;} -case 690: -#line 3856 "gram.y" +case 699: +#line 3938 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9202,8 +9404,8 @@ case 690: yyval.node = (Node *)n; ; break;} -case 691: -#line 3866 "gram.y" +case 700: +#line 3948 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9214,8 +9416,8 @@ case 691: yyval.node = (Node *)n; ; break;} -case 692: -#line 3876 "gram.y" +case 701: +#line 3958 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9226,8 +9428,8 @@ case 692: yyval.node = (Node *)n; ; break;} -case 693: -#line 3886 "gram.y" +case 702: +#line 3968 "gram.y" { SubLink *n = makeNode(SubLink); n->lefthand = lcons(yyvsp[-5].node, NULL); @@ -9238,35 +9440,35 @@ case 693: yyval.node = (Node *)n; ; break;} -case 694: -#line 3896 "gram.y" +case 703: +#line 3978 "gram.y" { yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 695: -#line 3898 "gram.y" +case 704: +#line 3980 "gram.y" { yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 696: -#line 3900 "gram.y" +case 705: +#line 3982 "gram.y" { yyval.node = makeA_Expr(NOT, NULL, NULL, yyvsp[0].node); ; break;} -case 697: -#line 3902 "gram.y" +case 706: +#line 3984 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 698: -#line 3911 "gram.y" +case 707: +#line 3993 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 699: -#line 3916 "gram.y" +case 708: +#line 3998 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 700: -#line 3918 "gram.y" +case 709: +#line 4000 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -9275,40 +9477,40 @@ case 700: yyval.node = (Node *)n; ; break;} -case 701: -#line 3926 "gram.y" +case 710: +#line 4008 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 702: -#line 3928 "gram.y" +case 711: +#line 4010 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 703: -#line 3930 "gram.y" +case 712: +#line 4012 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 704: -#line 3932 "gram.y" +case 713: +#line 4014 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 705: -#line 3934 "gram.y" +case 714: +#line 4016 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 706: -#line 3936 "gram.y" +case 715: +#line 4018 "gram.y" { yyval.node = makeA_Expr(OP, ":", NULL, yyvsp[0].node); ; break;} -case 707: -#line 3938 "gram.y" +case 716: +#line 4020 "gram.y" { yyval.node = makeA_Expr(OP, ";", NULL, yyvsp[0].node); ; break;} -case 708: -#line 3940 "gram.y" +case 717: +#line 4022 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 709: -#line 3942 "gram.y" +case 718: +#line 4024 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -9325,8 +9527,8 @@ case 709: } ; break;} -case 710: -#line 3958 "gram.y" +case 719: +#line 4040 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -9343,24 +9545,24 @@ case 710: } ; break;} -case 711: -#line 3974 "gram.y" +case 720: +#line 4056 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 712: -#line 3976 "gram.y" +case 721: +#line 4058 "gram.y" { yyval.node = makeIndexable(yyvsp[-1].str,yyvsp[-2].node,yyvsp[0].node); ; break;} -case 713: -#line 3978 "gram.y" +case 722: +#line 4060 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 714: -#line 3980 "gram.y" +case 723: +#line 4062 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 715: -#line 3982 "gram.y" +case 724: +#line 4064 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -9368,8 +9570,8 @@ case 715: yyval.node = (Node *)n; ; break;} -case 716: -#line 3989 "gram.y" +case 725: +#line 4071 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -9377,8 +9579,8 @@ case 716: yyval.node = (Node *)n; ; break;} -case 717: -#line 3996 "gram.y" +case 726: +#line 4078 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -9394,8 +9596,8 @@ case 717: yyval.node = (Node *)n; ; break;} -case 718: -#line 4011 "gram.y" +case 727: +#line 4093 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -9411,8 +9613,8 @@ case 718: yyval.node = (Node *)n; ; break;} -case 719: -#line 4026 "gram.y" +case 728: +#line 4108 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -9435,8 +9637,8 @@ case 719: yyval.node = (Node *)n; ; break;} -case 720: -#line 4048 "gram.y" +case 729: +#line 4130 "gram.y" { A_Const *n = makeNode(A_Const); TypeName *t = makeNode(TypeName); @@ -9452,8 +9654,8 @@ case 720: yyval.node = (Node *)n; ; break;} -case 721: -#line 4063 "gram.y" +case 730: +#line 4145 "gram.y" { FuncCall *n = makeNode(FuncCall); A_Const *s = makeNode(A_Const); @@ -9476,8 +9678,8 @@ case 721: yyval.node = (Node *)n; ; break;} -case 722: -#line 4085 "gram.y" +case 731: +#line 4167 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -9485,8 +9687,8 @@ case 722: yyval.node = (Node *)n; ; break;} -case 723: -#line 4092 "gram.y" +case 732: +#line 4174 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "getpgusername"; @@ -9494,8 +9696,8 @@ case 723: yyval.node = (Node *)n; ; break;} -case 724: -#line 4099 "gram.y" +case 733: +#line 4181 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -9503,8 +9705,8 @@ case 724: yyval.node = (Node *)n; ; break;} -case 725: -#line 4106 "gram.y" +case 734: +#line 4188 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -9512,8 +9714,8 @@ case 725: yyval.node = (Node *)n; ; break;} -case 726: -#line 4114 "gram.y" +case 735: +#line 4196 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -9521,8 +9723,8 @@ case 726: yyval.node = (Node *)n; ; break;} -case 727: -#line 4121 "gram.y" +case 736: +#line 4203 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -9530,8 +9732,8 @@ case 727: yyval.node = (Node *)n; ; break;} -case 728: -#line 4128 "gram.y" +case 737: +#line 4210 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -9539,8 +9741,8 @@ case 728: yyval.node = (Node *)n; ; break;} -case 729: -#line 4135 "gram.y" +case 738: +#line 4217 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -9548,8 +9750,8 @@ case 729: yyval.node = (Node *)n; ; break;} -case 730: -#line 4144 "gram.y" +case 739: +#line 4226 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = NULL; @@ -9557,8 +9759,8 @@ case 730: yyval.list = lcons(ai, yyvsp[0].list); ; break;} -case 731: -#line 4151 "gram.y" +case 740: +#line 4233 "gram.y" { A_Indices *ai = makeNode(A_Indices); ai->lidx = yyvsp[-4].node; @@ -9566,24 +9768,24 @@ case 731: yyval.list = lcons(ai, yyvsp[0].list); ; break;} -case 732: -#line 4158 "gram.y" +case 741: +#line 4240 "gram.y" { yyval.list = NIL; ; break;} -case 733: -#line 4162 "gram.y" +case 742: +#line 4244 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 734: -#line 4164 "gram.y" +case 743: +#line 4246 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 735: -#line 4166 "gram.y" +case 744: +#line 4248 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].node); ; break;} -case 736: -#line 4170 "gram.y" +case 745: +#line 4252 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -9591,67 +9793,67 @@ case 736: yyval.list = lappend(lcons((Node *)n,NIL), yyvsp[0].node); ; break;} -case 737: -#line 4177 "gram.y" +case 746: +#line 4259 "gram.y" { yyval.list = NIL; ; break;} -case 738: -#line 4180 "gram.y" +case 747: +#line 4262 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 739: -#line 4181 "gram.y" +case 748: +#line 4263 "gram.y" { yyval.str = "tz_hour"; ; break;} -case 740: -#line 4182 "gram.y" +case 749: +#line 4264 "gram.y" { yyval.str = "tz_minute"; ; break;} -case 741: -#line 4186 "gram.y" +case 750: +#line 4268 "gram.y" { yyval.list = makeList(yyvsp[0].node, yyvsp[-2].node, -1); ; break;} -case 742: -#line 4188 "gram.y" +case 751: +#line 4270 "gram.y" { yyval.list = NIL; ; break;} -case 743: -#line 4192 "gram.y" +case 752: +#line 4274 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 744: -#line 4197 "gram.y" +case 753: +#line 4279 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 745: -#line 4199 "gram.y" +case 754: +#line 4281 "gram.y" { yyval.node = makeA_Expr(OP, "-", NULL, yyvsp[0].node); ; break;} -case 746: -#line 4201 "gram.y" +case 755: +#line 4283 "gram.y" { yyval.node = makeA_Expr(OP, "+", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 747: -#line 4203 "gram.y" +case 756: +#line 4285 "gram.y" { yyval.node = makeA_Expr(OP, "-", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 748: -#line 4205 "gram.y" +case 757: +#line 4287 "gram.y" { yyval.node = makeA_Expr(OP, "/", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 749: -#line 4207 "gram.y" +case 758: +#line 4289 "gram.y" { yyval.node = makeA_Expr(OP, "*", yyvsp[-2].node, yyvsp[0].node); ; break;} -case 750: -#line 4209 "gram.y" +case 759: +#line 4291 "gram.y" { yyval.node = makeA_Expr(OP, "|", NULL, yyvsp[0].node); ; break;} -case 751: -#line 4211 "gram.y" +case 760: +#line 4293 "gram.y" { yyval.node = (Node *)yyvsp[-2].node; /* AexprConst can be either A_Const or ParamNo */ @@ -9668,8 +9870,8 @@ case 751: } ; break;} -case 752: -#line 4227 "gram.y" +case 761: +#line 4309 "gram.y" { yyval.node = (Node *)yyvsp[-3].node; /* AexprConst can be either A_Const or ParamNo */ @@ -9686,24 +9888,24 @@ case 752: } ; break;} -case 753: -#line 4243 "gram.y" +case 762: +#line 4325 "gram.y" { yyval.node = yyvsp[-1].node; ; break;} -case 754: -#line 4245 "gram.y" +case 763: +#line 4327 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, yyvsp[-2].node, yyvsp[0].node); ; break;} -case 755: -#line 4247 "gram.y" +case 764: +#line 4329 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[-1].str, NULL, yyvsp[0].node); ; break;} -case 756: -#line 4249 "gram.y" +case 765: +#line 4331 "gram.y" { yyval.node = makeA_Expr(OP, yyvsp[0].str, yyvsp[-1].node, NULL); ; break;} -case 757: -#line 4251 "gram.y" +case 766: +#line 4333 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -9712,8 +9914,8 @@ case 757: yyval.node = (Node *)n; ; break;} -case 758: -#line 4259 "gram.y" +case 767: +#line 4341 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-2].str; @@ -9721,8 +9923,8 @@ case 758: yyval.node = (Node *)n; ; break;} -case 759: -#line 4266 "gram.y" +case 768: +#line 4348 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = yyvsp[-3].str; @@ -9730,8 +9932,8 @@ case 759: yyval.node = (Node *)n; ; break;} -case 760: -#line 4273 "gram.y" +case 769: +#line 4355 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "strpos"; @@ -9739,8 +9941,8 @@ case 760: yyval.node = (Node *)n; ; break;} -case 761: -#line 4280 "gram.y" +case 770: +#line 4362 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "substr"; @@ -9748,8 +9950,8 @@ case 761: yyval.node = (Node *)n; ; break;} -case 762: -#line 4288 "gram.y" +case 771: +#line 4370 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -9757,8 +9959,8 @@ case 762: yyval.node = (Node *)n; ; break;} -case 763: -#line 4295 "gram.y" +case 772: +#line 4377 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "ltrim"; @@ -9766,8 +9968,8 @@ case 763: yyval.node = (Node *)n; ; break;} -case 764: -#line 4302 "gram.y" +case 773: +#line 4384 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "rtrim"; @@ -9775,8 +9977,8 @@ case 764: yyval.node = (Node *)n; ; break;} -case 765: -#line 4309 "gram.y" +case 774: +#line 4391 "gram.y" { FuncCall *n = makeNode(FuncCall); n->funcname = "btrim"; @@ -9784,22 +9986,22 @@ case 765: yyval.node = (Node *)n; ; break;} -case 766: -#line 4318 "gram.y" +case 775: +#line 4400 "gram.y" { yyval.list = nconc(nconc(yyvsp[-2].list,yyvsp[-1].list),yyvsp[0].list); ; break;} -case 767: -#line 4322 "gram.y" +case 776: +#line 4404 "gram.y" { yyval.list = NIL; ; break;} -case 768: -#line 4326 "gram.y" +case 777: +#line 4408 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 769: -#line 4328 "gram.y" +case 778: +#line 4410 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; @@ -9807,72 +10009,72 @@ case 769: yyval.list = lcons((Node *)n,NIL); ; break;} -case 770: -#line 4337 "gram.y" +case 779: +#line 4419 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 771: -#line 4339 "gram.y" +case 780: +#line 4421 "gram.y" { yyval.list = NIL; ; break;} -case 772: -#line 4343 "gram.y" +case 781: +#line 4425 "gram.y" { yyval.list = lappend(yyvsp[0].list, yyvsp[-2].node); ; break;} -case 773: -#line 4345 "gram.y" +case 782: +#line 4427 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 774: -#line 4347 "gram.y" +case 783: +#line 4429 "gram.y" { yyval.list = yyvsp[0].list; ; break;} -case 775: -#line 4351 "gram.y" +case 784: +#line 4433 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = yyvsp[0].node; yyval.node = (Node *)n; ; break;} -case 776: -#line 4357 "gram.y" +case 785: +#line 4439 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 777: -#line 4361 "gram.y" +case 786: +#line 4443 "gram.y" { yyval.node = makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node); ; break;} -case 778: -#line 4363 "gram.y" +case 787: +#line 4445 "gram.y" { yyval.node = makeA_Expr(OR, NULL, yyvsp[-2].node, makeA_Expr(OP, "=", lfirst(saved_In_Expr), yyvsp[0].node)); ; break;} -case 779: -#line 4369 "gram.y" +case 788: +#line 4451 "gram.y" { SubLink *n = makeNode(SubLink); n->subselect = yyvsp[0].node; yyval.node = (Node *)n; ; break;} -case 780: -#line 4375 "gram.y" +case 789: +#line 4457 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 781: -#line 4379 "gram.y" +case 790: +#line 4461 "gram.y" { yyval.node = makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node); ; break;} -case 782: -#line 4381 "gram.y" +case 791: +#line 4463 "gram.y" { yyval.node = makeA_Expr(AND, NULL, yyvsp[-2].node, makeA_Expr(OP, "<>", lfirst(saved_In_Expr), yyvsp[0].node)); ; break;} -case 783: -#line 4402 "gram.y" +case 792: +#line 4484 "gram.y" { CaseExpr *c = makeNode(CaseExpr); c->arg = yyvsp[-3].node; @@ -9881,8 +10083,8 @@ case 783: yyval.node = (Node *)c; ; break;} -case 784: -#line 4410 "gram.y" +case 793: +#line 4492 "gram.y" { CaseExpr *c = makeNode(CaseExpr); CaseWhen *w = makeNode(CaseWhen); @@ -9894,8 +10096,8 @@ case 784: elog(NOTICE,"NULLIF() not yet fully implemented"); ; break;} -case 785: -#line 4421 "gram.y" +case 794: +#line 4503 "gram.y" { CaseExpr *c = makeNode(CaseExpr); CaseWhen *w; @@ -9912,16 +10114,16 @@ case 785: elog(NOTICE,"COALESCE() not yet fully implemented"); ; break;} -case 786: -#line 4439 "gram.y" +case 795: +#line 4521 "gram.y" { yyval.list = lappend(yyvsp[-1].list, yyvsp[0].node); ; break;} -case 787: -#line 4441 "gram.y" +case 796: +#line 4523 "gram.y" { yyval.list = lcons(yyvsp[0].node, NIL); ; break;} -case 788: -#line 4445 "gram.y" +case 797: +#line 4527 "gram.y" { CaseWhen *w = makeNode(CaseWhen); w->expr = yyvsp[-2].node; @@ -9929,23 +10131,23 @@ case 788: yyval.node = (Node *)w; ; break;} -case 789: -#line 4453 "gram.y" +case 798: +#line 4535 "gram.y" { yyval.node = yyvsp[0].node; ; break;} -case 790: -#line 4454 "gram.y" +case 799: +#line 4536 "gram.y" { yyval.node = NULL; ; break;} -case 791: -#line 4458 "gram.y" +case 800: +#line 4540 "gram.y" { yyvsp[-1].attr->indirection = yyvsp[0].list; yyval.node = (Node *)yyvsp[-1].attr; ; break;} -case 792: -#line 4463 "gram.y" +case 801: +#line 4545 "gram.y" { /* could be a column name or a relation_name */ Ident *n = makeNode(Ident); @@ -9954,12 +10156,12 @@ case 792: yyval.node = (Node *)n; ; break;} -case 793: -#line 4471 "gram.y" +case 802: +#line 4553 "gram.y" { yyval.node = NULL; ; break;} -case 794: -#line 4475 "gram.y" +case 803: +#line 4557 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = yyvsp[-2].str; @@ -9968,8 +10170,8 @@ case 794: yyval.attr->indirection = NULL; ; break;} -case 795: -#line 4483 "gram.y" +case 804: +#line 4565 "gram.y" { yyval.attr = makeNode(Attr); yyval.attr->relname = NULL; @@ -9978,28 +10180,28 @@ case 795: yyval.attr->indirection = NULL; ; break;} -case 796: -#line 4493 "gram.y" +case 805: +#line 4575 "gram.y" { yyval.list = lcons(makeString(yyvsp[0].str), NIL); ; break;} -case 797: -#line 4495 "gram.y" +case 806: +#line 4577 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString(yyvsp[0].str)); ; break;} -case 798: -#line 4497 "gram.y" +case 807: +#line 4579 "gram.y" { yyval.list = lappend(yyvsp[-2].list, makeString("*")); ; break;} -case 799: -#line 4508 "gram.y" +case 808: +#line 4590 "gram.y" { yyval.list = lappend(yyvsp[-2].list,yyvsp[0].target); ; break;} -case 800: -#line 4510 "gram.y" +case 809: +#line 4592 "gram.y" { yyval.list = lcons(yyvsp[0].target, NIL); ; break;} -case 801: -#line 4512 "gram.y" +case 810: +#line 4594 "gram.y" { ResTarget *rt = makeNode(ResTarget); Attr *att = makeNode(Attr); @@ -10013,8 +10215,8 @@ case 801: yyval.list = lcons(rt, NIL); ; break;} -case 802: -#line 4527 "gram.y" +case 811: +#line 4609 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = yyvsp[-3].str; @@ -10022,8 +10224,8 @@ case 802: yyval.target->val = (Node *)yyvsp[0].node; ; break;} -case 803: -#line 4534 "gram.y" +case 812: +#line 4616 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = NULL; @@ -10031,8 +10233,8 @@ case 803: yyval.target->val = (Node *)yyvsp[-1].attr; ; break;} -case 804: -#line 4541 "gram.y" +case 813: +#line 4623 "gram.y" { Attr *att = makeNode(Attr); att->relname = yyvsp[-2].str; @@ -10045,16 +10247,16 @@ case 804: yyval.target->val = (Node *)att; ; break;} -case 805: -#line 4560 "gram.y" +case 814: +#line 4642 "gram.y" { yyval.list = lappend(yyvsp[-2].list, yyvsp[0].target); ; break;} -case 806: -#line 4562 "gram.y" +case 815: +#line 4644 "gram.y" { yyval.list = lcons(yyvsp[0].target, NIL); ; break;} -case 807: -#line 4567 "gram.y" +case 816: +#line 4649 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = yyvsp[0].str; @@ -10062,8 +10264,8 @@ case 807: yyval.target->val = (Node *)yyvsp[-2].node; ; break;} -case 808: -#line 4574 "gram.y" +case 817: +#line 4656 "gram.y" { yyval.target = makeNode(ResTarget); yyval.target->name = NULL; @@ -10071,8 +10273,8 @@ case 808: yyval.target->val = (Node *)yyvsp[0].node; ; break;} -case 809: -#line 4581 "gram.y" +case 818: +#line 4663 "gram.y" { Attr *att = makeNode(Attr); att->relname = yyvsp[-2].str; @@ -10085,8 +10287,8 @@ case 809: yyval.target->val = (Node *)att; ; break;} -case 810: -#line 4593 "gram.y" +case 819: +#line 4675 "gram.y" { Attr *att = makeNode(Attr); att->relname = "*"; @@ -10099,23 +10301,23 @@ case 810: yyval.target->val = (Node *)att; ; break;} -case 811: -#line 4606 "gram.y" +case 820: +#line 4688 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 812: -#line 4607 "gram.y" +case 821: +#line 4689 "gram.y" { yyval.str = NULL; ; break;} -case 813: -#line 4611 "gram.y" +case 822: +#line 4693 "gram.y" { yyval.str = yyvsp[0].str; StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN); ; break;} -case 814: -#line 4616 "gram.y" +case 823: +#line 4698 "gram.y" { /* disallow refs to variable system tables */ if (strcmp(LogRelationName, yyvsp[0].str) == 0 @@ -10126,44 +10328,44 @@ case 814: StrNCpy(saved_relname, yyvsp[0].str, NAMEDATALEN); ; break;} -case 815: -#line 4627 "gram.y" +case 824: +#line 4709 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 816: -#line 4628 "gram.y" +case 825: +#line 4710 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 817: -#line 4629 "gram.y" +case 826: +#line 4711 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 818: -#line 4630 "gram.y" +case 827: +#line 4712 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 819: -#line 4631 "gram.y" +case 828: +#line 4713 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 820: -#line 4637 "gram.y" +case 829: +#line 4719 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 821: -#line 4638 "gram.y" +case 830: +#line 4720 "gram.y" { yyval.str = xlateSqlFunc(yyvsp[0].str); ; break;} -case 822: -#line 4640 "gram.y" +case 831: +#line 4722 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 823: -#line 4641 "gram.y" +case 832: +#line 4723 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 824: -#line 4647 "gram.y" +case 833: +#line 4729 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Integer; @@ -10171,8 +10373,8 @@ case 824: yyval.node = (Node *)n; ; break;} -case 825: -#line 4654 "gram.y" +case 834: +#line 4736 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_Float; @@ -10180,8 +10382,8 @@ case 825: yyval.node = (Node *)n; ; break;} -case 826: -#line 4661 "gram.y" +case 835: +#line 4743 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -10189,8 +10391,8 @@ case 826: yyval.node = (Node *)n; ; break;} -case 827: -#line 4668 "gram.y" +case 836: +#line 4750 "gram.y" { A_Const *n = makeNode(A_Const); n->typename = yyvsp[-1].typnam; @@ -10199,12 +10401,12 @@ case 827: yyval.node = (Node *)n; ; break;} -case 828: -#line 4676 "gram.y" +case 837: +#line 4758 "gram.y" { yyval.node = (Node *)yyvsp[0].paramno; ; break;} -case 829: -#line 4678 "gram.y" +case 838: +#line 4760 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -10215,8 +10417,8 @@ case 829: yyval.node = (Node *)n; ; break;} -case 830: -#line 4688 "gram.y" +case 839: +#line 4770 "gram.y" { A_Const *n = makeNode(A_Const); n->val.type = T_String; @@ -10227,480 +10429,480 @@ case 830: yyval.node = (Node *)n; ; break;} -case 831: -#line 4700 "gram.y" +case 840: +#line 4782 "gram.y" { yyval.paramno = makeNode(ParamNo); yyval.paramno->number = yyvsp[-1].ival; yyval.paramno->indirection = yyvsp[0].list; ; break;} -case 832: -#line 4707 "gram.y" +case 841: +#line 4789 "gram.y" { yyval.ival = yyvsp[0].ival; ; break;} -case 833: -#line 4708 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 834: -#line 4709 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 835: -#line 4717 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].str); ; - break;} -case 836: -#line 4719 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].str); ; - break;} -case 837: -#line 4721 "gram.y" -{ yyval.str = xlateSqlType(yyvsp[0].str); ; - break;} -case 838: -#line 4731 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 839: -#line 4732 "gram.y" -{ yyval.str = yyvsp[0].str; ; - break;} -case 840: -#line 4733 "gram.y" -{ yyval.str = "absolute"; ; - break;} -case 841: -#line 4734 "gram.y" -{ yyval.str = "action"; ; - break;} case 842: -#line 4735 "gram.y" -{ yyval.str = "after"; ; +#line 4790 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 843: -#line 4736 "gram.y" -{ yyval.str = "aggregate"; ; +#line 4791 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 844: -#line 4737 "gram.y" -{ yyval.str = "backward"; ; +#line 4799 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].str); ; break;} case 845: -#line 4738 "gram.y" -{ yyval.str = "before"; ; +#line 4801 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].str); ; break;} case 846: -#line 4739 "gram.y" -{ yyval.str = "cache"; ; +#line 4803 "gram.y" +{ yyval.str = xlateSqlType(yyvsp[0].str); ; break;} case 847: -#line 4740 "gram.y" -{ yyval.str = "createdb"; ; +#line 4813 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 848: -#line 4741 "gram.y" -{ yyval.str = "createuser"; ; - break;} -case 849: -#line 4742 "gram.y" -{ yyval.str = "cycle"; ; - break;} -case 850: -#line 4743 "gram.y" -{ yyval.str = "database"; ; - break;} -case 851: -#line 4744 "gram.y" -{ yyval.str = "delimiters"; ; - break;} -case 852: -#line 4745 "gram.y" -{ yyval.str = "double"; ; - break;} -case 853: -#line 4746 "gram.y" -{ yyval.str = "each"; ; - break;} -case 854: -#line 4747 "gram.y" -{ yyval.str = "encoding"; ; - break;} -case 855: -#line 4748 "gram.y" -{ yyval.str = "forward"; ; - break;} -case 856: -#line 4749 "gram.y" -{ yyval.str = "function"; ; - break;} -case 857: -#line 4750 "gram.y" -{ yyval.str = "handler"; ; - break;} -case 858: -#line 4751 "gram.y" -{ yyval.str = "increment"; ; - break;} -case 859: -#line 4752 "gram.y" -{ yyval.str = "index"; ; - break;} -case 860: -#line 4753 "gram.y" -{ yyval.str = "inherits"; ; - break;} -case 861: -#line 4754 "gram.y" -{ yyval.str = "insensitive"; ; - break;} -case 862: -#line 4755 "gram.y" -{ yyval.str = "instead"; ; - break;} -case 863: -#line 4756 "gram.y" -{ yyval.str = "isnull"; ; - break;} -case 864: -#line 4757 "gram.y" -{ yyval.str = "key"; ; - break;} -case 865: -#line 4758 "gram.y" -{ yyval.str = "language"; ; - break;} -case 866: -#line 4759 "gram.y" -{ yyval.str = "lancompiler"; ; - break;} -case 867: -#line 4760 "gram.y" -{ yyval.str = "location"; ; - break;} -case 868: -#line 4761 "gram.y" -{ yyval.str = "match"; ; - break;} -case 869: -#line 4762 "gram.y" -{ yyval.str = "maxvalue"; ; - break;} -case 870: -#line 4763 "gram.y" -{ yyval.str = "minvalue"; ; - break;} -case 871: -#line 4764 "gram.y" -{ yyval.str = "next"; ; - break;} -case 872: -#line 4765 "gram.y" -{ yyval.str = "nocreatedb"; ; - break;} -case 873: -#line 4766 "gram.y" -{ yyval.str = "nocreateuser"; ; - break;} -case 874: -#line 4767 "gram.y" -{ yyval.str = "nothing"; ; - break;} -case 875: -#line 4768 "gram.y" -{ yyval.str = "notnull"; ; - break;} -case 876: -#line 4769 "gram.y" -{ yyval.str = "of"; ; - break;} -case 877: -#line 4770 "gram.y" -{ yyval.str = "oids"; ; - break;} -case 878: -#line 4771 "gram.y" -{ yyval.str = "only"; ; - break;} -case 879: -#line 4772 "gram.y" -{ yyval.str = "operator"; ; - break;} -case 880: -#line 4773 "gram.y" -{ yyval.str = "option"; ; - break;} -case 881: -#line 4774 "gram.y" -{ yyval.str = "password"; ; - break;} -case 882: -#line 4775 "gram.y" -{ yyval.str = "prior"; ; - break;} -case 883: -#line 4776 "gram.y" -{ yyval.str = "privileges"; ; - break;} -case 884: -#line 4777 "gram.y" -{ yyval.str = "procedural"; ; - break;} -case 885: -#line 4778 "gram.y" -{ yyval.str = "read"; ; - break;} -case 886: -#line 4779 "gram.y" -{ yyval.str = "recipe"; ; - break;} -case 887: -#line 4780 "gram.y" -{ yyval.str = "relative"; ; - break;} -case 888: -#line 4781 "gram.y" -{ yyval.str = "rename"; ; - break;} -case 889: -#line 4782 "gram.y" -{ yyval.str = "returns"; ; - break;} -case 890: -#line 4783 "gram.y" -{ yyval.str = "row"; ; - break;} -case 891: -#line 4784 "gram.y" -{ yyval.str = "rule"; ; - break;} -case 892: -#line 4785 "gram.y" -{ yyval.str = "scroll"; ; - break;} -case 893: -#line 4786 "gram.y" -{ yyval.str = "sequence"; ; - break;} -case 894: -#line 4787 "gram.y" -{ yyval.str = "serial"; ; - break;} -case 895: -#line 4788 "gram.y" -{ yyval.str = "start"; ; - break;} -case 896: -#line 4789 "gram.y" -{ yyval.str = "statement"; ; - break;} -case 897: -#line 4790 "gram.y" -{ yyval.str = "stdin"; ; - break;} -case 898: -#line 4791 "gram.y" -{ yyval.str = "stdout"; ; - break;} -case 899: -#line 4792 "gram.y" -{ yyval.str = "time"; ; - break;} -case 900: -#line 4793 "gram.y" -{ yyval.str = "timestamp"; ; - break;} -case 901: -#line 4794 "gram.y" -{ yyval.str = "timezone_hour"; ; - break;} -case 902: -#line 4795 "gram.y" -{ yyval.str = "timezone_minute"; ; - break;} -case 903: -#line 4796 "gram.y" -{ yyval.str = "trigger"; ; - break;} -case 904: -#line 4797 "gram.y" -{ yyval.str = "trusted"; ; - break;} -case 905: -#line 4798 "gram.y" -{ yyval.str = "type"; ; - break;} -case 906: -#line 4799 "gram.y" -{ yyval.str = "valid"; ; - break;} -case 907: -#line 4800 "gram.y" -{ yyval.str = "version"; ; - break;} -case 908: -#line 4801 "gram.y" -{ yyval.str = "zone"; ; - break;} -case 909: #line 4814 "gram.y" { yyval.str = yyvsp[0].str; ; break;} -case 910: +case 849: #line 4815 "gram.y" -{ yyval.str = "abort"; ; +{ yyval.str = "absolute"; ; + break;} +case 850: +#line 4816 "gram.y" +{ yyval.str = "action"; ; + break;} +case 851: +#line 4817 "gram.y" +{ yyval.str = "after"; ; + break;} +case 852: +#line 4818 "gram.y" +{ yyval.str = "aggregate"; ; + break;} +case 853: +#line 4819 "gram.y" +{ yyval.str = "backward"; ; + break;} +case 854: +#line 4820 "gram.y" +{ yyval.str = "before"; ; + break;} +case 855: +#line 4821 "gram.y" +{ yyval.str = "cache"; ; + break;} +case 856: +#line 4822 "gram.y" +{ yyval.str = "createdb"; ; + break;} +case 857: +#line 4823 "gram.y" +{ yyval.str = "createuser"; ; + break;} +case 858: +#line 4824 "gram.y" +{ yyval.str = "cycle"; ; + break;} +case 859: +#line 4825 "gram.y" +{ yyval.str = "database"; ; + break;} +case 860: +#line 4826 "gram.y" +{ yyval.str = "delimiters"; ; + break;} +case 861: +#line 4827 "gram.y" +{ yyval.str = "double"; ; + break;} +case 862: +#line 4828 "gram.y" +{ yyval.str = "each"; ; + break;} +case 863: +#line 4829 "gram.y" +{ yyval.str = "encoding"; ; + break;} +case 864: +#line 4830 "gram.y" +{ yyval.str = "forward"; ; + break;} +case 865: +#line 4831 "gram.y" +{ yyval.str = "function"; ; + break;} +case 866: +#line 4832 "gram.y" +{ yyval.str = "handler"; ; + break;} +case 867: +#line 4833 "gram.y" +{ yyval.str = "increment"; ; + break;} +case 868: +#line 4834 "gram.y" +{ yyval.str = "index"; ; + break;} +case 869: +#line 4835 "gram.y" +{ yyval.str = "inherits"; ; + break;} +case 870: +#line 4836 "gram.y" +{ yyval.str = "insensitive"; ; + break;} +case 871: +#line 4837 "gram.y" +{ yyval.str = "instead"; ; + break;} +case 872: +#line 4838 "gram.y" +{ yyval.str = "isnull"; ; + break;} +case 873: +#line 4839 "gram.y" +{ yyval.str = "key"; ; + break;} +case 874: +#line 4840 "gram.y" +{ yyval.str = "language"; ; + break;} +case 875: +#line 4841 "gram.y" +{ yyval.str = "lancompiler"; ; + break;} +case 876: +#line 4842 "gram.y" +{ yyval.str = "location"; ; + break;} +case 877: +#line 4843 "gram.y" +{ yyval.str = "match"; ; + break;} +case 878: +#line 4844 "gram.y" +{ yyval.str = "maxvalue"; ; + break;} +case 879: +#line 4845 "gram.y" +{ yyval.str = "minvalue"; ; + break;} +case 880: +#line 4846 "gram.y" +{ yyval.str = "next"; ; + break;} +case 881: +#line 4847 "gram.y" +{ yyval.str = "nocreatedb"; ; + break;} +case 882: +#line 4848 "gram.y" +{ yyval.str = "nocreateuser"; ; + break;} +case 883: +#line 4849 "gram.y" +{ yyval.str = "nothing"; ; + break;} +case 884: +#line 4850 "gram.y" +{ yyval.str = "notnull"; ; + break;} +case 885: +#line 4851 "gram.y" +{ yyval.str = "of"; ; + break;} +case 886: +#line 4852 "gram.y" +{ yyval.str = "oids"; ; + break;} +case 887: +#line 4853 "gram.y" +{ yyval.str = "only"; ; + break;} +case 888: +#line 4854 "gram.y" +{ yyval.str = "operator"; ; + break;} +case 889: +#line 4855 "gram.y" +{ yyval.str = "option"; ; + break;} +case 890: +#line 4856 "gram.y" +{ yyval.str = "password"; ; + break;} +case 891: +#line 4857 "gram.y" +{ yyval.str = "prior"; ; + break;} +case 892: +#line 4858 "gram.y" +{ yyval.str = "privileges"; ; + break;} +case 893: +#line 4859 "gram.y" +{ yyval.str = "procedural"; ; + break;} +case 894: +#line 4860 "gram.y" +{ yyval.str = "read"; ; + break;} +case 895: +#line 4861 "gram.y" +{ yyval.str = "recipe"; ; + break;} +case 896: +#line 4862 "gram.y" +{ yyval.str = "relative"; ; + break;} +case 897: +#line 4863 "gram.y" +{ yyval.str = "rename"; ; + break;} +case 898: +#line 4864 "gram.y" +{ yyval.str = "returns"; ; + break;} +case 899: +#line 4865 "gram.y" +{ yyval.str = "row"; ; + break;} +case 900: +#line 4866 "gram.y" +{ yyval.str = "rule"; ; + break;} +case 901: +#line 4867 "gram.y" +{ yyval.str = "scroll"; ; + break;} +case 902: +#line 4868 "gram.y" +{ yyval.str = "sequence"; ; + break;} +case 903: +#line 4869 "gram.y" +{ yyval.str = "serial"; ; + break;} +case 904: +#line 4870 "gram.y" +{ yyval.str = "start"; ; + break;} +case 905: +#line 4871 "gram.y" +{ yyval.str = "statement"; ; + break;} +case 906: +#line 4872 "gram.y" +{ yyval.str = "stdin"; ; + break;} +case 907: +#line 4873 "gram.y" +{ yyval.str = "stdout"; ; + break;} +case 908: +#line 4874 "gram.y" +{ yyval.str = "time"; ; + break;} +case 909: +#line 4875 "gram.y" +{ yyval.str = "timestamp"; ; + break;} +case 910: +#line 4876 "gram.y" +{ yyval.str = "timezone_hour"; ; break;} case 911: -#line 4816 "gram.y" -{ yyval.str = "analyze"; ; +#line 4877 "gram.y" +{ yyval.str = "timezone_minute"; ; break;} case 912: -#line 4817 "gram.y" -{ yyval.str = "binary"; ; +#line 4878 "gram.y" +{ yyval.str = "trigger"; ; break;} case 913: -#line 4818 "gram.y" -{ yyval.str = "case"; ; +#line 4879 "gram.y" +{ yyval.str = "trusted"; ; break;} case 914: -#line 4819 "gram.y" -{ yyval.str = "cluster"; ; +#line 4880 "gram.y" +{ yyval.str = "type"; ; break;} case 915: -#line 4820 "gram.y" -{ yyval.str = "coalesce"; ; +#line 4881 "gram.y" +{ yyval.str = "valid"; ; break;} case 916: -#line 4821 "gram.y" -{ yyval.str = "constraint"; ; +#line 4882 "gram.y" +{ yyval.str = "version"; ; break;} case 917: -#line 4822 "gram.y" -{ yyval.str = "copy"; ; +#line 4883 "gram.y" +{ yyval.str = "zone"; ; break;} case 918: -#line 4823 "gram.y" -{ yyval.str = "cross"; ; +#line 4896 "gram.y" +{ yyval.str = yyvsp[0].str; ; break;} case 919: -#line 4824 "gram.y" -{ yyval.str = "current"; ; +#line 4897 "gram.y" +{ yyval.str = "abort"; ; break;} case 920: -#line 4825 "gram.y" -{ yyval.str = "do"; ; +#line 4898 "gram.y" +{ yyval.str = "analyze"; ; break;} case 921: -#line 4826 "gram.y" -{ yyval.str = "else"; ; +#line 4899 "gram.y" +{ yyval.str = "binary"; ; break;} case 922: -#line 4827 "gram.y" -{ yyval.str = "end"; ; +#line 4900 "gram.y" +{ yyval.str = "case"; ; break;} case 923: -#line 4828 "gram.y" -{ yyval.str = "explain"; ; +#line 4901 "gram.y" +{ yyval.str = "cluster"; ; break;} case 924: -#line 4829 "gram.y" -{ yyval.str = "extend"; ; +#line 4902 "gram.y" +{ yyval.str = "coalesce"; ; break;} case 925: -#line 4830 "gram.y" -{ yyval.str = "false"; ; +#line 4903 "gram.y" +{ yyval.str = "constraint"; ; break;} case 926: -#line 4831 "gram.y" -{ yyval.str = "foreign"; ; +#line 4904 "gram.y" +{ yyval.str = "copy"; ; break;} case 927: -#line 4832 "gram.y" -{ yyval.str = "group"; ; +#line 4905 "gram.y" +{ yyval.str = "cross"; ; break;} case 928: -#line 4833 "gram.y" -{ yyval.str = "listen"; ; +#line 4906 "gram.y" +{ yyval.str = "current"; ; break;} case 929: -#line 4834 "gram.y" -{ yyval.str = "load"; ; +#line 4907 "gram.y" +{ yyval.str = "do"; ; break;} case 930: -#line 4835 "gram.y" -{ yyval.str = "lock"; ; +#line 4908 "gram.y" +{ yyval.str = "else"; ; break;} case 931: -#line 4836 "gram.y" -{ yyval.str = "move"; ; +#line 4909 "gram.y" +{ yyval.str = "end"; ; break;} case 932: -#line 4837 "gram.y" -{ yyval.str = "new"; ; +#line 4910 "gram.y" +{ yyval.str = "explain"; ; break;} case 933: -#line 4838 "gram.y" -{ yyval.str = "none"; ; +#line 4911 "gram.y" +{ yyval.str = "extend"; ; break;} case 934: -#line 4839 "gram.y" -{ yyval.str = "nullif"; ; +#line 4912 "gram.y" +{ yyval.str = "false"; ; break;} case 935: -#line 4840 "gram.y" -{ yyval.str = "order"; ; +#line 4913 "gram.y" +{ yyval.str = "foreign"; ; break;} case 936: -#line 4841 "gram.y" -{ yyval.str = "position"; ; +#line 4914 "gram.y" +{ yyval.str = "group"; ; break;} case 937: -#line 4842 "gram.y" -{ yyval.str = "precision"; ; +#line 4915 "gram.y" +{ yyval.str = "listen"; ; break;} case 938: -#line 4843 "gram.y" -{ yyval.str = "reset"; ; +#line 4916 "gram.y" +{ yyval.str = "load"; ; break;} case 939: -#line 4844 "gram.y" -{ yyval.str = "setof"; ; +#line 4917 "gram.y" +{ yyval.str = "lock"; ; break;} case 940: -#line 4845 "gram.y" -{ yyval.str = "show"; ; +#line 4918 "gram.y" +{ yyval.str = "move"; ; break;} case 941: -#line 4846 "gram.y" -{ yyval.str = "table"; ; +#line 4919 "gram.y" +{ yyval.str = "new"; ; break;} case 942: -#line 4847 "gram.y" -{ yyval.str = "then"; ; +#line 4920 "gram.y" +{ yyval.str = "none"; ; break;} case 943: -#line 4848 "gram.y" -{ yyval.str = "transaction"; ; +#line 4921 "gram.y" +{ yyval.str = "nullif"; ; break;} case 944: -#line 4849 "gram.y" -{ yyval.str = "true"; ; +#line 4922 "gram.y" +{ yyval.str = "order"; ; break;} case 945: -#line 4850 "gram.y" -{ yyval.str = "vacuum"; ; +#line 4923 "gram.y" +{ yyval.str = "position"; ; break;} case 946: -#line 4851 "gram.y" -{ yyval.str = "verbose"; ; +#line 4924 "gram.y" +{ yyval.str = "precision"; ; break;} case 947: -#line 4852 "gram.y" -{ yyval.str = "when"; ; +#line 4925 "gram.y" +{ yyval.str = "reset"; ; break;} case 948: -#line 4856 "gram.y" +#line 4926 "gram.y" +{ yyval.str = "setof"; ; + break;} +case 949: +#line 4927 "gram.y" +{ yyval.str = "show"; ; + break;} +case 950: +#line 4928 "gram.y" +{ yyval.str = "table"; ; + break;} +case 951: +#line 4929 "gram.y" +{ yyval.str = "then"; ; + break;} +case 952: +#line 4930 "gram.y" +{ yyval.str = "transaction"; ; + break;} +case 953: +#line 4931 "gram.y" +{ yyval.str = "true"; ; + break;} +case 954: +#line 4932 "gram.y" +{ yyval.str = "vacuum"; ; + break;} +case 955: +#line 4933 "gram.y" +{ yyval.str = "verbose"; ; + break;} +case 956: +#line 4934 "gram.y" +{ yyval.str = "when"; ; + break;} +case 957: +#line 4938 "gram.y" { if (QueryIsRule) yyval.str = "*CURRENT*"; @@ -10708,8 +10910,8 @@ case 948: elog(ERROR,"CURRENT used in non-rule query"); ; break;} -case 949: -#line 4863 "gram.y" +case 958: +#line 4945 "gram.y" { if (QueryIsRule) yyval.str = "*NEW*"; @@ -10915,7 +11117,7 @@ yyerrhandle: yystate = yyn; goto yynewstate; } -#line 4871 "gram.y" +#line 4953 "gram.y" static Node * diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 293d50a490..11babe1590 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.39 1998/12/13 04:37:51 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.40 1998/12/18 09:10:32 vadim Exp $ * * HISTORY * AUTHOR DATE MAJOR EVENT @@ -45,6 +45,7 @@ #include "catalog/catname.h" #include "utils/elog.h" #include "access/xact.h" +#include "storage/lmgr.h" #ifdef MULTIBYTE #include "mb/pg_wchar.h" @@ -133,6 +134,8 @@ Oid param_type(int t); /* used in parse_expr.c */ %type opt_database1, opt_database2, location, encoding +%type opt_lmode + %type user_createdb_clause, user_createuser_clause %type user_passwd_clause %type user_valid_clause @@ -269,8 +272,8 @@ Oid param_type(int t); /* used in parse_expr.c */ ELSE, END_TRANS, EXECUTE, EXISTS, EXTRACT, FALSE_P, FETCH, FLOAT, FOR, FOREIGN, FROM, FULL, GRANT, GROUP, HAVING, HOUR_P, - IN, INNER_P, INSENSITIVE, INSERT, INTERVAL, INTO, IS, - JOIN, KEY, LANGUAGE, LEADING, LEFT, LIKE, LOCAL, + IN, INNER_P, INSENSITIVE, INSERT, INTERVAL, INTO, IS, ISOLATION, + JOIN, KEY, LANGUAGE, LEADING, LEFT, LEVEL, LIKE, LOCAL, MATCH, MINUTE_P, MONTH_P, NAMES, NATIONAL, NATURAL, NCHAR, NEXT, NO, NOT, NULLIF, NULL_P, NUMERIC, OF, ON, ONLY, OPTION, OR, ORDER, OUTER_P, @@ -539,6 +542,24 @@ VariableSetStmt: SET ColId TO var_value n->value = $4; $$ = (Node *) n; } + | SET TRANSACTION ISOLATION LEVEL READ ColId + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->name = "XactIsoLevel"; + n->value = $6; + if (strcasecmp(n->value, "COMMITTED")) + elog(ERROR,"parser: syntax error at or near \"%s\"", n->value); + $$ = (Node *) n; + } + | SET TRANSACTION ISOLATION LEVEL ColId + { + VariableSetStmt *n = makeNode(VariableSetStmt); + n->name = "XactIsoLevel"; + n->value = $5; + if (strcasecmp(n->value, "SERIALIZABLE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", n->value); + $$ = (Node *) n; + } | SET NAMES encoding { #ifdef MB @@ -573,6 +594,12 @@ VariableShowStmt: SHOW ColId n->name = "timezone"; $$ = (Node *) n; } + | SHOW TRANSACTION ISOLATION LEVEL + { + VariableShowStmt *n = makeNode(VariableShowStmt); + n->name = "XactIsoLevel"; + $$ = (Node *) n; + } ; VariableResetStmt: RESET ColId @@ -587,6 +614,12 @@ VariableResetStmt: RESET ColId n->name = "timezone"; $$ = (Node *) n; } + | RESET TRANSACTION ISOLATION LEVEL + { + VariableResetStmt *n = makeNode(VariableResetStmt); + n->name = "XactIsoLevel"; + $$ = (Node *) n; + } ; @@ -2473,28 +2506,77 @@ DeleteStmt: DELETE FROM relation_name } ; -/* - * Total hack to just lock a table inside a transaction. - * Is it worth making this a separate command, with - * its own node type and file. I don't think so. bjm 1998/1/22 - */ -LockStmt: LOCK_P opt_table relation_name +LockStmt: LOCK_P opt_table relation_name { - DeleteStmt *n = makeNode(DeleteStmt); - A_Const *c = makeNode(A_Const); - - c->val.type = T_String; - c->val.val.str = "f"; - c->typename = makeNode(TypeName); - c->typename->name = xlateSqlType("bool"); - c->typename->typmod = -1; + LockStmt *n = makeNode(LockStmt); n->relname = $3; - n->whereClause = (Node *)c; + n->mode = AccessExclusiveLock; + $$ = (Node *)n; + } + | LOCK_P opt_table relation_name IN opt_lmode ROW IDENT IDENT + { + LockStmt *n = makeNode(LockStmt); + + n->relname = $3; + if (strcasecmp($8, "MODE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", $8); + if ($5 != NULL) + { + if (strcasecmp($5, "SHARE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", $5); + if (strcasecmp($7, "EXCLUSIVE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", $7); + n->mode = ShareRowExclusiveLock; + } + else + { + if (strcasecmp($7, "SHARE") == 0) + n->mode = RowShareLock; + else if (strcasecmp($7, "EXCLUSIVE") == 0) + n->mode = RowExclusiveLock; + else + elog(ERROR,"parser: syntax error at or near \"%s\"", $7); + } + $$ = (Node *)n; + } + | LOCK_P opt_table relation_name IN IDENT IDENT IDENT + { + LockStmt *n = makeNode(LockStmt); + + n->relname = $3; + if (strcasecmp($7, "MODE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", $7); + if (strcasecmp($5, "ACCESS")) + elog(ERROR,"parser: syntax error at or near \"%s\"", $5); + if (strcasecmp($6, "SHARE") == 0) + n->mode = AccessShareLock; + else if (strcasecmp($6, "EXCLUSIVE") == 0) + n->mode = AccessExclusiveLock; + else + elog(ERROR,"parser: syntax error at or near \"%s\"", $6); + $$ = (Node *)n; + } + | LOCK_P opt_table relation_name IN IDENT IDENT + { + LockStmt *n = makeNode(LockStmt); + + n->relname = $3; + if (strcasecmp($6, "MODE")) + elog(ERROR,"parser: syntax error at or near \"%s\"", $6); + if (strcasecmp($5, "SHARE") == 0) + n->mode = ShareLock; + else if (strcasecmp($5, "EXCLUSIVE") == 0) + n->mode = ExclusiveLock; + else + elog(ERROR,"parser: syntax error at or near \"%s\"", $5); $$ = (Node *)n; } ; +opt_lmode: IDENT { $$ = $1; } + | /*EMPTY*/ { $$ = NULL; } + ; /***************************************************************************** * diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c index aa9a9c329c..e6da4f20a0 100644 --- a/src/backend/parser/keywords.c +++ b/src/backend/parser/keywords.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.49 1998/12/04 15:34:29 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/parser/keywords.c,v 1.50 1998/12/18 09:10:34 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -124,12 +124,14 @@ static ScanKeyword ScanKeywords[] = { {"into", INTO}, {"is", IS}, {"isnull", ISNULL}, + {"isolation", ISOLATION}, {"join", JOIN}, {"key", KEY}, {"lancompiler", LANCOMPILER}, {"language", LANGUAGE}, {"leading", LEADING}, {"left", LEFT}, + {"level", LEVEL}, {"like", LIKE}, {"listen", LISTEN}, {"load", LOAD}, diff --git a/src/backend/parser/parse.h b/src/backend/parser/parse.h index b7c8e54411..0356631f97 100644 --- a/src/backend/parser/parse.h +++ b/src/backend/parser/parse.h @@ -94,157 +94,159 @@ typedef union #define INTERVAL 320 #define INTO 321 #define IS 322 -#define JOIN 323 -#define KEY 324 -#define LANGUAGE 325 -#define LEADING 326 -#define LEFT 327 -#define LIKE 328 -#define LOCAL 329 -#define MATCH 330 -#define MINUTE_P 331 -#define MONTH_P 332 -#define NAMES 333 -#define NATIONAL 334 -#define NATURAL 335 -#define NCHAR 336 -#define NEXT 337 -#define NO 338 -#define NOT 339 -#define NULLIF 340 -#define NULL_P 341 -#define NUMERIC 342 -#define OF 343 -#define ON 344 -#define ONLY 345 -#define OPTION 346 -#define OR 347 -#define ORDER 348 -#define OUTER_P 349 -#define PARTIAL 350 -#define POSITION 351 -#define PRECISION 352 -#define PRIMARY 353 -#define PRIOR 354 -#define PRIVILEGES 355 -#define PROCEDURE 356 -#define PUBLIC 357 -#define READ 358 -#define REFERENCES 359 -#define RELATIVE 360 -#define REVOKE 361 -#define RIGHT 362 -#define ROLLBACK 363 -#define SCROLL 364 -#define SECOND_P 365 -#define SELECT 366 -#define SET 367 -#define SUBSTRING 368 -#define TABLE 369 -#define THEN 370 -#define TIME 371 -#define TIMESTAMP 372 -#define TIMEZONE_HOUR 373 -#define TIMEZONE_MINUTE 374 -#define TO 375 -#define TRAILING 376 -#define TRANSACTION 377 -#define TRIM 378 -#define TRUE_P 379 -#define UNION 380 -#define UNIQUE 381 -#define UPDATE 382 -#define USER 383 -#define USING 384 -#define VALUES 385 -#define VARCHAR 386 -#define VARYING 387 -#define VIEW 388 -#define WHEN 389 -#define WHERE 390 -#define WITH 391 -#define WORK 392 -#define YEAR_P 393 -#define ZONE 394 -#define TRIGGER 395 -#define TYPE_P 396 -#define ABORT_TRANS 397 -#define AFTER 398 -#define AGGREGATE 399 -#define ANALYZE 400 -#define BACKWARD 401 -#define BEFORE 402 -#define BINARY 403 -#define CACHE 404 -#define CLUSTER 405 -#define COPY 406 -#define CREATEDB 407 -#define CREATEUSER 408 -#define CYCLE 409 -#define DATABASE 410 -#define DELIMITERS 411 -#define DO 412 -#define EACH 413 -#define ENCODING 414 -#define EXPLAIN 415 -#define EXTEND 416 -#define FORWARD 417 -#define FUNCTION 418 -#define HANDLER 419 -#define INCREMENT 420 -#define INDEX 421 -#define INHERITS 422 -#define INSTEAD 423 -#define ISNULL 424 -#define LANCOMPILER 425 -#define LISTEN 426 -#define LOAD 427 -#define LOCATION 428 -#define LOCK_P 429 -#define MAXVALUE 430 -#define MINVALUE 431 -#define MOVE 432 -#define NEW 433 -#define NOCREATEDB 434 -#define NOCREATEUSER 435 -#define NONE 436 -#define NOTHING 437 -#define NOTIFY 438 -#define NOTNULL 439 -#define OIDS 440 -#define OPERATOR 441 -#define PASSWORD 442 -#define PROCEDURAL 443 -#define RECIPE 444 -#define RENAME 445 -#define RESET 446 -#define RETURNS 447 -#define ROW 448 -#define RULE 449 -#define SEQUENCE 450 -#define SERIAL 451 -#define SETOF 452 -#define SHOW 453 -#define START 454 -#define STATEMENT 455 -#define STDIN 456 -#define STDOUT 457 -#define TRUSTED 458 -#define UNLISTEN 459 -#define UNTIL 460 -#define VACUUM 461 -#define VALID 462 -#define VERBOSE 463 -#define VERSION 464 -#define IDENT 465 -#define SCONST 466 -#define Op 467 -#define ICONST 468 -#define PARAM 469 -#define FCONST 470 -#define OP 471 -#define UMINUS 472 -#define TYPECAST 473 +#define ISOLATION 323 +#define JOIN 324 +#define KEY 325 +#define LANGUAGE 326 +#define LEADING 327 +#define LEFT 328 +#define LEVEL 329 +#define LIKE 330 +#define LOCAL 331 +#define MATCH 332 +#define MINUTE_P 333 +#define MONTH_P 334 +#define NAMES 335 +#define NATIONAL 336 +#define NATURAL 337 +#define NCHAR 338 +#define NEXT 339 +#define NO 340 +#define NOT 341 +#define NULLIF 342 +#define NULL_P 343 +#define NUMERIC 344 +#define OF 345 +#define ON 346 +#define ONLY 347 +#define OPTION 348 +#define OR 349 +#define ORDER 350 +#define OUTER_P 351 +#define PARTIAL 352 +#define POSITION 353 +#define PRECISION 354 +#define PRIMARY 355 +#define PRIOR 356 +#define PRIVILEGES 357 +#define PROCEDURE 358 +#define PUBLIC 359 +#define READ 360 +#define REFERENCES 361 +#define RELATIVE 362 +#define REVOKE 363 +#define RIGHT 364 +#define ROLLBACK 365 +#define SCROLL 366 +#define SECOND_P 367 +#define SELECT 368 +#define SET 369 +#define SUBSTRING 370 +#define TABLE 371 +#define THEN 372 +#define TIME 373 +#define TIMESTAMP 374 +#define TIMEZONE_HOUR 375 +#define TIMEZONE_MINUTE 376 +#define TO 377 +#define TRAILING 378 +#define TRANSACTION 379 +#define TRIM 380 +#define TRUE_P 381 +#define UNION 382 +#define UNIQUE 383 +#define UPDATE 384 +#define USER 385 +#define USING 386 +#define VALUES 387 +#define VARCHAR 388 +#define VARYING 389 +#define VIEW 390 +#define WHEN 391 +#define WHERE 392 +#define WITH 393 +#define WORK 394 +#define YEAR_P 395 +#define ZONE 396 +#define TRIGGER 397 +#define TYPE_P 398 +#define ABORT_TRANS 399 +#define AFTER 400 +#define AGGREGATE 401 +#define ANALYZE 402 +#define BACKWARD 403 +#define BEFORE 404 +#define BINARY 405 +#define CACHE 406 +#define CLUSTER 407 +#define COPY 408 +#define CREATEDB 409 +#define CREATEUSER 410 +#define CYCLE 411 +#define DATABASE 412 +#define DELIMITERS 413 +#define DO 414 +#define EACH 415 +#define ENCODING 416 +#define EXPLAIN 417 +#define EXTEND 418 +#define FORWARD 419 +#define FUNCTION 420 +#define HANDLER 421 +#define INCREMENT 422 +#define INDEX 423 +#define INHERITS 424 +#define INSTEAD 425 +#define ISNULL 426 +#define LANCOMPILER 427 +#define LISTEN 428 +#define LOAD 429 +#define LOCATION 430 +#define LOCK_P 431 +#define MAXVALUE 432 +#define MINVALUE 433 +#define MOVE 434 +#define NEW 435 +#define NOCREATEDB 436 +#define NOCREATEUSER 437 +#define NONE 438 +#define NOTHING 439 +#define NOTIFY 440 +#define NOTNULL 441 +#define OIDS 442 +#define OPERATOR 443 +#define PASSWORD 444 +#define PROCEDURAL 445 +#define RECIPE 446 +#define RENAME 447 +#define RESET 448 +#define RETURNS 449 +#define ROW 450 +#define RULE 451 +#define SEQUENCE 452 +#define SERIAL 453 +#define SETOF 454 +#define SHOW 455 +#define START 456 +#define STATEMENT 457 +#define STDIN 458 +#define STDOUT 459 +#define TRUSTED 460 +#define UNLISTEN 461 +#define UNTIL 462 +#define VACUUM 463 +#define VALID 464 +#define VERBOSE 465 +#define VERSION 466 +#define IDENT 467 +#define SCONST 468 +#define Op 469 +#define ICONST 470 +#define PARAM 471 +#define FCONST 472 +#define OP 473 +#define UMINUS 474 +#define TYPECAST 475 extern YYSTYPE yylval; diff --git a/src/backend/storage/ipc/shmem.c b/src/backend/storage/ipc/shmem.c index 682fe05a83..979a3ebe96 100644 --- a/src/backend/storage/ipc/shmem.c +++ b/src/backend/storage/ipc/shmem.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.33 1998/12/16 11:53:46 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/storage/ipc/shmem.c,v 1.34 1998/12/18 09:10:34 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -636,7 +636,7 @@ TransactionIdIsInProgress(TransactionId xid) * Yet another strange func for this place... - vadim 07/21/98 */ Snapshot -GetSnapshotData(void) +GetSnapshotData(bool serializable) { Snapshot snapshot = (Snapshot) malloc(sizeof(SnapshotData)); ShmemIndexEnt *result; @@ -648,8 +648,11 @@ GetSnapshotData(void) Assert(ShmemIndex); snapshot->xip = (TransactionId *) malloc(have * sizeof(TransactionId)); - snapshot->xmax = cid; snapshot->xmin = cid; + if (serializable) + snapshot->xmax = cid; + else + ReadNewTransactionId(&(snapshot->xmax)); SpinAcquire(ShmemIndexLock); diff --git a/src/backend/tcop/utility.c b/src/backend/tcop/utility.c index 6dbea70d0d..598fe952c4 100644 --- a/src/backend/tcop/utility.c +++ b/src/backend/tcop/utility.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.50 1998/09/25 13:47:27 thomas Exp $ + * $Header: /cvsroot/pgsql/src/backend/tcop/utility.c,v 1.51 1998/12/18 09:10:36 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -760,6 +760,13 @@ ProcessUtility(Node *parsetree, RemoveUser(((DropUserStmt *) parsetree)->user); break; + case T_LockStmt: + PS_SET_STATUS(commandTag = "LOCK TABLE"); + CHECK_IF_ABORTED(); + + LockTableCommand((LockStmt *) parsetree); + break; + /* * ******************************** default ******************************** diff --git a/src/backend/utils/time/tqual.c b/src/backend/utils/time/tqual.c index b1c4bcae9c..ecef85787c 100644 --- a/src/backend/utils/time/tqual.c +++ b/src/backend/utils/time/tqual.c @@ -7,7 +7,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.22 1998/12/16 11:53:55 vadim Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/time/tqual.c,v 1.23 1998/12/18 09:10:39 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -30,7 +30,7 @@ SnapshotData SnapshotDirtyData; Snapshot SnapshotDirty = &SnapshotDirtyData; Snapshot QuerySnapshot = NULL; -static Snapshot SerializedSnapshot = NULL; +Snapshot SerializableSnapshot = NULL; /* * XXX Transaction system override hacks start here @@ -551,24 +551,24 @@ SetQuerySnapshot(void) { /* 1st call in xaction */ - if (SerializedSnapshot == NULL) + if (SerializableSnapshot == NULL) { - SerializedSnapshot = GetSnapshotData(); - QuerySnapshot = SerializedSnapshot; + SerializableSnapshot = GetSnapshotData(true); + QuerySnapshot = SerializableSnapshot; Assert(QuerySnapshot != NULL); return; } - if (QuerySnapshot != SerializedSnapshot) + if (QuerySnapshot != SerializableSnapshot) { free(QuerySnapshot->xip); free(QuerySnapshot); } - if (XactIsoLevel == XACT_SERIALIZED) - QuerySnapshot = SerializedSnapshot; + if (XactIsoLevel == XACT_SERIALIZABLE) + QuerySnapshot = SerializableSnapshot; else - QuerySnapshot = GetSnapshotData(); + QuerySnapshot = GetSnapshotData(false); Assert(QuerySnapshot != NULL); @@ -578,7 +578,7 @@ void FreeXactSnapshot(void) { - if (QuerySnapshot != NULL && QuerySnapshot != SerializedSnapshot) + if (QuerySnapshot != NULL && QuerySnapshot != SerializableSnapshot) { free(QuerySnapshot->xip); free(QuerySnapshot); @@ -586,12 +586,12 @@ FreeXactSnapshot(void) QuerySnapshot = NULL; - if (SerializedSnapshot != NULL) + if (SerializableSnapshot != NULL) { - free(SerializedSnapshot->xip); - free(SerializedSnapshot); + free(SerializableSnapshot->xip); + free(SerializableSnapshot); } - SerializedSnapshot = NULL; + SerializableSnapshot = NULL; } diff --git a/src/include/access/transam.h b/src/include/access/transam.h index 8fdd2db9ce..c5d40ac54a 100644 --- a/src/include/access/transam.h +++ b/src/include/access/transam.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: transam.h,v 1.17 1998/12/16 11:52:10 vadim Exp $ + * $Id: transam.h,v 1.18 1998/12/18 09:09:52 vadim Exp $ * * NOTES * Transaction System Version 101 now support proper oid @@ -160,6 +160,7 @@ extern void TransBlockNumberSetXidStatus(Relation relation, /* in transam/varsup.c */ extern void VariableRelationPutNextXid(TransactionId xid); extern void GetNewTransactionId(TransactionId *xid); +extern void ReadNewTransactionId(TransactionId *xid); extern void GetNewObjectId(Oid *oid_return); extern void CheckMaxObjectId(Oid assigned_oid); diff --git a/src/include/access/xact.h b/src/include/access/xact.h index 6b0aae443f..e624f3b1e5 100644 --- a/src/include/access/xact.h +++ b/src/include/access/xact.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: xact.h,v 1.18 1998/12/15 12:46:47 vadim Exp $ + * $Id: xact.h,v 1.19 1998/12/18 09:09:52 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -36,8 +36,9 @@ typedef struct TransactionStateData #define XACT_DIRTY_READ 0 /* not implemented */ #define XACT_READ_COMMITTED 1 #define XACT_REPEATABLE_READ 2 /* not implemented */ -#define XACT_SERIALIZED 3 +#define XACT_SERIALIZABLE 3 +extern int DefaultXactIsoLevel; extern int XactIsoLevel; /* ---------------- diff --git a/src/include/commands/command.h b/src/include/commands/command.h index 4091a5583e..8d2d065351 100644 --- a/src/include/commands/command.h +++ b/src/include/commands/command.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: command.h,v 1.10 1998/09/01 04:35:25 momjian Exp $ + * $Id: command.h,v 1.11 1998/12/18 09:09:52 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -44,4 +44,6 @@ extern void PortalCleanup(Portal portal); extern void PerformAddAttribute(char *relationName, char *userName, bool inh, ColumnDef *colDef); +extern void LockTableCommand(LockStmt *lockstmt); + #endif /* COMMAND_H */ diff --git a/src/include/nodes/nodes.h b/src/include/nodes/nodes.h index 526e847de9..5b9237c5f0 100644 --- a/src/include/nodes/nodes.h +++ b/src/include/nodes/nodes.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: nodes.h,v 1.32 1998/12/04 15:34:44 thomas Exp $ + * $Id: nodes.h,v 1.33 1998/12/18 09:09:53 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -190,6 +190,7 @@ typedef enum NodeTag T_CreateUserStmt, T_AlterUserStmt, T_DropUserStmt, + T_LockStmt, T_A_Expr = 700, T_Attr, diff --git a/src/include/nodes/parsenodes.h b/src/include/nodes/parsenodes.h index 20fc0788bd..9316fa67dd 100644 --- a/src/include/nodes/parsenodes.h +++ b/src/include/nodes/parsenodes.h @@ -6,7 +6,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: parsenodes.h,v 1.62 1998/12/04 15:34:44 thomas Exp $ + * $Id: parsenodes.h,v 1.63 1998/12/18 09:09:54 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -574,6 +574,16 @@ typedef struct VariableResetStmt char *name; } VariableResetStmt; +/* ---------------------- + * LOCK Statement + * ---------------------- + */ +typedef struct LockStmt +{ + NodeTag type; + char *relname; /* relation to lock */ + int mode; /* lock mode */ +} LockStmt; /***************************************************************************** * Optimizable Statements diff --git a/src/include/utils/tqual.h b/src/include/utils/tqual.h index b123744f19..17ff6f3d90 100644 --- a/src/include/utils/tqual.h +++ b/src/include/utils/tqual.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: tqual.h,v 1.17 1998/12/16 11:52:11 vadim Exp $ + * $Id: tqual.h,v 1.18 1998/12/18 09:09:55 vadim Exp $ * *------------------------------------------------------------------------- */ @@ -31,6 +31,7 @@ typedef SnapshotData *Snapshot; extern Snapshot SnapshotDirty; extern Snapshot QuerySnapshot; +extern Snapshot SerializableSnapshot; #define IsSnapshotNow(snapshot) ((Snapshot) snapshot == SnapshotNow) #define IsSnapshotSelf(snapshot) ((Snapshot) snapshot == SnapshotSelf) @@ -99,7 +100,7 @@ extern int HeapTupleSatisfiesUpdate(HeapTuple tuple); extern void setheapoverride(bool on); -extern Snapshot GetSnapshotData(void); +extern Snapshot GetSnapshotData(bool serializable); extern void SetQuerySnapshot(void); extern void FreeXactSnapshot(void);