Line data Source code
1 : /* A Bison parser, made by GNU Bison 3.8.2. */
2 :
3 : /* Bison implementation for Yacc-like parsers in C
4 :
5 : Copyright (C) 1984, 1989-1990, 2000-2015, 2018-2021 Free Software Foundation,
6 : Inc.
7 :
8 : This program is free software: you can redistribute it and/or modify
9 : it under the terms of the GNU General Public License as published by
10 : the Free Software Foundation, either version 3 of the License, or
11 : (at your option) any later version.
12 :
13 : This program is distributed in the hope that it will be useful,
14 : but WITHOUT ANY WARRANTY; without even the implied warranty of
15 : MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 : GNU General Public License for more details.
17 :
18 : You should have received a copy of the GNU General Public License
19 : along with this program. If not, see <https://www.gnu.org/licenses/>. */
20 :
21 : /* As a special exception, you may create a larger work that contains
22 : part or all of the Bison parser skeleton and distribute that work
23 : under terms of your choice, so long as that work isn't itself a
24 : parser generator using the skeleton or a modified version thereof
25 : as a parser skeleton. Alternatively, if you modify or redistribute
26 : the parser skeleton itself, you may (at your option) remove this
27 : special exception, which will cause the skeleton and the resulting
28 : Bison output files to be licensed under the GNU General Public
29 : License without this special exception.
30 :
31 : This special exception was added by the Free Software Foundation in
32 : version 2.2 of Bison. */
33 :
34 : /* C LALR(1) parser skeleton written by Richard Stallman, by
35 : simplifying the original so-called "semantic" parser. */
36 :
37 : /* DO NOT RELY ON FEATURES THAT ARE NOT DOCUMENTED in the manual,
38 : especially those whose name start with YY_ or yy_. They are
39 : private implementation details that can be changed or removed. */
40 :
41 : /* All symbols defined below should begin with yy or YY, to avoid
42 : infringing on user name space. This should be done even for local
43 : variables, as they might otherwise be expanded by user macros.
44 : There are some unavoidable exceptions within include files to
45 : define necessary library symbols; they are noted "INFRINGES ON
46 : USER NAME SPACE" below. */
47 :
48 : /* Identify Bison output, and Bison version. */
49 : #define YYBISON 30802
50 :
51 : /* Bison version string. */
52 : #define YYBISON_VERSION "3.8.2"
53 :
54 : /* Skeleton name. */
55 : #define YYSKELETON_NAME "yacc.c"
56 :
57 : /* Pure parsers. */
58 : #define YYPURE 1
59 :
60 : /* Push parsers. */
61 : #define YYPUSH 0
62 :
63 : /* Pull parsers. */
64 : #define YYPULL 1
65 :
66 :
67 : /* Substitute the variable and function names. */
68 : #define yyparse base_yyparse
69 : #define yylex base_yylex
70 : #define yyerror base_yyerror
71 : #define yydebug base_yydebug
72 : #define yynerrs base_yynerrs
73 :
74 : /* First part of user prologue. */
75 : #line 1 "gram.y"
76 :
77 :
78 : /*#define YYDEBUG 1*/
79 : /*-------------------------------------------------------------------------
80 : *
81 : * gram.y
82 : * POSTGRESQL BISON rules/actions
83 : *
84 : * Portions Copyright (c) 1996-2025, PostgreSQL Global Development Group
85 : * Portions Copyright (c) 1994, Regents of the University of California
86 : *
87 : *
88 : * IDENTIFICATION
89 : * src/backend/parser/gram.y
90 : *
91 : * HISTORY
92 : * AUTHOR DATE MAJOR EVENT
93 : * Andrew Yu Sept, 1994 POSTQUEL to SQL conversion
94 : * Andrew Yu Oct, 1994 lispy code conversion
95 : *
96 : * NOTES
97 : * CAPITALS are used to represent terminal symbols.
98 : * non-capitals are used to represent non-terminals.
99 : *
100 : * In general, nothing in this file should initiate database accesses
101 : * nor depend on changeable state (such as SET variables). If you do
102 : * database accesses, your code will fail when we have aborted the
103 : * current transaction and are just parsing commands to find the next
104 : * ROLLBACK or COMMIT. If you make use of SET variables, then you
105 : * will do the wrong thing in multi-query strings like this:
106 : * SET constraint_exclusion TO off; SELECT * FROM foo;
107 : * because the entire string is parsed by gram.y before the SET gets
108 : * executed. Anything that depends on the database or changeable state
109 : * should be handled during parse analysis so that it happens at the
110 : * right time not the wrong time.
111 : *
112 : * WARNINGS
113 : * If you use a list, make sure the datum is a node so that the printing
114 : * routines work.
115 : *
116 : * Sometimes we assign constants to makeStrings. Make sure we don't free
117 : * those.
118 : *
119 : *-------------------------------------------------------------------------
120 : */
121 : #include "postgres.h"
122 :
123 : #include <ctype.h>
124 : #include <limits.h>
125 :
126 : #include "catalog/index.h"
127 : #include "catalog/namespace.h"
128 : #include "catalog/pg_am.h"
129 : #include "catalog/pg_trigger.h"
130 : #include "commands/defrem.h"
131 : #include "commands/trigger.h"
132 : #include "gramparse.h"
133 : #include "nodes/makefuncs.h"
134 : #include "nodes/nodeFuncs.h"
135 : #include "parser/parser.h"
136 : #include "utils/datetime.h"
137 : #include "utils/xml.h"
138 :
139 :
140 : /*
141 : * Location tracking support. Unlike bison's default, we only want
142 : * to track the start position not the end position of each nonterminal.
143 : * Nonterminals that reduce to empty receive position "-1". Since a
144 : * production's leading RHS nonterminal(s) may have reduced to empty,
145 : * we have to scan to find the first one that's not -1.
146 : */
147 : #define YYLLOC_DEFAULT(Current, Rhs, N) \
148 : do { \
149 : (Current) = (-1); \
150 : for (int _i = 1; _i <= (N); _i++) \
151 : { \
152 : if ((Rhs)[_i] >= 0) \
153 : { \
154 : (Current) = (Rhs)[_i]; \
155 : break; \
156 : } \
157 : } \
158 : } while (0)
159 :
160 : /*
161 : * Bison doesn't allocate anything that needs to live across parser calls,
162 : * so we can easily have it use palloc instead of malloc. This prevents
163 : * memory leaks if we error out during parsing.
164 : */
165 : #define YYMALLOC palloc
166 : #define YYFREE pfree
167 :
168 : /* Private struct for the result of privilege_target production */
169 : typedef struct PrivTarget
170 : {
171 : GrantTargetType targtype;
172 : ObjectType objtype;
173 : List *objs;
174 : } PrivTarget;
175 :
176 : /* Private struct for the result of import_qualification production */
177 : typedef struct ImportQual
178 : {
179 : ImportForeignSchemaType type;
180 : List *table_names;
181 : } ImportQual;
182 :
183 : /* Private struct for the result of select_limit & limit_clause productions */
184 : typedef struct SelectLimit
185 : {
186 : Node *limitOffset;
187 : Node *limitCount;
188 : LimitOption limitOption; /* indicates presence of WITH TIES */
189 : ParseLoc offsetLoc; /* location of OFFSET token, if present */
190 : ParseLoc countLoc; /* location of LIMIT/FETCH token, if present */
191 : ParseLoc optionLoc; /* location of WITH TIES, if present */
192 : } SelectLimit;
193 :
194 : /* Private struct for the result of group_clause production */
195 : typedef struct GroupClause
196 : {
197 : bool distinct;
198 : List *list;
199 : } GroupClause;
200 :
201 : /* Private structs for the result of key_actions and key_action productions */
202 : typedef struct KeyAction
203 : {
204 : char action;
205 : List *cols;
206 : } KeyAction;
207 :
208 : typedef struct KeyActions
209 : {
210 : KeyAction *updateAction;
211 : KeyAction *deleteAction;
212 : } KeyActions;
213 :
214 : /* ConstraintAttributeSpec yields an integer bitmask of these flags: */
215 : #define CAS_NOT_DEFERRABLE 0x01
216 : #define CAS_DEFERRABLE 0x02
217 : #define CAS_INITIALLY_IMMEDIATE 0x04
218 : #define CAS_INITIALLY_DEFERRED 0x08
219 : #define CAS_NOT_VALID 0x10
220 : #define CAS_NO_INHERIT 0x20
221 : #define CAS_NOT_ENFORCED 0x40
222 : #define CAS_ENFORCED 0x80
223 :
224 :
225 : #define parser_yyerror(msg) scanner_yyerror(msg, yyscanner)
226 : #define parser_errposition(pos) scanner_errposition(pos, yyscanner)
227 :
228 : static void base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner,
229 : const char *msg);
230 : static RawStmt *makeRawStmt(Node *stmt, int stmt_location);
231 : static void updateRawStmtEnd(RawStmt *rs, int end_location);
232 : static void updatePreparableStmtEnd(Node *n, int end_location);
233 : static Node *makeColumnRef(char *colname, List *indirection,
234 : int location, core_yyscan_t yyscanner);
235 : static Node *makeTypeCast(Node *arg, TypeName *typename, int location);
236 : static Node *makeStringConstCast(char *str, int location, TypeName *typename);
237 : static Node *makeIntConst(int val, int location);
238 : static Node *makeFloatConst(char *str, int location);
239 : static Node *makeBoolAConst(bool state, int location);
240 : static Node *makeBitStringConst(char *str, int location);
241 : static Node *makeNullAConst(int location);
242 : static Node *makeAConst(Node *v, int location);
243 : static RoleSpec *makeRoleSpec(RoleSpecType type, int location);
244 : static void check_qualified_name(List *names, core_yyscan_t yyscanner);
245 : static List *check_func_name(List *names, core_yyscan_t yyscanner);
246 : static List *check_indirection(List *indirection, core_yyscan_t yyscanner);
247 : static List *extractArgTypes(List *parameters);
248 : static List *extractAggrArgTypes(List *aggrargs);
249 : static List *makeOrderedSetArgs(List *directargs, List *orderedargs,
250 : core_yyscan_t yyscanner);
251 : static void insertSelectOptions(SelectStmt *stmt,
252 : List *sortClause, List *lockingClause,
253 : SelectLimit *limitClause,
254 : WithClause *withClause,
255 : core_yyscan_t yyscanner);
256 : static Node *makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg, int location);
257 : static Node *doNegate(Node *n, int location);
258 : static void doNegateFloat(Float *v);
259 : static Node *makeAndExpr(Node *lexpr, Node *rexpr, int location);
260 : static Node *makeOrExpr(Node *lexpr, Node *rexpr, int location);
261 : static Node *makeNotExpr(Node *expr, int location);
262 : static Node *makeAArrayExpr(List *elements, int location);
263 : static Node *makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod,
264 : int location);
265 : static Node *makeXmlExpr(XmlExprOp op, char *name, List *named_args,
266 : List *args, int location);
267 : static List *mergeTableFuncParameters(List *func_args, List *columns, core_yyscan_t yyscanner);
268 : static TypeName *TableFuncTypeName(List *columns);
269 : static RangeVar *makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner);
270 : static RangeVar *makeRangeVarFromQualifiedName(char *name, List *namelist, int location,
271 : core_yyscan_t yyscanner);
272 : static void SplitColQualList(List *qualList,
273 : List **constraintList, CollateClause **collClause,
274 : core_yyscan_t yyscanner);
275 : static void processCASbits(int cas_bits, int location, const char *constrType,
276 : bool *deferrable, bool *initdeferred, bool *is_enforced,
277 : bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner);
278 : static PartitionStrategy parsePartitionStrategy(char *strategy, int location,
279 : core_yyscan_t yyscanner);
280 : static void preprocess_pubobj_list(List *pubobjspec_list,
281 : core_yyscan_t yyscanner);
282 : static Node *makeRecursiveViewSelect(char *relname, List *aliases, Node *query);
283 :
284 :
285 : #line 286 "gram.c"
286 :
287 : # ifndef YY_CAST
288 : # ifdef __cplusplus
289 : # define YY_CAST(Type, Val) static_cast<Type> (Val)
290 : # define YY_REINTERPRET_CAST(Type, Val) reinterpret_cast<Type> (Val)
291 : # else
292 : # define YY_CAST(Type, Val) ((Type) (Val))
293 : # define YY_REINTERPRET_CAST(Type, Val) ((Type) (Val))
294 : # endif
295 : # endif
296 : # ifndef YY_NULLPTR
297 : # if defined __cplusplus
298 : # if 201103L <= __cplusplus
299 : # define YY_NULLPTR nullptr
300 : # else
301 : # define YY_NULLPTR 0
302 : # endif
303 : # else
304 : # define YY_NULLPTR ((void*)0)
305 : # endif
306 : # endif
307 :
308 : #include "gram.h"
309 : /* Symbol kind. */
310 : enum yysymbol_kind_t
311 : {
312 : YYSYMBOL_YYEMPTY = -2,
313 : YYSYMBOL_YYEOF = 0, /* "end of file" */
314 : YYSYMBOL_YYerror = 1, /* error */
315 : YYSYMBOL_YYUNDEF = 2, /* "invalid token" */
316 : YYSYMBOL_IDENT = 3, /* IDENT */
317 : YYSYMBOL_UIDENT = 4, /* UIDENT */
318 : YYSYMBOL_FCONST = 5, /* FCONST */
319 : YYSYMBOL_SCONST = 6, /* SCONST */
320 : YYSYMBOL_USCONST = 7, /* USCONST */
321 : YYSYMBOL_BCONST = 8, /* BCONST */
322 : YYSYMBOL_XCONST = 9, /* XCONST */
323 : YYSYMBOL_Op = 10, /* Op */
324 : YYSYMBOL_ICONST = 11, /* ICONST */
325 : YYSYMBOL_PARAM = 12, /* PARAM */
326 : YYSYMBOL_TYPECAST = 13, /* TYPECAST */
327 : YYSYMBOL_DOT_DOT = 14, /* DOT_DOT */
328 : YYSYMBOL_COLON_EQUALS = 15, /* COLON_EQUALS */
329 : YYSYMBOL_EQUALS_GREATER = 16, /* EQUALS_GREATER */
330 : YYSYMBOL_LESS_EQUALS = 17, /* LESS_EQUALS */
331 : YYSYMBOL_GREATER_EQUALS = 18, /* GREATER_EQUALS */
332 : YYSYMBOL_NOT_EQUALS = 19, /* NOT_EQUALS */
333 : YYSYMBOL_ABORT_P = 20, /* ABORT_P */
334 : YYSYMBOL_ABSENT = 21, /* ABSENT */
335 : YYSYMBOL_ABSOLUTE_P = 22, /* ABSOLUTE_P */
336 : YYSYMBOL_ACCESS = 23, /* ACCESS */
337 : YYSYMBOL_ACTION = 24, /* ACTION */
338 : YYSYMBOL_ADD_P = 25, /* ADD_P */
339 : YYSYMBOL_ADMIN = 26, /* ADMIN */
340 : YYSYMBOL_AFTER = 27, /* AFTER */
341 : YYSYMBOL_AGGREGATE = 28, /* AGGREGATE */
342 : YYSYMBOL_ALL = 29, /* ALL */
343 : YYSYMBOL_ALSO = 30, /* ALSO */
344 : YYSYMBOL_ALTER = 31, /* ALTER */
345 : YYSYMBOL_ALWAYS = 32, /* ALWAYS */
346 : YYSYMBOL_ANALYSE = 33, /* ANALYSE */
347 : YYSYMBOL_ANALYZE = 34, /* ANALYZE */
348 : YYSYMBOL_AND = 35, /* AND */
349 : YYSYMBOL_ANY = 36, /* ANY */
350 : YYSYMBOL_ARRAY = 37, /* ARRAY */
351 : YYSYMBOL_AS = 38, /* AS */
352 : YYSYMBOL_ASC = 39, /* ASC */
353 : YYSYMBOL_ASENSITIVE = 40, /* ASENSITIVE */
354 : YYSYMBOL_ASSERTION = 41, /* ASSERTION */
355 : YYSYMBOL_ASSIGNMENT = 42, /* ASSIGNMENT */
356 : YYSYMBOL_ASYMMETRIC = 43, /* ASYMMETRIC */
357 : YYSYMBOL_ATOMIC = 44, /* ATOMIC */
358 : YYSYMBOL_AT = 45, /* AT */
359 : YYSYMBOL_ATTACH = 46, /* ATTACH */
360 : YYSYMBOL_ATTRIBUTE = 47, /* ATTRIBUTE */
361 : YYSYMBOL_AUTHORIZATION = 48, /* AUTHORIZATION */
362 : YYSYMBOL_BACKWARD = 49, /* BACKWARD */
363 : YYSYMBOL_BEFORE = 50, /* BEFORE */
364 : YYSYMBOL_BEGIN_P = 51, /* BEGIN_P */
365 : YYSYMBOL_BETWEEN = 52, /* BETWEEN */
366 : YYSYMBOL_BIGINT = 53, /* BIGINT */
367 : YYSYMBOL_BINARY = 54, /* BINARY */
368 : YYSYMBOL_BIT = 55, /* BIT */
369 : YYSYMBOL_BOOLEAN_P = 56, /* BOOLEAN_P */
370 : YYSYMBOL_BOTH = 57, /* BOTH */
371 : YYSYMBOL_BREADTH = 58, /* BREADTH */
372 : YYSYMBOL_BY = 59, /* BY */
373 : YYSYMBOL_CACHE = 60, /* CACHE */
374 : YYSYMBOL_CALL = 61, /* CALL */
375 : YYSYMBOL_CALLED = 62, /* CALLED */
376 : YYSYMBOL_CASCADE = 63, /* CASCADE */
377 : YYSYMBOL_CASCADED = 64, /* CASCADED */
378 : YYSYMBOL_CASE = 65, /* CASE */
379 : YYSYMBOL_CAST = 66, /* CAST */
380 : YYSYMBOL_CATALOG_P = 67, /* CATALOG_P */
381 : YYSYMBOL_CHAIN = 68, /* CHAIN */
382 : YYSYMBOL_CHAR_P = 69, /* CHAR_P */
383 : YYSYMBOL_CHARACTER = 70, /* CHARACTER */
384 : YYSYMBOL_CHARACTERISTICS = 71, /* CHARACTERISTICS */
385 : YYSYMBOL_CHECK = 72, /* CHECK */
386 : YYSYMBOL_CHECKPOINT = 73, /* CHECKPOINT */
387 : YYSYMBOL_CLASS = 74, /* CLASS */
388 : YYSYMBOL_CLOSE = 75, /* CLOSE */
389 : YYSYMBOL_CLUSTER = 76, /* CLUSTER */
390 : YYSYMBOL_COALESCE = 77, /* COALESCE */
391 : YYSYMBOL_COLLATE = 78, /* COLLATE */
392 : YYSYMBOL_COLLATION = 79, /* COLLATION */
393 : YYSYMBOL_COLUMN = 80, /* COLUMN */
394 : YYSYMBOL_COLUMNS = 81, /* COLUMNS */
395 : YYSYMBOL_COMMENT = 82, /* COMMENT */
396 : YYSYMBOL_COMMENTS = 83, /* COMMENTS */
397 : YYSYMBOL_COMMIT = 84, /* COMMIT */
398 : YYSYMBOL_COMMITTED = 85, /* COMMITTED */
399 : YYSYMBOL_COMPRESSION = 86, /* COMPRESSION */
400 : YYSYMBOL_CONCURRENTLY = 87, /* CONCURRENTLY */
401 : YYSYMBOL_CONDITIONAL = 88, /* CONDITIONAL */
402 : YYSYMBOL_CONFIGURATION = 89, /* CONFIGURATION */
403 : YYSYMBOL_CONFLICT = 90, /* CONFLICT */
404 : YYSYMBOL_CONNECTION = 91, /* CONNECTION */
405 : YYSYMBOL_CONSTRAINT = 92, /* CONSTRAINT */
406 : YYSYMBOL_CONSTRAINTS = 93, /* CONSTRAINTS */
407 : YYSYMBOL_CONTENT_P = 94, /* CONTENT_P */
408 : YYSYMBOL_CONTINUE_P = 95, /* CONTINUE_P */
409 : YYSYMBOL_CONVERSION_P = 96, /* CONVERSION_P */
410 : YYSYMBOL_COPY = 97, /* COPY */
411 : YYSYMBOL_COST = 98, /* COST */
412 : YYSYMBOL_CREATE = 99, /* CREATE */
413 : YYSYMBOL_CROSS = 100, /* CROSS */
414 : YYSYMBOL_CSV = 101, /* CSV */
415 : YYSYMBOL_CUBE = 102, /* CUBE */
416 : YYSYMBOL_CURRENT_P = 103, /* CURRENT_P */
417 : YYSYMBOL_CURRENT_CATALOG = 104, /* CURRENT_CATALOG */
418 : YYSYMBOL_CURRENT_DATE = 105, /* CURRENT_DATE */
419 : YYSYMBOL_CURRENT_ROLE = 106, /* CURRENT_ROLE */
420 : YYSYMBOL_CURRENT_SCHEMA = 107, /* CURRENT_SCHEMA */
421 : YYSYMBOL_CURRENT_TIME = 108, /* CURRENT_TIME */
422 : YYSYMBOL_CURRENT_TIMESTAMP = 109, /* CURRENT_TIMESTAMP */
423 : YYSYMBOL_CURRENT_USER = 110, /* CURRENT_USER */
424 : YYSYMBOL_CURSOR = 111, /* CURSOR */
425 : YYSYMBOL_CYCLE = 112, /* CYCLE */
426 : YYSYMBOL_DATA_P = 113, /* DATA_P */
427 : YYSYMBOL_DATABASE = 114, /* DATABASE */
428 : YYSYMBOL_DAY_P = 115, /* DAY_P */
429 : YYSYMBOL_DEALLOCATE = 116, /* DEALLOCATE */
430 : YYSYMBOL_DEC = 117, /* DEC */
431 : YYSYMBOL_DECIMAL_P = 118, /* DECIMAL_P */
432 : YYSYMBOL_DECLARE = 119, /* DECLARE */
433 : YYSYMBOL_DEFAULT = 120, /* DEFAULT */
434 : YYSYMBOL_DEFAULTS = 121, /* DEFAULTS */
435 : YYSYMBOL_DEFERRABLE = 122, /* DEFERRABLE */
436 : YYSYMBOL_DEFERRED = 123, /* DEFERRED */
437 : YYSYMBOL_DEFINER = 124, /* DEFINER */
438 : YYSYMBOL_DELETE_P = 125, /* DELETE_P */
439 : YYSYMBOL_DELIMITER = 126, /* DELIMITER */
440 : YYSYMBOL_DELIMITERS = 127, /* DELIMITERS */
441 : YYSYMBOL_DEPENDS = 128, /* DEPENDS */
442 : YYSYMBOL_DEPTH = 129, /* DEPTH */
443 : YYSYMBOL_DESC = 130, /* DESC */
444 : YYSYMBOL_DETACH = 131, /* DETACH */
445 : YYSYMBOL_DICTIONARY = 132, /* DICTIONARY */
446 : YYSYMBOL_DISABLE_P = 133, /* DISABLE_P */
447 : YYSYMBOL_DISCARD = 134, /* DISCARD */
448 : YYSYMBOL_DISTINCT = 135, /* DISTINCT */
449 : YYSYMBOL_DO = 136, /* DO */
450 : YYSYMBOL_DOCUMENT_P = 137, /* DOCUMENT_P */
451 : YYSYMBOL_DOMAIN_P = 138, /* DOMAIN_P */
452 : YYSYMBOL_DOUBLE_P = 139, /* DOUBLE_P */
453 : YYSYMBOL_DROP = 140, /* DROP */
454 : YYSYMBOL_EACH = 141, /* EACH */
455 : YYSYMBOL_ELSE = 142, /* ELSE */
456 : YYSYMBOL_EMPTY_P = 143, /* EMPTY_P */
457 : YYSYMBOL_ENABLE_P = 144, /* ENABLE_P */
458 : YYSYMBOL_ENCODING = 145, /* ENCODING */
459 : YYSYMBOL_ENCRYPTED = 146, /* ENCRYPTED */
460 : YYSYMBOL_END_P = 147, /* END_P */
461 : YYSYMBOL_ENFORCED = 148, /* ENFORCED */
462 : YYSYMBOL_ENUM_P = 149, /* ENUM_P */
463 : YYSYMBOL_ERROR_P = 150, /* ERROR_P */
464 : YYSYMBOL_ESCAPE = 151, /* ESCAPE */
465 : YYSYMBOL_EVENT = 152, /* EVENT */
466 : YYSYMBOL_EXCEPT = 153, /* EXCEPT */
467 : YYSYMBOL_EXCLUDE = 154, /* EXCLUDE */
468 : YYSYMBOL_EXCLUDING = 155, /* EXCLUDING */
469 : YYSYMBOL_EXCLUSIVE = 156, /* EXCLUSIVE */
470 : YYSYMBOL_EXECUTE = 157, /* EXECUTE */
471 : YYSYMBOL_EXISTS = 158, /* EXISTS */
472 : YYSYMBOL_EXPLAIN = 159, /* EXPLAIN */
473 : YYSYMBOL_EXPRESSION = 160, /* EXPRESSION */
474 : YYSYMBOL_EXTENSION = 161, /* EXTENSION */
475 : YYSYMBOL_EXTERNAL = 162, /* EXTERNAL */
476 : YYSYMBOL_EXTRACT = 163, /* EXTRACT */
477 : YYSYMBOL_FALSE_P = 164, /* FALSE_P */
478 : YYSYMBOL_FAMILY = 165, /* FAMILY */
479 : YYSYMBOL_FETCH = 166, /* FETCH */
480 : YYSYMBOL_FILTER = 167, /* FILTER */
481 : YYSYMBOL_FINALIZE = 168, /* FINALIZE */
482 : YYSYMBOL_FIRST_P = 169, /* FIRST_P */
483 : YYSYMBOL_FLOAT_P = 170, /* FLOAT_P */
484 : YYSYMBOL_FOLLOWING = 171, /* FOLLOWING */
485 : YYSYMBOL_FOR = 172, /* FOR */
486 : YYSYMBOL_FORCE = 173, /* FORCE */
487 : YYSYMBOL_FOREIGN = 174, /* FOREIGN */
488 : YYSYMBOL_FORMAT = 175, /* FORMAT */
489 : YYSYMBOL_FORWARD = 176, /* FORWARD */
490 : YYSYMBOL_FREEZE = 177, /* FREEZE */
491 : YYSYMBOL_FROM = 178, /* FROM */
492 : YYSYMBOL_FULL = 179, /* FULL */
493 : YYSYMBOL_FUNCTION = 180, /* FUNCTION */
494 : YYSYMBOL_FUNCTIONS = 181, /* FUNCTIONS */
495 : YYSYMBOL_GENERATED = 182, /* GENERATED */
496 : YYSYMBOL_GLOBAL = 183, /* GLOBAL */
497 : YYSYMBOL_GRANT = 184, /* GRANT */
498 : YYSYMBOL_GRANTED = 185, /* GRANTED */
499 : YYSYMBOL_GREATEST = 186, /* GREATEST */
500 : YYSYMBOL_GROUP_P = 187, /* GROUP_P */
501 : YYSYMBOL_GROUPING = 188, /* GROUPING */
502 : YYSYMBOL_GROUPS = 189, /* GROUPS */
503 : YYSYMBOL_HANDLER = 190, /* HANDLER */
504 : YYSYMBOL_HAVING = 191, /* HAVING */
505 : YYSYMBOL_HEADER_P = 192, /* HEADER_P */
506 : YYSYMBOL_HOLD = 193, /* HOLD */
507 : YYSYMBOL_HOUR_P = 194, /* HOUR_P */
508 : YYSYMBOL_IDENTITY_P = 195, /* IDENTITY_P */
509 : YYSYMBOL_IF_P = 196, /* IF_P */
510 : YYSYMBOL_ILIKE = 197, /* ILIKE */
511 : YYSYMBOL_IMMEDIATE = 198, /* IMMEDIATE */
512 : YYSYMBOL_IMMUTABLE = 199, /* IMMUTABLE */
513 : YYSYMBOL_IMPLICIT_P = 200, /* IMPLICIT_P */
514 : YYSYMBOL_IMPORT_P = 201, /* IMPORT_P */
515 : YYSYMBOL_IN_P = 202, /* IN_P */
516 : YYSYMBOL_INCLUDE = 203, /* INCLUDE */
517 : YYSYMBOL_INCLUDING = 204, /* INCLUDING */
518 : YYSYMBOL_INCREMENT = 205, /* INCREMENT */
519 : YYSYMBOL_INDENT = 206, /* INDENT */
520 : YYSYMBOL_INDEX = 207, /* INDEX */
521 : YYSYMBOL_INDEXES = 208, /* INDEXES */
522 : YYSYMBOL_INHERIT = 209, /* INHERIT */
523 : YYSYMBOL_INHERITS = 210, /* INHERITS */
524 : YYSYMBOL_INITIALLY = 211, /* INITIALLY */
525 : YYSYMBOL_INLINE_P = 212, /* INLINE_P */
526 : YYSYMBOL_INNER_P = 213, /* INNER_P */
527 : YYSYMBOL_INOUT = 214, /* INOUT */
528 : YYSYMBOL_INPUT_P = 215, /* INPUT_P */
529 : YYSYMBOL_INSENSITIVE = 216, /* INSENSITIVE */
530 : YYSYMBOL_INSERT = 217, /* INSERT */
531 : YYSYMBOL_INSTEAD = 218, /* INSTEAD */
532 : YYSYMBOL_INT_P = 219, /* INT_P */
533 : YYSYMBOL_INTEGER = 220, /* INTEGER */
534 : YYSYMBOL_INTERSECT = 221, /* INTERSECT */
535 : YYSYMBOL_INTERVAL = 222, /* INTERVAL */
536 : YYSYMBOL_INTO = 223, /* INTO */
537 : YYSYMBOL_INVOKER = 224, /* INVOKER */
538 : YYSYMBOL_IS = 225, /* IS */
539 : YYSYMBOL_ISNULL = 226, /* ISNULL */
540 : YYSYMBOL_ISOLATION = 227, /* ISOLATION */
541 : YYSYMBOL_JOIN = 228, /* JOIN */
542 : YYSYMBOL_JSON = 229, /* JSON */
543 : YYSYMBOL_JSON_ARRAY = 230, /* JSON_ARRAY */
544 : YYSYMBOL_JSON_ARRAYAGG = 231, /* JSON_ARRAYAGG */
545 : YYSYMBOL_JSON_EXISTS = 232, /* JSON_EXISTS */
546 : YYSYMBOL_JSON_OBJECT = 233, /* JSON_OBJECT */
547 : YYSYMBOL_JSON_OBJECTAGG = 234, /* JSON_OBJECTAGG */
548 : YYSYMBOL_JSON_QUERY = 235, /* JSON_QUERY */
549 : YYSYMBOL_JSON_SCALAR = 236, /* JSON_SCALAR */
550 : YYSYMBOL_JSON_SERIALIZE = 237, /* JSON_SERIALIZE */
551 : YYSYMBOL_JSON_TABLE = 238, /* JSON_TABLE */
552 : YYSYMBOL_JSON_VALUE = 239, /* JSON_VALUE */
553 : YYSYMBOL_KEEP = 240, /* KEEP */
554 : YYSYMBOL_KEY = 241, /* KEY */
555 : YYSYMBOL_KEYS = 242, /* KEYS */
556 : YYSYMBOL_LABEL = 243, /* LABEL */
557 : YYSYMBOL_LANGUAGE = 244, /* LANGUAGE */
558 : YYSYMBOL_LARGE_P = 245, /* LARGE_P */
559 : YYSYMBOL_LAST_P = 246, /* LAST_P */
560 : YYSYMBOL_LATERAL_P = 247, /* LATERAL_P */
561 : YYSYMBOL_LEADING = 248, /* LEADING */
562 : YYSYMBOL_LEAKPROOF = 249, /* LEAKPROOF */
563 : YYSYMBOL_LEAST = 250, /* LEAST */
564 : YYSYMBOL_LEFT = 251, /* LEFT */
565 : YYSYMBOL_LEVEL = 252, /* LEVEL */
566 : YYSYMBOL_LIKE = 253, /* LIKE */
567 : YYSYMBOL_LIMIT = 254, /* LIMIT */
568 : YYSYMBOL_LISTEN = 255, /* LISTEN */
569 : YYSYMBOL_LOAD = 256, /* LOAD */
570 : YYSYMBOL_LOCAL = 257, /* LOCAL */
571 : YYSYMBOL_LOCALTIME = 258, /* LOCALTIME */
572 : YYSYMBOL_LOCALTIMESTAMP = 259, /* LOCALTIMESTAMP */
573 : YYSYMBOL_LOCATION = 260, /* LOCATION */
574 : YYSYMBOL_LOCK_P = 261, /* LOCK_P */
575 : YYSYMBOL_LOCKED = 262, /* LOCKED */
576 : YYSYMBOL_LOGGED = 263, /* LOGGED */
577 : YYSYMBOL_MAPPING = 264, /* MAPPING */
578 : YYSYMBOL_MATCH = 265, /* MATCH */
579 : YYSYMBOL_MATCHED = 266, /* MATCHED */
580 : YYSYMBOL_MATERIALIZED = 267, /* MATERIALIZED */
581 : YYSYMBOL_MAXVALUE = 268, /* MAXVALUE */
582 : YYSYMBOL_MERGE = 269, /* MERGE */
583 : YYSYMBOL_MERGE_ACTION = 270, /* MERGE_ACTION */
584 : YYSYMBOL_METHOD = 271, /* METHOD */
585 : YYSYMBOL_MINUTE_P = 272, /* MINUTE_P */
586 : YYSYMBOL_MINVALUE = 273, /* MINVALUE */
587 : YYSYMBOL_MODE = 274, /* MODE */
588 : YYSYMBOL_MONTH_P = 275, /* MONTH_P */
589 : YYSYMBOL_MOVE = 276, /* MOVE */
590 : YYSYMBOL_NAME_P = 277, /* NAME_P */
591 : YYSYMBOL_NAMES = 278, /* NAMES */
592 : YYSYMBOL_NATIONAL = 279, /* NATIONAL */
593 : YYSYMBOL_NATURAL = 280, /* NATURAL */
594 : YYSYMBOL_NCHAR = 281, /* NCHAR */
595 : YYSYMBOL_NESTED = 282, /* NESTED */
596 : YYSYMBOL_NEW = 283, /* NEW */
597 : YYSYMBOL_NEXT = 284, /* NEXT */
598 : YYSYMBOL_NFC = 285, /* NFC */
599 : YYSYMBOL_NFD = 286, /* NFD */
600 : YYSYMBOL_NFKC = 287, /* NFKC */
601 : YYSYMBOL_NFKD = 288, /* NFKD */
602 : YYSYMBOL_NO = 289, /* NO */
603 : YYSYMBOL_NONE = 290, /* NONE */
604 : YYSYMBOL_NORMALIZE = 291, /* NORMALIZE */
605 : YYSYMBOL_NORMALIZED = 292, /* NORMALIZED */
606 : YYSYMBOL_NOT = 293, /* NOT */
607 : YYSYMBOL_NOTHING = 294, /* NOTHING */
608 : YYSYMBOL_NOTIFY = 295, /* NOTIFY */
609 : YYSYMBOL_NOTNULL = 296, /* NOTNULL */
610 : YYSYMBOL_NOWAIT = 297, /* NOWAIT */
611 : YYSYMBOL_NULL_P = 298, /* NULL_P */
612 : YYSYMBOL_NULLIF = 299, /* NULLIF */
613 : YYSYMBOL_NULLS_P = 300, /* NULLS_P */
614 : YYSYMBOL_NUMERIC = 301, /* NUMERIC */
615 : YYSYMBOL_OBJECT_P = 302, /* OBJECT_P */
616 : YYSYMBOL_OBJECTS_P = 303, /* OBJECTS_P */
617 : YYSYMBOL_OF = 304, /* OF */
618 : YYSYMBOL_OFF = 305, /* OFF */
619 : YYSYMBOL_OFFSET = 306, /* OFFSET */
620 : YYSYMBOL_OIDS = 307, /* OIDS */
621 : YYSYMBOL_OLD = 308, /* OLD */
622 : YYSYMBOL_OMIT = 309, /* OMIT */
623 : YYSYMBOL_ON = 310, /* ON */
624 : YYSYMBOL_ONLY = 311, /* ONLY */
625 : YYSYMBOL_OPERATOR = 312, /* OPERATOR */
626 : YYSYMBOL_OPTION = 313, /* OPTION */
627 : YYSYMBOL_OPTIONS = 314, /* OPTIONS */
628 : YYSYMBOL_OR = 315, /* OR */
629 : YYSYMBOL_ORDER = 316, /* ORDER */
630 : YYSYMBOL_ORDINALITY = 317, /* ORDINALITY */
631 : YYSYMBOL_OTHERS = 318, /* OTHERS */
632 : YYSYMBOL_OUT_P = 319, /* OUT_P */
633 : YYSYMBOL_OUTER_P = 320, /* OUTER_P */
634 : YYSYMBOL_OVER = 321, /* OVER */
635 : YYSYMBOL_OVERLAPS = 322, /* OVERLAPS */
636 : YYSYMBOL_OVERLAY = 323, /* OVERLAY */
637 : YYSYMBOL_OVERRIDING = 324, /* OVERRIDING */
638 : YYSYMBOL_OWNED = 325, /* OWNED */
639 : YYSYMBOL_OWNER = 326, /* OWNER */
640 : YYSYMBOL_PARALLEL = 327, /* PARALLEL */
641 : YYSYMBOL_PARAMETER = 328, /* PARAMETER */
642 : YYSYMBOL_PARSER = 329, /* PARSER */
643 : YYSYMBOL_PARTIAL = 330, /* PARTIAL */
644 : YYSYMBOL_PARTITION = 331, /* PARTITION */
645 : YYSYMBOL_PASSING = 332, /* PASSING */
646 : YYSYMBOL_PASSWORD = 333, /* PASSWORD */
647 : YYSYMBOL_PATH = 334, /* PATH */
648 : YYSYMBOL_PERIOD = 335, /* PERIOD */
649 : YYSYMBOL_PLACING = 336, /* PLACING */
650 : YYSYMBOL_PLAN = 337, /* PLAN */
651 : YYSYMBOL_PLANS = 338, /* PLANS */
652 : YYSYMBOL_POLICY = 339, /* POLICY */
653 : YYSYMBOL_POSITION = 340, /* POSITION */
654 : YYSYMBOL_PRECEDING = 341, /* PRECEDING */
655 : YYSYMBOL_PRECISION = 342, /* PRECISION */
656 : YYSYMBOL_PRESERVE = 343, /* PRESERVE */
657 : YYSYMBOL_PREPARE = 344, /* PREPARE */
658 : YYSYMBOL_PREPARED = 345, /* PREPARED */
659 : YYSYMBOL_PRIMARY = 346, /* PRIMARY */
660 : YYSYMBOL_PRIOR = 347, /* PRIOR */
661 : YYSYMBOL_PRIVILEGES = 348, /* PRIVILEGES */
662 : YYSYMBOL_PROCEDURAL = 349, /* PROCEDURAL */
663 : YYSYMBOL_PROCEDURE = 350, /* PROCEDURE */
664 : YYSYMBOL_PROCEDURES = 351, /* PROCEDURES */
665 : YYSYMBOL_PROGRAM = 352, /* PROGRAM */
666 : YYSYMBOL_PUBLICATION = 353, /* PUBLICATION */
667 : YYSYMBOL_QUOTE = 354, /* QUOTE */
668 : YYSYMBOL_QUOTES = 355, /* QUOTES */
669 : YYSYMBOL_RANGE = 356, /* RANGE */
670 : YYSYMBOL_READ = 357, /* READ */
671 : YYSYMBOL_REAL = 358, /* REAL */
672 : YYSYMBOL_REASSIGN = 359, /* REASSIGN */
673 : YYSYMBOL_RECURSIVE = 360, /* RECURSIVE */
674 : YYSYMBOL_REF_P = 361, /* REF_P */
675 : YYSYMBOL_REFERENCES = 362, /* REFERENCES */
676 : YYSYMBOL_REFERENCING = 363, /* REFERENCING */
677 : YYSYMBOL_REFRESH = 364, /* REFRESH */
678 : YYSYMBOL_REINDEX = 365, /* REINDEX */
679 : YYSYMBOL_RELATIVE_P = 366, /* RELATIVE_P */
680 : YYSYMBOL_RELEASE = 367, /* RELEASE */
681 : YYSYMBOL_RENAME = 368, /* RENAME */
682 : YYSYMBOL_REPEATABLE = 369, /* REPEATABLE */
683 : YYSYMBOL_REPLACE = 370, /* REPLACE */
684 : YYSYMBOL_REPLICA = 371, /* REPLICA */
685 : YYSYMBOL_RESET = 372, /* RESET */
686 : YYSYMBOL_RESTART = 373, /* RESTART */
687 : YYSYMBOL_RESTRICT = 374, /* RESTRICT */
688 : YYSYMBOL_RETURN = 375, /* RETURN */
689 : YYSYMBOL_RETURNING = 376, /* RETURNING */
690 : YYSYMBOL_RETURNS = 377, /* RETURNS */
691 : YYSYMBOL_REVOKE = 378, /* REVOKE */
692 : YYSYMBOL_RIGHT = 379, /* RIGHT */
693 : YYSYMBOL_ROLE = 380, /* ROLE */
694 : YYSYMBOL_ROLLBACK = 381, /* ROLLBACK */
695 : YYSYMBOL_ROLLUP = 382, /* ROLLUP */
696 : YYSYMBOL_ROUTINE = 383, /* ROUTINE */
697 : YYSYMBOL_ROUTINES = 384, /* ROUTINES */
698 : YYSYMBOL_ROW = 385, /* ROW */
699 : YYSYMBOL_ROWS = 386, /* ROWS */
700 : YYSYMBOL_RULE = 387, /* RULE */
701 : YYSYMBOL_SAVEPOINT = 388, /* SAVEPOINT */
702 : YYSYMBOL_SCALAR = 389, /* SCALAR */
703 : YYSYMBOL_SCHEMA = 390, /* SCHEMA */
704 : YYSYMBOL_SCHEMAS = 391, /* SCHEMAS */
705 : YYSYMBOL_SCROLL = 392, /* SCROLL */
706 : YYSYMBOL_SEARCH = 393, /* SEARCH */
707 : YYSYMBOL_SECOND_P = 394, /* SECOND_P */
708 : YYSYMBOL_SECURITY = 395, /* SECURITY */
709 : YYSYMBOL_SELECT = 396, /* SELECT */
710 : YYSYMBOL_SEQUENCE = 397, /* SEQUENCE */
711 : YYSYMBOL_SEQUENCES = 398, /* SEQUENCES */
712 : YYSYMBOL_SERIALIZABLE = 399, /* SERIALIZABLE */
713 : YYSYMBOL_SERVER = 400, /* SERVER */
714 : YYSYMBOL_SESSION = 401, /* SESSION */
715 : YYSYMBOL_SESSION_USER = 402, /* SESSION_USER */
716 : YYSYMBOL_SET = 403, /* SET */
717 : YYSYMBOL_SETS = 404, /* SETS */
718 : YYSYMBOL_SETOF = 405, /* SETOF */
719 : YYSYMBOL_SHARE = 406, /* SHARE */
720 : YYSYMBOL_SHOW = 407, /* SHOW */
721 : YYSYMBOL_SIMILAR = 408, /* SIMILAR */
722 : YYSYMBOL_SIMPLE = 409, /* SIMPLE */
723 : YYSYMBOL_SKIP = 410, /* SKIP */
724 : YYSYMBOL_SMALLINT = 411, /* SMALLINT */
725 : YYSYMBOL_SNAPSHOT = 412, /* SNAPSHOT */
726 : YYSYMBOL_SOME = 413, /* SOME */
727 : YYSYMBOL_SOURCE = 414, /* SOURCE */
728 : YYSYMBOL_SQL_P = 415, /* SQL_P */
729 : YYSYMBOL_STABLE = 416, /* STABLE */
730 : YYSYMBOL_STANDALONE_P = 417, /* STANDALONE_P */
731 : YYSYMBOL_START = 418, /* START */
732 : YYSYMBOL_STATEMENT = 419, /* STATEMENT */
733 : YYSYMBOL_STATISTICS = 420, /* STATISTICS */
734 : YYSYMBOL_STDIN = 421, /* STDIN */
735 : YYSYMBOL_STDOUT = 422, /* STDOUT */
736 : YYSYMBOL_STORAGE = 423, /* STORAGE */
737 : YYSYMBOL_STORED = 424, /* STORED */
738 : YYSYMBOL_STRICT_P = 425, /* STRICT_P */
739 : YYSYMBOL_STRING_P = 426, /* STRING_P */
740 : YYSYMBOL_STRIP_P = 427, /* STRIP_P */
741 : YYSYMBOL_SUBSCRIPTION = 428, /* SUBSCRIPTION */
742 : YYSYMBOL_SUBSTRING = 429, /* SUBSTRING */
743 : YYSYMBOL_SUPPORT = 430, /* SUPPORT */
744 : YYSYMBOL_SYMMETRIC = 431, /* SYMMETRIC */
745 : YYSYMBOL_SYSID = 432, /* SYSID */
746 : YYSYMBOL_SYSTEM_P = 433, /* SYSTEM_P */
747 : YYSYMBOL_SYSTEM_USER = 434, /* SYSTEM_USER */
748 : YYSYMBOL_TABLE = 435, /* TABLE */
749 : YYSYMBOL_TABLES = 436, /* TABLES */
750 : YYSYMBOL_TABLESAMPLE = 437, /* TABLESAMPLE */
751 : YYSYMBOL_TABLESPACE = 438, /* TABLESPACE */
752 : YYSYMBOL_TARGET = 439, /* TARGET */
753 : YYSYMBOL_TEMP = 440, /* TEMP */
754 : YYSYMBOL_TEMPLATE = 441, /* TEMPLATE */
755 : YYSYMBOL_TEMPORARY = 442, /* TEMPORARY */
756 : YYSYMBOL_TEXT_P = 443, /* TEXT_P */
757 : YYSYMBOL_THEN = 444, /* THEN */
758 : YYSYMBOL_TIES = 445, /* TIES */
759 : YYSYMBOL_TIME = 446, /* TIME */
760 : YYSYMBOL_TIMESTAMP = 447, /* TIMESTAMP */
761 : YYSYMBOL_TO = 448, /* TO */
762 : YYSYMBOL_TRAILING = 449, /* TRAILING */
763 : YYSYMBOL_TRANSACTION = 450, /* TRANSACTION */
764 : YYSYMBOL_TRANSFORM = 451, /* TRANSFORM */
765 : YYSYMBOL_TREAT = 452, /* TREAT */
766 : YYSYMBOL_TRIGGER = 453, /* TRIGGER */
767 : YYSYMBOL_TRIM = 454, /* TRIM */
768 : YYSYMBOL_TRUE_P = 455, /* TRUE_P */
769 : YYSYMBOL_TRUNCATE = 456, /* TRUNCATE */
770 : YYSYMBOL_TRUSTED = 457, /* TRUSTED */
771 : YYSYMBOL_TYPE_P = 458, /* TYPE_P */
772 : YYSYMBOL_TYPES_P = 459, /* TYPES_P */
773 : YYSYMBOL_UESCAPE = 460, /* UESCAPE */
774 : YYSYMBOL_UNBOUNDED = 461, /* UNBOUNDED */
775 : YYSYMBOL_UNCONDITIONAL = 462, /* UNCONDITIONAL */
776 : YYSYMBOL_UNCOMMITTED = 463, /* UNCOMMITTED */
777 : YYSYMBOL_UNENCRYPTED = 464, /* UNENCRYPTED */
778 : YYSYMBOL_UNION = 465, /* UNION */
779 : YYSYMBOL_UNIQUE = 466, /* UNIQUE */
780 : YYSYMBOL_UNKNOWN = 467, /* UNKNOWN */
781 : YYSYMBOL_UNLISTEN = 468, /* UNLISTEN */
782 : YYSYMBOL_UNLOGGED = 469, /* UNLOGGED */
783 : YYSYMBOL_UNTIL = 470, /* UNTIL */
784 : YYSYMBOL_UPDATE = 471, /* UPDATE */
785 : YYSYMBOL_USER = 472, /* USER */
786 : YYSYMBOL_USING = 473, /* USING */
787 : YYSYMBOL_VACUUM = 474, /* VACUUM */
788 : YYSYMBOL_VALID = 475, /* VALID */
789 : YYSYMBOL_VALIDATE = 476, /* VALIDATE */
790 : YYSYMBOL_VALIDATOR = 477, /* VALIDATOR */
791 : YYSYMBOL_VALUE_P = 478, /* VALUE_P */
792 : YYSYMBOL_VALUES = 479, /* VALUES */
793 : YYSYMBOL_VARCHAR = 480, /* VARCHAR */
794 : YYSYMBOL_VARIADIC = 481, /* VARIADIC */
795 : YYSYMBOL_VARYING = 482, /* VARYING */
796 : YYSYMBOL_VERBOSE = 483, /* VERBOSE */
797 : YYSYMBOL_VERSION_P = 484, /* VERSION_P */
798 : YYSYMBOL_VIEW = 485, /* VIEW */
799 : YYSYMBOL_VIEWS = 486, /* VIEWS */
800 : YYSYMBOL_VIRTUAL = 487, /* VIRTUAL */
801 : YYSYMBOL_VOLATILE = 488, /* VOLATILE */
802 : YYSYMBOL_WHEN = 489, /* WHEN */
803 : YYSYMBOL_WHERE = 490, /* WHERE */
804 : YYSYMBOL_WHITESPACE_P = 491, /* WHITESPACE_P */
805 : YYSYMBOL_WINDOW = 492, /* WINDOW */
806 : YYSYMBOL_WITH = 493, /* WITH */
807 : YYSYMBOL_WITHIN = 494, /* WITHIN */
808 : YYSYMBOL_WITHOUT = 495, /* WITHOUT */
809 : YYSYMBOL_WORK = 496, /* WORK */
810 : YYSYMBOL_WRAPPER = 497, /* WRAPPER */
811 : YYSYMBOL_WRITE = 498, /* WRITE */
812 : YYSYMBOL_XML_P = 499, /* XML_P */
813 : YYSYMBOL_XMLATTRIBUTES = 500, /* XMLATTRIBUTES */
814 : YYSYMBOL_XMLCONCAT = 501, /* XMLCONCAT */
815 : YYSYMBOL_XMLELEMENT = 502, /* XMLELEMENT */
816 : YYSYMBOL_XMLEXISTS = 503, /* XMLEXISTS */
817 : YYSYMBOL_XMLFOREST = 504, /* XMLFOREST */
818 : YYSYMBOL_XMLNAMESPACES = 505, /* XMLNAMESPACES */
819 : YYSYMBOL_XMLPARSE = 506, /* XMLPARSE */
820 : YYSYMBOL_XMLPI = 507, /* XMLPI */
821 : YYSYMBOL_XMLROOT = 508, /* XMLROOT */
822 : YYSYMBOL_XMLSERIALIZE = 509, /* XMLSERIALIZE */
823 : YYSYMBOL_XMLTABLE = 510, /* XMLTABLE */
824 : YYSYMBOL_YEAR_P = 511, /* YEAR_P */
825 : YYSYMBOL_YES_P = 512, /* YES_P */
826 : YYSYMBOL_ZONE = 513, /* ZONE */
827 : YYSYMBOL_FORMAT_LA = 514, /* FORMAT_LA */
828 : YYSYMBOL_NOT_LA = 515, /* NOT_LA */
829 : YYSYMBOL_NULLS_LA = 516, /* NULLS_LA */
830 : YYSYMBOL_WITH_LA = 517, /* WITH_LA */
831 : YYSYMBOL_WITHOUT_LA = 518, /* WITHOUT_LA */
832 : YYSYMBOL_MODE_TYPE_NAME = 519, /* MODE_TYPE_NAME */
833 : YYSYMBOL_MODE_PLPGSQL_EXPR = 520, /* MODE_PLPGSQL_EXPR */
834 : YYSYMBOL_MODE_PLPGSQL_ASSIGN1 = 521, /* MODE_PLPGSQL_ASSIGN1 */
835 : YYSYMBOL_MODE_PLPGSQL_ASSIGN2 = 522, /* MODE_PLPGSQL_ASSIGN2 */
836 : YYSYMBOL_MODE_PLPGSQL_ASSIGN3 = 523, /* MODE_PLPGSQL_ASSIGN3 */
837 : YYSYMBOL_524_ = 524, /* '<' */
838 : YYSYMBOL_525_ = 525, /* '>' */
839 : YYSYMBOL_526_ = 526, /* '=' */
840 : YYSYMBOL_527_ = 527, /* '+' */
841 : YYSYMBOL_528_ = 528, /* '-' */
842 : YYSYMBOL_529_ = 529, /* '*' */
843 : YYSYMBOL_530_ = 530, /* '/' */
844 : YYSYMBOL_531_ = 531, /* '%' */
845 : YYSYMBOL_532_ = 532, /* '^' */
846 : YYSYMBOL_UMINUS = 533, /* UMINUS */
847 : YYSYMBOL_534_ = 534, /* '[' */
848 : YYSYMBOL_535_ = 535, /* ']' */
849 : YYSYMBOL_536_ = 536, /* '(' */
850 : YYSYMBOL_537_ = 537, /* ')' */
851 : YYSYMBOL_538_ = 538, /* '.' */
852 : YYSYMBOL_539_ = 539, /* ';' */
853 : YYSYMBOL_540_ = 540, /* ',' */
854 : YYSYMBOL_541_ = 541, /* ':' */
855 : YYSYMBOL_YYACCEPT = 542, /* $accept */
856 : YYSYMBOL_parse_toplevel = 543, /* parse_toplevel */
857 : YYSYMBOL_stmtmulti = 544, /* stmtmulti */
858 : YYSYMBOL_toplevel_stmt = 545, /* toplevel_stmt */
859 : YYSYMBOL_stmt = 546, /* stmt */
860 : YYSYMBOL_opt_single_name = 547, /* opt_single_name */
861 : YYSYMBOL_opt_qualified_name = 548, /* opt_qualified_name */
862 : YYSYMBOL_opt_concurrently = 549, /* opt_concurrently */
863 : YYSYMBOL_opt_drop_behavior = 550, /* opt_drop_behavior */
864 : YYSYMBOL_CallStmt = 551, /* CallStmt */
865 : YYSYMBOL_CreateRoleStmt = 552, /* CreateRoleStmt */
866 : YYSYMBOL_opt_with = 553, /* opt_with */
867 : YYSYMBOL_OptRoleList = 554, /* OptRoleList */
868 : YYSYMBOL_AlterOptRoleList = 555, /* AlterOptRoleList */
869 : YYSYMBOL_AlterOptRoleElem = 556, /* AlterOptRoleElem */
870 : YYSYMBOL_CreateOptRoleElem = 557, /* CreateOptRoleElem */
871 : YYSYMBOL_CreateUserStmt = 558, /* CreateUserStmt */
872 : YYSYMBOL_AlterRoleStmt = 559, /* AlterRoleStmt */
873 : YYSYMBOL_opt_in_database = 560, /* opt_in_database */
874 : YYSYMBOL_AlterRoleSetStmt = 561, /* AlterRoleSetStmt */
875 : YYSYMBOL_DropRoleStmt = 562, /* DropRoleStmt */
876 : YYSYMBOL_CreateGroupStmt = 563, /* CreateGroupStmt */
877 : YYSYMBOL_AlterGroupStmt = 564, /* AlterGroupStmt */
878 : YYSYMBOL_add_drop = 565, /* add_drop */
879 : YYSYMBOL_CreateSchemaStmt = 566, /* CreateSchemaStmt */
880 : YYSYMBOL_OptSchemaEltList = 567, /* OptSchemaEltList */
881 : YYSYMBOL_schema_stmt = 568, /* schema_stmt */
882 : YYSYMBOL_VariableSetStmt = 569, /* VariableSetStmt */
883 : YYSYMBOL_set_rest = 570, /* set_rest */
884 : YYSYMBOL_generic_set = 571, /* generic_set */
885 : YYSYMBOL_set_rest_more = 572, /* set_rest_more */
886 : YYSYMBOL_var_name = 573, /* var_name */
887 : YYSYMBOL_var_list = 574, /* var_list */
888 : YYSYMBOL_var_value = 575, /* var_value */
889 : YYSYMBOL_iso_level = 576, /* iso_level */
890 : YYSYMBOL_opt_boolean_or_string = 577, /* opt_boolean_or_string */
891 : YYSYMBOL_zone_value = 578, /* zone_value */
892 : YYSYMBOL_opt_encoding = 579, /* opt_encoding */
893 : YYSYMBOL_NonReservedWord_or_Sconst = 580, /* NonReservedWord_or_Sconst */
894 : YYSYMBOL_VariableResetStmt = 581, /* VariableResetStmt */
895 : YYSYMBOL_reset_rest = 582, /* reset_rest */
896 : YYSYMBOL_generic_reset = 583, /* generic_reset */
897 : YYSYMBOL_SetResetClause = 584, /* SetResetClause */
898 : YYSYMBOL_FunctionSetResetClause = 585, /* FunctionSetResetClause */
899 : YYSYMBOL_VariableShowStmt = 586, /* VariableShowStmt */
900 : YYSYMBOL_ConstraintsSetStmt = 587, /* ConstraintsSetStmt */
901 : YYSYMBOL_constraints_set_list = 588, /* constraints_set_list */
902 : YYSYMBOL_constraints_set_mode = 589, /* constraints_set_mode */
903 : YYSYMBOL_CheckPointStmt = 590, /* CheckPointStmt */
904 : YYSYMBOL_DiscardStmt = 591, /* DiscardStmt */
905 : YYSYMBOL_AlterTableStmt = 592, /* AlterTableStmt */
906 : YYSYMBOL_alter_table_cmds = 593, /* alter_table_cmds */
907 : YYSYMBOL_partition_cmd = 594, /* partition_cmd */
908 : YYSYMBOL_index_partition_cmd = 595, /* index_partition_cmd */
909 : YYSYMBOL_alter_table_cmd = 596, /* alter_table_cmd */
910 : YYSYMBOL_alter_column_default = 597, /* alter_column_default */
911 : YYSYMBOL_opt_collate_clause = 598, /* opt_collate_clause */
912 : YYSYMBOL_alter_using = 599, /* alter_using */
913 : YYSYMBOL_replica_identity = 600, /* replica_identity */
914 : YYSYMBOL_reloptions = 601, /* reloptions */
915 : YYSYMBOL_opt_reloptions = 602, /* opt_reloptions */
916 : YYSYMBOL_reloption_list = 603, /* reloption_list */
917 : YYSYMBOL_reloption_elem = 604, /* reloption_elem */
918 : YYSYMBOL_alter_identity_column_option_list = 605, /* alter_identity_column_option_list */
919 : YYSYMBOL_alter_identity_column_option = 606, /* alter_identity_column_option */
920 : YYSYMBOL_set_statistics_value = 607, /* set_statistics_value */
921 : YYSYMBOL_set_access_method_name = 608, /* set_access_method_name */
922 : YYSYMBOL_PartitionBoundSpec = 609, /* PartitionBoundSpec */
923 : YYSYMBOL_hash_partbound_elem = 610, /* hash_partbound_elem */
924 : YYSYMBOL_hash_partbound = 611, /* hash_partbound */
925 : YYSYMBOL_AlterCompositeTypeStmt = 612, /* AlterCompositeTypeStmt */
926 : YYSYMBOL_alter_type_cmds = 613, /* alter_type_cmds */
927 : YYSYMBOL_alter_type_cmd = 614, /* alter_type_cmd */
928 : YYSYMBOL_ClosePortalStmt = 615, /* ClosePortalStmt */
929 : YYSYMBOL_CopyStmt = 616, /* CopyStmt */
930 : YYSYMBOL_copy_from = 617, /* copy_from */
931 : YYSYMBOL_opt_program = 618, /* opt_program */
932 : YYSYMBOL_copy_file_name = 619, /* copy_file_name */
933 : YYSYMBOL_copy_options = 620, /* copy_options */
934 : YYSYMBOL_copy_opt_list = 621, /* copy_opt_list */
935 : YYSYMBOL_copy_opt_item = 622, /* copy_opt_item */
936 : YYSYMBOL_opt_binary = 623, /* opt_binary */
937 : YYSYMBOL_copy_delimiter = 624, /* copy_delimiter */
938 : YYSYMBOL_opt_using = 625, /* opt_using */
939 : YYSYMBOL_copy_generic_opt_list = 626, /* copy_generic_opt_list */
940 : YYSYMBOL_copy_generic_opt_elem = 627, /* copy_generic_opt_elem */
941 : YYSYMBOL_copy_generic_opt_arg = 628, /* copy_generic_opt_arg */
942 : YYSYMBOL_copy_generic_opt_arg_list = 629, /* copy_generic_opt_arg_list */
943 : YYSYMBOL_copy_generic_opt_arg_list_item = 630, /* copy_generic_opt_arg_list_item */
944 : YYSYMBOL_CreateStmt = 631, /* CreateStmt */
945 : YYSYMBOL_OptTemp = 632, /* OptTemp */
946 : YYSYMBOL_OptTableElementList = 633, /* OptTableElementList */
947 : YYSYMBOL_OptTypedTableElementList = 634, /* OptTypedTableElementList */
948 : YYSYMBOL_TableElementList = 635, /* TableElementList */
949 : YYSYMBOL_TypedTableElementList = 636, /* TypedTableElementList */
950 : YYSYMBOL_TableElement = 637, /* TableElement */
951 : YYSYMBOL_TypedTableElement = 638, /* TypedTableElement */
952 : YYSYMBOL_columnDef = 639, /* columnDef */
953 : YYSYMBOL_columnOptions = 640, /* columnOptions */
954 : YYSYMBOL_column_compression = 641, /* column_compression */
955 : YYSYMBOL_opt_column_compression = 642, /* opt_column_compression */
956 : YYSYMBOL_column_storage = 643, /* column_storage */
957 : YYSYMBOL_opt_column_storage = 644, /* opt_column_storage */
958 : YYSYMBOL_ColQualList = 645, /* ColQualList */
959 : YYSYMBOL_ColConstraint = 646, /* ColConstraint */
960 : YYSYMBOL_ColConstraintElem = 647, /* ColConstraintElem */
961 : YYSYMBOL_opt_unique_null_treatment = 648, /* opt_unique_null_treatment */
962 : YYSYMBOL_generated_when = 649, /* generated_when */
963 : YYSYMBOL_opt_virtual_or_stored = 650, /* opt_virtual_or_stored */
964 : YYSYMBOL_ConstraintAttr = 651, /* ConstraintAttr */
965 : YYSYMBOL_TableLikeClause = 652, /* TableLikeClause */
966 : YYSYMBOL_TableLikeOptionList = 653, /* TableLikeOptionList */
967 : YYSYMBOL_TableLikeOption = 654, /* TableLikeOption */
968 : YYSYMBOL_TableConstraint = 655, /* TableConstraint */
969 : YYSYMBOL_ConstraintElem = 656, /* ConstraintElem */
970 : YYSYMBOL_DomainConstraint = 657, /* DomainConstraint */
971 : YYSYMBOL_DomainConstraintElem = 658, /* DomainConstraintElem */
972 : YYSYMBOL_opt_no_inherit = 659, /* opt_no_inherit */
973 : YYSYMBOL_opt_without_overlaps = 660, /* opt_without_overlaps */
974 : YYSYMBOL_opt_column_list = 661, /* opt_column_list */
975 : YYSYMBOL_columnList = 662, /* columnList */
976 : YYSYMBOL_optionalPeriodName = 663, /* optionalPeriodName */
977 : YYSYMBOL_opt_column_and_period_list = 664, /* opt_column_and_period_list */
978 : YYSYMBOL_columnElem = 665, /* columnElem */
979 : YYSYMBOL_opt_c_include = 666, /* opt_c_include */
980 : YYSYMBOL_key_match = 667, /* key_match */
981 : YYSYMBOL_ExclusionConstraintList = 668, /* ExclusionConstraintList */
982 : YYSYMBOL_ExclusionConstraintElem = 669, /* ExclusionConstraintElem */
983 : YYSYMBOL_OptWhereClause = 670, /* OptWhereClause */
984 : YYSYMBOL_key_actions = 671, /* key_actions */
985 : YYSYMBOL_key_update = 672, /* key_update */
986 : YYSYMBOL_key_delete = 673, /* key_delete */
987 : YYSYMBOL_key_action = 674, /* key_action */
988 : YYSYMBOL_OptInherit = 675, /* OptInherit */
989 : YYSYMBOL_OptPartitionSpec = 676, /* OptPartitionSpec */
990 : YYSYMBOL_PartitionSpec = 677, /* PartitionSpec */
991 : YYSYMBOL_part_params = 678, /* part_params */
992 : YYSYMBOL_part_elem = 679, /* part_elem */
993 : YYSYMBOL_table_access_method_clause = 680, /* table_access_method_clause */
994 : YYSYMBOL_OptWith = 681, /* OptWith */
995 : YYSYMBOL_OnCommitOption = 682, /* OnCommitOption */
996 : YYSYMBOL_OptTableSpace = 683, /* OptTableSpace */
997 : YYSYMBOL_OptConsTableSpace = 684, /* OptConsTableSpace */
998 : YYSYMBOL_ExistingIndex = 685, /* ExistingIndex */
999 : YYSYMBOL_CreateStatsStmt = 686, /* CreateStatsStmt */
1000 : YYSYMBOL_stats_params = 687, /* stats_params */
1001 : YYSYMBOL_stats_param = 688, /* stats_param */
1002 : YYSYMBOL_AlterStatsStmt = 689, /* AlterStatsStmt */
1003 : YYSYMBOL_CreateAsStmt = 690, /* CreateAsStmt */
1004 : YYSYMBOL_create_as_target = 691, /* create_as_target */
1005 : YYSYMBOL_opt_with_data = 692, /* opt_with_data */
1006 : YYSYMBOL_CreateMatViewStmt = 693, /* CreateMatViewStmt */
1007 : YYSYMBOL_create_mv_target = 694, /* create_mv_target */
1008 : YYSYMBOL_OptNoLog = 695, /* OptNoLog */
1009 : YYSYMBOL_RefreshMatViewStmt = 696, /* RefreshMatViewStmt */
1010 : YYSYMBOL_CreateSeqStmt = 697, /* CreateSeqStmt */
1011 : YYSYMBOL_AlterSeqStmt = 698, /* AlterSeqStmt */
1012 : YYSYMBOL_OptSeqOptList = 699, /* OptSeqOptList */
1013 : YYSYMBOL_OptParenthesizedSeqOptList = 700, /* OptParenthesizedSeqOptList */
1014 : YYSYMBOL_SeqOptList = 701, /* SeqOptList */
1015 : YYSYMBOL_SeqOptElem = 702, /* SeqOptElem */
1016 : YYSYMBOL_opt_by = 703, /* opt_by */
1017 : YYSYMBOL_NumericOnly = 704, /* NumericOnly */
1018 : YYSYMBOL_NumericOnly_list = 705, /* NumericOnly_list */
1019 : YYSYMBOL_CreatePLangStmt = 706, /* CreatePLangStmt */
1020 : YYSYMBOL_opt_trusted = 707, /* opt_trusted */
1021 : YYSYMBOL_handler_name = 708, /* handler_name */
1022 : YYSYMBOL_opt_inline_handler = 709, /* opt_inline_handler */
1023 : YYSYMBOL_validator_clause = 710, /* validator_clause */
1024 : YYSYMBOL_opt_validator = 711, /* opt_validator */
1025 : YYSYMBOL_opt_procedural = 712, /* opt_procedural */
1026 : YYSYMBOL_CreateTableSpaceStmt = 713, /* CreateTableSpaceStmt */
1027 : YYSYMBOL_OptTableSpaceOwner = 714, /* OptTableSpaceOwner */
1028 : YYSYMBOL_DropTableSpaceStmt = 715, /* DropTableSpaceStmt */
1029 : YYSYMBOL_CreateExtensionStmt = 716, /* CreateExtensionStmt */
1030 : YYSYMBOL_create_extension_opt_list = 717, /* create_extension_opt_list */
1031 : YYSYMBOL_create_extension_opt_item = 718, /* create_extension_opt_item */
1032 : YYSYMBOL_AlterExtensionStmt = 719, /* AlterExtensionStmt */
1033 : YYSYMBOL_alter_extension_opt_list = 720, /* alter_extension_opt_list */
1034 : YYSYMBOL_alter_extension_opt_item = 721, /* alter_extension_opt_item */
1035 : YYSYMBOL_AlterExtensionContentsStmt = 722, /* AlterExtensionContentsStmt */
1036 : YYSYMBOL_CreateFdwStmt = 723, /* CreateFdwStmt */
1037 : YYSYMBOL_fdw_option = 724, /* fdw_option */
1038 : YYSYMBOL_fdw_options = 725, /* fdw_options */
1039 : YYSYMBOL_opt_fdw_options = 726, /* opt_fdw_options */
1040 : YYSYMBOL_AlterFdwStmt = 727, /* AlterFdwStmt */
1041 : YYSYMBOL_create_generic_options = 728, /* create_generic_options */
1042 : YYSYMBOL_generic_option_list = 729, /* generic_option_list */
1043 : YYSYMBOL_alter_generic_options = 730, /* alter_generic_options */
1044 : YYSYMBOL_alter_generic_option_list = 731, /* alter_generic_option_list */
1045 : YYSYMBOL_alter_generic_option_elem = 732, /* alter_generic_option_elem */
1046 : YYSYMBOL_generic_option_elem = 733, /* generic_option_elem */
1047 : YYSYMBOL_generic_option_name = 734, /* generic_option_name */
1048 : YYSYMBOL_generic_option_arg = 735, /* generic_option_arg */
1049 : YYSYMBOL_CreateForeignServerStmt = 736, /* CreateForeignServerStmt */
1050 : YYSYMBOL_opt_type = 737, /* opt_type */
1051 : YYSYMBOL_foreign_server_version = 738, /* foreign_server_version */
1052 : YYSYMBOL_opt_foreign_server_version = 739, /* opt_foreign_server_version */
1053 : YYSYMBOL_AlterForeignServerStmt = 740, /* AlterForeignServerStmt */
1054 : YYSYMBOL_CreateForeignTableStmt = 741, /* CreateForeignTableStmt */
1055 : YYSYMBOL_ImportForeignSchemaStmt = 742, /* ImportForeignSchemaStmt */
1056 : YYSYMBOL_import_qualification_type = 743, /* import_qualification_type */
1057 : YYSYMBOL_import_qualification = 744, /* import_qualification */
1058 : YYSYMBOL_CreateUserMappingStmt = 745, /* CreateUserMappingStmt */
1059 : YYSYMBOL_auth_ident = 746, /* auth_ident */
1060 : YYSYMBOL_DropUserMappingStmt = 747, /* DropUserMappingStmt */
1061 : YYSYMBOL_AlterUserMappingStmt = 748, /* AlterUserMappingStmt */
1062 : YYSYMBOL_CreatePolicyStmt = 749, /* CreatePolicyStmt */
1063 : YYSYMBOL_AlterPolicyStmt = 750, /* AlterPolicyStmt */
1064 : YYSYMBOL_RowSecurityOptionalExpr = 751, /* RowSecurityOptionalExpr */
1065 : YYSYMBOL_RowSecurityOptionalWithCheck = 752, /* RowSecurityOptionalWithCheck */
1066 : YYSYMBOL_RowSecurityDefaultToRole = 753, /* RowSecurityDefaultToRole */
1067 : YYSYMBOL_RowSecurityOptionalToRole = 754, /* RowSecurityOptionalToRole */
1068 : YYSYMBOL_RowSecurityDefaultPermissive = 755, /* RowSecurityDefaultPermissive */
1069 : YYSYMBOL_RowSecurityDefaultForCmd = 756, /* RowSecurityDefaultForCmd */
1070 : YYSYMBOL_row_security_cmd = 757, /* row_security_cmd */
1071 : YYSYMBOL_CreateAmStmt = 758, /* CreateAmStmt */
1072 : YYSYMBOL_am_type = 759, /* am_type */
1073 : YYSYMBOL_CreateTrigStmt = 760, /* CreateTrigStmt */
1074 : YYSYMBOL_TriggerActionTime = 761, /* TriggerActionTime */
1075 : YYSYMBOL_TriggerEvents = 762, /* TriggerEvents */
1076 : YYSYMBOL_TriggerOneEvent = 763, /* TriggerOneEvent */
1077 : YYSYMBOL_TriggerReferencing = 764, /* TriggerReferencing */
1078 : YYSYMBOL_TriggerTransitions = 765, /* TriggerTransitions */
1079 : YYSYMBOL_TriggerTransition = 766, /* TriggerTransition */
1080 : YYSYMBOL_TransitionOldOrNew = 767, /* TransitionOldOrNew */
1081 : YYSYMBOL_TransitionRowOrTable = 768, /* TransitionRowOrTable */
1082 : YYSYMBOL_TransitionRelName = 769, /* TransitionRelName */
1083 : YYSYMBOL_TriggerForSpec = 770, /* TriggerForSpec */
1084 : YYSYMBOL_TriggerForOptEach = 771, /* TriggerForOptEach */
1085 : YYSYMBOL_TriggerForType = 772, /* TriggerForType */
1086 : YYSYMBOL_TriggerWhen = 773, /* TriggerWhen */
1087 : YYSYMBOL_FUNCTION_or_PROCEDURE = 774, /* FUNCTION_or_PROCEDURE */
1088 : YYSYMBOL_TriggerFuncArgs = 775, /* TriggerFuncArgs */
1089 : YYSYMBOL_TriggerFuncArg = 776, /* TriggerFuncArg */
1090 : YYSYMBOL_OptConstrFromTable = 777, /* OptConstrFromTable */
1091 : YYSYMBOL_ConstraintAttributeSpec = 778, /* ConstraintAttributeSpec */
1092 : YYSYMBOL_ConstraintAttributeElem = 779, /* ConstraintAttributeElem */
1093 : YYSYMBOL_CreateEventTrigStmt = 780, /* CreateEventTrigStmt */
1094 : YYSYMBOL_event_trigger_when_list = 781, /* event_trigger_when_list */
1095 : YYSYMBOL_event_trigger_when_item = 782, /* event_trigger_when_item */
1096 : YYSYMBOL_event_trigger_value_list = 783, /* event_trigger_value_list */
1097 : YYSYMBOL_AlterEventTrigStmt = 784, /* AlterEventTrigStmt */
1098 : YYSYMBOL_enable_trigger = 785, /* enable_trigger */
1099 : YYSYMBOL_CreateAssertionStmt = 786, /* CreateAssertionStmt */
1100 : YYSYMBOL_DefineStmt = 787, /* DefineStmt */
1101 : YYSYMBOL_definition = 788, /* definition */
1102 : YYSYMBOL_def_list = 789, /* def_list */
1103 : YYSYMBOL_def_elem = 790, /* def_elem */
1104 : YYSYMBOL_def_arg = 791, /* def_arg */
1105 : YYSYMBOL_old_aggr_definition = 792, /* old_aggr_definition */
1106 : YYSYMBOL_old_aggr_list = 793, /* old_aggr_list */
1107 : YYSYMBOL_old_aggr_elem = 794, /* old_aggr_elem */
1108 : YYSYMBOL_opt_enum_val_list = 795, /* opt_enum_val_list */
1109 : YYSYMBOL_enum_val_list = 796, /* enum_val_list */
1110 : YYSYMBOL_AlterEnumStmt = 797, /* AlterEnumStmt */
1111 : YYSYMBOL_opt_if_not_exists = 798, /* opt_if_not_exists */
1112 : YYSYMBOL_CreateOpClassStmt = 799, /* CreateOpClassStmt */
1113 : YYSYMBOL_opclass_item_list = 800, /* opclass_item_list */
1114 : YYSYMBOL_opclass_item = 801, /* opclass_item */
1115 : YYSYMBOL_opt_default = 802, /* opt_default */
1116 : YYSYMBOL_opt_opfamily = 803, /* opt_opfamily */
1117 : YYSYMBOL_opclass_purpose = 804, /* opclass_purpose */
1118 : YYSYMBOL_CreateOpFamilyStmt = 805, /* CreateOpFamilyStmt */
1119 : YYSYMBOL_AlterOpFamilyStmt = 806, /* AlterOpFamilyStmt */
1120 : YYSYMBOL_opclass_drop_list = 807, /* opclass_drop_list */
1121 : YYSYMBOL_opclass_drop = 808, /* opclass_drop */
1122 : YYSYMBOL_DropOpClassStmt = 809, /* DropOpClassStmt */
1123 : YYSYMBOL_DropOpFamilyStmt = 810, /* DropOpFamilyStmt */
1124 : YYSYMBOL_DropOwnedStmt = 811, /* DropOwnedStmt */
1125 : YYSYMBOL_ReassignOwnedStmt = 812, /* ReassignOwnedStmt */
1126 : YYSYMBOL_DropStmt = 813, /* DropStmt */
1127 : YYSYMBOL_object_type_any_name = 814, /* object_type_any_name */
1128 : YYSYMBOL_object_type_name = 815, /* object_type_name */
1129 : YYSYMBOL_drop_type_name = 816, /* drop_type_name */
1130 : YYSYMBOL_object_type_name_on_any_name = 817, /* object_type_name_on_any_name */
1131 : YYSYMBOL_any_name_list = 818, /* any_name_list */
1132 : YYSYMBOL_any_name = 819, /* any_name */
1133 : YYSYMBOL_attrs = 820, /* attrs */
1134 : YYSYMBOL_type_name_list = 821, /* type_name_list */
1135 : YYSYMBOL_TruncateStmt = 822, /* TruncateStmt */
1136 : YYSYMBOL_opt_restart_seqs = 823, /* opt_restart_seqs */
1137 : YYSYMBOL_CommentStmt = 824, /* CommentStmt */
1138 : YYSYMBOL_comment_text = 825, /* comment_text */
1139 : YYSYMBOL_SecLabelStmt = 826, /* SecLabelStmt */
1140 : YYSYMBOL_opt_provider = 827, /* opt_provider */
1141 : YYSYMBOL_security_label = 828, /* security_label */
1142 : YYSYMBOL_FetchStmt = 829, /* FetchStmt */
1143 : YYSYMBOL_fetch_args = 830, /* fetch_args */
1144 : YYSYMBOL_from_in = 831, /* from_in */
1145 : YYSYMBOL_opt_from_in = 832, /* opt_from_in */
1146 : YYSYMBOL_GrantStmt = 833, /* GrantStmt */
1147 : YYSYMBOL_RevokeStmt = 834, /* RevokeStmt */
1148 : YYSYMBOL_privileges = 835, /* privileges */
1149 : YYSYMBOL_privilege_list = 836, /* privilege_list */
1150 : YYSYMBOL_privilege = 837, /* privilege */
1151 : YYSYMBOL_parameter_name_list = 838, /* parameter_name_list */
1152 : YYSYMBOL_parameter_name = 839, /* parameter_name */
1153 : YYSYMBOL_privilege_target = 840, /* privilege_target */
1154 : YYSYMBOL_grantee_list = 841, /* grantee_list */
1155 : YYSYMBOL_grantee = 842, /* grantee */
1156 : YYSYMBOL_opt_grant_grant_option = 843, /* opt_grant_grant_option */
1157 : YYSYMBOL_GrantRoleStmt = 844, /* GrantRoleStmt */
1158 : YYSYMBOL_RevokeRoleStmt = 845, /* RevokeRoleStmt */
1159 : YYSYMBOL_grant_role_opt_list = 846, /* grant_role_opt_list */
1160 : YYSYMBOL_grant_role_opt = 847, /* grant_role_opt */
1161 : YYSYMBOL_grant_role_opt_value = 848, /* grant_role_opt_value */
1162 : YYSYMBOL_opt_granted_by = 849, /* opt_granted_by */
1163 : YYSYMBOL_AlterDefaultPrivilegesStmt = 850, /* AlterDefaultPrivilegesStmt */
1164 : YYSYMBOL_DefACLOptionList = 851, /* DefACLOptionList */
1165 : YYSYMBOL_DefACLOption = 852, /* DefACLOption */
1166 : YYSYMBOL_DefACLAction = 853, /* DefACLAction */
1167 : YYSYMBOL_defacl_privilege_target = 854, /* defacl_privilege_target */
1168 : YYSYMBOL_IndexStmt = 855, /* IndexStmt */
1169 : YYSYMBOL_opt_unique = 856, /* opt_unique */
1170 : YYSYMBOL_access_method_clause = 857, /* access_method_clause */
1171 : YYSYMBOL_index_params = 858, /* index_params */
1172 : YYSYMBOL_index_elem_options = 859, /* index_elem_options */
1173 : YYSYMBOL_index_elem = 860, /* index_elem */
1174 : YYSYMBOL_opt_include = 861, /* opt_include */
1175 : YYSYMBOL_index_including_params = 862, /* index_including_params */
1176 : YYSYMBOL_opt_collate = 863, /* opt_collate */
1177 : YYSYMBOL_opt_asc_desc = 864, /* opt_asc_desc */
1178 : YYSYMBOL_opt_nulls_order = 865, /* opt_nulls_order */
1179 : YYSYMBOL_CreateFunctionStmt = 866, /* CreateFunctionStmt */
1180 : YYSYMBOL_opt_or_replace = 867, /* opt_or_replace */
1181 : YYSYMBOL_func_args = 868, /* func_args */
1182 : YYSYMBOL_func_args_list = 869, /* func_args_list */
1183 : YYSYMBOL_function_with_argtypes_list = 870, /* function_with_argtypes_list */
1184 : YYSYMBOL_function_with_argtypes = 871, /* function_with_argtypes */
1185 : YYSYMBOL_func_args_with_defaults = 872, /* func_args_with_defaults */
1186 : YYSYMBOL_func_args_with_defaults_list = 873, /* func_args_with_defaults_list */
1187 : YYSYMBOL_func_arg = 874, /* func_arg */
1188 : YYSYMBOL_arg_class = 875, /* arg_class */
1189 : YYSYMBOL_param_name = 876, /* param_name */
1190 : YYSYMBOL_func_return = 877, /* func_return */
1191 : YYSYMBOL_func_type = 878, /* func_type */
1192 : YYSYMBOL_func_arg_with_default = 879, /* func_arg_with_default */
1193 : YYSYMBOL_aggr_arg = 880, /* aggr_arg */
1194 : YYSYMBOL_aggr_args = 881, /* aggr_args */
1195 : YYSYMBOL_aggr_args_list = 882, /* aggr_args_list */
1196 : YYSYMBOL_aggregate_with_argtypes = 883, /* aggregate_with_argtypes */
1197 : YYSYMBOL_aggregate_with_argtypes_list = 884, /* aggregate_with_argtypes_list */
1198 : YYSYMBOL_opt_createfunc_opt_list = 885, /* opt_createfunc_opt_list */
1199 : YYSYMBOL_createfunc_opt_list = 886, /* createfunc_opt_list */
1200 : YYSYMBOL_common_func_opt_item = 887, /* common_func_opt_item */
1201 : YYSYMBOL_createfunc_opt_item = 888, /* createfunc_opt_item */
1202 : YYSYMBOL_func_as = 889, /* func_as */
1203 : YYSYMBOL_ReturnStmt = 890, /* ReturnStmt */
1204 : YYSYMBOL_opt_routine_body = 891, /* opt_routine_body */
1205 : YYSYMBOL_routine_body_stmt_list = 892, /* routine_body_stmt_list */
1206 : YYSYMBOL_routine_body_stmt = 893, /* routine_body_stmt */
1207 : YYSYMBOL_transform_type_list = 894, /* transform_type_list */
1208 : YYSYMBOL_opt_definition = 895, /* opt_definition */
1209 : YYSYMBOL_table_func_column = 896, /* table_func_column */
1210 : YYSYMBOL_table_func_column_list = 897, /* table_func_column_list */
1211 : YYSYMBOL_AlterFunctionStmt = 898, /* AlterFunctionStmt */
1212 : YYSYMBOL_alterfunc_opt_list = 899, /* alterfunc_opt_list */
1213 : YYSYMBOL_opt_restrict = 900, /* opt_restrict */
1214 : YYSYMBOL_RemoveFuncStmt = 901, /* RemoveFuncStmt */
1215 : YYSYMBOL_RemoveAggrStmt = 902, /* RemoveAggrStmt */
1216 : YYSYMBOL_RemoveOperStmt = 903, /* RemoveOperStmt */
1217 : YYSYMBOL_oper_argtypes = 904, /* oper_argtypes */
1218 : YYSYMBOL_any_operator = 905, /* any_operator */
1219 : YYSYMBOL_operator_with_argtypes_list = 906, /* operator_with_argtypes_list */
1220 : YYSYMBOL_operator_with_argtypes = 907, /* operator_with_argtypes */
1221 : YYSYMBOL_DoStmt = 908, /* DoStmt */
1222 : YYSYMBOL_dostmt_opt_list = 909, /* dostmt_opt_list */
1223 : YYSYMBOL_dostmt_opt_item = 910, /* dostmt_opt_item */
1224 : YYSYMBOL_CreateCastStmt = 911, /* CreateCastStmt */
1225 : YYSYMBOL_cast_context = 912, /* cast_context */
1226 : YYSYMBOL_DropCastStmt = 913, /* DropCastStmt */
1227 : YYSYMBOL_opt_if_exists = 914, /* opt_if_exists */
1228 : YYSYMBOL_CreateTransformStmt = 915, /* CreateTransformStmt */
1229 : YYSYMBOL_transform_element_list = 916, /* transform_element_list */
1230 : YYSYMBOL_DropTransformStmt = 917, /* DropTransformStmt */
1231 : YYSYMBOL_ReindexStmt = 918, /* ReindexStmt */
1232 : YYSYMBOL_reindex_target_relation = 919, /* reindex_target_relation */
1233 : YYSYMBOL_reindex_target_all = 920, /* reindex_target_all */
1234 : YYSYMBOL_opt_reindex_option_list = 921, /* opt_reindex_option_list */
1235 : YYSYMBOL_AlterTblSpcStmt = 922, /* AlterTblSpcStmt */
1236 : YYSYMBOL_RenameStmt = 923, /* RenameStmt */
1237 : YYSYMBOL_opt_column = 924, /* opt_column */
1238 : YYSYMBOL_opt_set_data = 925, /* opt_set_data */
1239 : YYSYMBOL_AlterObjectDependsStmt = 926, /* AlterObjectDependsStmt */
1240 : YYSYMBOL_opt_no = 927, /* opt_no */
1241 : YYSYMBOL_AlterObjectSchemaStmt = 928, /* AlterObjectSchemaStmt */
1242 : YYSYMBOL_AlterOperatorStmt = 929, /* AlterOperatorStmt */
1243 : YYSYMBOL_operator_def_list = 930, /* operator_def_list */
1244 : YYSYMBOL_operator_def_elem = 931, /* operator_def_elem */
1245 : YYSYMBOL_operator_def_arg = 932, /* operator_def_arg */
1246 : YYSYMBOL_AlterTypeStmt = 933, /* AlterTypeStmt */
1247 : YYSYMBOL_AlterOwnerStmt = 934, /* AlterOwnerStmt */
1248 : YYSYMBOL_CreatePublicationStmt = 935, /* CreatePublicationStmt */
1249 : YYSYMBOL_PublicationObjSpec = 936, /* PublicationObjSpec */
1250 : YYSYMBOL_pub_obj_list = 937, /* pub_obj_list */
1251 : YYSYMBOL_AlterPublicationStmt = 938, /* AlterPublicationStmt */
1252 : YYSYMBOL_CreateSubscriptionStmt = 939, /* CreateSubscriptionStmt */
1253 : YYSYMBOL_AlterSubscriptionStmt = 940, /* AlterSubscriptionStmt */
1254 : YYSYMBOL_DropSubscriptionStmt = 941, /* DropSubscriptionStmt */
1255 : YYSYMBOL_RuleStmt = 942, /* RuleStmt */
1256 : YYSYMBOL_RuleActionList = 943, /* RuleActionList */
1257 : YYSYMBOL_RuleActionMulti = 944, /* RuleActionMulti */
1258 : YYSYMBOL_RuleActionStmt = 945, /* RuleActionStmt */
1259 : YYSYMBOL_RuleActionStmtOrEmpty = 946, /* RuleActionStmtOrEmpty */
1260 : YYSYMBOL_event = 947, /* event */
1261 : YYSYMBOL_opt_instead = 948, /* opt_instead */
1262 : YYSYMBOL_NotifyStmt = 949, /* NotifyStmt */
1263 : YYSYMBOL_notify_payload = 950, /* notify_payload */
1264 : YYSYMBOL_ListenStmt = 951, /* ListenStmt */
1265 : YYSYMBOL_UnlistenStmt = 952, /* UnlistenStmt */
1266 : YYSYMBOL_TransactionStmt = 953, /* TransactionStmt */
1267 : YYSYMBOL_TransactionStmtLegacy = 954, /* TransactionStmtLegacy */
1268 : YYSYMBOL_opt_transaction = 955, /* opt_transaction */
1269 : YYSYMBOL_transaction_mode_item = 956, /* transaction_mode_item */
1270 : YYSYMBOL_transaction_mode_list = 957, /* transaction_mode_list */
1271 : YYSYMBOL_transaction_mode_list_or_empty = 958, /* transaction_mode_list_or_empty */
1272 : YYSYMBOL_opt_transaction_chain = 959, /* opt_transaction_chain */
1273 : YYSYMBOL_ViewStmt = 960, /* ViewStmt */
1274 : YYSYMBOL_opt_check_option = 961, /* opt_check_option */
1275 : YYSYMBOL_LoadStmt = 962, /* LoadStmt */
1276 : YYSYMBOL_CreatedbStmt = 963, /* CreatedbStmt */
1277 : YYSYMBOL_createdb_opt_list = 964, /* createdb_opt_list */
1278 : YYSYMBOL_createdb_opt_items = 965, /* createdb_opt_items */
1279 : YYSYMBOL_createdb_opt_item = 966, /* createdb_opt_item */
1280 : YYSYMBOL_createdb_opt_name = 967, /* createdb_opt_name */
1281 : YYSYMBOL_opt_equal = 968, /* opt_equal */
1282 : YYSYMBOL_AlterDatabaseStmt = 969, /* AlterDatabaseStmt */
1283 : YYSYMBOL_AlterDatabaseSetStmt = 970, /* AlterDatabaseSetStmt */
1284 : YYSYMBOL_DropdbStmt = 971, /* DropdbStmt */
1285 : YYSYMBOL_drop_option_list = 972, /* drop_option_list */
1286 : YYSYMBOL_drop_option = 973, /* drop_option */
1287 : YYSYMBOL_AlterCollationStmt = 974, /* AlterCollationStmt */
1288 : YYSYMBOL_AlterSystemStmt = 975, /* AlterSystemStmt */
1289 : YYSYMBOL_CreateDomainStmt = 976, /* CreateDomainStmt */
1290 : YYSYMBOL_AlterDomainStmt = 977, /* AlterDomainStmt */
1291 : YYSYMBOL_opt_as = 978, /* opt_as */
1292 : YYSYMBOL_AlterTSDictionaryStmt = 979, /* AlterTSDictionaryStmt */
1293 : YYSYMBOL_AlterTSConfigurationStmt = 980, /* AlterTSConfigurationStmt */
1294 : YYSYMBOL_any_with = 981, /* any_with */
1295 : YYSYMBOL_CreateConversionStmt = 982, /* CreateConversionStmt */
1296 : YYSYMBOL_ClusterStmt = 983, /* ClusterStmt */
1297 : YYSYMBOL_cluster_index_specification = 984, /* cluster_index_specification */
1298 : YYSYMBOL_VacuumStmt = 985, /* VacuumStmt */
1299 : YYSYMBOL_AnalyzeStmt = 986, /* AnalyzeStmt */
1300 : YYSYMBOL_utility_option_list = 987, /* utility_option_list */
1301 : YYSYMBOL_analyze_keyword = 988, /* analyze_keyword */
1302 : YYSYMBOL_utility_option_elem = 989, /* utility_option_elem */
1303 : YYSYMBOL_utility_option_name = 990, /* utility_option_name */
1304 : YYSYMBOL_utility_option_arg = 991, /* utility_option_arg */
1305 : YYSYMBOL_opt_analyze = 992, /* opt_analyze */
1306 : YYSYMBOL_opt_verbose = 993, /* opt_verbose */
1307 : YYSYMBOL_opt_full = 994, /* opt_full */
1308 : YYSYMBOL_opt_freeze = 995, /* opt_freeze */
1309 : YYSYMBOL_opt_name_list = 996, /* opt_name_list */
1310 : YYSYMBOL_vacuum_relation = 997, /* vacuum_relation */
1311 : YYSYMBOL_vacuum_relation_list = 998, /* vacuum_relation_list */
1312 : YYSYMBOL_opt_vacuum_relation_list = 999, /* opt_vacuum_relation_list */
1313 : YYSYMBOL_ExplainStmt = 1000, /* ExplainStmt */
1314 : YYSYMBOL_ExplainableStmt = 1001, /* ExplainableStmt */
1315 : YYSYMBOL_PrepareStmt = 1002, /* PrepareStmt */
1316 : YYSYMBOL_prep_type_clause = 1003, /* prep_type_clause */
1317 : YYSYMBOL_PreparableStmt = 1004, /* PreparableStmt */
1318 : YYSYMBOL_ExecuteStmt = 1005, /* ExecuteStmt */
1319 : YYSYMBOL_execute_param_clause = 1006, /* execute_param_clause */
1320 : YYSYMBOL_DeallocateStmt = 1007, /* DeallocateStmt */
1321 : YYSYMBOL_InsertStmt = 1008, /* InsertStmt */
1322 : YYSYMBOL_insert_target = 1009, /* insert_target */
1323 : YYSYMBOL_insert_rest = 1010, /* insert_rest */
1324 : YYSYMBOL_override_kind = 1011, /* override_kind */
1325 : YYSYMBOL_insert_column_list = 1012, /* insert_column_list */
1326 : YYSYMBOL_insert_column_item = 1013, /* insert_column_item */
1327 : YYSYMBOL_opt_on_conflict = 1014, /* opt_on_conflict */
1328 : YYSYMBOL_opt_conf_expr = 1015, /* opt_conf_expr */
1329 : YYSYMBOL_returning_clause = 1016, /* returning_clause */
1330 : YYSYMBOL_returning_with_clause = 1017, /* returning_with_clause */
1331 : YYSYMBOL_returning_options = 1018, /* returning_options */
1332 : YYSYMBOL_returning_option = 1019, /* returning_option */
1333 : YYSYMBOL_returning_option_kind = 1020, /* returning_option_kind */
1334 : YYSYMBOL_DeleteStmt = 1021, /* DeleteStmt */
1335 : YYSYMBOL_using_clause = 1022, /* using_clause */
1336 : YYSYMBOL_LockStmt = 1023, /* LockStmt */
1337 : YYSYMBOL_opt_lock = 1024, /* opt_lock */
1338 : YYSYMBOL_lock_type = 1025, /* lock_type */
1339 : YYSYMBOL_opt_nowait = 1026, /* opt_nowait */
1340 : YYSYMBOL_opt_nowait_or_skip = 1027, /* opt_nowait_or_skip */
1341 : YYSYMBOL_UpdateStmt = 1028, /* UpdateStmt */
1342 : YYSYMBOL_set_clause_list = 1029, /* set_clause_list */
1343 : YYSYMBOL_set_clause = 1030, /* set_clause */
1344 : YYSYMBOL_set_target = 1031, /* set_target */
1345 : YYSYMBOL_set_target_list = 1032, /* set_target_list */
1346 : YYSYMBOL_MergeStmt = 1033, /* MergeStmt */
1347 : YYSYMBOL_merge_when_list = 1034, /* merge_when_list */
1348 : YYSYMBOL_merge_when_clause = 1035, /* merge_when_clause */
1349 : YYSYMBOL_merge_when_tgt_matched = 1036, /* merge_when_tgt_matched */
1350 : YYSYMBOL_merge_when_tgt_not_matched = 1037, /* merge_when_tgt_not_matched */
1351 : YYSYMBOL_opt_merge_when_condition = 1038, /* opt_merge_when_condition */
1352 : YYSYMBOL_merge_update = 1039, /* merge_update */
1353 : YYSYMBOL_merge_delete = 1040, /* merge_delete */
1354 : YYSYMBOL_merge_insert = 1041, /* merge_insert */
1355 : YYSYMBOL_merge_values_clause = 1042, /* merge_values_clause */
1356 : YYSYMBOL_DeclareCursorStmt = 1043, /* DeclareCursorStmt */
1357 : YYSYMBOL_cursor_name = 1044, /* cursor_name */
1358 : YYSYMBOL_cursor_options = 1045, /* cursor_options */
1359 : YYSYMBOL_opt_hold = 1046, /* opt_hold */
1360 : YYSYMBOL_SelectStmt = 1047, /* SelectStmt */
1361 : YYSYMBOL_select_with_parens = 1048, /* select_with_parens */
1362 : YYSYMBOL_select_no_parens = 1049, /* select_no_parens */
1363 : YYSYMBOL_select_clause = 1050, /* select_clause */
1364 : YYSYMBOL_simple_select = 1051, /* simple_select */
1365 : YYSYMBOL_with_clause = 1052, /* with_clause */
1366 : YYSYMBOL_cte_list = 1053, /* cte_list */
1367 : YYSYMBOL_common_table_expr = 1054, /* common_table_expr */
1368 : YYSYMBOL_opt_materialized = 1055, /* opt_materialized */
1369 : YYSYMBOL_opt_search_clause = 1056, /* opt_search_clause */
1370 : YYSYMBOL_opt_cycle_clause = 1057, /* opt_cycle_clause */
1371 : YYSYMBOL_opt_with_clause = 1058, /* opt_with_clause */
1372 : YYSYMBOL_into_clause = 1059, /* into_clause */
1373 : YYSYMBOL_OptTempTableName = 1060, /* OptTempTableName */
1374 : YYSYMBOL_opt_table = 1061, /* opt_table */
1375 : YYSYMBOL_set_quantifier = 1062, /* set_quantifier */
1376 : YYSYMBOL_distinct_clause = 1063, /* distinct_clause */
1377 : YYSYMBOL_opt_all_clause = 1064, /* opt_all_clause */
1378 : YYSYMBOL_opt_distinct_clause = 1065, /* opt_distinct_clause */
1379 : YYSYMBOL_opt_sort_clause = 1066, /* opt_sort_clause */
1380 : YYSYMBOL_sort_clause = 1067, /* sort_clause */
1381 : YYSYMBOL_sortby_list = 1068, /* sortby_list */
1382 : YYSYMBOL_sortby = 1069, /* sortby */
1383 : YYSYMBOL_select_limit = 1070, /* select_limit */
1384 : YYSYMBOL_opt_select_limit = 1071, /* opt_select_limit */
1385 : YYSYMBOL_limit_clause = 1072, /* limit_clause */
1386 : YYSYMBOL_offset_clause = 1073, /* offset_clause */
1387 : YYSYMBOL_select_limit_value = 1074, /* select_limit_value */
1388 : YYSYMBOL_select_offset_value = 1075, /* select_offset_value */
1389 : YYSYMBOL_select_fetch_first_value = 1076, /* select_fetch_first_value */
1390 : YYSYMBOL_I_or_F_const = 1077, /* I_or_F_const */
1391 : YYSYMBOL_row_or_rows = 1078, /* row_or_rows */
1392 : YYSYMBOL_first_or_next = 1079, /* first_or_next */
1393 : YYSYMBOL_group_clause = 1080, /* group_clause */
1394 : YYSYMBOL_group_by_list = 1081, /* group_by_list */
1395 : YYSYMBOL_group_by_item = 1082, /* group_by_item */
1396 : YYSYMBOL_empty_grouping_set = 1083, /* empty_grouping_set */
1397 : YYSYMBOL_rollup_clause = 1084, /* rollup_clause */
1398 : YYSYMBOL_cube_clause = 1085, /* cube_clause */
1399 : YYSYMBOL_grouping_sets_clause = 1086, /* grouping_sets_clause */
1400 : YYSYMBOL_having_clause = 1087, /* having_clause */
1401 : YYSYMBOL_for_locking_clause = 1088, /* for_locking_clause */
1402 : YYSYMBOL_opt_for_locking_clause = 1089, /* opt_for_locking_clause */
1403 : YYSYMBOL_for_locking_items = 1090, /* for_locking_items */
1404 : YYSYMBOL_for_locking_item = 1091, /* for_locking_item */
1405 : YYSYMBOL_for_locking_strength = 1092, /* for_locking_strength */
1406 : YYSYMBOL_locked_rels_list = 1093, /* locked_rels_list */
1407 : YYSYMBOL_values_clause = 1094, /* values_clause */
1408 : YYSYMBOL_from_clause = 1095, /* from_clause */
1409 : YYSYMBOL_from_list = 1096, /* from_list */
1410 : YYSYMBOL_table_ref = 1097, /* table_ref */
1411 : YYSYMBOL_joined_table = 1098, /* joined_table */
1412 : YYSYMBOL_alias_clause = 1099, /* alias_clause */
1413 : YYSYMBOL_opt_alias_clause = 1100, /* opt_alias_clause */
1414 : YYSYMBOL_opt_alias_clause_for_join_using = 1101, /* opt_alias_clause_for_join_using */
1415 : YYSYMBOL_func_alias_clause = 1102, /* func_alias_clause */
1416 : YYSYMBOL_join_type = 1103, /* join_type */
1417 : YYSYMBOL_opt_outer = 1104, /* opt_outer */
1418 : YYSYMBOL_join_qual = 1105, /* join_qual */
1419 : YYSYMBOL_relation_expr = 1106, /* relation_expr */
1420 : YYSYMBOL_extended_relation_expr = 1107, /* extended_relation_expr */
1421 : YYSYMBOL_relation_expr_list = 1108, /* relation_expr_list */
1422 : YYSYMBOL_relation_expr_opt_alias = 1109, /* relation_expr_opt_alias */
1423 : YYSYMBOL_tablesample_clause = 1110, /* tablesample_clause */
1424 : YYSYMBOL_opt_repeatable_clause = 1111, /* opt_repeatable_clause */
1425 : YYSYMBOL_func_table = 1112, /* func_table */
1426 : YYSYMBOL_rowsfrom_item = 1113, /* rowsfrom_item */
1427 : YYSYMBOL_rowsfrom_list = 1114, /* rowsfrom_list */
1428 : YYSYMBOL_opt_col_def_list = 1115, /* opt_col_def_list */
1429 : YYSYMBOL_opt_ordinality = 1116, /* opt_ordinality */
1430 : YYSYMBOL_where_clause = 1117, /* where_clause */
1431 : YYSYMBOL_where_or_current_clause = 1118, /* where_or_current_clause */
1432 : YYSYMBOL_OptTableFuncElementList = 1119, /* OptTableFuncElementList */
1433 : YYSYMBOL_TableFuncElementList = 1120, /* TableFuncElementList */
1434 : YYSYMBOL_TableFuncElement = 1121, /* TableFuncElement */
1435 : YYSYMBOL_xmltable = 1122, /* xmltable */
1436 : YYSYMBOL_xmltable_column_list = 1123, /* xmltable_column_list */
1437 : YYSYMBOL_xmltable_column_el = 1124, /* xmltable_column_el */
1438 : YYSYMBOL_xmltable_column_option_list = 1125, /* xmltable_column_option_list */
1439 : YYSYMBOL_xmltable_column_option_el = 1126, /* xmltable_column_option_el */
1440 : YYSYMBOL_xml_namespace_list = 1127, /* xml_namespace_list */
1441 : YYSYMBOL_xml_namespace_el = 1128, /* xml_namespace_el */
1442 : YYSYMBOL_json_table = 1129, /* json_table */
1443 : YYSYMBOL_json_table_path_name_opt = 1130, /* json_table_path_name_opt */
1444 : YYSYMBOL_json_table_column_definition_list = 1131, /* json_table_column_definition_list */
1445 : YYSYMBOL_json_table_column_definition = 1132, /* json_table_column_definition */
1446 : YYSYMBOL_path_opt = 1133, /* path_opt */
1447 : YYSYMBOL_json_table_column_path_clause_opt = 1134, /* json_table_column_path_clause_opt */
1448 : YYSYMBOL_Typename = 1135, /* Typename */
1449 : YYSYMBOL_opt_array_bounds = 1136, /* opt_array_bounds */
1450 : YYSYMBOL_SimpleTypename = 1137, /* SimpleTypename */
1451 : YYSYMBOL_ConstTypename = 1138, /* ConstTypename */
1452 : YYSYMBOL_GenericType = 1139, /* GenericType */
1453 : YYSYMBOL_opt_type_modifiers = 1140, /* opt_type_modifiers */
1454 : YYSYMBOL_Numeric = 1141, /* Numeric */
1455 : YYSYMBOL_opt_float = 1142, /* opt_float */
1456 : YYSYMBOL_Bit = 1143, /* Bit */
1457 : YYSYMBOL_ConstBit = 1144, /* ConstBit */
1458 : YYSYMBOL_BitWithLength = 1145, /* BitWithLength */
1459 : YYSYMBOL_BitWithoutLength = 1146, /* BitWithoutLength */
1460 : YYSYMBOL_Character = 1147, /* Character */
1461 : YYSYMBOL_ConstCharacter = 1148, /* ConstCharacter */
1462 : YYSYMBOL_CharacterWithLength = 1149, /* CharacterWithLength */
1463 : YYSYMBOL_CharacterWithoutLength = 1150, /* CharacterWithoutLength */
1464 : YYSYMBOL_character = 1151, /* character */
1465 : YYSYMBOL_opt_varying = 1152, /* opt_varying */
1466 : YYSYMBOL_ConstDatetime = 1153, /* ConstDatetime */
1467 : YYSYMBOL_ConstInterval = 1154, /* ConstInterval */
1468 : YYSYMBOL_opt_timezone = 1155, /* opt_timezone */
1469 : YYSYMBOL_opt_interval = 1156, /* opt_interval */
1470 : YYSYMBOL_interval_second = 1157, /* interval_second */
1471 : YYSYMBOL_JsonType = 1158, /* JsonType */
1472 : YYSYMBOL_a_expr = 1159, /* a_expr */
1473 : YYSYMBOL_b_expr = 1160, /* b_expr */
1474 : YYSYMBOL_c_expr = 1161, /* c_expr */
1475 : YYSYMBOL_func_application = 1162, /* func_application */
1476 : YYSYMBOL_func_expr = 1163, /* func_expr */
1477 : YYSYMBOL_func_expr_windowless = 1164, /* func_expr_windowless */
1478 : YYSYMBOL_func_expr_common_subexpr = 1165, /* func_expr_common_subexpr */
1479 : YYSYMBOL_xml_root_version = 1166, /* xml_root_version */
1480 : YYSYMBOL_opt_xml_root_standalone = 1167, /* opt_xml_root_standalone */
1481 : YYSYMBOL_xml_attributes = 1168, /* xml_attributes */
1482 : YYSYMBOL_xml_attribute_list = 1169, /* xml_attribute_list */
1483 : YYSYMBOL_xml_attribute_el = 1170, /* xml_attribute_el */
1484 : YYSYMBOL_document_or_content = 1171, /* document_or_content */
1485 : YYSYMBOL_xml_indent_option = 1172, /* xml_indent_option */
1486 : YYSYMBOL_xml_whitespace_option = 1173, /* xml_whitespace_option */
1487 : YYSYMBOL_xmlexists_argument = 1174, /* xmlexists_argument */
1488 : YYSYMBOL_xml_passing_mech = 1175, /* xml_passing_mech */
1489 : YYSYMBOL_within_group_clause = 1176, /* within_group_clause */
1490 : YYSYMBOL_filter_clause = 1177, /* filter_clause */
1491 : YYSYMBOL_window_clause = 1178, /* window_clause */
1492 : YYSYMBOL_window_definition_list = 1179, /* window_definition_list */
1493 : YYSYMBOL_window_definition = 1180, /* window_definition */
1494 : YYSYMBOL_over_clause = 1181, /* over_clause */
1495 : YYSYMBOL_window_specification = 1182, /* window_specification */
1496 : YYSYMBOL_opt_existing_window_name = 1183, /* opt_existing_window_name */
1497 : YYSYMBOL_opt_partition_clause = 1184, /* opt_partition_clause */
1498 : YYSYMBOL_opt_frame_clause = 1185, /* opt_frame_clause */
1499 : YYSYMBOL_frame_extent = 1186, /* frame_extent */
1500 : YYSYMBOL_frame_bound = 1187, /* frame_bound */
1501 : YYSYMBOL_opt_window_exclusion_clause = 1188, /* opt_window_exclusion_clause */
1502 : YYSYMBOL_row = 1189, /* row */
1503 : YYSYMBOL_explicit_row = 1190, /* explicit_row */
1504 : YYSYMBOL_implicit_row = 1191, /* implicit_row */
1505 : YYSYMBOL_sub_type = 1192, /* sub_type */
1506 : YYSYMBOL_all_Op = 1193, /* all_Op */
1507 : YYSYMBOL_MathOp = 1194, /* MathOp */
1508 : YYSYMBOL_qual_Op = 1195, /* qual_Op */
1509 : YYSYMBOL_qual_all_Op = 1196, /* qual_all_Op */
1510 : YYSYMBOL_subquery_Op = 1197, /* subquery_Op */
1511 : YYSYMBOL_expr_list = 1198, /* expr_list */
1512 : YYSYMBOL_func_arg_list = 1199, /* func_arg_list */
1513 : YYSYMBOL_func_arg_expr = 1200, /* func_arg_expr */
1514 : YYSYMBOL_func_arg_list_opt = 1201, /* func_arg_list_opt */
1515 : YYSYMBOL_type_list = 1202, /* type_list */
1516 : YYSYMBOL_array_expr = 1203, /* array_expr */
1517 : YYSYMBOL_array_expr_list = 1204, /* array_expr_list */
1518 : YYSYMBOL_extract_list = 1205, /* extract_list */
1519 : YYSYMBOL_extract_arg = 1206, /* extract_arg */
1520 : YYSYMBOL_unicode_normal_form = 1207, /* unicode_normal_form */
1521 : YYSYMBOL_overlay_list = 1208, /* overlay_list */
1522 : YYSYMBOL_position_list = 1209, /* position_list */
1523 : YYSYMBOL_substr_list = 1210, /* substr_list */
1524 : YYSYMBOL_trim_list = 1211, /* trim_list */
1525 : YYSYMBOL_in_expr = 1212, /* in_expr */
1526 : YYSYMBOL_case_expr = 1213, /* case_expr */
1527 : YYSYMBOL_when_clause_list = 1214, /* when_clause_list */
1528 : YYSYMBOL_when_clause = 1215, /* when_clause */
1529 : YYSYMBOL_case_default = 1216, /* case_default */
1530 : YYSYMBOL_case_arg = 1217, /* case_arg */
1531 : YYSYMBOL_columnref = 1218, /* columnref */
1532 : YYSYMBOL_indirection_el = 1219, /* indirection_el */
1533 : YYSYMBOL_opt_slice_bound = 1220, /* opt_slice_bound */
1534 : YYSYMBOL_indirection = 1221, /* indirection */
1535 : YYSYMBOL_opt_indirection = 1222, /* opt_indirection */
1536 : YYSYMBOL_opt_asymmetric = 1223, /* opt_asymmetric */
1537 : YYSYMBOL_json_passing_clause_opt = 1224, /* json_passing_clause_opt */
1538 : YYSYMBOL_json_arguments = 1225, /* json_arguments */
1539 : YYSYMBOL_json_argument = 1226, /* json_argument */
1540 : YYSYMBOL_json_wrapper_behavior = 1227, /* json_wrapper_behavior */
1541 : YYSYMBOL_json_behavior = 1228, /* json_behavior */
1542 : YYSYMBOL_json_behavior_type = 1229, /* json_behavior_type */
1543 : YYSYMBOL_json_behavior_clause_opt = 1230, /* json_behavior_clause_opt */
1544 : YYSYMBOL_json_on_error_clause_opt = 1231, /* json_on_error_clause_opt */
1545 : YYSYMBOL_json_value_expr = 1232, /* json_value_expr */
1546 : YYSYMBOL_json_format_clause = 1233, /* json_format_clause */
1547 : YYSYMBOL_json_format_clause_opt = 1234, /* json_format_clause_opt */
1548 : YYSYMBOL_json_quotes_clause_opt = 1235, /* json_quotes_clause_opt */
1549 : YYSYMBOL_json_returning_clause_opt = 1236, /* json_returning_clause_opt */
1550 : YYSYMBOL_json_predicate_type_constraint = 1237, /* json_predicate_type_constraint */
1551 : YYSYMBOL_json_key_uniqueness_constraint_opt = 1238, /* json_key_uniqueness_constraint_opt */
1552 : YYSYMBOL_json_name_and_value_list = 1239, /* json_name_and_value_list */
1553 : YYSYMBOL_json_name_and_value = 1240, /* json_name_and_value */
1554 : YYSYMBOL_json_object_constructor_null_clause_opt = 1241, /* json_object_constructor_null_clause_opt */
1555 : YYSYMBOL_json_array_constructor_null_clause_opt = 1242, /* json_array_constructor_null_clause_opt */
1556 : YYSYMBOL_json_value_expr_list = 1243, /* json_value_expr_list */
1557 : YYSYMBOL_json_aggregate_func = 1244, /* json_aggregate_func */
1558 : YYSYMBOL_json_array_aggregate_order_by_clause_opt = 1245, /* json_array_aggregate_order_by_clause_opt */
1559 : YYSYMBOL_opt_target_list = 1246, /* opt_target_list */
1560 : YYSYMBOL_target_list = 1247, /* target_list */
1561 : YYSYMBOL_target_el = 1248, /* target_el */
1562 : YYSYMBOL_qualified_name_list = 1249, /* qualified_name_list */
1563 : YYSYMBOL_qualified_name = 1250, /* qualified_name */
1564 : YYSYMBOL_name_list = 1251, /* name_list */
1565 : YYSYMBOL_name = 1252, /* name */
1566 : YYSYMBOL_attr_name = 1253, /* attr_name */
1567 : YYSYMBOL_file_name = 1254, /* file_name */
1568 : YYSYMBOL_func_name = 1255, /* func_name */
1569 : YYSYMBOL_AexprConst = 1256, /* AexprConst */
1570 : YYSYMBOL_Iconst = 1257, /* Iconst */
1571 : YYSYMBOL_Sconst = 1258, /* Sconst */
1572 : YYSYMBOL_SignedIconst = 1259, /* SignedIconst */
1573 : YYSYMBOL_RoleId = 1260, /* RoleId */
1574 : YYSYMBOL_RoleSpec = 1261, /* RoleSpec */
1575 : YYSYMBOL_role_list = 1262, /* role_list */
1576 : YYSYMBOL_PLpgSQL_Expr = 1263, /* PLpgSQL_Expr */
1577 : YYSYMBOL_PLAssignStmt = 1264, /* PLAssignStmt */
1578 : YYSYMBOL_plassign_target = 1265, /* plassign_target */
1579 : YYSYMBOL_plassign_equals = 1266, /* plassign_equals */
1580 : YYSYMBOL_ColId = 1267, /* ColId */
1581 : YYSYMBOL_type_function_name = 1268, /* type_function_name */
1582 : YYSYMBOL_NonReservedWord = 1269, /* NonReservedWord */
1583 : YYSYMBOL_ColLabel = 1270, /* ColLabel */
1584 : YYSYMBOL_BareColLabel = 1271, /* BareColLabel */
1585 : YYSYMBOL_unreserved_keyword = 1272, /* unreserved_keyword */
1586 : YYSYMBOL_col_name_keyword = 1273, /* col_name_keyword */
1587 : YYSYMBOL_type_func_name_keyword = 1274, /* type_func_name_keyword */
1588 : YYSYMBOL_reserved_keyword = 1275, /* reserved_keyword */
1589 : YYSYMBOL_bare_label_keyword = 1276 /* bare_label_keyword */
1590 : };
1591 : typedef enum yysymbol_kind_t yysymbol_kind_t;
1592 :
1593 :
1594 :
1595 :
1596 : #ifdef short
1597 : # undef short
1598 : #endif
1599 :
1600 : /* On compilers that do not define __PTRDIFF_MAX__ etc., make sure
1601 : <limits.h> and (if available) <stdint.h> are included
1602 : so that the code can choose integer types of a good width. */
1603 :
1604 : #ifndef __PTRDIFF_MAX__
1605 : # include <limits.h> /* INFRINGES ON USER NAME SPACE */
1606 : # if defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1607 : # include <stdint.h> /* INFRINGES ON USER NAME SPACE */
1608 : # define YY_STDINT_H
1609 : # endif
1610 : #endif
1611 :
1612 : /* Narrow types that promote to a signed type and that can represent a
1613 : signed or unsigned integer of at least N bits. In tables they can
1614 : save space and decrease cache pressure. Promoting to a signed type
1615 : helps avoid bugs in integer arithmetic. */
1616 :
1617 : #ifdef __INT_LEAST8_MAX__
1618 : typedef __INT_LEAST8_TYPE__ yytype_int8;
1619 : #elif defined YY_STDINT_H
1620 : typedef int_least8_t yytype_int8;
1621 : #else
1622 : typedef signed char yytype_int8;
1623 : #endif
1624 :
1625 : #ifdef __INT_LEAST16_MAX__
1626 : typedef __INT_LEAST16_TYPE__ yytype_int16;
1627 : #elif defined YY_STDINT_H
1628 : typedef int_least16_t yytype_int16;
1629 : #else
1630 : typedef short yytype_int16;
1631 : #endif
1632 :
1633 : /* Work around bug in HP-UX 11.23, which defines these macros
1634 : incorrectly for preprocessor constants. This workaround can likely
1635 : be removed in 2023, as HPE has promised support for HP-UX 11.23
1636 : (aka HP-UX 11i v2) only through the end of 2022; see Table 2 of
1637 : <https://h20195.www2.hpe.com/V2/getpdf.aspx/4AA4-7673ENW.pdf>. */
1638 : #ifdef __hpux
1639 : # undef UINT_LEAST8_MAX
1640 : # undef UINT_LEAST16_MAX
1641 : # define UINT_LEAST8_MAX 255
1642 : # define UINT_LEAST16_MAX 65535
1643 : #endif
1644 :
1645 : #if defined __UINT_LEAST8_MAX__ && __UINT_LEAST8_MAX__ <= __INT_MAX__
1646 : typedef __UINT_LEAST8_TYPE__ yytype_uint8;
1647 : #elif (!defined __UINT_LEAST8_MAX__ && defined YY_STDINT_H \
1648 : && UINT_LEAST8_MAX <= INT_MAX)
1649 : typedef uint_least8_t yytype_uint8;
1650 : #elif !defined __UINT_LEAST8_MAX__ && UCHAR_MAX <= INT_MAX
1651 : typedef unsigned char yytype_uint8;
1652 : #else
1653 : typedef short yytype_uint8;
1654 : #endif
1655 :
1656 : #if defined __UINT_LEAST16_MAX__ && __UINT_LEAST16_MAX__ <= __INT_MAX__
1657 : typedef __UINT_LEAST16_TYPE__ yytype_uint16;
1658 : #elif (!defined __UINT_LEAST16_MAX__ && defined YY_STDINT_H \
1659 : && UINT_LEAST16_MAX <= INT_MAX)
1660 : typedef uint_least16_t yytype_uint16;
1661 : #elif !defined __UINT_LEAST16_MAX__ && USHRT_MAX <= INT_MAX
1662 : typedef unsigned short yytype_uint16;
1663 : #else
1664 : typedef int yytype_uint16;
1665 : #endif
1666 :
1667 : #ifndef YYPTRDIFF_T
1668 : # if defined __PTRDIFF_TYPE__ && defined __PTRDIFF_MAX__
1669 : # define YYPTRDIFF_T __PTRDIFF_TYPE__
1670 : # define YYPTRDIFF_MAXIMUM __PTRDIFF_MAX__
1671 : # elif defined PTRDIFF_MAX
1672 : # ifndef ptrdiff_t
1673 : # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1674 : # endif
1675 : # define YYPTRDIFF_T ptrdiff_t
1676 : # define YYPTRDIFF_MAXIMUM PTRDIFF_MAX
1677 : # else
1678 : # define YYPTRDIFF_T long
1679 : # define YYPTRDIFF_MAXIMUM LONG_MAX
1680 : # endif
1681 : #endif
1682 :
1683 : #ifndef YYSIZE_T
1684 : # ifdef __SIZE_TYPE__
1685 : # define YYSIZE_T __SIZE_TYPE__
1686 : # elif defined size_t
1687 : # define YYSIZE_T size_t
1688 : # elif defined __STDC_VERSION__ && 199901 <= __STDC_VERSION__
1689 : # include <stddef.h> /* INFRINGES ON USER NAME SPACE */
1690 : # define YYSIZE_T size_t
1691 : # else
1692 : # define YYSIZE_T unsigned
1693 : # endif
1694 : #endif
1695 :
1696 : #define YYSIZE_MAXIMUM \
1697 : YY_CAST (YYPTRDIFF_T, \
1698 : (YYPTRDIFF_MAXIMUM < YY_CAST (YYSIZE_T, -1) \
1699 : ? YYPTRDIFF_MAXIMUM \
1700 : : YY_CAST (YYSIZE_T, -1)))
1701 :
1702 : #define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
1703 :
1704 :
1705 : /* Stored state numbers (used for stacks). */
1706 : typedef yytype_int16 yy_state_t;
1707 :
1708 : /* State numbers in computations. */
1709 : typedef int yy_state_fast_t;
1710 :
1711 : #ifndef YY_
1712 : # if defined YYENABLE_NLS && YYENABLE_NLS
1713 : # if ENABLE_NLS
1714 : # include <libintl.h> /* INFRINGES ON USER NAME SPACE */
1715 : # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1716 : # endif
1717 : # endif
1718 : # ifndef YY_
1719 : # define YY_(Msgid) Msgid
1720 : # endif
1721 : #endif
1722 :
1723 :
1724 : #ifndef YY_ATTRIBUTE_PURE
1725 : # if defined __GNUC__ && 2 < __GNUC__ + (96 <= __GNUC_MINOR__)
1726 : # define YY_ATTRIBUTE_PURE __attribute__ ((__pure__))
1727 : # else
1728 : # define YY_ATTRIBUTE_PURE
1729 : # endif
1730 : #endif
1731 :
1732 : #ifndef YY_ATTRIBUTE_UNUSED
1733 : # if defined __GNUC__ && 2 < __GNUC__ + (7 <= __GNUC_MINOR__)
1734 : # define YY_ATTRIBUTE_UNUSED __attribute__ ((__unused__))
1735 : # else
1736 : # define YY_ATTRIBUTE_UNUSED
1737 : # endif
1738 : #endif
1739 :
1740 : /* Suppress unused-variable warnings by "using" E. */
1741 : #if ! defined lint || defined __GNUC__
1742 : # define YY_USE(E) ((void) (E))
1743 : #else
1744 : # define YY_USE(E) /* empty */
1745 : #endif
1746 :
1747 : /* Suppress an incorrect diagnostic about yylval being uninitialized. */
1748 : #if defined __GNUC__ && ! defined __ICC && 406 <= __GNUC__ * 100 + __GNUC_MINOR__
1749 : # if __GNUC__ * 100 + __GNUC_MINOR__ < 407
1750 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1751 : _Pragma ("GCC diagnostic push") \
1752 : _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")
1753 : # else
1754 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1755 : _Pragma ("GCC diagnostic push") \
1756 : _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"") \
1757 : _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1758 : # endif
1759 : # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1760 : _Pragma ("GCC diagnostic pop")
1761 : #else
1762 : # define YY_INITIAL_VALUE(Value) Value
1763 : #endif
1764 : #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1765 : # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1766 : # define YY_IGNORE_MAYBE_UNINITIALIZED_END
1767 : #endif
1768 : #ifndef YY_INITIAL_VALUE
1769 : # define YY_INITIAL_VALUE(Value) /* Nothing. */
1770 : #endif
1771 :
1772 : #if defined __cplusplus && defined __GNUC__ && ! defined __ICC && 6 <= __GNUC__
1773 : # define YY_IGNORE_USELESS_CAST_BEGIN \
1774 : _Pragma ("GCC diagnostic push") \
1775 : _Pragma ("GCC diagnostic ignored \"-Wuseless-cast\"")
1776 : # define YY_IGNORE_USELESS_CAST_END \
1777 : _Pragma ("GCC diagnostic pop")
1778 : #endif
1779 : #ifndef YY_IGNORE_USELESS_CAST_BEGIN
1780 : # define YY_IGNORE_USELESS_CAST_BEGIN
1781 : # define YY_IGNORE_USELESS_CAST_END
1782 : #endif
1783 :
1784 :
1785 : #define YY_ASSERT(E) ((void) (0 && (E)))
1786 :
1787 : #if !defined yyoverflow
1788 :
1789 : /* The parser invokes alloca or malloc; define the necessary symbols. */
1790 :
1791 : # ifdef YYSTACK_USE_ALLOCA
1792 : # if YYSTACK_USE_ALLOCA
1793 : # ifdef __GNUC__
1794 : # define YYSTACK_ALLOC __builtin_alloca
1795 : # elif defined __BUILTIN_VA_ARG_INCR
1796 : # include <alloca.h> /* INFRINGES ON USER NAME SPACE */
1797 : # elif defined _AIX
1798 : # define YYSTACK_ALLOC __alloca
1799 : # elif defined _MSC_VER
1800 : # include <malloc.h> /* INFRINGES ON USER NAME SPACE */
1801 : # define alloca _alloca
1802 : # else
1803 : # define YYSTACK_ALLOC alloca
1804 : # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1805 : # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1806 : /* Use EXIT_SUCCESS as a witness for stdlib.h. */
1807 : # ifndef EXIT_SUCCESS
1808 : # define EXIT_SUCCESS 0
1809 : # endif
1810 : # endif
1811 : # endif
1812 : # endif
1813 : # endif
1814 :
1815 : # ifdef YYSTACK_ALLOC
1816 : /* Pacify GCC's 'empty if-body' warning. */
1817 : # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0)
1818 : # ifndef YYSTACK_ALLOC_MAXIMUM
1819 : /* The OS might guarantee only one guard page at the bottom of the stack,
1820 : and a page size can be as small as 4096 bytes. So we cannot safely
1821 : invoke alloca (N) if N exceeds 4096. Use a slightly smaller number
1822 : to allow for a few compiler-allocated temporary stack slots. */
1823 : # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */
1824 : # endif
1825 : # else
1826 : # define YYSTACK_ALLOC YYMALLOC
1827 : # define YYSTACK_FREE YYFREE
1828 : # ifndef YYSTACK_ALLOC_MAXIMUM
1829 : # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1830 : # endif
1831 : # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1832 : && ! ((defined YYMALLOC || defined malloc) \
1833 : && (defined YYFREE || defined free)))
1834 : # include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
1835 : # ifndef EXIT_SUCCESS
1836 : # define EXIT_SUCCESS 0
1837 : # endif
1838 : # endif
1839 : # ifndef YYMALLOC
1840 : # define YYMALLOC malloc
1841 : # if ! defined malloc && ! defined EXIT_SUCCESS
1842 : void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
1843 : # endif
1844 : # endif
1845 : # ifndef YYFREE
1846 : # define YYFREE free
1847 : # if ! defined free && ! defined EXIT_SUCCESS
1848 : void free (void *); /* INFRINGES ON USER NAME SPACE */
1849 : # endif
1850 : # endif
1851 : # endif
1852 : #endif /* !defined yyoverflow */
1853 :
1854 : #if (! defined yyoverflow \
1855 : && (! defined __cplusplus \
1856 : || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1857 : && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1858 :
1859 : /* A type that is properly aligned for any stack member. */
1860 : union yyalloc
1861 : {
1862 : yy_state_t yyss_alloc;
1863 : YYSTYPE yyvs_alloc;
1864 : YYLTYPE yyls_alloc;
1865 : };
1866 :
1867 : /* The size of the maximum gap between one aligned stack and the next. */
1868 : # define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
1869 :
1870 : /* The size of an array large to enough to hold all stacks, each with
1871 : N elements. */
1872 : # define YYSTACK_BYTES(N) \
1873 : ((N) * (YYSIZEOF (yy_state_t) + YYSIZEOF (YYSTYPE) \
1874 : + YYSIZEOF (YYLTYPE)) \
1875 : + 2 * YYSTACK_GAP_MAXIMUM)
1876 :
1877 : # define YYCOPY_NEEDED 1
1878 :
1879 : /* Relocate STACK from its old location to the new one. The
1880 : local variables YYSIZE and YYSTACKSIZE give the old and new number of
1881 : elements in the stack, and YYPTR gives the new location of the
1882 : stack. Advance YYPTR to a properly aligned location for the next
1883 : stack. */
1884 : # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1885 : do \
1886 : { \
1887 : YYPTRDIFF_T yynewbytes; \
1888 : YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1889 : Stack = &yyptr->Stack_alloc; \
1890 : yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
1891 : yyptr += yynewbytes / YYSIZEOF (*yyptr); \
1892 : } \
1893 : while (0)
1894 :
1895 : #endif
1896 :
1897 : #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1898 : /* Copy COUNT objects from SRC to DST. The source and destination do
1899 : not overlap. */
1900 : # ifndef YYCOPY
1901 : # if defined __GNUC__ && 1 < __GNUC__
1902 : # define YYCOPY(Dst, Src, Count) \
1903 : __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
1904 : # else
1905 : # define YYCOPY(Dst, Src, Count) \
1906 : do \
1907 : { \
1908 : YYPTRDIFF_T yyi; \
1909 : for (yyi = 0; yyi < (Count); yyi++) \
1910 : (Dst)[yyi] = (Src)[yyi]; \
1911 : } \
1912 : while (0)
1913 : # endif
1914 : # endif
1915 : #endif /* !YYCOPY_NEEDED */
1916 :
1917 : /* YYFINAL -- State number of the termination state. */
1918 : #define YYFINAL 931
1919 : /* YYLAST -- Last index in YYTABLE. */
1920 : #define YYLAST 122812
1921 :
1922 : /* YYNTOKENS -- Number of terminals. */
1923 : #define YYNTOKENS 542
1924 : /* YYNNTS -- Number of nonterminals. */
1925 : #define YYNNTS 735
1926 : /* YYNRULES -- Number of rules. */
1927 : #define YYNRULES 3435
1928 : /* YYNSTATES -- Number of states. */
1929 : #define YYNSTATES 6500
1930 :
1931 : /* YYMAXUTOK -- Last valid token kind. */
1932 : #define YYMAXUTOK 779
1933 :
1934 :
1935 : /* YYTRANSLATE(TOKEN-NUM) -- Symbol number corresponding to TOKEN-NUM
1936 : as returned by yylex, with out-of-bounds checking. */
1937 : #define YYTRANSLATE(YYX) \
1938 : (0 <= (YYX) && (YYX) <= YYMAXUTOK \
1939 : ? YY_CAST (yysymbol_kind_t, yytranslate[YYX]) \
1940 : : YYSYMBOL_YYUNDEF)
1941 :
1942 : /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM
1943 : as returned by yylex. */
1944 : static const yytype_int16 yytranslate[] =
1945 : {
1946 : 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1947 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1948 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1949 : 2, 2, 2, 2, 2, 2, 2, 531, 2, 2,
1950 : 536, 537, 529, 527, 540, 528, 538, 530, 2, 2,
1951 : 2, 2, 2, 2, 2, 2, 2, 2, 541, 539,
1952 : 524, 526, 525, 2, 2, 2, 2, 2, 2, 2,
1953 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1954 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1955 : 2, 534, 2, 535, 532, 2, 2, 2, 2, 2,
1956 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1957 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1958 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1959 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1960 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1961 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1962 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1963 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1964 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1965 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1966 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1967 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1968 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1969 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1970 : 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1971 : 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1972 : 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1973 : 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1974 : 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1975 : 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1976 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1977 : 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1978 : 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1979 : 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1980 : 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1981 : 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1982 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
1983 : 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
1984 : 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
1985 : 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
1986 : 145, 146, 147, 148, 149, 150, 151, 152, 153, 154,
1987 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
1988 : 165, 166, 167, 168, 169, 170, 171, 172, 173, 174,
1989 : 175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
1990 : 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
1991 : 195, 196, 197, 198, 199, 200, 201, 202, 203, 204,
1992 : 205, 206, 207, 208, 209, 210, 211, 212, 213, 214,
1993 : 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
1994 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
1995 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
1996 : 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
1997 : 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1998 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1999 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
2000 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
2001 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
2002 : 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
2003 : 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
2004 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
2005 : 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
2006 : 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
2007 : 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
2008 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
2009 : 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
2010 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
2011 : 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
2012 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
2013 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
2014 : 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
2015 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
2016 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
2017 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
2018 : 465, 466, 467, 468, 469, 470, 471, 472, 473, 474,
2019 : 475, 476, 477, 478, 479, 480, 481, 482, 483, 484,
2020 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
2021 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
2022 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2023 : 515, 516, 517, 518, 519, 520, 521, 522, 523, 533
2024 : };
2025 :
2026 : #if YYDEBUG
2027 : /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */
2028 : static const yytype_int16 yyrline[] =
2029 : {
2030 : 0, 916, 916, 921, 925, 930, 938, 946, 962, 974,
2031 : 988, 989, 993, 994, 995, 996, 997, 998, 999, 1000,
2032 : 1001, 1002, 1003, 1004, 1005, 1006, 1007, 1008, 1009, 1010,
2033 : 1011, 1012, 1013, 1014, 1015, 1016, 1017, 1018, 1019, 1020,
2034 : 1021, 1022, 1023, 1024, 1025, 1026, 1027, 1028, 1029, 1030,
2035 : 1031, 1032, 1033, 1034, 1035, 1036, 1037, 1038, 1039, 1040,
2036 : 1041, 1042, 1043, 1044, 1045, 1046, 1047, 1048, 1049, 1050,
2037 : 1051, 1052, 1053, 1054, 1055, 1056, 1057, 1058, 1059, 1060,
2038 : 1061, 1062, 1063, 1064, 1065, 1066, 1067, 1068, 1069, 1070,
2039 : 1071, 1072, 1073, 1074, 1075, 1076, 1077, 1078, 1079, 1080,
2040 : 1081, 1082, 1083, 1084, 1085, 1086, 1087, 1088, 1089, 1090,
2041 : 1091, 1092, 1093, 1094, 1095, 1096, 1097, 1098, 1099, 1100,
2042 : 1101, 1102, 1103, 1104, 1105, 1106, 1107, 1108, 1109, 1110,
2043 : 1111, 1112, 1113, 1114, 1115, 1116, 1118, 1125, 1126, 1130,
2044 : 1131, 1135, 1136, 1140, 1141, 1142, 1151, 1167, 1179, 1180,
2045 : 1181, 1190, 1191, 1195, 1196, 1200, 1205, 1209, 1219, 1227,
2046 : 1231, 1235, 1240, 1244, 1292, 1294, 1298, 1302, 1306, 1310,
2047 : 1324, 1343, 1352, 1364, 1365, 1369, 1378, 1387, 1396, 1418,
2048 : 1426, 1434, 1442, 1450, 1458, 1476, 1495, 1507, 1508, 1519,
2049 : 1530, 1541, 1557, 1576, 1581, 1589, 1590, 1591, 1592, 1593,
2050 : 1594, 1608, 1615, 1622, 1632, 1643, 1654, 1658, 1668, 1678,
2051 : 1687, 1699, 1700, 1710, 1724, 1732, 1742, 1755, 1765, 1775,
2052 : 1784, 1796, 1808, 1809, 1813, 1814, 1817, 1819, 1823, 1824,
2053 : 1825, 1826, 1830, 1831, 1832, 1838, 1850, 1854, 1858, 1875,
2054 : 1883, 1884, 1885, 1889, 1890, 1891, 1895, 1896, 1900, 1904,
2055 : 1905, 1914, 1923, 1935, 1944, 1956, 1957, 1962, 1963, 1968,
2056 : 1975, 1982, 1989, 1996, 2007, 2018, 2019, 2023, 2024, 2032,
2057 : 2048, 2055, 2062, 2069, 2076, 2096, 2106, 2116, 2126, 2136,
2058 : 2148, 2160, 2170, 2180, 2190, 2202, 2214, 2224, 2234, 2244,
2059 : 2254, 2264, 2274, 2286, 2298, 2308, 2321, 2322, 2327, 2341,
2060 : 2354, 2370, 2387, 2397, 2407, 2417, 2427, 2437, 2446, 2455,
2061 : 2465, 2474, 2484, 2494, 2510, 2520, 2530, 2540, 2550, 2567,
2062 : 2577, 2587, 2597, 2608, 2622, 2638, 2648, 2657, 2682, 2696,
2063 : 2705, 2716, 2727, 2735, 2744, 2753, 2761, 2769, 2778, 2787,
2064 : 2796, 2804, 2812, 2821, 2829, 2837, 2846, 2855, 2864, 2873,
2065 : 2882, 2891, 2902, 2910, 2919, 2928, 2937, 2946, 2955, 2964,
2066 : 2972, 2980, 2988, 2995, 3006, 3007, 3011, 3020, 3024, 3025,
2067 : 3029, 3037, 3045, 3053, 3064, 3067, 3068, 3072, 3073, 3078,
2068 : 3082, 3086, 3091, 3098, 3100, 3105, 3109, 3113, 3124, 3131,
2069 : 3132, 3136, 3137, 3142, 3197, 3210, 3224, 3236, 3243, 3247,
2070 : 3261, 3274, 3275, 3280, 3290, 3301, 3312, 3339, 3346, 3380,
2071 : 3416, 3440, 3441, 3445, 3446, 3455, 3456, 3457, 3460, 3461,
2072 : 3466, 3467, 3471, 3475, 3479, 3483, 3487, 3491, 3495, 3499,
2073 : 3503, 3507, 3511, 3515, 3519, 3523, 3527, 3536, 3540, 3544,
2074 : 3548, 3552, 3553, 3558, 3562, 3569, 3576, 3577, 3578, 3579,
2075 : 3580, 3581, 3585, 3589, 3597, 3608, 3628, 3648, 3669, 3690,
2076 : 3711, 3745, 3746, 3747, 3748, 3749, 3756, 3763, 3764, 3768,
2077 : 3769, 3773, 3774, 3778, 3782, 3789, 3793, 3800, 3801, 3802,
2078 : 3806, 3807, 3810, 3834, 3853, 3875, 3876, 3880, 3881, 3885,
2079 : 3886, 3890, 3891, 3895, 3896, 3900, 3908, 3909, 3910, 3942,
2080 : 3954, 3962, 3975, 3987, 4001, 4011, 4021, 4046, 4067, 4068,
2081 : 4069, 4073, 4074, 4078, 4079, 4080, 4099, 4107, 4115, 4123,
2082 : 4131, 4139, 4151, 4163, 4164, 4165, 4169, 4170, 4171, 4172,
2083 : 4173, 4174, 4175, 4176, 4177, 4178, 4187, 4195, 4199, 4213,
2084 : 4226, 4245, 4261, 4279, 4295, 4315, 4360, 4368, 4372, 4387,
2085 : 4403, 4404, 4408, 4409, 4413, 4414, 4418, 4419, 4423, 4424,
2086 : 4428, 4429, 4432, 4438, 4439, 4442, 4446, 4454, 4459, 4465,
2087 : 4466, 4470, 4475, 4482, 4483, 4487, 4497, 4507, 4515, 4524,
2088 : 4537, 4549, 4556, 4564, 4572, 4580, 4588, 4598, 4599, 4603,
2089 : 4604, 4607, 4619, 4620, 4623, 4634, 4645, 4659, 4660, 4665,
2090 : 4666, 4667, 4670, 4671, 4672, 4673, 4676, 4677, 4680, 4681,
2091 : 4684, 4704, 4717, 4739, 4740, 4743, 4749, 4755, 4772, 4781,
2092 : 4803, 4817, 4834, 4850, 4851, 4852, 4864, 4878, 4895, 4909,
2093 : 4910, 4922, 4943, 4954, 4968, 4977, 4989, 4990, 4993, 4994,
2094 : 4997, 4998, 5001, 5005, 5009, 5013, 5017, 5021, 5025, 5029,
2095 : 5033, 5037, 5041, 5045, 5049, 5053, 5057, 5061, 5067, 5068,
2096 : 5072, 5073, 5074, 5081, 5084, 5085, 5097, 5113, 5129, 5130,
2097 : 5138, 5139, 5143, 5144, 5148, 5149, 5153, 5154, 5158, 5159,
2098 : 5169, 5181, 5182, 5195, 5203, 5221, 5230, 5242, 5245, 5249,
2099 : 5253, 5257, 5264, 5276, 5287, 5290, 5294, 5307, 5317, 5327,
2100 : 5337, 5347, 5357, 5367, 5377, 5387, 5397, 5407, 5417, 5427,
2101 : 5446, 5458, 5459, 5460, 5461, 5465, 5466, 5470, 5471, 5481,
2102 : 5490, 5503, 5504, 5508, 5512, 5520, 5524, 5528, 5535, 5539,
2103 : 5544, 5549, 5556, 5563, 5568, 5578, 5591, 5607, 5608, 5613,
2104 : 5614, 5618, 5619, 5629, 5639, 5648, 5666, 5687, 5708, 5730,
2105 : 5764, 5780, 5781, 5785, 5794, 5809, 5819, 5832, 5833, 5845,
2106 : 5854, 5872, 5897, 5915, 5930, 5931, 5935, 5936, 5940, 5941,
2107 : 5945, 5946, 5950, 5964, 5968, 5969, 5973, 5974, 5975, 5976,
2108 : 5977, 5987, 5999, 6000, 6011, 6034, 6067, 6068, 6069, 6073,
2109 : 6075, 6097, 6099, 6101, 6103, 6105, 6110, 6111, 6115, 6116,
2110 : 6120, 6132, 6133, 6137, 6146, 6150, 6154, 6159, 6169, 6170,
2111 : 6174, 6175, 6179, 6180, 6184, 6185, 6189, 6190, 6191, 6195,
2112 : 6199, 6200, 6201, 6205, 6206, 6211, 6212, 6240, 6241, 6242,
2113 : 6243, 6244, 6245, 6246, 6247, 6260, 6271, 6286, 6288, 6293,
2114 : 6298, 6300, 6305, 6316, 6317, 6318, 6319, 6330, 6350, 6362,
2115 : 6375, 6386, 6397, 6409, 6418, 6426, 6434, 6444, 6454, 6464,
2116 : 6474, 6484, 6495, 6505, 6518, 6521, 6522, 6525, 6529, 6536,
2117 : 6537, 6538, 6539, 6540, 6541, 6544, 6547, 6548, 6556, 6563,
2118 : 6564, 6567, 6569, 6580, 6592, 6604, 6616, 6628, 6657, 6658,
2119 : 6674, 6690, 6691, 6695, 6708, 6718, 6727, 6737, 6747, 6748,
2120 : 6751, 6752, 6755, 6756, 6757, 6762, 6773, 6783, 6796, 6797,
2121 : 6801, 6810, 6823, 6834, 6848, 6859, 6882, 6893, 6912, 6923,
2122 : 6934, 6945, 6956, 6967, 6978, 6989, 7000, 7011, 7022, 7033,
2123 : 7048, 7049, 7050, 7051, 7052, 7053, 7054, 7055, 7056, 7057,
2124 : 7058, 7059, 7060, 7070, 7071, 7072, 7073, 7074, 7078, 7079,
2125 : 7080, 7081, 7082, 7083, 7084, 7085, 7090, 7091, 7092, 7096,
2126 : 7097, 7100, 7101, 7104, 7106, 7111, 7112, 7123, 7135, 7136,
2127 : 7137, 7147, 7156, 7165, 7174, 7183, 7192, 7201, 7210, 7219,
2128 : 7228, 7242, 7251, 7260, 7269, 7278, 7287, 7296, 7305, 7317,
2129 : 7318, 7332, 7343, 7354, 7365, 7376, 7387, 7398, 7409, 7420,
2130 : 7431, 7444, 7445, 7448, 7449, 7459, 7466, 7475, 7484, 7493,
2131 : 7502, 7511, 7520, 7529, 7538, 7547, 7556, 7565, 7574, 7583,
2132 : 7592, 7601, 7610, 7621, 7622, 7625, 7626, 7636, 7654, 7670,
2133 : 7698, 7700, 7702, 7704, 7712, 7722, 7723, 7726, 7734, 7742,
2134 : 7750, 7757, 7768, 7772, 7779, 7783, 7794, 7803, 7812, 7821,
2135 : 7830, 7839, 7848, 7857, 7866, 7875, 7884, 7893, 7902, 7910,
2136 : 7919, 7928, 7937, 7946, 7955, 7964, 7973, 7986, 7987, 7991,
2137 : 7992, 7997, 7998, 8008, 8019, 8033, 8045, 8063, 8064, 8068,
2138 : 8075, 8076, 8077, 8080, 8081, 8091, 8102, 8103, 8107, 8111,
2139 : 8115, 8126, 8140, 8155, 8173, 8174, 8175, 8176, 8177, 8178,
2140 : 8179, 8191, 8223, 8258, 8259, 8263, 8264, 8267, 8268, 8273,
2141 : 8285, 8304, 8309, 8314, 8321, 8322, 8325, 8326, 8329, 8330,
2142 : 8334, 8335, 8336, 8339, 8340, 8341, 8357, 8371, 8386, 8400,
2143 : 8417, 8418, 8421, 8422, 8426, 8427, 8431, 8432, 8437, 8451,
2144 : 8459, 8467, 8483, 8484, 8488, 8489, 8504, 8515, 8526, 8537,
2145 : 8548, 8562, 8563, 8564, 8565, 8566, 8572, 8576, 8591, 8592,
2146 : 8598, 8608, 8612, 8617, 8625, 8667, 8671, 8675, 8679, 8687,
2147 : 8688, 8692, 8704, 8705, 8710, 8711, 8716, 8717, 8724, 8728,
2148 : 8732, 8736, 8740, 8744, 8748, 8752, 8756, 8760, 8764, 8768,
2149 : 8772, 8776, 8780, 8784, 8789, 8796, 8800, 8804, 8808, 8812,
2150 : 8818, 8819, 8825, 8835, 8839, 8850, 8856, 8865, 8871, 8872,
2151 : 8876, 8877, 8881, 8882, 8885, 8899, 8903, 8918, 8927, 8936,
2152 : 8949, 8950, 8955, 8956, 8973, 8984, 8995, 9006, 9017, 9028,
2153 : 9042, 9053, 9067, 9078, 9092, 9100, 9102, 9104, 9109, 9111,
2154 : 9116, 9117, 9122, 9141, 9151, 9152, 9156, 9160, 9172, 9184,
2155 : 9196, 9210, 9211, 9212, 9216, 9229, 9230, 9240, 9253, 9257,
2156 : 9261, 9265, 9272, 9294, 9307, 9320, 9335, 9336, 9339, 9340,
2157 : 9343, 9344, 9354, 9364, 9382, 9392, 9402, 9412, 9422, 9432,
2158 : 9442, 9452, 9462, 9472, 9482, 9492, 9502, 9513, 9524, 9534,
2159 : 9544, 9554, 9564, 9574, 9584, 9595, 9606, 9617, 9628, 9639,
2160 : 9650, 9661, 9672, 9683, 9694, 9705, 9716, 9728, 9740, 9752,
2161 : 9764, 9776, 9788, 9799, 9810, 9822, 9834, 9845, 9856, 9865,
2162 : 9875, 9885, 9895, 9905, 9915, 9925, 9935, 9945, 9955, 9970,
2163 : 9971, 9974, 9975, 9985, 9995, 10005, 10015, 10026, 10036, 10048,
2164 : 10049, 10059, 10069, 10079, 10089, 10099, 10109, 10119, 10129, 10139,
2165 : 10149, 10159, 10169, 10179, 10189, 10199, 10209, 10219, 10229, 10239,
2166 : 10249, 10259, 10269, 10279, 10289, 10299, 10309, 10319, 10338, 10348,
2167 : 10349, 10352, 10354, 10356, 10362, 10363, 10364, 10365, 10366, 10378,
2168 : 10394, 10403, 10412, 10421, 10430, 10439, 10448, 10457, 10466, 10475,
2169 : 10484, 10493, 10502, 10511, 10520, 10529, 10538, 10547, 10556, 10565,
2170 : 10574, 10583, 10592, 10601, 10629, 10637, 10646, 10672, 10681, 10688,
2171 : 10694, 10721, 10732, 10741, 10749, 10751, 10773, 10781, 10791, 10801,
2172 : 10820, 10839, 10849, 10859, 10869, 10880, 10891, 10902, 10913, 10924,
2173 : 10942, 10951, 10968, 10986, 10987, 10988, 10993, 10999, 11008, 11009,
2174 : 11010, 11011, 11012, 11016, 11017, 11020, 11021, 11022, 11023, 11027,
2175 : 11028, 11029, 11041, 11052, 11053, 11056, 11066, 11073, 11093, 11103,
2176 : 11112, 11122, 11132, 11141, 11150, 11159, 11168, 11177, 11186, 11195,
2177 : 11207, 11216, 11228, 11229, 11230, 11234, 11237, 11240, 11243, 11246,
2178 : 11253, 11255, 11257, 11262, 11264, 11268, 11269, 11270, 11282, 11296,
2179 : 11310, 11329, 11351, 11352, 11353, 11354, 11364, 11381, 11392, 11393,
2180 : 11397, 11398, 11402, 11406, 11410, 11428, 11429, 11430, 11431, 11432,
2181 : 11433, 11434, 11441, 11442, 11453, 11461, 11469, 11478, 11488, 11506,
2182 : 11515, 11524, 11533, 11545, 11549, 11560, 11572, 11590, 11597, 11614,
2183 : 11628, 11638, 11647, 11656, 11666, 11678, 11690, 11701, 11702, 11713,
2184 : 11724, 11736, 11748, 11760, 11772, 11782, 11795, 11796, 11810, 11834,
2185 : 11843, 11853, 11865, 11877, 11891, 11892, 11904, 11925, 11936, 11948,
2186 : 11960, 11964, 11971, 11972, 11976, 11983, 11984, 11985, 11989, 11990,
2187 : 11991, 11995, 11996, 12000, 12001, 12004, 12005, 12008, 12009, 12013,
2188 : 12014, 12018, 12025, 12027, 12032, 12033, 12046, 12054, 12065, 12073,
2189 : 12084, 12085, 12086, 12087, 12088, 12089, 12090, 12091, 12092, 12093,
2190 : 12103, 12114, 12115, 12119, 12120, 12121, 12122, 12123, 12133, 12141,
2191 : 12159, 12179, 12180, 12190, 12199, 12208, 12217, 12236, 12255, 12259,
2192 : 12267, 12273, 12280, 12286, 12293, 12302, 12303, 12307, 12309, 12314,
2193 : 12325, 12335, 12345, 12351, 12360, 12369, 12375, 12384, 12390, 12391,
2194 : 12395, 12396, 12400, 12412, 12413, 12424, 12440, 12441, 12452, 12463,
2195 : 12464, 12467, 12468, 12469, 12470, 12471, 12472, 12473, 12474, 12477,
2196 : 12478, 12482, 12483, 12484, 12495, 12515, 12516, 12520, 12525, 12549,
2197 : 12560, 12561, 12573, 12594, 12595, 12605, 12612, 12619, 12626, 12636,
2198 : 12649, 12650, 12654, 12655, 12659, 12660, 12664, 12677, 12690, 12699,
2199 : 12708, 12717, 12726, 12738, 12750, 12762, 12765, 12766, 12767, 12768,
2200 : 12769, 12770, 12773, 12774, 12775, 12823, 12824, 12828, 12842, 12857,
2201 : 12858, 12865, 12873, 12881, 12889, 12897, 12905, 12916, 12917, 12949,
2202 : 12966, 12984, 12985, 13005, 13009, 13013, 13028, 13035, 13042, 13052,
2203 : 13053, 13056, 13072, 13073, 13074, 13078, 13088, 13099, 13105, 13117,
2204 : 13130, 13136, 13137, 13141, 13153, 13161, 13166, 13171, 13176, 13181,
2205 : 13189, 13197, 13202, 13207, 13214, 13215, 13219, 13220, 13221, 13228,
2206 : 13229, 13233, 13234, 13238, 13239, 13243, 13244, 13248, 13252, 13253,
2207 : 13256, 13265, 13278, 13284, 13290, 13294, 13309, 13310, 13314, 13326,
2208 : 13342, 13354, 13366, 13378, 13393, 13396, 13401, 13402, 13410, 13430,
2209 : 13431, 13433, 13438, 13439, 13443, 13444, 13447, 13448, 13473, 13482,
2210 : 13492, 13493, 13497, 13498, 13499, 13500, 13501, 13505, 13518, 13525,
2211 : 13532, 13539, 13540, 13544, 13545, 13549, 13550, 13554, 13555, 13559,
2212 : 13571, 13572, 13573, 13574, 13578, 13579, 13589, 13597, 13616, 13617,
2213 : 13621, 13622, 13628, 13633, 13642, 13650, 13659, 13666, 13674, 13683,
2214 : 13692, 13696, 13701, 13708, 13737, 13741, 13755, 13776, 13798, 13811,
2215 : 13828, 13834, 13839, 13845, 13852, 13853, 13863, 13869, 13877, 13881,
2216 : 13885, 13892, 13900, 13905, 13906, 13907, 13908, 13912, 13913, 13928,
2217 : 13932, 13940, 13947, 13954, 13961, 13968, 13979, 13980, 13993, 13997,
2218 : 14005, 14019, 14033, 14034, 14049, 14060, 14073, 14078, 14079, 14082,
2219 : 14083, 14086, 14087, 14092, 14093, 14098, 14099, 14108, 14113, 14114,
2220 : 14118, 14122, 14128, 14153, 14164, 14178, 14179, 14183, 14197, 14254,
2221 : 14268, 14270, 14275, 14284, 14286, 14288, 14290, 14295, 14297, 14302,
2222 : 14310, 14321, 14349, 14350, 14354, 14356, 14361, 14370, 14390, 14410,
2223 : 14428, 14440, 14455, 14456, 14460, 14463, 14476, 14481, 14488, 14493,
2224 : 14499, 14504, 14513, 14515, 14518, 14522, 14523, 14524, 14525, 14526,
2225 : 14527, 14532, 14538, 14553, 14554, 14555, 14556, 14557, 14568, 14574,
2226 : 14582, 14583, 14589, 14594, 14599, 14604, 14609, 14614, 14619, 14624,
2227 : 14630, 14636, 14642, 14649, 14671, 14680, 14684, 14692, 14696, 14704,
2228 : 14716, 14737, 14741, 14747, 14751, 14764, 14772, 14782, 14784, 14786,
2229 : 14788, 14790, 14792, 14797, 14798, 14805, 14814, 14822, 14831, 14842,
2230 : 14850, 14851, 14852, 14856, 14858, 14860, 14862, 14864, 14866, 14868,
2231 : 14873, 14878, 14884, 14892, 14897, 14904, 14911, 14915, 14919, 14927,
2232 : 14962, 14963, 14965, 14974, 14981, 14997, 14999, 15001, 15003, 15005,
2233 : 15007, 15009, 15011, 15013, 15015, 15017, 15019, 15021, 15023, 15026,
2234 : 15028, 15031, 15033, 15035, 15037, 15040, 15045, 15054, 15059, 15068,
2235 : 15073, 15082, 15087, 15097, 15106, 15115, 15124, 15143, 15152, 15161,
2236 : 15170, 15179, 15196, 15205, 15214, 15223, 15232, 15241, 15250, 15254,
2237 : 15258, 15266, 15274, 15282, 15290, 15311, 15334, 15346, 15353, 15369,
2238 : 15374, 15380, 15387, 15394, 15402, 15410, 15427, 15446, 15472, 15474,
2239 : 15476, 15478, 15480, 15482, 15484, 15486, 15488, 15490, 15492, 15494,
2240 : 15496, 15498, 15500, 15502, 15504, 15506, 15508, 15512, 15516, 15521,
2241 : 15537, 15538, 15539, 15556, 15569, 15571, 15573, 15585, 15610, 15622,
2242 : 15634, 15642, 15653, 15664, 15674, 15680, 15689, 15699, 15709, 15722,
2243 : 15732, 15763, 15799, 15809, 15820, 15821, 15822, 15829, 15836, 15840,
2244 : 15844, 15848, 15852, 15856, 15860, 15864, 15868, 15872, 15876, 15880,
2245 : 15884, 15891, 15895, 15899, 15903, 15905, 15912, 15919, 15926, 15933,
2246 : 15944, 15958, 15968, 15979, 15995, 16005, 16012, 16019, 16026, 16030,
2247 : 16038, 16047, 16056, 16060, 16064, 16068, 16072, 16076, 16085, 16089,
2248 : 16099, 16103, 16107, 16112, 16123, 16129, 16143, 16154, 16168, 16184,
2249 : 16196, 16206, 16215, 16224, 16232, 16254, 16270, 16294, 16296, 16300,
2250 : 16302, 16304, 16307, 16310, 16313, 16314, 16317, 16325, 16335, 16336,
2251 : 16339, 16340, 16341, 16344, 16345, 16346, 16351, 16355, 16359, 16363,
2252 : 16370, 16371, 16379, 16380, 16384, 16385, 16393, 16394, 16398, 16399,
2253 : 16404, 16413, 16415, 16430, 16433, 16461, 16462, 16465, 16466, 16474,
2254 : 16482, 16490, 16499, 16509, 16527, 16573, 16582, 16591, 16600, 16609,
2255 : 16621, 16622, 16623, 16624, 16625, 16639, 16640, 16641, 16644, 16645,
2256 : 16648, 16651, 16652, 16653, 16656, 16657, 16660, 16661, 16662, 16663,
2257 : 16664, 16665, 16666, 16667, 16668, 16669, 16670, 16671, 16674, 16676,
2258 : 16681, 16683, 16688, 16690, 16692, 16694, 16696, 16698, 16710, 16714,
2259 : 16721, 16725, 16731, 16735, 16745, 16757, 16758, 16761, 16762, 16765,
2260 : 16769, 16773, 16779, 16780, 16785, 16795, 16796, 16797, 16798, 16799,
2261 : 16800, 16801, 16802, 16806, 16807, 16808, 16809, 16814, 16819, 16828,
2262 : 16849, 16853, 16858, 16869, 16886, 16892, 16893, 16894, 16897, 16905,
2263 : 16915, 16930, 16931, 16935, 16947, 16948, 16951, 16952, 16955, 16959,
2264 : 16966, 16970, 16974, 16983, 16995, 16996, 17000, 17001, 17005, 17006,
2265 : 17009, 17010, 17015, 17016, 17020, 17021, 17025, 17037, 17038, 17039,
2266 : 17040, 17041, 17042, 17043, 17044, 17045, 17049, 17051, 17056, 17057,
2267 : 17058, 17059, 17060, 17061, 17062, 17064, 17068, 17070, 17072, 17075,
2268 : 17079, 17082, 17086, 17095, 17113, 17120, 17125, 17131, 17132, 17133,
2269 : 17134, 17135, 17139, 17148, 17162, 17163, 17164, 17165, 17166, 17175,
2270 : 17176, 17177, 17178, 17179, 17183, 17185, 17195, 17198, 17204, 17205,
2271 : 17206, 17210, 17211, 17212, 17216, 17217, 17221, 17239, 17259, 17260,
2272 : 17269, 17270, 17274, 17275, 17278, 17286, 17294, 17302, 17325, 17326,
2273 : 17337, 17341, 17347, 17349, 17354, 17356, 17358, 17368, 17370, 17381,
2274 : 17385, 17389, 17393, 17397, 17406, 17414, 17446, 17450, 17457, 17465,
2275 : 17469, 17473, 17479, 17480, 17482, 17483, 17484, 17488, 17529, 17557,
2276 : 17561, 17565, 17571, 17573, 17587, 17624, 17637, 17638, 17641, 17642,
2277 : 17659, 17660, 17661, 17666, 17667, 17668, 17673, 17674, 17675, 17676,
2278 : 17682, 17683, 17684, 17685, 17686, 17692, 17693, 17713, 17714, 17715,
2279 : 17716, 17717, 17718, 17719, 17720, 17721, 17722, 17723, 17724, 17725,
2280 : 17726, 17727, 17728, 17729, 17730, 17731, 17732, 17733, 17734, 17735,
2281 : 17736, 17737, 17738, 17739, 17740, 17741, 17742, 17743, 17744, 17745,
2282 : 17746, 17747, 17748, 17749, 17750, 17751, 17752, 17753, 17754, 17755,
2283 : 17756, 17757, 17758, 17759, 17760, 17761, 17762, 17763, 17764, 17765,
2284 : 17766, 17767, 17768, 17769, 17770, 17771, 17772, 17773, 17774, 17775,
2285 : 17776, 17777, 17778, 17779, 17780, 17781, 17782, 17783, 17784, 17785,
2286 : 17786, 17787, 17788, 17789, 17790, 17791, 17792, 17793, 17794, 17795,
2287 : 17796, 17797, 17798, 17799, 17800, 17801, 17802, 17803, 17804, 17805,
2288 : 17806, 17807, 17808, 17809, 17810, 17811, 17812, 17813, 17814, 17815,
2289 : 17816, 17817, 17818, 17819, 17820, 17821, 17822, 17823, 17824, 17825,
2290 : 17826, 17827, 17828, 17829, 17830, 17831, 17832, 17833, 17834, 17835,
2291 : 17836, 17837, 17838, 17839, 17840, 17841, 17842, 17843, 17844, 17845,
2292 : 17846, 17847, 17848, 17849, 17850, 17851, 17852, 17853, 17854, 17855,
2293 : 17856, 17857, 17858, 17859, 17860, 17861, 17862, 17863, 17864, 17865,
2294 : 17866, 17867, 17868, 17869, 17870, 17871, 17872, 17873, 17874, 17875,
2295 : 17876, 17877, 17878, 17879, 17880, 17881, 17882, 17883, 17884, 17885,
2296 : 17886, 17887, 17888, 17889, 17890, 17891, 17892, 17893, 17894, 17895,
2297 : 17896, 17897, 17898, 17899, 17900, 17901, 17902, 17903, 17904, 17905,
2298 : 17906, 17907, 17908, 17909, 17910, 17911, 17912, 17913, 17914, 17915,
2299 : 17916, 17917, 17918, 17919, 17920, 17921, 17922, 17923, 17924, 17925,
2300 : 17926, 17927, 17928, 17929, 17930, 17931, 17932, 17933, 17934, 17935,
2301 : 17936, 17937, 17938, 17939, 17940, 17941, 17942, 17943, 17944, 17945,
2302 : 17946, 17947, 17948, 17949, 17950, 17951, 17952, 17953, 17954, 17955,
2303 : 17956, 17957, 17958, 17959, 17960, 17961, 17962, 17963, 17964, 17965,
2304 : 17966, 17967, 17968, 17969, 17970, 17971, 17972, 17973, 17974, 17975,
2305 : 17976, 17977, 17978, 17979, 17980, 17981, 17982, 17983, 17984, 17985,
2306 : 17986, 17987, 17988, 17989, 17990, 17991, 17992, 17993, 17994, 17995,
2307 : 17996, 17997, 17998, 17999, 18000, 18001, 18002, 18003, 18004, 18005,
2308 : 18006, 18007, 18008, 18009, 18010, 18011, 18012, 18013, 18014, 18015,
2309 : 18016, 18017, 18018, 18019, 18020, 18021, 18022, 18023, 18024, 18025,
2310 : 18026, 18027, 18028, 18029, 18030, 18031, 18032, 18033, 18034, 18035,
2311 : 18036, 18037, 18038, 18039, 18040, 18041, 18042, 18056, 18057, 18058,
2312 : 18059, 18060, 18061, 18062, 18063, 18064, 18065, 18066, 18067, 18068,
2313 : 18069, 18070, 18071, 18072, 18073, 18074, 18075, 18076, 18077, 18078,
2314 : 18079, 18080, 18081, 18082, 18083, 18084, 18085, 18086, 18087, 18088,
2315 : 18089, 18090, 18091, 18092, 18093, 18094, 18095, 18096, 18097, 18098,
2316 : 18099, 18100, 18101, 18102, 18103, 18104, 18105, 18106, 18107, 18108,
2317 : 18109, 18110, 18111, 18112, 18113, 18114, 18115, 18116, 18117, 18118,
2318 : 18132, 18133, 18134, 18135, 18136, 18137, 18138, 18139, 18140, 18141,
2319 : 18142, 18143, 18144, 18145, 18146, 18147, 18148, 18149, 18150, 18151,
2320 : 18152, 18153, 18154, 18164, 18165, 18166, 18167, 18168, 18169, 18170,
2321 : 18171, 18172, 18173, 18174, 18175, 18176, 18177, 18178, 18179, 18180,
2322 : 18181, 18182, 18183, 18184, 18185, 18186, 18187, 18188, 18189, 18190,
2323 : 18191, 18192, 18193, 18194, 18195, 18196, 18197, 18198, 18199, 18200,
2324 : 18201, 18202, 18203, 18204, 18205, 18206, 18207, 18208, 18209, 18210,
2325 : 18211, 18212, 18213, 18214, 18215, 18216, 18217, 18218, 18219, 18220,
2326 : 18221, 18222, 18223, 18224, 18225, 18226, 18227, 18228, 18229, 18230,
2327 : 18231, 18232, 18233, 18234, 18235, 18236, 18237, 18238, 18239, 18240,
2328 : 18241, 18254, 18255, 18256, 18257, 18258, 18259, 18260, 18261, 18262,
2329 : 18263, 18264, 18265, 18266, 18267, 18268, 18269, 18270, 18271, 18272,
2330 : 18273, 18274, 18275, 18276, 18277, 18278, 18279, 18280, 18281, 18282,
2331 : 18283, 18284, 18285, 18286, 18287, 18288, 18289, 18290, 18291, 18292,
2332 : 18293, 18294, 18295, 18296, 18297, 18298, 18299, 18300, 18301, 18302,
2333 : 18303, 18304, 18305, 18306, 18307, 18308, 18309, 18310, 18311, 18312,
2334 : 18313, 18314, 18315, 18316, 18317, 18318, 18319, 18320, 18321, 18322,
2335 : 18323, 18324, 18325, 18326, 18327, 18328, 18329, 18330, 18331, 18332,
2336 : 18333, 18334, 18335, 18336, 18337, 18338, 18339, 18340, 18341, 18342,
2337 : 18343, 18344, 18345, 18346, 18347, 18348, 18349, 18350, 18351, 18352,
2338 : 18353, 18354, 18355, 18356, 18357, 18358, 18359, 18360, 18361, 18362,
2339 : 18363, 18364, 18365, 18366, 18367, 18368, 18369, 18370, 18371, 18372,
2340 : 18373, 18374, 18375, 18376, 18377, 18378, 18379, 18380, 18381, 18382,
2341 : 18383, 18384, 18385, 18386, 18387, 18388, 18389, 18390, 18391, 18392,
2342 : 18393, 18394, 18395, 18396, 18397, 18398, 18399, 18400, 18401, 18402,
2343 : 18403, 18404, 18405, 18406, 18407, 18408, 18409, 18410, 18411, 18412,
2344 : 18413, 18414, 18415, 18416, 18417, 18418, 18419, 18420, 18421, 18422,
2345 : 18423, 18424, 18425, 18426, 18427, 18428, 18429, 18430, 18431, 18432,
2346 : 18433, 18434, 18435, 18436, 18437, 18438, 18439, 18440, 18441, 18442,
2347 : 18443, 18444, 18445, 18446, 18447, 18448, 18449, 18450, 18451, 18452,
2348 : 18453, 18454, 18455, 18456, 18457, 18458, 18459, 18460, 18461, 18462,
2349 : 18463, 18464, 18465, 18466, 18467, 18468, 18469, 18470, 18471, 18472,
2350 : 18473, 18474, 18475, 18476, 18477, 18478, 18479, 18480, 18481, 18482,
2351 : 18483, 18484, 18485, 18486, 18487, 18488, 18489, 18490, 18491, 18492,
2352 : 18493, 18494, 18495, 18496, 18497, 18498, 18499, 18500, 18501, 18502,
2353 : 18503, 18504, 18505, 18506, 18507, 18508, 18509, 18510, 18511, 18512,
2354 : 18513, 18514, 18515, 18516, 18517, 18518, 18519, 18520, 18521, 18522,
2355 : 18523, 18524, 18525, 18526, 18527, 18528, 18529, 18530, 18531, 18532,
2356 : 18533, 18534, 18535, 18536, 18537, 18538, 18539, 18540, 18541, 18542,
2357 : 18543, 18544, 18545, 18546, 18547, 18548, 18549, 18550, 18551, 18552,
2358 : 18553, 18554, 18555, 18556, 18557, 18558, 18559, 18560, 18561, 18562,
2359 : 18563, 18564, 18565, 18566, 18567, 18568, 18569, 18570, 18571, 18572,
2360 : 18573, 18574, 18575, 18576, 18577, 18578, 18579, 18580, 18581, 18582,
2361 : 18583, 18584, 18585, 18586, 18587, 18588, 18589, 18590, 18591, 18592,
2362 : 18593, 18594, 18595, 18596, 18597, 18598, 18599, 18600, 18601, 18602,
2363 : 18603, 18604, 18605, 18606, 18607, 18608, 18609, 18610, 18611, 18612,
2364 : 18613, 18614, 18615, 18616, 18617, 18618, 18619, 18620, 18621, 18622,
2365 : 18623, 18624, 18625, 18626, 18627, 18628, 18629, 18630, 18631, 18632,
2366 : 18633, 18634, 18635, 18636, 18637, 18638, 18639, 18640, 18641, 18642,
2367 : 18643, 18644, 18645, 18646, 18647, 18648, 18649, 18650, 18651, 18652,
2368 : 18653, 18654, 18655, 18656, 18657, 18658, 18659, 18660, 18661, 18662,
2369 : 18663, 18664, 18665, 18666, 18667, 18668, 18669, 18670, 18671, 18672,
2370 : 18673, 18674, 18675, 18676, 18677, 18678, 18679, 18680, 18681, 18682,
2371 : 18683, 18684, 18685, 18686, 18687, 18688, 18689, 18690, 18691, 18692,
2372 : 18693, 18694, 18695, 18696, 18697, 18698, 18699, 18700, 18701, 18702,
2373 : 18703, 18704, 18705, 18706, 18707, 18708
2374 : };
2375 : #endif
2376 :
2377 : /** Accessing symbol of state STATE. */
2378 : #define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
2379 :
2380 : #if YYDEBUG || 0
2381 : /* The user-facing name of the symbol whose (internal) number is
2382 : YYSYMBOL. No bounds checking. */
2383 : static const char *yysymbol_name (yysymbol_kind_t yysymbol) YY_ATTRIBUTE_UNUSED;
2384 :
2385 : /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
2386 : First, the terminals, then, starting at YYNTOKENS, nonterminals. */
2387 : static const char *const yytname[] =
2388 : {
2389 : "\"end of file\"", "error", "\"invalid token\"", "IDENT", "UIDENT",
2390 : "FCONST", "SCONST", "USCONST", "BCONST", "XCONST", "Op", "ICONST",
2391 : "PARAM", "TYPECAST", "DOT_DOT", "COLON_EQUALS", "EQUALS_GREATER",
2392 : "LESS_EQUALS", "GREATER_EQUALS", "NOT_EQUALS", "ABORT_P", "ABSENT",
2393 : "ABSOLUTE_P", "ACCESS", "ACTION", "ADD_P", "ADMIN", "AFTER", "AGGREGATE",
2394 : "ALL", "ALSO", "ALTER", "ALWAYS", "ANALYSE", "ANALYZE", "AND", "ANY",
2395 : "ARRAY", "AS", "ASC", "ASENSITIVE", "ASSERTION", "ASSIGNMENT",
2396 : "ASYMMETRIC", "ATOMIC", "AT", "ATTACH", "ATTRIBUTE", "AUTHORIZATION",
2397 : "BACKWARD", "BEFORE", "BEGIN_P", "BETWEEN", "BIGINT", "BINARY", "BIT",
2398 : "BOOLEAN_P", "BOTH", "BREADTH", "BY", "CACHE", "CALL", "CALLED",
2399 : "CASCADE", "CASCADED", "CASE", "CAST", "CATALOG_P", "CHAIN", "CHAR_P",
2400 : "CHARACTER", "CHARACTERISTICS", "CHECK", "CHECKPOINT", "CLASS", "CLOSE",
2401 : "CLUSTER", "COALESCE", "COLLATE", "COLLATION", "COLUMN", "COLUMNS",
2402 : "COMMENT", "COMMENTS", "COMMIT", "COMMITTED", "COMPRESSION",
2403 : "CONCURRENTLY", "CONDITIONAL", "CONFIGURATION", "CONFLICT", "CONNECTION",
2404 : "CONSTRAINT", "CONSTRAINTS", "CONTENT_P", "CONTINUE_P", "CONVERSION_P",
2405 : "COPY", "COST", "CREATE", "CROSS", "CSV", "CUBE", "CURRENT_P",
2406 : "CURRENT_CATALOG", "CURRENT_DATE", "CURRENT_ROLE", "CURRENT_SCHEMA",
2407 : "CURRENT_TIME", "CURRENT_TIMESTAMP", "CURRENT_USER", "CURSOR", "CYCLE",
2408 : "DATA_P", "DATABASE", "DAY_P", "DEALLOCATE", "DEC", "DECIMAL_P",
2409 : "DECLARE", "DEFAULT", "DEFAULTS", "DEFERRABLE", "DEFERRED", "DEFINER",
2410 : "DELETE_P", "DELIMITER", "DELIMITERS", "DEPENDS", "DEPTH", "DESC",
2411 : "DETACH", "DICTIONARY", "DISABLE_P", "DISCARD", "DISTINCT", "DO",
2412 : "DOCUMENT_P", "DOMAIN_P", "DOUBLE_P", "DROP", "EACH", "ELSE", "EMPTY_P",
2413 : "ENABLE_P", "ENCODING", "ENCRYPTED", "END_P", "ENFORCED", "ENUM_P",
2414 : "ERROR_P", "ESCAPE", "EVENT", "EXCEPT", "EXCLUDE", "EXCLUDING",
2415 : "EXCLUSIVE", "EXECUTE", "EXISTS", "EXPLAIN", "EXPRESSION", "EXTENSION",
2416 : "EXTERNAL", "EXTRACT", "FALSE_P", "FAMILY", "FETCH", "FILTER",
2417 : "FINALIZE", "FIRST_P", "FLOAT_P", "FOLLOWING", "FOR", "FORCE", "FOREIGN",
2418 : "FORMAT", "FORWARD", "FREEZE", "FROM", "FULL", "FUNCTION", "FUNCTIONS",
2419 : "GENERATED", "GLOBAL", "GRANT", "GRANTED", "GREATEST", "GROUP_P",
2420 : "GROUPING", "GROUPS", "HANDLER", "HAVING", "HEADER_P", "HOLD", "HOUR_P",
2421 : "IDENTITY_P", "IF_P", "ILIKE", "IMMEDIATE", "IMMUTABLE", "IMPLICIT_P",
2422 : "IMPORT_P", "IN_P", "INCLUDE", "INCLUDING", "INCREMENT", "INDENT",
2423 : "INDEX", "INDEXES", "INHERIT", "INHERITS", "INITIALLY", "INLINE_P",
2424 : "INNER_P", "INOUT", "INPUT_P", "INSENSITIVE", "INSERT", "INSTEAD",
2425 : "INT_P", "INTEGER", "INTERSECT", "INTERVAL", "INTO", "INVOKER", "IS",
2426 : "ISNULL", "ISOLATION", "JOIN", "JSON", "JSON_ARRAY", "JSON_ARRAYAGG",
2427 : "JSON_EXISTS", "JSON_OBJECT", "JSON_OBJECTAGG", "JSON_QUERY",
2428 : "JSON_SCALAR", "JSON_SERIALIZE", "JSON_TABLE", "JSON_VALUE", "KEEP",
2429 : "KEY", "KEYS", "LABEL", "LANGUAGE", "LARGE_P", "LAST_P", "LATERAL_P",
2430 : "LEADING", "LEAKPROOF", "LEAST", "LEFT", "LEVEL", "LIKE", "LIMIT",
2431 : "LISTEN", "LOAD", "LOCAL", "LOCALTIME", "LOCALTIMESTAMP", "LOCATION",
2432 : "LOCK_P", "LOCKED", "LOGGED", "MAPPING", "MATCH", "MATCHED",
2433 : "MATERIALIZED", "MAXVALUE", "MERGE", "MERGE_ACTION", "METHOD",
2434 : "MINUTE_P", "MINVALUE", "MODE", "MONTH_P", "MOVE", "NAME_P", "NAMES",
2435 : "NATIONAL", "NATURAL", "NCHAR", "NESTED", "NEW", "NEXT", "NFC", "NFD",
2436 : "NFKC", "NFKD", "NO", "NONE", "NORMALIZE", "NORMALIZED", "NOT",
2437 : "NOTHING", "NOTIFY", "NOTNULL", "NOWAIT", "NULL_P", "NULLIF", "NULLS_P",
2438 : "NUMERIC", "OBJECT_P", "OBJECTS_P", "OF", "OFF", "OFFSET", "OIDS", "OLD",
2439 : "OMIT", "ON", "ONLY", "OPERATOR", "OPTION", "OPTIONS", "OR", "ORDER",
2440 : "ORDINALITY", "OTHERS", "OUT_P", "OUTER_P", "OVER", "OVERLAPS",
2441 : "OVERLAY", "OVERRIDING", "OWNED", "OWNER", "PARALLEL", "PARAMETER",
2442 : "PARSER", "PARTIAL", "PARTITION", "PASSING", "PASSWORD", "PATH",
2443 : "PERIOD", "PLACING", "PLAN", "PLANS", "POLICY", "POSITION", "PRECEDING",
2444 : "PRECISION", "PRESERVE", "PREPARE", "PREPARED", "PRIMARY", "PRIOR",
2445 : "PRIVILEGES", "PROCEDURAL", "PROCEDURE", "PROCEDURES", "PROGRAM",
2446 : "PUBLICATION", "QUOTE", "QUOTES", "RANGE", "READ", "REAL", "REASSIGN",
2447 : "RECURSIVE", "REF_P", "REFERENCES", "REFERENCING", "REFRESH", "REINDEX",
2448 : "RELATIVE_P", "RELEASE", "RENAME", "REPEATABLE", "REPLACE", "REPLICA",
2449 : "RESET", "RESTART", "RESTRICT", "RETURN", "RETURNING", "RETURNS",
2450 : "REVOKE", "RIGHT", "ROLE", "ROLLBACK", "ROLLUP", "ROUTINE", "ROUTINES",
2451 : "ROW", "ROWS", "RULE", "SAVEPOINT", "SCALAR", "SCHEMA", "SCHEMAS",
2452 : "SCROLL", "SEARCH", "SECOND_P", "SECURITY", "SELECT", "SEQUENCE",
2453 : "SEQUENCES", "SERIALIZABLE", "SERVER", "SESSION", "SESSION_USER", "SET",
2454 : "SETS", "SETOF", "SHARE", "SHOW", "SIMILAR", "SIMPLE", "SKIP",
2455 : "SMALLINT", "SNAPSHOT", "SOME", "SOURCE", "SQL_P", "STABLE",
2456 : "STANDALONE_P", "START", "STATEMENT", "STATISTICS", "STDIN", "STDOUT",
2457 : "STORAGE", "STORED", "STRICT_P", "STRING_P", "STRIP_P", "SUBSCRIPTION",
2458 : "SUBSTRING", "SUPPORT", "SYMMETRIC", "SYSID", "SYSTEM_P", "SYSTEM_USER",
2459 : "TABLE", "TABLES", "TABLESAMPLE", "TABLESPACE", "TARGET", "TEMP",
2460 : "TEMPLATE", "TEMPORARY", "TEXT_P", "THEN", "TIES", "TIME", "TIMESTAMP",
2461 : "TO", "TRAILING", "TRANSACTION", "TRANSFORM", "TREAT", "TRIGGER", "TRIM",
2462 : "TRUE_P", "TRUNCATE", "TRUSTED", "TYPE_P", "TYPES_P", "UESCAPE",
2463 : "UNBOUNDED", "UNCONDITIONAL", "UNCOMMITTED", "UNENCRYPTED", "UNION",
2464 : "UNIQUE", "UNKNOWN", "UNLISTEN", "UNLOGGED", "UNTIL", "UPDATE", "USER",
2465 : "USING", "VACUUM", "VALID", "VALIDATE", "VALIDATOR", "VALUE_P", "VALUES",
2466 : "VARCHAR", "VARIADIC", "VARYING", "VERBOSE", "VERSION_P", "VIEW",
2467 : "VIEWS", "VIRTUAL", "VOLATILE", "WHEN", "WHERE", "WHITESPACE_P",
2468 : "WINDOW", "WITH", "WITHIN", "WITHOUT", "WORK", "WRAPPER", "WRITE",
2469 : "XML_P", "XMLATTRIBUTES", "XMLCONCAT", "XMLELEMENT", "XMLEXISTS",
2470 : "XMLFOREST", "XMLNAMESPACES", "XMLPARSE", "XMLPI", "XMLROOT",
2471 : "XMLSERIALIZE", "XMLTABLE", "YEAR_P", "YES_P", "ZONE", "FORMAT_LA",
2472 : "NOT_LA", "NULLS_LA", "WITH_LA", "WITHOUT_LA", "MODE_TYPE_NAME",
2473 : "MODE_PLPGSQL_EXPR", "MODE_PLPGSQL_ASSIGN1", "MODE_PLPGSQL_ASSIGN2",
2474 : "MODE_PLPGSQL_ASSIGN3", "'<'", "'>'", "'='", "'+'", "'-'", "'*'", "'/'",
2475 : "'%'", "'^'", "UMINUS", "'['", "']'", "'('", "')'", "'.'", "';'", "','",
2476 : "':'", "$accept", "parse_toplevel", "stmtmulti", "toplevel_stmt", "stmt",
2477 : "opt_single_name", "opt_qualified_name", "opt_concurrently",
2478 : "opt_drop_behavior", "CallStmt", "CreateRoleStmt", "opt_with",
2479 : "OptRoleList", "AlterOptRoleList", "AlterOptRoleElem",
2480 : "CreateOptRoleElem", "CreateUserStmt", "AlterRoleStmt",
2481 : "opt_in_database", "AlterRoleSetStmt", "DropRoleStmt", "CreateGroupStmt",
2482 : "AlterGroupStmt", "add_drop", "CreateSchemaStmt", "OptSchemaEltList",
2483 : "schema_stmt", "VariableSetStmt", "set_rest", "generic_set",
2484 : "set_rest_more", "var_name", "var_list", "var_value", "iso_level",
2485 : "opt_boolean_or_string", "zone_value", "opt_encoding",
2486 : "NonReservedWord_or_Sconst", "VariableResetStmt", "reset_rest",
2487 : "generic_reset", "SetResetClause", "FunctionSetResetClause",
2488 : "VariableShowStmt", "ConstraintsSetStmt", "constraints_set_list",
2489 : "constraints_set_mode", "CheckPointStmt", "DiscardStmt",
2490 : "AlterTableStmt", "alter_table_cmds", "partition_cmd",
2491 : "index_partition_cmd", "alter_table_cmd", "alter_column_default",
2492 : "opt_collate_clause", "alter_using", "replica_identity", "reloptions",
2493 : "opt_reloptions", "reloption_list", "reloption_elem",
2494 : "alter_identity_column_option_list", "alter_identity_column_option",
2495 : "set_statistics_value", "set_access_method_name", "PartitionBoundSpec",
2496 : "hash_partbound_elem", "hash_partbound", "AlterCompositeTypeStmt",
2497 : "alter_type_cmds", "alter_type_cmd", "ClosePortalStmt", "CopyStmt",
2498 : "copy_from", "opt_program", "copy_file_name", "copy_options",
2499 : "copy_opt_list", "copy_opt_item", "opt_binary", "copy_delimiter",
2500 : "opt_using", "copy_generic_opt_list", "copy_generic_opt_elem",
2501 : "copy_generic_opt_arg", "copy_generic_opt_arg_list",
2502 : "copy_generic_opt_arg_list_item", "CreateStmt", "OptTemp",
2503 : "OptTableElementList", "OptTypedTableElementList", "TableElementList",
2504 : "TypedTableElementList", "TableElement", "TypedTableElement",
2505 : "columnDef", "columnOptions", "column_compression",
2506 : "opt_column_compression", "column_storage", "opt_column_storage",
2507 : "ColQualList", "ColConstraint", "ColConstraintElem",
2508 : "opt_unique_null_treatment", "generated_when", "opt_virtual_or_stored",
2509 : "ConstraintAttr", "TableLikeClause", "TableLikeOptionList",
2510 : "TableLikeOption", "TableConstraint", "ConstraintElem",
2511 : "DomainConstraint", "DomainConstraintElem", "opt_no_inherit",
2512 : "opt_without_overlaps", "opt_column_list", "columnList",
2513 : "optionalPeriodName", "opt_column_and_period_list", "columnElem",
2514 : "opt_c_include", "key_match", "ExclusionConstraintList",
2515 : "ExclusionConstraintElem", "OptWhereClause", "key_actions", "key_update",
2516 : "key_delete", "key_action", "OptInherit", "OptPartitionSpec",
2517 : "PartitionSpec", "part_params", "part_elem",
2518 : "table_access_method_clause", "OptWith", "OnCommitOption",
2519 : "OptTableSpace", "OptConsTableSpace", "ExistingIndex", "CreateStatsStmt",
2520 : "stats_params", "stats_param", "AlterStatsStmt", "CreateAsStmt",
2521 : "create_as_target", "opt_with_data", "CreateMatViewStmt",
2522 : "create_mv_target", "OptNoLog", "RefreshMatViewStmt", "CreateSeqStmt",
2523 : "AlterSeqStmt", "OptSeqOptList", "OptParenthesizedSeqOptList",
2524 : "SeqOptList", "SeqOptElem", "opt_by", "NumericOnly", "NumericOnly_list",
2525 : "CreatePLangStmt", "opt_trusted", "handler_name", "opt_inline_handler",
2526 : "validator_clause", "opt_validator", "opt_procedural",
2527 : "CreateTableSpaceStmt", "OptTableSpaceOwner", "DropTableSpaceStmt",
2528 : "CreateExtensionStmt", "create_extension_opt_list",
2529 : "create_extension_opt_item", "AlterExtensionStmt",
2530 : "alter_extension_opt_list", "alter_extension_opt_item",
2531 : "AlterExtensionContentsStmt", "CreateFdwStmt", "fdw_option",
2532 : "fdw_options", "opt_fdw_options", "AlterFdwStmt",
2533 : "create_generic_options", "generic_option_list", "alter_generic_options",
2534 : "alter_generic_option_list", "alter_generic_option_elem",
2535 : "generic_option_elem", "generic_option_name", "generic_option_arg",
2536 : "CreateForeignServerStmt", "opt_type", "foreign_server_version",
2537 : "opt_foreign_server_version", "AlterForeignServerStmt",
2538 : "CreateForeignTableStmt", "ImportForeignSchemaStmt",
2539 : "import_qualification_type", "import_qualification",
2540 : "CreateUserMappingStmt", "auth_ident", "DropUserMappingStmt",
2541 : "AlterUserMappingStmt", "CreatePolicyStmt", "AlterPolicyStmt",
2542 : "RowSecurityOptionalExpr", "RowSecurityOptionalWithCheck",
2543 : "RowSecurityDefaultToRole", "RowSecurityOptionalToRole",
2544 : "RowSecurityDefaultPermissive", "RowSecurityDefaultForCmd",
2545 : "row_security_cmd", "CreateAmStmt", "am_type", "CreateTrigStmt",
2546 : "TriggerActionTime", "TriggerEvents", "TriggerOneEvent",
2547 : "TriggerReferencing", "TriggerTransitions", "TriggerTransition",
2548 : "TransitionOldOrNew", "TransitionRowOrTable", "TransitionRelName",
2549 : "TriggerForSpec", "TriggerForOptEach", "TriggerForType", "TriggerWhen",
2550 : "FUNCTION_or_PROCEDURE", "TriggerFuncArgs", "TriggerFuncArg",
2551 : "OptConstrFromTable", "ConstraintAttributeSpec",
2552 : "ConstraintAttributeElem", "CreateEventTrigStmt",
2553 : "event_trigger_when_list", "event_trigger_when_item",
2554 : "event_trigger_value_list", "AlterEventTrigStmt", "enable_trigger",
2555 : "CreateAssertionStmt", "DefineStmt", "definition", "def_list",
2556 : "def_elem", "def_arg", "old_aggr_definition", "old_aggr_list",
2557 : "old_aggr_elem", "opt_enum_val_list", "enum_val_list", "AlterEnumStmt",
2558 : "opt_if_not_exists", "CreateOpClassStmt", "opclass_item_list",
2559 : "opclass_item", "opt_default", "opt_opfamily", "opclass_purpose",
2560 : "CreateOpFamilyStmt", "AlterOpFamilyStmt", "opclass_drop_list",
2561 : "opclass_drop", "DropOpClassStmt", "DropOpFamilyStmt", "DropOwnedStmt",
2562 : "ReassignOwnedStmt", "DropStmt", "object_type_any_name",
2563 : "object_type_name", "drop_type_name", "object_type_name_on_any_name",
2564 : "any_name_list", "any_name", "attrs", "type_name_list", "TruncateStmt",
2565 : "opt_restart_seqs", "CommentStmt", "comment_text", "SecLabelStmt",
2566 : "opt_provider", "security_label", "FetchStmt", "fetch_args", "from_in",
2567 : "opt_from_in", "GrantStmt", "RevokeStmt", "privileges", "privilege_list",
2568 : "privilege", "parameter_name_list", "parameter_name", "privilege_target",
2569 : "grantee_list", "grantee", "opt_grant_grant_option", "GrantRoleStmt",
2570 : "RevokeRoleStmt", "grant_role_opt_list", "grant_role_opt",
2571 : "grant_role_opt_value", "opt_granted_by", "AlterDefaultPrivilegesStmt",
2572 : "DefACLOptionList", "DefACLOption", "DefACLAction",
2573 : "defacl_privilege_target", "IndexStmt", "opt_unique",
2574 : "access_method_clause", "index_params", "index_elem_options",
2575 : "index_elem", "opt_include", "index_including_params", "opt_collate",
2576 : "opt_asc_desc", "opt_nulls_order", "CreateFunctionStmt",
2577 : "opt_or_replace", "func_args", "func_args_list",
2578 : "function_with_argtypes_list", "function_with_argtypes",
2579 : "func_args_with_defaults", "func_args_with_defaults_list", "func_arg",
2580 : "arg_class", "param_name", "func_return", "func_type",
2581 : "func_arg_with_default", "aggr_arg", "aggr_args", "aggr_args_list",
2582 : "aggregate_with_argtypes", "aggregate_with_argtypes_list",
2583 : "opt_createfunc_opt_list", "createfunc_opt_list", "common_func_opt_item",
2584 : "createfunc_opt_item", "func_as", "ReturnStmt", "opt_routine_body",
2585 : "routine_body_stmt_list", "routine_body_stmt", "transform_type_list",
2586 : "opt_definition", "table_func_column", "table_func_column_list",
2587 : "AlterFunctionStmt", "alterfunc_opt_list", "opt_restrict",
2588 : "RemoveFuncStmt", "RemoveAggrStmt", "RemoveOperStmt", "oper_argtypes",
2589 : "any_operator", "operator_with_argtypes_list", "operator_with_argtypes",
2590 : "DoStmt", "dostmt_opt_list", "dostmt_opt_item", "CreateCastStmt",
2591 : "cast_context", "DropCastStmt", "opt_if_exists", "CreateTransformStmt",
2592 : "transform_element_list", "DropTransformStmt", "ReindexStmt",
2593 : "reindex_target_relation", "reindex_target_all",
2594 : "opt_reindex_option_list", "AlterTblSpcStmt", "RenameStmt", "opt_column",
2595 : "opt_set_data", "AlterObjectDependsStmt", "opt_no",
2596 : "AlterObjectSchemaStmt", "AlterOperatorStmt", "operator_def_list",
2597 : "operator_def_elem", "operator_def_arg", "AlterTypeStmt",
2598 : "AlterOwnerStmt", "CreatePublicationStmt", "PublicationObjSpec",
2599 : "pub_obj_list", "AlterPublicationStmt", "CreateSubscriptionStmt",
2600 : "AlterSubscriptionStmt", "DropSubscriptionStmt", "RuleStmt",
2601 : "RuleActionList", "RuleActionMulti", "RuleActionStmt",
2602 : "RuleActionStmtOrEmpty", "event", "opt_instead", "NotifyStmt",
2603 : "notify_payload", "ListenStmt", "UnlistenStmt", "TransactionStmt",
2604 : "TransactionStmtLegacy", "opt_transaction", "transaction_mode_item",
2605 : "transaction_mode_list", "transaction_mode_list_or_empty",
2606 : "opt_transaction_chain", "ViewStmt", "opt_check_option", "LoadStmt",
2607 : "CreatedbStmt", "createdb_opt_list", "createdb_opt_items",
2608 : "createdb_opt_item", "createdb_opt_name", "opt_equal",
2609 : "AlterDatabaseStmt", "AlterDatabaseSetStmt", "DropdbStmt",
2610 : "drop_option_list", "drop_option", "AlterCollationStmt",
2611 : "AlterSystemStmt", "CreateDomainStmt", "AlterDomainStmt", "opt_as",
2612 : "AlterTSDictionaryStmt", "AlterTSConfigurationStmt", "any_with",
2613 : "CreateConversionStmt", "ClusterStmt", "cluster_index_specification",
2614 : "VacuumStmt", "AnalyzeStmt", "utility_option_list", "analyze_keyword",
2615 : "utility_option_elem", "utility_option_name", "utility_option_arg",
2616 : "opt_analyze", "opt_verbose", "opt_full", "opt_freeze", "opt_name_list",
2617 : "vacuum_relation", "vacuum_relation_list", "opt_vacuum_relation_list",
2618 : "ExplainStmt", "ExplainableStmt", "PrepareStmt", "prep_type_clause",
2619 : "PreparableStmt", "ExecuteStmt", "execute_param_clause",
2620 : "DeallocateStmt", "InsertStmt", "insert_target", "insert_rest",
2621 : "override_kind", "insert_column_list", "insert_column_item",
2622 : "opt_on_conflict", "opt_conf_expr", "returning_clause",
2623 : "returning_with_clause", "returning_options", "returning_option",
2624 : "returning_option_kind", "DeleteStmt", "using_clause", "LockStmt",
2625 : "opt_lock", "lock_type", "opt_nowait", "opt_nowait_or_skip",
2626 : "UpdateStmt", "set_clause_list", "set_clause", "set_target",
2627 : "set_target_list", "MergeStmt", "merge_when_list", "merge_when_clause",
2628 : "merge_when_tgt_matched", "merge_when_tgt_not_matched",
2629 : "opt_merge_when_condition", "merge_update", "merge_delete",
2630 : "merge_insert", "merge_values_clause", "DeclareCursorStmt",
2631 : "cursor_name", "cursor_options", "opt_hold", "SelectStmt",
2632 : "select_with_parens", "select_no_parens", "select_clause",
2633 : "simple_select", "with_clause", "cte_list", "common_table_expr",
2634 : "opt_materialized", "opt_search_clause", "opt_cycle_clause",
2635 : "opt_with_clause", "into_clause", "OptTempTableName", "opt_table",
2636 : "set_quantifier", "distinct_clause", "opt_all_clause",
2637 : "opt_distinct_clause", "opt_sort_clause", "sort_clause", "sortby_list",
2638 : "sortby", "select_limit", "opt_select_limit", "limit_clause",
2639 : "offset_clause", "select_limit_value", "select_offset_value",
2640 : "select_fetch_first_value", "I_or_F_const", "row_or_rows",
2641 : "first_or_next", "group_clause", "group_by_list", "group_by_item",
2642 : "empty_grouping_set", "rollup_clause", "cube_clause",
2643 : "grouping_sets_clause", "having_clause", "for_locking_clause",
2644 : "opt_for_locking_clause", "for_locking_items", "for_locking_item",
2645 : "for_locking_strength", "locked_rels_list", "values_clause",
2646 : "from_clause", "from_list", "table_ref", "joined_table", "alias_clause",
2647 : "opt_alias_clause", "opt_alias_clause_for_join_using",
2648 : "func_alias_clause", "join_type", "opt_outer", "join_qual",
2649 : "relation_expr", "extended_relation_expr", "relation_expr_list",
2650 : "relation_expr_opt_alias", "tablesample_clause", "opt_repeatable_clause",
2651 : "func_table", "rowsfrom_item", "rowsfrom_list", "opt_col_def_list",
2652 : "opt_ordinality", "where_clause", "where_or_current_clause",
2653 : "OptTableFuncElementList", "TableFuncElementList", "TableFuncElement",
2654 : "xmltable", "xmltable_column_list", "xmltable_column_el",
2655 : "xmltable_column_option_list", "xmltable_column_option_el",
2656 : "xml_namespace_list", "xml_namespace_el", "json_table",
2657 : "json_table_path_name_opt", "json_table_column_definition_list",
2658 : "json_table_column_definition", "path_opt",
2659 : "json_table_column_path_clause_opt", "Typename", "opt_array_bounds",
2660 : "SimpleTypename", "ConstTypename", "GenericType", "opt_type_modifiers",
2661 : "Numeric", "opt_float", "Bit", "ConstBit", "BitWithLength",
2662 : "BitWithoutLength", "Character", "ConstCharacter", "CharacterWithLength",
2663 : "CharacterWithoutLength", "character", "opt_varying", "ConstDatetime",
2664 : "ConstInterval", "opt_timezone", "opt_interval", "interval_second",
2665 : "JsonType", "a_expr", "b_expr", "c_expr", "func_application",
2666 : "func_expr", "func_expr_windowless", "func_expr_common_subexpr",
2667 : "xml_root_version", "opt_xml_root_standalone", "xml_attributes",
2668 : "xml_attribute_list", "xml_attribute_el", "document_or_content",
2669 : "xml_indent_option", "xml_whitespace_option", "xmlexists_argument",
2670 : "xml_passing_mech", "within_group_clause", "filter_clause",
2671 : "window_clause", "window_definition_list", "window_definition",
2672 : "over_clause", "window_specification", "opt_existing_window_name",
2673 : "opt_partition_clause", "opt_frame_clause", "frame_extent",
2674 : "frame_bound", "opt_window_exclusion_clause", "row", "explicit_row",
2675 : "implicit_row", "sub_type", "all_Op", "MathOp", "qual_Op", "qual_all_Op",
2676 : "subquery_Op", "expr_list", "func_arg_list", "func_arg_expr",
2677 : "func_arg_list_opt", "type_list", "array_expr", "array_expr_list",
2678 : "extract_list", "extract_arg", "unicode_normal_form", "overlay_list",
2679 : "position_list", "substr_list", "trim_list", "in_expr", "case_expr",
2680 : "when_clause_list", "when_clause", "case_default", "case_arg",
2681 : "columnref", "indirection_el", "opt_slice_bound", "indirection",
2682 : "opt_indirection", "opt_asymmetric", "json_passing_clause_opt",
2683 : "json_arguments", "json_argument", "json_wrapper_behavior",
2684 : "json_behavior", "json_behavior_type", "json_behavior_clause_opt",
2685 : "json_on_error_clause_opt", "json_value_expr", "json_format_clause",
2686 : "json_format_clause_opt", "json_quotes_clause_opt",
2687 : "json_returning_clause_opt", "json_predicate_type_constraint",
2688 : "json_key_uniqueness_constraint_opt", "json_name_and_value_list",
2689 : "json_name_and_value", "json_object_constructor_null_clause_opt",
2690 : "json_array_constructor_null_clause_opt", "json_value_expr_list",
2691 : "json_aggregate_func", "json_array_aggregate_order_by_clause_opt",
2692 : "opt_target_list", "target_list", "target_el", "qualified_name_list",
2693 : "qualified_name", "name_list", "name", "attr_name", "file_name",
2694 : "func_name", "AexprConst", "Iconst", "Sconst", "SignedIconst", "RoleId",
2695 : "RoleSpec", "role_list", "PLpgSQL_Expr", "PLAssignStmt",
2696 : "plassign_target", "plassign_equals", "ColId", "type_function_name",
2697 : "NonReservedWord", "ColLabel", "BareColLabel", "unreserved_keyword",
2698 : "col_name_keyword", "type_func_name_keyword", "reserved_keyword",
2699 : "bare_label_keyword", YY_NULLPTR
2700 : };
2701 :
2702 : static const char *
2703 : yysymbol_name (yysymbol_kind_t yysymbol)
2704 : {
2705 : return yytname[yysymbol];
2706 : }
2707 : #endif
2708 :
2709 : #define YYPACT_NINF (-5950)
2710 :
2711 : #define yypact_value_is_default(Yyn) \
2712 : ((Yyn) == YYPACT_NINF)
2713 :
2714 : #define YYTABLE_NINF (-3012)
2715 :
2716 : #define yytable_value_is_error(Yyn) \
2717 : ((Yyn) == YYTABLE_NINF)
2718 :
2719 : /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
2720 : STATE-NUM. */
2721 : static const int yypact[] =
2722 : {
2723 : 18907, 57, 22319, -5950, -5950, 57, 71864, -5950, 81573, 1501,
2724 : 903, 105, 239, 21650, 82084, 92815, 591, 402, 9883, 57,
2725 : 92815, 1074, 62154, 77485, 1029, 92815, 1518, 1161, 62154, 92815,
2726 : 93326, 1410, 1637, 1377, 93837, 82595, 76463, 113, 92815, 1692,
2727 : 463, 94348, 83106, 1625, 83617, 1161, 57055, 213, 1567, 94859,
2728 : 92815,119814, 463, 84128, 84128, 84128, 2431, 2279, 1783, -5950,
2729 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2730 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2731 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2732 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2733 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2734 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2735 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2736 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2737 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2738 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2739 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2740 : -5950, -5950, -5950, -5950, -5950, 1537, -5950, -5950, -5950, -5950,
2741 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 2925, -5950, 212,
2742 : 3240, 1417, 1229, 1710, -5950, -5950, 2426, 71864, 92815, 92815,
2743 : 92815, 2196, 92815, 2105, 92815, 964, 71864, 68287, 84639, 2265,
2744 : 2110, 52851, 95370, -5950, 71864, 92815, 65732, 71864, 92815, 92815,
2745 : 95881, 92815, 96392, 92815, 139, 80040, 92815, 2251, 92815, 92815,
2746 : 66243, 96903, 2357, 1649, 273, -5950, -5950, -5950, -5950, -5950,
2747 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2748 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2749 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2750 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2751 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2752 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2753 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2754 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2755 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2756 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2757 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2758 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2759 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2760 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2761 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2762 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2763 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2764 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2765 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2766 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2767 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2768 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2769 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2770 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2771 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2772 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2773 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2774 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2775 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2776 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2777 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2778 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2779 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2780 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2781 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2782 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2783 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2784 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2785 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2786 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2787 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2788 : -5950, -5950, 2119, 2066, -5950, 285, -5950, -5950, -5950, -5950,
2789 : -5950, -5950, -5950, -5950, -5950, 62665, 92815, 13260, 1518, 2426,
2790 : -5950, 2431, 92815, 2390, 92815, 2136, 97414, 92815, -5950, 92815,
2791 : 2178, 97925, 976, 84, 68287, 1824, 53381, 2308, 92815, 92815,
2792 : 68287, 98436, 98947, 99458, 92815, 92815, -5950, -5950, 2294, 92815,
2793 : -5950, 2415, 68798, 1855, 2437, 2627, 2511, 1493, -5950, 85150,
2794 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 71353, 402,
2795 : -5950, -5950, 2473, 72375, 2568, -5950, -5950, 99969,120311, 2323,
2796 : -5950, 999, 72886, 69309, 2707, 2372, 53911, 2754, -5950, 73397,
2797 : -5950, 69820, 73908, -5950, -5950, -5950, -5950, -5950,100480, -5950,
2798 : 100991, 2455, 2568, -5950,120808, 70331, -5950, 2636,101502,102013,
2799 : 102524, 2426, 2353, 1557, 2441, 47122, -5950, -5950, -5950, 2366,
2800 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 457,
2801 : 1802, 319, 264, 332, -5950, -5950, 274, 277, 283, 457,
2802 : 2873, 2873, -5950, 92815, -5950, -5950, 1802, 106, 2474, 2397,
2803 : 2397, 2397, 2598, 22, -5950, 2397, 2503, -5950, -5950, -5950,
2804 : -5950, 83617, -5950, 2387, 1518, 2401, 2883, 2465, 62665, 1189,
2805 : 92815, -5950, -5950, 2930, 2476, 2766, 2452, -5950, -5950, -5950,
2806 : 2709, 2711, 166, 782, 1518, 302, -5950, 2864, -5950, 2731,
2807 : 31907, 31907, 1518, 85661,103035, 340, 71353, 1518, 86172, 2534,
2808 : 276, 2735, -5950, -5950, -5950, 184, -5950, 3007, 2548, 2847,
2809 : 2452, 1649, 49190, -5950, -5950, 2566, 2066, 83617, -5950, -5950,
2810 : -5950, 62665, 2898, 35081, 92815, 2560, -5950, 2580, 2560, -5950,
2811 : -5950, 2647, -5950, 2647, 2647, 2625, 2625, 2798, 2644, -5950,
2812 : -5950, -5950, -5950, 2061, 2647, 2625, -5950,121802, -5950, 2012,
2813 : 2017, -5950, -5950, 3147, -5950, -5950, -5950, -5950, -5950, -5950,
2814 : -5950, -5950, 2649, -5950, 1392, -5950, 2044, -5950, -5950, -5950,
2815 : 31907, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 2661, 2681,
2816 : 1417, -5950, 8270, 62665, 83617, 1729, 1729, 3165, 1729, 2070,
2817 : 2082, -5950, 3333, -5950, 3050, 3010, 3014, 83617, 2752, 339,
2818 : -5950, 1927, 2758, 2090, 2700, 1942, 3306, -5950, 745, 92815,
2819 : 295, 2765, 86683, 4056, 2759, 2066, 2776, -5950, -5950, -5950,
2820 : -5950, 2875, 449, -5950, -5950, -5950, -5950, 3045, 3113, 5946,
2821 : 369, 87194, -5950, -5950, -5950, -5950, 92815, 92815, -5950, -5950,
2822 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 2790, 1560, -5950,
2823 : -5950, 2799, 3124, 3032, 9757, 1077, 3148, 2981, 2085, 10312,
2824 : 3044, 1859, 3200, 15841, 1643, 3204, 1970, 2541, 87705, 92815,
2825 : 3174, 3230, 5628, 1963, 948, 3081, 1513, 3148, 3223, 3035,
2826 : 2085, 3247, 2746, 92815, -5950, 3155, 3292, 832, -5950, 358,
2827 : -5950, 24556, 35081, 56544, -5950, 2066, -5950, 2072, -5950, -5950,
2828 : 61643, -5950, 2936, 3106, 131, 71864, 2882, 92815, 92815, -5950,
2829 : 119814, 71864, -5950, 3117, 54441, 71864, -5950, 71864, -5950, -5950,
2830 : 3249,119814, 92815, 92815, -5950, 92815, -5950, -5950, 2885, -5950,
2831 : -5950, -5950, -5950, -5950, 2397, 92815, 3351,119814, 3131, 180,
2832 : 1827, 3388, 92815, 3134, 1827, 2931,103546, -5950, -5950, 1827,
2833 : -5950, -5950, -5950, 92815, 92815, 2894, 2289, 3125, 928, 1827,
2834 : 3141, 3389, 3391, 3149, 2983, 3151, 2580, -5950, 3357, 3120,
2835 : 953, 247, 2205, 1827, 2965,104057,104568, 92815, 2977, 92815,
2836 : 3376, 71864, 3012, 71864, 71864, 92815, 3296, 92815, -5950, 3122,
2837 : -5950, -5950, 1471, -5950, -5950, -5950, -5950, -5950, 3314, -5950,
2838 : 240, 3315, 2942, 3321, 1946, 3324, 241, -5950, -5950, 2990,
2839 : -5950, 3335, 244, -5950, 3338, -5950, 2957,105079, -5950,105590,
2840 : 106101, 3340, 290, -5950, 68287, 3343, 244, 3344, 2957, 3346,
2841 : 244, 3348, 1007, 3350, -5950, 1028, 3337, 3352, 241, 3353,
2842 : 2250, 2957, -5950, 3354, 309, -5950, 3358, 390, -5950, 3360,
2843 : 3203, -5950, 35081, -5950, 3080, -5950, 1567, 2122, 2441, 1802,
2844 : -5950, 92815, 1802, 92815, 1802, 92815, 1802, 92815, 1802, 92815,
2845 : 92815, 92815, 1802, -5950, -5950, -5950, 92815, 2984, 92815, -5950,
2846 : 92815, -5950, -5950, -5950, 78507, 68287, 79018, -5950, 92815, -5950,
2847 : 858, 1518, -5950, -5950,119814, 3484, 68287, 3376, 2123, -5950,
2848 : -5950, 3376, -5950, -5950, 3376, 3376, -5950, -5950, -5950, 3271,
2849 : 92815, 3356, 78507, 68287, 3362, -5950,106612, -5950, 71353, 3216,
2850 : 2999, -5950, -5950, -5950, -5950, -5950, 2086, 3531, 292, 3532,
2851 : 35081, 3008, 292, 292, 3011, 3371, -5950, -5950, -5950, 300,
2852 : 3015, 3017, -5950, 303, 303, -5950, 3019, 3024, -5950, 308,
2853 : 3025, 3026, 3542, 3561, 321, 327, 3033, 3034, 3038, 3039,
2854 : 3042, 3046, 3047, 3049, 3053, 3055, 3059, 3060, 3064, 2061,
2855 : 292, 3065, 35081, -5950, 3067, 303, 3068, 3070, 3071, 3565,
2856 : 3072, -5950, 3575, 3073, -5950, 272, 315, 3074, 3075, -5950,
2857 : 3322, -5950, 328, 3085, 3087, 3090, 3091, 3093, 3094, 3095,
2858 : 3097, 35081, 35081, 35081, -5950, 29257, 2066, 1518, -5950, -5950,
2859 : -5950, -5950, -5950, -5950, -5950, -5950, 334, -5950, 51261, -5950,
2860 : 3140, -5950, -5950, 3323, -5950, -5950, 35081, -5950, -5950, 3470,
2861 : 860, -5950, 346, -5950, -5950, -5950, 2066, 3421, 3108, -5950,
2862 : -5950, 1699, 3111, -5950, 1152, -5950, -5950, -5950, -5950, -5950,
2863 : -5950, 70842, 3612, -5950, 380, 1518, 358, 1484, 3549, 60110,
2864 : 60621, -5950, -5950, 3402, -5950, 92815, -5950, -5950, 2066, 231,
2865 : 2130, -5950, 2366, 21127, 2143, 2560, 92815, 92815, 3617, -5950,
2866 : 3123, -5950, -5950, 35081, -5950, -5950, -5950, 2873, -5950, 2647,
2867 : 2647, -5950, -5950, 3619, 3214, 3217, 2873, -5950, 2873, -5950,
2868 : 3130, 3135, 2873, 3220, 3224, 3225, -5950, 3139, 3228, 2873,
2869 : -5950, -5950, 63688, 2112, -5950, 3499, 375, -5950, -5950, -5950,
2870 : 2151, -5950, 3150, -5950, 2580, -5950, -5950, 1417, 1417, 35081,
2871 : 1417, 965, 1313, 32436, 35610, 3508, 3379, 307, 1601, 3515,
2872 : -5950, 3384, 2070, 2082, 83617, 92815, 83617,107123, 3286, 35081,
2873 : -5950, 3624, 3246, 3248, 3307, 59099, -5950, 3250, 3215, 3253,
2874 : 3312, 3168, 3255, 3259, 3318, -5950, 3458, -5950, -5950, 3265,
2875 : 3635, 3267,107634, -5950, -5950, 985, -5950, -5950, -5950, 985,
2876 : -5950, 3195, 1334, 1441, 1390, 3275, 414, 255, 3632, -5950,
2877 : 1401, -5950, -5950, 3339, -5950, 22178, 92815, 3567, 6817, 3417,
2878 : 369, 3336, -5950, -5950, -5950, 3479, 3282, 92815, 3284, 3435,
2879 : 369, 992,108145, -5950, -5950, 92815, -5950, -5950, -5950, -5950,
2880 : 6180, 3606, 27732, -5950, 1951, 3288, 3263, 3299, 92815, 74930,
2881 : 440, 3407, 3429, 1660, 2236, 291, 3361, 92815, 1912, 3437,
2882 : 92815, 3206, 3295, 3297, 3553, 3213, 1166, 3658, 3211, -5950,
2883 : -5950, -5950, 3626, -5950, 1530, 1897, 3433, -5950, 3562, 3597,
2884 : 7471, 3298, 3301,117826, -5950, 3320, 772, 54971, 92815, 92815,
2885 : 3327, 3329,108656, 6180, 3641, 79529, 79529, 3332, 3341, 48673,
2886 : 3656, 829, 3342, -5950, -5950, -5950, 829, 3345, 3349,109167,
2887 : 6180, 3644, 92815, 3359, 3363, 92815,121802, 369, -5950, 3722,
2888 : -5950, 369, 369, 2260, 3723, 3364, 399, 3506, 636, 1827,
2889 : -5950, 3211, 2453, -5950, 3372, 3375, 1024, -5950, 3471, 92815,
2890 : 3377, 3378, 1847, 3431, 1518, -5950, 3434, -5950, 3380, 3438,
2891 : 3382, 86, 2894, -5950, -5950, 1311, 3365, 83617, 3455, 3463,
2892 : 1912, 496, 1034, 3211, -5950, 3383, 3385, 3213, 3213, 92815,
2893 : 92815, 92815, 92815, 92815, 281, 3749, 326, 3386, 298, 1069,
2894 : 3260, -5950, 829, 66754, 3390, -5950, 829, 92815, 289, 1130,
2895 : 3211, 1870, 2095, -5950, -5950, -5950, 1649, -5950, 35081, 35081,
2896 : 35081, 3264, -5950, 2432, 21127, 112, -5950, 348, 17010, 3283,
2897 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2898 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2899 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2900 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2901 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2902 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2903 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2904 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2905 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 92815, 62665, -5950,
2906 : -5950, -5950, -5950, -5950, -5950, -5950, 92815, -5950, 92815, 3579,
2907 : 119814, 3580, 3496, 3583, 3602, 369, 92815, 92815, 3611, 3614,
2908 : 3616,119814, 3618, 3622, 3623, 3534, 3394, 219, 3393, 3313,
2909 : 3814, 3697, 92815, 63688, -5950, 985, -5950,119814, 3546, 3709,
2910 : -5950, 92815, 3576, 98, -5950, 3748, 3397, -5950, -5950, 111,
2911 : 92815, 77996, 2894, -5950, -5950, 3713, 68287, 1737, 3714, 1518,
2912 : 3392, 3717, 3569, 1518, 68287, 3620, 92815, 92815, 92815, 92815,
2913 : 189, -5950, 66754, 3584, -5950, 92815, 3588, 2453, 3589, 3848,
2914 : 921, 2397,109678, 3715, -5950,110189, 3367, 92815, 3368, 3368,
2915 : 3851,119814, 1492, 3647, -5950, -5950, 2337, -5950, 3501, -5950,
2916 : 71864, -5950, -5950, 71864, -5950, -5950,119814, 92815, 3370,119814,
2917 : 119814, -5950, -5950, 71864, 71864, -5950, 68287, 68287, 3736, 309,
2918 : 3737, 3424, 3740, 3439, 54971, 54971, -5950, 394, 71864, -5950,
2919 : 68287, 71864, -5950, 92815, -5950, 92815, -5950, -5950, -5950, -5950,
2920 : 119814,119814, -5950, 68287, 66754, 3750, 92815, 92815, -5950, 92815,
2921 : 92815, -5950, 92815, 92815, 2157,110700, 2441, -5950, 92815, -5950,
2922 : 92815, -5950, 92815, -5950, 92815, -5950, 92815, -5950, -5950, -5950,
2923 : 92815, -5950, 92815, 2163, -5950, -5950, 2174, 1592, 92815, 92815,
2924 : 1095, 71864, 92815, 3605, 92815, 71864, 71864, 92815, 92815, 92815,
2925 : 92815, 92815, 3462, 3111, 893, -5950, 349, 977, 83617, 3621,
2926 : -5950, -5950, 2175, 2431, 50, 92815, -5950, 92815, 92815, 92815,
2927 : -5950, -5950, 77485, 3733, 446, 79018, 92815, -5950, -5950, 4223,
2928 : 35081, 2066, 31373, -5950, -5950, 21127, 3426, 35081, 35081, 3381,
2929 : 2873, 2873, -5950, 1003, 35081, 35081, 35081, 28728, 35081, 35081,
2930 : 32965, 35081, 35081, 35081, 35081, 35081, 35081, 2873, 2873, 3387,
2931 : 35081, 6186, 35081, 54971, 35081, 40900, 25626, 35081, 35081, 29786,
2932 : 314, 3019, 35081, 3639, 41952, 35081, 1484, 3642, 35081, 1484,
2933 : 6186, 3907, 3907, 2278, 8894, 3395, 2066, -5950, 2873, 1089,
2934 : -5950, 545,119814, 35081, 35081, 35081, -5950, -5950, -5950, -5950,
2935 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2936 : -5950, 35081, -5950, 63688, -5950, -5950, -5950, -5950, -5950, -5950,
2937 : 183, -5950, -5950, -5950, -5950, -5950, -5950, 3226, -5950, -5950,
2938 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2939 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2940 : -5950, 92815, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2941 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2942 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2943 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2944 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2945 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2946 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2947 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2948 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2949 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2950 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 30315,
2951 : -5950, -5950, -5950, -5950, 3400, -5950, -5950, -5950, -5950, -5950,
2952 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2953 : -5950, -5950, -5950, -5950, -5950, 2890, -5950, -5950, -5950, -5950,
2954 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2955 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2956 : -5950, -5950, -5950, 30844, -5950, -5950, -5950, -5950, -5950, -5950,
2957 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2958 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2959 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2960 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2961 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 3401, -5950, -5950,
2962 : 35081, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2963 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2964 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2965 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2966 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2967 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2968 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2969 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2970 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 3473, -5950, -5950,
2971 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2972 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2973 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2974 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2975 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2976 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2977 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2978 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2979 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
2980 : -5950, -5950, -5950, -5950, 942, 35081, 35081, 35081, 35081, 35081,
2981 : 35081, 35081, 35081, 35081, -5950, 35081, 548, -5950, -5950, 3735,
2982 : 3470, 719, 627, 3403, 3604, 88216, 31907, 3499, 24556, -5950,
2983 : 293, 3499, -5950, -5950, -5950, 92815, 3612, -5950, -5950, 3476,
2984 : -5950, -5950, -5950, -5950, -5950, 351, -5950, -5950, -5950, -5950,
2985 : -5950, -5950, -5950, 3406, -5950, -5950, -5950, -5950, 3406, -5950,
2986 : 3405, 3728, 3732, 1007, 83617, 2517, 35081, 183, 282, 92815,
2987 : 35081, 3400, 2890, 35081, 3401, 35081, 3473, -5950, 35081, -5950,
2988 : 2208, 245, 35081, 2228, 3410, -5950, -5950, 3396, 3135, 3416,
2989 : 3430, 3411, 3412, 2873, 262, 3414, 1434, 203, 3558, 2873,
2990 : 3678, 3418, -5950, 63688, -5950, 44020, 3466, -5950, -5950, -5950,
2991 : 463, 83617, 83617, -5950, 3741, -5950, 3427, -5950, 17325, 3741,
2992 : -5950, -5950, 41426, 3551, 3720, 3653, -5950, -5950, -5950, 3432,
2993 : 21127, 36139, 36139, -5950, 2342, 21127, 2347, -5950, -5950, -5950,
2994 : -5950, -5950, -5950, 1629, -5950, 92815, 848, 3508, 1601, 3485,
2995 : 1333, 3933, 3504, 92815, -5950, 49707, 2229, -5950, 68287, 92815,
2996 : 92815, 3655, -5950, 3919, -5950,121802, -5950, 3442, -5950,121305,
2997 : 116832, -5950, -5950, 1151, -5950, 1449, 68287, -5950, 92815, 92815,
2998 : 68287, 92815, 92815, -5950, 68287, 3497, 92815, 92815, -5950, -5950,
2999 : -5950, -5950, -5950, 61132, 1099, 77485, 3590, 76974, -5950, -5950,
3000 : 3451, 92815, 3691, -5950, -5950,111211, -5950, 3692, 68287, 92815,
3001 : 92815, 35081, 3693, 92815, 92815, -5950, 411, 3545, 3547, -5950,
3002 : 92815, 3550, 71864, 3461,119814, 71864, 55501, 71864, 71864, 3822,
3003 : 119814, 92815, 92815, 1485, 83617, 514, 1165, 3211, 3702, -5950,
3004 : 1483, -5950, 68287, -5950, 92815, 3694, -5950, -5950, -5950, 88727,
3005 : 3953, 3591, -5950, -5950, -5950,111722, -5950, -5950, 3695, -5950,
3006 : 2243, -5950, 68287, 68287, 92815, 7629, 3472,112233, 92815, 1102,
3007 : 3761, 3716, 3712, 3766, 1142, -5950, -5950, -5950,119814, -5950,
3008 : 92815, 89238, 92815, 92815, 3759, 92815, 80551,112744,113255, 1564,
3009 : 1638, 3760, 92815, 81062, 3762, -5950, 3628, 92815, -5950, -5950,
3010 : 64199, 68287, 92815, 221, 63688, -5950, 3744, -5950, 92815, -5950,
3011 : 956, -5950, 92815, 8086, 3706, -5950, -5950, 3570, 3581, 92815,
3012 : 520, 1236, 3211, 3889, 92815, 92815, 3482, 2245, 68287, 92815,
3013 : 63688, -5950, 3718, 799, 68287, 92815, 88727, -5950, 3719, -5950,
3014 : 83617, 3821, -5950, 3486, 2397, 2566, 2079, 3486, 68287, 92815,
3015 : -5950, 3486, 92815,103035, -5950, 68287, 1207, -5950, 68287, 92815,
3016 : 88727, -5950, 3726, 3657, 68287, 92815, 18461, -5950, -5950, -5950,
3017 : 369, -5950, -5950, -5950, -5950, -5950, 92815, 92815, 369, 92815,
3018 : 92815, 369, 1746, -5950, 68287, 92815, -5950, -5950, -5950, 3627,
3019 : 68287, 92815, 92815, 366, 92815, -5950, 92815, 68287, 3539, 92815,
3020 : 92815, -5950, -5950, 92815, 7036, 92815, 92815, 92815, 92815, 92815,
3021 : 92815, 68287, 92815, -5950, -5950, 2338, 1140, 830, 1162, 207,
3022 : 92815, 3828, 92815,113766, 1518, 68287, 92815, 92815, 1518, 92815,
3023 : 63688, 1794, -5950, -5950, 3633, -5950, 68287, 1207, -5950, 8066,
3024 : 92815, 92815, 92815, 3592, 3593, 278, 3670, -5950, -5950, -5950,
3025 : 935, 935, 3721, -5950, 35081, 35081, 33494, 3505, -5950, -5950,
3026 : 35081, 2936, -5950, -5950, -5950, 1075, 4005, 1075,114277, 1075,
3027 : 1075, 3820, 3573, 3587, 1075, 1075, 1075, 3809, 1075, 1075,
3028 : 1075, 92815, 3705, -5950, -5950, 3705, 865, 35081,119814, 92815,
3029 : -5950, 2259, -5950, 3528, -5950, -5950, 63688, 92815, 234, 987,
3030 : 3903, 3758, 75441, 2288, 3892, 92815, 3582, 92815, 4027, 3630,
3031 : 1498, -5950, 2288, 92815, -5950, 3110, 77485, -5950, -5950, -5950,
3032 : -5950, -5950, -5950, -5950, 92815, -5950, -5950, 3894, 92815, 44537,
3033 : 3724, -5950, 1518, 2894, 2894, 2894, 2894, 3533, 2894, 92815,
3034 : 3671, 3915, 2288, 3538, 3917, -5950, 2453, 3918, 2007, 92815,
3035 : 3774, 75441, 3608, 3586, 3789, 4045, 2397, 1518, 3791, 3775,
3036 : -5950, 59599, -5950, 2894, 4060, 28230, 4657, 5328, 3778, 3845,
3037 : -5950, -5950, 3790, 959, 92815, 3900, 3902, 3926, -5950, 240,
3038 : -5950, 4061, 1946, 3928, 241, -5950, 244, -5950, 2957, -5950,
3039 : 92815, -5950, 92815, 92815, 92815, 92815, 290, -5950, -5950, 244,
3040 : 2957, 244, 1007, -5950, 3858, 241, 2957, 3704, 3934, 309,
3041 : -5950, 390, -5950, 3795, 1007, -5950, 3815, 2397, -5950, -5950,
3042 : -5950, -5950, -5950, -5950, -5950, 2267, -5950, 92815, -5950, 3908,
3043 : 3910, 3911, 3913, 3914, 3577, 3596, 3640, 92815, 3601, 3577,
3044 : 369, 3603, 3585, -5950, 3601, 3601, 3577, 3111, 3111, 3577,
3045 : 3596, 67265, 4065, 63688, -5950, -5950, 3696, 3609, 3964, 878,
3046 : -5950, 883, 87, 3872, -5950, -5950, -5950, -5950,119814, -5950,
3047 : 68287, 3659, -5950, -5950, -5950, 3839, 3610, 67265, 1007, 172,
3048 : -5950, 71864, 92815,119814, 71864, 3854, 71864, 71864,119814, 92815,
3049 : 92815, 2277, -5950, -13, -5950, 2019, 35081, 558, -5950, 18188,
3050 : 2281, 35081, 3625, 3629, -5950, -5950, -5950, -5950, -5950, -5950,
3051 : -5950, 3634, 3980, -5950, 2283, 2299, 18294, 2360,119814, 2518,
3052 : 3645, -5950, 3646, 261, 3844, 3651, 3743, 3683, 2322, 3650,
3053 : 301, -5950, 3743, 1114, 3660, 9087, 3788, 3663, 2328, 3661,
3054 : 3667, -5950, 7001, 7654, 3668, 18825, 3669, 3676, 3677, 3631,
3055 : 40900, 40900, 29257, 1119, -5950, 40900, 3679, 3847, 2332, 17083,
3056 : 3680, 3682, 19001, 34023, 35081, 34023, 34023, 19139, 3686, 3701,
3057 : -5950, 4046, -5950, 2348, 63688, 3850, 19531, 2361, -5950, 35081,
3058 : 63688, 8492, 35081, -5950, 35081, 3708, -5950, -5950, 2928, 2928,
3059 : 2928, 6186, -5950, -5950, 3672, -5950, 40900, 40900, -5950, 1676,
3060 : 29257, -5950, -5950, 4006, -5950, -5950, 265, -5950, -5950, -5950,
3061 : -5950, -5950, 3355, -5950, -5950, -5950, 3896, 2360, 3287, 54971,
3062 : 3648, 35081, 368, 35081, 3400, 35081, 3781, 2928, 2928, 2928,
3063 : 389, 389, 336, 336, 336, 2131, 627, -5950, -5950, -5950,
3064 : 3703, 3711, 3604, 3725, 35081, -5950, 3707, 50224, -5950, 2526,
3065 : 2654, 92815, 4741, 4878, 6450, -5950, -5950, -5950, 3466, 112,
3066 : 3466, -5950, 1649, 2873, 1089, 61643, -5950, -5950, -5950, -5950,
3067 : -5950, -5950, 83617, 21127, -5950, -5950, 3929, 3727, 2362, -5950,
3068 : -5950, 2873, -5950, -5950, 2181, 2181, 3673, -5950, 3729, -5950,
3069 : -5950, -5950, -5950, -5950, -5950, -5950, 3739, -5950, -5950, -5950,
3070 : 3730, 3742, 45054, 4063, 3746, 43503, 89749, 3710, 2684, -5950,
3071 : 89749, 90260, 89749, 89749, -5950, 3745, -5950, -5950, 2066, 35081,
3072 : 4055, -5950, -5950, -5950, 35081, -5950, -5950, 1828, 3763, 1056,
3073 : 1250, 2321, 2321, 2342, 1298, -5950, -5950, 3782, -5950, 35081,
3074 : 2364, -5950, 2371, -5950, -5950, -5950, -5950, 3111, -5950, 3990,
3075 : -5950, -5950, -5950, 44020, 3767, 3777, 75, 48156, 3949, -5950,
3076 : 92815, 44020, -5950, 92815, 223, -5950, 3734, -5950, -5950, -5950,
3077 : -5950, -5950, -5950,116832, 2044, -5950,121305, -5950,121305, -5950,
3078 : 2044, 4206, -5950,116832, 1939, -5950, -5950, -5950, -5950, -5950,
3079 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 68287, 68287,
3080 : 3970, 92815, 3972, 3973, 35081, 1172, -5950, 4132, 1007, -5950,
3081 : -5950, 3843, -5950, 21127, -5950, -5950, -5950, -5950, -5950, 68287,
3082 : 92815, -5950, 71353, -5950, -5950,119814, -5950, -5950, 92815, 92815,
3083 : -5950, -5950, -5950,119814, -5950, -5950, -5950, 92815, 197, 3846,
3084 : 3852, 92815, -5950, 1338, 3471, 8116, 92815, 92815, 92815, 4077,
3085 : -5950, -5950, -5950, -5950, 3995, -5950, 4134, -5950,116832, -5950,
3086 : 2957, 153, 3853, 3211, 35081, 4011, -5950, 925, 92815, 3770,
3087 : 3771, 4141, 92815, 1653, 4101, 3776, -5950, 3888, 4104, 3912,
3088 : 2107, -5950, -5950, 3922, -5950, -5950, -5950, -5950, 4156, 1007,
3089 : 4160, 1007, 92815, 92815, 92815, 92815, 3927, -5950, -5950, -5950,
3090 : -5950, 3930, 4069, -5950, 63688, 63688, 63688, 2376, -5950, -5950,
3091 : 1518, -5950, -5950, -5950, -5950, -5950, -5950, 4116, -5950, 2381,
3092 : -5950, 668, 90771, -5950, -5950, -5950, -5950, -5950, 4163, 68287,
3093 : 92815, 9411, 92815, 92815, 92815, 4016, 2068, 1155,119814, -5950,
3094 : 118323, -5950, -5950, 2386, -5950, 3801, 92815, 3880, 68287, 3856,
3095 : -5950, -5950, -5950, 4169, 2397, 3941, 79529, 3842, 3842, 2109,
3096 : -5950, -5950, -5950, -5950, -5950, 4079, 4002, -5950, 1080, 4003,
3097 : 68287, 3868, -5950, -5950, -5950, -5950, 4178, 3895, -5950, -5950,
3098 : 3898, 1349, 3211, 2453, -5950, -5950, -5950, -5950, -5950, -5950,
3099 : -5950, -5950, -5950, 3920, -5950, -5950, -5950, -5950, -5950, -5950,
3100 : 1700, 1700, -5950, -5950, -5950, 1700, 1239, 543, 1445, 3211,
3101 : -5950, 371, 1487, 3899, -5950, 3904, -5950, -5950, -5950, 4084,
3102 : 4086, 4087, 3916, 3923, 3966, 3924, 3925, 3975, -5950, 3931,
3103 : 3976, 3932, 3977, 3937, 4235, 1007,119814, 4075, 1518, 3971,
3104 : 4218, 1007, -5950, -5950, 3938, -5950, 3939, -5950, 2391, 4330,
3105 : 4331, -5950, 92815, -5950, 550, 1854, 3211, -5950, 3940, -5950,
3106 : 68287, 92815, -5950, -5950, -5950, 35081, 3855, 3857, 3859, 21127,
3107 : 21127, 35081, -5950, -5950, 21127, 3860, -5950, -5950, -5950, -5950,
3108 : 119814, -5950, 92815, 4164, -5950, -5950, 1075, 92815, 92815, -5950,
3109 : -5950, -5950, 92815, -5950, -5950, -5950, 4165, -5950, 533, 533,
3110 : -5950, -5950, 4201, 9159, 3861, 355, -5950, 63688, 51791, 4522,
3111 : 202, 1827, -5950, 71353, 92815, 71353, -5950, 987, 4085, 92815,
3112 : 92815, 92815, 3863, 3862, -5950, -5950, -5950, -5950, 68287, 901,
3113 : 68287, 2873, -5950, -5950, 3943, -5950, 92815, 2397, 4401, 4233,
3114 : 3539, -5950, 4358, 3391, 1737, 1911, 529, 2983, 4294, 2580,
3115 : 35081, 362, -5950, -5950, 2066, 92815, 3586, -5950, -5950, -5950,
3116 : -5950, 1518, -5950, 3871, 3869, -5950, 92815, 4238, 92815, 92815,
3117 : 92815, 92815, 3659, 3875, 92815, 3877,119814, 92815, 2640, 3213,
3118 : 4374, 4257, 2431, 3608, 3968, 4260, 83617, 3893, 2392, -5950,
3119 : -5950, 959, -5950, 2412, 209, -5950, 1518, 71353,117329, 4250,
3120 : -5950, 333, 5328, -5950, -5950, 333, 1026, 92815, -5950, -5950,
3121 : -5950, -5950, 4119, 2232, -5950, 4236, -5950, -5950, 2431, -5950,
3122 : 119814, 3901, -5950, 2417, -5950, -5950, -5950, 309, 3958, 1007,
3123 : 3965, 1007, -5950, -5950, -5950, -5950, 92815, -5950, 92815, 66754,
3124 : -5950, -5950, 92815, -5950, 4281, -5950, -5950, 4051, 4053, 4054,
3125 : 4057, 4058, 92815, 3577, -5950, 3905, 92815, 92815, 68287, 1785,
3126 : -5950, -5950, 68287, 456, -5950, 206, -5950, 83617, 4049, -5950,
3127 : -5950, -5950, -5950, 4290, 4296, -5950, -5950, -5950, 983, -5950,
3128 : 78507, 468, -5950, 68287, 4225, 4228, 4229, 4230, 369, 4231,
3129 : 4232, 4237, 4239, 4240, -5950, -5950, -5950, 3935, 19388, 35081,
3130 : -5950, 4311,119814, -5950, 9689, -5950, -5950, -5950, 35081, -5950,
3131 : -5950, 4234, -5950, -5950, 3994, 4000, 3936, 3645, 3788, -5950,
3132 : 4151, 4157, 35081, 3788, 4411, 1121, 35081, 35081, 35081, -5950,
3133 : -5950, 4161, 4166, 35081, 2360, 2360, 35081, -5950, 3942, 35081,
3134 : -5950, -5950, -5950, -5950, 2339, 35081, -5950, 35081, -5950, -5950,
3135 : 26161, 4461, 4461, 3945,119814, 40900, 40900, 40900, 40900, 1830,
3136 : 3068, 40900, 40900, 40900, 40900, 40900, 40900, 40900, 40900, 40900,
3137 : 40900, 488, -5950, 4153, 35081, 35081, 34552, -5950, -5950,119814,
3138 : 3946, 3686, 3950, 3951, 35081, -5950, -5950, -5950, 2419, 42469,
3139 : 3952, 63688, -5950, 35081, 18125, 2425, 3993, 19669, 2066, 10506,
3140 : 1518, 35081, 1251, 1731, 35081, 2434, 35081, -5950, -5950, -5950,
3141 : -5950, 4300, -5950, -5950, -5950, -5950, -5950, -5950, 4188, 2360,
3142 : -5950, -5950, 35081, 3955, 3520, 40900, 40900, 4869, -5950, 4983,
3143 : 35081, 29257, -5950, 3721, -5950, 26696, 3954, 35081,116321, -5950,
3144 : -5950, 1161, 1161, 1161, 1161, -5950, 92815, 92815, 92815, 4055,
3145 : 3959, 4055, 358, 3960, -5950, -5950, -5950, -5950, 2431, -5950,
3146 : 3947, -5950, -5950, -5950, -5950, -5950, 35081, 89749, 90260, 89749,
3147 : 89749, 3962, 42986, 27214, 2684, 3963, 92815, -5950, -5950, 3967,
3148 : 44020, 4271, 4181, -5950, 44020, 4181, 1644, 4181, 4274, 4067,
3149 : 50741, -5950, -5950, 3969, -5950, -5950, 4189, -5950, 1951, 21127,
3150 : 4448, 4317, -5950, 3974, -5950, 3763, 1976, -5950, -5950, -5950,
3151 : 1303, -5950, 4064, -5950, -5950, -5950, 3710, 36668, 4136, -5950,
3152 : -5950, -5950, 4035, 2435, -5950, -5950, 4424, 4136, -5950, 2313,
3153 : -5950, 2439, 49707, 3767, 35081, 2066, 2458, 1985, -5950, -5950,
3154 : 116832, -5950, 4059, 2957, 2957, 2813, 3577, 4343, 2813, 10814,
3155 : -5950, 1909, 92815, -5950, 92815, -5950, -5950, -5950, 4478, 4047,
3156 : 4048, 4275, -5950, 2700, -5950, -5950, 68287, 92815, -5950, -5950,
3157 : -5950, 556, 1971, 3211, -5950, 4070, -5950, -5950, 4307, 92815,
3158 : -5950, 4464, 4089, 92815, 10914, 4367, 4062, -5950, -5950, 45571,
3159 : 92815, 92815, -5950, 92815, -5950, 92815, 92815, 1909, 91282, -5950,
3160 : 4442, -5950, 1909, 4109, 4348, 1858, 3213, 399, 6846, -5950,
3161 : 1978, -5950, -5950, 4073, -5950, 92815, -5950, 92815, -5950, -5950,
3162 : -5950, -5950, -5950, -5950, -5950, 4137, -5950, -5950, -5950, -5950,
3163 : 64199, -5950, -5950, 92815, -5950, 63688, 51791, 63688, -5950, -5950,
3164 : -5950, 92815, -5950, 1563, 559, 1972, 3211, -5950, 4088, -5950,
3165 : 4372, 4091, 4093, 4144, 252, 1380, 4094, 4095, 4147, 4008,
3166 : 4009, 4010, -5950, 63688, 52321, 4182, 92815, 2957, 4013, 4066,
3167 : 92815, 3842, 91793, -5950, 4015, -5950, -5950, 3842, 457, 1518,
3168 : -5950, -5950, 1518, 2957, 1518, 92815, 92815, 92815, 92815, 366,
3169 : -5950, -5950, -5950, 4493, 4115, 92815, 92815, 92815, 92815, -5950,
3170 : 4076, -5950, -5950, -5950, 92815, 92815, 4384, 1090, 2287, 68287,
3171 : 92815, 92815, 68287, 92815, 92815, 92815, 92815, 92815, 92815, 92815,
3172 : 4247, -5950, 4480, 4402, 2315, 4449, 4108, 92815, -5950, 92815,
3173 : 1518, -5950, 3471, 92815, 92815, 92815, 92815, -5950, -5950, -5950,
3174 : -5950, -5950, 3721, -5950, 4030, 4344, 1075, -5950, 4345, 4346,
3175 : 4349, 1075, -5950, -5950, 1827, -5950, 552, 92815, -5950, 2678,
3176 : 92815, -5950, -5950, -5950, 3974, 1530, 1897, -5950, -5950, -5950,
3177 : -5950, -5950, -5950, 4032, 92815, 92815, 40900, -5950, -5950, 477,
3178 : 1738, 1550, -5950, 4334, 92815, 3322, -5950, -5950, -5950, 267,
3179 : 92815, -5950, -5950, -5950, -5950, 4041, -5950, 779, 3875, -5950,
3180 : 4368, 75441, 2957, 68287, 68287, 2957, -5950,119814, 4043, 3586,
3181 : -5950, 306, 4133, -5950, 68287, 1737,114788, 3392, 4090, 4272,
3182 : 11350, 44020, 44537, 1700, -5950, 4052, 4044, -5950, -5950, 92815,
3183 : 4085, 66754, 2460, 2453, 4550, 1411, 2353, -5950, 75952, 4259,
3184 : 3875, 4368, -5950, 3213, 4284, 4282, -5950, 2431, 92815, 3659,
3185 : 3586, 1518, 92815, 4062, 51791, -5950, 4593, 2273, -5950,116832,
3186 : 35081, 35081, -5950, 4068, -5950, 4071, 5328, -5950, 4139, 4078,
3187 : 4554, 35081, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3188 : 4168, 4081, 92815, 92815, 959, 92815, -5950, 4072, 3928, -5950,
3189 : 3928, -5950, 92815, -5950, 92815, -5950, 1007, -5950, 4199, 1007,
3190 : 92815, 92815, 92815, 92815, 92815, 92815, 3577, 369, 3585, -5950,
3191 : -5950, 4417, 67265, 4419, -5950, 63688, -5950, -5950, -5950, -5950,
3192 : -5950, 2467, 92815, -5950, -5950, -5950, 4492, 4443, 1007, 446,
3193 : 1143, 1143, 1143, 1143, 4403, 1143, 1143, 1143, 1143, 1143,
3194 : -5950, 35081, 21127, -5950, 4092, -5950, 21127, 4481, 4385, 4388,
3195 : -5950, -5950, 4096, 4333, 4340, -5950, 4102, 35081, 3788, 19757,
3196 : -5950, -5950, 4342, 4347, -5950, 3788, 3788, 19757, -5950, 19757,
3197 : 4111, 11371, 19915, -5950, 2468, 35081, -5950, 1275, 1275, 1275,
3198 : 710, 4463, -5950, 2377, 1275, 1275, 1275, 393, 393, 311,
3199 : 311, 311, 4461, 488, 20066, 20169, 20477, 4112, -5950, -5950,
3200 : -5950, 3686, -5950, 37197, 101, 4595, 41952, -5950, -5950, -5950,
3201 : 4171, 4172, 4118, -5950, 35081, 37726, 4117,121802, 4338, -5950,
3202 : 1852, 35081, 35081, 4624, -5950, 6335, 35081, -5950, -5950, 4624,
3203 : 551, 35081, 1775, 2485, 35081, 35081, 5096, 11637, 4130, -5950,
3204 : 2489, 35081, 11692, 4321, -5950, 92815, 92815, 92815, 92815, -5950,
3205 : -5950, -5950, 4317, 1518, 4317, 1518, 4131, -5950, 4135, -5950,
3206 : -5950, -5950, -5950, 64710, 4120, 3850, 89749, 4138, 92815, 2684,
3207 : 44020, -5950, -5950, 1452, -5950, 44020, 4444, -5950, 44020, 71864,
3208 : -5950, 92815, 4143, 92815, -5950, 1729, 35081, 4179, 54971, -5950,
3209 : -5950, -5950, -5950, 4241, -5950, 4369, 21127, 4184, -5950, 2431,
3210 : 2446, 92815, 2066, 784, -5950, 35081, 4154, 92815, -5950, 4136,
3211 : 21127, -5950, 4226, 2491, -5950, -5950, 4380, -5950, -5950, -5950,
3212 : -5950, -5950, 4242, 77485, 4507, -5950, -5950, -5950, 1818, 4479,
3213 : 902, -5950, 1007, -5950,119814, 92815, 92815, 92815, 3168, -5950,
3214 : -5950, 92815, 92815, 92815, 92815, -5950, -5950, 68287, 92815, -5950,
3215 : -5950, 92815, 35081, 2493, -5950, 4194, 4613, 412, 4158, -5950,
3216 : 1909, 10, 1909, -5950, 10, -5950, -5950, 92304, -5950, 4085,
3217 : 366, 477, 4497, 4498, 4398, -5950, 369, -5950, 4659, 477,
3218 : 4405, 366, -5950, -5950, -5950, -5950, 2238, -5950,119814, 1007,
3219 : 1007, -5950, -5950, -5950, -5950, -5950, 4174, -5950, 4647, 4269,
3220 : 92815, 92815, 92815, 92815, 92815, 68287, 92815, 92815, 2873, 2873,
3221 : 119814, 4173, -5950, 2873, 2873, 4175, -5950, 68287, 92815, 92815,
3222 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3223 : -5950, 4263, -5950, 35081, 4640, -5950, -5950, -5950, -5950, -5950,
3224 : 35081, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
3225 : -5950, 68287, 92815, 4266, -5950, 4270, -5950, 963, -5950, -5950,
3226 : 92815, 92815, 92815, 92815, 4559, -5950, -5950, -5950, -5950, -5950,
3227 : -5950, -5950, -5950, -5950, -5950, -5950, 4561, 92815, -5950, -5950,
3228 : 1518, 1518,119814, 1007, 1007, -5950, -5950, -5950, 4277, -5950,
3229 : -5950, 4186, 4501, 1075, -5950, 1075, 1075, 1075, -5950, 4191,
3230 : -5950, 1827, 4603, -5950, 1909, 2014, 4551, -5950, 35081, -5950,
3231 : 1536, 710, -5950, 4612, 4696, -5950, -5950, -5950, -5950, 4446,
3232 : 3539, 2397, 3539, -5950, -5950, 71864, 434, -5950, 4534, 234,
3233 : 63688, 4433, 75441, 371, 2065, 4202, 4350, -5950, 2957, 2957,
3234 : 4273, 92815, 4704, -5950, -5950, -5950, -5950, -5950, -5950, 68287,
3235 : 3856, -5950, 4450, 1422, 4570, 92815, 44537, -5950, 3710, -5950,
3236 : -5950, -5950, 1518, -5950, -5950, 4351, 3586, -5950, 2172, 92815,
3237 : 4441, 75441, 3659, 2497, -5950, -5950, -5950, 4254, 4690, 3608,
3238 : -5950, 371, 4259, -5950, -5950, 4668, 4315, 4261, 4718, -5950,
3239 : 4315, 4579, 4451, 4224, -5950, 3893, -5950, 92815, -5950, 21127,
3240 : 21127, 1518,122299, 333,119814, 4587, -5950, 21127, 92815, 991,
3241 : 4222, 4400, -5950, 4552, 1007, 2509, -5950, 1007, 1007, -5950,
3242 : 92815, -5950, 3577, 3577, 3577, 3577, 3577, -5950, 4452, -5950,
3243 : -5950, -5950, -5950, 4543, -5950, 67265, -5950, 1007, -5950, -5950,
3244 : -5950, -5950, -5950, -5950, 1143, -5950, -5950, -5950, -5950, -5950,
3245 : 21127, -5950, 92815, -5950, -5950, -5950, -5950, -5950, -5950, 3427,
3246 : 4244, 35081, 2312, -5950, -5950, 4246, 4251, 3788, 3788, -5950,
3247 : -5950, 35081, -5950, 11767, 40900, 4590, -5950, 35081, 35081, 35081,
3248 : -5950, 4248, 2536, 2544, -5950, -5950, 101, -5950, 4595, -5950,
3249 : -5950, -5950, 12353, 4291, 21127, 4354, 4252, 271, 4624, 4624,
3250 : 6335, 4624, 35081, 35081, 4624, 4624, 35081, -5950, -5950, -5950,
3251 : 12456, -5950, 4713, 3721, -5950, -5950, -5950, -5950, 4179, -5950,
3252 : 4179, -5950, 4394, 35081, -5950, 2545, 4735, 39842, 4710, -5950,
3253 : 92815, 2546, -5950, 35081, 4256, -5950, -5950, 44020, 1452, 4264,
3254 : 2550, 92815, 2572,119814, 38255, 21127, 92815, 3721, 4265, -5950,
3255 : 92815, 4267, 31907, -5950, 75, -5950, -5950, 4685, 45571, 4660,
3256 : 20591, 35081, -5950, -5950, -5950, -5950, -5950, 67265, 4483, 67265,
3257 : 1909, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 4280, -5950,
3258 : -5950, -5950, -5950, 4353, -5950, -5950, 53, 3621, 1909, -5950,
3259 : 12712, 4594, 45571, 56031, 92815, -5950, 92815, -5950,115299, 4285,
3260 : 4482, 4287, 4288, -5950, -5950, -5950, -5950, 4768, 4649, 4650,
3261 : -5950, -5950, 4293, -5950, -5950, -5950, 4480, -5950, -5950, 51791,
3262 : 68287, 92815, -5950, 4370, -5950, -5950, -5950, -5950, -5950, -5950,
3263 : 47639, 54971, -5950, 252, 4295, 4297, 1380, -5950, -5950, -5950,
3264 : 92815, 13556, 4299, 13702, 1058, 3621, 92815, 92815, 4302, 4308,
3265 : 4310, 1777, 1602, 1967, 3577, 4664, 92815, -5950, -5950, -5950,
3266 : 4480, -5950, -5950, 92815, -5950, 1075, -5950, -5950, -5950, -5950,
3267 : 63688, -5950, 3413, 4191, 1518, 71864, 4794, 4794, 14397, 4553,
3268 : -5950, -5950, 173, 4639, -5950, 4376, 4588, 4376, 4318, 92815,
3269 : 267, 4319, 2583, -5950, 92815, 4320, 4458, 2314, 2314, 92815,
3270 : 92815, 92815, 2587, 2431, 2957, 4066, 1737, 4701, 75441, 4747,
3271 : 4085, 438, -5950, 92815, 4823, 92815, 3659, 3875, 92815, 4325,
3272 : -5950, -5950, 75952, 4549, 4522, 92815, 2640, 4259, 3608, 1455,
3273 : 92815, -5950, 1929, -5950, 2431, -5950, 92815, 83617, 45571, 4686,
3274 : -5950,121305, -5950, 2591, -5950, -5950, -5950, 4408, 21565, 3466,
3275 : 4457, 4459, 4336, 233, 4695, 92815, 1237, -5950, -5950, -5950,
3276 : -5950, -5950, -5950, 92815, 468, -5950, -5950, -5950, -5950, 4335,
3277 : -5950, 4838, 35081, 342, -5950, -5950, -5950, -5950, -5950, 4573,
3278 : -5950, 4352, -5950, -5950, 2763, 2312, 20725, -5950, 3334, 40900,
3279 : 21127, 21127, 21127, 35081, -5950, 35081, -5950, -5950, -5950, -5950,
3280 : 851, -5950, -5950, 4674, 4355, 4624, 4624, 4624, -5950, 35081,
3281 : 1190, -5950, -5950, 1454, 4773, 21016, 3745, 64710, 4357, -5950,
3282 : 40900, 2604, -5950, 3088, 92815, 2605, -5950, 21127, 92815, -5950,
3283 : -5950, 35081, -5950, 2610, -5950, 4359, 59, 4360, 25091, 4362,
3284 : -5950, -5950, -5950, -5950, -5950, 21127, 4363, -5950, 4848, 1601,
3285 : -5950, -5950, 919, 3108, 4410, 92815, 2611, -5950, 828, 933,
3286 : 89, -5950, 4855, 4855, 21127, 1785, 2813, 432, -5950, 92815,
3287 : 4453, -5950, 4613, 4364, 3539, -5950, 4375, -5950, -5950, 442,
3288 : 3213, 92815, 4542, -5950, 4594, 4594, 4522, 4715, -5950, -5950,
3289 : 35081, 4432, -5950, 1128, 3621, 92815,119814, -5950, 167, 4740,
3290 : -5950,119814,119814, -5950, -5950, -5950, 35081, -5950, 4484, -5950,
3291 : -5950, -5950, 35081, 35081, 74419, -5950, -5950, 92815, 92815, 92815,
3292 : 92815, 92815, -5950, 1007, -5950, -5950, 2615, -5950, 46605, -5950,
3293 : -5950, 3388, 1518, 3388, 1931, -5950, -5950, 3388, 3388, -5950,
3294 : 3466, -5950, 4794, 1490, -5950, -5950, 4446, 4381, 35081, -5950,
3295 : 4711, -5950, 199, 4614, -5950, 4386, -5950, 71864, 4921, -5950,
3296 : 63688, 3875, 4368, 92815, -5950, -5950, -5950, -5950, -5950, -5950,
3297 : -5950, -5950, -5950, -5950, -5950, -5950, 2620, 4085, 4769, 3586,
3298 : 4261, -5950, 92815, 4438, -5950, 44020, 4085, 2431, 2353, -5950,
3299 : 4259, 3875, 4368, -5950, -5950, 4406, 4282, 3608, 2640, 4555,
3300 : -5950, 4557, -5950, 4866, 4631, 4874, 3659, -5950, 4062, 2622,
3301 : 92815, -5950, -5950, 5328,122299,119814, -5950, -5950, -5950, 4409,
3302 : 4813, 4462, 4465, -5950, -5950, -5950, 233, -5950, 114, 4818,
3303 : 4471, -5950, 4477, 92815, -5950, -5950, 4085, 1007, 35081, 63688,
3304 : 21127, -5950, -5950, 4811, -5950, 259, 275, 248, 4653, 4427,
3305 : 35081, 3334, 2626, 2628, 4488, -5950, -5950, -5950, 3686, 38784,
3306 : 38784, 38784, 4430, 4799, 4801, 92815, -5950, 92815, 4642, -5950,
3307 : -5950, 92815, 710, 4431, 39842, 63688, 2630, -5950,118820, -5950,
3308 : 2632, 2655, -5950, 35081, 4436, 35081, -5950, 38255, 92815, 4439,
3309 : 3508, -5950, -5950, 2659, -5950, 4940, 2431, -5950, 3466, 45571,
3310 : -5950, 4576, -5950, 4714, -5950, -5950, 35081, 4537, 4538, -5950,
3311 : 4805, -5950, -5950, 92815, -5950, 92815, 4376, 54971, 3763, 442,
3312 : -5950, 92815, 3539, 3539, 4381, 14596, 35081, -5950, 4547, -5950,
3313 : -5950, 2668, 1711, -5950, -5950, 2670, 2675, 15151, 92815, 2676,
3314 : 2680, -5950, 2702, 2873, 3596, 1967, 3596, -5950, 3577, -5950,
3315 : -5950, 63688, -5950, -5950, 67776, -5950, -5950, -5950, 1518, -5950,
3316 : 1518, 4688, 57566, 58077, 1518, 1518, -5950, -5950, -5950, -5950,
3317 : -5950, 2453, -5950, 15198, 4556, -5950, -5950, -5950, 557, -5950,
3318 : 4679, 4680, -5950, 4455, -5950, 2715, -5950, 371, 4592, 4085,
3319 : -5950, -5950, 92815, 4960, 4962, -5950, 1432, 92815, 3710, -5950,
3320 : 4261, 3659, 3608, 371, 4259, 4522, 46088, 4315, 2640, 4282,
3321 : -5950, -5950, 4692, -5950, 4693, -5950, 4467, 4798, -5950, 2226,
3322 : 333, -5950, -5950, -5950, 1218, 4827, 4828, -5950, -5950, -5950,
3323 : 3388, -5950, 1948, 4473, 4853, -5950, -5950, -5950, -5950, -5950,
3324 : -5950, -5950, 4514, 294, 299, -5950, 4515, -5950, 4658, 4661,
3325 : 2312, 2395, -5950, 21127, -5950, -5950, -5950, 40371, 4629, 1344,
3326 : 17868, 4861, -5950, 4861, 4861, -5950, 4958, 4959, 1144, -5950,
3327 : 4938, 2717, 41952, -5950, -5950, -5950, 92815, 4706, 1813, 4989,
3328 : 4652, 2726, 38255, 2727, -5950, -5950, -5950, -5950, -5950, 919,
3329 : 92815, -5950, -5950, -5950, 49707, 4971, 21127, 939, 1634, 67265,
3330 : 3621, 2733, 3842, 4496, -5950, 3763, 4502, 4376, 4376, -5950,
3331 : -5950, 21127, 92815, 71864, 4978, -5950, -5950, -5950, -5950, 3621,
3332 : 4591, -5950, -5950, 74419, -5950, 92815, -5950, -5950, 2738, -5950,
3333 : -5950, -5950, 58588, -5950, 4222, -5950, 4222, -5950, -5950, 1436,
3334 : 65, 92815, 1203, 1203, 4917, -5950, 4575, -5950, 4511, -5950,
3335 : 5043, 4654, 92815, -5950, -5950, 252, 2431, 75441, 4085, -5950,
3336 : -5950, 2640, 4259, 3608, 35081, 2740, -5950, 4613, 412, -5950,
3337 : 4282, 4315, -5950, -5950, 45571, 4517, 3322, 4914, -5950, -5950,
3338 : -5950, 2708, 71864, 71864, 92815, -5950, -5950, -5950, 35081, 267,
3339 : -5950, 4562, -5950, 4566, -5950, -5950, 4748, 4757, 4539, 2312,
3340 : -5950, 5039, -5950, -5950, -5950, -5950, -5950, 998, -5950, -5950,
3341 : -5950, 92815, 92815, 92815, 4541, -5950, 3850, -5950, -5950, 40900,
3342 : 40900, 4777, -5950, 40900, 1813, -5950, 92815, -5950, 4544, -5950,
3343 : -5950, 2764, -5950, -5950, -5950, 1502, 1480, -5950, 4784, 4676,
3344 : -5950, -5950, 4787, 222, -5950, 432, -5950, -5950, -5950, -5950,
3345 : -5950, 92815, 4588, -5950, -5950, 3621, -5950, 92815, -5950, 4548,
3346 : -5950, -5950, -5950, 67776, -5950, 4222, -5950, -5950, -5950, -5950,
3347 : -5950, -5950, 5059, -5950, 1497, -5950, -5950, -5950, -5950, 92815,
3348 : 4085, 4173, 4261, -5950, 4282, 3608, 2640, 15863, -5950, 46088,
3349 : 92815, 92815, 4315, -5950, 2770, 45571, 3586, 4700, -5950, 3145,
3350 : -5950, -5950, -5950, -5950, -5950, -5950, -5950, 966, 4546, 4558,
3351 : -5950, -5950, 16222, 71864, -5950, -5950, 4699, 4702, -5950, 4780,
3352 : 39313, 4707, -5950, 4775, -5950, 1405, 1414, 1922,115810, 5013,
3353 : 710, 710, -5950, 710, -5950, -5950, 35081, -5950, -5950, -5950,
3354 : -5950, -5950, 49707, -5950, 4616, 75, 4564, 92815, -5950, -5950,
3355 : 1909, 4158, 4614, 1909, 1909, -5950, -5950, 35081, -5950, -5950,
3356 : 2397, 2397, 4085, -5950, -5950, 4315, 2640, 4282, 4613, -5950,
3357 : -5950, -5950, -5950, 4798, -5950, 2781, 4315, 4471, 2744, -5950,
3358 : -5950, 2750, 2681, 4655, 4919, -5950, 4565, 4678, 4681, 4952,
3359 : -5950, -5950, -5950, 92815, 92815, 65221, 92815, 361, 2794, -5950,
3360 : 119317, 92815, 16487, 4571, -5950, 4632, 35081, 2801, 4577, -5950,
3361 : 2819, -5950, -5950, -5950, -5950, 4282, 4315, 92815, 3322, -5950,
3362 : 45571, 3466, 4955, -5950, 3145, 4698, 4703, 63177, -5950, -5950,
3363 : -5950, -5950, -5950, 5109, 354, 4996, -5950, -5950, 1518, 2312,
3364 : 115810, 4802, 279, 2826, -5950, 4644, 2831, 1198, -5950, 1909,
3365 : -5950, 4315, -5950, -5950, 3586, -5950, -5950, 267, -5950, 4628,
3366 : 4633, -5950, 2833, -5950, -5950, -5950, -5950, 35081, 65221, 2118,
3367 : 4599, -5950, -5950, 4790, 1518, 2763, 4790, -5950, -5950, -5950,
3368 : 75, -5950, -5950, 4315, 71864, 4945, 4947, -5950, 63177, 935,
3369 : 4656, 92815, 4601, -5950, 2312, -5950, 248, 2763, 4662, 3466,
3370 : 4602, 71864, 71864, -5950, 4605, 92815, 5047,115810, -5950, 2312,
3371 : 248, 4644, -5950, 63177, -5950, -5950, 1518, -5950, 4607, 2835,
3372 : -5950, 2312, -5950, 2837,115810, -5950, -5950, -5950, 2841, -5950
3373 : };
3374 :
3375 : /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
3376 : Performed when YYTABLE does not specify something else to do. Zero
3377 : means the default is an error. */
3378 : static const yytype_int16 yydefact[] =
3379 : {
3380 : 1742, 1474, 679, 1563, 1562, 1474, 0, 269, 0, 1574,
3381 : 0, 1474, 438, 1131, 0, 0, 0, 0, 679, 1474,
3382 : 0, 1742, 0, 0, 0, 0, 0, 1755, 0, 0,
3383 : 0, 0, 0, 1271, 0, 0, 0, 1474, 0, 0,
3384 : 1762, 0, 0, 0, 0, 1755, 0, 1576, 0, 0,
3385 : 0, 0, 1762, 0, 0, 0, 0, 0, 2, 9,
3386 : 10, 45, 80, 81, 38, 37, 98, 63, 24, 71,
3387 : 133, 132, 134, 50, 46, 88, 33, 35, 47, 51,
3388 : 73, 75, 40, 53, 64, 110, 72, 31, 70, 76,
3389 : 96, 58, 19, 20, 59, 21, 60, 22, 61, 106,
3390 : 82, 99, 43, 69, 30, 52, 78, 79, 12, 54,
3391 : 86, 18, 65, 66, 68, 91, 92, 93, 116, 94,
3392 : 128, 49, 125, 103, 104, 122, 105, 123, 16, 107,
3393 : 62, 23, 119, 118, 120, 89, 55, 90, 77, 97,
3394 : 117, 34, 121, 25, 26, 28, 29, 27, 67, 36,
3395 : 74, 39, 95, 124, 114, 109, 129, 127, 11, 135,
3396 : 111, 83, 14, 15, 100, 13, 32, 57, 17, 42,
3397 : 41, 56, 48, 131, 44, 1574, 102, 115, 101, 84,
3398 : 108, 87, 112, 130, 113, 85, 126, 1706, 1705, 1766,
3399 : 1709, 1741, 0, 1721, 1473, 1472, 1487, 0, 0, 0,
3400 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3401 : 0, 0, 0, 678, 0, 0, 0, 0, 0, 0,
3402 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3403 : 0, 0, 0, 1484, 2470, 2487, 2488, 2489, 2490, 2491,
3404 : 2492, 2493, 2494, 2495, 2496, 2497, 2498, 2499, 2500, 2501,
3405 : 2503, 2502, 2504, 2505, 2880, 2506, 2507, 2508, 2817, 2818,
3406 : 2881, 2819, 2820, 2509, 2510, 2511, 2512, 2513, 2514, 2515,
3407 : 2516, 2517, 2821, 2822, 2518, 2519, 2520, 2521, 2522, 2823,
3408 : 2882, 2523, 2524, 2525, 2526, 2527, 2528, 2883, 2529, 2530,
3409 : 2531, 2532, 2533, 2534, 2535, 2536, 2537, 2538, 2884, 2539,
3410 : 2540, 2541, 2885, 2542, 2543, 2544, 2545, 2546, 2547, 2824,
3411 : 2825, 2548, 2549, 2550, 2551, 2552, 2553, 2554, 2555, 2556,
3412 : 2557, 2558, 2559, 2560, 2561, 2562, 2563, 2564, 2565, 2566,
3413 : 2567, 2568, 2569, 2570, 2571, 2572, 2573, 2574, 2575, 2576,
3414 : 2577, 2578, 2826, 2579, 2580, 2581, 2582, 2827, 2583, 2584,
3415 : 2585, 2586, 2828, 2587, 2588, 2589, 2590, 2886, 2887, 2591,
3416 : 2592, 2593, 2594, 2595, 2829, 2830, 2596, 2597, 2598, 2599,
3417 : 2600, 2601, 2602, 2888, 2603, 2604, 2605, 2606, 2607, 2608,
3418 : 2609, 2610, 2611, 2612, 2613, 2614, 2615, 2889, 2831, 2616,
3419 : 2617, 2618, 2619, 2832, 2833, 2834, 2620, 2890, 2891, 2621,
3420 : 2892, 2835, 2836, 2837, 2838, 2839, 2840, 2841, 2842, 2843,
3421 : 2844, 2845, 2622, 2623, 2624, 2625, 2626, 2627, 2628, 2629,
3422 : 2846, 2893, 2630, 2894, 2631, 2632, 2633, 2634, 2635, 2636,
3423 : 2637, 2638, 2639, 2640, 2641, 2642, 2643, 2847, 2644, 2645,
3424 : 2646, 2647, 2648, 2649, 2650, 2651, 2848, 2895, 2849, 2652,
3425 : 2653, 2654, 2655, 2656, 2657, 2658, 2659, 2850, 2851, 2660,
3426 : 2661, 2662, 2896, 2663, 2852, 2664, 2853, 2665, 2666, 2667,
3427 : 2668, 2669, 2670, 2671, 2672, 2673, 2674, 2675, 2676, 2854,
3428 : 2897, 2677, 2898, 2855, 2678, 2679, 2680, 2681, 2682, 2683,
3429 : 2684, 2685, 2686, 2687, 2688, 2689, 2690, 2691, 2692, 2856,
3430 : 2693, 2857, 2696, 2694, 2695, 2697, 2698, 2699, 2700, 2701,
3431 : 2702, 2703, 2704, 2705, 2706, 2707, 2858, 2708, 2709, 2710,
3432 : 2711, 2712, 2713, 2714, 2715, 2716, 2717, 2718, 2719, 2720,
3433 : 2721, 2722, 2723, 2724, 2725, 2899, 2726, 2727, 2728, 2729,
3434 : 2730, 2859, 2731, 2732, 2733, 2734, 2735, 2736, 2737, 2738,
3435 : 2739, 2740, 2741, 2742, 2743, 2744, 2745, 2746, 2747, 2860,
3436 : 2748, 2749, 2900, 2750, 2751, 2861, 2752, 2753, 2754, 2755,
3437 : 2756, 2757, 2758, 2759, 2760, 2761, 2762, 2763, 2764, 2765,
3438 : 2766, 2767, 2862, 2768, 2769, 2770, 2771, 2901, 2772, 2773,
3439 : 2774, 2775, 2776, 2777, 2778, 2863, 2864, 2779, 2780, 2865,
3440 : 2781, 2866, 2782, 2783, 2784, 2785, 2786, 2787, 2789, 2788,
3441 : 2790, 2791, 2792, 2793, 2794, 2795, 2796, 2797, 2798, 2799,
3442 : 2800, 2867, 2868, 2801, 2902, 2802, 2803, 2804, 2805, 2806,
3443 : 2807, 2808, 2809, 2810, 2811, 2812, 2813, 2869, 2870, 2871,
3444 : 2872, 2873, 2874, 2875, 2876, 2877, 2878, 2879, 2814, 2815,
3445 : 2816, 146, 0, 0, 2437, 2471, 2472, 2475, 2470, 408,
3446 : 407, 1695, 2434, 2471, 1573, 0, 1552, 679, 0, 1487,
3447 : 437, 1742, 0, 0, 0, 0, 0, 0, 898, 0,
3448 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3449 : 0, 138, 0, 140, 0, 0, 462, 461, 0, 0,
3450 : 1103, 467, 0, 0, 0, 0, 0, 669, 1615, 2694,
3451 : 1613, 1696, 270, 273, 274, 271, 272, 2453, 0, 1243,
3452 : 1244, 1246, 0, 0, 1256, 936, 937, 0, 0, 0,
3453 : 950, 0, 0, 0, 934, 0, 0, 0, 956, 0,
3454 : 953, 0, 0, 957, 954, 931, 955, 938, 0, 930,
3455 : 0, 0, 1256, 958, 0, 0, 932, 0, 0, 0,
3456 : 0, 1487, 1612, 468, 1742, 0, 1596, 1597, 1598, 1574,
3457 : 1586, 1599, 1591, 1593, 1592, 1594, 1595, 1590, 2452, 2489,
3458 : 1026, 1026, 1026, 1026, 1023, 1024, 1026, 1026, 1026, 2714,
3459 : 0, 0, 1005, 0, 1007, 2454, 1026, 1031, 2497, 555,
3460 : 555, 555, 0, 1030, 1035, 555, 0, 1455, 1496, 2436,
3461 : 1754, 0, 1006, 1454, 2779, 1602, 0, 0, 0, 0,
3462 : 2733, 1464, 254, 2745, 2863, 2779, 253, 248, 249, 222,
3463 : 0, 0, 1030, 555, 0, 1487, 1462, 1002, 1761, 1759,
3464 : 0, 2421, 2516, 2533, 2633, 245, 2726, 2735, 2745, 2863,
3465 : 2779, 2813, 201, 211, 206, 0, 263, 2745, 2863, 2779,
3466 : 259, 1484, 0, 1722, 1872, 1871, 2430, 0, 1457, 1456,
3467 : 1575, 0, 1578, 0, 2709, 1726, 1729, 1580, 1727, 2473,
3468 : 1965, 1994, 1972, 1994, 1994, 1961, 1961, 2563, 1974, 1962,
3469 : 1963, 1999, 2019, 0, 1994, 1961, 1966, 0, 1964, 2002,
3470 : 2002, 1989, 3, 1944, 1945, 1946, 1947, 1975, 1976, 1948,
3471 : 1981, 1982, 1986, 1949, 2016, 1952, 1961, 2474, 1763, 1764,
3472 : 2421, 4, 2467, 5, 2348, 2466, 6, 7, 1718, 0,
3473 : 0, 1, 1742, 0, 1585, 1758, 1758, 0, 1758, 0,
3474 : 1710, 1718, 1713, 1717, 0, 0, 0, 0, 0, 0,
3475 : 1458, 0, 0, 0, 961, 0, 1499, 1087, 0, 0,
3476 : 0, 0, 0, 1340, 0, 1140, 1139, 2476, 2459, 2460,
3477 : 2461, 0, 2457, 2458, 2477, 2478, 2479, 0, 2602, 1340,
3478 : 0, 0, 2264, 2275, 2276, 2277, 2520, 2583, 2272, 2273,
3479 : 2274, 2266, 2267, 2268, 2269, 2270, 2271, 0, 0, 1238,
3480 : 2265, 0, 2602, 0, 1340, 0, 173, 0, 150, 1340,
3481 : 0, 0, 2602, 0, 0, 2602, 0, 0, 0, 0,
3482 : 0, 2602, 0, 0, 0, 0, 0, 173, 2638, 0,
3483 : 150, 2602, 0, 0, 1478, 0, 0, 0, 1480, 1483,
3484 : 1470, 0, 2345, 0, 2346, 2438, 1567, 0, 1566, 1560,
3485 : 1570, 1565, 1555, 0, 2430, 0, 0, 0, 0, 944,
3486 : 0, 0, 934, 0, 0, 0, 945, 0, 946, 947,
3487 : 0, 0, 0, 0, 943, 0, 1468, 1460, 0, 1604,
3488 : 1606, 1605, 1607, 1603, 555, 0, 0, 0, 2602, 0,
3489 : 150, 1538, 0, 2602, 150, 0, 0, 466, 465, 150,
3490 : 2457, 464, 463, 2520, 2583, 0, 1130, 0, 1213, 150,
3491 : 2602, 0, 194, 2602, 738, 2602, 1580, 139, 0, 682,
3492 : 0, 852, 2638, 150, 0, 0, 0, 0, 0, 0,
3493 : 142, 0, 0, 0, 0, 0, 0, 0, 668, 679,
3494 : 1616, 1614, 0, 1247, 247, 246, 1245, 948, 2602, 1172,
3495 : 145, 0, 0, 2602, 1519, 2602, 145, 965, 949, 0,
3496 : 935, 2602, 145, 1136, 2602, 2462, 183, 0, 933, 2520,
3497 : 2583, 2602, 145, 1240, 0, 2602, 145, 2602, 179, 2602,
3498 : 145, 2602, 145, 2602, 683, 0, 0, 2602, 145, 2602,
3499 : 2638, 181, 952, 2602, 145, 959, 2602, 145, 2432, 2602,
3500 : 0, 1471, 0, 1608, 0, 1588, 2867, 0, 1742, 1026,
3501 : 1025, 0, 1026, 0, 1026, 0, 1026, 0, 1026, 0,
3502 : 0, 0, 1026, 2455, 2456, 1008, 0, 1032, 0, 1040,
3503 : 0, 1039, 1038, 1037, 0, 0, 0, 1041, 0, 1876,
3504 : 1650, 0, 1452, 1467, 0, 0, 0, 142, 0, 1269,
3505 : 1266, 142, 1268, 1267, 142, 142, 1463, 252, 250, 0,
3506 : 0, 0, 0, 0, 0, 1469, 0, 1461, 0, 0,
3507 : 0, 2440, 2442, 2443, 2278, 2348, 0, 2818, 2819, 2820,
3508 : 2337, 0, 2821, 2822, 2823, 2882, 2152, 2138, 2147, 2153,
3509 : 2139, 2141, 2148, 2824, 2825, 2087, 2826, 2827, 2450, 2828,
3510 : 2829, 2830, 2832, 2833, 2834, 2835, 2836, 2837, 2838, 2839,
3511 : 2840, 2841, 2842, 2843, 2845, 2846, 2143, 2145, 2847, 2848,
3512 : 2849, 2851, 0, 2451, 2852, 2853, 2672, 2855, 2856, 2858,
3513 : 2859, 2149, 2861, 2862, 2150, 2863, 2864, 2865, 2866, 2449,
3514 : 510, 2151, 2868, 2870, 2871, 2872, 2873, 2875, 2876, 2877,
3515 : 2878, 0, 0, 0, 2427, 0, 2116, 0, 1953, 1954,
3516 : 1977, 1978, 1955, 1983, 1984, 1956, 0, 1957, 2426, 2020,
3517 : 2223, 2115, 2133, 0, 2121, 2122, 0, 2114, 2110, 2225,
3518 : 1744, 2422, 0, 2111, 2439, 2441, 2338, 1744, 2420, 214,
3519 : 265, 0, 266, 2428, 2745, 202, 244, 216, 243, 217,
3520 : 215, 0, 2518, 203, 0, 0, 204, 0, 0, 0,
3521 : 0, 262, 260, 0, 1459, 0, 1874, 1873, 2431, 970,
3522 : 0, 1577, 1574, 2288, 0, 1728, 0, 0, 0, 1993,
3523 : 1980, 1988, 1987, 0, 1970, 1969, 1968, 0, 1967, 1994,
3524 : 1994, 1992, 1971, 1944, 0, 0, 0, 1998, 0, 1996,
3525 : 1940, 1936, 0, 2005, 2006, 2007, 2004, 2017, 2003, 0,
3526 : 1950, 2008, 0, 1961, 1958, 1829, 0, 1708, 1707, 8,
3527 : 0, 1582, 1584, 1558, 1580, 1756, 1757, 0, 0, 0,
3528 : 0, 0, 0, 0, 0, 1816, 1774, 1775, 1777, 1813,
3529 : 1817, 1825, 0, 1714, 0, 0, 0, 1878, 0, 0,
3530 : 1485, 0, 0, 0, 0, 0, 1171, 0, 0, 0,
3531 : 0, 962, 0, 0, 0, 1505, 0, 1507, 1508, 1509,
3532 : 0, 0, 0, 1510, 1511, 1499, 256, 1518, 1515, 1498,
3533 : 1500, 1513, 0, 0, 0, 0, 0, 0, 0, 1530,
3534 : 0, 187, 188, 0, 695, 679, 0, 2602, 0, 0,
3535 : 0, 0, 1181, 1188, 1339, 0, 0, 0, 0, 0,
3536 : 0, 0, 0, 1182, 1180, 0, 1183, 258, 1193, 1220,
3537 : 1223, 0, 0, 1138, 1141, 0, 0, 0, 0, 0,
3538 : 1330, 0, 0, 0, 1330, 0, 0, 0, 1339, 0,
3539 : 0, 0, 0, 0, 0, 0, 0, 0, 281, 283,
3540 : 296, 363, 0, 660, 0, 0, 0, 663, 0, 2602,
3541 : 1340, 0, 0, 0, 1242, 0, 0, 0, 0, 0,
3542 : 0, 0, 0, 1223, 0, 0, 0, 0, 0, 0,
3543 : 0, 0, 0, 148, 149, 154, 0, 0, 0, 0,
3544 : 1223, 0, 0, 0, 0, 0, 0, 0, 644, 659,
3545 : 647, 0, 0, 0, 0, 0, 655, 0, 0, 150,
3546 : 657, 286, 634, 640, 0, 0, 0, 745, 744, 0,
3547 : 0, 0, 0, 0, 0, 1428, 0, 1427, 0, 0,
3548 : 0, 0, 0, 1528, 1527, 0, 0, 0, 0, 0,
3549 : 0, 1330, 0, 275, 277, 0, 0, 0, 0, 0,
3550 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3551 : 400, 401, 0, 0, 0, 154, 0, 0, 1330, 0,
3552 : 288, 0, 0, 1479, 1476, 1477, 0, 1482, 0, 0,
3553 : 0, 0, 2124, 0, 2292, 1766, 2290, 1156, 2344, 0,
3554 : 2480, 2903, 2904, 2905, 2906, 2907, 2908, 2909, 2910, 2911,
3555 : 2912, 2913, 2914, 2915, 2916, 2917, 2918, 2919, 2920, 2921,
3556 : 2922, 2923, 2924, 2925, 2926, 2927, 2928, 2929, 2930, 2931,
3557 : 2932, 2933, 2934, 2935, 2936, 2937, 2938, 2939, 2940, 2941,
3558 : 2942, 2943, 2944, 2945, 2946, 2947, 2948, 2949, 2950, 2951,
3559 : 2952, 2953, 2954, 2955, 2956, 2957, 2958, 2959, 2960, 2961,
3560 : 2962, 2963, 2964, 2965, 2966, 2967, 2968, 2969, 2970, 2971,
3561 : 2972, 2973, 2974, 2975, 2976, 2977, 2978, 2979, 2980, 2341,
3562 : 2340, 2435, 2481, 2482, 2483, 2484, 2347, 1550, 0, 233,
3563 : 234, 232, 1568, 235, 1569, 1564, 0, 1551, 0, 0,
3564 : 0, 0, 0, 0, 0, 0, 2520, 2583, 0, 0,
3565 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3566 : 0, 0, 0, 0, 860, 1499, 1537, 0, 0, 0,
3567 : 688, 0, 2602, 0, 152, 899, 0, 850, 467, 0,
3568 : 0, 0, 0, 1404, 152, 0, 0, 190, 0, 0,
3569 : 742, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3570 : 0, 851, 0, 0, 152, 0, 2602, 637, 2602, 0,
3571 : 555, 555, 0, 0, 141, 138, 0, 0, 0, 0,
3572 : 0, 0, 0, 0, 1700, 1699, 1702, 1701, 0, 1698,
3573 : 0, 143, 144, 0, 1230, 1255, 0, 0, 0, 0,
3574 : 0, 926, 951, 0, 0, 1224, 0, 0, 2602, 145,
3575 : 2602, 0, 2602, 0, 0, 0, 1232, 145, 0, 1226,
3576 : 0, 0, 1228, 0, 1430, 0, 942, 940, 939, 941,
3577 : 0, 0, 924, 0, 0, 0, 0, 0, 919, 0,
3578 : 0, 921, 0, 0, 0, 0, 1742, 1587, 0, 1016,
3579 : 0, 1020, 0, 1011, 0, 1017, 0, 1012, 1009, 1010,
3580 : 0, 1015, 0, 0, 556, 562, 0, 0, 2545, 2562,
3581 : 0, 2591, 2626, 2627, 2682, 2700, 2729, 2735, 2741, 0,
3582 : 2772, 2784, 0, 1046, 1084, 1036, 754, 0, 0, 1660,
3583 : 1453, 2297, 0, 1742, 0, 0, 1270, 0, 0, 138,
3584 : 251, 223, 0, 0, 1084, 0, 2733, 1466, 1001, 679,
3585 : 0, 2112, 0, 2119, 2120, 2336, 0, 0, 0, 0,
3586 : 0, 0, 2118, 0, 0, 0, 0, 2393, 0, 0,
3587 : 2393, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3588 : 0, 2043, 0, 0, 2296, 0, 0, 2296, 0, 0,
3589 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3590 : 2044, 2025, 2026, 2116, 2288, 0, 2117, 2446, 0, 2016,
3591 : 2485, 2278, 0, 2275, 2276, 2277, 2981, 2982, 2983, 2984,
3592 : 2985, 2986, 2987, 2988, 2989, 2990, 2991, 2992, 2993, 2994,
3593 : 2995, 2996, 2997, 0, 2998, 2999, 3000, 3001, 3002, 3004,
3594 : 3003, 3005, 3006, 3007, 3008, 3009, 3010, 2351, 3012, 3013,
3595 : 3014, 3015, 3016, 3017, 3018, 3019, 3020, 3021, 3022, 3023,
3596 : 3024, 3025, 3026, 3027, 3028, 3029, 3030, 3031, 3032, 3033,
3597 : 3034, 3035, 3036, 3037, 3038, 3039, 3040, 3041, 3042, 3043,
3598 : 3044, 3045, 3046, 3047, 3048, 3049, 3050, 3051, 3052, 3053,
3599 : 3054, 3055, 3056, 3057, 3058, 3059, 3060, 3061, 3062, 3063,
3600 : 3064, 3065, 3066, 3067, 3068, 3069, 3070, 3071, 3072, 3073,
3601 : 3074, 3075, 3076, 3077, 3078, 3079, 3080, 3081, 3082, 3083,
3602 : 3084, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093,
3603 : 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103,
3604 : 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113,
3605 : 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123,
3606 : 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3131, 3132, 3133,
3607 : 3134, 3135, 3136, 3137, 3138, 3139, 3140, 3141, 3142, 3143,
3608 : 3144, 3145, 3146, 3147, 3148, 3149, 3150, 3151, 3152, 3153,
3609 : 3154, 3155, 3156, 3157, 3158, 3159, 3160, 3161, 3162, 3163,
3610 : 3164, 3165, 3166, 3167, 3168, 3169, 2058, 3170, 3171, 3172,
3611 : 3173, 3174, 3175, 3176, 3177, 3178, 3179, 3180, 3181, 3182,
3612 : 3183, 3184, 3185, 3186, 3187, 3188, 3189, 3190, 3191, 3192,
3613 : 3193, 3194, 3195, 3196, 3197, 3198, 3199, 3200, 3201, 3202,
3614 : 3203, 3204, 3205, 3206, 3207, 3208, 3209, 3210, 3211, 3212,
3615 : 3213, 3214, 3215, 3216, 3217, 3218, 3219, 3220, 3221, 3222,
3616 : 3223, 3224, 3225, 3226, 3227, 3228, 3229, 3230, 3231, 3232,
3617 : 3233, 3234, 3235, 2060, 3236, 3237, 3238, 3239, 3240, 3241,
3618 : 3242, 3243, 3244, 3245, 3246, 3247, 3248, 3249, 3250, 3251,
3619 : 3252, 3253, 3254, 3255, 3256, 3257, 3258, 3259, 3260, 3261,
3620 : 3262, 3263, 3264, 3265, 3266, 3267, 3268, 3269, 3270, 3271,
3621 : 3272, 3273, 3274, 3275, 3278, 3276, 3277, 3279, 3280, 3281,
3622 : 3282, 3283, 3284, 3285, 3286, 3287, 3288, 3289, 3290, 3291,
3623 : 3292, 3293, 3294, 3295, 3296, 3297, 3298, 3299, 3300, 3301,
3624 : 3302, 3303, 3304, 3305, 3306, 3307, 3308, 3309, 3310, 3311,
3625 : 3312, 3313, 3314, 3315, 3316, 3317, 3318, 3319, 3320, 3321,
3626 : 3322, 3323, 3324, 3325, 3326, 3327, 3328, 3329, 3330, 3331,
3627 : 3332, 3333, 3334, 3336, 3335, 3337, 3338, 3339, 3340, 3341,
3628 : 3342, 3343, 3344, 3345, 3346, 3347, 3348, 3349, 3350, 3351,
3629 : 3352, 3353, 3354, 3355, 3356, 3357, 3358, 3359, 3360, 3361,
3630 : 3362, 3363, 3364, 3365, 3366, 3367, 3368, 3369, 3370, 3371,
3631 : 3372, 3373, 3374, 3375, 3376, 3377, 3378, 3379, 3380, 3381,
3632 : 3382, 3383, 3384, 3385, 3386, 3387, 3388, 3389, 3390, 3391,
3633 : 3393, 3392, 3394, 3395, 3396, 3397, 3398, 3399, 3400, 3401,
3634 : 3402, 3403, 3404, 3405, 3406, 3407, 3408, 3409, 3410, 3411,
3635 : 3412, 3413, 3414, 3415, 3416, 3417, 3418, 3419, 3420, 3421,
3636 : 3422, 3423, 3424, 3425, 3426, 3427, 3428, 3429, 3430, 3431,
3637 : 3432, 3433, 3434, 3435, 0, 2272, 2273, 2274, 2266, 2267,
3638 : 2268, 2269, 2270, 2271, 2282, 0, 0, 2425, 2486, 0,
3639 : 2225, 0, 2040, 0, 2233, 0, 0, 1829, 0, 2444,
3640 : 2339, 1829, 267, 268, 264, 0, 0, 219, 218, 0,
3641 : 237, 241, 242, 213, 240, 0, 236, 221, 2209, 2208,
3642 : 220, 212, 209, 207, 224, 226, 227, 210, 208, 261,
3643 : 0, 0, 0, 145, 1585, 1572, 0, 0, 2351, 0,
3644 : 2286, 0, 0, 2284, 0, 0, 0, 1826, 0, 1730,
3645 : 0, 1734, 0, 0, 0, 1991, 1990, 1941, 1937, 0,
3646 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3647 : 0, 0, 963, 0, 1959, 0, 1894, 2468, 2469, 2349,
3648 : 1762, 1585, 0, 1581, 1725, 1724, 1767, 1768, 1122, 1723,
3649 : 1796, 1797, 0, 0, 0, 0, 1822, 1820, 1787, 1778,
3650 : 1786, 0, 0, 1784, 0, 1788, 2020, 1815, 1712, 1772,
3651 : 1773, 1776, 1711, 0, 1818, 0, 1663, 1816, 1777, 1647,
3652 : 0, 1618, 0, 0, 1879, 0, 0, 1486, 0, 0,
3653 : 0, 1151, 1153, 0, 1152, 0, 1155, 0, 1164, 0,
3654 : 0, 1150, 1169, 0, 1158, 1156, 0, 1526, 0, 0,
3655 : 0, 0, 0, 1506, 0, 0, 0, 2772, 255, 1509,
3656 : 1514, 1501, 1512, 0, 0, 0, 0, 0, 1086, 1085,
3657 : 0, 0, 0, 1533, 547, 0, 365, 0, 0, 0,
3658 : 0, 0, 0, 0, 0, 846, 843, 0, 0, 842,
3659 : 0, 693, 0, 0, 0, 0, 0, 0, 0, 0,
3660 : 0, 0, 0, 718, 0, 1330, 0, 294, 0, 1190,
3661 : 0, 1189, 0, 1194, 0, 0, 1191, 1186, 1187, 2735,
3662 : 2745, 2779, 257, 1192, 1222, 0, 1221, 1217, 0, 1133,
3663 : 0, 1134, 0, 0, 0, 0, 0, 0, 0, 2575,
3664 : 0, 2602, 0, 0, 510, 302, 326, 537, 0, 1329,
3665 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3666 : 0, 0, 0, 0, 0, 349, 0, 0, 352, 351,
3667 : 0, 0, 0, 0, 0, 357, 0, 335, 0, 336,
3668 : 0, 356, 0, 0, 0, 661, 662, 0, 0, 0,
3669 : 1330, 0, 290, 0, 0, 0, 0, 0, 0, 0,
3670 : 0, 1239, 0, 771, 0, 0, 2735, 1218, 0, 1413,
3671 : 0, 2771, 1414, 1417, 555, 0, 555, 1419, 0, 0,
3672 : 1416, 1418, 0, 0, 176, 0, 171, 175, 0, 0,
3673 : 2735, 1219, 0, 0, 0, 0, 0, 642, 643, 658,
3674 : 0, 648, 649, 645, 650, 651, 0, 0, 0, 0,
3675 : 0, 0, 0, 641, 0, 0, 740, 739, 743, 0,
3676 : 0, 0, 0, 0, 0, 1422, 0, 0, 1213, 0,
3677 : 0, 1421, 1429, 0, 0, 0, 0, 0, 0, 0,
3678 : 0, 0, 0, 1273, 1272, 0, 0, 0, 0, 1340,
3679 : 0, 889, 0, 0, 0, 0, 0, 0, 0, 0,
3680 : 0, 0, 178, 758, 0, 757, 0, 172, 177, 0,
3681 : 0, 0, 0, 0, 0, 0, 0, 231, 1475, 1481,
3682 : 1766, 1766, 1766, 2130, 0, 0, 0, 0, 1765, 2342,
3683 : 2345, 1555, 1561, 1554, 1553, 0, 0, 0, 0, 0,
3684 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3685 : 0, 0, 414, 411, 412, 414, 0, 0, 0, 0,
3686 : 862, 0, 865, 868, 1497, 494, 0, 0, 685, 718,
3687 : 0, 0, 470, 185, 0, 0, 0, 0, 773, 0,
3688 : 1213, 1212, 147, 138, 194, 468, 0, 193, 195, 197,
3689 : 198, 199, 196, 200, 0, 737, 741, 0, 0, 0,
3690 : 0, 681, 0, 0, 0, 0, 0, 0, 0, 1899,
3691 : 0, 0, 170, 0, 0, 632, 636, 0, 0, 0,
3692 : 0, 470, 598, 376, 2602, 0, 555, 0, 2602, 0,
3693 : 137, 0, 849, 0, 0, 0, 1175, 1175, 0, 0,
3694 : 787, 786, 0, 0, 0, 0, 0, 0, 1697, 145,
3695 : 1173, 0, 1520, 0, 145, 966, 145, 1137, 184, 2463,
3696 : 0, 928, 0, 0, 0, 0, 145, 1241, 916, 145,
3697 : 180, 145, 145, 684, 0, 145, 182, 0, 0, 145,
3698 : 960, 145, 2433, 0, 145, 1611, 2602, 555, 1589, 1013,
3699 : 1022, 1021, 1019, 1018, 1014, 0, 1033, 0, 554, 0,
3700 : 0, 0, 0, 0, 1054, 1055, 0, 0, 1051, 1056,
3701 : 0, 1058, 1042, 1044, 1052, 1053, 1059, 1048, 1047, 1060,
3702 : 1061, 0, 0, 0, 1073, 752, 0, 0, 0, 0,
3703 : 1657, 0, 1655, 0, 1877, 1659, 1648, 1601, 0, 1600,
3704 : 0, 625, 1264, 1263, 1265, 0, 1030, 0, 145, 0,
3705 : 1465, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3706 : 0, 0, 2301, 0, 2302, 0, 0, 2335, 2331, 0,
3707 : 0, 0, 0, 0, 2305, 2308, 2309, 2310, 2307, 2311,
3708 : 2306, 0, 0, 2312, 0, 0, 2386, 2403, 0, 2116,
3709 : 2386, 2414, 0, 2413, 2419, 0, 2292, 2020, 0, 0,
3710 : 2410, 2404, 0, 2410, 0, 0, 2393, 0, 0, 0,
3711 : 0, 2193, 0, 0, 0, 2292, 2295, 0, 0, 2859,
3712 : 0, 0, 0, 0, 2088, 0, 0, 2259, 0, 2292,
3713 : 0, 0, 0, 0, 0, 0, 0, 2288, 2327, 0,
3714 : 508, 0, 2078, 0, 0, 0, 2207, 0, 2204, 0,
3715 : 0, 0, 0, 2348, 0, 0, 2447, 2021, 2036, 2037,
3716 : 2038, 2041, 2424, 2024, 0, 2350, 0, 0, 2022, 2049,
3717 : 0, 2328, 2074, 0, 2079, 2064, 2394, 2313, 2314, 2315,
3718 : 2316, 2081, 0, 2057, 2062, 2066, 0, 2403, 2045, 0,
3719 : 2042, 0, 2351, 2287, 0, 2285, 0, 2033, 2034, 2035,
3720 : 2027, 2028, 2029, 2030, 2031, 2032, 2039, 2263, 2261, 2262,
3721 : 0, 0, 2233, 0, 0, 2061, 0, 0, 2132, 2594,
3722 : 2633, 0, 1755, 1755, 1755, 1743, 1753, 2423, 1894, 1766,
3723 : 1894, 2429, 0, 0, 2016, 0, 1875, 968, 969, 967,
3724 : 1557, 1571, 1585, 2289, 1579, 1732, 0, 0, 0, 1960,
3725 : 1973, 0, 2000, 2001, 2002, 2002, 0, 1942, 0, 1985,
3726 : 2010, 2011, 2012, 2013, 2014, 2015, 0, 2009, 1951, 964,
3727 : 2835, 2844, 0, 2731, 2879, 0, 1855, 1828, 1830, 1840,
3728 : 1855, 1862, 1855, 1855, 2134, 1892, 2135, 2136, 2430, 0,
3729 : 1799, 2465, 1559, 1583, 0, 1120, 1121, 0, 1125, 2859,
3730 : 2731, 0, 0, 0, 0, 1789, 1823, 0, 1814, 0,
3731 : 2440, 1790, 2439, 1791, 1794, 1795, 1785, 1824, 1661, 0,
3732 : 1819, 1716, 1715, 0, 1897, 0, 0, 0, 1632, 1620,
3733 : 0, 0, 1880, 0, 1829, 1665, 0, 2348, 1827, 1380,
3734 : 1274, 1341, 1154, 0, 1961, 1165, 0, 1149, 0, 1148,
3735 : 1961, 0, 1166, 0, 1961, 1381, 1275, 1342, 1382, 1276,
3736 : 1343, 1383, 1517, 1277, 1516, 1504, 1503, 1502, 0, 0,
3737 : 0, 0, 0, 0, 0, 0, 825, 2602, 145, 1531,
3738 : 1384, 0, 1278, 364, 1532, 1344, 1536, 845, 844, 0,
3739 : 0, 1345, 0, 694, 699, 0, 701, 702, 2520, 2583,
3740 : 703, 706, 707, 0, 709, 698, 697, 0, 0, 0,
3741 : 0, 0, 715, 720, 0, 0, 0, 0, 0, 0,
3742 : 1184, 1185, 1385, 1281, 0, 1346, 0, 1132, 0, 1282,
3743 : 186, 0, 0, 282, 0, 2602, 304, 0, 0, 0,
3744 : 0, 0, 0, 0, 0, 0, 825, 492, 825, 0,
3745 : 1332, 301, 333, 0, 348, 343, 344, 342, 2602, 145,
3746 : 2602, 145, 0, 0, 0, 0, 0, 345, 340, 341,
3747 : 337, 0, 0, 350, 2492, 2564, 2746, 0, 726, 728,
3748 : 0, 733, 353, 1302, 372, 371, 370, 0, 358, 0,
3749 : 377, 380, 0, 355, 334, 332, 329, 297, 0, 0,
3750 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1234,
3751 : 0, 1388, 1347, 0, 1369, 1373, 0, 0, 0, 765,
3752 : 1391, 1288, 1350, 0, 555, 0, 0, 574, 574, 555,
3753 : 1402, 1289, 174, 1319, 163, 0, 0, 159, 0, 0,
3754 : 0, 0, 153, 1392, 1290, 1351, 0, 0, 1393, 1291,
3755 : 0, 0, 287, 635, 646, 652, 1296, 656, 653, 1359,
3756 : 654, 1400, 1292, 0, 1396, 1322, 1354, 390, 618, 389,
3757 : 1213, 1213, 1403, 1423, 1293, 1213, 0, 1330, 0, 276,
3758 : 278, 0, 142, 0, 1294, 0, 1352, 1395, 1321, 0,
3759 : 0, 0, 0, 0, 0, 0, 0, 0, 1539, 0,
3760 : 0, 0, 0, 0, 0, 145, 0, 0, 0, 1332,
3761 : 2602, 145, 887, 1394, 0, 1327, 0, 1367, 0, 0,
3762 : 0, 402, 0, 1320, 1330, 0, 289, 1298, 0, 1361,
3763 : 0, 0, 229, 228, 230, 0, 0, 0, 0, 2293,
3764 : 2294, 0, 2291, 2125, 2344, 0, 1549, 990, 976, 989,
3765 : 0, 972, 2562, 0, 975, 977, 0, 0, 0, 978,
3766 : 982, 983, 0, 974, 971, 973, 0, 413, 0, 0,
3767 : 782, 783, 0, 0, 0, 0, 864, 0, 0, 1529,
3768 : 0, 150, 692, 0, 0, 0, 687, 717, 722, 0,
3769 : 0, 0, 0, 469, 473, 477, 478, 479, 0, 0,
3770 : 0, 0, 164, 151, 0, 905, 0, 555, 0, 775,
3771 : 1213, 1406, 0, 194, 189, 0, 0, 738, 0, 1580,
3772 : 0, 0, 613, 616, 615, 0, 376, 859, 857, 856,
3773 : 858, 880, 855, 0, 1898, 1900, 0, 0, 0, 0,
3774 : 0, 0, 625, 472, 0, 0, 562, 0, 601, 0,
3775 : 0, 0, 0, 598, 0, 0, 0, 2473, 0, 876,
3776 : 848, 0, 1143, 0, 1161, 1144, 0, 0, 0, 0,
3777 : 1198, 1205, 1174, 1199, 1176, 1205, 0, 0, 788, 792,
3778 : 791, 795, 793, 0, 789, 666, 1703, 1704, 0, 1231,
3779 : 0, 0, 1525, 0, 1523, 927, 1225, 145, 0, 145,
3780 : 0, 145, 1233, 1227, 1229, 1431, 0, 925, 0, 0,
3781 : 918, 920, 0, 922, 0, 1034, 557, 0, 0, 0,
3782 : 0, 0, 0, 1050, 664, 1057, 0, 0, 0, 1072,
3783 : 1067, 1069, 0, 1084, 1078, 0, 751, 0, 0, 1658,
3784 : 1651, 1653, 1652, 0, 0, 1649, 2298, 917, 0, 631,
3785 : 0, 1084, 1075, 0, 0, 0, 0, 0, 0, 0,
3786 : 0, 0, 0, 0, 1760, 2299, 2300, 0, 0, 0,
3787 : 2332, 0, 0, 2169, 0, 2140, 2142, 2155, 0, 2170,
3788 : 2123, 0, 2385, 2382, 0, 0, 0, 2386, 2393, 2189,
3789 : 0, 0, 0, 2393, 0, 2413, 0, 0, 0, 2184,
3790 : 2186, 0, 0, 0, 2403, 2403, 0, 2191, 0, 0,
3791 : 2171, 2144, 2146, 2156, 0, 0, 2279, 0, 2159, 2158,
3792 : 0, 2090, 2091, 0, 0, 0, 0, 0, 0, 0,
3793 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3794 : 0, 2105, 2160, 2258, 0, 0, 0, 2162, 2161, 0,
3795 : 0, 2326, 0, 0, 0, 2167, 509, 2172, 0, 0,
3796 : 0, 0, 2178, 0, 2215, 0, 0, 0, 2113, 2289,
3797 : 0, 0, 0, 0, 0, 0, 0, 2396, 2397, 2398,
3798 : 2395, 0, 2080, 2065, 2083, 2059, 2063, 2067, 0, 2403,
3799 : 2082, 2085, 0, 0, 2053, 0, 0, 2051, 2075, 2047,
3800 : 0, 0, 2076, 0, 2131, 0, 0, 0, 2236, 2231,
3801 : 2232, 1755, 1755, 1755, 1755, 1752, 0, 0, 0, 1799,
3802 : 0, 1799, 205, 0, 238, 225, 1556, 1733, 1742, 1979,
3803 : 0, 1997, 1995, 1938, 1943, 2018, 0, 1855, 1862, 1855,
3804 : 1855, 0, 0, 1718, 0, 1840, 0, 1854, 1838, 1853,
3805 : 0, 0, 1868, 1866, 0, 1868, 0, 1868, 0, 1832,
3806 : 0, 1858, 1834, 1853, 1836, 1842, 0, 1884, 2431, 1893,
3807 : 0, 1812, 1769, 0, 2280, 1125, 0, 1771, 1793, 1792,
3808 : 0, 1782, 0, 1821, 1779, 1662, 1646, 0, 1637, 1624,
3809 : 1626, 1625, 0, 0, 1627, 2348, 0, 1637, 1619, 0,
3810 : 1670, 0, 0, 1897, 0, 1669, 0, 1961, 1146, 1147,
3811 : 0, 1170, 0, 1089, 1090, 0, 1088, 0, 0, 0,
3812 : 546, 549, 0, 1534, 0, 1401, 1318, 696, 0, 0,
3813 : 0, 0, 711, 670, 712, 714, 0, 0, 713, 716,
3814 : 719, 1330, 0, 295, 1304, 0, 1365, 1178, 0, 0,
3815 : 1135, 0, 0, 0, 0, 0, 1106, 536, 1105, 0,
3816 : 0, 0, 825, 0, 825, 0, 0, 541, 0, 491,
3817 : 488, 328, 327, 0, 0, 0, 0, 385, 0, 306,
3818 : 319, 383, 325, 0, 360, 0, 331, 0, 323, 346,
3819 : 338, 347, 339, 359, 361, 0, 730, 731, 729, 725,
3820 : 0, 732, 734, 0, 374, 0, 0, 0, 392, 354,
3821 : 391, 0, 1387, 0, 1330, 0, 291, 1300, 0, 1363,
3822 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3823 : 0, 0, 1368, 0, 0, 0, 0, 770, 0, 767,
3824 : 0, 574, 0, 1415, 0, 1412, 1410, 574, 0, 0,
3825 : 156, 155, 0, 162, 0, 0, 0, 0, 0, 0,
3826 : 1424, 1425, 1426, 0, 0, 0, 0, 0, 0, 396,
3827 : 0, 298, 300, 299, 0, 0, 0, 0, 0, 0,
3828 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3829 : 0, 403, 367, 0, 883, 0, 0, 0, 405, 0,
3830 : 0, 1379, 0, 0, 0, 0, 0, 1386, 1283, 2128,
3831 : 2129, 2126, 1766, 2343, 0, 0, 0, 987, 0, 0,
3832 : 0, 0, 416, 417, 150, 415, 440, 0, 825, 0,
3833 : 0, 861, 866, 874, 2672, 2266, 2267, 872, 867, 869,
3834 : 871, 873, 870, 0, 0, 0, 0, 516, 520, 0,
3835 : 0, 0, 500, 0, 0, 510, 493, 496, 497, 0,
3836 : 0, 688, 691, 689, 690, 0, 710, 0, 472, 525,
3837 : 588, 0, 166, 0, 0, 167, 165, 0, 0, 376,
3838 : 772, 0, 769, 1405, 0, 192, 0, 742, 0, 0,
3839 : 0, 0, 0, 1213, 680, 0, 879, 881, 853, 0,
3840 : 722, 0, 0, 637, 0, 555, 1612, 620, 0, 590,
3841 : 472, 588, 597, 0, 0, 605, 375, 0, 0, 625,
3842 : 376, 0, 0, 1106, 0, 875, 0, 0, 1142, 0,
3843 : 0, 0, 1195, 1200, 1196, 0, 1175, 1157, 0, 1197,
3844 : 0, 0, 1203, 1128, 1177, 1129, 1447, 1448, 1445, 1446,
3845 : 0, 0, 0, 0, 0, 0, 1694, 0, 0, 1521,
3846 : 0, 929, 0, 912, 0, 914, 145, 759, 0, 145,
3847 : 0, 0, 0, 0, 0, 0, 1049, 0, 1043, 1045,
3848 : 1070, 0, 0, 1084, 1083, 0, 1074, 1082, 1080, 1081,
3849 : 1079, 0, 0, 1656, 1654, 623, 0, 0, 145, 1084,
3850 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3851 : 2303, 0, 2334, 2330, 0, 2137, 2304, 2384, 2400, 2402,
3852 : 2190, 2392, 0, 0, 0, 2415, 0, 0, 2393, 2353,
3853 : 2407, 2406, 0, 0, 2405, 2393, 2393, 2353, 2192, 2353,
3854 : 0, 0, 0, 2259, 0, 0, 2089, 2101, 2102, 2103,
3855 : 2319, 0, 2108, 0, 2098, 2099, 2100, 2092, 2093, 2094,
3856 : 2095, 2096, 2097, 2104, 2323, 2322, 0, 0, 2164, 2165,
3857 : 2166, 2325, 2173, 0, 2510, 2216, 0, 2177, 2206, 2205,
3858 : 0, 0, 0, 2180, 0, 0, 2202, 0, 2260, 2448,
3859 : 2023, 0, 0, 2050, 2329, 2068, 0, 2084, 2086, 2046,
3860 : 2279, 0, 0, 0, 0, 0, 2055, 0, 0, 2256,
3861 : 0, 0, 0, 2238, 2235, 0, 0, 0, 0, 1746,
3862 : 1745, 1751, 1812, 2125, 1812, 0, 0, 1939, 0, 1839,
3863 : 1835, 1837, 1843, 0, 2874, 0, 1844, 1851, 0, 1831,
3864 : 0, 1867, 1863, 0, 1864, 0, 0, 1865, 0, 0,
3865 : 1833, 0, 1851, 0, 1891, 1758, 0, 2227, 0, 1770,
3866 : 1123, 1124, 1780, 0, 1783, 2541, 1895, 1639, 1645, 0,
3867 : 0, 0, 1629, 1635, 1617, 0, 0, 0, 1666, 1637,
3868 : 1667, 1167, 0, 0, 1159, 1095, 0, 1096, 1099, 1097,
3869 : 1094, 1098, 0, 0, 0, 825, 828, 834, 0, 0,
3870 : 0, 826, 145, 1279, 0, 0, 0, 0, 671, 1399,
3871 : 1280, 0, 0, 0, 0, 1179, 1333, 0, 0, 1303,
3872 : 825, 0, 0, 0, 569, 0, 1119, 1119, 559, 303,
3873 : 539, 553, 543, 610, 553, 490, 489, 0, 487, 722,
3874 : 0, 0, 310, 320, 0, 315, 0, 1331, 0, 0,
3875 : 0, 0, 314, 317, 316, 387, 0, 384, 0, 145,
3876 : 145, 362, 727, 373, 378, 379, 382, 1338, 0, 0,
3877 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3878 : 0, 906, 891, 0, 0, 907, 908, 0, 0, 0,
3879 : 1236, 1237, 1235, 1370, 1371, 1377, 1374, 1372, 1376, 1378,
3880 : 1375, 0, 1286, 0, 0, 763, 1334, 1407, 1409, 1408,
3881 : 0, 1411, 160, 157, 158, 161, 1335, 1316, 1297, 1360,
3882 : 619, 0, 0, 0, 1295, 0, 1353, 0, 1312, 1306,
3883 : 0, 0, 0, 0, 0, 1398, 1326, 1358, 1397, 1324,
3884 : 1356, 1323, 1355, 1325, 1357, 1317, 0, 0, 1902, 888,
3885 : 0, 0, 0, 145, 145, 886, 761, 1299, 0, 1362,
3886 : 1308, 0, 0, 0, 979, 0, 0, 0, 981, 421,
3887 : 441, 150, 0, 781, 847, 0, 0, 863, 0, 498,
3888 : 0, 504, 511, 0, 0, 518, 519, 517, 521, 551,
3889 : 1213, 555, 1213, 814, 815, 0, 0, 837, 0, 686,
3890 : 0, 0, 470, 0, 522, 0, 0, 474, 169, 168,
3891 : 0, 0, 0, 776, 780, 778, 777, 779, 774, 0,
3892 : 765, 194, 2602, 0, 0, 0, 0, 617, 611, 614,
3893 : 1420, 854, 0, 1901, 755, 0, 376, 633, 0, 0,
3894 : 0, 470, 625, 0, 475, 480, 481, 494, 0, 598,
3895 : 589, 0, 590, 599, 600, 0, 607, 1495, 0, 626,
3896 : 607, 0, 0, 0, 878, 0, 877, 0, 1145, 1162,
3897 : 1163, 0, 0, 1205, 0, 0, 1207, 1202, 0, 0,
3898 : 794, 797, 790, 673, 145, 0, 1524, 145, 145, 1262,
3899 : 0, 923, 1064, 1065, 1066, 1063, 1062, 665, 0, 1068,
3900 : 1027, 1077, 753, 0, 624, 0, 1028, 145, 1004, 996,
3901 : 1003, 992, 995, 997, 0, 999, 1000, 994, 991, 993,
3902 : 2333, 2154, 0, 2399, 2401, 2188, 2412, 2411, 2187, 2418,
3903 : 0, 0, 2381, 2409, 2408, 0, 0, 2393, 2393, 2157,
3904 : 2168, 0, 2258, 2289, 0, 0, 2109, 0, 0, 0,
3905 : 2163, 2869, 0, 0, 2220, 2221, 0, 2217, 2218, 2213,
3906 : 2214, 2179, 0, 2659, 2197, 0, 0, 2212, 2072, 2070,
3907 : 2069, 2054, 0, 0, 2052, 2048, 0, 2077, 2222, 2255,
3908 : 2289, 2224, 0, 1766, 1750, 1749, 1748, 1747, 2227, 2445,
3909 : 2227, 239, 1737, 0, 1887, 0, 1890, 0, 0, 1841,
3910 : 0, 0, 1845, 0, 0, 1847, 1849, 0, 0, 0,
3911 : 0, 0, 0, 2434, 0, 1811, 0, 1766, 0, 1781,
3912 : 0, 0, 0, 1621, 0, 1622, 1628, 0, 0, 0,
3913 : 0, 0, 1671, 1664, 1160, 1168, 1100, 0, 0, 0,
3914 : 548, 830, 829, 832, 827, 833, 831, 1535, 0, 704,
3915 : 705, 708, 1305, 0, 1366, 1314, 0, 1660, 538, 305,
3916 : 0, 564, 0, 0, 0, 1112, 140, 1111, 0, 0,
3917 : 0, 0, 0, 486, 485, 494, 313, 0, 0, 0,
3918 : 307, 386, 0, 388, 308, 312, 367, 330, 322, 0,
3919 : 0, 0, 1301, 0, 1364, 1310, 1337, 1389, 1284, 1348,
3920 : 0, 0, 897, 0, 0, 0, 0, 1390, 1285, 1349,
3921 : 0, 0, 0, 0, 0, 1660, 0, 0, 0, 0,
3922 : 0, 0, 0, 0, 1544, 0, 0, 366, 885, 884,
3923 : 367, 404, 1328, 0, 2127, 0, 980, 985, 986, 984,
3924 : 0, 410, 418, 421, 0, 0, 1253, 1253, 0, 0,
3925 : 495, 512, 0, 0, 499, 609, 568, 609, 0, 0,
3926 : 0, 0, 0, 723, 0, 0, 0, 0, 0, 0,
3927 : 0, 0, 0, 0, 768, 767, 191, 0, 470, 0,
3928 : 722, 0, 882, 0, 0, 0, 625, 472, 0, 0,
3929 : 1609, 471, 0, 0, 483, 0, 601, 590, 598, 0,
3930 : 0, 622, 0, 1488, 0, 628, 0, 0, 0, 824,
3931 : 1201, 0, 1215, 0, 1156, 1126, 1210, 0, 1742, 1894,
3932 : 0, 0, 0, 0, 807, 0, 677, 1254, 1522, 913,
3933 : 915, 760, 1071, 0, 1084, 1076, 998, 2383, 2417, 2352,
3934 : 2354, 0, 0, 2375, 2368, 2371, 2369, 2370, 2372, 0,
3935 : 2367, 0, 2185, 2416, 2365, 2379, 2318, 2260, 2106, 0,
3936 : 2321, 2320, 2324, 0, 2174, 0, 2175, 2219, 2181, 2198,
3937 : 0, 2182, 2210, 0, 0, 2073, 2071, 2056, 2257, 0,
3938 : 2242, 1720, 1719, 0, 1740, 1923, 1892, 0, 0, 1886,
3939 : 0, 0, 1917, 0, 0, 0, 1852, 1870, 0, 1848,
3940 : 1846, 0, 1859, 0, 1861, 2540, 2830, 2728, 0, 1798,
3941 : 1800, 1803, 1805, 1804, 1806, 1802, 2226, 2228, 0, 1777,
3942 : 2281, 1896, 0, 1636, 0, 0, 0, 1107, 0, 0,
3943 : 1637, 1673, 1685, 1685, 1668, 1072, 0, 145, 700, 0,
3944 : 0, 284, 1119, 0, 1213, 570, 2672, 571, 1118, 1122,
3945 : 139, 2689, 0, 552, 564, 564, 482, 0, 311, 321,
3946 : 0, 369, 381, 0, 1660, 0, 0, 895, 904, 904,
3947 : 892, 0, 0, 909, 1287, 764, 0, 573, 0, 279,
3948 : 1313, 1307, 0, 0, 0, 1546, 1547, 0, 0, 0,
3949 : 0, 0, 1336, 145, 1309, 988, 0, 443, 451, 422,
3950 : 426, 1538, 0, 1538, 0, 423, 427, 1538, 1538, 420,
3951 : 1894, 439, 1253, 0, 1250, 1249, 551, 639, 0, 550,
3952 : 0, 502, 0, 579, 501, 0, 838, 0, 0, 721,
3953 : 0, 472, 588, 0, 535, 526, 527, 528, 529, 531,
3954 : 530, 532, 533, 534, 524, 523, 0, 722, 901, 376,
3955 : 1495, 762, 0, 0, 735, 0, 722, 0, 1612, 621,
3956 : 590, 472, 588, 476, 494, 0, 605, 598, 601, 0,
3957 : 602, 0, 606, 0, 0, 0, 625, 1548, 1106, 0,
3958 : 0, 825, 1214, 1175, 0, 0, 1204, 1208, 1209, 0,
3959 : 0, 0, 0, 1257, 801, 802, 796, 798, 0, 809,
3960 : 813, 672, 0, 0, 676, 667, 722, 145, 0, 0,
3961 : 2366, 2373, 2374, 0, 2195, 0, 0, 2391, 0, 0,
3962 : 0, 2107, 0, 0, 2200, 2199, 2211, 2183, 2237, 0,
3963 : 0, 0, 0, 0, 0, 0, 1731, 0, 2353, 1885,
3964 : 1888, 0, 1920, 0, 0, 0, 0, 1905, 0, 1850,
3965 : 0, 0, 1860, 0, 0, 0, 1807, 0, 0, 0,
3966 : 1816, 1644, 1643, 0, 1640, 0, 0, 1634, 1894, 0,
3967 : 1631, 0, 1680, 0, 1672, 1674, 0, 0, 0, 1091,
3968 : 0, 1092, 1315, 0, 1113, 0, 609, 0, 1125, 1122,
3969 : 558, 0, 1213, 1213, 639, 0, 0, 324, 0, 292,
3970 : 1311, 0, 0, 893, 894, 0, 0, 0, 0, 0,
3971 : 0, 398, 0, 0, 1540, 0, 1541, 1542, 1545, 406,
3972 : 419, 0, 449, 448, 0, 446, 445, 447, 0, 436,
3973 : 0, 0, 0, 0, 0, 0, 409, 1248, 1252, 1251,
3974 : 503, 0, 505, 0, 0, 565, 566, 567, 0, 507,
3975 : 575, 576, 835, 0, 840, 0, 724, 0, 0, 722,
3976 : 587, 746, 0, 0, 0, 1489, 0, 0, 612, 756,
3977 : 1495, 625, 598, 0, 590, 484, 0, 607, 601, 605,
3978 : 603, 604, 0, 1492, 0, 627, 0, 1115, 823, 0,
3979 : 1205, 1216, 1211, 1206, 1451, 0, 0, 799, 804, 803,
3980 : 1538, 808, 0, 0, 0, 675, 674, 750, 1029, 2355,
3981 : 2356, 2380, 0, 0, 0, 2359, 0, 2357, 0, 0,
3982 : 2379, 0, 2196, 2317, 2203, 2176, 2201, 2817, 2541, 2787,
3983 : 0, 2254, 2243, 2254, 2254, 2234, 0, 0, 0, 1922,
3984 : 0, 0, 0, 1918, 1919, 1903, 0, 0, 1907, 1857,
3985 : 1883, 0, 0, 0, 1801, 2229, 2230, 2464, 1638, 0,
3986 : 0, 1623, 1633, 1108, 0, 1682, 1684, 0, 0, 0,
3987 : 1660, 0, 574, 0, 1109, 1125, 561, 609, 609, 318,
3988 : 309, 368, 0, 0, 0, 902, 911, 910, 766, 1660,
3989 : 0, 394, 393, 0, 397, 0, 444, 454, 0, 452,
3990 : 424, 429, 0, 435, 434, 431, 430, 425, 428, 0,
3991 : 515, 0, 0, 0, 0, 577, 0, 578, 0, 839,
3992 : 0, 0, 0, 748, 900, 0, 0, 470, 722, 1490,
3993 : 1610, 601, 590, 598, 0, 0, 592, 1119, 1119, 457,
3994 : 605, 607, 1493, 1494, 0, 0, 510, 0, 1127, 1450,
3995 : 1449, 1742, 0, 0, 0, 810, 811, 806, 0, 0,
3996 : 2360, 0, 2363, 0, 2364, 2358, 2388, 2390, 0, 2376,
3997 : 2377, 0, 2247, 2246, 2245, 2249, 2248, 0, 2241, 2239,
3998 : 2240, 0, 0, 0, 0, 1889, 0, 1906, 1909, 0,
3999 : 0, 0, 1915, 0, 1908, 1910, 0, 1869, 0, 1881,
4000 : 1809, 0, 1808, 1641, 1642, 1894, 0, 1687, 0, 0,
4001 : 1675, 1676, 0, 0, 1677, 145, 285, 563, 825, 572,
4002 : 1110, 0, 568, 825, 825, 1660, 896, 0, 280, 0,
4003 : 399, 1543, 450, 0, 433, 432, 638, 513, 514, 506,
4004 : 608, 584, 0, 583, 0, 581, 580, 836, 841, 0,
4005 : 722, 890, 1495, 736, 605, 598, 601, 0, 591, 0,
4006 : 140, 140, 607, 455, 0, 0, 376, 0, 1433, 1742,
4007 : 1432, 1434, 1442, 1439, 1441, 1440, 1438, 0, 1260, 1261,
4008 : 800, 805, 0, 0, 2361, 2362, 0, 0, 2194, 0,
4009 : 0, 0, 2251, 0, 2252, 0, 0, 0, 0, 0,
4010 : 1912, 1913, 1914, 1916, 1911, 1856, 0, 1810, 1630, 1681,
4011 : 1683, 1678, 0, 1679, 0, 0, 0, 0, 1688, 1093,
4012 : 544, 559, 579, 542, 540, 293, 903, 0, 453, 582,
4013 : 555, 555, 722, 747, 1491, 607, 601, 605, 1119, 593,
4014 : 595, 594, 459, 1115, 1116, 0, 607, 813, 0, 1443,
4015 : 1437, 1718, 1705, 0, 0, 812, 0, 0, 0, 0,
4016 : 2244, 2250, 2253, 0, 0, 0, 0, 2652, 0, 1924,
4017 : 0, 0, 0, 1686, 1692, 0, 0, 0, 0, 825,
4018 : 0, 586, 585, 749, 458, 605, 607, 140, 510, 1114,
4019 : 0, 1894, 0, 1435, 1742, 0, 0, 818, 2387, 2389,
4020 : 2378, 1736, 1735, 2835, 0, 0, 1739, 1932, 0, 2381,
4021 : 0, 0, 1935, 0, 1882, 0, 0, 0, 560, 545,
4022 : 395, 607, 456, 596, 376, 1117, 1101, 0, 1436, 0,
4023 : 0, 820, 0, 816, 819, 821, 822, 0, 0, 0,
4024 : 0, 1925, 1926, 1935, 0, 2365, 1935, 1904, 1689, 1693,
4025 : 0, 1690, 460, 607, 0, 0, 0, 784, 0, 1766,
4026 : 0, 0, 0, 1921, 2381, 1934, 2391, 2365, 0, 1894,
4027 : 0, 0, 0, 817, 0, 0, 0, 0, 1929, 2379,
4028 : 2391, 0, 1102, 818, 1258, 1259, 0, 1738, 0, 0,
4029 : 1927, 2379, 1691, 0, 0, 1930, 1928, 785, 0, 1931
4030 : };
4031 :
4032 : /* YYPGOTO[NTERM-NUM]. */
4033 : static const yytype_int16 yypgoto[] =
4034 : {
4035 : -5950, -5950, -5950, 4198, -387, -1747, -5168, -1141, -767, -5950,
4036 : -5950, -975, 561, 3443, -1136, -5950, -5950, -5950, 1356, -5950,
4037 : -5950, -5950, -5950, 4185, -5950, -2962, -5950, -5950, 208, 4125,
4038 : -1400, 168, 3752, 1712, -5950, -1016, -5950, -5950, -656, 1,
4039 : -5950, 4128, 498, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
4040 : -5950, -786, 2176, -5950, 2276, 1510, -3518, -5950, -5950, -1543,
4041 : -3810, -5950, 758, -5950, 785, -4173, -5950, -4870, -927, -5950,
4042 : -5950, -5950, 2166, -5950, -5950, -5950, 2113, 1300, -273, -5950,
4043 : -5950, -5950, -5950, -5950, -5950, -750, -5950, -5950, -1060, 4,
4044 : -658, -2963, -4373, -5950, -5950, 604, -315, -1520, -5950, 800,
4045 : -5950, 801, -5950, -4892, -5950, 102, -2791, -2523, -5950, -5950,
4046 : -5950, -5950, -285, -1529, 1549, -5950, 1612, -527, 257, -733,
4047 : -1157, -1128, -5950, -3096, -2867, -1027, -5950, -166, -3621, -1125,
4048 : -752, -749, -910, -4428, -4953, -5950, -5950, -1059, -3836, -5254,
4049 : -5497, -4966, -5197, 1561, -5950, 81, 617, -5950, 6, -3687,
4050 : -3817, 7, 593, -5950, 8, 11, -5950, 609, -679, -976,
4051 : -1616, -5950, -799, -5950, -5950, -5950, -3484, -5950, -5950, -5950,
4052 : 171, -5950, -5950, -5950, -5950, 653, -5950, -5950, -5950, -5950,
4053 : -5950, -5950, -3237, 2147, 2149, -5950, -4371, -5950, -957, -5950,
4054 : 819, -3538, 1546, -5950, -5950, 1306, 4210, 639, -5950, -5950,
4055 : -5950, -5950, -5950, -5950, -1798, -5950, -5950, -5950, -5950, 108,
4056 : -246, -5950, -5950, -5950, -5950, -5950, -5950, -5950, 13, -5950,
4057 : 1271, 583, -5950, -5950, -556, -5950, -5950, -5950, -5950, -5950,
4058 : -5950, -1108, -5253, -1238, -1212, -5950, -3488, -5950, -5950, -5950,
4059 : -211, -5950, -5950, -5950, -5950, -5950, -887, -5950, 1372, -4180,
4060 : -5950, -5950, 624, -5950, -5950, -5950, -5950, -5950, -869, -146,
4061 : 3398, -5950, -411, -5950, -5950, -5950, -147, -5950, -5950, -5950,
4062 : -5950, -5950, -522, -1270, 5242, 4596, -1126, 16399, -842, -557,
4063 : -5950, -5950, -5950, -2783, -5950, -5950, -4283, -5950, 5233, 2363,
4064 : 1642, 16, -5950, -12, 103, 4028, -5950, 1242, -1173, -3155,
4065 : 587, -370, -5950, -5950, -5950, 586, -5950, -1961, -5950, -5950,
4066 : -5950, -5950, -4165, 20, -5950, -4438, -5258, -4669, -4210, -1071,
4067 : -5950, -4508, -5233, -4143, -5950, 2189, -5950, -5950, -553, -192,
4068 : 3366, -5950, -1495, 2542, -1415, -5950, -2519, 647, 1728, 3373,
4069 : -3300, -113, 3369, -3043, -5950, -691, 1312, -5950, -235, -3844,
4070 : -5950, -5950, -5950, -2804, -498, -5950, -5950, 1582, -1110, -5950,
4071 : -5950, -5950, -5950, -643, 3374, -209, -5950, -5950, 4569, -5950,
4072 : -5054, -5950, 4540, -5950, -5950, -5950, -5950, -5950, -5950, -5950,
4073 : -5950, -5950, -1503, 1481, -5950, -792, -5950, -5950, 2296, 861,
4074 : -5950, -5950, -5950, -5950, 1574, -376, -5950, -5950, -5950, -5950,
4075 : -5950, -5950, -5950, -849, -1091, -5950, -5950, -5687, -5950, -5950,
4076 : -5950, -5950, -5950, 2520, -961, -759, 4445, -210, 27, -5466,
4077 : -5950, -5950, -1161, -5950, 3780, -5950, -5950, -5950, -5950, -5950,
4078 : 646, 651, -5950, -5950, -5950, -5950, -4496, -5950, -5950, -5128,
4079 : -5950, -5950, 2284, -5950, -5950, 1447, 5, 3489, -5950, -5950,
4080 : -5950, -9, -5950, -5950, -1023, 2637, -5950, -2394, -5950, -582,
4081 : -5950, -5950, -1915, 31, -4426, -5950, 60, -5950, -5950, -5123,
4082 : -1010, 441, -5950, -5950, -4145, -5950, -5950, -745, -5950, 61,
4083 : -5950, -5950, -5950, -5950, -5110, -5950, 69, -5665, 1016, -3383,
4084 : -5950, 15, -5950, -310, -5950, -5950, -312, -5950, -5950, -5950,
4085 : -4166, 33, 122, -5950, -5950, 82, 382, -46, -30, -26,
4086 : 21, 188, 3897, -5950, -5950, -5950, -5088, 3944, -5950, 9,
4087 : -863, 5284, 5286, -5950, -924, -144, 600, 1835, -680, -2638,
4088 : 3849, 3864, -5950, 1821, 2641, -2461, -2459, -5950, -913, -720,
4089 : -523, -5950, -5950, -5950, -5950, -1502, -669, -2641, -5950, 3865,
4090 : -5950, -5950, -5950, -2366, -3421, -3251, 1860, -3335, -3172, -5950,
4091 : 1100, 1081, -875, 32, 43, -1485, -802, 1890, -5950, -5950,
4092 : 1867, -245, -5950, -5950, -242, -3332, 1038, -5950, -4621, -2848,
4093 : 1873, -1025, -699, -5950, -843, -5950, -496, 1880, -5950, -4102,
4094 : -1057, -5950, -3618, 10883, 3921, -846, -5950, -5950, -800, 8724,
4095 : -5950, -5950, -5950, 10620, 10665, -5950, -5950, 10916, 12045, -5950,
4096 : -528, 12518, 7144, -801, -1950, 401, 13586, 18285, -1965, 2743,
4097 : 365, -5950, -2991, -1549, -5950, -5950, -5950, -208, 1196, 804,
4098 : -5950, -5950, -4684, -4485, -5950, 2771, -1894, -5950, -495, 1953,
4099 : -492, -5950, -5950, -5950, -3022, -5633, -3190, 2778, -5950, -5950,
4100 : -5950, -199, -5950, 18053, -3284, -5950, -785, -1032, -1609, 3285,
4101 : -3110, -1924, -5950, -5950, -5950, -3138, -5950, -5950, -5950, -717,
4102 : 1979, -5950, -5950, 2108, -5950, -5950, -5950, -982, 2344, -737,
4103 : -1196, 1984, -4533, -5950, -431, -4545, -5058, -5950, -5574, -5218,
4104 : -1897, -1034, -3042, -5949, -1935, 1997, -3135, -5950, -1948, 2077,
4105 : 1286, -5950, 1217, -5950, 4466, -796, 2786, -804, 16099, -689,
4106 : 10414, -1299, -5950, 1178, -4921, 6287, 6555, 36, -119, 6314,
4107 : -608, 2703, 2820, -5950, -5950, -6, 8160, -662, -876, -5950,
4108 : 4723, 14731, 15031, -3735, -5950
4109 : };
4110 :
4111 : /* YYDEFGOTO[NTERM-NUM]. */
4112 : static const yytype_int16 yydefgoto[] =
4113 : {
4114 : 0, 57, 58, 59, 60, 1111, 1116, 1915, 1934, 61,
4115 : 62, 1635, 3073, 2926, 3902, 3903, 63, 64, 1631, 65,
4116 : 66, 67, 68, 1545, 69, 1887, 3087, 70, 2758, 853,
4117 : 854, 855, 2623, 2624, 3018, 2625, 2613, 1397, 1833, 1567,
4118 : 827, 828, 1527, 1568, 72, 73, 1391, 2604, 74, 75,
4119 : 76, 1598, 1694, 1599, 1600, 1539, 5048, 5897, 3688, 2881,
4120 : 3950, 3689, 3690, 4380, 4381, 3768, 4409, 4471, 5911, 5912,
4121 : 77, 1710, 1711, 78, 79, 3055, 3868, 4524, 5441, 5442,
4122 : 5709, 672, 5071, 5072, 5696, 5697, 5926, 6098, 6099, 3088,
4123 : 703, 3945, 4609, 3893, 5143, 3894, 5144, 3895, 5145, 4938,
4124 : 4939, 4369, 4370, 3879, 4556, 4557, 2091, 5084, 6239, 4558,
4125 : 3896, 5104, 5744, 3897, 2847, 2773, 2774, 5454, 5371, 3122,
4126 : 2006, 5369, 6222, 2004, 5644, 5723, 4923, 4924, 4445, 5949,
4127 : 5950, 5951, 6245, 5106, 5149, 5150, 6135, 6136, 3948, 4615,
4128 : 5156, 5501, 5721, 3646, 81, 3921, 3922, 82, 766, 1909,
4129 : 4049, 767, 3125, 704, 768, 3089, 87, 3115, 5942, 3116,
4130 : 1663, 2940, 4537, 4025, 88, 1139, 4332, 5526, 5804, 5805,
4131 : 757, 89, 1895, 90, 91, 3068, 3886, 92, 2791, 3593,
4132 : 93, 94, 3612, 3613, 3614, 95, 4566, 5462, 1601, 3677,
4133 : 3678, 3679, 3680, 4401, 96, 1890, 3096, 3097, 97, 98,
4134 : 99, 3227, 3228, 100, 3004, 101, 102, 103, 104, 4439,
4135 : 5005, 5120, 3719, 3909, 4582, 5118, 105, 3872, 3090, 3143,
4136 : 3983, 3984, 5524, 5796, 5797, 5798, 6000, 6280, 5800, 6002,
4137 : 6157, 6004, 5095, 6432, 6433, 5781, 4321, 4901, 107, 5096,
4138 : 5097, 5955, 108, 2789, 109, 110, 1864, 3061, 3062, 4538,
4139 : 3132, 3958, 3959, 4595, 4596, 111, 3808, 112, 4981, 4982,
4140 : 705, 5963, 5903, 113, 114, 4985, 4986, 115, 116, 117,
4141 : 118, 119, 758, 1073, 1074, 760, 1194, 1195, 3554, 1156,
4142 : 120, 2633, 121, 3848, 122, 1269, 5209, 123, 792, 1210,
4143 : 1211, 3091, 125, 802, 3246, 804, 3211, 3212, 2022, 4029,
4144 : 4030, 4683, 126, 127, 4033, 4034, 4690, 3224, 128, 1532,
4145 : 2768, 2769, 4892, 3092, 706, 3639, 5626, 5365, 5627, 6146,
4146 : 6345, 5366, 3498, 4277, 130, 707, 1573, 2830, 1162, 1163,
4147 : 3136, 3963, 2738, 2739, 1733, 4636, 2741, 3965, 2742, 1506,
4148 : 2743, 1149, 1150, 3971, 3972, 3973, 3974, 4632, 4642, 4643,
4149 : 5518, 5789, 4639, 1883, 5512, 5513, 131, 1570, 2827, 132,
4150 : 133, 134, 1614, 997, 1172, 1173, 135, 719, 720, 136,
4151 : 5714, 137, 1152, 138, 5522, 139, 140, 1254, 1255, 819,
4152 : 141, 142, 2851, 4383, 143, 1571, 144, 145, 3713, 3714,
4153 : 4997, 146, 147, 148, 2912, 2913, 149, 150, 151, 152,
4154 : 153, 6270, 6348, 6349, 6350, 4650, 6151, 154, 1242, 155,
4155 : 156, 157, 158, 196, 1038, 1039, 1040, 950, 3093, 5503,
4156 : 160, 161, 1528, 1529, 1530, 1531, 2763, 162, 163, 164,
4157 : 3993, 3994, 165, 166, 167, 168, 1867, 169, 170, 5687,
4158 : 171, 172, 1837, 173, 174, 1047, 1048, 1049, 1050, 1835,
4159 : 3442, 666, 872, 1422, 1428, 1471, 1472, 1473, 176, 770,
4160 : 177, 1245, 1078, 771, 1203, 179, 772, 2720, 3528, 4292,
4161 : 4293, 4294, 4297, 5329, 4868, 5322, 5863, 5864, 5865, 773,
4162 : 3524, 182, 2029, 3233, 3236, 3520, 774, 3534, 3535, 3536,
4163 : 4301, 775, 5630, 5631, 5632, 5633, 5877, 6210, 6211, 6214,
4164 : 6318, 776, 794, 1142, 3147, 777, 1356, 188, 189, 190,
4165 : 930, 875, 876, 3447, 5584, 5836, 192, 2597, 3425, 811,
4166 : 1477, 918, 919, 920, 939, 3028, 2686, 2687, 2711, 2712,
4167 : 1486, 1487, 2699, 2703, 2704, 3511, 3504, 2692, 4271, 5609,
4168 : 5610, 5611, 5612, 5613, 5614, 4857, 2707, 2708, 1489, 1490,
4169 : 1491, 2716, 193, 2676, 3477, 3478, 3479, 4247, 4248, 6197,
4170 : 4262, 4258, 4842, 5305, 3480, 864, 1240, 1498, 4850, 6199,
4171 : 3481, 5294, 5295, 5589, 4267, 3490, 4288, 3933, 3934, 3935,
4172 : 3482, 5846, 5847, 6194, 6195, 5591, 5592, 3483, 5838, 6368,
4173 : 6369, 6408, 6445, 2744, 1451, 903, 1357, 904, 1464, 1358,
4174 : 1438, 906, 1359, 1360, 1361, 909, 1362, 1363, 1364, 912,
4175 : 1430, 1365, 1366, 1447, 1460, 1461, 1367, 1423, 5593, 1369,
4176 : 1370, 1371, 3485, 1372, 4786, 5266, 5252, 3347, 3348, 2620,
4177 : 5574, 4782, 4160, 4776, 2590, 2594, 5317, 5616, 5617, 3418,
4178 : 4209, 4813, 5283, 5832, 6031, 6032, 6178, 1373, 1374, 1375,
4179 : 3410, 2584, 1000, 1376, 4540, 2586, 3338, 3316, 1736, 3317,
4180 : 2032, 2054, 3265, 3281, 3282, 3386, 3318, 3326, 3331, 3339,
4181 : 3372, 1377, 3267, 3268, 4071, 2056, 1378, 1044, 1739, 1045,
4182 : 1466, 3367, 5232, 5539, 5540, 5817, 5818, 5550, 5819, 5551,
4183 : 5541, 4082, 4083, 6020, 3292, 3387, 4086, 3300, 3301, 4104,
4184 : 4093, 3293, 1379, 4095, 1387, 1388, 1381, 2023, 865, 5301,
4185 : 1198, 1820, 808, 1382, 1383, 1384, 1385, 1607, 971, 1165,
4186 : 1166, 921, 923, 924, 2680, 662, 654, 973, 3681, 2587,
4187 : 663, 656, 657, 1825, 2588
4188 : };
4189 :
4190 : /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
4191 : positive, shift that token. If negative, reduce the rule whose
4192 : number is the opposite. If YYTABLE_NINF, syntax error. */
4193 : static const yytype_int16 yytable[] =
4194 : {
4195 : 653, 71, 998, 1051, 80, 175, 83, 84, 85, 1735,
4196 : 929, 86, 999, 106, 963, 184, 124, 805, 1492, 807,
4197 : 129, 191, 1004, 813, 831, 1009, 769, 159, 821, 829,
4198 : 833, 178, 836, 185, 1832, 829, 829, 1662, 866, 1392,
4199 : 869, 1949, 191, 1105, 1380, 940, 2953, 925, 925, 925,
4200 : 2846, 1443, 2875, 3645, 867, 1715, 1145, 1667, 796, 2845,
4201 : 180, 181, 1143, 1826, 796, 1419, 1231, 1232, 1233, 183,
4202 : 1197, 2003, 1237, 1478, 1463, 1480, 3521, 2831, 1727, 2051,
4203 : 3522, 2858, 186, 3248, 951, 1434, 1435, 863, 1424, 2043,
4204 : 2740, 1406, 4051, 1892, 3975, 1442, 4219, 1007, 4221, 1449,
4205 : 1237, 4016, 4286, 1051, 3110, 1204, 2035, 4446, 3923, 3892,
4206 : 2037, 1029, 1511, 2038, 2039, 1865, 4594, 4620, 3239, 1870,
4207 : 3323, 3022, 3914, 3303, 1874, 4607, 803, 4338, 3264, 1418,
4208 : 660, 4645, 4859, 1178, 1884, 3299, 4396, 711, 4398, 832,
4209 : 2914, 2914, 3805, 4542, 2914, 1072, 4261, 1191, 1904, 4925,
4210 : 4300, 5298, 4874, 4894, 2983, 2984, 1051, 2740, 4367, 3356,
4211 : 4372, 942, 2822, 2672, 3773, 943, 934, 1821, 3129, 3287,
4212 : 3291, 3294, 3295, 232, 5549, 3304, 3177, 3306, 3307, 1938,
4213 : 5142, 1606, 1205, 5152, 1145, 5163, 1176, 1602, 2979, 1180,
4214 : 1399, 653, 954, 954, 5505, 5103, 954, 1188, 5649, 5498,
4215 : 965, 5624, 866, 826, 5237, 1001, 5238, 5727, 965, 1051,
4216 : 860, 965, 1624, 4275, 866, 3011, 954, 1641, 1877, 866,
4217 : 3547, 3549, 2822, 954, 4244, 866, 4965, 1661, 1574, 5134,
4218 : 5310, 3428, 5312, 5466, 1901, 3430, 1693, 5151, 878, 2822,
4219 : 3440, 3513, 5766, 4306, 4188, 3516, 1720, 5641, 4088, 852,
4220 : 5779, 1834, 4191, 4604, 3851, 5494, 3854, 3855, 5367, 1485,
4221 : 5724, 3859, 3860, 3861, -2586, 3863, 3864, 3865, 1022, 5977,
4222 : 1488, 1051, 1569, 778, -2628, 2802, 3911, -2654, -2002, -2473,
4223 : 4299, 5497, 4090, -2697, 5965, 1900, 5020, 3492, -2473, -2473,
4224 : 5257, -2474, 3244, 670, 5689, 5690, 6012, 3882, -1994, -2438,
4225 : -2474, -2474, 4177, 1931, 1931, 5679, -2885, 1931, 4259, -1961,
4226 : 4264, 4265, 6016, 1569, -1974, -2885, -2885, 1418, 1569, -2506,
4227 : 1541, -2002, 4101, 2859, 4124, 3365, 2631, -1999, 2990, 4630,
4228 : 778, 6161, -2590, -2019, -1989, 5113, 6163, 949, 3107, 5902,
4229 : 717, 3684, 6314, 778, 1263, 2996, 717, 6013, 1212, 2112,
4230 : 4053, 1857, 717, 1931, -2437, 1431, 1432, 717, 1862, 4559,
4231 : 717, 1216, 1408, 3832, 2760, 935, 1441, -1933, 5717, 2849,
4232 : 4687, 651, 1931, 2993, 1603, 2781, 4339, 778, 5945, 5811,
4233 : 778, 2637, 187, 2610, 4640, 1603, 717, 4334, 1145, 1941,
4234 : 2677, 778, 870, 5715, 6171, 1945, 2914, 3053, 1034, 6205,
4235 : 3685, 2675, 2112, 187, -150, 1956, 4124, 1500, 717, 1959,
4236 : -150, 3365, 3883, 1962, 2639, 1964, 5888, 1984, 5211, 5212,
4237 : 5213, 1972, 5215, 5216, 5217, 5218, 5219, 1978, 937, 3071,
4238 : 1981, 5114, 4978, 936, 2637, 1542, 1826, 6443, 928, 2970,
4239 : 3363, -2434, 784, 3587, 5164, 1727, 6168, 5093, 1879, 3340,
4240 : 668, 2683, 784, 1931, 1227, 784, 5640, 1931, 834, 1077,
4241 : 1396, 784, 5254, 5854, 6272, 4867, 785, 2639, 778, 5459,
4242 : 1235, 3076, 4043, 1481, 1541, 3463, 785, 5572, 4351, 785,
4243 : 1034, 3495, 6141, 5656, 2679, 785, 3767, 999, 6018, 6237,
4244 : 5364, 4469, 838, 1434, 1435, 1931, 1554, 784, 3240, 5998,
4245 : 2611, 4124, 3225, 1035, 6129, 5370, 2779, 194, 4290, 5082,
4246 : 784, 1018, 3445, 2907, 5979, 3686, 5794, 6479, -2651, 4688,
4247 : 2849, 785, 4065, 5115, 1097, 1442, 1098, 2648, 937, 5946,
4248 : 2931, 6491, 2850, 4530, 785, 1449, 5083, 999, 3446, 717,
4249 : 4591, 5795, 1019, 4470, 5767, 3108, 6315, 4291, 2782, 5999,
4250 : 3197, 1201, 6238, 195, 5899, 194, 4352, 6019, 4044, 4091,
4251 : 5573, 1483, 1236, 194, 4979, 1099, 1957, 4178, 5375, 1036,
4252 : 2105, 1109, 3496, 941, -2264, 3803, 2849, 3407, 5629, 5255,
4253 : -2283, -2264, 6272, 1123, 3408, 1035, 1821, -2283, 2977, 1542,
4254 : 1947, 5460, 1826, 1947, 2849, 2065, 3077, 1457, 839, 4102,
4255 : 2849, 195, 891, 3226, 2632, 2614, 1145, 3341, 5947, 195,
4256 : 2626, 2626, 2048, 6444, 1932, 1932, 5755, 5094, 1932, 2106,
4257 : 712, 1132, 1863, 2849, 3884, 1267, 1987, 2024, 1501, 3364,
4258 : 2849, 3222, 1409, 1037, 3072, 4465, 2849, 2612, 2034, 2849,
4259 : 2112, 3222, 1228, 6262, 5812, 2783, 718, 6373, 2653, 2600,
4260 : 4339, 1036, 3026, 3222, 4179, 2044, 6075, 6360, 5937, 2876,
4261 : 1054, 4689, 2860, 2674, 1932, 1042, 866, 3054, 954, 1043,
4262 : 954, 4542, 2637, 954, 4335, 4980, 2861, 938, 2862, -442,
4263 : 1001, 2948, 6112, 1932, 2951, 1112, 1082, 954, 1405, 6072,
4264 : 5603, 4560, 191, 954, 3687, 6407, 3020, 3021, 1543, 5000,
4265 : 4069, 6316, 5116, 1613, 3064, 2639, 1236, 6272, 4641, 5718,
4266 : 1410, 2958, 1236, 3366, 2726, 1037, 1863, 653, 3885, 929,
4267 : 1274, 6014, 1260, 4124, 6140, 3109, 965, 4125, 4126, 4127,
4268 : 1001, 1079, 1080, 965, 5333, 4631, 965, 3010, 2650, 1145,
4269 : 1081, 3833, 2920, 4180, 2863, 2608, 2997, 1145, 1145, 871,
4270 : 1266, 2809, 954, 1083, 1431, 1432, 6015, 6335, 6317, 2991,
4271 : 1208, 2816, 2807, 4302, 1932, 3019, 1544, 5376, 1932, 5112,
4272 : 1533, 2028, 6017, 5567, 1429, 671, 2998, 5117, 5385, 3260,
4273 : 1933, 1940, 3588, 1863, 1944, 191, 6334, 6095, -2651, 1444,
4274 : 1445, 6162, 1441, 4081, 2971, 2972, 6164, 3457, 1493, 4195,
4275 : 2937, 4092, 5159, -2586, 2994, 866, 1932, 5972, 1446, -2473,
4276 : 5160, 3027, 2717, -2628, 1256, 1209, -2654, 1214, 2893, 1218,
4277 : 5007, -2474, -2697, 2718, 2892, 1222, 5011, 1042, -1994, -2438,
4278 : 1955, 1043, 1444, 1445, 1386, 1386, -2885, 866, 829, 1433,
4279 : 6386, 4103, 829, 4139, 1437, 3195, 790, 791, 2938, 1977,
4280 : 3179, 1448, 2941, 2942, 1239, 1848, 866, -1999, -2506, 790,
4281 : 791, 866, 2780, 2066, -1989, 999, -2651, 1386, 2583, 1844,
4282 : 2108, -2590, 5975, 1849, 4930, 1850, 4932, 6254, -2651, 2826,
4283 : 6223, 6224, 2598, 3205, -2437, 1534, 6264, 3433, 6421, 4542,
4284 : 6437, 1863, 1633, 790, 791, 3220, 1604, 1605, 1726, 2877,
4285 : 942, 2678, 4592, 4261, 943, 6490, 6283, 1604, 1605, 1042,
4286 : 1239, 2655, 2656, 1043, 1386, 1225, 1634, 6496, 2580, 2581,
4287 : 2582, 2583, 4136, 4137, 4138, 4139, -150, -150, 866, 713,
4288 : 1980, 5536, 2826, 71, 1947, 4129, 80, 175, 83, 84,
4289 : 85, 866, 1839, 86, 2978, 106, 1042, 184, 124, 2826,
4290 : 1043, 4585, 129, 191, 4522, 4523, 866, 1526, -2264, 159,
4291 : 6216, 3409, 3616, 178, -2283, 185, 4460, 4461, 3702, 4735,
4292 : 4736, 4462, 4682, 5884, 2901, 866, 4740, 1474, 4592, 6228,
4293 : 954, 954, 1137, 4604, 790, 791, 1947, 3063, 1515, 714,
4294 : 1497, 4466, 180, 181, 3392, 3081, 4685, 2836, 4503, 4839,
4295 : 3229, 183, 6337, 4843, 4911, 1548, 3274, 4970, 4682, 717,
4296 : 4883, 6139, 829, 829, 186, 4134, 4135, 4136, 4137, 4138,
4297 : 4139, 6133, 4130, 2801, 5344, 5070, 2950, 4308, 6113, 4309,
4298 : 717, 715, 3694, 716, 4039, 1386, 1386, 1699, 3298, 4041,
4299 : 5074, 3513, 1896, 5073, 4280, 4721, 3041, 3266, 4226, 653,
4300 : 5345, 954, 1395, 187, 4798, 965, 1403, 2876, 1001, 965,
4301 : 2027, 965, 1425, 6277, 6207, 4829, 954, 4831, 4832, 2679,
4302 : 1931, 1535, 3870, 4517, 2878, 6208, 1516, 961, 3222, 4356,
4303 : 1700, 717, 6385, 2595, 3979, 1897, 717, 6121, 4573, 1095,
4304 : 866, 944, 6340, 6341, 5327, 1264, 4695, 954, 954, 2840,
4305 : 1881, 6291, 1625, 6132, 3413, 2879, 4583, 3, 4, 5754,
4306 : 5101, 6289, 1159, 1536, 5760, 6325, 2817, 1966, 3275, 866,
4307 : 866, 866, 5870, 954, 1826, 653, 3486, 653, 653, 1274,
4308 : 1517, 2880, 4124, 3230, 2690, 4101, 4125, 4126, 4127, 3393,
4309 : 5824, 5418, 4090, 1724, 3394, 3518, 187, 928, 1537, 717,
4310 : 4998, 4646, 4925, 2876, 2578, 2579, 2580, 2581, 2582, 2583,
4311 : 1967, 954, 2899, 954, 954, 5419, 1051, 3717, 4303, 5520,
4312 : 5128, 5183, 2874, 763, 6454, 6263, 3980, 3607, 3123, 6255,
4313 : 4424, 6277, 3161, 945, 652, 6292, 826, 1685, 2876, 2876,
4314 : 3168, 6440, 6375, 15, 4406, 3395, 1386, 3276, 3799, 5872,
4315 : 1401, 35, 5861, 806, 1453, 5928, 4407, 5930, 3206, 5662,
4316 : 3734, 5934, 5935, 667, 3217, 3218, 2818, 1626, 2842, 6423,
4317 : 6041, 1538, 2005, 2606, 2005, 3119, 5873, 5862, 866, 191,
4318 : 805, 20, 2923, 3800, 4131, 4132, 4133, 4134, 4135, 4136,
4319 : 4137, 4138, 4139, 4647, 2770, 1518, 6478, 3718, 6149, 2691,
4320 : 2917, 937, 3120, 2921, 2041, 3414, 866, 3362, 3519, 2876,
4321 : 2047, 1274, 5031, 3695, 4124, 3261, 6241, 3263, 4125, 4126,
4322 : 4127, 2843, 4696, 3270, 1386, 3277, 3608, 1701, 3278, 3284,
4323 : 3285, 4574, 1898, 1454, 4040, 1274, 4791, 6293, 4124, 4042,
4324 : 3181, 3308, -3012, -3012, -3012, 4425, 6342, 2877, 3735, 5871,
4325 : 3871, 3328, 3617, 1249, 5958, 6040, 6277, 3343, 2900, 929,
4326 : 1923, 2759, 941, 5496, 187, 5102, 1386, 3636, 1230, 3204,
4327 : 5328, 4128, 2956, 3209, 3546, 5490, 5484, 6468, 3216, 5515,
4328 : 1725, 3219, 5971, 1989, 5974, 1991, 3912, 1993, 3158, 1995,
4329 : 5986, 1997, 1998, 1999, 4129, 1386, 1386, 1386, 2001, 1386,
4330 : 3396, 5549, 3170, 3736, 944, 4121, 4122, 1968, 5957, 4539,
4331 : 4141, 1455, 3231, 5825, 1456, 3176, 2106, -1794, 4926, 6384,
4332 : 1386, 4108, 2876, 3847, 3469, 952, 5961, 5346, 4450, 5829,
4333 : 6391, 1932, 3154, 3232, 964, 5969, 3223, 3703, 5973, 1702,
4334 : 3156, 2844, 964, 2877, 1899, 964, 1250, 3279, 2028, 962,
4335 : 2596, 4172, 4173, 1627, 3188, 3169, 5549, 5340, 3171, 866,
4336 : 6209, 1096, 4102, 2635, 3175, 3981, 3737, 3842, 999, 4091,
4337 : 6422, 1882, 4648, 1523, 2980, 2822, 1524, 1386, 2877, 2877,
4338 : 3982, 4130, 5358, 1947, 1160, 6007, 6150, 947, 32, 5521,
4339 : 3314, 5208, 2090, 6294, 6405, 1628, 945, 2684, 2685, 4637,
4340 : 2689, 943, 943, 3525, 943, 6452, 5420, 3121, 3208, 2999,
4341 : 5032, 5678, 3214, 3215, 3611, 2772, 3795, 3551, 2876, 1969,
4342 : 40, 5880, 2878, 1386, 1646, 3835, 4129, 1386, 1386, 3568,
4343 : 1629, 4426, 2775, 1457, 4224, 5874, -1961, 6469, 866, 866,
4344 : 866, 2724, 6242, 1386, 5332, 3207, 1647, 4649, 946, 2877,
4345 : 2953, 5299, 6299, 2879, 6154, 3080, 2764, 1453, 3796, 44,
4346 : 2776, 1924, 5833, 2770, 3280, 6173, 829, 6460, 2765, 3140,
4347 : 3012, 1131, 6450, 4427, 717, 1925, 5802, 3259, 3607, 2880,
4348 : 3801, 5898, 5938, 2771, 2785, 2885, 2766, 1497, 1704, 1497,
4349 : 3738, 778, 3141, 3797, 1705, 2786, 5830, 6183, 1648, -1794,
4350 : 3486, 2813, 4251, 48, 2693, 3618, 829, 764, 4428, 954,
4351 : 4983, -1795, 5463, 4130, 4463, 3802, 3429, 49, 2878, -1961,
4352 : 2874, 3569, 866, 2848, 1914, 3638, 5831, 6243, 2618, 1251,
4353 : 5769, 866, 1926, 5834, 954, 1132, 1454, 4130, 6123, 5302,
4354 : 187, 50, 4120, 5173, 5306, 5770, 810, 5308, 1947, 2879,
4355 : 1458, 3923, 2694, 2878, 2878, 3000, 6244, 3620, 4543, 4281,
4356 : 765, 1001, 2877, 866, 4862, 3644, 829, 6330, 1826, 2916,
4357 : 2916, 2619, 1252, 2916, 1253, 2880, 3704, 3608, 3460, 6260,
4358 : 6261, 4252, 1526, 829, 2879, 2879, 866, 1526, -1106, 866,
4359 : 3964, 1649, 4464, 4131, 4132, 4133, 4134, 4135, 4136, 4137,
4360 : 4138, 4139, -717, 1706, 4542, 4472, 4546, 3526, 2053, 6063,
4361 : 2880, 2880, 5768, 954, 1455, 4253, 2874, 1456, 1947, 5759,
4362 : 2695, 3739, 5087, 1133, 2878, 3607, 1863, 6316, 2062, 3740,
4363 : 4254, 866, 3741, 2777, 3197, 6174, 2111, 1927, 3552, 2112,
4364 : 5939, 3553, 4984, 954, 954, 954, 954, 866, 5088, 1650,
4365 : 947, 2874, 2874, 4255, 1651, 2879, 3461, 3621, 2877, 1652,
4366 : 3142, 866, 2767, 1526, 5803, 5139, 2740, 1526, 4549, 2696,
4367 : 2740, 2637, 1386, 1386, 1386, 2952, 3119, 2787, -3012, 40,
4368 : 2974, 2880, 4256, 5064, 2772, 816, 5139, 2103, 5068, 4458,
4369 : 683, 1274, 5140, -1795, 4124, 6074, 3167, 3566, 4125, 4126,
4370 : 4127, 5133, 3157, 3120, 2639, 999, 999, 6253, 1475, 1409,
4371 : 1928, 1654, 5303, 5140, 5092, -1961, 4792, 1481, 44, 2788,
4372 : 6212, 1034, 2874, 3199, 3608, 4131, 4132, 4133, 4134, 4135,
4373 : 4136, 4137, 4138, 4139, 2697, 1274, 1457, 2878, 4124, 5130,
4374 : 3742, 4282, 4125, 4126, 4127, 6331, 4863, 1821, 5771, -3012,
4375 : -3012, -3012, 4134, 4135, 4136, 4137, 4138, 4139, 6363, 1656,
4376 : 5272, 3609, 48, 40, 685, 3611, 6189, 6364, 2879, 3819,
4377 : 3150, 866, 2602, 4252, -630, 1705, 49, 4174, 1457, 5449,
4378 : 6387, 4257, 866, 1657, 4552, 4468, 3085, 1410, 982, 1707,
4379 : 954, 954, 5296, 1134, 2880, 983, 984, 985, 5089, 1260,
4380 : 50, 6213, 44, 3610, 1659, 1483, 954, 4253, 2943, 941,
4381 : 941, 5085, 941, 1929, 1476, 2112, 3439, 3448, 5661, 3527,
4382 : 2693, 3742, 4845, -3012, 866, 2916, 1035, 2876, -3012, 6333,
4383 : 1135, 1708, 4553, 2878, 999, 2874, 1615, 4539, 4968, 1443,
4384 : 954, 954, 954, 954, 6309, 4255, 48, 2603, 4554, 866,
4385 : 6466, 952, 2886, 1458, 817, 1660, 866, 1484, 778, 3130,
4386 : 964, 3517, 5693, 818, 2879, 4996, 1709, 964, 2694, 6310,
4387 : 964, 3086, 6480, 3486, 653, 5304, 3486, 653, 1459, -3012,
4388 : 2639, 5978, 6220, 6190, 3820, 837, 5086, 965, 965, 5964,
4389 : 2880, 5341, 1036, 3200, 1136, 3197, 1137, 5141, 1001, 1001,
4390 : 1138, 3662, 965, 56, 3197, 965, 4129, 1591, 5478, 5985,
4391 : 3753, 6383, 3611, 1616, 3567, 4751, 4969, 4752, 6127, 1664,
4392 : 954, 954, 5688, 6236, 3486, -1961, 3201, 954, 2776, 866,
4393 : 784, 2874, 3486, -1961, 664, 1433, -1961, 1462, 2644, -1961,
4394 : 3202, 1882, 3489, 5773, 2876, 2876, 2005, 696, 3691, 697,
4395 : 4129, 5774, 4555, 954, 785, 965, 1037, 191, 3213, 965,
4396 : 965, 1665, 866, 866, 2944, 954, 5342, 3663, 4942, 2945,
4397 : 664, 3290, 866, 4257, 3715, 3664, 701, 6084, 3203, 866,
4398 : 3245, 4896, 866, 3130, 3997, 2696, 805, 665, 3726, 805,
4399 : 3250, 5801, 4302, 4130, 1386, 2854, 1386, 2855, 1082, 3633,
4400 : 5534, 1386, 1386, 4943, 191, 6344, 5599, 4897, 1386, 1386,
4401 : 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386,
4402 : 1386, 3234, 4686, 933, 1386, 861, 1386, 1001, 1386, 1386,
4403 : 1386, 1386, 1386, 1386, -3012, 2866, 1386, 4130, 1386, 1386,
4404 : 4698, 3665, 1386, 1079, 1080, 5685, 3836, 3837, 3838, 3798,
4405 : 2697, 1145, 1081, 873, 6085, 4539, 6191, 1386, 1386, 1386,
4406 : 3189, 6192, 3190, 2856, 3191, 1083, 3192, 2877, 3193, 5686,
4407 : 4898, 2867, 3194, 4753, 3715, 1386, 3644, 1666, 2740, 2924,
4408 : 1439, 1440, 4374, 4350, 2927, 3923, 6131, 2953, 2740, 5465,
4409 : 4273, 3754, 1980, 4710, 2112, 4860, 6148, 6193, 3249, 3757,
4410 : 3752, 4944, 3760, 4722, 6130, 4734, 6461, 4168, 4726, 5476,
4411 : 4747, 4748, 4749, 4750, 3941, 954, 4754, 4755, 4756, 4757,
4412 : 4758, 4759, 4760, 4761, 4762, 4763, 2637, 3991, 5489, 3729,
4413 : 6425, 3727, 5635, 3728, 5637, 1643, 5775, 5790, 3779, 4363,
4414 : 3880, -3012, 5956, 1882, 5445, 4725, 3013, 3804, 4899, 6462,
4415 : 4730, 4731, 4900, 2578, 2579, 2580, 2581, 2582, 2583, 2639,
4416 : 3002, 4668, 1207, 2740, 3008, 1124, 3927, 3928, 3929, 3930,
4417 : 5467, 3932, 4861, 3826, 5931, 3630, 3842, 1644, 5446, 5932,
4418 : 4802, 4803, 4512, 952, 2877, 2877, 1481, 2962, 3014, 964,
4419 : 1980, 2914, 1482, 964, 4505, 964, 3960, 4375, -1765, 6448,
4420 : 948, 6451, 1125, 1502, -1765, 4131, 4132, 4133, 4134, 4135,
4421 : 4136, 4137, 4138, 4139, 1101, 1248, 1102, 2963, 1512, 5468,
4422 : 5685, 1124, 4016, 1386, 4467, 3770, 1646, 3771, 4681, 931,
4423 : 5436, 3775, 5437, 5438, 5439, 5933, 5455, 1630, 5457, 1695,
4424 : 1126, 3734, 2878, 5989, 5686, 1503, 1670, 6256, 1647, 4131,
4425 : 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 1125, 1916,
4426 : 1513, 1918, 1919, 4826, 3898, 6492, 2849, 1980, 1420, 6006,
4427 : 1633, 4504, 932, 2879, 1483, 4682, 4278, 1386, 2857, 5485,
4428 : 1504, 1696, 778, 6155, 5968, 1697, -1765, 4926, 1671, 4828,
4429 : 1127, 4305, 5050, 5734, 1634, 1514, 4586, 4035, 4896, 2880,
4430 : 1648, 4377, 988, 989, 990, 991, 992, 993, 994, 995,
4431 : 996, 4913, 4972, 3789, 1636, 5051, 1698, 6156, 187, 3790,
4432 : 6365, 4926, 2943, 1672, 4897, 6489, 1484, 1902, 5936, 3735,
4433 : 1470, 4956, 3989, 1712, 1386, 793, 1716, 3995, -1765, 3996,
4434 : 2874, 793, 6498, 3953, 4421, 6366, 1127, 5735, 6147, 4002,
4435 : 5736, 1903, 4003, 40, 4004, 4005, 4616, 5737, 4007, 2878,
4436 : 2878, 4024, 4010, 4251, 4011, 187, 1507, 4013, 5377, 6336,
4437 : 4949, 1591, 1974, 1213, 1215, 1217, 5383, 3915, 1219, 1220,
4438 : 1221, -1718, 5542, 2866, 3736, 5738, 4422, 4898, 1226, 1633,
4439 : 2879, 2879, 44, 1649, -1718, 3082, 1975, 3024, 3025, 3289,
4440 : -1718, 6218, 3015, -2457, 1508, 5543, 6346, -173, 1509, 5033,
4441 : 5685, 949, 5544, 1634, 3016, 3112, 2880, 2880, 4158, 2867,
4442 : 4312, 4423, 683, 3342, 4165, 1433, 5545, 2673, 3791, 4376,
4443 : 4377, 4052, -150, 5034, 5686, 1042, 48, -2438, -173, 1043,
4444 : 3899, 1646, 4252, 1510, 3017, 1274, 5739, 3737, 4124, -1718,
4445 : 49, 1650, 4125, 4126, 4127, 4220, 1651, 2874, 2874, 5740,
4446 : 4378, 1652, 5245, 1647, 5246, 4899, 4882, 4926, 4023, 4900,
4447 : 5273, 1433, 5741, 2673, 50, 233, 4253, 2952, 2944, 1444,
4448 : 1445, 669, -1718, 2945, 1444, 1445, 6062, 4123, 6169, 761,
4449 : 763, 4254, 4653, 56, 957, 6170, 685, 4654, 1446, 4151,
4450 : 3, 4, 2106, 1448, 4066, 5890, 5901, 835, 959, 4067,
4451 : 15, 5905, 5906, 1654, 4255, 1648, 1673, 980, 40, 1386,
4452 : 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1386, 1633, 1386,
4453 : 1433, 5081, 1462, 5167, -1718, 4175, 1623, 3600, 4654, 866,
4454 : 1386, 1640, 1386, 4256, -1718, 981, 5296, 999, 20, 866,
4455 : 1042, 1033, 1634, 3597, 1043, 3601, 3602, 44, -2430, 1827,
4456 : 5546, 1656, 1828, 1042, 6453, 1230, 4150, 1043, 4152, 4153,
4457 : 2052, 3738, 56, 4875, 3377, 3378, 3379, 3380, 866, 4206,
4458 : 1386, 1092, 1674, 954, 1386, 1657, 2626, 1386, -2431, 1386,
4459 : 3441, 4473, 1386, 1042, 1024, 1230, 1386, 1043, 1433, -468,
4460 : 2673, 48, 5695, 4231, 4232, 1041, 1659, 4340, 1649, 1986,
4461 : 2036, 1085, 1828, 1828, 3792, 49, 3371, 2634, 3900, 3488,
4462 : 1828, -1718, 1087, 4222, 1675, 866, 866, 1474, 1106, 3594,
4463 : 2647, 1676, -629, 2648, -1718, 1677, 1386, 1120, 2681, 50,
4464 : -1718, 1828, 4257, 4382, 3185, 1386, 1386, 2648, 1444, 1445,
4465 : 3196, 3486, 4307, 3197, 1128, 3486, 3793, 1660, 56, 866,
4466 : 4129, 3198, 3237, 3629, 3197, 3238, 1650, 3532, 1130, 3537,
4467 : 3901, 1651, 5200, 1129, 1474, 1474, 1652, 3514, 3515, 696,
4468 : 6320, 697, -1789, -1789, 5742, 6323, 6324, 5743, 5207, -1718,
4469 : 5990, 3794, 2952, -1718, 1147, 3444, 4193, 1826, 1980, -1793,
4470 : -1793, 4268, 3739, 3570, 2674, 3573, -1792, -1792, 1878, 805,
4471 : 3740, 805, 4955, 3741, 1151, 3449, 3538, 5547, 2648, 2648,
4472 : 5324, 1579, -1718, 1145, -468, 1386, 1158, 1580, 1654, 5548,
4473 : 3627, 4602, 3709, 3628, 4251, 3710, 653, 5892, 5893, 965,
4474 : 1001, 965, 965, 5230, 1167, 954, 3876, 4130, 866, 3877,
4475 : 5235, 5236, 3529, 5135, 4015, 32, 3733, 3197, 6033, 6034,
4476 : 3486, 4323, 1042, 1174, 4064, 1467, 1043, 2648, 4073, 829,
4477 : 4079, 2648, 1582, 2648, -1718, 6464, 1656, 40, 6467, 4343,
4478 : 3145, 2848, 3146, 4945, -1718, 4952, 4080, 40, 4912, 2648,
4479 : 5886, 4929, 40, 6179, 6180, 3650, 866, 3615, 1185, 664,
4480 : 1657, 1988, 3661, 4084, 1990, 4085, 1992, 1168, 1994, 4099,
4481 : 1996, 866, 3835, 4252, 2000, 4110, 44, 1678, 2648, 4143,
4482 : 4539, 1659, 2648, 6308, 926, 927, 44, 4697, 4926, 1583,
4483 : 1192, 44, 4316, 866, 778, 4157, 1584, 3823, 2648, 1202,
4484 : 1585, 6419, 4386, 1238, 4388, 2740, 4589, 4253, 4162, 4229,
4485 : 3349, 4163, 2648, 3352, 866, 1679, 4561, 1229, 1234, 1680,
4486 : 48, 4971, 4254, 4399, 6215, 4416, 4400, 829, 4404, 1586,
4487 : 48, 4405, 1660, 4432, 49, 48, 4433, 1241, 4501, 4625,
4488 : 1145, 4433, 4626, 1230, 49, 4255, 4327, 1244, 2111, 49,
4489 : 954, 2112, 1246, 954, 1681, -3012, -3012, -3012, 50, 4628,
4490 : 1247, 1682, 4629, 3724, 4659, 1587, 4772, 4660, 50, 4773,
4491 : 4313, 4314, 4783, 50, 4256, 4784, 4211, 56, 4212, 866,
4492 : 866, 4794, 4870, 2637, 2648, 4871, 4876, 56, 1257, 4877,
4493 : 2638, 5860, 56, -1718, 3806, 6137, 3809, 3811, 4531, 1258,
4494 : 1260, 4441, 5782, 1259, 4885, 4881, 4447, 5136, 3553, 3769,
4495 : 3197, 3063, 6268, 29, 5202, 5242, 2639, 2028, 2648, 4131,
4496 : 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 1386, 1386,
4497 : 1386, 1262, 1261, 3371, 1386, 3373, 5279, 3374, 5335, 2648,
4498 : 5361, 3553, 954, 5362, 5491, 1690, 1268, 5492, 4491, 1589,
4499 : 3484, 1270, 3486, 3486, 4498, 954, 5528, 1404, 1407, 4660,
4500 : 1590, 1386, 1042, 954, 3375, 1411, 1043, 3476, 4886, 6426,
4501 : 1591, 1412, 4057, 4257, 4059, 4060, 2848, 3462, 3464, 3465,
4502 : 5153, 866, 1592, 5564, 1413, 1421, 5565, 3913, -1718, 5146,
4503 : 805, 5566, 5586, 5596, 2648, 5587, 1980, 5602, 6077, 6078,
4504 : 4599, -1718, 954, 3924, 4213, 1417, 4214, -1718, 1274, 4872,
4505 : 1426, 4124, 187, 3806, 40, 4125, 4126, 4127, 952, 5604,
4506 : 4437, 952, 4599, 954, 1718, 3946, 1427, 1594, 1595, 3376,
4507 : 5729, 964, 964, 5730, 5749, 2640, 5845, 3197, 5783, 1429,
4508 : 2641, 5784, 4453, 4613, 3964, 4614, 964, 6482, 4054, 964,
4509 : 1436, 5843, 5849, 44, 5844, 1980, -1718, 5852, 5868, 1719,
4510 : 4599, 5869, 5920, 4926, 954, 5921, 954, 5960, 954, 5987,
4511 : 2605, 1433, 5869, 6024, 5489, 6025, 4163, 6045, 2648, 6049,
4512 : 6046, 5075, 1980, 5076, 4579, 3377, 3378, 3379, 3380, -1718,
4513 : 1437, 2643, 3381, 3382, 1450, 1452, 2679, 48, 3383, 964,
4514 : 999, 2005, 6050, 964, 964, 2648, 6058, 4887, 1467, 6059,
4515 : 3942, 49, -1131, 4928, 4888, 6083, 4931, 6086, 3238, 4934,
4516 : 3238, 4889, 6087, 6090, 2740, 3238, 2648, 6091, 1468, 6057,
4517 : 2648, 1145, 1597, 1145, 1479, 50, -3011, 4562, 1494, 4564,
4518 : 4661, -1718, 4663, 1495, 4665, 4691, 4593, 1496, 1462, 6092,
4519 : 2644, -1718, 6093, 1575, 6269, 653, 954, 1577, 965, 4890,
4520 : 965, 965, 6119, 954, 6185, 6120, 5815, 4599, 5816, 4704,
4521 : 1386, 1727, 1546, 6200, 6202, 1386, 2648, 2648, 6137, 3365,
4522 : 6217, 1578, 4891, 3197, 4926, 6232, 929, 6258, 6233, 5558,
4523 : 6259, 6393, 1618, 6394, 3486, 4778, 1826, 1467, 1499, -1706,
4524 : 4572, 3486, 4575, 683, 1505, 1572, 3486, 2111, 4274, 3486,
4525 : 2112, 6307, 5554, 5555, 5857, 1145, 4822, 6343, 4824, 1515,
4526 : 5869, 4634, -2475, 4129, 1386, 1386, 1386, -1104, 6389, 1386,
4527 : 5288, 6390, 5290, 2679, 929, -3011, 1613, 1386, 1386, 1386,
4528 : 1386, 6409, 2637, 4676, 6410, 4744, 2646, 1617, 6417, -3012,
4529 : 4955, 4871, 1619, 1386, 1274, 3384, 1386, 4124, 1386, 1632,
4530 : 1630, 4125, 4126, 4127, 1642, 6266, 6420, 3385, 1645, 2648,
4531 : 1386, 1386, 1669, 6447, 1386, 2639, 6046, 685, 6449, 4771,
4532 : 6457, 2648, 6495, 6458, 6497, 6410, 1686, 6458, 6499, -3011,
4533 : 4844, 6410, 4847, 1001, 2719, 1386, 2722, 1386, 1687, 1386,
4534 : -1718, 1703, -3011, -1717, 5581, 1713, 5582, 1516, -3011, 4926,
4535 : 4130, 5359, 4946, 1714, -3011, 1717, -1717, 1722, 1386, 1836,
4536 : -3011, 4210, -1717, -3011, 1723, 866, 1838, -3011, 1840, 1845,
4537 : 4810, 1851, 1856, 1859, 1861, 687, 1866, 1869, 1871, 929,
4538 : 1863, 4216, 4217, 4218, 1885, 1880, 866, 1886, 4192, -137,
4539 : 29, 1889, 1888, 2574, 1891, 4699, 1894, -3011, 1893, -3011,
4540 : 1905, 1517, -3012, -3012, -3012, 2578, 2579, 2580, 2581, 2582,
4541 : 2583, -1717, 1912, 1914, 3484, 1917, 653, 5699, 1921, 3488,
4542 : 4249, 213, 1930, 1935, 4249, 4263, 4249, 4249, 1936, 1937,
4543 : -3011, 929, 1939, 1386, -3012, 1474, 935, 1942, 1386, -3012,
4544 : 4181, 4908, 4182, 1943, -1717, 5180, 1946, 1947, 1954, -1766,
4545 : 187, 1958, 1960, 1386, 1961, -1766, 1963, 2674, 1965, 1970,
4546 : 1971, 1973, 1976, 1983, 5700, 1985, 1979, 3488, 1982, 4183,
4547 : 2002, 4295, 2033, 2040, 4298, 3488, 2049, 3537, 2042, 3691,
4548 : 2111, 4966, -3011, 2112, 2045, 2050, -3011, -1965, -1972, 5701,
4549 : -3012, 40, -3011, 2059, 2057, 5056, -1717, 2058, -1962, 5069,
4550 : 696, 2060, 697, 2061, 936, 56, -1717, 3715, 5702, -3012,
4551 : 2063, 2064, 2065, -1131, 5703, 2637, 1518, -1963, 1386, 2067,
4552 : 2068, -1966, -3012, 5807, 2069, 2070, 700, 3486, 2071, 1878,
4553 : 44, -1964, 2072, 2073, 3376, 2074, 5704, -1766, 5061, 2075,
4554 : 5705, 2076, 954, 954, 5821, 2077, 2078, 6424, 2639, 2644,
4555 : 2079, 2080, -3011, 2082, 2083, 5706, 2084, 2085, 2086, 2087,
4556 : 2088, 2089, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138,
4557 : 4139, 2092, 2090, 2093, 48, 5842, 2094, 2095, 1386, 2096,
4558 : 2097, 2098, 1519, 2099, 2589, 4995, 4362, 2593, 49, -1766,
4559 : 3377, 3378, 3379, 3380, 2595, 2591, 4130, 4184, 2596, 937,
4560 : 2609, 2605, 2621, 4185, 2629, 2651, 2657, 3366, 2111, 2652,
4561 : 2659, 2112, 50, 2660, 2663, 2113, 2114, 2115, 2666, 2664,
4562 : 1520, 4801, 2667, 2668, 1521, 2669, 2670, 2675, 35, 4274,
4563 : 1482, 56, -1444, 2636, -1444, 1484, 4410, 2713, 2715, 2725,
4564 : 2682, -3011, 2727, 2637, 2728, -3012, 2729, 2730, 2746, 2747,
4565 : 2638, 2748, 2749, 2750, 2103, -1717, 2673, 2751, 2752, 1522,
4566 : 866, 5707, 2753, 2754, 2755, 2756, -3011, -3012, -3011, -3011,
4567 : 2916, 2762, -3012, 2778, 2784, 2804, 2639, 2808, 2811, 2790,
4568 : 2812, 2810, 2814, 2815, 2828, 2833, 2832, 2834, 2852, 2853,
4569 : -3011, 2868, 2870, 2871, 1523, 2872, 2864, 1524, 2873, 2874,
4570 : 2882, 2883, 2103, 2111, 2884, 2889, 2112, 5511, 3486, 2887,
4571 : 2113, 2114, 2115, -3011, 2888, -3011, -3011, 5708, 2898, 2908,
4572 : 2922, 2894, 2932, -3012, 2895, 2904, 3371, 2905, 2636, 3486,
4573 : 2918, 2939, 2946, 2949, 2964, 1591, 2975, 2966, 2637, 2919,
4574 : 2925, 2968, 4202, 2928, 2976, 2638, 2992, 2929, 938, 1525,
4575 : 3001, 3023, -3012, 2973, 3035, 3037, 3038, 2934, 3039, 4035,
4576 : 4186, 2935, 2947, 3486, 2578, 2579, 2580, 2581, 2582, 2583,
4577 : 2954, 2639, 4187, 2955, 3030, 2960, 2961, 3040, 2967, 1386,
4578 : 2969, 2981, 2644, 2982, 2995, 1386, 3044, 3484, 3006, 3045,
4579 : 3484, 3046, 3052, 3048, 3051, 2640, 954, 3049, 3050, 3057,
4580 : 2641, 3056, 3058, 652, 4237, 3059, 3066, 4243, 4131, 4132,
4581 : 4133, 4134, 4135, 4136, 4137, 4138, 4139, 3067, 678, 3070,
4582 : 3075, 3083, 3094, 2642, 2306, 3098, 1666, 3111, 5197, 3099,
4583 : 3102, 3114, 3117, 866, 866, 866, 3118, 3127, 3484, 3138,
4584 : 2679, 3144, 3487, 3148, 3160, 3162, 3484, 3163, 3164, 5189,
4585 : 866, 2643, 5191, 3131, 3135, 3476, 3153, 3210, 3178, 928,
4586 : 3221, 3247, 3165, 3476, 1386, 3266, 3344, 3271, 3235, 3350,
4587 : 2112, 3391, 3411, 3437, 3311, 3417, 3432, 3438, -3012, 3452,
4588 : 3451, 5206, 2005, 866, 866, 3354, 3370, 3389, 866, 3416,
4589 : 2640, 5267, 3436, 3453, 2373, 2641, 3435, 3450, 3454, 3455,
4590 : 866, 3459, 1457, 3467, 5472, 3468, 3489, 3506, 3523, 3486,
4591 : 2644, 3507, 936, 5146, 3508, 5108, 5109, 3494, 2642, 2306,
4592 : 952, 3530, 3509, 964, 3542, 964, 964, 3531, 3543, 3545,
4593 : 3571, 3562, 5192, 5193, 5194, 5195, 5196, 3574, 5253, 3576,
4594 : 3579, 3584, 5314, 3589, 3603, 3590, 2643, 3595, 3592, 4623,
4595 : 3619, 1401, 3640, 1405, 3624, 3626, 954, 3643, 3634, 3641,
4596 : 3642, 3653, 3666, 3672, 3671, 3692, 3698, 3705, 3699, 3700,
4597 : 3213, 4679, 3708, 3725, 3807, 3747, 3726, 3834, 3716, 3723,
4598 : 3763, 866, 1882, 3822, 4619, -3012, 3746, 937, 3486, 2373,
4599 : 3830, 3831, 3843, 3850, 866, 3856, 3857, 2578, 2579, 2580,
4600 : 2581, 2582, 2583, 3862, 3878, 2644, 2646, 3867, 2645, 4808,
4601 : 3858, 3889, 3890, 1386, 3904, 3908, 3910, 3906, 3918, 3931,
4602 : 4656, 3936, 1386, 3937, 3938, 3939, 3940, 3925, 3944, 3949,
4603 : 1239, 3947, 3951, 3952, 3955, 3956, 1386, 3961, 3976, 3977,
4604 : 1386, 1386, 1386, 3986, 3978, 3987, 5443, 1386, 3988, 3990,
4605 : 1386, 3992, 4006, 1386, 4008, 4012, 4009, 5889, 4014, 1386,
4606 : 4017, 1386, 4018, 4019, 1386, 4020, 4021, 1980, 1549, 1386,
4607 : 1386, 1386, 1386, 4027, 4032, 1386, 1386, 1386, 1386, 1386,
4608 : 1386, 1386, 1386, 1386, 1386, 5347, 1977, 4022, 1386, 1386,
4609 : 1386, 1944, 4038, 4026, 4036, 4037, 4045, 5381, 1386, 4050,
4610 : 1236, 2646, 4048, 1386, 1550, 929, 4058, 1386, 4078, 4081,
4611 : 4094, 4098, 4075, 2574, 3288, 1386, 4076, 4120, 1386, -2256,
4612 : 1386, 4077, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
4613 : 2583, 4156, 4159, 4089, 4176, 4171, 1386, 4100, 4190, 1386,
4614 : 1386, 4096, 5387, 5388, 1386, 1386, 4227, 4207, 4111, 1386,
4615 : 4106, 1386, 4814, 4109, 4112, 4116, 3486, 4274, 4233, 3835,
4616 : 866, 866, 866, 4118, 4119, 5318, 4142, 4147, 1551, 4148,
4617 : 4815, 4816, 4817, 4818, 6300, 6301, 2648, 2706, 6303, 4200,
4618 : 1386, 4249, 4263, 4249, 4249, 4274, 1386, 4249, 4155, 4201,
4619 : 4837, 4241, 4270, 1082, 3488, 4170, 722, 4203, 3488, 191,
4620 : 4250, 3251, 4285, 4283, 4852, 1552, 4289, 4287, 2574, 4296,
4621 : 4304, 4205, 4266, 4228, 4234, 4310, 2066, 2575, 2576, 2577,
4622 : 2578, 2579, 2580, 2581, 2582, 2583, 4235, 652, 4236, 4276,
4623 : 4315, 1386, 4242, 4318, 4097, 4317, 5431, 5432, 1079, 1080,
4624 : 4322, 4324, 4347, 4348, 4336, 4349, 3537, 1081, 1386, 4361,
4625 : 4337, 4353, 725, 3252, 4355, 1553, 4359, 4360, 4365, 5356,
4626 : 1083, 4368, 4366, 4371, 4385, 4373, 3487, 4384, 4387, 726,
4627 : 3486, 4395, 4393, 4403, 4411, 4394, 4420, 4434, 4436, 4438,
4628 : 4440, 4442, 4444, 4448, 187, 4449, 4452, 1059, 4454, 4455,
4629 : 4459, 5421, 5422, 4456, 5424, 1554, 4457, 4474, 4476, 1555,
4630 : 4477, 4478, 4475, 4927, 2005, 2848, 4481, 2005, 5456, 5580,
4631 : 2005, 3253, 4936, 4490, 4479, 4484, 4486, 4488, 4493, 5511,
4632 : 187, 4480, 4482, 4483, 4495, 729, 4497, 2990, 2993, 4485,
4633 : 4487, 4960, 1556, 1557, 730, 4489, 4499, 4500, 4506, 4516,
4634 : 4521, 4527, 4509, 5619, 4510, 4513, 4511, 731, 4529, 4565,
4635 : 4570, 4577, 4571, 3254, 4580, 4581, 4584, 4588, 4598, 4599,
4636 : 4601, 4608, 4617, 5414, 4611, 4618, 4621, 5527, 4622, 4624,
4637 : 5529, 5530, 4638, 4652, 1558, 4274, 4655, 3486, 35, 952,
4638 : 1062, 4662, 964, 1559, 964, 964, 5009, 4658, 4664, 4670,
4639 : 5535, 4671, 1560, 4672, 4673, 4677, 4693, 4674, 4675, 4692,
4640 : 4700, 1561, 4694, 4701, 4702, 4703, 4705, 4706, 4713, 1562,
4641 : 4718, 4723, 4707, 4717, 4708, 4709, 4719, 4724, 3255, 2052,
4642 : 4727, 4732, 1563, 4720, 4124, -2255, 4733, 4785, 4796, 4738,
4643 : 4797, 1564, 4827, 4768, 5012, 4745, 1565, 4769, 4770, 4777,
4644 : 735, 5053, 4800, 2953, 4811, 3769, 4823, 4825, 4833, 4840,
4645 : 4836, 4841, 4848, 4838, 4849, 4853, 4854, 4855, 4856, 4864,
4646 : 4858, 5474, 4867, 4869, 4873, 4893, 4904, 4884, 4914, 4907,
4647 : 4905, 4906, 4915, 4917, 954, 4921, 5623, 4918, 4937, 4940,
4648 : 4941, 4958, 4961, 4974, 4977, 3638, 4973, 4989, 954, 4975,
4649 : 1386, 4976, 4987, 4988, 1566, 4990, 4991, 4992, 866, 5003,
4650 : 5001, 5010, 5021, 5022, 5098, 5027, 5030, 5046, 5047, 5004,
4651 : 5049, 5914, 4947, 5916, 5698, 2848, 5052, 5062, 5078, 5063,
4652 : 5065, 5066, 213, 3256, 5067, 5090, 740, 5100, 5105, 5111,
4653 : 866, 5119, 5126, 2103, 5132, 3488, 3924, 5125, 5138, 5131,
4654 : 5148, 5154, 5155, 3806, 4543, 3486, 5165, 5174, 5176, 5190,
4655 : 4544, 5198, 5147, 1066, 3222, 5204, 3257, 5172, 5171, 5184,
4656 : 187, 5595, 866, 744, 4545, 3484, 5178, 5179, 5175, 3484,
4657 : 745, 5205, 5595, 746, 1386, 1386, 5222, 5223, 5214, 5221,
4658 : 5224, 5226, 3476, 5225, 2111, 1386, 3476, 2112, 5227, 5228,
4659 : 5233, 5244, 4546, 747, 4547, 5234, 2005, 866, 5239, 5250,
4660 : 652, 1068, 5282, 652, 5256, 5261, 5297, 5265, 749, 999,
4661 : -2257, 1069, 5259, 5260, 866, 5746, 751, 5278, 5292, 2637,
4662 : 4548, 5316, 5307, 5320, 5300, 5293, -3012, 5321, 6038, 5311,
4663 : 5331, 3258, 5925, 5336, 5334, 5339, 5319, 5363, 5343, 3487,
4664 : 5337, 5364, 3487, 5378, 5379, 3966, 5380, 5382, 5368, 5157,
4665 : 5389, 652, 2639, 5384, 4549, 1386, 5390, 5391, 756, 652,
4666 : 3486, 5410, 5412, 5403, 5416, 5406, 3486, 5425, 5417, 1549,
4667 : 5647, 1386, 5426, 5434, 3484, 5433, 5435, 5440, 6071, 655,
4668 : 5444, 5447, 5451, 4550, 5452, 5453, 5461, 5464, 5469, 1386,
4669 : 3487, -2774, 5473, 5477, 5479, 5488, 5471, 5493, 3487, 5495,
4670 : 5470, 5483, 5499, 5500, 5502, 1550, 5504, 5506, 5668, 5517,
4671 : 5508, 5507, 3197, 5523, 5525, 5532, 5533, 1386, 5559, 5569,
4672 : 1386, 5570, 5579, 5588, 917, 6104, 6106, 5625, 1386, 1386,
4673 : 5823, 5538, 5663, 5552, 5563, 1386, 1386, 5583, 5553, 5571,
4674 : 1386, 5594, 5598, 5636, 5828, 1386, 5628, 5643, 1386, 1386,
4675 : 5601, 5639, 5620, 5622, 5653, 1386, 5657, 5658, 5659, 866,
4676 : 866, 866, 866, 3297, 3297, 4551, 5851, 5638, 5665, 1551,
4677 : 4552, -3012, 5652, 2105, 5654, 5655, -3012, 653, 3324, 5660,
4678 : 4249, 5671, 5713, 5672, 3488, 5676, 5691, 3345, 5682, 3488,
4679 : -2774, 3486, 3488, 653, 5683, 3806, 5684, 5313, 5719, 5720,
4680 : 1386, 5089, 1001, 5722, 5725, 5728, 1552, 5732, 5733, 5752,
4681 : 5753, 5757, 5762, 5764, 5780, 4295, 5785, 5799, 4553, 1386,
4682 : 5881, 3537, 5791, 5793, 5792, 5808, 5809, -3012, -2776, 2111,
4683 : 5826, 5338, 2112, 5813, 4554, 5835, 5859, 805, 5866, 5814,
4684 : 5876, 5883, 5827, 5841, -2774, 5853, 5855, 5909, 5910, 5927,
4685 : 5885, 3967, 5857, 5858, 5891, 5896, 1553, -2774, 6097, 5850,
4686 : 5894, 5887, 5902, -2774, 2637, 2848, 1386, 5941, 5944, -2774,
4687 : 655, -3012, 5908, 5952, 5948, -2774, 5919, 5954, -2774, 655,
4688 : 974, 5374, -2774, 6010, 5962, 5967, 2644, 655, 5982, 974,
4689 : 655, 5980, 5976, 5981, 5983, 6235, 5984, 2639, 5993, 5994,
4690 : 1555, 5323, 5325, 974, 6005, 5995, 3484, 3484, 5996, 6001,
4691 : 6003, 6011, -2774, 6021, 6022, 6109, 6026, 6035, 6036, 6044,
4692 : 6037, 6042, 6052, 3476, 5231, 4208, 3769, -2776, 6060, 6064,
4693 : 6065, 6067, 6068, 6069, 1557, 6082, 6102, 3769, 4555, 6114,
4694 : 6116, 6118, 6122, 2111, 6111, -2774, 2112, 1386, 6125, 187,
4695 : 6126, 6145, 5918, 6144, 1386, 6142, 6143, 6152, 6153, 6158,
4696 : 6159, 6160, 6165, 6166, 6172, 6177, 6167, 6181, 6182, 6184,
4697 : 4804, 6198, 5913, 6188, 6295, 6296, 954, 6196, 2637, 35,
4698 : 6206, -2776, -3012, 6219, 3968, -3012, 1145, 6227, 6221, 6229,
4699 : 6008, 954, 6112, 1560, -2776, 5698, 6113, -2774, 6247, 6248,
4700 : -2776, -2774, 1561, 6265, 6249, 6267, -2776, -2774, 6286, 6284,
4701 : 2825, 2639, -2776, 6285, 6321, -2776, -3012, 6287, 6051, -2776,
4702 : 6053, -3012, 1386, 1563, 6290, 6302, 6288, 6298, 6311, 6312,
4703 : 6306, 6313, 1564, 6329, 6327, 6347, 6353, 1565, 6357, 653,
4704 : 6359, 6358, 6361, 6362, 6371, 6374, 2848, 6396, 6354, -2776,
4705 : 6376, 6397, 6400, 6395, 6398, 2005, 2111, 6399, 3969, 2112,
4706 : 6415, 4302, 6427, 6429, 6418, -2019, 6438, -2774, 6430, 6442,
4707 : 3924, 6455, -3012, 6316, 6444, 6471, 6456, 6472, 6488, 6475,
4708 : 1469, 5787, -2776, 954, 4805, 3946, 6463, 6477, 6483, -3012,
4709 : 6481, 2637, 6486, 6494, 1684, 1566, 1683, 4225, -3012, 3970,
4710 : 3780, 2578, 2579, 2580, 2581, 2582, 2583, 1576, 3007, 3697,
4711 : 4379, 866, 2628, 4964, 999, 4957, 6230, 3821, 3869, 4526,
4712 : 5710, 6096, 866, 6328, 2639, 5107, 810, 5763, 4953, 4954,
4713 : -3012, 2644, 5450, 5745, -2776, -3012, 4357, 4320, -2776, 5940,
4714 : 4274, 5372, 5669, 6378, -2776, 6322, 5645, 6379, 3484, 6117,
4715 : 6339, 6115, 999, 6246, 4364, 3484, -2774, 5481, 5667, 5129,
4716 : 3484, 5158, 5137, 3484, 5099, 6079, 3887, 6097, 3888, 4962,
4717 : 5486, 4397, 3476, 4587, 1668, 1386, 5124, 3476, 5475, 5751,
4718 : 3476, -2774, 4627, -2774, -2774, 1386, -3012, 5182, 1386, 6392,
4719 : 5997, 1386, 1386, 1386, 6073, 6493, 6473, 5276, 5726, 4532,
4720 : 5166, 187, 187, 5712, -2776, -2774, 6251, 5670, 5904, 5673,
4721 : 759, 812, 1145, 1075, 2025, 5879, 1386, 1386, 4678, 5199,
4722 : 1386, 5201, 6388, 3074, 3916, -2774, 5168, -3012, -2774, -2774,
4723 : -2774, 4311, 3548, 5788, 4644, 3137, 5991, 1386, 1146, 3133,
4724 : 4496, 1386, 1186, -3012, 4993, 2644, 3818, 1386, -3012, 3149,
4725 : 4443, 3488, 6271, 6428, 5185, 5313, 1414, 6377, 1386, 2761,
4726 : 5618, 5186, 5326, 810, 6203, 3846, 1386, 3032, 4878, 3493,
4727 : 5875, 5878, 4927, 2649, 840, 1386, 841, 5229, 3166, 4272,
4728 : 4284, 2601, 6201, 3503, 6054, 4245, 2710, 4846, 4830, 4238,
4729 : 5600, 4879, 5840, -2776, 5839, 4239, 6413, 6187, 6043, -3012,
4730 : 2709, 6304, 4240, 6441, 2714, 5822, 4927, 1001, 954, 4779,
4731 : 954, 3412, 2005, 6055, 2658, 4204, 3966, 6056, -2776, 3415,
4732 : -2776, -2776, 3330, 4198, 3845, 4070, 4196, 6009, 6446, 4189,
4733 : 4105, 4728, 3427, 3491, -3012, 0, 1465, 0, 974, 0,
4734 : 1549, -3012, -2776, 0, 965, 1001, 2578, 2579, 2580, 2581,
4735 : 2582, 2583, 0, 0, 0, 6459, 0, 974, 2644, 0,
4736 : 0, 0, -2776, 974, 0, -2776, -2776, -2776, 0, 0,
4737 : 0, 0, 0, 0, 0, 974, 1550, 0, 652, 0,
4738 : 0, 5913, 652, 0, 0, 3505, 0, 0, 0, 965,
4739 : 0, 974, 5621, 0, 0, 0, 655, 0, 6319, 0,
4740 : 0, 917, 0, 5098, 0, 655, 974, 0, 866, 0,
4741 : 0, 0, 655, 866, 974, 655, 0, 3487, 0, 0,
4742 : 0, 3487, 2848, 0, 0, 0, 0, 917, 974, 0,
4743 : 0, 0, 866, 0, 0, 0, 5147, 0, 974, 5765,
4744 : 1551, 3484, 0, 0, 0, 0, 0, 0, -3012, 0,
4745 : 954, 866, 4927, 0, -3012, 0, 0, 0, 0, 0,
4746 : 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 0, 71,
4747 : 187, 6436, 80, 175, 83, 84, 85, 1552, 0, 86,
4748 : 0, 106, 0, 184, 124, 6474, 1386, 652, 129, 191,
4749 : 0, 974, 6380, 0, 0, 159, 0, 0, 0, 178,
4750 : 5778, 185, 0, 1386, 0, 5750, 0, 1386, 0, 1386,
4751 : 0, 0, 929, 655, 655, 0, 0, 0, 0, 974,
4752 : 0, 1145, 3967, 1386, 0, 0, 3487, 1553, 180, 181,
4753 : 0, 653, 6436, 0, 1386, 0, 5776, 183, 5848, 0,
4754 : 0, 6416, 0, 0, 974, 1386, 655, 6381, 6382, 0,
4755 : 186, 0, 1386, 0, 0, 0, 0, 6436, 0, 0,
4756 : 0, -3012, 0, 0, 0, 0, 0, 0, 0, 0,
4757 : 917, 1555, 0, 2578, 2579, 2580, 2581, 2582, 2583, 0,
4758 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4759 : 0, 0, 0, 655, 0, 2005, 0, 0, 0, 0,
4760 : 0, 0, 0, 1579, 1386, 1557, 974, 0, 0, 1580,
4761 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4762 : 1386, 0, 3484, 0, 1688, 0, 1386, 1386, 0, 0,
4763 : 0, 954, 954, 954, 954, 0, 0, 0, 999, 3476,
4764 : 0, 0, 0, 3484, 0, 0, 0, 0, 0, 0,
4765 : 35, 0, 0, 0, 1582, 1559, 0, 0, 0, 0,
4766 : 0, 0, 1386, 0, 1560, 0, 0, 0, 0, 0,
4767 : 0, 653, 0, 1561, 0, 0, 0, 3484, 0, 0,
4768 : 0, 2825, 0, 0, 0, 0, 0, 0, 0, 0,
4769 : 0, 0, 0, 0, 1563, 0, 866, 0, 0, 3488,
4770 : 0, 0, 0, 1564, 0, 0, 0, 0, 1565, 1689,
4771 : 0, 1583, 0, 0, 655, 655, 1822, 0, 1584, 652,
4772 : 652, 0, 1585, 974, 866, 0, 0, 0, 655, 3969,
4773 : 0, 0, 0, 917, 655, 0, 0, 0, 655, 0,
4774 : 655, 0, 0, 0, 917, 0, 0, 0, 0, 0,
4775 : 0, 1586, 1386, 0, 0, 0, 0, 0, 3487, 3487,
4776 : 917, 0, 0, 0, 1386, 0, 1566, 0, 0, 0,
4777 : 3970, 0, 0, 1386, 1386, 1386, 0, 0, 0, 2005,
4778 : 0, 0, 0, 0, 0, 3806, 0, 1587, 1386, 5970,
4779 : 0, 0, 0, 0, 0, 0, 0, 1386, 0, 1386,
4780 : 0, 1386, 5618, 0, 655, 187, 655, 655, 0, 0,
4781 : 0, 0, 0, 4927, 0, 0, 0, 0, 0, 0,
4782 : 1386, 0, 0, 3484, 0, 0, 0, 0, 0, 2005,
4783 : 0, 1001, 0, 0, 0, 866, 187, 0, 0, 0,
4784 : 1386, 6226, 0, 0, 0, 0, 0, 974, 0, 0,
4785 : 187, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4786 : 0, 0, 0, 0, 0, 0, 0, 1690, 0, 0,
4787 : 0, 1589, 0, 0, 0, 655, 2005, 2005, 0, 0,
4788 : 0, 0, 1590, 0, 0, 0, 0, 0, 0, 0,
4789 : 0, 0, 1591, 0, 0, 0, 0, 0, 6061, 0,
4790 : 0, 0, 3484, 0, 1592, 0, 954, 0, 974, 0,
4791 : 6278, 6279, 0, 0, 0, 0, 0, 917, 0, 974,
4792 : 6138, 1579, 0, 0, 0, 0, 0, 1580, 0, 0,
4793 : 0, 0, 0, 0, 0, 0, 974, 0, 0, 0,
4794 : 2103, 974, 1581, 0, 0, 0, 1691, 0, 0, 1594,
4795 : 1595, 0, 0, 655, 0, 0, 0, 0, 0, 0,
4796 : 0, 652, 0, 0, 0, 0, 0, 0, 652, 0,
4797 : 0, 1386, 1582, 652, 0, 0, 652, 5309, 0, 0,
4798 : 0, 1692, 0, 0, 0, 0, 1386, 0, 0, 0,
4799 : 5848, 0, 0, 0, 0, 655, 1386, 0, 0, 0,
4800 : 3487, 0, 0, 0, 6204, 0, 0, 3487, 3537, 0,
4801 : 0, 0, 3487, 3324, 3324, 3487, 0, 0, 3324, 0,
4802 : 0, 0, 0, 0, 655, 655, 655, 965, 655, 1583,
4803 : 0, 0, 0, 0, 0, 0, 1584, 0, 0, 954,
4804 : 1585, 0, 0, 0, 0, 0, 2005, 0, 0, 655,
4805 : 0, 0, 0, 0, 1597, 0, 0, 0, 0, 3324,
4806 : 3324, 0, 0, 0, 0, 0, 0, 0, 0, 1586,
4807 : 3484, 2848, 0, 0, 974, 0, 0, 0, 1386, 0,
4808 : 0, 0, 974, 974, 0, 0, 0, 3476, 4927, 187,
4809 : 0, 0, 0, 0, 0, 0, 965, 965, 6281, 0,
4810 : 0, 0, 1386, 0, 0, 1587, 655, 0, 0, 0,
4811 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4812 : 0, 0, 191, 0, 0, 2005, 2005, 6297, 0, 0,
4813 : 0, 0, 0, 1386, 1386, 1822, 0, 1386, 0, 0,
4814 : 6305, 0, 0, 0, 0, 0, 2111, 0, 0, 2112,
4815 : 0, 0, 655, 2113, 2114, 2115, 655, 655, 6252, 0,
4816 : 0, 6273, 6274, 0, 0, 2005, 0, 0, 0, 0,
4817 : 6275, 954, 655, 6352, 0, 0, 0, 0, 917, 0,
4818 : 0, 2637, 0, 6276, 3484, 1588, 0, 0, 2638, 1589,
4819 : 0, 0, 1549, 0, 0, 0, 0, 0, 187, 0,
4820 : 1590, 0, 0, 6138, 954, 954, 0, 0, 0, 4927,
4821 : 1591, 0, 0, 0, 2639, 0, 0, 0, 0, 0,
4822 : 0, 0, 1592, 5458, 0, 0, 0, 653, 1550, 6484,
4823 : 6485, 0, 0, 0, 1386, 0, 0, 0, 0, 0,
4824 : 191, 0, 6370, 0, 0, 917, 0, 0, 0, 0,
4825 : 1386, 0, 0, 0, 652, 0, 3537, 0, 0, 795,
4826 : 0, 4295, 0, 0, 1593, 795, 0, 1594, 1595, 0,
4827 : 0, 1386, 0, 0, 0, 0, 0, 0, 0, 6273,
4828 : 6274, 0, 0, 0, 0, 0, 917, 0, 6275, 0,
4829 : 0, 3484, 1551, 3487, 0, 2111, 0, 0, 2112, 1596,
4830 : 0, 6276, 2113, 2114, 2115, 0, 0, 6401, 6402, 653,
4831 : 6406, 0, 0, 0, 0, 5848, 0, 0, 0, 917,
4832 : 1386, 0, 0, 0, 0, 0, 0, 0, 0, 1552,
4833 : 2637, 954, 0, 2640, 4927, 0, 0, 2638, 2641, 0,
4834 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4835 : 0, 0, 0, 0, 6370, 0, 0, 0, 0, 0,
4836 : 0, 2642, 2306, 2639, 0, 191, 0, 0, 0, 0,
4837 : 0, 0, 1597, 0, 0, 0, 0, 0, 0, 1553,
4838 : 0, 1386, 653, 0, 0, 0, 974, 0, 0, 2643,
4839 : 0, 0, 0, 0, 0, 0, 0, 0, 653, 0,
4840 : -2793, 655, 655, 655, 6273, 6274, 0, 0, 0, 0,
4841 : 0, 0, 0, 6275, 0, 965, 965, 0, 0, 6487,
4842 : 0, 6370, 0, 1555, 0, 0, 6276, 0, 0, 0,
4843 : 0, 0, 2373, 0, 0, 652, 0, 0, 6370, 0,
4844 : 0, 0, 0, 0, 0, 0, 0, 0, 2644, 0,
4845 : 0, 0, 0, 0, 0, 0, 652, 1557, 187, 3484,
4846 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4847 : 0, 972, 0, 0, 3487, 0, 0, 0, 0, 0,
4848 : 1008, 0, 2640, 187, 0, 0, 0, 2641, 0, 0,
4849 : 652, 0, 0, 0, 1030, 3487, 0, 0, 0, -2793,
4850 : 0, 974, 35, 0, 2824, 0, 0, 1559, 0, 0,
4851 : -3012, -3012, 0, 917, 0, 0, 1560, 0, 0, 0,
4852 : 0, 0, 721, 0, 917, 1561, 0, 0, 964, 3487,
4853 : 0, 809, 0, 2825, 0, 0, 1822, 0, 2643, 0,
4854 : 917, 0, 0, 0, 2646, 0, 1563, 0, 0, 0,
4855 : 0, 0, 0, -2793, 0, 1564, 0, 0, 0, 974,
4856 : 1565, 0, 0, 0, 0, 0, -2793, 974, 0, 0,
4857 : 0, 0, -2793, 964, 3484, 974, 0, 0, -2793, 0,
4858 : 3484, -3012, 0, 0, -2793, 0, 0, -2793, 0, 0,
4859 : 0, -2793, 0, 0, 917, 0, 0, 2644, 0, 0,
4860 : 0, 6351, 0, 655, 0, 0, 655, 0, 0, 917,
4861 : 0, 0, 917, 917, 0, 0, 655, 655, 1566, 974,
4862 : 974, -2793, 0, 0, 0, 0, 0, 0, 0, 0,
4863 : 0, 655, 0, 974, 655, 0, 652, 0, 0, 0,
4864 : 0, 0, 0, 917, 917, 0, 974, 974, 0, 0,
4865 : 0, 2574, 0, 0, -2793, 0, 0, 0, 0, 0,
4866 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
4867 : 0, 0, 0, 0, 0, 3487, 0, 0, 0, 0,
4868 : 0, 0, 0, 0, 655, 0, 0, 0, 655, 655,
4869 : 0, 0, 0, 2646, 0, 0, 0, 0, 0, 0,
4870 : 0, 0, 0, 0, 0, 3484, -2793, 0, 0, 0,
4871 : -2793, 0, 0, 0, 0, 652, -2793, 0, 0, 0,
4872 : 0, 0, 0, 655, 0, 655, 187, 0, 0, 0,
4873 : 655, 655, 0, 0, 0, 0, 0, 655, 655, 655,
4874 : 655, 655, 655, 655, 655, 655, 655, 655, 655, 655,
4875 : 0, 0, 0, 655, 3487, 655, 0, 655, 655, 655,
4876 : 655, 655, 655, 0, 0, 655, 0, 655, 655, 0,
4877 : 0, 655, 0, 0, 0, 0, -2793, 0, 0, 0,
4878 : 0, 0, 0, 0, 0, 917, 655, 655, 655, 0,
4879 : 0, 0, 1579, 0, 0, 0, 3297, 0, 1580, 0,
4880 : 2574, 0, 0, 0, 655, 0, 1822, 0, 0, 2575,
4881 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 3324, 3324,
4882 : 3324, 3324, 0, 0, 3324, 3324, 3324, 3324, 3324, 3324,
4883 : 3324, 3324, 3324, 3324, 1646, 810, 0, 0, 0, 0,
4884 : 0, 0, 0, 1582, 0, 0, 0, 0, 0, 0,
4885 : 0, 0, 4775, 0, 0, 5953, 1647, 0, 0, 0,
4886 : 0, 0, 0, 0, 0, -2793, 0, 0, 0, 0,
4887 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4888 : 0, 0, 4937, 652, 0, 0, 0, 0, 3324, 3324,
4889 : -2793, 0, -2793, -2793, 0, 0, 0, 0, 0, 0,
4890 : 1583, 0, 0, 0, 0, 0, 0, 1584, 1648, 4947,
4891 : 0, 1585, 0, 0, -2793, 0, 2781, 0, 0, 0,
4892 : 0, 0, 3487, 0, 0, 0, 0, 0, 0, 0,
4893 : 0, 0, 0, 0, -2793, 4835, 0, -2793, -2793, -2793,
4894 : 1586, 0, 0, 0, 0, 0, 0, 0, 1100, 0,
4895 : 0, 0, 655, 0, 1100, 0, 4948, 0, 0, 0,
4896 : 0, 2111, 0, 0, 2112, 0, 1100, 0, 2113, 2114,
4897 : 2115, 0, 0, 0, 0, 0, 1587, 0, 4949, 0,
4898 : 0, 0, 0, 0, 0, 0, 2636, 0, 0, 0,
4899 : 0, 0, 0, 0, 0, 0, 2637, 652, 0, 0,
4900 : 0, 1649, 0, 2638, 0, 0, 655, 0, 0, 0,
4901 : 0, 1579, 0, 0, 0, 0, 795, 1580, 795, 0,
4902 : 795, 0, 0, 0, 0, 0, 795, 1223, 1224, 2639,
4903 : 0, 0, 1688, 0, 0, 0, 3487, 0, 0, 0,
4904 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4905 : 0, 0, 0, 0, 0, 0, 1690, 0, 0, 1650,
4906 : 1589, 0, 1582, 655, 1651, 0, 0, 0, 0, 1652,
4907 : 0, 1590, 0, 0, 0, 0, 0, 0, 0, 0,
4908 : 0, 1591, 0, 0, 0, 2952, 0, 0, 0, 4950,
4909 : 0, 0, 0, 1592, 0, 0, 0, 0, 0, 0,
4910 : 0, 0, 0, 0, 652, 0, 0, 0, 0, 0,
4911 : 0, 0, 0, 0, 0, 0, 0, 1689, 0, 1583,
4912 : 0, 1654, 0, 0, 0, 0, 1584, 0, 0, 0,
4913 : 1585, 0, 0, 0, 0, 2805, 0, 0, 1594, 1595,
4914 : 0, 0, 0, 3487, 0, 914, 0, 0, 2640, 0,
4915 : 0, 0, 0, 2641, 0, 0, 0, 0, 0, 1586,
4916 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1656,
4917 : 2806, 0, 0, 1076, 0, 0, 2642, 2306, 0, 0,
4918 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4919 : 0, 0, 0, 1657, 0, 1587, 0, 0, 0, 0,
4920 : 0, 0, 0, 0, 2643, 0, 0, 0, 0, 0,
4921 : 0, 964, 0, 0, 1659, 0, 4951, 795, 0, 4368,
4922 : 0, 0, 0, 1144, 721, 0, 0, 0, 0, 0,
4923 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3324,
4924 : 0, 0, 0, 1597, 0, 0, 0, 2373, 655, 655,
4925 : 655, 655, 655, 655, 655, 655, 655, 0, 655, 0,
4926 : 0, 0, 0, 2644, 0, 1660, 2645, 0, 0, 655,
4927 : 0, 655, 652, 0, 0, 1690, 0, 0, 0, 1589,
4928 : 964, 964, 0, 0, 0, 0, 0, 795, 0, 0,
4929 : 1590, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4930 : 1591, 0, 0, 0, 0, 0, 0, 0, 0, 655,
4931 : 0, 3487, 1592, 655, 0, 0, 655, 0, 655, 1243,
4932 : 0, 655, 0, 0, 0, 655, 0, 0, 0, 0,
4933 : 0, 0, 2874, 0, 0, 0, 0, 0, 0, 1265,
4934 : 0, 0, 0, 0, 0, 0, 1822, 1389, 655, 0,
4935 : 1398, 1144, 1400, 0, 3777, 0, 0, 1594, 1595, 2646,
4936 : 0, 0, 0, 0, 0, 655, 0, 0, 0, 0,
4937 : 0, 0, 0, 0, 655, 655, 0, 0, 0, 0,
4938 : 0, 0, 0, 0, 0, 0, 0, 652, 0, 3778,
4939 : 0, 0, 0, 652, 0, 0, 0, 0, 0, 0,
4940 : 0, 974, 0, 0, 0, 0, 0, 0, 917, 0,
4941 : 0, 6356, 917, 917, 0, 0, 0, 0, 0, 974,
4942 : 0, 0, 0, 974, 0, 0, 3487, 974, 0, 0,
4943 : 0, 0, 3487, 0, 0, 0, 974, 0, 0, 0,
4944 : 0, 0, 0, 0, 0, 0, 1579, 0, 0, 0,
4945 : 0, 974, 1580, 0, 655, 0, 0, 0, 0, 0,
4946 : 0, 0, 1597, 0, 0, 655, 2574, 917, 655, 5258,
4947 : 655, 655, 0, 917, 0, 2575, 2576, 2577, 2578, 2579,
4948 : 2580, 2581, 2582, 2583, 0, 974, 0, 0, 4113, 0,
4949 : 0, 4114, 0, 6404, 0, 0, 0, 1582, 0, 0,
4950 : 0, 0, 0, 0, 0, 974, 974, 0, 0, 0,
4951 : 0, 0, 0, 0, 0, 0, 0, 0, 652, 0,
4952 : 0, 917, 0, 0, 0, 0, 0, 0, 0, 0,
4953 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4954 : 0, 0, 0, 1822, 974, 0, 0, 1822, 0, 0,
4955 : 0, 0, 0, 0, 1583, 1144, 0, 3487, 0, 0,
4956 : 0, 1584, 0, 0, 0, 1585, 6404, 0, 0, 0,
4957 : 0, 974, 0, 1822, 0, 0, 0, 974, 0, 0,
4958 : 0, 0, 6470, 0, 0, 0, 0, 0, 0, 0,
4959 : 0, 974, 0, 0, 1586, 0, 0, 0, 974, 964,
4960 : 964, 974, 0, 0, 1579, 0, 0, 974, 0, 0,
4961 : 1580, 0, 0, 0, 2111, 0, 0, 2112, 0, 0,
4962 : 0, 2113, 2114, 2115, 0, 0, 0, 974, 0, 0,
4963 : 1587, 0, 0, 974, 0, 0, 0, 0, 0, 2636,
4964 : 974, 795, 0, 0, 0, 0, 795, 795, 0, 2637,
4965 : 0, 0, 0, 0, 974, 1582, 2638, 0, 0, 0,
4966 : 0, 0, 0, 0, 0, 0, 0, 0, 974, 0,
4967 : 0, 0, 0, 1822, 2654, 0, 0, 0, 0, 974,
4968 : 0, 0, 2639, 2661, 0, 2662, 0, 0, 0, 2665,
4969 : 0, 0, 0, 0, 0, 0, 2671, 655, 655, 655,
4970 : 0, 0, 0, 655, 0, 0, 0, 0, 0, 0,
4971 : 1588, 0, 1583, 0, 1589, 0, 0, 0, 0, 1584,
4972 : 0, 0, 0, 1585, 0, 1590, 0, 0, 0, 0,
4973 : 655, 917, 0, 0, 0, 1591, 0, 0, 0, 1822,
4974 : 0, 0, 0, 0, 0, 0, 2030, 1592, 0, 0,
4975 : 0, 0, 1586, 0, 0, 0, 0, 0, 0, 0,
4976 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4977 : 0, 0, 655, 1144, 0, 0, 0, 0, 0, 0,
4978 : 0, 0, 0, 0, 0, 0, 0, 795, 1587, 2890,
4979 : 0, 0, 1594, 1595, 0, 0, 0, 795, 0, 0,
4980 : 0, 2640, 0, 0, 917, 0, 2641, 0, 917, 0,
4981 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4982 : 0, 0, 914, 0, 2891, 0, 0, 0, 0, 2642,
4983 : 2306, 0, 0, 0, 0, 0, 0, 0, 0, 0,
4984 : 0, 1223, 1224, 0, 0, 0, 0, 0, 914, 0,
4985 : 0, 0, 0, 0, 0, 0, 0, 2643, 0, 0,
4986 : 0, 0, 2107, 0, 0, 0, 0, 0, 1690, 0,
4987 : 0, 2109, 1589, 0, 0, 0, 0, 0, 0, 0,
4988 : 0, 0, 0, 1590, 795, 0, 0, 2599, 795, 795,
4989 : 0, 0, 0, 1591, 974, 0, 1822, 1597, 0, 0,
4990 : 2373, 0, 0, 0, 0, 1592, 1144, 0, 0, 2616,
4991 : 2617, 917, 0, 974, 1144, 1144, 2644, 0, 0, 2645,
4992 : 974, 0, 0, 0, 655, 0, 917, 655, 0, 655,
4993 : 655, 917, 0, 0, 0, 0, 0, 3324, 0, 655,
4994 : 0, 0, 0, 0, 655, 0, 0, 3632, 0, 0,
4995 : 1594, 1595, 0, 0, 0, 0, 0, 0, 0, 0,
4996 : 0, 917, 0, 0, 0, 0, 0, 0, 0, 0,
4997 : 0, 0, 0, 0, 0, 0, 0, 3005, 0, 0,
4998 : 0, 0, 1596, 0, 0, 0, 0, 0, 0, 0,
4999 : 3324, 914, 0, 655, 655, 655, 0, 0, 655, 0,
5000 : 0, 0, 0, 0, 0, 0, 655, 655, 655, 655,
5001 : 0, 0, 2646, 0, 0, 0, 0, 1822, 0, 0,
5002 : 0, 0, 655, 1822, 0, 655, 0, 655, 0, 0,
5003 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 655,
5004 : 655, 1579, 0, 655, 0, 0, 0, 1580, 0, 0,
5005 : 0, 0, 0, 0, 0, 1597, 0, 0, 0, 0,
5006 : 0, 1579, 0, 0, 655, 0, 655, 1580, 655, 0,
5007 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5008 : 0, 0, 795, 0, 0, 0, 0, 655, 0, 0,
5009 : 0, 1579, 1582, 0, 0, 0, 0, 1580, 0, 0,
5010 : 0, 0, 0, 0, 0, 0, 0, 0, 974, 0,
5011 : 0, 0, 1582, 0, 0, 0, 0, 0, 0, 2574,
5012 : 0, 0, 0, 0, 0, 0, 0, 0, 2575, 2576,
5013 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 0,
5014 : 0, 0, 1582, 0, 4115, 655, 0, 0, 655, 1583,
5015 : 3084, 0, 0, 0, 914, 0, 1584, 0, 3101, 0,
5016 : 1585, 916, 655, 0, 0, 914, 3005, 655, 0, 1583,
5017 : 0, 2957, 0, 0, 0, 0, 1584, 0, 0, 2965,
5018 : 1585, 914, 655, 0, 0, 0, 0, 0, 0, 1586,
5019 : 0, 0, 0, 0, 0, 0, 655, 0, 0, 1583,
5020 : 0, 0, 0, 0, 655, 0, 1584, 0, 0, 1586,
5021 : 1585, 3159, 0, 0, 0, 0, 917, 0, 0, 917,
5022 : -136, 917, 0, 0, 0, 1587, 917, 0, 0, 0,
5023 : 0, 0, 0, 0, 0, 0, 0, 0, 3005, 1586,
5024 : 1, 974, 974, 0, 0, 1587, 0, 655, 0, 0,
5025 : 0, 2, 3324, 3, 4, 0, 0, 0, 0, 0,
5026 : 0, 0, 974, 0, 0, 974, 0, 0, 917, 0,
5027 : 0, 5, 0, 0, 0, 1587, 917, 0, 0, 0,
5028 : 0, 6, 0, 3324, 0, 0, 0, 0, 0, 0,
5029 : 0, 0, 0, 7, 0, 8, 9, 3272, 3273, 0,
5030 : 0, 917, 10, 0, 11, 1690, 0, 655, 0, 1589,
5031 : 0, 0, 0, 0, 3309, 3310, 0, 12, 0, 13,
5032 : 1590, 0, 0, 0, 0, 1690, 0, 0, 0, 1589,
5033 : 1591, 0, 0, 0, 0, 0, 14, 0, 914, 15,
5034 : 1590, 0, 1592, 0, 0, 3355, 0, 1822, 1822, 1822,
5035 : 1591, 0, 0, 0, 16, 1690, 17, 0, 0, 1589,
5036 : 18, 0, 1592, 0, 0, 0, 0, 19, 0, 0,
5037 : 1590, 0, 974, 0, 0, 0, 0, 20, 0, 21,
5038 : 1591, 917, 0, 917, 3824, 0, 22, 1594, 1595, 0,
5039 : 0, 974, 1592, 0, 3095, 0, 0, 0, 3100, 0,
5040 : 0, 0, 0, 0, 23, 0, 0, 1594, 1595, 0,
5041 : 0, 0, 0, 974, 0, 0, 0, 0, 0, 3825,
5042 : 0, 24, 0, 0, 0, 0, 0, 0, 0, 0,
5043 : 0, 0, 0, 0, 4341, 0, 0, 1594, 1595, 1596,
5044 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5045 : 0, 0, 2111, 0, 0, 2112, 0, 0, 0, 2113,
5046 : 2114, 2115, 0, 0, 0, 0, 0, 0, 0, 4342,
5047 : 0, 0, 0, 0, 0, 25, 26, 2636, 0, 917,
5048 : 0, 27, 0, 0, 0, 0, 0, 2637, 0, 0,
5049 : 0, 0, 1597, 0, 2638, 0, 28, 0, 2615, 0,
5050 : 0, 0, 0, 974, 0, 0, 0, 0, 655, 0,
5051 : 0, 0, 1597, 0, 655, 29, 0, 0, 0, 0,
5052 : 2639, 0, 0, 917, 0, 0, 0, 0, 0, 0,
5053 : 0, 0, 0, 0, 0, 0, 0, 3324, 0, 0,
5054 : 0, 0, 1597, 0, 0, 0, 0, 0, 0, 0,
5055 : 1822, 917, 0, 0, 0, 0, 974, 0, 974, 0,
5056 : 0, 0, 0, 0, 30, 0, 0, 0, 3283, 0,
5057 : 0, 974, 0, 974, 0, 0, 0, 0, 0, 31,
5058 : 0, 0, 0, 0, 32, 33, 0, 34, 0, 0,
5059 : 0, 0, 35, 655, 0, 0, 0, 0, 36, 914,
5060 : 0, 37, 0, 0, 0, 0, 0, 0, 38, 0,
5061 : 0, 0, 0, 0, 0, 39, 40, 0, 0, 917,
5062 : 0, 0, 0, 41, 0, 0, 0, 42, 0, 0,
5063 : 0, 0, 0, 0, 0, 0, 0, 0, 43, 2640,
5064 : 974, 917, 0, 0, 2641, 0, 0, 0, 0, 0,
5065 : 0, 0, 0, 0, 0, 44, 0, 0, 0, 0,
5066 : 0, 0, 0, 917, 0, 0, 914, 2642, 2306, 0,
5067 : 0, 0, 0, 0, 0, 0, 45, 0, 0, 0,
5068 : 0, 0, 974, 0, 0, 0, 0, 0, 46, 0,
5069 : 0, 0, 0, 0, 47, 2643, 0, 0, 0, 48,
5070 : 0, 974, 0, 0, 0, 974, 0, 914, 0, 0,
5071 : 0, 0, 0, 49, 0, 0, 0, 0, 0, 0,
5072 : 0, 0, 0, 0, 0, 905, 974, 0, 0, 0,
5073 : 0, 0, 0, 0, 0, 6186, 0, 50, 2373, 0,
5074 : 914, 0, 655, 0, 0, 917, 0, 0, 0, 0,
5075 : 0, 655, 0, 0, 2644, 0, 56, 2645, 0, -136,
5076 : 0, 0, 0, 0, 0, 655, 0, 0, 0, 655,
5077 : 655, 655, 0, 0, 0, 0, 655, 0, 0, 655,
5078 : 0, 0, 655, 0, 0, 0, 0, 0, 655, 0,
5079 : 655, 0, 0, 655, 0, 0, 0, 917, 655, 655,
5080 : 655, 655, 0, 0, 655, 655, 655, 655, 655, 655,
5081 : 655, 655, 655, 655, 0, 0, 0, 655, 655, 655,
5082 : 0, 0, 917, 0, 0, 0, 0, 655, 0, 0,
5083 : 0, 0, 655, 0, 1822, 0, 655, 0, 916, 0,
5084 : 0, 0, 0, 0, 655, 0, 0, 655, 0, 655,
5085 : 2646, 0, 0, 0, 2111, 0, 0, 2112, 0, 0,
5086 : 0, 2113, 2114, 2115, 916, 655, 0, 0, 655, 655,
5087 : 0, 0, 0, 655, 655, 0, 0, 0, 655, 2636,
5088 : 655, 0, 3324, 3324, 0, 0, 3324, 0, 0, 2637,
5089 : 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0,
5090 : 3456, 3458, 0, 0, 0, 0, 3466, 0, 0, 655,
5091 : 0, 0, 0, 0, 0, 655, 0, 0, 0, 0,
5092 : 0, 0, 2639, 655, 0, 0, 0, 655, 0, 0,
5093 : 0, 0, 0, 0, 914, 0, 0, 0, 3512, 3512,
5094 : 0, 0, 0, 0, 0, 914, 0, 0, 0, 0,
5095 : 0, 0, 0, 0, 0, 0, 0, 2574, 0, 0,
5096 : 655, 914, 0, 0, 0, 0, 2575, 2576, 2577, 2578,
5097 : 2579, 2580, 2581, 2582, 2583, 0, 0, 655, 0, 0,
5098 : 0, 0, 4166, 917, 0, 0, 0, 0, 0, 0,
5099 : 0, 0, 3539, 0, 0, 0, 0, 0, 0, 0,
5100 : 795, 0, 0, 0, 0, 0, 0, 916, 0, 974,
5101 : 3555, 0, 0, 0, 3558, 914, 0, 0, 3561, 0,
5102 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5103 : 914, 0, 655, 914, 914, 0, 0, 0, 0, 0,
5104 : 0, 2640, 3580, 0, 0, 0, 2641, 2111, 0, 0,
5105 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
5106 : 0, 0, 0, 0, 914, 914, 0, 0, 0, 2642,
5107 : 2306, 0, 2636, 1822, 0, 0, 3622, 0, 1822, 917,
5108 : 1822, 0, 2637, 0, 0, 0, 0, 0, 3649, 2638,
5109 : 0, 0, 0, 0, 0, 0, 1100, 2643, 0, 0,
5110 : 0, 0, 0, 0, 0, 0, 1822, 917, 0, 0,
5111 : 0, 0, 0, 0, 0, 2639, 0, 0, 0, 2111,
5112 : 3434, 0, 2112, 0, 0, 0, 2113, 2114, 2115, 0,
5113 : 0, 0, 0, 0, 0, 3682, 0, 0, 0, 0,
5114 : 2373, 0, 0, 0, 2636, 0, 0, 0, 0, 0,
5115 : 0, 1737, 974, 0, 2637, 974, 2644, 0, 0, 2645,
5116 : 0, 2638, 3711, 0, 0, 0, 0, 0, 3720, 0,
5117 : 916, 0, 0, 0, 0, 0, 0, 795, 0, 0,
5118 : 0, 916, 3730, 0, 0, 795, 0, 2639, 795, 1100,
5119 : 0, 0, 3743, 0, 0, 0, 0, 916, 3748, 0,
5120 : 795, 0, 0, 0, 0, 0, 914, 0, 0, 0,
5121 : 0, 0, 0, 0, 0, 0, 0, 0, 3761, 655,
5122 : 0, 0, 0, 0, 3764, 0, 0, 0, 0, 0,
5123 : 0, 3772, 0, 0, 2640, 0, 0, 0, 0, 2641,
5124 : 0, 0, 0, 0, 0, 3787, 974, 974, 0, 0,
5125 : 917, 0, 2646, 0, 0, 0, 0, 974, 0, 3813,
5126 : 0, 0, 2642, 2306, 655, 655, 0, 0, 1144, 0,
5127 : 1100, 0, 0, 0, 974, 0, 0, 0, 0, 0,
5128 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5129 : 2643, 0, 0, 0, 0, 0, 0, 917, 0, 0,
5130 : 0, 0, 917, 655, 655, 0, 2640, 0, 0, 0,
5131 : 0, 2641, 0, 0, 655, 0, 0, 0, 0, 0,
5132 : 0, 0, 0, 0, 1400, 0, 0, 0, 0, 0,
5133 : 0, 0, 0, 2373, 2642, 2306, 0, 0, 0, 0,
5134 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644,
5135 : 0, 0, 2645, 0, 916, 974, 0, 0, 1822, 2574,
5136 : 0, 0, 2643, 0, 0, 0, 0, 0, 2575, 2576,
5137 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 0,
5138 : 0, 3353, 0, 0, 655, 0, 1579, 0, 0, 0,
5139 : 0, 0, 1580, 0, 0, 0, 0, 0, 0, 0,
5140 : 655, 0, 905, 0, 0, 2373, 0, 0, 0, 0,
5141 : 0, 1400, 0, 0, 0, 0, 0, 0, 655, 0,
5142 : 0, 2644, 0, 0, 2645, 0, 0, 0, 905, 0,
5143 : 0, 0, 0, 0, 0, 1400, 0, 1582, 0, 0,
5144 : 0, 0, 0, 0, 0, 2646, 655, 795, 0, 655,
5145 : 0, 0, 0, 0, 0, 0, 0, 655, 655, 0,
5146 : 917, 0, 0, 0, 655, 655, 0, 0, 0, 655,
5147 : 0, 0, 0, 0, 655, 0, 0, 655, 655, 0,
5148 : 0, 0, 0, 0, 655, 4031, 0, 0, 0, 0,
5149 : 0, 0, 0, 0, 1583, 0, 0, 0, 0, 3812,
5150 : 0, 1584, 0, 3816, 4047, 1585, 655, 0, 0, 0,
5151 : 0, 4031, 0, 655, 0, 0, 0, 2646, 655, 0,
5152 : 0, 655, 655, 0, 0, 0, 0, 0, 0, 655,
5153 : 0, 0, 0, 0, 1586, 0, 0, 0, 0, 0,
5154 : 3849, 0, 3849, 0, 3849, 3849, 0, 0, 655, 3849,
5155 : 3849, 3849, 2574, 3849, 3849, 3849, 0, 0, 0, 0,
5156 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5157 : 1587, 905, 0, 0, 4107, 0, 0, 917, 0, 0,
5158 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5159 : 974, 0, 0, 0, 0, 655, 0, 0, 0, 0,
5160 : 0, 0, 0, 0, 0, 0, 0, 3926, 0, 0,
5161 : 0, 0, 0, 0, 0, 2745, 0, 0, 0, 0,
5162 : 0, 0, 0, 0, 2574, 0, 0, 0, 0, 0,
5163 : 0, 917, 3954, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
5164 : 2582, 2583, 0, 0, 0, 0, 4528, 0, 974, 2111,
5165 : 1690, 0, 2112, 917, 1589, 0, 2113, 2114, 2115, 0,
5166 : 974, 0, 0, 0, 0, 1590, 0, 0, 0, 0,
5167 : 4223, 0, 795, 0, 2636, 1591, 655, 0, 0, 0,
5168 : 0, 0, 2745, 655, 2637, 0, 0, 1592, 4230, 0,
5169 : 0, 2638, 0, 0, 974, 0, 0, 0, 0, 0,
5170 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5171 : 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0,
5172 : 0, 0, 0, 916, 0, 917, 0, 0, 0, 4414,
5173 : 0, 0, 1594, 1595, 905, 0, 0, 0, 4279, 4279,
5174 : 0, 0, 0, 0, 0, 905, 0, 0, 0, 0,
5175 : 0, 655, 0, 0, 0, 0, 916, 0, 0, 0,
5176 : 0, 905, 0, 0, 4415, 0, 0, 0, 655, 1549,
5177 : 0, 0, 0, 1822, 0, 0, 0, 0, 0, 0,
5178 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5179 : 0, 0, 974, 0, 0, 0, 0, 0, 0, 655,
5180 : 0, 0, 0, 0, 0, 1550, 0, 0, 0, 0,
5181 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5182 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 914,
5183 : 0, 0, 0, 914, 914, 0, 2640, 1597, 1737, 1737,
5184 : 1737, 2641, 0, 0, 0, 917, 0, 917, 0, 0,
5185 : 0, 0, 0, 4325, 0, 0, 722, 0, 0, 0,
5186 : 0, 723, 0, 0, 2642, 2306, 0, 0, 0, 1551,
5187 : 0, 0, 0, 0, 0, 0, 0, 0, 974, 0,
5188 : 0, 0, 0, 0, 0, 0, 0, 0, 914, 0,
5189 : 0, 0, 2643, 0, 914, 0, 0, 0, 0, 724,
5190 : 0, 0, 0, 0, 655, 0, 1552, 0, 0, 0,
5191 : 0, 0, 725, 0, 655, 0, 0, 655, 905, 0,
5192 : 655, 655, 655, 0, 0, 0, 0, 0, 0, 726,
5193 : 0, 0, 0, 0, 0, 2373, 0, 0, 0, 0,
5194 : 1144, 0, 914, 0, 0, 655, 655, 727, 0, 655,
5195 : 916, 2644, 0, 0, 2645, 0, 1553, 0, 0, 0,
5196 : 0, 916, 0, 4412, 0, 0, 655, 0, 0, 0,
5197 : 655, 728, 0, 0, 0, 0, 655, 916, 0, 0,
5198 : 655, 0, 0, 0, 0, 729, 917, 655, 0, 0,
5199 : 0, 0, 0, 0, 730, 655, 1554, 0, 0, 0,
5200 : 1555, 655, 0, 0, 655, 0, 0, 731, 0, 0,
5201 : 974, 0, 974, 732, 0, 0, 0, 0, 0, 0,
5202 : 733, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5203 : 0, 916, 0, 1620, 1557, 655, 0, 0, 0, 0,
5204 : 734, 0, 0, 0, 0, 0, 916, 2646, 0, 916,
5205 : 916, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5206 : 0, 0, 917, 974, 0, 0, 0, 0, 0, 0,
5207 : 0, 0, 0, 655, 0, 1621, 0, 0, 0, 35,
5208 : 916, 916, 0, 0, 1559, 0, 0, 0, 0, 0,
5209 : 0, 0, 0, 1560, 4507, 0, 0, 1144, 0, 0,
5210 : 735, 0, 1561, 0, 0, 0, 0, 0, 0, 0,
5211 : 1622, 0, 0, 1822, 0, 795, 0, 0, 655, 0,
5212 : 0, 0, 0, 1563, 0, 0, 0, 0, 0, 0,
5213 : 0, 0, 1564, 0, 0, 0, 0, 1565, 4576, 0,
5214 : 0, 0, 0, 0, 0, 736, 0, 0, 0, 0,
5215 : 0, 0, 914, 0, 2574, 0, 0, 0, 737, 0,
5216 : 0, 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
5217 : 2582, 2583, 738, 0, 0, 0, 4715, 0, 0, 905,
5218 : 1737, 655, 213, 739, 917, 4402, 740, 0, 0, 0,
5219 : 0, 0, 0, 0, 1737, 1566, 0, 1737, 0, 0,
5220 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5221 : 0, 0, 0, 741, 0, 655, 742, 0, 0, 0,
5222 : 743, 0, 916, 744, 0, 914, 0, 0, 0, 914,
5223 : 745, 0, 655, 746, 0, 0, 655, 0, 655, 0,
5224 : 0, 0, 0, 4451, 0, 0, 905, 0, 0, 0,
5225 : 0, 0, 655, 747, 0, 0, 0, 0, 0, 0,
5226 : 655, 748, 0, 655, 0, 0, 0, 0, 749, 0,
5227 : 0, 750, 0, 3005, 655, 0, 751, 0, 0, 0,
5228 : 0, 655, 0, 0, 752, 0, 753, 905, 0, 0,
5229 : 0, 754, 4680, 0, 0, 795, 4684, 0, 0, 0,
5230 : 0, 0, 0, 0, 0, 755, 0, 0, 0, 0,
5231 : 0, 0, 0, 4494, 0, 0, 0, 0, 756, 0,
5232 : 905, 0, 0, 0, 1549, 0, 0, 0, 0, 0,
5233 : 0, 0, 914, 655, 0, 0, 0, 0, 0, 917,
5234 : 0, 0, 0, 0, 917, 917, 0, 914, 0, 655,
5235 : 0, 0, 914, 0, 0, 655, 655, 974, 0, 0,
5236 : 1550, 3849, 0, 0, 0, 0, 0, 0, 0, 0,
5237 : 0, 974, 661, 4525, 4525, 0, 0, 0, 710, 661,
5238 : 0, 0, 914, 4541, 762, 0, 661, 0, 1144, 0,
5239 : 1144, 655, 661, 0, 815, 0, 0, 0, 0, 0,
5240 : 655, 0, 0, 1822, 0, 0, 0, 0, 0, 0,
5241 : 0, 0, 0, 877, 877, 0, 0, 0, 0, 0,
5242 : 0, 0, 0, 0, 1551, 0, 0, 0, 655, 0,
5243 : 0, 0, 0, 0, 0, 0, 4597, 0, 0, 0,
5244 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5245 : 0, 0, 0, 0, 0, 0, 0, 917, 917, 0,
5246 : 0, 1552, 0, 0, 0, 0, 2111, 0, 0, 2112,
5247 : 0, 4633, 1144, 2113, 2114, 2115, 0, 0, 0, 0,
5248 : 0, 655, 1822, 0, 0, 0, 0, 0, 0, 0,
5249 : 0, 2636, 0, 655, 0, 0, 0, 0, 0, 0,
5250 : 0, 2637, 655, 655, 655, 0, 0, 0, 2638, 0,
5251 : 0, 1553, 0, 0, 905, 0, 0, 655, 1822, 0,
5252 : 0, 917, 0, 0, 0, 905, 655, 0, 655, 0,
5253 : 655, 0, 0, 0, 2639, 0, 0, 0, 0, 0,
5254 : 0, 905, 655, 0, 0, 0, 0, 0, 0, 655,
5255 : 0, 1554, 0, 0, 0, 1555, 0, 0, 0, 0,
5256 : 0, 0, 0, 0, 956, 0, 0, 0, 960, 655,
5257 : 0, 0, 0, 0, 0, 0, 1003, 0, 0, 1005,
5258 : 0, 0, 1010, 1011, 0, 1014, 0, 1017, 1637, 1557,
5259 : 1023, 0, 1025, 0, 1822, 905, 0, 974, 0, 0,
5260 : 4909, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5261 : 905, 0, 0, 905, 905, 0, 0, 0, 0, 0,
5262 : 0, 907, 0, 0, 0, 0, 0, 0, 0, 0,
5263 : 1638, 0, 0, 0, 35, 0, 0, 914, 0, 1559,
5264 : 914, 0, 914, 795, 905, 905, 0, 914, 1560, 655,
5265 : 0, 0, 0, 2640, 0, 0, 0, 1561, 2641, 0,
5266 : 0, 0, 0, 0, 0, 1639, 908, 0, 0, 0,
5267 : 0, 795, 0, 0, 0, 4789, 0, 0, 1563, 0,
5268 : 0, 2642, 2306, 0, 0, 795, 0, 1564, 0, 914,
5269 : 0, 0, 1565, 0, 0, 0, 795, 914, 0, 0,
5270 : 655, 0, 0, 0, 0, 0, 0, 0, 1737, 2643,
5271 : 0, 0, 0, 0, 0, 655, 0, 0, 0, 0,
5272 : 0, 0, 914, 0, 0, 655, 0, 0, 0, 0,
5273 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5274 : 0, 0, 974, 5035, 0, 0, 5038, 0, 0, 0,
5275 : 1566, 0, 2373, 0, 0, 0, 655, 0, 0, 0,
5276 : 0, 0, 0, 0, 0, 0, 974, 0, 2644, 0,
5277 : 0, 2645, 1223, 1224, 2111, 0, 0, 2112, 0, 0,
5278 : 0, 2113, 2114, 2115, 0, 0, 905, 0, 0, 0,
5279 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2636,
5280 : 0, 0, 914, 0, 914, 0, 0, 655, 0, 2637,
5281 : 0, 0, 0, 0, 0, 0, 2638, 655, 0, 0,
5282 : 0, 0, 0, 0, 0, 655, 655, 0, 0, 0,
5283 : 0, 655, 0, 0, 0, 0, 0, 0, 0, 0,
5284 : 0, 0, 2639, 0, 0, 3544, 0, 0, 5121, 2745,
5285 : 3550, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5286 : 0, 795, 655, 655, 2646, 3005, 655, 0, 0, 0,
5287 : 0, 0, 0, 0, 2111, 0, 0, 2112, 0, 0,
5288 : 0, 2113, 2114, 2115, 902, 0, 0, 0, 0, 0,
5289 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2636,
5290 : 914, 0, 0, 0, 916, 0, 974, 0, 0, 2637,
5291 : 916, 4541, 0, 0, 795, 0, 2638, 910, 0, 0,
5292 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5293 : 0, 0, 655, 0, 0, 0, 0, 0, 655, 4999,
5294 : 0, 0, 2639, 0, 914, 0, 4031, 0, 0, 0,
5295 : 0, 0, 0, 0, 5013, 0, 655, 5014, 916, 5015,
5296 : 0, 2640, 0, 655, 0, 0, 2641, 0, 0, 0,
5297 : 0, 2574, 914, 0, 0, 0, 0, 0, 0, 655,
5298 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 2642,
5299 : 2306, 0, 0, 4788, 0, 0, 0, 0, 0, 0,
5300 : 655, 0, 0, 0, 0, 5055, 0, 0, 0, 0,
5301 : 0, 0, 0, 0, 0, 0, 0, 2643, 0, 0,
5302 : 0, 3849, 0, 0, 0, 0, 3849, 0, 0, 0,
5303 : 1053, 0, 0, 0, 0, 0, 0, 0, 655, 0,
5304 : 914, 1090, 0, 917, 0, 1094, 0, 0, 0, 655,
5305 : 0, 0, 1107, 1108, 0, 0, 1114, 0, 1118, 1119,
5306 : 2373, 2640, 914, 655, 0, 0, 2641, 0, 0, 0,
5307 : 1822, 0, 0, 1141, 0, 0, 2644, 0, 0, 2645,
5308 : 0, 0, 0, 0, 914, 0, 0, 0, 0, 2642,
5309 : 2306, 1154, 0, 0, 0, 0, 0, 0, 0, 0,
5310 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5311 : 655, 655, 1182, 0, 1184, 0, 0, 2643, 0, 0,
5312 : 0, 0, 0, 0, 1200, 0, 5161, 655, 0, 4541,
5313 : 0, 1822, 0, 0, 0, 0, 1737, 0, 0, 0,
5314 : 0, 0, 0, 0, 655, 655, 0, 0, 0, 0,
5315 : 0, 0, 0, 0, 0, 0, 1822, 661, 0, 0,
5316 : 2373, 0, 0, 0, 0, 0, 914, 0, 916, 0,
5317 : 0, 0, 2646, 0, 0, 0, 2644, 795, 0, 2645,
5318 : 0, 0, 0, 795, 0, 0, 0, 0, 795, 0,
5319 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5320 : 0, 0, 0, 0, 0, 5210, 5210, 5210, 5210, 0,
5321 : 5210, 5210, 5210, 5210, 5210, 5400, 5401, 0, 914, 0,
5322 : 5404, 5405, 0, 0, 0, 0, 0, 0, 0, 0,
5323 : 0, 0, 0, 0, 0, 0, 0, 0, 877, 5397,
5324 : 0, 2745, 0, 914, 0, 2745, 0, 0, 0, 0,
5325 : 0, 5407, 0, 0, 0, 0, 0, 0, 0, 0,
5326 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5327 : 0, 0, 2646, 0, 0, 0, 0, 0, 0, 2574,
5328 : 0, 0, 0, 0, 0, 0, 0, 0, 2575, 2576,
5329 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 907, 0,
5330 : 0, 4895, 0, 0, 0, 0, 0, 0, 0, 0,
5331 : 2111, 0, 0, 2112, 0, 0, 0, 2113, 2114, 2115,
5332 : 0, 0, 0, 1540, 907, 0, 0, 0, 5289, 0,
5333 : 5291, 2111, 0, 0, 2112, 2636, 0, 0, 2113, 2114,
5334 : 2115, 0, 0, 908, 0, 2637, 0, 0, 916, 0,
5335 : 0, 0, 2638, 0, 0, 0, 2636, 0, 0, 0,
5336 : 0, 0, 0, 916, 0, 0, 2637, 0, 916, 908,
5337 : 0, 0, 0, 2638, 0, 0, 0, 0, 2639, 2574,
5338 : 0, 0, 0, 0, 0, 0, 0, 0, 2575, 2576,
5339 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 1721, 916, 2639,
5340 : 0, 4920, 0, 0, 914, 0, 0, 0, 0, 905,
5341 : 0, 0, 0, 905, 905, 0, 0, 0, 0, 0,
5342 : 0, 0, 1842, 0, 0, 0, 0, 0, 0, 0,
5343 : 0, 0, 0, 0, 0, 0, 0, 1854, 0, 1855,
5344 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1858,
5345 : 0, 0, 0, 0, 0, 0, 1868, 0, 0, 0,
5346 : 0, 0, 0, 0, 0, 0, 0, 907, 905, 4031,
5347 : 0, 0, 0, 0, 905, 0, 0, 0, 0, 0,
5348 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5349 : 0, 0, 0, 0, 0, 0, 0, 2640, 0, 1920,
5350 : 914, 1922, 2641, 0, 0, 0, 0, 0, 0, 0,
5351 : 0, 0, 908, 0, 0, 0, 0, 0, 2640, 0,
5352 : 0, 0, 905, 2641, 0, 2642, 2306, 0, 914, 0,
5353 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5354 : 0, 0, 0, 0, 0, 0, 2642, 2306, 0, 0,
5355 : 0, 0, 0, 2643, 0, 5428, 5429, 0, 0, 0,
5356 : 0, 1157, 0, 0, 0, 0, 0, 0, 3849, 0,
5357 : 3849, 3849, 3849, 0, 2643, 661, 0, 661, 0, 661,
5358 : 0, 661, 0, 661, 661, 661, 0, 1157, 0, 0,
5359 : 661, 0, 0, 0, 910, 0, 2373, 2111, 0, 0,
5360 : 2112, 4031, 2026, 4031, 2113, 2114, 2115, 0, 0, 0,
5361 : 0, 0, 2644, 0, 0, 2645, 0, 2373, 0, 0,
5362 : 910, 0, 2636, 0, 0, 0, 795, 0, 0, 0,
5363 : 907, 0, 2637, 2644, 0, 0, 2645, 5482, 0, 2638,
5364 : 0, 907, 0, 0, 0, 0, 0, 0, 0, 0,
5365 : 0, 0, 2111, 2745, 0, 2112, 3550, 907, 3550, 2113,
5366 : 2114, 2115, 0, 2745, 0, 2639, 0, 0, 0, 0,
5367 : 0, 914, 0, 0, 0, 908, 5510, 2636, 0, 0,
5368 : 0, 0, 0, 0, 0, 0, 908, 2637, 0, 0,
5369 : 0, 0, 0, 0, 2638, 0, 0, 0, 0, 0,
5370 : 0, 0, 908, 0, 0, 916, 0, 0, 2646, 0,
5371 : 0, 0, 0, 916, 0, 0, 0, 0, 914, 5210,
5372 : 2639, 0, 0, 914, 0, 0, 0, 2111, 0, 2646,
5373 : 2112, 0, 905, 0, 2113, 2114, 2115, 0, 2745, 0,
5374 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5375 : 0, 0, 2636, 0, 0, 0, 0, 0, 0, 0,
5376 : 0, 0, 2637, 910, 0, 0, 0, 0, 0, 2638,
5377 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5378 : 0, 0, 0, 0, 2640, 0, 0, 0, 0, 2641,
5379 : 877, 0, 0, 0, 0, 2639, 0, 0, 0, 0,
5380 : 0, 0, 0, 0, 0, 905, 0, 0, 0, 905,
5381 : 0, 0, 2642, 2306, 907, 2574, 0, 0, 916, 0,
5382 : 916, 0, 0, 0, 2575, 2576, 2577, 2578, 2579, 2580,
5383 : 2581, 2582, 2583, 0, 0, 0, 2574, 5127, 0, 2640,
5384 : 2643, 0, 0, 0, 2641, 2575, 2576, 2577, 2578, 2579,
5385 : 2580, 2581, 2582, 2583, 0, 0, 0, 0, 5240, 908,
5386 : 0, 0, 0, 0, 0, 0, 0, 2642, 2306, 0,
5387 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5388 : 0, 914, 0, 2373, 0, 0, 0, 0, 0, 0,
5389 : 0, 0, 0, 1843, 4541, 2643, 0, 0, 0, 2644,
5390 : 0, 0, 2645, 0, 1852, 0, 0, 0, 0, 0,
5391 : 2803, 0, 905, 0, 2640, 0, 916, 0, 0, 2641,
5392 : 1860, 0, 0, 0, 0, 0, 910, 905, 0, 0,
5393 : 0, 0, 905, 0, 0, 795, 0, 910, 2373, 0,
5394 : 3849, 0, 2642, 2306, 0, 1737, 0, 0, 0, 5711,
5395 : 0, 1737, 0, 910, 2644, 0, 0, 2645, 0, 0,
5396 : 916, 0, 905, 0, 0, 0, 0, 0, 0, 0,
5397 : 2643, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5398 : 0, 0, 2902, 0, 0, 0, 0, 0, 3550, 0,
5399 : 0, 0, 0, 0, 0, 2646, 0, 0, 914, 0,
5400 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5401 : 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0,
5402 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644,
5403 : 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0,
5404 : 0, 0, 0, 0, 0, 0, 911, 0, 0, 0,
5405 : 2646, 0, 914, 0, 0, 0, 916, 0, 0, 0,
5406 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5407 : 0, 0, 0, 0, 914, 907, 0, 2031, 3550, 0,
5408 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5409 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5410 : 916, 0, 2574, 0, 0, 0, 0, 0, 0, 0,
5411 : 910, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5412 : 908, 0, 0, 0, 5277, 2646, 0, 0, 0, 0,
5413 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5414 : 0, 0, 907, 0, 0, 0, 914, 0, 0, 0,
5415 : 6094, 0, 0, 0, 0, 0, 0, 2574, 0, 0,
5416 : 0, 0, 0, 0, 0, 0, 2575, 2576, 2577, 2578,
5417 : 2579, 2580, 2581, 2582, 2583, 0, 0, 0, 0, 5281,
5418 : 0, 0, 916, 907, 0, 0, 0, 908, 0, 0,
5419 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5420 : 3033, 0, 0, 1144, 0, 0, 0, 5929, 0, 0,
5421 : 0, 0, 0, 0, 0, 0, 907, 905, 0, 0,
5422 : 905, 0, 905, 0, 0, 0, 0, 905, 908, 0,
5423 : 0, 0, 2574, 0, 916, 3069, 0, 0, 0, 0,
5424 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5425 : 0, 0, 0, 0, 5557, 0, 0, 0, 0, 916,
5426 : 0, 908, 0, 0, 0, 0, 0, 0, 914, 905,
5427 : 0, 0, 0, 0, 0, 0, 0, 905, 0, 0,
5428 : 0, 3134, 0, 0, 0, 0, 0, 0, 0, 0,
5429 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5430 : 0, 3152, 905, 0, 0, 0, 0, 0, 0, 0,
5431 : 0, 0, 0, 2111, 0, 0, 2112, 0, 0, 0,
5432 : 2113, 2114, 2115, 0, 0, 0, 0, 3172, 0, 3173,
5433 : 0, 0, 0, 4031, 0, 0, 0, 0, 2636, 0,
5434 : 0, 0, 0, 0, 3182, 0, 3183, 0, 2637, 0,
5435 : 0, 0, 661, 0, 661, 2638, 661, 0, 661, 0,
5436 : 661, 0, 0, 0, 661, 0, 0, 0, 0, 0,
5437 : 0, 910, 0, 0, 0, 0, 0, 0, 0, 0,
5438 : 0, 2639, 905, 0, 905, 0, 0, 0, 0, 0,
5439 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5440 : 0, 3242, 0, 0, 0, 0, 0, 914, 0, 0,
5441 : 907, 0, 0, 0, 0, 0, 2111, 0, 0, 2112,
5442 : 2745, 907, 0, 2113, 2114, 2115, 0, 0, 0, 1144,
5443 : 0, 0, 0, 6100, 0, 6101, 0, 907, 910, 6107,
5444 : 6108, 2636, 0, 0, 0, 0, 2897, 0, 0, 0,
5445 : 0, 2637, 0, 0, 0, 908, 0, 0, 2638, 0,
5446 : 0, 0, 0, 0, 0, 0, 908, 0, 0, 0,
5447 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 910,
5448 : 905, 0, 908, 914, 2639, 0, 0, 0, 0, 0,
5449 : 0, 907, 0, 0, 0, 0, 0, 0, 0, 0,
5450 : 2640, 0, 0, 0, 0, 2641, 907, 0, 0, 907,
5451 : 907, 0, 910, 0, 0, 0, 3550, 0, 0, 913,
5452 : 0, 0, 0, 0, 905, 0, 0, 0, 2642, 2306,
5453 : 0, 0, 0, 0, 0, 0, 908, 0, 0, 0,
5454 : 907, 907, 0, 0, 3550, 0, 0, 0, 0, 0,
5455 : 0, 908, 905, 0, 908, 908, 2643, 0, 0, 0,
5456 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5457 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5458 : 0, 0, 0, 0, 0, 908, 908, 0, 0, 0,
5459 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2373,
5460 : 0, 0, 0, 2640, 0, 914, 0, 0, 2641, 0,
5461 : 0, 0, 0, 0, 0, 2644, 0, 0, 2645, 0,
5462 : 905, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5463 : 0, 2642, 2306, 0, 6434, 0, 0, 0, 0, 0,
5464 : 0, 0, 905, 0, 0, 0, 0, 0, 0, 0,
5465 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2643,
5466 : 0, 0, 0, 0, 905, 0, 0, 0, 0, 0,
5467 : 0, 0, 2111, 3036, 0, 2112, 0, 0, 0, 2113,
5468 : 2114, 2115, 907, 0, 3047, 0, 0, 916, 0, 0,
5469 : 0, 0, 0, 0, 0, 6434, 0, 2636, 0, 0,
5470 : 3065, 0, 2373, 0, 0, 0, 910, 2637, 0, 0,
5471 : 0, 2646, 0, 0, 2638, 0, 0, 910, 2644, 0,
5472 : 6434, 2645, 0, 911, 0, 0, 0, 908, 0, 0,
5473 : 0, 0, 0, 910, 3550, 0, 0, 0, 1144, 2745,
5474 : 2639, 0, 0, 0, 0, 0, 905, 0, 0, 911,
5475 : 0, 0, 0, 0, 3139, 0, 0, 0, 0, 0,
5476 : 914, 0, 0, 0, 0, 914, 914, 0, 0, 3151,
5477 : 0, 0, 1157, 3155, 0, 0, 0, 0, 0, 0,
5478 : 0, 0, 0, 0, 0, 0, 0, 910, 0, 0,
5479 : 0, 0, 0, 0, 0, 0, 0, 0, 905, 0,
5480 : 0, 0, 910, 3174, 1157, 910, 910, 0, 0, 0,
5481 : 0, 0, 0, 0, 2646, 0, 0, 0, 2574, 0,
5482 : 0, 0, 0, 905, 0, 0, 0, 2575, 2576, 2577,
5483 : 2578, 2579, 2580, 2581, 2582, 2583, 910, 910, 0, 0,
5484 : 5568, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5485 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640,
5486 : 0, 0, 0, 0, 2641, 0, 0, 0, 0, 0,
5487 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 914,
5488 : 0, 0, 0, 0, 0, 0, 0, 2642, 2306, 0,
5489 : 0, 0, 911, 0, 0, 0, 0, 916, 0, 0,
5490 : 0, 0, 6435, 0, 0, 0, 0, 0, 0, 2599,
5491 : 0, 0, 0, 6439, 0, 2643, 0, 0, 0, 0,
5492 : 0, 2574, 0, 0, 0, 0, 0, 0, 0, 0,
5493 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
5494 : 0, 0, 914, 5578, 0, 3357, 0, 0, 0, 6465,
5495 : 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0,
5496 : 0, 0, 0, 6435, 0, 0, 0, 0, 0, 0,
5497 : 0, 0, 0, 0, 2644, 0, 0, 2645, 910, 0,
5498 : 0, 0, 0, 0, 905, 0, 0, 0, 6435, 0,
5499 : 0, 5289, 0, 0, 0, 0, 0, 0, 0, 0,
5500 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5501 : 0, 0, 0, 0, 916, 0, 0, 0, 0, 0,
5502 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5503 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5504 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5505 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 0,
5506 : 0, 0, 0, 0, 0, 0, 911, 0, 916, 0,
5507 : 2646, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5508 : 905, 0, 911, 0, 0, 0, 0, 0, 0, 0,
5509 : 916, 0, 0, 3540, 3541, 0, 0, 0, 0, 0,
5510 : 0, 0, 0, 0, 0, 0, 0, 0, 905, 0,
5511 : 0, 0, 3556, 3557, 0, 3559, 3560, 0, 0, 0,
5512 : 3563, 3564, 0, 0, 0, 0, 0, 0, 0, 0,
5513 : 0, 0, 0, 0, 0, 3575, 0, 0, 0, 3578,
5514 : 0, 0, 0, 3581, 3582, 0, 0, 3585, 3586, 0,
5515 : 0, 0, 0, 0, 3591, 0, 0, 0, 0, 0,
5516 : 0, 0, 916, 0, 0, 0, 3606, 0, 0, 0,
5517 : 0, 0, 0, 0, 0, 0, 0, 2574, 3623, 0,
5518 : 0, 0, 0, 3625, 0, 0, 2575, 2576, 2577, 2578,
5519 : 2579, 2580, 2581, 2582, 2583, 0, 913, 0, 3631, 5642,
5520 : 0, 0, 3637, 0, 0, 0, 0, 0, 0, 0,
5521 : 0, 0, 0, 0, 3648, 0, 0, 3652, 0, 3654,
5522 : 3657, 3659, 913, 0, 0, 0, 3667, 3670, 0, 0,
5523 : 0, 0, 0, 722, 0, 0, 3683, 0, 1055, 911,
5524 : 0, 0, 3693, 0, 0, 0, 3696, 0, 0, 0,
5525 : 0, 905, 0, 0, 0, 0, 0, 0, 3706, 3707,
5526 : 0, 0, 0, 3712, 0, 0, 0, 0, 0, 3721,
5527 : 3722, 0, 0, 0, 0, 0, 1056, 0, 0, 0,
5528 : 0, 0, 5514, 3731, 916, 0, 3732, 0, 0, 725,
5529 : 1057, 0, 0, 3744, 3745, 0, 0, 0, 905, 3749,
5530 : 0, 0, 1058, 905, 0, 907, 726, 0, 0, 907,
5531 : 907, 3756, 0, 0, 3759, 0, 0, 0, 0, 3762,
5532 : 0, 0, 0, 0, 1059, 3765, 3766, 0, 0, 0,
5533 : 0, 0, 0, 3774, 0, 0, 0, 3776, 0, 0,
5534 : 0, 3783, 3784, 3785, 3786, 0, 3788, 0, 1060, 0,
5535 : 908, 0, 0, 0, 908, 908, 0, 0, 0, 0,
5536 : 3814, 3815, 729, 3817, 907, 913, 0, 0, 0, 0,
5537 : 907, 730, 0, 0, 3827, 3828, 3829, 0, 0, 0,
5538 : 0, 0, 0, 0, 731, 0, 0, 0, 0, 0,
5539 : 1061, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5540 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 908,
5541 : 0, 0, 0, 0, 0, 908, 0, 1062, 907, 0,
5542 : 0, 0, 0, 916, 0, 0, 0, 0, 0, 0,
5543 : 0, 3881, 0, 0, 0, 0, 0, 0, 0, 3905,
5544 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5545 : 0, 0, 0, 0, 0, 1063, 0, 0, 3917, 0,
5546 : 0, 905, 0, 908, 914, 0, 0, 0, 0, 0,
5547 : 0, 0, 0, 0, 0, 0, 0, 735, 0, 0,
5548 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5549 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3550,
5550 : 911, 0, 0, 0, 0, 0, 0, 0, 3985, 0,
5551 : 0, 0, 0, 0, 0, 0, 2111, 0, 0, 2112,
5552 : 0, 0, 1064, 2113, 2114, 2115, 0, 3999, 913, 4001,
5553 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 913,
5554 : 0, 2636, 0, 0, 0, 0, 0, 0, 0, 738,
5555 : 0, 2637, 0, 0, 0, 913, 0, 0, 2638, 213,
5556 : 1065, 0, 0, 740, 0, 0, 0, 911, 0, 0,
5557 : 0, 0, 0, 0, 0, 0, 0, 0, 905, 0,
5558 : 0, 0, 0, 0, 2639, 0, 0, 915, 0, 0,
5559 : 1066, 0, 0, 1067, 0, 0, 0, 743, 0, 0,
5560 : 744, 910, 0, 0, 0, 910, 910, 745, 911, 0,
5561 : 746, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5562 : 0, 3550, 0, 0, 4063, 0, 0, 3596, 907, 0,
5563 : 747, 0, 905, 3604, 0, 0, 0, 0, 1068, 0,
5564 : 0, 911, 0, 0, 0, 749, 0, 0, 1069, 0,
5565 : 0, 0, 0, 751, 905, 0, 0, 0, 0, 0,
5566 : 910, 1070, 2111, 753, 0, 2112, 910, 0, 1071, 2113,
5567 : 2114, 2115, 0, 908, 0, 0, 0, 0, 0, 0,
5568 : 0, 3647, 0, 0, 0, 0, 0, 2636, 0, 0,
5569 : 0, 0, 0, 0, 0, 756, 0, 2637, 0, 0,
5570 : 0, 907, 0, 2640, 2638, 907, 0, 0, 2641, 0,
5571 : 0, 0, 913, 0, 910, 0, 0, 0, 0, 0,
5572 : 0, 0, 0, 0, 0, 0, 905, 0, 0, 0,
5573 : 2639, 2642, 2306, 0, 0, 0, 0, 0, 0, 0,
5574 : 0, 0, 0, 0, 0, 0, 908, 0, 0, 0,
5575 : 908, 0, 0, 0, 0, 0, 0, 0, 0, 2643,
5576 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5577 : 0, 0, 0, 0, 0, 0, 916, 0, 0, 0,
5578 : 0, 916, 916, 0, 0, 0, 0, 0, 0, 0,
5579 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5580 : 0, 0, 2373, 0, 0, 0, 0, 0, 907, 0,
5581 : 0, 0, 0, 0, 0, 0, 0, 0, 2644, 0,
5582 : 0, 2645, 0, 907, 0, 0, 0, 0, 907, 0,
5583 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 0,
5584 : 0, 0, 0, 0, 0, 0, 911, 0, 905, 2640,
5585 : 0, 0, 0, 908, 2641, 0, 0, 0, 907, 0,
5586 : 0, 0, 911, 0, 0, 0, 0, 0, 908, 0,
5587 : 0, 0, 0, 908, 0, 0, 0, 2642, 2306, 0,
5588 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5589 : 0, 3874, 0, 0, 5514, 916, 0, 0, 0, 0,
5590 : 0, 0, 0, 908, 0, 2643, 0, 0, 0, 0,
5591 : 0, 0, 0, 0, 2646, 0, 911, 0, 0, 0,
5592 : 0, 0, 0, 0, 910, 0, 0, 0, 0, 0,
5593 : 0, 911, 0, 0, 911, 911, 0, 0, 0, 0,
5594 : 0, 0, 0, 0, 0, 0, 0, 0, 2373, 0,
5595 : 0, 0, 0, 0, 4326, 0, 0, 0, 916, 0,
5596 : 0, 0, 0, 0, 2644, 911, 911, 2645, 0, 0,
5597 : 0, 4333, 0, 913, 0, 4333, 0, 0, 0, 0,
5598 : 4344, 4345, 4346, 0, 0, 0, 0, 905, 0, 0,
5599 : 0, 0, 0, 0, 0, 0, 0, 910, 0, 0,
5600 : 0, 910, 4358, 0, 0, 0, 0, 0, 0, 0,
5601 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5602 : 0, 2574, 0, 0, 0, 0, 4389, 4390, 4391, 4392,
5603 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
5604 : 913, 0, 0, 5675, 0, 0, 0, 0, 0, 0,
5605 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5606 : 2646, 0, 0, 905, 4413, 0, 4417, 4418, 4419, 0,
5607 : 0, 4046, 0, 0, 0, 0, 0, 0, 0, 0,
5608 : 0, 913, 0, 0, 0, 0, 4056, 0, 0, 0,
5609 : 0, 4061, 0, 0, 0, 0, 0, 0, 0, 0,
5610 : 0, 0, 0, 0, 910, 0, 0, 911, 0, 0,
5611 : 0, 0, 0, 907, 913, 0, 907, 0, 907, 910,
5612 : 0, 4087, 0, 907, 910, 0, 0, 0, 0, 0,
5613 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5614 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5615 : 0, 0, 0, 0, 910, 0, 0, 0, 908, 0,
5616 : 0, 908, 0, 908, 0, 907, 0, 2574, 908, 0,
5617 : 0, 0, 0, 907, 0, 0, 2575, 2576, 2577, 2578,
5618 : 2579, 2580, 2581, 2582, 2583, 905, 4502, 0, 0, 5677,
5619 : 0, 0, 0, 0, 0, 4508, 0, 0, 907, 0,
5620 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5621 : 908, 0, 0, 0, 0, 0, 0, 0, 908, 0,
5622 : 0, 4518, 4519, 0, 0, 0, 4520, 0, 0, 0,
5623 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5624 : 0, 0, 0, 908, 0, 0, 0, 0, 4563, 0,
5625 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5626 : 0, 0, 0, 0, 915, 0, 0, 0, 0, 0,
5627 : 0, 0, 0, 0, 0, 0, 0, 0, 907, 0,
5628 : 907, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5629 : 915, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5630 : 4600, 0, 0, 0, 0, 4606, 0, 0, 913, 0,
5631 : 0, 4612, 0, 0, 0, 0, 0, 0, 0, 913,
5632 : 0, 0, 0, 908, 0, 908, 0, 0, 0, 0,
5633 : 0, 0, 0, 0, 0, 913, 0, 0, 0, 0,
5634 : 905, 4651, 0, 0, 0, 905, 905, 0, 0, 0,
5635 : 0, 0, 0, 0, 0, 0, 0, 2111, 0, 0,
5636 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
5637 : 4666, 0, 4667, 0, 0, 0, 907, 0, 0, 0,
5638 : 0, 0, 2636, 0, 0, 0, 0, 0, 0, 913,
5639 : 0, 0, 2637, 0, 0, 0, 0, 0, 0, 2638,
5640 : 0, 0, 0, 0, 913, 0, 0, 913, 913, 910,
5641 : 0, 0, 910, 0, 910, 0, 0, 0, 0, 910,
5642 : 907, 908, 0, 0, 0, 2639, 0, 0, 4328, 0,
5643 : 0, 0, 0, 915, 0, 0, 4331, 0, 913, 913,
5644 : 0, 0, 0, 0, 0, 0, 0, 0, 907, 0,
5645 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 905,
5646 : 0, 910, 0, 0, 0, 908, 0, 0, 0, 910,
5647 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5648 : 916, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5649 : 0, 0, 0, 908, 910, 0, 0, 0, 0, 0,
5650 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5651 : 0, 0, 0, 0, 0, 0, 907, 0, 0, 0,
5652 : 0, 0, 905, 0, 0, 0, 0, 0, 0, 0,
5653 : 0, 0, 0, 0, 0, 0, 0, 0, 907, 0,
5654 : 0, 4429, 0, 4431, 2640, 0, 0, 1737, 0, 2641,
5655 : 0, 0, 0, 0, 0, 0, 2111, 0, 0, 2112,
5656 : 907, 908, 0, 2113, 2114, 2115, 0, 0, 0, 0,
5657 : 0, 0, 2642, 2306, 910, 0, 910, 0, 0, 0,
5658 : 913, 2636, 0, 908, 0, 0, 0, 0, 0, 0,
5659 : 0, 2637, 0, 0, 0, 0, 915, 0, 2638, 0,
5660 : 2643, 0, 0, 0, 0, 908, 0, 915, 0, 0,
5661 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5662 : 0, 0, 0, 915, 2639, 0, 0, 0, 0, 0,
5663 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 4492,
5664 : 0, 0, 907, 2373, 0, 0, 0, 0, 0, 0,
5665 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644,
5666 : 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0,
5667 : 0, 0, 910, 0, 0, 0, 0, 0, 0, 0,
5668 : 0, 0, 0, 4514, 0, 0, 4902, 908, 4903, 0,
5669 : 0, 0, 0, 0, 907, 0, 0, 0, 0, 0,
5670 : 0, 4910, 0, 0, 0, 0, 0, 0, 0, 0,
5671 : 0, 0, 0, 4916, 0, 0, 910, 4919, 0, 907,
5672 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 4933,
5673 : 911, 0, 0, 0, 911, 911, 0, 0, 0, 908,
5674 : 0, 0, 0, 2640, 910, 0, 0, 0, 2641, 4959,
5675 : 0, 0, 0, 0, 0, 2646, 0, 0, 0, 0,
5676 : 0, 0, 0, 0, 908, 0, 0, 4963, 0, 0,
5677 : 0, 2642, 2306, 0, 0, 4967, 0, 0, 0, 3647,
5678 : 915, 0, 0, 0, 0, 0, 0, 0, 0, 911,
5679 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 2643,
5680 : 5002, 0, 0, 0, 5006, 0, 0, 0, 0, 0,
5681 : 0, 0, 910, 0, 0, 0, 0, 0, 0, 5016,
5682 : 5017, 5018, 5019, 4657, 0, 0, 0, 0, 0, 5023,
5683 : 5024, 5025, 5026, 0, 910, 0, 0, 0, 5028, 5029,
5684 : 0, 0, 2373, 911, 5036, 5037, 0, 5039, 5040, 5041,
5685 : 5042, 5043, 5044, 5045, 0, 0, 910, 0, 2644, 0,
5686 : 0, 2645, 2574, 5054, 0, 0, 0, 5057, 5058, 5059,
5687 : 5060, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5688 : 907, 0, 0, 0, 5716, 0, 0, 0, 975, 0,
5689 : 0, 4333, 0, 0, 0, 0, 0, 975, 0, 0,
5690 : 0, 0, 0, 0, 0, 4714, 0, 0, 0, 5080,
5691 : 0, 975, 0, 0, 0, 0, 0, 0, 0, 0,
5692 : 0, 0, 0, 0, 0, 908, 0, 0, 0, 0,
5693 : 0, 0, 0, 0, 0, 0, 0, 0, 910, 0,
5694 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5695 : 0, 0, 0, 0, 2646, 0, 0, 4746, 0, 0,
5696 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5697 : 0, 0, 0, 0, 0, 0, 907, 0, 0, 0,
5698 : 0, 0, 4767, 0, 0, 0, 5162, 0, 0, 0,
5699 : 910, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5700 : 0, 0, 0, 0, 907, 0, 0, 0, 0, 0,
5701 : 0, 0, 0, 0, 0, 910, 0, 0, 0, 4333,
5702 : 0, 908, 0, 0, 0, 0, 5187, 0, 5188, 0,
5703 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5704 : 0, 915, 0, 0, 905, 0, 0, 0, 0, 908,
5705 : 0, 0, 0, 911, 0, 0, 5203, 0, 0, 0,
5706 : 0, 2574, 0, 0, 0, 0, 0, 0, 0, 0,
5707 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
5708 : 0, 0, 0, 6080, 0, 0, 0, 0, 0, 0,
5709 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5710 : 0, 0, 0, 0, 0, 0, 0, 0, 915, 0,
5711 : 0, 2111, 0, 0, 2112, 0, 0, 0, 2113, 2114,
5712 : 2115, 0, 0, 0, 0, 0, 911, 0, 0, 0,
5713 : 911, 0, 0, 0, 0, 0, 2636, 0, 0, 0,
5714 : 0, 0, 0, 0, 0, 0, 2637, 907, 0, 915,
5715 : 0, 0, 0, 2638, 0, 0, 0, 0, 2111, 0,
5716 : 0, 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0,
5717 : 0, 0, 0, 0, 0, 0, 910, 0, 0, 2639,
5718 : 0, 0, 915, 2636, 0, 0, 0, 966, 976, 0,
5719 : 0, 0, 908, 2637, 907, 966, 0, 976, 966, 907,
5720 : 2638, 0, 0, 913, 0, 0, 0, 913, 913, 0,
5721 : 0, 976, 0, 0, 0, 0, 0, 0, 0, 0,
5722 : 0, 0, 0, 0, 0, 0, 2639, 0, 0, 0,
5723 : 0, 0, 0, 911, 0, 0, 0, 0, 0, 908,
5724 : 0, 0, 0, 0, 908, 0, 0, 0, 911, 0,
5725 : 0, 0, 0, 911, 0, 0, 0, 0, 0, 0,
5726 : 0, 0, 913, 0, 0, 0, 0, 0, 913, 5349,
5727 : 5350, 5351, 910, 0, 0, 5352, 5353, 5354, 5355, 0,
5728 : 0, 0, 5357, 911, 0, 0, 0, 0, 0, 0,
5729 : 0, 0, 0, 0, 0, 0, 0, 0, 2640, 0,
5730 : 910, 0, 0, 2641, 0, 0, 0, 0, 0, 0,
5731 : 0, 0, 0, 0, 0, 0, 913, 0, 0, 0,
5732 : 0, 0, 0, 0, 0, 0, 2642, 2306, 0, 0,
5733 : 0, 0, 0, 0, 5392, 5393, 5394, 5395, 5396, 0,
5734 : 5398, 5399, 0, 0, 0, 2640, 975, 0, 0, 0,
5735 : 2641, 0, 5408, 5409, 2643, 0, 0, 907, 0, 0,
5736 : 0, 0, 0, 0, 0, 975, 0, 0, 0, 0,
5737 : 0, 975, 0, 2642, 2306, 0, 915, 0, 0, 0,
5738 : 0, 0, 0, 975, 0, 0, 5415, 915, 0, 0,
5739 : 0, 0, 0, 0, 0, 0, 0, 2373, 0, 975,
5740 : 0, 2643, 908, 915, 0, 0, 0, 0, 0, 0,
5741 : 5110, 0, 0, 2644, 975, 0, 2645, 0, 0, 0,
5742 : 0, 0, 975, 0, 0, 0, 0, 0, 0, 0,
5743 : 0, 0, 0, 0, 0, 0, 975, 0, 0, 0,
5744 : 0, 0, 0, 910, 2373, 0, 975, 0, 0, 0,
5745 : 0, 0, 0, 0, 0, 0, 0, 915, 0, 0,
5746 : 2644, 0, 0, 2645, 0, 0, 0, 0, 0, 0,
5747 : 0, 0, 915, 0, 907, 915, 915, 0, 0, 0,
5748 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 5480,
5749 : 910, 0, 0, 0, 0, 910, 0, 0, 0, 975,
5750 : 0, 0, 0, 0, 0, 0, 915, 915, 0, 2646,
5751 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 908,
5752 : 0, 0, 0, 0, 0, 0, 913, 975, 907, 0,
5753 : 0, 0, 0, 0, 0, 0, 0, 0, 911, 0,
5754 : 0, 911, 0, 911, 0, 0, 0, 0, 911, 0,
5755 : 907, 0, 975, 0, 5531, 0, 2646, 0, 0, 0,
5756 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5757 : 0, 0, 0, 908, 0, 0, 0, 0, 0, 0,
5758 : 0, 0, 0, 0, 0, 0, 5537, 0, 0, 0,
5759 : 911, 0, 0, 0, 0, 908, 0, 0, 911, 913,
5760 : 0, 0, 0, 913, 0, 0, 0, 0, 0, 0,
5761 : 0, 0, 0, 0, 975, 0, 2574, 0, 0, 0,
5762 : 0, 0, 907, 911, 0, 2575, 2576, 2577, 2578, 2579,
5763 : 2580, 2581, 2582, 2583, 0, 0, 0, 0, 6088, 0,
5764 : 0, 0, 0, 0, 0, 0, 976, 0, 915, 0,
5765 : 0, 0, 0, 910, 0, 0, 0, 0, 0, 0,
5766 : 0, 0, 0, 2574, 0, 976, 0, 908, 0, 0,
5767 : 0, 976, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
5768 : 2583, 0, 0, 976, 661, 6110, 0, 0, 0, 0,
5769 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
5770 : 0, 0, 0, 911, 0, 911, 913, 0, 0, 0,
5771 : 0, 0, 0, 966, 976, 0, 0, 0, 0, 0,
5772 : 966, 913, 976, 966, 1823, 0, 913, 0, 0, 0,
5773 : 0, 975, 0, 0, 0, 0, 976, 5348, 0, 0,
5774 : 0, 0, 0, 0, 907, 0, 976, 0, 0, 0,
5775 : 0, 0, 0, 0, 0, 5664, 913, 0, 0, 0,
5776 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5777 : 910, 0, 0, 0, 5674, 0, 0, 0, 0, 0,
5778 : 5680, 5681, 0, 0, 0, 0, 0, 0, 0, 908,
5779 : 5692, 5386, 0, 0, 0, 0, 0, 5694, 0, 976,
5780 : 0, 911, 0, 0, 0, 0, 0, 0, 0, 0,
5781 : 0, 0, 0, 5402, 0, 0, 1579, 0, 0, 0,
5782 : 0, 0, 1580, 2111, 910, 0, 2112, 976, 0, 1646,
5783 : 2113, 2114, 2115, 0, 5747, 5748, 0, 0, 0, 0,
5784 : 0, 0, 0, 0, 0, 911, 910, 5756, 2636, 5758,
5785 : 0, 1647, 976, 0, 0, 975, 0, 0, 2637, 0,
5786 : 0, 0, 0, 0, 5772, 2638, 0, 1582, 0, 0,
5787 : 0, 0, 0, 911, 0, 0, 0, 0, 0, 0,
5788 : 0, 0, 0, 907, 0, 5430, 0, 0, 0, 4333,
5789 : 0, 2639, 0, 0, 0, 0, 0, 5806, 0, 0,
5790 : 0, 0, 0, 1648, 0, 0, 0, 0, 0, 0,
5791 : 0, 0, 0, 0, 976, 0, 975, 0, 910, 0,
5792 : 0, 0, 0, 0, 1583, 0, 0, 975, 908, 0,
5793 : 0, 1584, 0, 0, 0, 1585, 0, 0, 0, 0,
5794 : 0, 911, 0, 0, 975, 0, 0, 0, 0, 975,
5795 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 907,
5796 : 0, 0, 0, 911, 1586, 0, 0, 0, 0, 0,
5797 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5798 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 5867,
5799 : 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0,
5800 : 1587, 0, 0, 5882, 908, 0, 0, 5516, 0, 0,
5801 : 2640, 913, 0, 0, 913, 2641, 913, 0, 0, 0,
5802 : 0, 913, 0, 0, 1824, 0, 0, 0, 0, 5900,
5803 : 0, 976, 0, 0, 0, 0, 0, 0, 2642, 2306,
5804 : 910, 0, 966, 0, 0, 0, 966, 0, 966, 0,
5805 : 0, 0, 0, 0, 1650, 0, 0, 0, 0, 1651,
5806 : 0, 0, 0, 913, 1652, 0, 2643, 911, 0, 0,
5807 : 0, 913, 0, 0, 0, 0, 0, 0, 0, 0,
5808 : 1653, 907, 975, 0, 1589, 0, 0, 0, 0, 0,
5809 : 975, 975, 0, 0, 0, 1590, 913, 5959, 0, 0,
5810 : 0, 0, 0, 0, 0, 1591, 0, 0, 0, 2373,
5811 : 0, 0, 0, 0, 0, 0, 1654, 1592, 0, 911,
5812 : 0, 0, 0, 0, 0, 2644, 908, 0, 2645, 0,
5813 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5814 : 0, 0, 0, 1823, 911, 0, 4492, 0, 0, 0,
5815 : 0, 0, 0, 0, 0, 976, 0, 0, 0, 1655,
5816 : 0, 0, 1594, 1595, 1656, 0, 0, 4333, 0, 0,
5817 : 0, 0, 0, 0, 0, 0, 913, 0, 913, 910,
5818 : 0, 0, 2111, 0, 0, 2112, 0, 0, 1657, 2113,
5819 : 2114, 2115, 0, 0, 1658, 0, 0, 0, 0, 0,
5820 : 0, 6039, 0, 0, 0, 0, 0, 2636, 0, 1659,
5821 : 0, 0, 0, 0, 0, 0, 976, 2637, 0, 0,
5822 : 0, 2646, 0, 0, 2638, 0, 0, 976, 0, 0,
5823 : 0, 0, 0, 0, 0, 0, 907, 0, 0, 0,
5824 : 0, 907, 907, 0, 976, 0, 0, 6070, 0, 976,
5825 : 2639, 0, 0, 0, 0, 910, 0, 979, 0, 0,
5826 : 1660, 0, 0, 0, 0, 0, 0, 1597, 0, 1013,
5827 : 0, 915, 6089, 0, 913, 915, 915, 0, 0, 0,
5828 : 1032, 908, 0, 0, 0, 0, 908, 908, 0, 0,
5829 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5830 : 0, 0, 0, 0, 0, 911, 0, 0, 0, 0,
5831 : 0, 0, 0, 0, 0, 0, 0, 0, 913, 0,
5832 : 0, 0, 0, 0, 0, 0, 0, 0, 2574, 0,
5833 : 915, 6128, 0, 0, 0, 0, 915, 2575, 2576, 2577,
5834 : 2578, 2579, 2580, 2581, 2582, 2583, 913, 0, 0, 0,
5835 : 6338, 0, 0, 0, 0, 907, 0, 0, 0, 0,
5836 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2640,
5837 : 0, 0, 0, 0, 2641, 0, 0, 910, 0, 0,
5838 : 0, 0, 976, 0, 915, 0, 0, 0, 0, 0,
5839 : 976, 976, 0, 0, 975, 0, 0, 2642, 2306, 0,
5840 : 908, 911, 0, 0, 0, 0, 0, 0, 0, 0,
5841 : 0, 0, 0, 0, 913, 0, 0, 0, 907, 0,
5842 : 0, 0, 0, 0, 0, 2643, 0, 0, 0, 911,
5843 : 0, 0, 0, 0, 0, 0, 913, 0, 0, 0,
5844 : 0, 0, 0, 1824, 0, 0, 6225, 2111, 0, 0,
5845 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 913, 0,
5846 : 0, 0, 0, 908, 0, 0, 0, 0, 2373, 0,
5847 : 0, 0, 2636, 0, 0, 6240, 0, 0, 0, 0,
5848 : 0, 0, 2637, 0, 2644, 0, 6250, 2645, 0, 2638,
5849 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2031,
5850 : 0, 0, 0, 0, 2031, 2031, 0, 0, 0, 975,
5851 : 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0,
5852 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5853 : 0, 0, 910, 0, 0, 0, 0, 910, 910, 0,
5854 : 913, 0, 0, 0, 1823, 0, 0, 953, 955, 0,
5855 : 0, 958, 0, 0, 0, 0, 0, 0, 0, 0,
5856 : 0, 0, 0, 0, 0, 0, 0, 975, 0, 0,
5857 : 0, 1016, 911, 0, 0, 975, 0, 0, 1026, 0,
5858 : 2646, 0, 0, 975, 0, 0, 0, 0, 0, 0,
5859 : 0, 0, 913, 0, 915, 0, 0, 0, 0, 0,
5860 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5861 : 0, 0, 0, 6332, 0, 0, 0, 913, 5992, 911,
5862 : 0, 0, 0, 0, 911, 0, 0, 975, 975, 0,
5863 : 0, 0, 0, 0, 2640, 0, 0, 0, 0, 2641,
5864 : 0, 975, 0, 0, 0, 0, 0, 0, 0, 0,
5865 : 0, 910, 0, 0, 975, 975, 0, 0, 0, 0,
5866 : 0, 0, 2642, 2306, 0, 0, 0, 915, 0, 0,
5867 : 0, 915, 0, 0, 0, 0, 0, 0, 0, 0,
5868 : 0, 6048, 0, 0, 0, 0, 0, 2574, 0, 0,
5869 : 2643, 0, 0, 0, 976, 0, 2575, 2576, 2577, 2578,
5870 : 2579, 2580, 2581, 2582, 2583, 0, 0, 0, 0, 6355,
5871 : 0, 0, 0, 0, 910, 1052, 0, 0, 0, 0,
5872 : 0, 1084, 0, 0, 0, 0, 0, 0, 0, 0,
5873 : 0, 0, 0, 2373, 0, 0, 0, 0, 0, 0,
5874 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2644,
5875 : 0, 0, 2645, 0, 0, 0, 0, 0, 0, 0,
5876 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5877 : 0, 0, 0, 0, 915, 0, 0, 0, 913, 0,
5878 : 0, 0, 911, 0, 0, 0, 0, 0, 0, 915,
5879 : 0, 0, 0, 0, 915, 0, 0, 0, 0, 0,
5880 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
5881 : 0, 0, 0, 0, 1823, 0, 0, 0, 0, 0,
5882 : 0, 0, 0, 0, 915, 6476, 0, 0, 0, 0,
5883 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5884 : 0, 0, 0, 0, 1824, 2646, 0, 0, 0, 0,
5885 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5886 : 0, 0, 0, 0, 0, 0, 0, 976, 0, 0,
5887 : 0, 0, 0, 0, 913, 976, 0, 0, 0, 0,
5888 : 0, 0, 0, 976, 0, 0, 0, 0, 0, 0,
5889 : 0, 0, 1393, 0, 0, 0, 0, 0, 0, 911,
5890 : 0, 0, 913, 0, 0, 0, 0, 0, 0, 0,
5891 : 0, 1416, 0, 0, 0, 0, 0, 0, 0, 0,
5892 : 0, 0, 0, 0, 966, 966, 0, 976, 976, 0,
5893 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 966,
5894 : 907, 976, 966, 0, 0, 0, 0, 0, 0, 0,
5895 : 0, 0, 2574, 911, 976, 976, 0, 0, 0, 0,
5896 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
5897 : 2111, 0, 0, 2112, 6414, 911, 0, 2113, 2114, 2115,
5898 : 0, 0, 0, 0, 0, 908, 0, 0, 0, 0,
5899 : 0, 0, 966, 0, 0, 2636, 966, 966, 0, 0,
5900 : 0, 0, 0, 0, 0, 2637, 0, 0, 0, 0,
5901 : 0, 0, 2638, 0, 0, 0, 0, 0, 0, 0,
5902 : 0, 0, 0, 1086, 0, 1089, 0, 0, 1091, 0,
5903 : 1610, 0, 0, 0, 0, 0, 0, 0, 2639, 0,
5904 : 0, 0, 1117, 2111, 0, 913, 2112, 911, 1121, 0,
5905 : 2113, 2114, 2115, 0, 0, 0, 0, 0, 0, 0,
5906 : 0, 0, 0, 0, 0, 0, 0, 0, 2636, 0,
5907 : 0, 0, 0, 0, 0, 0, 0, 0, 2637, 915,
5908 : 0, 0, 915, 0, 915, 2638, 0, 0, 0, 915,
5909 : 0, 0, 913, 0, 0, 0, 0, 913, 0, 0,
5910 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5911 : 0, 2639, 0, 0, 1824, 0, 0, 0, 0, 0,
5912 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5913 : 0, 915, 0, 0, 0, 0, 0, 0, 0, 915,
5914 : 0, 0, 0, 0, 0, 1873, 0, 0, 0, 0,
5915 : 0, 0, 0, 0, 0, 0, 0, 2640, 0, 0,
5916 : 0, 0, 2641, 0, 915, 0, 0, 0, 0, 911,
5917 : 0, 0, 0, 0, 1907, 1910, 1911, 0, 0, 0,
5918 : 0, 0, 0, 0, 0, 2642, 2306, 0, 0, 0,
5919 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5920 : 0, 0, 0, 6412, 0, 4144, 0, 0, 0, 0,
5921 : 0, 4145, 0, 2643, 0, 0, 0, 0, 0, 0,
5922 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5923 : 2640, 0, 0, 0, 0, 2641, 910, 0, 0, 0,
5924 : 0, 0, 0, 0, 915, 0, 915, 0, 0, 0,
5925 : 0, 0, 0, 0, 0, 913, 2373, 0, 2642, 2306,
5926 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5927 : 0, 0, 2644, 0, 0, 2645, 0, 0, 0, 0,
5928 : 0, 0, 0, 1393, 0, 2111, 2643, 0, 2112, 0,
5929 : 0, 0, 2113, 2114, 2115, 0, 0, 0, 0, 0,
5930 : 0, 0, 0, 0, 0, 0, 0, 0, 911, 0,
5931 : 2636, 1393, 0, 0, 3495, 0, 0, 0, 0, 0,
5932 : 2637, 0, 0, 0, 0, 0, 0, 2638, 0, 2373,
5933 : 0, 0, 0, 0, 0, 1611, 1612, 0, 0, 0,
5934 : 0, 0, 915, 0, 0, 2644, 0, 0, 2645, 0,
5935 : 0, 0, 0, 2639, 1823, 0, 0, 0, 0, 0,
5936 : 0, 0, 0, 0, 0, 0, 0, 0, 2646, 0,
5937 : 0, 0, 913, 0, 0, 0, 0, 0, 0, 0,
5938 : 0, 0, 0, 0, 911, 0, 915, 0, 0, 0,
5939 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5940 : 0, 0, 0, 0, 0, 3496, 1841, 0, 0, 975,
5941 : 0, 0, 0, 0, 915, 0, 0, 0, 0, 0,
5942 : 0, 1853, 0, 0, 0, 0, 913, 975, 0, 0,
5943 : 0, 975, 0, 0, 0, 975, 0, 0, 0, 0,
5944 : 0, 4146, 0, 0, 975, 0, 0, 0, 913, 0,
5945 : 0, 0, 1875, 1876, 0, 0, 0, 0, 0, 975,
5946 : 0, 0, 0, 0, 2630, 0, 0, 0, 0, 0,
5947 : 0, 0, 2640, 0, 0, 2574, 0, 2641, 1913, 0,
5948 : 0, 0, 915, 0, 2575, 2576, 2577, 2578, 2579, 2580,
5949 : 2581, 2582, 2583, 975, 0, 3029, 0, 0, 0, 0,
5950 : 2642, 2306, 0, 0, 915, 0, 911, 0, 0, 0,
5951 : 0, 0, 0, 975, 975, 0, 0, 0, 1951, 1953,
5952 : 913, 0, 0, 0, 0, 0, 915, 0, 2643, 0,
5953 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5954 : 0, 0, 0, 0, 2721, 0, 0, 0, 2574, 0,
5955 : 0, 1823, 975, 0, 0, 1823, 0, 2575, 2576, 2577,
5956 : 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 0, 0,
5957 : 0, 2373, 0, 0, 0, 0, 0, 0, 0, 975,
5958 : 0, 1823, 0, 0, 0, 975, 0, 2644, 0, 0,
5959 : 2645, 0, 0, 0, 0, 0, 0, 0, 0, 975,
5960 : 0, 0, 0, 0, 0, 0, 975, 0, 915, 975,
5961 : 0, 0, 0, 0, 0, 975, 0, 0, 0, 0,
5962 : 0, 0, 0, 0, 0, 0, 0, 2835, 0, 0,
5963 : 0, 0, 0, 0, 0, 975, 2865, 0, 0, 0,
5964 : 0, 975, 913, 0, 0, 0, 0, 0, 975, 0,
5965 : 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0,
5966 : 915, 911, 975, 0, 0, 0, 911, 911, 2903, 0,
5967 : 0, 0, 0, 0, 2915, 2915, 975, 0, 2915, 0,
5968 : 0, 1823, 0, 2646, 0, 915, 0, 975, 0, 0,
5969 : 0, 2933, 0, 0, 2936, 0, 0, 0, 0, 0,
5970 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
5971 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
5972 : 0, 0, 0, 0, 0, 0, 0, 976, 0, 0,
5973 : 0, 976, 0, 0, 0, 976, 0, 0, 0, 0,
5974 : 0, 0, 0, 0, 976, 0, 0, 1823, 3497, 0,
5975 : 0, 0, 2989, 0, 0, 0, 0, 0, 0, 976,
5976 : 0, 0, 0, 0, 0, 0, 3009, 0, 0, 0,
5977 : 0, 0, 0, 0, 0, 0, 966, 0, 966, 966,
5978 : 911, 913, 0, 0, 0, 0, 0, 0, 0, 0,
5979 : 2574, 0, 0, 976, 0, 0, 0, 0, 0, 2575,
5980 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
5981 : 0, 0, 0, 976, 976, 0, 0, 0, 0, 0,
5982 : 0, 0, 0, 0, 0, 0, 0, 0, 2111, 0,
5983 : 0, 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0,
5984 : 0, 0, 0, 911, 0, 0, 915, 0, 0, 0,
5985 : 0, 1824, 976, 2636, 0, 1824, 0, 913, 0, 0,
5986 : 0, 0, 0, 2637, 0, 0, 0, 0, 0, 0,
5987 : 2638, 0, 0, 0, 0, 0, 3031, 0, 0, 976,
5988 : 0, 1824, 0, 0, 0, 976, 0, 3034, 0, 0,
5989 : 0, 0, 0, 0, 0, 0, 2639, 0, 0, 976,
5990 : 0, 0, 975, 0, 1823, 0, 976, 0, 0, 976,
5991 : 0, 0, 0, 0, 2823, 976, 0, 0, 0, 0,
5992 : 0, 975, 0, 0, 0, 0, 0, 0, 975, 3078,
5993 : 2915, 0, 0, 0, 0, 976, 0, 0, 0, 2869,
5994 : 0, 976, 915, 0, 0, 0, 0, 0, 976, 0,
5995 : 0, 0, 0, 0, 3113, 0, 0, 0, 0, 0,
5996 : 0, 3126, 976, 0, 0, 0, 0, 0, 0, 0,
5997 : 915, 0, 0, 0, 0, 0, 976, 0, 0, 913,
5998 : 0, 1824, 0, 0, 0, 0, 0, 976, 0, 6175,
5999 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6000 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6001 : 0, 0, 0, 0, 0, 2640, 0, 0, 2959, 0,
6002 : 2641, 0, 0, 0, 0, 1823, 0, 0, 0, 0,
6003 : 0, 1823, 0, 0, 3187, 0, 0, 0, 0, 0,
6004 : 0, 0, 0, 2642, 2306, 0, 0, 1824, 2985, 2986,
6005 : 2987, 2988, 0, 0, 0, 0, 0, 0, 0, 0,
6006 : 0, 0, 0, 0, 0, 0, 0, 1393, 1393, 0,
6007 : 0, 2643, 0, 0, 0, 0, 0, 0, 0, 0,
6008 : 0, 0, 0, 0, 3241, 2111, 0, 3243, 2112, 0,
6009 : 0, 0, 2113, 2114, 2115, 0, 0, 0, 0, 0,
6010 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6011 : 2636, 0, 0, 915, 2373, 0, 975, 0, 0, 0,
6012 : 2637, 0, 0, 0, 0, 0, 0, 2638, 0, 0,
6013 : 2644, 0, 0, 2645, 913, 0, 0, 0, 0, 913,
6014 : 913, 0, 0, 0, 0, 0, 0, 0, 2111, 0,
6015 : 0, 2112, 0, 2639, 0, 2113, 2114, 2115, 0, 6176,
6016 : 915, 0, 0, 0, 0, 915, 0, 0, 0, 0,
6017 : 0, 0, 0, 2636, 0, 0, 4072, 0, 0, 0,
6018 : 0, 0, 0, 2637, 0, 0, 0, 0, 0, 0,
6019 : 2638, 0, 0, 0, 0, 3042, 3043, 0, 0, 0,
6020 : 0, 0, 976, 0, 1824, 0, 0, 0, 0, 0,
6021 : 0, 3060, 0, 0, 0, 0, 2639, 0, 0, 0,
6022 : 0, 976, 0, 0, 0, 0, 2646, 0, 976, 0,
6023 : 0, 0, 0, 0, 0, 966, 0, 966, 966, 0,
6024 : 0, 0, 0, 0, 0, 3103, 3104, 3105, 3106, 975,
6025 : 975, 0, 0, 913, 2111, 0, 0, 2112, 0, 0,
6026 : 0, 2113, 2114, 2115, 0, 0, 0, 0, 0, 0,
6027 : 975, 0, 2640, 975, 0, 0, 0, 2641, 0, 2636,
6028 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2637,
6029 : 0, 0, 0, 0, 0, 0, 2638, 0, 0, 0,
6030 : 2642, 2306, 0, 0, 0, 0, 0, 0, 0, 0,
6031 : 0, 0, 0, 0, 0, 0, 913, 0, 0, 0,
6032 : 0, 0, 2639, 915, 0, 1824, 3180, 0, 2643, 0,
6033 : 0, 1824, 3184, 2574, 0, 2640, 0, 0, 0, 0,
6034 : 2641, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
6035 : 2583, 0, 0, 0, 0, 1823, 1823, 1823, 0, 0,
6036 : 0, 0, 0, 2642, 2306, 911, 0, 0, 0, 0,
6037 : 0, 2373, 0, 0, 0, 0, 0, 0, 0, 0,
6038 : 975, 0, 0, 0, 0, 0, 0, 2644, 0, 0,
6039 : 2645, 2643, 0, 0, 0, 0, 0, 0, 0, 975,
6040 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6041 : 0, 0, 0, 0, 0, 0, 976, 0, 4780, 0,
6042 : 0, 975, 0, 0, 0, 0, 0, 0, 0, 0,
6043 : 0, 0, 0, 0, 2373, 0, 1579, 0, 0, 0,
6044 : 915, 2640, 1580, 0, 0, 0, 2641, 0, 0, 1646,
6045 : 2644, 0, 0, 2645, 0, 0, 0, 0, 0, 0,
6046 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2642,
6047 : 2306, 1647, 0, 0, 0, 0, 0, 0, 0, 0,
6048 : 0, 0, 0, 2646, 0, 0, 0, 1582, 0, 0,
6049 : 0, 0, 0, 0, 915, 0, 0, 2643, 0, 0,
6050 : 0, 0, 4781, 0, 0, 0, 0, 0, 0, 0,
6051 : 0, 975, 0, 0, 0, 0, 915, 0, 0, 0,
6052 : 3368, 0, 0, 1648, 0, 0, 0, 0, 0, 0,
6053 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6054 : 2373, 0, 0, 0, 1583, 0, 2646, 0, 0, 976,
6055 : 976, 1584, 0, 0, 0, 1585, 2644, 0, 1823, 2645,
6056 : 0, 0, 0, 0, 975, 0, 975, 0, 0, 0,
6057 : 976, 0, 0, 976, 0, 0, 0, 0, 0, 975,
6058 : 0, 975, 0, 0, 1586, 0, 0, 0, 915, 0,
6059 : 2574, 0, 0, 0, 0, 0, 0, 0, 0, 2575,
6060 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6061 : 0, 0, 0, 0, 0, 0, 1649, 0, 0, 0,
6062 : 1587, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6063 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6064 : 0, 0, 0, 0, 3426, 0, 0, 0, 975, 0,
6065 : 0, 0, 2646, 2574, 3431, 1824, 1824, 1824, 0, 0,
6066 : 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
6067 : 2583, 0, 0, 0, 1650, 0, 0, 0, 0, 1651,
6068 : 976, 0, 0, 0, 1652, 0, 0, 0, 0, 0,
6069 : 975, 0, 0, 0, 0, 0, 0, 0, 0, 976,
6070 : 1653, 0, 0, 0, 1589, 0, 0, 0, 0, 975,
6071 : 915, 0, 0, 975, 0, 1590, 0, 0, 0, 0,
6072 : 0, 976, 0, 0, 0, 1591, 0, 0, 0, 0,
6073 : 0, 0, 0, 0, 975, 0, 1654, 1592, 0, 0,
6074 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6075 : 0, 0, 0, 0, 0, 0, 0, 0, 4081, 2574,
6076 : 0, 0, 0, 0, 1393, 0, 0, 0, 2575, 2576,
6077 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0, 3750,
6078 : 0, 0, 1594, 1595, 1656, 2111, 0, 0, 2112, 0,
6079 : 0, 0, 2113, 2114, 2115, 0, 0, 0, 0, 0,
6080 : 0, 0, 0, 0, 0, 0, 0, 0, 1657, 0,
6081 : 2636, 976, 0, 0, 3751, 0, 0, 0, 0, 0,
6082 : 2637, 0, 0, 0, 0, 0, 0, 2638, 0, 1659,
6083 : 0, 0, 0, 0, 0, 0, 0, 0, 913, 0,
6084 : 0, 0, 1823, 0, 0, 0, 0, 0, 0, 915,
6085 : 0, 0, 0, 2639, 0, 0, 0, -136, 1824, 0,
6086 : 0, 0, 0, 0, 976, 0, 976, 0, 0, 0,
6087 : 0, 0, 0, 0, 0, 0, 0, 1, 0, 976,
6088 : 1660, 976, 0, 0, 0, 0, 0, 1597, 2, 0,
6089 : 3, 4, 0, 0, 0, 0, 0, 0, 0, 0,
6090 : 0, 3651, 0, 0, 0, 0, 0, 0, 5, 0,
6091 : 0, 0, 0, 0, 0, 0, 3673, 0, 6, 0,
6092 : 0, 0, 0, 0, 0, 915, 0, 0, 0, 0,
6093 : 7, 0, 8, 9, 0, 0, 0, 0, 3701, 10,
6094 : 0, 11, 0, 0, 0, 0, 0, 0, 976, 0,
6095 : 0, 0, 0, 0, 12, 0, 13, 0, 0, 0,
6096 : 0, 2111, 0, 0, 2112, 0, 0, 0, 2113, 2114,
6097 : 2115, 0, 2640, 14, 0, 0, 15, 2641, 0, 0,
6098 : 0, 0, 0, 0, 0, 0, 2636, 0, 3368, 4149,
6099 : 976, 16, 0, 17, 0, 0, 2637, 18, 0, 0,
6100 : 2642, 2306, 0, 2638, 19, 0, 0, 0, 0, 976,
6101 : 0, 0, 0, 976, 20, 0, 21, 975, 0, 0,
6102 : 0, 0, 0, 22, 3781, 3782, 0, 0, 2643, 2639,
6103 : 0, 0, 0, 0, 976, 0, 0, 0, 0, 0,
6104 : 0, 23, 0, 0, 0, 0, 0, 915, 0, 0,
6105 : 0, 0, 0, 0, 0, 0, 0, 0, 24, 0,
6106 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6107 : 0, 2373, 0, 0, 0, 1368, 1368, 0, 0, 0,
6108 : 0, 1823, 0, 0, 0, 0, 1823, 2644, 1823, 0,
6109 : 2645, 0, 0, 0, 0, 0, 0, 0, 0, 2111,
6110 : 0, 0, 2112, 0, 0, 0, 2113, 2114, 2115, 0,
6111 : 0, 4117, 25, 26, 1823, 0, 0, 0, 27, 0,
6112 : 0, 0, 0, 0, 2636, 0, 3907, 0, 0, 0,
6113 : 0, 0, 0, 28, 2637, 0, 0, 0, 0, 0,
6114 : 0, 2638, 1824, 0, 0, 0, 0, 0, 2640, 0,
6115 : 3605, 0, 29, 2641, 0, 1368, 0, 0, 0, 0,
6116 : 975, 0, 0, 975, 0, 0, 0, 2639, 0, 0,
6117 : 0, 0, 0, 0, 0, 0, 2642, 2306, 0, 0,
6118 : 0, 0, 0, 2646, 0, 0, 0, 0, 0, 0,
6119 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6120 : 0, 30, 915, 0, 2643, 0, 0, 915, 915, 0,
6121 : 0, 0, 0, 0, 0, 0, 31, 0, 0, 0,
6122 : 0, 32, 33, 0, 34, 0, 0, 0, 0, 35,
6123 : 0, 0, 0, 0, 0, 36, 0, 0, 37, 0,
6124 : 0, 0, 0, 0, 0, 38, 0, 2373, 0, 0,
6125 : 0, 0, 39, 40, 975, 975, 0, 0, 0, 0,
6126 : 41, 0, 0, 2644, 42, 975, 2645, 4154, 0, 0,
6127 : 0, 0, 0, 0, 0, 43, 1734, 1738, 0, 0,
6128 : 0, 0, 975, 0, 0, 0, 2640, 0, 0, 0,
6129 : 2574, 2641, 44, 0, 0, 3755, 0, 0, 3758, 2575,
6130 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6131 : 0, 0, 0, 45, 2642, 2306, 0, 976, 0, 0,
6132 : 0, 915, 0, 0, 0, 46, 0, 0, 0, 0,
6133 : 0, 47, 0, 0, 0, 0, 48, 0, 0, 0,
6134 : 0, 0, 2643, 0, 0, 0, 0, 0, 2111, 0,
6135 : 49, 2112, 0, 0, 0, 2113, 2114, 2115, 0, 2646,
6136 : 0, 0, 0, 975, 0, 0, 1823, 0, 0, 0,
6137 : 0, 2585, 0, 2636, 50, 0, 51, 52, 53, 54,
6138 : 55, 1824, 0, 2637, 915, 2373, 1824, 3853, 1824, 0,
6139 : 2638, 0, 0, 56, 0, 0, -136, 0, 0, 0,
6140 : 3866, 2644, 0, 0, 2645, 0, 0, 0, 3875, 0,
6141 : 0, 0, 0, 0, 1824, 0, 2639, 0, 0, 0,
6142 : 0, 0, 0, 0, 0, 0, 2585, 0, 0, 0,
6143 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6144 : 0, 0, 0, 0, 0, 0, 0, 3919, 0, 0,
6145 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6146 : 976, 0, 0, 976, 0, 0, 2574, 0, 3943, 0,
6147 : 4215, 0, 0, 0, 0, 2575, 2576, 2577, 2578, 2579,
6148 : 2580, 2581, 2582, 2583, 0, 0, 0, 0, 0, 0,
6149 : 0, 2111, 0, 0, 2112, 0, 0, 2646, 2113, 2114,
6150 : 2115, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6151 : 0, 3998, 0, 4000, 0, 2055, 2636, 0, 0, 4161,
6152 : 0, 0, 0, 0, 0, 0, 2637, 0, 0, 0,
6153 : 0, 0, 0, 2638, 0, 2640, 0, 0, 0, 0,
6154 : 2641, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6155 : 0, 0, 0, 0, 976, 976, 0, 2081, 0, 2639,
6156 : 0, 0, 0, 2642, 2306, 976, 0, 0, 0, 0,
6157 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6158 : 0, 0, 976, 0, 0, 0, 2100, 2101, 2102, 0,
6159 : 2104, 2643, 0, 0, 0, 0, 0, 0, 975, 0,
6160 : 0, 4055, 0, 0, 2574, 0, 0, 0, 4062, 0,
6161 : 0, 2592, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
6162 : 2582, 2583, 0, 0, 0, 0, 0, 0, 0, 2111,
6163 : 0, 0, 2112, 0, 2373, 0, 2113, 2114, 2115, 0,
6164 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6165 : 2644, 0, 0, 2645, 2636, 0, 975, 4787, 0, 0,
6166 : 0, 0, 0, 976, 2637, 0, 1824, 0, 975, 0,
6167 : 0, 2638, 0, 0, 0, 0, 0, 0, 2640, 0,
6168 : 0, 0, 0, 2641, 0, 0, 0, 0, 0, 0,
6169 : 0, 0, 0, 0, 0, 0, 0, 2639, 0, 0,
6170 : 0, 0, 975, 0, 0, 0, 2642, 2306, 0, 0,
6171 : 0, 0, 0, 0, 2688, 0, 0, 2111, 2700, 2705,
6172 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
6173 : 0, 0, 0, 0, 2643, 0, 0, 2585, 0, 0,
6174 : 0, 2585, 2636, 0, 0, 0, 2646, 0, 0, 0,
6175 : 0, 0, 2637, 0, 0, 0, 0, 0, 0, 2638,
6176 : 0, 0, 0, 0, 0, 4435, 0, 0, 0, 0,
6177 : 0, 0, 0, 0, 0, 2915, 0, 2373, 0, 0,
6178 : 0, 1823, 4711, 0, 0, 2639, 0, 0, 0, 0,
6179 : 0, 0, 0, 2644, 0, 0, 2645, 0, 0, 0,
6180 : 975, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6181 : 0, 0, 0, 0, 0, 0, 2640, 0, 0, 0,
6182 : 0, 2641, 0, 0, 0, 0, 0, 0, 0, 0,
6183 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6184 : 0, 0, 0, 0, 2642, 2306, 0, 0, 0, 0,
6185 : 0, 0, 0, 2574, 0, 0, 0, 0, 0, 0,
6186 : 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582,
6187 : 2583, 0, 2643, 0, 0, 2111, 0, 0, 2112, 0,
6188 : 0, 0, 2113, 2114, 2115, 0, 975, 0, 0, 2646,
6189 : 0, 0, 0, 0, 0, 0, 0, 0, 976, 0,
6190 : 2636, 0, 0, 0, 2640, 0, 915, 0, 0, 2641,
6191 : 2637, 0, 0, 0, 0, 2373, 0, 2638, 0, 0,
6192 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6193 : 0, 2644, 2642, 2306, 2645, 0, 0, 0, 4567, 4568,
6194 : 4569, 0, 0, 2639, 0, 0, 0, 4329, 4330, 0,
6195 : 0, 0, 0, 0, 0, 4578, 976, 0, 0, 0,
6196 : 2643, 0, 0, 1734, 1734, 1734, 0, 0, 976, 0,
6197 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6198 : 0, 0, 0, 0, 0, 0, 0, 0, 4603, 4605,
6199 : 0, 0, 0, 4610, 0, 0, 2574, 0, 0, 0,
6200 : 0, 0, 976, 2373, 0, 2575, 2576, 2577, 2578, 2579,
6201 : 2580, 2581, 2582, 2583, 0, 0, 0, 0, 975, 2644,
6202 : 975, 0, 2645, 0, 0, 0, 2111, 2646, 0, 2112,
6203 : 0, 0, 0, 2113, 2114, 2115, 0, 0, 0, 5231,
6204 : 0, 0, 0, 5241, 0, 0, 0, 0, 0, 0,
6205 : 0, 2636, 0, 0, 0, 0, 0, 0, 2585, 0,
6206 : 0, 2637, 2640, 0, 0, 0, 0, 2641, 2638, 0,
6207 : 0, 975, 0, 0, 0, 0, 0, 0, 0, 0,
6208 : 0, 1824, 0, 0, 2585, 0, 0, 0, 3325, 0,
6209 : 2642, 2306, 0, 0, 2639, 0, 0, 0, 0, 1393,
6210 : 976, 0, 0, 2585, 2585, 2585, 0, 2585, 0, 0,
6211 : 0, 0, 0, 0, 0, 2646, 0, 0, 2643, 0,
6212 : 0, 1823, 0, 0, 0, 0, 0, 0, 0, 2111,
6213 : 0, 0, 2112, 0, 2574, 0, 2113, 2114, 2115, 0,
6214 : 0, 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
6215 : 2582, 2583, 0, 0, 2636, 0, 0, 0, 0, 0,
6216 : 0, 2373, 0, 0, 2637, 0, 0, 0, 0, 0,
6217 : 0, 2638, 0, 0, 0, 0, 0, 2644, 0, 0,
6218 : 2645, 0, 0, 0, 0, 0, 976, 0, 0, 0,
6219 : 0, 0, 0, 0, 5247, 0, 0, 2639, 0, 0,
6220 : 0, 4515, 0, 0, 0, 0, 0, 0, 0, 0,
6221 : 0, 0, 0, 2640, 0, 0, 0, 0, 2641, 0,
6222 : 0, 0, 2574, 0, 0, 0, 0, 0, 0, 0,
6223 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
6224 : 0, 2642, 2306, 0, 0, 0, 0, 0, 0, 0,
6225 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6226 : 0, 0, 0, 0, 0, 4819, 4820, 4821, 0, 2643,
6227 : 0, 0, 0, 2646, 0, 0, 0, 0, 0, 0,
6228 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6229 : 0, 5248, 3269, 0, 0, 0, 0, 0, 0, 0,
6230 : 0, 3286, 3286, 3286, 3286, 3296, 3302, 3286, 3305, 3286,
6231 : 3286, 0, 2373, 0, 0, 3312, 2640, 3313, 976, 3315,
6232 : 976, 2641, 3329, 3332, 3337, 0, 0, 0, 2644, 0,
6233 : 3346, 2645, 0, 3351, 0, 0, 0, 0, 0, 0,
6234 : 0, 0, 0, 0, 2642, 2306, 0, 0, 3358, 3359,
6235 : 3360, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6236 : 0, 4669, 0, 0, 0, 975, 3361, 0, 0, 0,
6237 : 0, 976, 2643, 0, 0, 0, 0, 0, 0, 975,
6238 : 2574, 966, 0, 0, 0, 0, 0, 0, 0, 2575,
6239 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6240 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6241 : 0, 1823, 0, 0, 0, 2373, 0, 0, 0, 0,
6242 : 0, 1824, 0, 0, 2646, 0, 966, 0, 0, 0,
6243 : 0, 2644, 0, 0, 2645, 0, 0, 2111, 0, 0,
6244 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
6245 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6246 : 0, 0, 2636, 0, 0, 0, 0, 0, 0, 0,
6247 : 0, 0, 2637, 0, 0, 0, 0, 0, 0, 2638,
6248 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6249 : 1823, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6250 : 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0,
6251 : 0, 0, 0, 0, 3369, 0, 0, 0, 0, 0,
6252 : 0, 0, 0, 0, 0, 0, 1823, 2646, 0, 0,
6253 : 0, 2574, 0, 0, 0, 0, 0, 0, 0, 0,
6254 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
6255 : 0, 2111, 0, 0, 2112, 0, 0, 0, 2113, 2114,
6256 : 2115, 0, 0, 0, 0, 0, 0, 0, 3388, 0,
6257 : 0, 0, 0, 0, 0, 0, 2636, 0, 5249, 0,
6258 : 0, 0, 0, 0, 0, 0, 2637, 0, 0, 0,
6259 : 0, 0, 0, 2638, 0, 2585, 0, 0, 0, 0,
6260 : 0, 0, 1823, 5091, 0, 975, 0, 0, 0, 0,
6261 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 2639,
6262 : 0, 0, 0, 0, 2640, 3390, 0, 0, 0, 2641,
6263 : 0, 0, 0, 0, 2574, 5123, 0, 0, 0, 0,
6264 : 0, 0, 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581,
6265 : 2582, 2583, 2642, 2306, 0, 0, 0, 0, 0, 0,
6266 : 0, 0, 0, 0, 0, 976, 0, 3126, 0, 0,
6267 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 976,
6268 : 2643, 0, 0, 0, 0, 2111, 0, 0, 2112, 0,
6269 : 0, 2585, 2113, 2114, 2115, 0, 0, 0, 0, 0,
6270 : 0, 0, 5181, 2585, 0, 0, 0, 0, 2585, 0,
6271 : 2636, 1824, 0, 0, 0, 0, 0, 0, 0, 3187,
6272 : 2637, 0, 0, 2373, 0, 0, 0, 2638, 0, 0,
6273 : 0, 0, 0, 0, 0, 0, 0, 0, 2640, 2644,
6274 : 0, 0, 2645, 2641, 0, 0, 0, 0, 0, 0,
6275 : 975, 0, 0, 2639, 0, 0, 0, 0, 0, 0,
6276 : 0, 0, 0, 0, 0, 0, 2642, 2306, 0, 0,
6277 : 0, 0, 0, 0, 975, 0, 0, 0, 0, 0,
6278 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6279 : 1824, 0, 0, 0, 2643, 0, 0, 0, 0, 0,
6280 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6281 : 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 0,
6282 : 3406, 0, 0, 0, 0, 0, 1824, 0, 0, 0,
6283 : 0, 1368, 0, 1734, 0, 2646, 0, 2373, 0, 0,
6284 : 0, 0, 0, 0, 0, 0, 0, 5820, 0, 0,
6285 : 0, 0, 0, 2644, 0, 0, 2645, 0, 0, 0,
6286 : 0, 0, 0, 0, 5284, 5285, 5286, 5287, 0, 0,
6287 : 0, 3361, 2640, 0, 0, 3369, 0, 2641, 3388, 5077,
6288 : 3390, 0, 0, 3443, 0, 0, 0, 0, 0, 0,
6289 : 0, 0, 0, 5079, 0, 0, 0, 0, 0, 0,
6290 : 2642, 2306, 1824, 0, 0, 976, 0, 0, 0, 0,
6291 : 0, 0, 0, 0, 975, 0, 0, 0, 0, 0,
6292 : 0, 0, 0, 0, 0, 0, 0, 0, 2643, 0,
6293 : 0, 0, 0, 0, 0, 0, 2101, 2102, 0, 0,
6294 : 0, 0, 2574, 0, 0, 0, 0, 0, 0, 2646,
6295 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
6296 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6297 : 0, 2373, 0, 0, 0, 0, 2111, 0, 0, 2112,
6298 : 0, 0, 0, 2113, 2114, 2115, 0, 2644, 0, 0,
6299 : 2645, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6300 : 0, 2636, 0, 0, 5837, 0, 0, 0, 0, 0,
6301 : 0, 2637, 0, 0, 0, 0, 3583, 0, 2638, 0,
6302 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6303 : 5629, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6304 : 0, 0, 0, 0, 2639, 0, 0, 0, 0, 0,
6305 : 976, 0, 0, 0, 0, 0, 2574, 0, 0, 0,
6306 : 0, 0, 0, 0, 966, 2575, 2576, 2577, 2578, 2579,
6307 : 2580, 2581, 2582, 2583, 976, 0, 0, 0, 1823, 0,
6308 : 0, 0, 0, 2646, 0, 0, 0, 2111, 0, 0,
6309 : 2112, 0, 0, 0, 2113, 2114, 2115, 0, 0, 0,
6310 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6311 : 0, 0, 2636, 0, 0, 0, 0, 0, 0, 0,
6312 : 0, 0, 2637, 0, 0, 0, 0, 0, 0, 2638,
6313 : 0, 0, 0, 966, 966, 0, 0, 0, 0, 1823,
6314 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6315 : 0, 0, 0, 0, 0, 2639, 0, 0, 0, 0,
6316 : 0, 0, 0, 2640, 1823, 0, 0, 0, 2641, 0,
6317 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6318 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6319 : 2574, 2642, 2306, 0, 0, 0, 0, 0, 0, 2575,
6320 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0, 0,
6321 : 0, 0, 0, 0, 976, 0, 5509, 0, 0, 2643,
6322 : 0, 0, 0, 0, 0, 0, 0, 5519, 0, 0,
6323 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6324 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6325 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3839,
6326 : 3840, 1734, 2373, 0, 0, 3844, 0, 0, 0, 0,
6327 : 0, 0, 2585, 0, 2640, 0, 0, 0, 2644, 2641,
6328 : 0, 2645, 0, 0, 0, 0, 0, 0, 0, 2585,
6329 : 0, 0, 3873, 0, 0, 0, 0, 0, 0, 2585,
6330 : 0, 0, 2642, 2306, 0, 2585, 0, 0, 2585, 0,
6331 : 0, 0, 0, 0, 0, 2585, 2585, 0, 2585, 0,
6332 : 0, 0, 0, 3325, 3325, 0, 4140, 0, 3325, 0,
6333 : 2643, 0, 2585, 0, 0, 2585, 0, 0, 0, 0,
6334 : 2585, 0, 0, 0, 0, 0, 0, 0, 0, 2585,
6335 : 0, 0, 0, 0, 2585, 0, 0, 0, 0, 0,
6336 : 0, 2585, 2585, 2585, 2585, 0, 0, 0, 0, 3325,
6337 : 3325, 0, 2585, 2373, 2646, 0, 0, 0, 1824, 0,
6338 : 0, 5423, 0, 0, 0, 0, 0, 0, 0, 2644,
6339 : 0, 2585, 2645, 2585, 0, 0, 5427, 0, 0, 0,
6340 : 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585, 2585,
6341 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6342 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6343 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1824,
6344 : 0, 0, 0, 0, 0, 0, 2585, 0, 0, 0,
6345 : 0, 0, 966, 966, 0, 0, 0, 0, 0, 0,
6346 : 0, 0, 0, 0, 1824, 0, 0, 0, 0, 0,
6347 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6348 : 0, 2574, 0, 0, 0, 2646, 0, 0, 5487, 0,
6349 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 0,
6350 : 0, 4068, 0, 0, 0, 0, 4074, 0, 0, 0,
6351 : 0, 0, 0, 5731, 0, 0, 0, 0, 1393, 0,
6352 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6353 : 0, 0, 0, 0, 0, 1, 0, 5761, 0, 0,
6354 : 0, 0, 0, 0, 0, 0, 2, 0, 3, 4,
6355 : 0, 0, 0, 0, 0, 0, 0, 2104, 0, 0,
6356 : 0, 0, 0, 0, 0, 0, 0, 0, 3337, 0,
6357 : 3337, 3337, 0, 0, 0, 0, 6, 0, 0, 0,
6358 : 0, 0, 0, 0, 4164, 0, 2585, 4167, 7, 4169,
6359 : 8, 9, 2574, 0, 0, 0, 0, 10, 0, 11,
6360 : 0, 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583,
6361 : 0, 0, 12, 0, 13, 0, 0, 0, 0, 0,
6362 : 0, 0, 0, 673, 0, 0, 4194, 0, 4197, 0,
6363 : 4199, 14, 0, 0, 15, 0, 0, 0, 0, 0,
6364 : 0, 674, 0, 0, 0, 0, 0, 0, 0, 16,
6365 : 0, 17, 0, 0, 0, 18, 0, 0, 0, 0,
6366 : 0, 0, 5786, 0, 0, 0, 675, 0, 0, 0,
6367 : 0, 0, 20, 0, 21, 0, 0, 0, 0, 676,
6368 : 0, 22, 0, 0, 0, 0, 0, 0, 0, 0,
6369 : 0, 0, 0, 0, 0, 0, -899, 0, 0, 23,
6370 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6371 : 0, 0, 0, 5648, 677, 5650, 24, 0, 0, 0,
6372 : 678, 0, 0, 0, 4269, 0, 0, 0, 0, 2688,
6373 : 0, 0, 0, 0, 0, 0, 0, 0, 679, 0,
6374 : 0, 0, 0, 0, 2705, 0, 0, 0, 0, 0,
6375 : 0, 0, 680, 0, 0, 0, 0, 0, 0, 0,
6376 : 0, 681, 0, 0, 0, 0, 0, 0, 0, 0,
6377 : 25, 26, 0, 0, 682, 0, 27, 0, 0, 0,
6378 : 0, 0, 0, 683, 0, 0, 0, 684, 0, 0,
6379 : 0, 28, 0, 0, 0, 0, 0, 0, 0, 0,
6380 : 0, 5966, 0, 0, 0, 0, 0, -1104, 0, 4319,
6381 : 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6382 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 5988,
6383 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6384 : 0, 0, 2585, 2585, 0, 0, 0, 2585, 0, 0,
6385 : 0, 0, 0, 0, 0, 5777, 0, 685, 0, 30,
6386 : 0, 0, 0, 0, 0, 0, 0, -630, 0, 4354,
6387 : 0, 0, 0, 0, 31, 0, 2585, 0, 0, 32,
6388 : 33, 0, 34, 0, 0, 0, 0, 35, 0, 0,
6389 : 4641, 0, 0, 36, 0, 0, 37, 0, 0, 0,
6390 : 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
6391 : 39, 40, 686, 0, 0, 687, 0, 0, 41, 0,
6392 : 0, 0, 42, 0, 0, 0, 0, 0, 0, 0,
6393 : 0, 0, 0, 43, 0, 0, 0, 0, 0, 688,
6394 : 6076, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6395 : 44, 0, 0, 689, 0, 0, 0, 0, 0, 0,
6396 : -468, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6397 : 0, 45, 0, 0, 0, 0, 0, 0, 0, 0,
6398 : 690, 0, 0, 46, 0, 0, 0, 0, 0, 47,
6399 : 691, 0, 0, 0, 48, 0, 0, -468, 0, 0,
6400 : 692, 0, 0, 0, 0, 0, 0, 0, 49, 0,
6401 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6402 : 693, 0, 0, 0, 0, 0, 0, 0, 694, 0,
6403 : 0, 0, 50, 0, 0, -468, 0, 5915, 695, 5917,
6404 : 696, 0, 697, 698, 0, 0, 0, 0, 0, 0,
6405 : 0, 56, 0, 0, -136, 0, 0, 0, 699, 0,
6406 : 0, 0, 0, 0, 0, 0, 700, 0, 0, 701,
6407 : 1734, 2585, 702, 0, 0, 0, 1734, 2585, 0, 0,
6408 : 0, 0, 0, 0, 0, -468, 0, 0, 0, 0,
6409 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6410 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6411 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6412 : 0, 0, 0, 0, 4140, 4140, 0, 0, 3325, 3325,
6413 : 3325, 3325, 0, 0, 3325, 3325, 3325, 3325, 3325, 3325,
6414 : 3325, 3325, 3325, 3325, 4140, 0, 0, 0, 0, 0,
6415 : 0, 722, 0, 0, 0, 4590, 2792, 0, 0, 0,
6416 : 0, 0, 0, 0, 0, 0, 0, 2585, 0, 0,
6417 : 2585, 0, 2585, 0, 0, 4140, 4140, 0, 0, 0,
6418 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6419 : 0, 0, 0, 0, 2793, 0, 0, 2585, 3325, 3325,
6420 : 2585, 0, 2585, 0, 0, 0, 0, 725, 0, 0,
6421 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6422 : 0, 0, 0, 0, 726, 0, 0, 0, 0, 0,
6423 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6424 : 0, 0, 1059, 0, 0, 0, 0, 0, 0, 0,
6425 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6426 : 0, 0, 0, 0, 0, 0, 2794, 0, 0, 0,
6427 : 0, 0, 2585, 0, 0, 0, 0, 0, 0, 0,
6428 : 729, 0, 0, 0, 0, 0, 0, 0, 0, 730,
6429 : 0, 0, 0, 0, 0, 0, 0, 197, 0, 0,
6430 : 0, 0, 731, 0, 4712, 0, 0, 0, 2795, 0,
6431 : 0, 6124, 0, 4716, 0, 0, 0, 0, 0, 0,
6432 : 0, 0, 2585, 0, 0, 0, 0, 3286, 0, 0,
6433 : 0, 4729, 3286, 3286, 0, 1062, 0, 0, 3302, 0,
6434 : 0, 4737, 0, 0, 4739, 0, 0, 0, 198, 0,
6435 : 4741, 0, 4742, 0, 0, 0, 0, 2585, 0, 0,
6436 : 0, 0, 0, 0, 0, 199, 0, 0, 0, 0,
6437 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 4764,
6438 : 4765, 4766, 0, 200, 0, 0, 0, 0, 0, 201,
6439 : 0, 0, 0, 0, 0, 735, 0, 0, 3346, 0,
6440 : 0, 0, 0, 0, 0, 0, 4790, 202, 0, 4793,
6441 : 0, 4795, 0, 0, 0, 0, 0, 0, 0, 0,
6442 : 0, 203, 0, 0, 0, 0, 0, 4799, 0, 0,
6443 : 204, 0, 0, 0, 0, 4806, 4807, 0, 0, 0,
6444 : 2796, 0, 4812, 205, 6231, 0, 0, 0, 0, 206,
6445 : 0, 0, 0, 0, 0, 0, 207, 0, 0, 0,
6446 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6447 : 0, 3286, 0, 0, 0, 0, 208, 213, 2797, 0,
6448 : 0, 740, 0, 0, 0, 0, 0, 0, 0, 0,
6449 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6450 : 0, 0, 0, 0, 0, 0, 0, 0, 1066, 0,
6451 : 0, 2798, 0, 0, 209, 0, 0, 0, 744, 0,
6452 : 0, 0, 4866, 0, 0, 745, 0, 0, 746, 0,
6453 : 0, 0, 0, 0, 0, 0, 210, 0, 0, 4880,
6454 : 0, 0, 0, 0, 0, 0, 0, 0, 747, 3325,
6455 : 0, 0, 0, 0, 0, 0, 1068, 0, 0, 0,
6456 : 0, 0, 0, 749, 0, 0, 1069, 0, 0, 0,
6457 : 0, 751, 0, 0, 0, 0, 6326, 0, 0, 2799,
6458 : 0, 211, 0, 0, 0, 0, 2800, 0, 0, 0,
6459 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6460 : 0, 0, 0, 0, 0, 0, 0, 0, 212, 1117,
6461 : 1117, 0, 0, 756, 0, 0, 0, 0, 213, 214,
6462 : 0, 0, 215, 0, 0, 0, 0, 0, 0, 0,
6463 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6464 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 216,
6465 : 0, 0, 217, 0, 0, 0, 218, 0, 0, 219,
6466 : 0, 0, 0, 0, 0, 0, 220, 0, 0, 221,
6467 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6468 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 222,
6469 : 0, 0, 0, 0, 0, 0, 0, 223, 0, 0,
6470 : 0, 0, 224, 0, 225, 0, 0, 226, 0, 0,
6471 : 0, 0, 227, 0, 0, 2585, 0, 0, 0, 2585,
6472 : 0, 0, 228, 0, 0, 0, 0, 229, 0, 0,
6473 : 0, 0, 2585, 0, 0, 0, 1117, 0, 0, 0,
6474 : 2585, 230, 2585, 0, 2585, 2585, 0, 0, 0, 0,
6475 : 4140, 4140, 4140, 4140, 231, 0, 0, 4140, 4140, 4140,
6476 : 4140, 4140, 4140, 4140, 4140, 4140, 4140, 2585, 2585, 2585,
6477 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6478 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6479 : 0, 0, 0, 2585, 0, 0, 2585, 0, 2585, 0,
6480 : 0, 0, 2585, 0, 0, 4140, 4140, 0, 0, 2585,
6481 : 2585, 0, 0, 0, 0, 2585, 0, 0, 0, 0,
6482 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6483 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6484 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6485 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6486 : 0, 0, 0, 0, 0, 5169, 5170, 0, 0, 2585,
6487 : 0, 0, 0, 0, 0, 0, 5177, 0, 0, 0,
6488 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6489 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6490 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6491 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6492 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6493 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6494 : 0, 0, 0, 0, 0, 0, 5220, 0, 0, 0,
6495 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6496 : 0, 0, 2688, 0, 0, 0, 0, 0, 0, 0,
6497 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6498 : 5243, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6499 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6500 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6501 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 5262,
6502 : 5264, 0, 0, 0, 0, 0, 5268, 5269, 0, 0,
6503 : 0, 5270, 0, 0, 0, 0, 5271, 0, 0, 5274,
6504 : 5275, 0, 0, 0, 0, 0, 5280, 0, 0, 0,
6505 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6506 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6507 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6508 : 0, 0, 0, 0, 4140, 0, 0, 0, 0, 0,
6509 : 0, 5315, 0, 0, 0, 0, 0, 0, 0, 0,
6510 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6511 : 5330, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6512 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6513 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6514 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6515 : 0, 0, 0, 0, 0, 0, 0, 5360, 0, 0,
6516 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6517 : 0, 0, 2585, 2585, 0, 0, 0, 0, 0, 0,
6518 : 2585, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6519 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6520 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6521 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6522 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6523 : 0, 0, 0, 0, 0, 0, 0, 0, 5411, 0,
6524 : 0, 0, 0, 0, 0, 5413, 2585, 3325, 0, 0,
6525 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6526 : 0, 0, 0, 0, 0, 2585, 0, 2585, 0, 0,
6527 : 0, 2585, 2585, 2585, 2585, 0, 0, 2585, 2585, 0,
6528 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6529 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6530 : 3325, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6531 : 0, 0, 0, 5448, 0, 0, 0, 0, 2585, 0,
6532 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6533 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6534 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6535 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6536 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6537 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6538 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6539 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6540 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6541 : 0, 0, 0, 0, 2585, 0, 2585, 0, 0, 0,
6542 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6543 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6544 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6545 : 0, 2585, 0, 0, 0, 0, 0, 0, 0, 0,
6546 : 0, 0, 0, 0, 0, 0, 3286, 0, 0, 0,
6547 : 0, 0, 0, 0, 0, 0, 5556, 0, 0, 0,
6548 : 0, 0, 5560, 5561, 5562, 0, 0, 0, 0, 0,
6549 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6550 : 0, 0, 0, 0, 0, 0, 0, 5575, 5576, 0,
6551 : 0, 5577, 0, 0, 0, 0, 0, 0, 0, 0,
6552 : 0, 0, 0, 0, 0, 0, 0, 0, 5585, 0,
6553 : 0, 0, 0, 0, 0, 0, 0, 0, 5597, 0,
6554 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 5615,
6555 : 0, 0, 0, 0, 0, 0, 0, 1368, 0, 2585,
6556 : 0, 4140, 3325, 2585, 2585, 2585, 5634, 0, 0, 0,
6557 : 0, 0, 0, 0, 0, 0, 0, 0, 2585, 2585,
6558 : 2585, 0, 0, 0, 0, 0, 0, 0, 2585, 0,
6559 : 0, 0, 0, 3325, 0, 0, 4140, 0, 0, 0,
6560 : 2585, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6561 : 0, 0, 0, 0, 0, 0, 0, 0, 2585, 0,
6562 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6563 : 0, 0, 0, 0, 0, 0, 0, 2585, 0, 0,
6564 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6565 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6566 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6567 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6568 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6569 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6570 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6571 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6572 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6573 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6574 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6575 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6576 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6577 : 0, 0, 0, 0, 0, 0, 0, 5810, 0, 0,
6578 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6579 : 0, 0, 0, 0, 0, 0, 0, 0, 3346, 0,
6580 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6581 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6582 : 0, 0, 0, 0, 4140, 0, 0, 0, 0, 0,
6583 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6584 : 0, 0, 0, 2104, 0, 4140, 0, 3325, 0, 0,
6585 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6586 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6587 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6588 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6589 : 0, 0, 0, 0, 0, 5895, 0, 0, 2585, 0,
6590 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6591 : 2585, 5907, 0, 0, 0, 0, 0, 0, 0, 0,
6592 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6593 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6594 : 0, 0, 0, 0, 0, 0, 2585, 0, 0, 0,
6595 : 0, 0, 0, 5943, 0, 0, 0, 0, 0, 0,
6596 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6597 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6598 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6599 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6600 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6601 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6602 : 0, 0, 0, 0, 0, 0, 2585, 0, 0, 0,
6603 : 0, 0, 0, 2585, 0, 0, 0, 0, 0, 0,
6604 : 0, 0, 0, 3286, 0, 0, 0, 0, 0, 0,
6605 : 0, 0, 0, 0, 0, 6023, 0, 0, 0, 0,
6606 : 0, 0, 0, 0, 6030, 6030, 6030, 0, 0, 2585,
6607 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6608 : 0, 0, 0, 0, 2585, 0, 0, 0, 0, 0,
6609 : 0, 0, 5615, 0, 0, 0, 0, 0, 0, 0,
6610 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6611 : 0, 6066, 0, 0, 0, 0, 0, 0, 0, 0,
6612 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6613 : 0, 6081, 0, 0, 0, 0, 0, 0, 0, 0,
6614 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6615 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6616 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6617 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6618 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6619 : 0, 0, 3325, 3325, 0, 0, 3325, 0, 0, 0,
6620 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6621 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6622 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6623 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6624 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6625 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6626 : 2585, 0, 6030, 0, 0, 0, 0, 0, 0, 0,
6627 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6628 : 0, 0, 0, 0, 0, 2585, 0, 5615, 0, 0,
6629 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6630 : 0, 0, 0, 4140, 4140, 0, 4140, 0, 0, 0,
6631 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6632 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6633 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6634 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6635 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6636 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 6257,
6637 : 0, 0, 0, 0, 0, 2585, 0, 0, 0, 0,
6638 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6639 : 0, 0, 0, 6282, 0, 0, 0, 0, 0, 0,
6640 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6641 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6642 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6643 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6644 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6645 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6646 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6647 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6648 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6649 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6650 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 234,
6651 : 0, 1271, 717, 0, 1272, 1273, 1274, 778, 1275, 0,
6652 : 0, 0, 0, 0, 0, 6030, 235, 236, 237, 238,
6653 : 239, 240, 241, 242, 243, 1728, 244, 245, 246, 0,
6654 : 0, 6372, 0, 1276, 0, 0, 247, 248, 249, 0,
6655 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
6656 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
6657 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
6658 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
6659 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
6660 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
6661 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
6662 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
6663 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
6664 : 323, 1729, 0, 324, 325, 887, 327, 328, 0, 329,
6665 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
6666 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
6667 : 1298, 348, 1734, 349, 350, 351, 1299, 353, 0, 354,
6668 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
6669 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
6670 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
6671 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
6672 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
6673 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
6674 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
6675 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
6676 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
6677 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
6678 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
6679 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
6680 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
6681 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
6682 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
6683 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
6684 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
6685 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
6686 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
6687 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
6688 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
6689 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
6690 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
6691 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
6692 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
6693 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
6694 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
6695 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
6696 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
6697 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
6698 : 616, 617, 618, 619, 620, 621, 1342, 1730, 623, 624,
6699 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
6700 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
6701 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
6702 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
6703 : 0, 0, 0, 1352, 1353, 1731, 0, 0, 0, 0,
6704 : 0, 0, 1355, 1732, 234, 0, 1271, 717, 0, 1272,
6705 : 1273, 1274, 778, 1275, 0, 0, 0, 0, 0, 0,
6706 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
6707 : 0, 244, 245, 246, 0, 0, 0, 0, 1276, 0,
6708 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
6709 : 255, 256, 257, 258, 1277, 260, 1278, 1279, 0, 263,
6710 : 264, 265, 266, 267, 268, 269, 1280, 1281, 270, 271,
6711 : 1282, 1283, 274, 0, 275, 276, 277, 278, 1284, 0,
6712 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
6713 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
6714 : 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290,
6715 : 1291, 1292, 303, 304, 305, 306, 307, 308, 1293, 1294,
6716 : 311, 1295, 312, 0, 313, 314, 315, 316, 317, 318,
6717 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
6718 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
6719 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 1296,
6720 : 343, 344, 345, 346, 1297, 1298, 348, 0, 349, 350,
6721 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
6722 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 1301,
6723 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
6724 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
6725 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
6726 : 1302, 1303, 0, 1304, 0, 396, 397, 398, 399, 400,
6727 : 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
6728 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
6729 : 419, 1315, 421, 422, 423, 0, 424, 425, 426, 1316,
6730 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
6731 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
6732 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
6733 : 456, 457, 1321, 459, 1322, 460, 461, 462, 463, 1323,
6734 : 1324, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
6735 : 473, 0, 0, 1326, 475, 476, 0, 0, 477, 478,
6736 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
6737 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
6738 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
6739 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
6740 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
6741 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
6742 : 535, 536, 537, 538, 539, 540, 1330, 542, 543, 544,
6743 : 545, 546, 547, 548, 549, 550, 551, 40, 552, 553,
6744 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, 562,
6745 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
6746 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
6747 : 1333, 583, 0, 584, 585, 1334, 44, 586, 587, 588,
6748 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
6749 : 0, 597, 598, 1337, 600, 1338, 1339, 602, 603, 604,
6750 : 605, 606, 607, 608, 609, 610, 0, 1340, 611, 612,
6751 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
6752 : 1206, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
6753 : 0, 0, 630, 0, 49, 631, 632, 633, 634, 635,
6754 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
6755 : 1350, 647, 648, 649, 650, 0, 1351, 0, 50, 0,
6756 : 0, 0, 0, 0, 0, 0, 0, 0, 1352, 1353,
6757 : 0, 0, 0, 0, 0, 0, 0, 1355, 5856, 234,
6758 : 0, 1271, 717, 0, 1272, 1273, 1274, 778, 1275, 0,
6759 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
6760 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
6761 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
6762 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
6763 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
6764 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
6765 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
6766 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
6767 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
6768 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
6769 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
6770 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
6771 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
6772 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
6773 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
6774 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
6775 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
6776 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
6777 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
6778 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
6779 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
6780 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
6781 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
6782 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
6783 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
6784 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
6785 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
6786 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
6787 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
6788 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
6789 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
6790 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
6791 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
6792 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
6793 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
6794 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
6795 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
6796 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
6797 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
6798 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
6799 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
6800 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
6801 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
6802 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
6803 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
6804 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
6805 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
6806 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
6807 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
6808 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
6809 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
6810 : 0, 0, 0, 1352, 1353, 0, 0, 0, 0, 0,
6811 : 0, 0, 1355, 3327, 234, 0, 1271, 717, 0, 1272,
6812 : 1273, 1274, 778, 1275, 0, 0, 0, 0, 0, 0,
6813 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
6814 : 0, 244, 245, 246, 0, 0, 0, 0, 1276, 0,
6815 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
6816 : 255, 256, 257, 258, 1277, 260, 1278, 1279, 0, 263,
6817 : 264, 265, 266, 267, 268, 269, 1280, 1281, 270, 271,
6818 : 1282, 1283, 274, 0, 275, 276, 277, 278, 1284, 0,
6819 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
6820 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
6821 : 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290,
6822 : 1291, 1292, 303, 304, 305, 306, 307, 308, 1293, 1294,
6823 : 311, 1295, 312, 0, 313, 314, 315, 316, 317, 318,
6824 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
6825 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
6826 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 1296,
6827 : 343, 344, 345, 346, 1297, 1298, 348, 0, 349, 350,
6828 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
6829 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 1301,
6830 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
6831 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
6832 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
6833 : 1302, 1303, 0, 1304, 0, 396, 397, 398, 399, 400,
6834 : 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
6835 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
6836 : 419, 1315, 421, 422, 423, 0, 424, 425, 426, 1316,
6837 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
6838 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
6839 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
6840 : 456, 457, 1321, 459, 1322, 460, 461, 462, 463, 1323,
6841 : 1324, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
6842 : 473, 0, 0, 1326, 475, 476, 0, 0, 477, 478,
6843 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
6844 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
6845 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
6846 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
6847 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
6848 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
6849 : 535, 536, 537, 538, 539, 540, 1330, 542, 543, 544,
6850 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
6851 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, 562,
6852 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
6853 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
6854 : 1333, 583, 0, 584, 585, 1334, 0, 586, 587, 588,
6855 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
6856 : 0, 597, 598, 1337, 600, 1338, 1339, 602, 603, 604,
6857 : 605, 606, 607, 608, 609, 610, 0, 1340, 611, 612,
6858 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
6859 : 621, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
6860 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
6861 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
6862 : 1350, 647, 648, 649, 650, 0, 1351, 0, 0, 0,
6863 : 0, 0, 0, 0, 0, 0, 0, 0, 1352, 1353,
6864 : 0, 0, 0, 0, 0, 0, 0, 1355, 4743, 234,
6865 : 0, 1271, 717, 0, 1272, 1273, 1274, 778, 1275, 0,
6866 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
6867 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
6868 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
6869 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
6870 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
6871 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
6872 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
6873 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
6874 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
6875 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
6876 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
6877 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
6878 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
6879 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
6880 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
6881 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
6882 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
6883 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
6884 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
6885 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
6886 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
6887 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
6888 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
6889 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
6890 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
6891 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
6892 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
6893 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
6894 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
6895 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
6896 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
6897 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
6898 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
6899 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
6900 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
6901 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
6902 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
6903 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
6904 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
6905 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
6906 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
6907 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
6908 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
6909 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
6910 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
6911 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
6912 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
6913 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
6914 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
6915 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
6916 : 0, 1351, 0, 0, 0, 0, 0, 658, 0, 0,
6917 : 0, 0, 0, 1352, 1353, 0, 0, 0, 0, 0,
6918 : 0, 0, 1355, 4809, 235, 236, 237, 238, 239, 240,
6919 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
6920 : 0, 0, 4246, 0, 247, 248, 249, 0, 250, 251,
6921 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
6922 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
6923 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
6924 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
6925 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
6926 : 295, 296, 297, 0, -1855, 299, 300, 301, 0, 0,
6927 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
6928 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
6929 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
6930 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
6931 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
6932 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
6933 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
6934 : 356, 0, 0, -1855, 359, 360, 361, 362, 0, 363,
6935 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
6936 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
6937 : 381, 382, 383, 384, 385, 0, 386, -1855, 388, 389,
6938 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
6939 : 0, 399, -1855, 401, 402, 403, 404, 405, 406, 407,
6940 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
6941 : 418, 0, 0, 419, 420, -1855, 422, 0, 0, 424,
6942 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
6943 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
6944 : 443, 444, 445, 446, -1855, 448, 449, 450, 451, 452,
6945 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
6946 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
6947 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
6948 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
6949 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
6950 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
6951 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
6952 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
6953 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
6954 : 0, 533, 534, -1855, 536, 537, 538, 539, 540, 541,
6955 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
6956 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
6957 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
6958 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
6959 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
6960 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
6961 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
6962 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
6963 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
6964 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
6965 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
6966 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
6967 : 643, 644, 645, 646, 647, 648, 649, 650, 0, 0,
6968 : 0, 0, 0, 0, 0, 879, 0, 0, 0, 0,
6969 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
6970 : 0, 1467, 235, 236, 237, 238, 239, 240, 241, 242,
6971 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
6972 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
6973 : 254, 255, 256, 257, 0, 880, 260, 881, 882, 0,
6974 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
6975 : 271, 883, 884, 274, 0, 275, 276, 277, 278, 0,
6976 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
6977 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
6978 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
6979 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 885,
6980 : 886, 311, 0, 312, 0, 313, 314, 315, 316, 317,
6981 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
6982 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
6983 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
6984 : 0, 343, 344, 345, 346, 0, 0, 348, 0, 349,
6985 : 350, 351, 888, 353, 0, 354, 0, 355, 356, 357,
6986 : 0, 358, 359, 360, 361, 362, 0, 363, 0, 0,
6987 : 0, 366, 367, 0, 368, 369, 370, 371, 372, 373,
6988 : 374, 375, 376, 377, 2731, 378, 379, 380, 381, 382,
6989 : 383, 384, 385, 0, 386, 387, 2732, 389, 390, 391,
6990 : 392, 889, 890, 0, 891, 0, 396, 397, 398, 399,
6991 : 400, 892, 0, 0, 0, 0, 0, 0, 0, 0,
6992 : 0, 0, 412, 413, 414, 415, 416, 417, 418, 0,
6993 : 0, 419, 0, 421, 422, 423, 0, 424, 425, 426,
6994 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
6995 : 435, 436, 0, 438, 439, 440, 441, 442, 443, 444,
6996 : 445, 893, 447, 894, 449, 450, 451, 452, 453, 454,
6997 : 455, 456, 0, 0, 459, 0, 460, 461, 462, 463,
6998 : 0, 0, 465, 895, 467, 468, 469, 470, 0, 471,
6999 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
7000 : 478, 2734, 480, 481, 482, 0, 484, 485, 486, 487,
7001 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
7002 : 497, 498, 0, 500, 0, 502, 503, 504, 0, 505,
7003 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
7004 : 896, 517, 518, 519, 0, 520, 521, 522, 523, 524,
7005 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
7006 : 534, 535, 536, 537, 538, 539, 540, 0, 542, 543,
7007 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
7008 : 553, 554, 555, 556, 0, 557, 558, 2735, 560, 561,
7009 : 562, 563, 564, 898, 566, 0, 567, 568, 569, 570,
7010 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
7011 : 581, 0, 583, 0, 584, 585, 0, 0, 586, 587,
7012 : 588, 589, 590, 591, 592, 593, 0, 594, 899, 900,
7013 : 0, 0, 597, 598, 0, 600, 0, 0, 602, 603,
7014 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
7015 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
7016 : 620, 0, 901, 2736, 623, 624, 625, 626, 627, 628,
7017 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
7018 : 635, 636, 0, 879, 0, 0, 0, 0, 0, 0,
7019 : 0, 0, 0, 648, 649, 650, 0, 0, 0, 0,
7020 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
7021 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 2829,
7022 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
7023 : 256, 257, 0, 880, 260, 881, 882, 0, 263, 264,
7024 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 883,
7025 : 884, 274, 0, 275, 276, 277, 278, 0, 0, 280,
7026 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
7027 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
7028 : 298, 299, 300, 301, 0, 0, 0, 302, 0, 0,
7029 : 0, 303, 304, 305, 306, 307, 308, 885, 886, 311,
7030 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
7031 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 887,
7032 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
7033 : 335, 336, 337, 0, 338, 339, 340, 341, 0, 343,
7034 : 344, 345, 346, 0, 0, 348, 0, 349, 350, 351,
7035 : 888, 353, 0, 354, 0, 355, 356, 357, 0, 358,
7036 : 359, 360, 361, 362, 0, 363, 0, 0, 0, 366,
7037 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
7038 : 376, 377, 2731, 378, 379, 380, 381, 382, 383, 384,
7039 : 385, 0, 386, 387, 2732, 389, 390, 391, 392, 889,
7040 : 890, 0, 891, 0, 396, 397, 398, 399, 400, 892,
7041 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7042 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
7043 : 0, 421, 422, 423, 0, 424, 425, 426, 0, 0,
7044 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
7045 : 0, 438, 439, 440, 441, 442, 443, 444, 445, 893,
7046 : 447, 894, 449, 450, 451, 452, 453, 454, 455, 456,
7047 : 0, 0, 459, 0, 460, 461, 462, 463, 0, 0,
7048 : 465, 895, 467, 468, 469, 470, 0, 471, 472, 473,
7049 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 2734,
7050 : 480, 481, 482, 0, 484, 485, 486, 487, 488, 489,
7051 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
7052 : 0, 500, 0, 502, 503, 504, 0, 505, 506, 507,
7053 : 508, 509, 510, 511, 512, 513, 514, 515, 896, 517,
7054 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
7055 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
7056 : 536, 537, 538, 539, 540, 0, 542, 543, 544, 545,
7057 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
7058 : 555, 556, 0, 557, 558, 2735, 560, 561, 562, 563,
7059 : 564, 898, 566, 0, 567, 568, 569, 570, 571, 572,
7060 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 0,
7061 : 583, 0, 584, 585, 0, 0, 586, 587, 588, 589,
7062 : 590, 591, 592, 593, 0, 594, 899, 900, 0, 0,
7063 : 597, 598, 0, 600, 0, 0, 602, 603, 604, 605,
7064 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
7065 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 0,
7066 : 901, 2736, 623, 624, 625, 626, 627, 628, 629, 0,
7067 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
7068 : 0, 234, 0, 1271, 717, 0, 1272, 1273, 1274, 778,
7069 : 1275, 648, 649, 650, 0, 0, 0, 0, 235, 236,
7070 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
7071 : 246, 0, 0, 0, 0, 1276, 0, 3962, 247, 248,
7072 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
7073 : 258, 1277, 260, 1278, 1279, 0, 263, 264, 265, 266,
7074 : 267, 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274,
7075 : 0, 275, 276, 277, 278, 1284, 0, 1285, 0, 281,
7076 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
7077 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
7078 : 300, 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303,
7079 : 304, 305, 306, 307, 308, 1293, 1294, 311, 1295, 312,
7080 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
7081 : 321, 322, 323, 0, 0, 324, 325, 887, 327, 328,
7082 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
7083 : 337, 0, 338, 339, 340, 341, 1296, 343, 344, 345,
7084 : 346, 1297, 1298, 348, 0, 349, 350, 351, 1299, 353,
7085 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
7086 : 361, 362, 0, 363, 1300, 0, 1301, 366, 367, 0,
7087 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
7088 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
7089 : 386, 387, 388, 389, 390, 391, 392, 1302, 1303, 0,
7090 : 1304, 0, 396, 397, 398, 399, 400, 1305, 1306, 1307,
7091 : 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413,
7092 : 414, 415, 416, 417, 418, 0, 0, 419, 1315, 421,
7093 : 422, 423, 0, 424, 425, 426, 1316, 1317, 427, 428,
7094 : 429, 430, 431, 432, 433, 434, 435, 436, 1318, 438,
7095 : 439, 440, 441, 442, 443, 444, 445, 1319, 447, 1320,
7096 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 1321,
7097 : 459, 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325,
7098 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
7099 : 1326, 475, 476, 0, 0, 477, 478, 479, 480, 481,
7100 : 482, 1327, 484, 485, 486, 487, 488, 489, 490, 491,
7101 : 492, 493, 494, 495, 0, 496, 497, 498, 1328, 500,
7102 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
7103 : 510, 511, 512, 513, 514, 515, 1329, 517, 518, 519,
7104 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
7105 : 529, 530, 531, 532, 3288, 533, 534, 535, 536, 537,
7106 : 538, 539, 540, 1330, 542, 543, 544, 545, 546, 547,
7107 : 548, 549, 550, 551, 40, 552, 553, 554, 555, 556,
7108 : 1331, 557, 558, 559, 560, 561, 562, 563, 564, 1332,
7109 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
7110 : 575, 576, 577, 578, 579, 580, 581, 1333, 583, 0,
7111 : 584, 585, 1334, 44, 586, 587, 588, 589, 590, 591,
7112 : 592, 593, 0, 594, 1335, 1336, 0, 0, 597, 598,
7113 : 1337, 600, 1338, 1339, 602, 603, 604, 605, 606, 607,
7114 : 608, 609, 610, 0, 1340, 611, 612, 613, 614, 615,
7115 : 1341, 0, 616, 617, 618, 619, 620, 1206, 1342, 0,
7116 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
7117 : 0, 49, 631, 632, 633, 634, 635, 636, 637, 1343,
7118 : 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648,
7119 : 649, 650, 0, 1351, 0, 50, 0, 0, 0, 0,
7120 : 0, 0, 0, 0, 0, 1352, 1353, 0, 0, 0,
7121 : 234, 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275,
7122 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
7123 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
7124 : 0, 0, 0, 0, 1276, 0, 0, 247, 248, 249,
7125 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7126 : 1277, 260, 1278, 1279, 0, 263, 264, 265, 266, 267,
7127 : 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0,
7128 : 275, 276, 277, 278, 1284, 0, 1285, 0, 281, 282,
7129 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
7130 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
7131 : 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304,
7132 : 305, 306, 307, 308, 1293, 1294, 311, 1295, 312, 0,
7133 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
7134 : 322, 323, 0, 0, 324, 325, 887, 327, 328, 0,
7135 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
7136 : 0, 338, 339, 340, 341, 1296, 343, 344, 345, 346,
7137 : 1297, 1298, 348, 0, 349, 350, 351, 1299, 353, 0,
7138 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
7139 : 362, 0, 363, 1300, 0, 1301, 366, 367, 0, 368,
7140 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
7141 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
7142 : 387, 388, 389, 390, 391, 392, 1302, 1303, 0, 1304,
7143 : 0, 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308,
7144 : 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414,
7145 : 415, 416, 417, 418, 0, 0, 419, 1315, 421, 422,
7146 : 423, 0, 424, 425, 426, 1316, 1317, 427, 428, 429,
7147 : 430, 431, 432, 433, 434, 435, 436, 1318, 438, 439,
7148 : 440, 441, 442, 443, 444, 445, 1319, 447, 1320, 449,
7149 : 450, 451, 452, 453, 454, 455, 456, 457, 1321, 459,
7150 : 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325, 467,
7151 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 1326,
7152 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
7153 : 1327, 484, 485, 486, 487, 488, 489, 490, 491, 492,
7154 : 493, 494, 495, 0, 496, 497, 498, 1328, 500, 501,
7155 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
7156 : 511, 512, 513, 514, 515, 1329, 517, 518, 519, 0,
7157 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
7158 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
7159 : 539, 540, 1330, 542, 543, 544, 545, 546, 547, 548,
7160 : 549, 550, 551, 40, 552, 553, 554, 555, 556, 1331,
7161 : 557, 558, 559, 560, 561, 562, 563, 564, 1332, 566,
7162 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
7163 : 576, 577, 578, 579, 580, 581, 1333, 583, 0, 584,
7164 : 585, 1334, 44, 586, 587, 588, 589, 590, 591, 592,
7165 : 593, 0, 594, 1335, 1336, 0, 0, 597, 598, 1337,
7166 : 600, 1338, 1339, 602, 603, 604, 605, 606, 607, 608,
7167 : 609, 610, 0, 1340, 611, 612, 613, 614, 615, 1341,
7168 : 0, 616, 617, 618, 619, 620, 1206, 1342, 0, 623,
7169 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
7170 : 49, 631, 632, 633, 634, 635, 636, 637, 1343, 1344,
7171 : 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649,
7172 : 650, 0, 1351, 0, 50, 0, 0, 0, 0, 0,
7173 : 0, 0, 0, 0, 1352, 1353, 0, 0, 0, 234,
7174 : 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0,
7175 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
7176 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
7177 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
7178 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
7179 : 260, 1278, 1279, 3333, 263, 264, 265, 266, 267, 268,
7180 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
7181 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
7182 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
7183 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
7184 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
7185 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
7186 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
7187 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
7188 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
7189 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
7190 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
7191 : 0, 355, 356, 357, 3334, 358, 359, 360, 361, 362,
7192 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
7193 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
7194 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
7195 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
7196 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
7197 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
7198 : 416, 417, 418, 0, 3335, 419, 1315, 421, 422, 423,
7199 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
7200 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
7201 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
7202 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
7203 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
7204 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
7205 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
7206 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
7207 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
7208 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
7209 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
7210 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
7211 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
7212 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
7213 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
7214 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
7215 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
7216 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
7217 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
7218 : 0, 594, 1335, 1336, 0, 3336, 597, 598, 1337, 600,
7219 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
7220 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
7221 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
7222 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
7223 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
7224 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
7225 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
7226 : 0, 0, 0, 1352, 1353, 0, 0, 0, 234, 0,
7227 : 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0,
7228 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
7229 : 240, 241, 242, 243, -2286, 244, 245, 246, 0, 0,
7230 : 0, -2286, 1276, 0, 0, 247, 248, 249, 0, 250,
7231 : 251, 252, 253, 254, 255, 256, 257, 258, 1277, 260,
7232 : 1278, 1279, 0, 263, 264, 265, 266, 267, 268, 269,
7233 : 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275, 276,
7234 : 277, 278, 1284, 0, 1285, 0, 281, 282, 283, 284,
7235 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
7236 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 1286,
7237 : 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306,
7238 : 307, 308, 1293, 1294, 311, 1295, 312, 0, 313, 314,
7239 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
7240 : 0, 0, 324, 325, 887, 327, 328, 0, 329, 330,
7241 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
7242 : 339, 340, 341, 1296, 343, 344, 345, 346, 1297, 1298,
7243 : 348, 0, 349, 350, 351, 1299, 353, 0, 354, 0,
7244 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
7245 : 363, 1300, 0, 1301, 366, 367, 0, 368, 369, 370,
7246 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
7247 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
7248 : 389, 390, 391, 392, 1302, 1303, 0, 1304, 0, 396,
7249 : 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310,
7250 : 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415, 416,
7251 : 417, 418, 0, 0, 419, 1315, 421, 422, 423, 0,
7252 : 424, 425, 426, 1316, 1317, 427, 428, 429, 430, 431,
7253 : 432, 433, 434, 435, 436, 1318, 438, 439, 440, 441,
7254 : 442, 443, 444, 445, 1319, 447, 1320, 449, 450, 451,
7255 : 452, 453, 454, 455, 456, 457, 1321, 459, 1322, 460,
7256 : 461, 462, 463, 1323, 1324, 465, 1325, 467, 468, 469,
7257 : 470, 0, 471, 472, 473, 0, 0, 1326, 475, 476,
7258 : 0, 0, 477, 478, 479, 480, 481, 482, 1327, 484,
7259 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
7260 : 495, 0, 496, 497, 498, 1328, 500, 501, 502, 503,
7261 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
7262 : 513, 514, 515, 1329, 517, 518, 519, 0, 520, 521,
7263 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
7264 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
7265 : 1330, 542, 543, 544, 545, 546, 547, 548, 549, 550,
7266 : 551, 0, 552, 553, 554, 555, 556, 1331, 557, 558,
7267 : 559, 560, 561, 562, 563, 564, 1332, 566, -2286, 567,
7268 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
7269 : 578, 579, 580, 581, 1333, 583, 0, 584, 585, 1334,
7270 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
7271 : 594, 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338,
7272 : 1339, 602, 603, 604, 605, 606, 607, 608, 609, 610,
7273 : 0, 1340, 611, 612, 613, 614, 615, 1341, 0, 616,
7274 : 617, 618, 619, 620, 621, 1342, 0, 623, 624, 625,
7275 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
7276 : 632, 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346,
7277 : 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0,
7278 : 1351, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7279 : 0, 0, 1352, 1353, 0, 0, 0, 234, 0, 1271,
7280 : 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0,
7281 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
7282 : 241, 242, 243, -2284, 244, 245, 246, 0, 0, 0,
7283 : -2284, 1276, 0, 0, 247, 248, 249, 0, 250, 251,
7284 : 252, 253, 254, 255, 256, 257, 258, 1277, 260, 1278,
7285 : 1279, 0, 263, 264, 265, 266, 267, 268, 269, 1280,
7286 : 1281, 270, 271, 1282, 1283, 274, 0, 275, 276, 277,
7287 : 278, 1284, 0, 1285, 0, 281, 282, 283, 284, 285,
7288 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
7289 : 295, 296, 297, 0, 298, 299, 300, 301, 1286, 1287,
7290 : 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307,
7291 : 308, 1293, 1294, 311, 1295, 312, 0, 313, 314, 315,
7292 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
7293 : 0, 324, 325, 887, 327, 328, 0, 329, 330, 331,
7294 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
7295 : 340, 341, 1296, 343, 344, 345, 346, 1297, 1298, 348,
7296 : 0, 349, 350, 351, 1299, 353, 0, 354, 0, 355,
7297 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
7298 : 1300, 0, 1301, 366, 367, 0, 368, 369, 370, 371,
7299 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
7300 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
7301 : 390, 391, 392, 1302, 1303, 0, 1304, 0, 396, 397,
7302 : 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
7303 : 1312, 1313, 410, 1314, 412, 413, 414, 415, 416, 417,
7304 : 418, 0, 0, 419, 1315, 421, 422, 423, 0, 424,
7305 : 425, 426, 1316, 1317, 427, 428, 429, 430, 431, 432,
7306 : 433, 434, 435, 436, 1318, 438, 439, 440, 441, 442,
7307 : 443, 444, 445, 1319, 447, 1320, 449, 450, 451, 452,
7308 : 453, 454, 455, 456, 457, 1321, 459, 1322, 460, 461,
7309 : 462, 463, 1323, 1324, 465, 1325, 467, 468, 469, 470,
7310 : 0, 471, 472, 473, 0, 0, 1326, 475, 476, 0,
7311 : 0, 477, 478, 479, 480, 481, 482, 1327, 484, 485,
7312 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
7313 : 0, 496, 497, 498, 1328, 500, 501, 502, 503, 504,
7314 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
7315 : 514, 515, 1329, 517, 518, 519, 0, 520, 521, 522,
7316 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
7317 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 1330,
7318 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
7319 : 0, 552, 553, 554, 555, 556, 1331, 557, 558, 559,
7320 : 560, 561, 562, 563, 564, 1332, 566, -2284, 567, 568,
7321 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
7322 : 579, 580, 581, 1333, 583, 0, 584, 585, 1334, 0,
7323 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
7324 : 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339,
7325 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
7326 : 1340, 611, 612, 613, 614, 615, 1341, 0, 616, 617,
7327 : 618, 619, 620, 621, 1342, 0, 623, 624, 625, 626,
7328 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
7329 : 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642,
7330 : 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351,
7331 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7332 : 0, 1352, 1353, 0, 0, 0, 234, 0, 1271, 717,
7333 : 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0,
7334 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
7335 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
7336 : 1276, 0, 0, 247, 248, 249, 0, 250, 251, 252,
7337 : 253, 254, 255, 256, 257, 258, 1277, 260, 1278, 1279,
7338 : 0, 263, 264, 265, 266, 267, 268, 269, 1280, 1281,
7339 : 270, 271, 1282, 1283, 274, 0, 275, 276, 277, 278,
7340 : 1284, 0, 1285, 0, 281, 282, 283, 284, 285, 286,
7341 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
7342 : 296, 297, 0, 298, 299, 300, 301, 1286, 1287, 1288,
7343 : 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307, 308,
7344 : 1293, 1294, 311, 1295, 312, 0, 313, 314, 315, 316,
7345 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
7346 : 324, 325, 887, 327, 328, 0, 329, 330, 331, 332,
7347 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
7348 : 341, 1296, 343, 344, 345, 346, 1297, 1298, 348, 0,
7349 : 349, 350, 351, 1299, 353, 0, 354, 0, 355, 356,
7350 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 1300,
7351 : 0, 1301, 366, 367, 0, 368, 369, 370, 371, 372,
7352 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
7353 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
7354 : 391, 392, 1302, 1303, 0, 1304, 0, 396, 397, 398,
7355 : 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
7356 : 1313, 410, 1314, 412, 413, 414, 415, 416, 417, 418,
7357 : 0, 0, 419, 1315, 421, 422, 423, 0, 424, 425,
7358 : 426, 1316, 1317, 427, 428, 429, 430, 431, 432, 433,
7359 : 434, 435, 436, 1318, 438, 439, 440, 441, 442, 443,
7360 : 444, 445, 1319, 447, 1320, 449, 450, 451, 452, 453,
7361 : 454, 455, 456, 457, 1321, 459, 1322, 460, 461, 462,
7362 : 463, 1323, 1324, 465, 1325, 467, 468, 469, 470, 0,
7363 : 471, 472, 473, 0, 0, 1326, 475, 476, 0, 0,
7364 : 477, 478, 479, 480, 481, 482, 1327, 484, 485, 486,
7365 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
7366 : 496, 497, 498, 1328, 500, 501, 502, 503, 504, 0,
7367 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
7368 : 515, 1329, 517, 518, 519, 0, 520, 521, 522, 523,
7369 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
7370 : 533, 534, 535, 536, 537, 538, 539, 540, 1330, 542,
7371 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
7372 : 552, 553, 554, 555, 556, 1331, 557, 558, 559, 560,
7373 : 561, 562, 563, 564, 1332, 566, 0, 567, 568, 569,
7374 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
7375 : 580, 581, 1333, 583, 0, 584, 585, 1334, 0, 586,
7376 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 1335,
7377 : 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339, 602,
7378 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 1340,
7379 : 611, 612, 613, 614, 615, 1341, 0, 616, 617, 618,
7380 : 619, 620, 621, 1342, 0, 623, 624, 625, 626, 627,
7381 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
7382 : 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347,
7383 : 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351, 0,
7384 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7385 : 1352, 1353, 0, 0, 0, 0, 0, 2052, 3262, 1355,
7386 : 234, 0, 1271, 717, 0, 1272, 1273, 1274, 778, 1275,
7387 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
7388 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
7389 : 0, 0, 0, 0, 1276, 0, 0, 247, 248, 249,
7390 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7391 : 1277, 260, 1278, 1279, 0, 263, 264, 265, 266, 267,
7392 : 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0,
7393 : 275, 276, 277, 278, 1284, 0, 1285, 0, 281, 282,
7394 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
7395 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
7396 : 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304,
7397 : 305, 306, 307, 308, 1293, 1294, 311, 1295, 312, 0,
7398 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
7399 : 322, 323, 0, 0, 324, 325, 887, 327, 328, 0,
7400 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
7401 : 0, 338, 339, 340, 341, 1296, 343, 344, 345, 346,
7402 : 1297, 1298, 348, 0, 349, 350, 351, 1299, 353, 0,
7403 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
7404 : 362, 0, 363, 1300, 0, 1301, 366, 367, 0, 368,
7405 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
7406 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
7407 : 387, 388, 389, 390, 391, 392, 1302, 1303, 0, 1304,
7408 : 0, 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308,
7409 : 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414,
7410 : 415, 416, 417, 418, 0, 0, 419, 1315, 421, 422,
7411 : 423, 0, 424, 425, 426, 1316, 1317, 427, 428, 429,
7412 : 430, 431, 432, 433, 434, 435, 436, 1318, 438, 439,
7413 : 440, 441, 442, 443, 444, 445, 1319, 447, 1320, 449,
7414 : 450, 451, 452, 453, 454, 455, 456, 457, 1321, 459,
7415 : 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325, 467,
7416 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 1326,
7417 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
7418 : 1327, 484, 485, 486, 487, 488, 489, 490, 491, 492,
7419 : 493, 494, 495, 0, 496, 497, 498, 1328, 500, 501,
7420 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
7421 : 511, 512, 513, 514, 515, 1329, 517, 518, 519, 0,
7422 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
7423 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
7424 : 539, 540, 1330, 542, 543, 544, 545, 546, 547, 548,
7425 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 1331,
7426 : 557, 558, 559, 560, 561, 562, 563, 564, 1332, 566,
7427 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
7428 : 576, 577, 578, 579, 580, 581, 1333, 583, 0, 584,
7429 : 585, 1334, 0, 586, 587, 588, 589, 590, 591, 592,
7430 : 593, 0, 594, 1335, 1336, 0, 0, 597, 598, 1337,
7431 : 600, 1338, 1339, 602, 603, 604, 605, 606, 607, 608,
7432 : 609, 610, 0, 1340, 611, 612, 613, 614, 615, 1341,
7433 : 0, 616, 617, 618, 619, 620, 621, 1342, 0, 623,
7434 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
7435 : 0, 631, 632, 633, 634, 635, 636, 637, 1343, 1344,
7436 : 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649,
7437 : 650, 0, 1351, 0, 0, 0, 0, 0, 0, 0,
7438 : 0, 0, 0, 0, 1352, 1353, 1354, 0, 0, 234,
7439 : 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0,
7440 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
7441 : 239, 240, 241, 242, 243, 2698, 244, 245, 246, 0,
7442 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
7443 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
7444 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
7445 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
7446 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
7447 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
7448 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
7449 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
7450 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
7451 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
7452 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
7453 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
7454 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
7455 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
7456 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
7457 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
7458 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
7459 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
7460 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
7461 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
7462 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
7463 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
7464 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
7465 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
7466 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
7467 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 1322,
7468 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
7469 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
7470 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
7471 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
7472 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
7473 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
7474 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
7475 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
7476 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
7477 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
7478 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
7479 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
7480 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
7481 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
7482 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
7483 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
7484 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
7485 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
7486 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
7487 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
7488 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
7489 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
7490 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
7491 : 0, 0, 0, 1352, 1353, 0, 0, 0, 234, 0,
7492 : 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0,
7493 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
7494 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
7495 : 0, 0, 1276, 0, 0, 247, 248, 249, 0, 250,
7496 : 251, 252, 253, 254, 255, 256, 257, 258, 1277, 260,
7497 : 1278, 1279, 0, 263, 264, 265, 266, 267, 268, 269,
7498 : 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275, 276,
7499 : 277, 278, 1284, 0, 1285, 0, 281, 282, 283, 284,
7500 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
7501 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 1286,
7502 : 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306,
7503 : 307, 308, 1293, 1294, 311, 1295, 312, 0, 313, 314,
7504 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
7505 : 0, 0, 324, 325, 887, 327, 328, 0, 329, 330,
7506 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
7507 : 339, 340, 341, 1296, 343, 344, 345, 346, 1297, 1298,
7508 : 348, 0, 349, 350, 351, 1299, 353, 0, 354, 0,
7509 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
7510 : 363, 1300, 0, 1301, 366, 367, 0, 368, 369, 370,
7511 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
7512 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
7513 : 389, 390, 391, 392, 1302, 1303, 0, 1304, 0, 396,
7514 : 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310,
7515 : 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415, 416,
7516 : 417, 418, 0, 0, 419, 1315, 421, 422, 423, 0,
7517 : 424, 425, 426, 1316, 1317, 427, 428, 429, 430, 431,
7518 : 432, 433, 434, 435, 436, 1318, 438, 439, 440, 441,
7519 : 442, 443, 444, 445, 1319, 447, 1320, 449, 450, 451,
7520 : 452, 453, 454, 455, 456, 457, 1321, 459, 1322, 460,
7521 : 461, 462, 463, 1323, 1324, 465, 1325, 467, 468, 469,
7522 : 470, 0, 471, 472, 473, 0, 0, 1326, 475, 476,
7523 : 0, 0, 477, 478, 479, 480, 481, 482, 1327, 484,
7524 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
7525 : 495, 0, 496, 497, 498, 1328, 500, 501, 502, 503,
7526 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
7527 : 513, 514, 515, 1329, 517, 518, 519, 0, 520, 521,
7528 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
7529 : 532, 3288, 533, 534, 535, 536, 537, 538, 539, 540,
7530 : 1330, 542, 543, 544, 545, 546, 547, 548, 549, 550,
7531 : 551, 0, 552, 553, 554, 555, 556, 1331, 557, 558,
7532 : 559, 560, 561, 562, 563, 564, 1332, 566, 0, 567,
7533 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
7534 : 578, 579, 580, 581, 1333, 583, 0, 584, 585, 1334,
7535 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
7536 : 594, 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338,
7537 : 1339, 602, 603, 604, 605, 606, 607, 608, 609, 610,
7538 : 0, 1340, 611, 612, 613, 614, 615, 1341, 0, 616,
7539 : 617, 618, 619, 620, 621, 1342, 0, 623, 624, 625,
7540 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
7541 : 632, 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346,
7542 : 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0,
7543 : 1351, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7544 : 0, 0, 1352, 1353, 0, 0, 0, 234, 0, 1271,
7545 : 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0,
7546 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
7547 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
7548 : 0, 1276, 0, 0, 247, 248, 249, 0, 250, 251,
7549 : 252, 253, 254, 255, 256, 257, 258, 1277, 260, 1278,
7550 : 1279, 0, 263, 264, 265, 266, 267, 268, 269, 1280,
7551 : 1281, 270, 271, 1282, 1283, 274, 0, 275, 276, 277,
7552 : 278, 1284, 0, 1285, 0, 281, 282, 283, 284, 285,
7553 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
7554 : 295, 296, 297, 0, 298, 299, 300, 301, 1286, 1287,
7555 : 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307,
7556 : 308, 1293, 1294, 311, 1295, 312, 0, 313, 314, 315,
7557 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
7558 : 0, 324, 325, 887, 327, 328, 0, 329, 330, 331,
7559 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
7560 : 340, 341, 1296, 343, 344, 345, 346, 1297, 1298, 348,
7561 : 0, 349, 350, 351, 1299, 353, 0, 354, 0, 355,
7562 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
7563 : 1300, 0, 1301, 366, 367, 0, 368, 369, 370, 371,
7564 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
7565 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
7566 : 390, 391, 392, 1302, 1303, 0, 1304, 0, 396, 397,
7567 : 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
7568 : 1312, 1313, 410, 1314, 412, 413, 414, 415, 416, 417,
7569 : 418, 0, 0, 419, 1315, 421, 422, 423, 0, 424,
7570 : 425, 426, 1316, 1317, 427, 428, 429, 430, 431, 432,
7571 : 433, 434, 435, 436, 1318, 438, 439, 440, 441, 442,
7572 : 443, 444, 445, 1319, 447, 1320, 449, 450, 451, 452,
7573 : 453, 454, 455, 456, 457, 1321, 459, 1322, 460, 461,
7574 : 462, 463, 1323, 1324, 465, 1325, 467, 468, 469, 470,
7575 : 0, 471, 472, 473, 0, 0, 1326, 475, 476, 0,
7576 : 0, 477, 478, 479, 480, 481, 482, 1327, 484, 485,
7577 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
7578 : 0, 496, 497, 498, 1328, 500, 501, 502, 503, 504,
7579 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
7580 : 514, 515, 1329, 517, 518, 519, 0, 520, 521, 522,
7581 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
7582 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 1330,
7583 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
7584 : 0, 552, 553, 554, 555, 556, 1331, 557, 558, 559,
7585 : 560, 561, 562, 563, 564, 1332, 566, 0, 567, 568,
7586 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
7587 : 579, 580, 581, 1333, 583, 0, 584, 585, 1334, 0,
7588 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
7589 : 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339,
7590 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
7591 : 1340, 611, 612, 613, 614, 615, 1341, 0, 616, 617,
7592 : 618, 619, 620, 621, 1342, 3841, 623, 624, 625, 626,
7593 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
7594 : 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642,
7595 : 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351,
7596 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7597 : 0, 1352, 1353, 0, 0, 0, 234, 0, 1271, 717,
7598 : 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0,
7599 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
7600 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
7601 : 1276, 0, 0, 247, 248, 249, 0, 250, 251, 252,
7602 : 253, 254, 255, 256, 257, 258, 1277, 260, 1278, 1279,
7603 : 0, 263, 264, 265, 266, 267, 268, 269, 1280, 1281,
7604 : 270, 271, 1282, 1283, 274, 0, 275, 276, 277, 278,
7605 : 1284, 0, 1285, 0, 281, 282, 283, 284, 285, 286,
7606 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
7607 : 296, 297, 0, 298, 299, 300, 301, 1286, 1287, 1288,
7608 : 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307, 308,
7609 : 1293, 1294, 311, 1295, 312, 0, 313, 314, 315, 316,
7610 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
7611 : 324, 325, 887, 327, 328, 0, 329, 330, 331, 332,
7612 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
7613 : 341, 1296, 343, 344, 345, 346, 1297, 1298, 348, 0,
7614 : 349, 350, 351, 1299, 353, 0, 354, 0, 355, 356,
7615 : 357, 3334, 358, 359, 360, 361, 362, 0, 363, 1300,
7616 : 0, 1301, 366, 367, 0, 368, 369, 370, 371, 372,
7617 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
7618 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
7619 : 391, 392, 1302, 1303, 0, 1304, 0, 396, 397, 398,
7620 : 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
7621 : 1313, 410, 1314, 412, 413, 414, 415, 416, 417, 418,
7622 : 0, 0, 419, 1315, 421, 422, 423, 0, 424, 425,
7623 : 426, 1316, 1317, 427, 428, 429, 430, 431, 432, 433,
7624 : 434, 435, 436, 1318, 438, 439, 440, 441, 442, 443,
7625 : 444, 445, 1319, 447, 1320, 449, 450, 451, 452, 453,
7626 : 454, 455, 456, 457, 1321, 459, 1322, 460, 461, 462,
7627 : 463, 1323, 1324, 465, 1325, 467, 468, 469, 470, 0,
7628 : 471, 472, 473, 0, 0, 1326, 475, 476, 0, 0,
7629 : 477, 478, 479, 480, 481, 482, 1327, 484, 485, 486,
7630 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
7631 : 496, 497, 498, 1328, 500, 501, 502, 503, 504, 0,
7632 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
7633 : 515, 1329, 517, 518, 519, 0, 520, 521, 522, 523,
7634 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
7635 : 533, 534, 535, 536, 537, 538, 539, 540, 1330, 542,
7636 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
7637 : 552, 553, 554, 555, 556, 1331, 557, 558, 559, 560,
7638 : 561, 562, 563, 564, 1332, 566, 0, 567, 568, 569,
7639 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
7640 : 580, 581, 1333, 583, 0, 584, 585, 1334, 0, 586,
7641 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 1335,
7642 : 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339, 602,
7643 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 1340,
7644 : 611, 612, 613, 614, 615, 1341, 0, 616, 617, 618,
7645 : 619, 620, 621, 1342, 0, 623, 624, 625, 626, 627,
7646 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
7647 : 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347,
7648 : 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351, 0,
7649 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
7650 : 1352, 1353, 0, 0, 0, 234, 0, 1271, 717, 1355,
7651 : 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0, 0,
7652 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
7653 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 1276,
7654 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
7655 : 254, 255, 256, 257, 258, 1277, 260, 1278, 1279, 0,
7656 : 263, 264, 265, 266, 267, 268, 269, 1280, 1281, 270,
7657 : 271, 1282, 1283, 274, 0, 275, 276, 277, 278, 1284,
7658 : 0, 1285, 0, 281, 282, 283, 284, 285, 286, 287,
7659 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
7660 : 297, 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289,
7661 : 1290, 1291, 1292, 303, 304, 305, 306, 307, 308, 1293,
7662 : 1294, 311, 1295, 312, 0, 313, 314, 315, 316, 317,
7663 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
7664 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
7665 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
7666 : 1296, 343, 344, 345, 346, 1297, 1298, 348, 0, 349,
7667 : 350, 351, 1299, 353, 0, 354, 0, 355, 356, 357,
7668 : 0, 358, 359, 360, 361, 362, 0, 363, 1300, 0,
7669 : 1301, 366, 367, 0, 368, 369, 370, 371, 372, 373,
7670 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
7671 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
7672 : 392, 1302, 1303, 0, 1304, 0, 396, 397, 398, 399,
7673 : 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
7674 : 410, 1314, 412, 413, 414, 415, 416, 417, 418, 0,
7675 : 0, 419, 1315, 421, 422, 423, 0, 424, 425, 426,
7676 : 1316, 1317, 427, 428, 429, 430, 431, 432, 433, 434,
7677 : 435, 436, 1318, 438, 439, 440, 441, 442, 443, 444,
7678 : 445, 1319, 447, 1320, 449, 450, 451, 452, 453, 454,
7679 : 455, 456, 457, 1321, 459, 1322, 460, 461, 462, 463,
7680 : 1323, 1324, 465, 1325, 467, 468, 469, 470, 0, 471,
7681 : 472, 473, 0, 0, 1326, 475, 476, 0, 0, 477,
7682 : 478, 479, 480, 481, 482, 1327, 484, 485, 486, 487,
7683 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
7684 : 497, 498, 1328, 500, 501, 502, 503, 504, 0, 505,
7685 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
7686 : 1329, 517, 518, 519, 0, 520, 521, 522, 523, 524,
7687 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
7688 : 534, 535, 536, 537, 538, 539, 540, 1330, 542, 543,
7689 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
7690 : 553, 554, 555, 556, 1331, 557, 558, 559, 560, 561,
7691 : 562, 563, 564, 1332, 566, 0, 567, 568, 569, 570,
7692 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
7693 : 581, 1333, 583, 0, 584, 585, 1334, 0, 586, 587,
7694 : 588, 589, 590, 591, 592, 593, 0, 594, 1335, 1336,
7695 : 3391, 0, 597, 598, 1337, 600, 1338, 1339, 602, 603,
7696 : 604, 605, 606, 607, 608, 609, 610, 0, 1340, 611,
7697 : 612, 613, 614, 615, 1341, 0, 616, 617, 618, 619,
7698 : 620, 621, 1342, 0, 623, 624, 625, 626, 627, 628,
7699 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
7700 : 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348,
7701 : 1349, 1350, 647, 648, 649, 650, 0, 1351, 0, 0,
7702 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1352,
7703 : 1353, 0, 0, 0, 234, 0, 1271, 717, 1355, 1272,
7704 : 1273, 1274, 778, 1275, 0, 0, 0, 0, 0, 0,
7705 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
7706 : 0, 244, 245, 246, 0, 0, 0, 0, 1276, 0,
7707 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
7708 : 255, 256, 257, 258, 1277, 260, 1278, 1279, 0, 263,
7709 : 264, 265, 266, 267, 268, 269, 1280, 1281, 270, 271,
7710 : 1282, 1283, 274, 0, 275, 276, 277, 278, 1284, 0,
7711 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
7712 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
7713 : 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290,
7714 : 1291, 1292, 303, 304, 305, 306, 307, 308, 1293, 1294,
7715 : 311, 1295, 312, 0, 313, 314, 315, 316, 317, 318,
7716 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
7717 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
7718 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 1296,
7719 : 343, 344, 345, 346, 1297, 1298, 348, 0, 349, 350,
7720 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
7721 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 1301,
7722 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
7723 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
7724 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
7725 : 1302, 1303, 0, 1304, 0, 396, 397, 398, 399, 400,
7726 : 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
7727 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
7728 : 419, 1315, 421, 422, 423, 0, 424, 425, 426, 1316,
7729 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
7730 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
7731 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
7732 : 456, 457, 1321, 459, 1322, 460, 461, 462, 463, 1323,
7733 : 1324, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
7734 : 473, 0, 0, 1326, 475, 476, 0, 0, 477, 478,
7735 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
7736 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
7737 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
7738 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
7739 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
7740 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
7741 : 535, 536, 537, 538, 539, 540, 1330, 542, 543, 544,
7742 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
7743 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, 562,
7744 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
7745 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
7746 : 1333, 583, 0, 584, 585, 1334, 0, 586, 587, 588,
7747 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
7748 : 0, 597, 598, 1337, 600, 1338, 1339, 602, 603, 604,
7749 : 605, 606, 607, 608, 609, 610, 0, 1340, 611, 612,
7750 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
7751 : 621, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
7752 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
7753 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
7754 : 1350, 647, 648, 649, 650, 0, 1351, 0, 0, 0,
7755 : 0, 0, 0, 0, 0, 0, 0, 0, 1352, 1353,
7756 : 0, 0, 0, 234, 0, 1271, 717, 1355, 1272, 1273,
7757 : 1274, 778, 1275, 0, 0, 0, 0, 0, 0, 0,
7758 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
7759 : 244, 245, 246, 0, 0, 0, 0, 1276, 0, 0,
7760 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
7761 : 256, 257, 258, 1277, 260, 1278, 1279, 0, 263, 264,
7762 : 265, 266, 267, 268, 269, 1280, 1281, 270, 271, 1282,
7763 : 1283, 274, 0, 275, 276, 277, 278, 1284, 0, 1285,
7764 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
7765 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
7766 : 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291,
7767 : 1292, 303, 304, 305, 306, 307, 308, 1293, 1294, 311,
7768 : 1295, 312, 0, 313, 314, 315, 316, 317, 318, 319,
7769 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 887,
7770 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
7771 : 335, 336, 337, 0, 338, 339, 340, 341, 1296, 343,
7772 : 344, 345, 346, 1297, 1298, 348, 0, 349, 350, 351,
7773 : 1299, 353, 0, 354, 0, 355, 356, 357, 0, 358,
7774 : 359, 360, 361, 362, 0, 363, 1300, 0, 1301, 366,
7775 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
7776 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
7777 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 1302,
7778 : 1303, 0, 1304, 0, 396, 397, 398, 399, 400, 1305,
7779 : 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314,
7780 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
7781 : 1315, 421, 422, 423, 0, 424, 425, 426, 1316, 1317,
7782 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
7783 : 1318, 438, 439, 440, 441, 442, 443, 444, 445, 1319,
7784 : 447, 1320, 449, 450, 451, 452, 453, 454, 455, 456,
7785 : 457, 1321, 459, 1322, 460, 461, 462, 463, 1323, 1324,
7786 : 465, 1325, 467, 468, 469, 470, 0, 471, 472, 473,
7787 : 0, 0, 1326, 475, 476, 0, 0, 477, 478, 479,
7788 : 480, 481, 482, 1327, 484, 485, 486, 487, 488, 489,
7789 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
7790 : 1328, 500, 501, 502, 503, 504, 0, 505, 506, 507,
7791 : 508, 509, 510, 511, 512, 513, 514, 515, 1329, 517,
7792 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
7793 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
7794 : 536, 537, 538, 539, 540, 1330, 542, 543, 544, 545,
7795 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
7796 : 555, 556, 1331, 557, 558, 559, 560, 561, 562, 563,
7797 : 564, 1332, 566, 0, 567, 568, 569, 570, 571, 572,
7798 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 1333,
7799 : 583, 0, 584, 585, 1334, 0, 586, 587, 588, 589,
7800 : 590, 591, 592, 593, 0, 594, 1335, 1336, 0, 0,
7801 : 597, 598, 1337, 600, 1338, 1339, 602, 603, 604, 605,
7802 : 606, 607, 608, 609, 610, 0, 1340, 611, 612, 613,
7803 : 614, 615, 1341, 0, 616, 617, 618, 619, 620, 621,
7804 : 1342, 0, 623, 624, 625, 626, 627, 628, 629, 0,
7805 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
7806 : 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350,
7807 : 647, 648, 649, 650, 0, 1351, 0, 0, 0, 0,
7808 : 0, 0, 0, 0, 0, 0, 0, 2701, 2702, 0,
7809 : 0, 0, 234, 0, 3510, 717, 1355, 1272, 1273, 1274,
7810 : 778, 1275, 0, 0, 0, 0, 0, 0, 0, 235,
7811 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
7812 : 245, 246, 0, 0, 0, 0, 1276, 0, 0, 247,
7813 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
7814 : 257, 258, 1277, 260, 1278, 1279, 0, 263, 264, 265,
7815 : 266, 267, 268, 269, 1280, 1281, 270, 271, 1282, 1283,
7816 : 274, 0, 275, 276, 277, 278, 1284, 0, 1285, 0,
7817 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
7818 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
7819 : 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
7820 : 303, 304, 305, 306, 307, 308, 1293, 1294, 311, 1295,
7821 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
7822 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
7823 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
7824 : 336, 337, 0, 338, 339, 340, 341, 1296, 343, 344,
7825 : 345, 346, 1297, 1298, 348, 0, 349, 350, 351, 1299,
7826 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
7827 : 360, 361, 362, 0, 363, 1300, 0, 1301, 366, 367,
7828 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
7829 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
7830 : 0, 386, 387, 388, 389, 390, 391, 392, 1302, 1303,
7831 : 0, 1304, 0, 396, 397, 398, 399, 400, 1305, 1306,
7832 : 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412,
7833 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 1315,
7834 : 421, 422, 423, 0, 424, 425, 426, 1316, 1317, 427,
7835 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 1318,
7836 : 438, 439, 440, 441, 442, 443, 444, 445, 1319, 447,
7837 : 1320, 449, 450, 451, 452, 453, 454, 455, 456, 457,
7838 : 1321, 459, 1322, 460, 461, 462, 463, 1323, 1324, 465,
7839 : 1325, 467, 468, 469, 470, 0, 471, 472, 473, 0,
7840 : 0, 1326, 475, 476, 0, 0, 477, 478, 479, 480,
7841 : 481, 482, 1327, 484, 485, 486, 487, 488, 489, 490,
7842 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 1328,
7843 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
7844 : 509, 510, 511, 512, 513, 514, 515, 1329, 517, 518,
7845 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
7846 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
7847 : 537, 538, 539, 540, 1330, 542, 543, 544, 545, 546,
7848 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
7849 : 556, 1331, 557, 558, 559, 560, 561, 562, 563, 564,
7850 : 1332, 566, 0, 567, 568, 569, 570, 571, 572, 573,
7851 : 574, 575, 576, 577, 578, 579, 580, 581, 1333, 583,
7852 : 0, 584, 585, 1334, 0, 586, 587, 588, 589, 590,
7853 : 591, 592, 593, 0, 594, 1335, 1336, 0, 0, 597,
7854 : 598, 1337, 600, 1338, 1339, 602, 603, 604, 605, 606,
7855 : 607, 608, 609, 610, 0, 1340, 611, 612, 613, 614,
7856 : 615, 1341, 0, 616, 617, 618, 619, 620, 621, 1342,
7857 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
7858 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
7859 : 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647,
7860 : 648, 649, 650, 0, 1351, 0, 0, 0, 0, 0,
7861 : 0, 0, 0, 0, 0, 0, 1352, 1353, 0, 0,
7862 : 0, 234, 0, 1271, 717, 1355, 1272, 1273, 1274, 778,
7863 : 1275, 0, 0, 0, 0, 0, 0, 0, 235, 236,
7864 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
7865 : 246, 0, 0, 0, 0, 1276, 0, 0, 247, 248,
7866 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
7867 : 258, 1277, 260, 1278, 1279, 0, 263, 264, 265, 266,
7868 : 267, 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274,
7869 : 0, 275, 276, 277, 278, 1284, 0, 1285, 0, 281,
7870 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
7871 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
7872 : 300, 4865, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303,
7873 : 304, 305, 306, 307, 308, 1293, 1294, 311, 1295, 312,
7874 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
7875 : 321, 322, 323, 0, 0, 324, 325, 887, 327, 328,
7876 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
7877 : 337, 0, 338, 339, 340, 341, 1296, 343, 344, 345,
7878 : 346, 1297, 1298, 348, 0, 349, 350, 351, 1299, 353,
7879 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
7880 : 361, 362, 0, 363, 1300, 0, 1301, 366, 367, 0,
7881 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
7882 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
7883 : 386, 387, 388, 389, 390, 391, 392, 1302, 1303, 0,
7884 : 1304, 0, 396, 397, 398, 399, 400, 1305, 1306, 1307,
7885 : 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413,
7886 : 414, 415, 416, 417, 418, 0, 0, 419, 1315, 421,
7887 : 422, 423, 0, 424, 425, 426, 1316, 1317, 427, 428,
7888 : 429, 430, 431, 432, 433, 434, 435, 436, 1318, 438,
7889 : 439, 440, 441, 442, 443, 444, 445, 1319, 447, 1320,
7890 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 1321,
7891 : 459, 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325,
7892 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
7893 : 1326, 475, 476, 0, 0, 477, 478, 479, 480, 481,
7894 : 482, 1327, 484, 485, 486, 487, 488, 489, 490, 491,
7895 : 492, 493, 494, 495, 0, 496, 497, 498, 1328, 500,
7896 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
7897 : 510, 511, 512, 513, 514, 515, 1329, 517, 518, 519,
7898 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
7899 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
7900 : 538, 539, 540, 1330, 542, 543, 544, 545, 546, 547,
7901 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
7902 : 1331, 557, 558, 559, 560, 561, 562, 563, 564, 1332,
7903 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
7904 : 575, 576, 577, 578, 579, 580, 581, 1333, 583, 0,
7905 : 584, 585, 1334, 0, 586, 587, 588, 589, 590, 591,
7906 : 592, 593, 0, 594, 1335, 1336, 0, 0, 597, 598,
7907 : 1337, 600, 1338, 1339, 602, 603, 604, 605, 606, 607,
7908 : 608, 609, 610, 0, 1340, 611, 612, 613, 614, 615,
7909 : 1341, 0, 616, 617, 618, 619, 620, 621, 1342, 0,
7910 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
7911 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 1343,
7912 : 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648,
7913 : 649, 650, 0, 1351, 0, 0, 0, 0, 0, 0,
7914 : 0, 0, 0, 0, 0, 1352, 1353, 0, 0, 0,
7915 : 234, 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275,
7916 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
7917 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
7918 : 0, 0, 0, 0, 1276, 0, 0, 247, 248, 249,
7919 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
7920 : 1277, 260, 1278, 1279, 0, 263, 264, 265, 266, 267,
7921 : 268, 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0,
7922 : 275, 276, 277, 278, 1284, 0, 1285, 0, 281, 282,
7923 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
7924 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
7925 : 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304,
7926 : 305, 306, 307, 308, 1293, 1294, 311, 1295, 312, 0,
7927 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
7928 : 322, 323, 0, 0, 324, 325, 887, 327, 328, 0,
7929 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
7930 : 0, 338, 339, 340, 341, 1296, 343, 344, 345, 346,
7931 : 1297, 1298, 348, 0, 349, 350, 351, 1299, 353, 0,
7932 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
7933 : 362, 0, 363, 1300, 0, 1301, 366, 367, 0, 368,
7934 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
7935 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
7936 : 387, 388, 389, 390, 391, 392, 1302, 1303, 0, 1304,
7937 : 0, 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308,
7938 : 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414,
7939 : 415, 416, 417, 418, 0, 0, 419, 1315, 421, 422,
7940 : 423, 0, 424, 425, 426, 1316, 1317, 427, 428, 429,
7941 : 430, 431, 432, 433, 434, 435, 436, 1318, 438, 439,
7942 : 440, 441, 442, 443, 444, 445, 1319, 447, 1320, 449,
7943 : 450, 451, 452, 453, 454, 455, 456, 457, 1321, 459,
7944 : 1322, 460, 461, 462, 463, 1323, 1324, 465, 1325, 467,
7945 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 1326,
7946 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
7947 : 1327, 484, 485, 486, 487, 488, 489, 490, 491, 492,
7948 : 493, 494, 495, 0, 496, 497, 498, 1328, 500, 501,
7949 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
7950 : 511, 512, 513, 514, 515, 1329, 517, 518, 519, 0,
7951 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
7952 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
7953 : 539, 540, 1330, 542, 543, 544, 545, 546, 547, 548,
7954 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 1331,
7955 : 557, 558, 559, 560, 561, 562, 563, 564, 1332, 566,
7956 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
7957 : 576, 577, 578, 579, 580, 581, 1333, 583, 0, 584,
7958 : 585, 1334, 0, 586, 587, 588, 589, 590, 591, 592,
7959 : 593, 0, 594, 1335, 1336, 0, 0, 597, 598, 1337,
7960 : 600, 1338, 1339, 602, 603, 604, 605, 606, 607, 608,
7961 : 609, 610, 0, 1340, 611, 612, 613, 614, 615, 1341,
7962 : 0, 616, 617, 618, 619, 620, 621, 1342, 0, 623,
7963 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
7964 : 0, 631, 632, 633, 634, 635, 636, 5251, 1343, 1344,
7965 : 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649,
7966 : 650, 0, 1351, 0, 0, 0, 0, 0, 0, 0,
7967 : 0, 0, 0, 0, 1352, 1353, 0, 0, 0, 234,
7968 : 0, 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0,
7969 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
7970 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
7971 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
7972 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
7973 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
7974 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
7975 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
7976 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
7977 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
7978 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
7979 : 306, 307, 308, 1293, 1294, 311, 1295, 312, 0, 313,
7980 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
7981 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
7982 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
7983 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
7984 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
7985 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
7986 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
7987 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
7988 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
7989 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
7990 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
7991 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
7992 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
7993 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
7994 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
7995 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
7996 : 451, 452, 453, 454, 455, 5263, 457, 1321, 459, 1322,
7997 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
7998 : 469, 470, 0, 471, 472, 473, 0, 0, 1326, 475,
7999 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
8000 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
8001 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
8002 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
8003 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
8004 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
8005 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
8006 : 540, 1330, 542, 543, 544, 545, 546, 547, 548, 549,
8007 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
8008 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
8009 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
8010 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
8011 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
8012 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
8013 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
8014 : 610, 0, 1340, 611, 612, 613, 614, 615, 1341, 0,
8015 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
8016 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
8017 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
8018 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
8019 : 0, 1351, 0, 0, 0, 0, 0, 0, 0, 0,
8020 : 0, 0, 0, 1352, 1353, 0, 0, 0, 234, 0,
8021 : 1271, 717, 1355, 1272, 1273, 1274, 778, 1275, 0, 0,
8022 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
8023 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
8024 : 0, 0, 1276, 0, 0, 247, 248, 249, 0, 250,
8025 : 251, 252, 253, 254, 255, 256, 257, 258, 1277, 260,
8026 : 1278, 1279, 0, 263, 264, 265, 266, 267, 268, 269,
8027 : 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275, 276,
8028 : 277, 278, 1284, 0, 1285, 0, 281, 282, 283, 284,
8029 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
8030 : 294, 295, 296, 297, 0, 298, 299, 5605, 301, 1286,
8031 : 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306,
8032 : 307, 308, 1293, 1294, 311, 1295, 312, 0, 313, 314,
8033 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
8034 : 0, 0, 324, 325, 887, 327, 328, 0, 329, 330,
8035 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
8036 : 339, 340, 341, 1296, 343, 344, 345, 346, 1297, 1298,
8037 : 348, 0, 349, 350, 351, 1299, 353, 0, 354, 0,
8038 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
8039 : 363, 1300, 0, 5606, 366, 367, 0, 368, 369, 370,
8040 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
8041 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
8042 : 389, 390, 391, 392, 1302, 1303, 0, 1304, 0, 396,
8043 : 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310,
8044 : 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415, 416,
8045 : 417, 418, 0, 0, 419, 1315, 421, 422, 423, 0,
8046 : 424, 425, 426, 1316, 1317, 427, 428, 429, 430, 431,
8047 : 432, 433, 434, 435, 436, 1318, 438, 439, 440, 441,
8048 : 442, 443, 444, 445, 1319, 447, 1320, 449, 450, 451,
8049 : 452, 453, 454, 455, 456, 457, 1321, 459, 1322, 460,
8050 : 461, 462, 463, 1323, 1324, 465, 1325, 467, 468, 469,
8051 : 470, 0, 471, 472, 473, 0, 0, 1326, 475, 476,
8052 : 0, 0, 477, 478, 479, 480, 481, 482, 1327, 484,
8053 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
8054 : 495, 0, 496, 497, 498, 1328, 500, 501, 502, 503,
8055 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
8056 : 513, 514, 515, 1329, 517, 518, 519, 0, 520, 521,
8057 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
8058 : 532, 0, 533, 534, 535, 536, 537, 5607, 539, 540,
8059 : 1330, 542, 543, 544, 545, 546, 547, 548, 549, 550,
8060 : 551, 0, 552, 553, 554, 555, 556, 1331, 557, 558,
8061 : 559, 560, 561, 562, 563, 564, 1332, 566, 0, 567,
8062 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
8063 : 578, 579, 580, 581, 1333, 583, 0, 584, 585, 1334,
8064 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
8065 : 594, 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338,
8066 : 1339, 602, 603, 604, 605, 606, 607, 608, 609, 610,
8067 : 0, 1340, 611, 612, 613, 614, 615, 1341, 0, 616,
8068 : 617, 618, 619, 620, 621, 1342, 0, 623, 624, 625,
8069 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
8070 : 632, 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346,
8071 : 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0,
8072 : 1351, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8073 : 0, 0, 1352, 1353, 0, 0, 0, 234, 0, 1271,
8074 : 717, 5608, 1272, 1273, 1274, 778, 1275, 0, 0, 0,
8075 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
8076 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
8077 : 0, 1276, 0, 0, 247, 248, 249, 0, 250, 251,
8078 : 252, 253, 254, 255, 256, 257, 6027, 1277, 260, 1278,
8079 : 1279, 0, 263, 264, 265, 266, 267, 268, 269, 1280,
8080 : 1281, 270, 271, 1282, 1283, 274, 0, 275, 276, 277,
8081 : 278, 1284, 0, 1285, 0, 281, 282, 283, 284, 285,
8082 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
8083 : 295, 296, 297, 0, 298, 299, 300, 6028, 1286, 1287,
8084 : 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307,
8085 : 308, 1293, 1294, 311, 1295, 312, 0, 313, 314, 315,
8086 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
8087 : 0, 324, 325, 887, 327, 328, 0, 329, 330, 331,
8088 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
8089 : 340, 341, 1296, 343, 344, 345, 346, 1297, 1298, 348,
8090 : 0, 349, 350, 351, 1299, 353, 0, 354, 0, 355,
8091 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
8092 : 1300, 0, 1301, 366, 367, 0, 368, 369, 370, 371,
8093 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
8094 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
8095 : 390, 391, 392, 1302, 1303, 0, 1304, 0, 396, 397,
8096 : 398, 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311,
8097 : 1312, 1313, 410, 1314, 412, 413, 414, 415, 416, 417,
8098 : 418, 0, 0, 419, 1315, 421, 422, 423, 0, 424,
8099 : 425, 426, 1316, 1317, 427, 428, 429, 430, 431, 432,
8100 : 433, 434, 435, 436, 1318, 438, 439, 440, 441, 442,
8101 : 443, 444, 445, 1319, 447, 1320, 449, 450, 451, 452,
8102 : 453, 454, 455, 456, 457, 1321, 459, 1322, 460, 461,
8103 : 462, 463, 1323, 1324, 465, 1325, 467, 468, 469, 470,
8104 : 0, 471, 472, 473, 0, 0, 1326, 475, 476, 0,
8105 : 0, 477, 478, 479, 480, 481, 482, 1327, 484, 485,
8106 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
8107 : 0, 496, 497, 498, 1328, 500, 501, 502, 503, 504,
8108 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
8109 : 514, 515, 1329, 517, 518, 519, 0, 520, 521, 522,
8110 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
8111 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 1330,
8112 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
8113 : 0, 552, 553, 554, 555, 556, 1331, 557, 558, 559,
8114 : 560, 561, 562, 563, 564, 1332, 566, 0, 567, 568,
8115 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
8116 : 579, 580, 581, 1333, 583, 0, 584, 585, 1334, 0,
8117 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
8118 : 1335, 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339,
8119 : 602, 603, 604, 605, 606, 6029, 608, 609, 610, 0,
8120 : 1340, 611, 612, 613, 614, 615, 1341, 0, 616, 617,
8121 : 618, 619, 620, 621, 1342, 0, 623, 624, 625, 626,
8122 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
8123 : 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642,
8124 : 1347, 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351,
8125 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8126 : 0, 1352, 1353, 0, 0, 0, 234, 0, 1271, 717,
8127 : 1355, 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0,
8128 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
8129 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
8130 : 1276, 0, 0, 247, 248, 249, 0, 250, 251, 252,
8131 : 253, 254, 255, 256, 257, 258, 1277, 260, 1278, 1279,
8132 : 0, 263, 264, 265, 266, 267, 268, 269, 1280, 1281,
8133 : 270, 271, 1282, 1283, 274, 0, 275, 276, 277, 278,
8134 : 1284, 0, 1285, 0, 281, 282, 283, 284, 285, 286,
8135 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
8136 : 296, 297, 0, 298, 299, 300, 6028, 1286, 1287, 1288,
8137 : 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307, 308,
8138 : 1293, 1294, 311, 1295, 312, 0, 313, 314, 315, 316,
8139 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
8140 : 324, 325, 887, 327, 328, 0, 329, 330, 331, 332,
8141 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
8142 : 341, 1296, 343, 344, 345, 346, 1297, 1298, 348, 0,
8143 : 349, 350, 351, 1299, 353, 0, 354, 0, 355, 356,
8144 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 1300,
8145 : 0, 1301, 366, 367, 0, 368, 369, 370, 371, 372,
8146 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
8147 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
8148 : 391, 392, 1302, 1303, 0, 1304, 0, 396, 397, 398,
8149 : 399, 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
8150 : 1313, 410, 1314, 412, 413, 414, 415, 416, 417, 418,
8151 : 0, 0, 419, 1315, 421, 422, 423, 0, 424, 425,
8152 : 426, 1316, 1317, 427, 428, 429, 430, 431, 432, 433,
8153 : 434, 435, 436, 1318, 438, 439, 440, 441, 442, 443,
8154 : 444, 445, 1319, 447, 1320, 449, 450, 451, 452, 453,
8155 : 454, 455, 456, 457, 1321, 459, 1322, 460, 461, 462,
8156 : 463, 1323, 1324, 465, 1325, 467, 468, 469, 470, 0,
8157 : 471, 472, 473, 0, 0, 1326, 475, 476, 0, 0,
8158 : 477, 478, 479, 480, 481, 482, 1327, 484, 485, 486,
8159 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
8160 : 496, 497, 498, 1328, 500, 501, 502, 503, 504, 0,
8161 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
8162 : 515, 1329, 517, 518, 519, 0, 520, 521, 522, 523,
8163 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
8164 : 533, 534, 535, 536, 537, 538, 539, 540, 1330, 542,
8165 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
8166 : 552, 553, 554, 555, 556, 1331, 557, 558, 559, 560,
8167 : 561, 562, 563, 564, 1332, 566, 0, 567, 568, 569,
8168 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
8169 : 580, 581, 1333, 583, 0, 584, 585, 1334, 0, 586,
8170 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 1335,
8171 : 1336, 0, 0, 597, 598, 1337, 600, 1338, 1339, 602,
8172 : 603, 604, 605, 606, 6029, 608, 609, 610, 0, 1340,
8173 : 611, 612, 613, 614, 615, 1341, 0, 616, 617, 618,
8174 : 619, 620, 621, 1342, 0, 623, 624, 625, 626, 627,
8175 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
8176 : 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347,
8177 : 1348, 1349, 1350, 647, 648, 649, 650, 0, 1351, 0,
8178 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8179 : 1352, 1353, 0, 0, 0, 234, 0, 1271, 717, 1355,
8180 : 1272, 1273, 1274, 778, 1275, 0, 0, 0, 0, 0,
8181 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
8182 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 1276,
8183 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
8184 : 254, 255, 256, 257, 258, 1277, 260, 1278, 1279, 0,
8185 : 263, 264, 265, 266, 267, 268, 269, 1280, 1281, 270,
8186 : 271, 1282, 1283, 274, 0, 275, 276, 277, 278, 1284,
8187 : 0, 1285, 0, 281, 282, 283, 284, 285, 286, 287,
8188 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
8189 : 297, 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289,
8190 : 1290, 1291, 1292, 303, 304, 305, 306, 307, 308, 1293,
8191 : 1294, 311, 5590, 312, 0, 313, 314, 315, 316, 317,
8192 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
8193 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
8194 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
8195 : 1296, 343, 344, 345, 346, 1297, 1298, 348, 0, 349,
8196 : 350, 351, 1299, 353, 0, 354, 0, 355, 356, 357,
8197 : 0, 358, 359, 360, 361, 362, 0, 363, 1300, 0,
8198 : 1301, 366, 367, 0, 368, 369, 370, 371, 372, 373,
8199 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
8200 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
8201 : 392, 1302, 1303, 0, 1304, 0, 396, 397, 398, 399,
8202 : 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
8203 : 410, 1314, 412, 413, 414, 415, 416, 417, 418, 0,
8204 : 0, 419, 1315, 421, 422, 423, 0, 424, 425, 426,
8205 : 1316, 1317, 427, 428, 429, 430, 431, 432, 433, 434,
8206 : 435, 436, 1318, 438, 439, 440, 441, 442, 443, 444,
8207 : 445, 1319, 447, 1320, 449, 450, 451, 452, 453, 454,
8208 : 455, 456, 457, 1321, 459, 0, 460, 461, 462, 463,
8209 : 1323, 1324, 465, 1325, 467, 468, 469, 470, 0, 471,
8210 : 472, 473, 0, 0, 1326, 475, 476, 0, 0, 477,
8211 : 478, 479, 480, 481, 482, 1327, 484, 485, 486, 487,
8212 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
8213 : 497, 498, 1328, 500, 501, 502, 503, 504, 0, 505,
8214 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
8215 : 1329, 517, 518, 519, 0, 520, 521, 522, 523, 524,
8216 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
8217 : 534, 535, 536, 537, 538, 539, 540, 3319, 542, 543,
8218 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
8219 : 553, 554, 555, 556, 1331, 557, 558, 559, 560, 561,
8220 : 562, 563, 564, 1332, 566, 0, 567, 568, 569, 570,
8221 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
8222 : 581, 1333, 583, 0, 584, 585, 1334, 0, 586, 587,
8223 : 588, 589, 590, 591, 592, 593, 0, 594, 1335, 1336,
8224 : 0, 0, 597, 598, 1337, 600, 1338, 1339, 602, 603,
8225 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
8226 : 612, 613, 614, 615, 1341, 0, 616, 617, 618, 619,
8227 : 620, 621, 1342, 0, 623, 624, 625, 626, 627, 628,
8228 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
8229 : 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348,
8230 : 1349, 1350, 647, 648, 649, 650, 0, 0, 0, 0,
8231 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3320,
8232 : 3321, 0, 0, 0, 234, 0, 1271, 717, 3322, 1272,
8233 : 1273, 1274, 778, 1275, 0, 0, 0, 0, 0, 0,
8234 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
8235 : 0, 244, 245, 246, 0, 0, 0, 0, 1276, 0,
8236 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
8237 : 255, 256, 257, -3012, 1277, 260, 1278, 1279, 0, 263,
8238 : 264, 265, 266, 267, 268, 269, 1280, 1281, 270, 271,
8239 : 1282, 1283, 274, 0, 275, 276, 277, 278, 1284, 0,
8240 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
8241 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
8242 : 0, 298, 299, 300, 6028, 1286, 1287, 1288, 1289, 1290,
8243 : 1291, 1292, 303, 304, 305, 306, 307, 308, 1293, 1294,
8244 : 311, 1295, 312, 0, 313, 314, 315, 316, 317, 318,
8245 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
8246 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
8247 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 1296,
8248 : 343, 344, 345, 346, 1297, 1298, 348, 0, 349, 350,
8249 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
8250 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 1301,
8251 : 366, 367, 0, 368, 369, 370, 371, 372, -3012, 374,
8252 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
8253 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
8254 : 1302, 1303, 0, 1304, 0, 396, 0, 0, 399, 400,
8255 : 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
8256 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
8257 : 419, 1315, 421, 422, -3012, 0, 424, 425, 426, 1316,
8258 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
8259 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
8260 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
8261 : 456, 457, 1321, 459, 1322, 460, 461, 0, 463, 1323,
8262 : 1324, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
8263 : 473, 0, 0, 1326, 475, 476, 0, 0, 477, 478,
8264 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
8265 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
8266 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
8267 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
8268 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
8269 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
8270 : 535, 536, 537, 538, 539, 540, 1330, 542, 543, 544,
8271 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
8272 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, -3012,
8273 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
8274 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
8275 : 1333, 583, 0, 584, 585, 1334, 0, 586, 587, 588,
8276 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
8277 : 0, 597, 598, 1337, 600, 1338, 1339, 602, 603, 604,
8278 : 605, 606, 6029, 608, 609, 610, 0, 1340, 611, 612,
8279 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
8280 : 621, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
8281 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
8282 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
8283 : 1350, 647, 648, 649, 650, 0, -3012, 0, 0, 0,
8284 : 0, 0, 0, 0, 0, 0, 0, 0, 1352, 1353,
8285 : 0, 0, 0, 234, 0, 1271, 717, 1355, 1272, 1273,
8286 : 1274, 778, 1275, 0, 0, 0, 0, 0, 0, 0,
8287 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
8288 : 244, 245, 246, 0, 0, 0, 0, 1276, 0, 0,
8289 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
8290 : 256, 257, 258, 1277, 260, 1278, 1279, 0, 263, 264,
8291 : 265, 266, 267, 268, 269, 1280, 1281, 270, 271, 1282,
8292 : 1283, 274, 0, 275, 276, 277, 278, 1284, 0, 1285,
8293 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
8294 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
8295 : 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291,
8296 : 1292, 303, 304, 305, 306, 307, 308, 1293, 1294, 311,
8297 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
8298 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 887,
8299 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
8300 : 335, 336, 337, 0, 338, 339, 340, 341, 1296, 343,
8301 : 344, 345, 346, 1297, 1298, 348, 0, 349, 350, 351,
8302 : 1299, 353, 0, 354, 0, 355, 356, 357, 0, 358,
8303 : 359, 360, 361, 362, 0, 363, 1300, 0, 1301, 366,
8304 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
8305 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
8306 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 1302,
8307 : 1303, 0, 1304, 0, 396, 397, 398, 399, 400, 1305,
8308 : 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314,
8309 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
8310 : 1315, 421, 422, 423, 0, 424, 425, 426, 1316, 1317,
8311 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
8312 : 1318, 438, 439, 440, 441, 442, 443, 444, 445, 1319,
8313 : 447, 1320, 449, 450, 451, 452, 453, 454, 455, 456,
8314 : 457, 1321, 459, 0, 460, 461, 462, 463, 1323, 1324,
8315 : 465, 1325, 467, 468, 469, 470, 0, 471, 472, 473,
8316 : 0, 0, 1326, 475, 476, 0, 0, 477, 478, 479,
8317 : 480, 481, 482, 1327, 484, 485, 486, 487, 488, 489,
8318 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
8319 : 1328, 500, 501, 502, 503, 504, 0, 505, 506, 507,
8320 : 508, 509, 510, 511, 512, 513, 514, 515, 1329, 517,
8321 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
8322 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
8323 : 536, 537, 538, 539, 540, 3319, 542, 543, 544, 545,
8324 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
8325 : 555, 556, 1331, 557, 558, 559, 560, 561, 562, 563,
8326 : 564, 1332, 566, 0, 567, 568, 569, 570, 571, 572,
8327 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 1333,
8328 : 583, 0, 584, 585, 1334, 0, 586, 587, 588, 589,
8329 : 590, 591, 592, 593, 0, 594, 1335, 1336, 0, 0,
8330 : 597, 598, 1337, 600, 1338, 1339, 602, 603, 604, 605,
8331 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
8332 : 614, 615, 1341, 0, 616, 617, 618, 619, 620, 621,
8333 : 1342, 0, 623, 624, 625, 626, 627, 628, 629, 0,
8334 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
8335 : 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350,
8336 : 647, 648, 649, 650, 0, 0, 0, 0, 0, 0,
8337 : 0, 0, 0, 0, 0, 0, 0, 3320, 3321, 234,
8338 : 0, 1271, 717, 0, 1272, 1273, 3322, 778, 1275, 0,
8339 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
8340 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
8341 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
8342 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
8343 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
8344 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
8345 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
8346 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
8347 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
8348 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
8349 : 306, 307, 308, 1293, 1294, 311, 0, 312, 0, 313,
8350 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
8351 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
8352 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
8353 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
8354 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
8355 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
8356 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
8357 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
8358 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
8359 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
8360 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
8361 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
8362 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
8363 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
8364 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
8365 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
8366 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 0,
8367 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
8368 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
8369 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
8370 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
8371 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
8372 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
8373 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
8374 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
8375 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
8376 : 540, 3499, 3500, 543, 544, 545, 546, 547, 548, 549,
8377 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
8378 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
8379 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
8380 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
8381 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
8382 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
8383 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
8384 : 610, 0, 0, 611, 612, 613, 614, 615, 1341, 0,
8385 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
8386 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
8387 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
8388 : 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
8389 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8390 : 0, 0, 0, 3501, 3502, 234, 0, 1271, 717, 0,
8391 : 1272, 1273, 3322, 778, 1275, 0, 0, 0, 0, 0,
8392 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
8393 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 1276,
8394 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
8395 : 254, 255, 256, 257, 258, 1277, 260, 1278, 1279, 0,
8396 : 263, 264, 265, 266, 267, 268, 269, 1280, 1281, 270,
8397 : 271, 1282, 1283, 274, 0, 275, 276, 277, 278, 1284,
8398 : 0, 1285, 0, 281, 282, 283, 284, 285, 286, 287,
8399 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
8400 : 297, 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289,
8401 : 1290, 1291, 1292, 303, 304, 305, 306, 307, 308, 1293,
8402 : 1294, 311, 0, 312, 0, 313, 314, 315, 316, 317,
8403 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
8404 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
8405 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
8406 : 1296, 343, 344, 345, 346, 1297, 1298, 348, 0, 349,
8407 : 350, 351, 1299, 353, 0, 354, 0, 355, 356, 357,
8408 : 0, 358, 359, 360, 361, 362, 0, 363, 1300, 0,
8409 : 1301, 366, 367, 0, 368, 369, 370, 371, 372, 373,
8410 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
8411 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
8412 : 392, 1302, 1303, 0, 1304, 0, 396, 397, 398, 399,
8413 : 400, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313,
8414 : 410, 1314, 412, 413, 414, 415, 416, 417, 418, 0,
8415 : 0, 419, 1315, 421, 422, 423, 0, 424, 425, 426,
8416 : 1316, 1317, 427, 428, 429, 430, 431, 432, 433, 434,
8417 : 435, 436, 1318, 438, 439, 440, 441, 442, 443, 444,
8418 : 445, 1319, 447, 1320, 449, 450, 451, 452, 453, 454,
8419 : 455, 456, 457, 1321, 459, 0, 460, 461, 462, 463,
8420 : 1323, 1324, 465, 1325, 467, 468, 469, 470, 0, 471,
8421 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
8422 : 478, 479, 480, 481, 482, 1327, 484, 485, 486, 487,
8423 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
8424 : 497, 498, 1328, 500, 501, 502, 503, 504, 0, 505,
8425 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
8426 : 1329, 517, 518, 519, 0, 520, 521, 522, 523, 524,
8427 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
8428 : 534, 535, 536, 537, 538, 539, 540, 3319, 542, 543,
8429 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
8430 : 553, 554, 555, 556, 1331, 557, 558, 559, 560, 561,
8431 : 562, 563, 564, 1332, 566, 0, 567, 568, 569, 570,
8432 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
8433 : 581, 1333, 583, 0, 584, 585, 1334, 0, 586, 587,
8434 : 588, 589, 590, 591, 592, 593, 0, 594, 1335, 1336,
8435 : 0, 0, 597, 598, 1337, 600, 1338, 1339, 602, 603,
8436 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
8437 : 612, 613, 614, 615, 1341, 0, 616, 617, 618, 619,
8438 : 620, 621, 1342, 0, 623, 624, 625, 626, 627, 628,
8439 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
8440 : 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348,
8441 : 1349, 1350, 647, 648, 649, 650, 0, 0, 0, 0,
8442 : 0, 0, 234, 0, 1271, 717, 0, 1272, 1273, 0,
8443 : 778, 1275, 0, 0, 0, 0, 0, 0, 3322, 235,
8444 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
8445 : 245, 246, 0, 0, 0, 0, 1276, 0, 0, 247,
8446 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
8447 : 257, 258, 1277, 260, 1278, 1279, 0, 263, 4774, 265,
8448 : 266, 267, 268, 269, 1280, 1281, 270, 271, 1282, 1283,
8449 : 274, 0, 275, 276, 277, 278, 1284, 0, 1285, 0,
8450 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
8451 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
8452 : 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
8453 : 303, 304, 305, 306, 307, 308, 1293, 1294, 311, 0,
8454 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
8455 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
8456 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
8457 : 336, 337, 0, 338, 339, 340, 341, 1296, 343, 344,
8458 : 345, 346, 1297, 1298, 348, 0, 349, 350, 351, 1299,
8459 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
8460 : 360, 361, 362, 0, 363, 1300, 0, 1301, 366, 367,
8461 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
8462 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
8463 : 0, 386, 387, 388, 389, 390, 391, 392, 1302, 1303,
8464 : 0, 1304, 0, 396, 397, 398, 399, 400, 1305, 1306,
8465 : 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412,
8466 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 1315,
8467 : 421, 422, 423, 0, 424, 425, 426, 1316, 1317, 427,
8468 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 1318,
8469 : 438, 439, 440, 441, 442, 443, 444, 445, 1319, 447,
8470 : 1320, 449, 450, 451, 452, 453, 454, 455, 456, 457,
8471 : 1321, 459, 0, 460, 461, 462, 463, 1323, 1324, 465,
8472 : 1325, 467, 468, 469, 470, 0, 471, 472, 473, 0,
8473 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 480,
8474 : 481, 482, 1327, 484, 485, 486, 487, 488, 489, 490,
8475 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 1328,
8476 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
8477 : 509, 510, 511, 512, 513, 514, 515, 1329, 517, 518,
8478 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
8479 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
8480 : 537, 538, 539, 540, 3319, 542, 543, 544, 545, 546,
8481 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
8482 : 556, 1331, 557, 558, 559, 560, 561, 562, 563, 564,
8483 : 1332, 566, 0, 567, 568, 569, 570, 571, 572, 573,
8484 : 574, 575, 576, 577, 578, 579, 580, 581, 1333, 583,
8485 : 0, 584, 585, 1334, 0, 586, 587, 588, 589, 590,
8486 : 591, 592, 593, 0, 594, 1335, 1336, 0, 0, 597,
8487 : 598, 1337, 600, 1338, 1339, 602, 603, 604, 605, 606,
8488 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
8489 : 615, 1341, 0, 616, 617, 618, 619, 620, 621, 1342,
8490 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
8491 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
8492 : 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647,
8493 : 648, 649, 650, 0, 0, 0, 0, 0, 0, 234,
8494 : 0, 1271, 717, 0, 1272, 1273, 0, 778, 1275, 0,
8495 : 0, 0, 0, 0, 0, 3322, 235, 236, 237, 238,
8496 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
8497 : 0, 0, 0, 1276, 0, 0, 247, 248, 249, 0,
8498 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 1277,
8499 : 260, 1278, 1279, 0, 263, 264, 265, 266, 267, 268,
8500 : 269, 1280, 1281, 270, 271, 1282, 1283, 274, 0, 275,
8501 : 276, 277, 278, 1284, 0, 1285, 0, 281, 282, 283,
8502 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
8503 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
8504 : 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304, 305,
8505 : 306, 307, 308, 1293, 1294, 311, 0, 312, 0, 313,
8506 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
8507 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
8508 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
8509 : 338, 339, 340, 341, 1296, 343, 344, 345, 346, 1297,
8510 : 1298, 348, 0, 349, 350, 351, 1299, 353, 0, 354,
8511 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
8512 : 0, 363, 1300, 0, 1301, 366, 367, 0, 368, 369,
8513 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
8514 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
8515 : 388, 389, 390, 391, 392, 1302, 1303, 0, 1304, 0,
8516 : 396, 397, 398, 399, 400, 1305, 1306, 1307, 1308, 1309,
8517 : 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414, 415,
8518 : 416, 417, 418, 0, 0, 419, 1315, 421, 422, 423,
8519 : 0, 424, 425, 426, 1316, 1317, 427, 428, 429, 430,
8520 : 431, 432, 433, 434, 435, 436, 1318, 438, 439, 440,
8521 : 441, 442, 443, 444, 445, 1319, 447, 1320, 449, 450,
8522 : 451, 452, 453, 454, 455, 456, 457, 1321, 459, 0,
8523 : 460, 461, 462, 463, 1323, 1324, 465, 1325, 467, 468,
8524 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
8525 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 1327,
8526 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
8527 : 494, 495, 0, 496, 497, 498, 1328, 500, 501, 502,
8528 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
8529 : 512, 513, 514, 515, 1329, 517, 518, 519, 0, 520,
8530 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
8531 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
8532 : 540, 3319, 542, 543, 544, 545, 546, 547, 548, 549,
8533 : 550, 551, 0, 552, 553, 554, 555, 556, 1331, 557,
8534 : 558, 559, 560, 561, 562, 563, 564, 1332, 566, 0,
8535 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
8536 : 577, 578, 579, 580, 581, 1333, 583, 0, 584, 585,
8537 : 1334, 0, 586, 587, 588, 589, 590, 591, 592, 593,
8538 : 0, 594, 1335, 1336, 0, 0, 597, 598, 1337, 600,
8539 : 1338, 1339, 602, 603, 604, 605, 606, 607, 608, 609,
8540 : 610, 0, 0, 611, 612, 613, 614, 615, 1341, 0,
8541 : 616, 617, 618, 619, 620, 621, 1342, 0, 623, 624,
8542 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
8543 : 631, 632, 633, 634, 635, 636, 637, 1343, 1344, 1345,
8544 : 1346, 4834, 1347, 1348, 1349, 1350, 647, 648, 649, 650,
8545 : 0, 0, 0, 0, 0, 0, 234, 0, 0, 0,
8546 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8547 : 0, 0, 3322, 235, 236, 237, 238, 239, 240, 241,
8548 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
8549 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
8550 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
8551 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 1281,
8552 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
8553 : 1284, 0, 1285, 0, 281, 282, 283, 284, 285, 286,
8554 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
8555 : 296, 297, 0, 298, 299, 300, 301, 1286, 1287, 1288,
8556 : 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307, 308,
8557 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
8558 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
8559 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
8560 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
8561 : 341, 342, 343, 344, 345, 346, 1297, 0, 348, 0,
8562 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
8563 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 1300,
8564 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
8565 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
8566 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
8567 : 391, 392, 393, 394, 0, 395, 0, 396, 397, 398,
8568 : 399, 400, 3470, 1306, 1307, 1308, 1309, 1310, 1311, 1312,
8569 : 1313, 3471, 1314, 412, 413, 414, 415, 416, 417, 418,
8570 : 3472, 0, 419, 1315, 421, 422, 423, 0, 424, 425,
8571 : 426, 1316, 1317, 427, 428, 429, 430, 431, 432, 433,
8572 : 434, 435, 436, 1318, 438, 439, 440, 441, 442, 443,
8573 : 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
8574 : 454, 455, 456, 457, 1321, 459, 0, 460, 461, 462,
8575 : 463, 0, 1324, 465, 466, 467, 468, 469, 470, 0,
8576 : 471, 472, 473, 0, 862, 474, 475, 476, 0, 0,
8577 : 477, 478, 479, 480, 481, 482, 1327, 484, 485, 486,
8578 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
8579 : 496, 497, 498, 1328, 500, 501, 502, 503, 504, 0,
8580 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
8581 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
8582 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
8583 : 533, 534, 535, 536, 537, 538, 539, 540, 541, 3473,
8584 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 40,
8585 : 552, 553, 554, 555, 556, 1331, 557, 558, 559, 560,
8586 : 561, 562, 563, 564, 565, 566, 0, 567, 568, 569,
8587 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
8588 : 580, 581, 1333, 583, 0, 584, 585, 1334, 44, 586,
8589 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 595,
8590 : 596, 0, 0, 597, 598, 1337, 600, 1338, 0, 602,
8591 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
8592 : 611, 612, 613, 614, 615, 1341, 0, 616, 617, 618,
8593 : 619, 620, 1206, 622, 0, 623, 624, 625, 626, 627,
8594 : 628, 629, 0, 0, 630, 0, 49, 631, 632, 633,
8595 : 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642, 1347,
8596 : 1348, 1349, 1350, 3474, 648, 649, 650, 0, 0, 0,
8597 : 50, 0, 0, 234, 0, 0, 0, 0, 0, 0,
8598 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 3475,
8599 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
8600 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
8601 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
8602 : 256, 257, 258, 259, 260, 261, 262, 0, 263, 264,
8603 : 265, 266, 267, 268, 269, 0, 1281, 270, 271, 272,
8604 : 273, 274, 0, 275, 276, 277, 278, 1284, 0, 1285,
8605 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
8606 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
8607 : 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291,
8608 : 1292, 303, 304, 305, 306, 307, 308, 309, 310, 311,
8609 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
8610 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
8611 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
8612 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
8613 : 344, 345, 346, 1297, 0, 348, 0, 349, 350, 351,
8614 : 352, 353, 0, 354, 0, 355, 356, 357, 0, 358,
8615 : 359, 360, 361, 362, 0, 363, 1300, 0, 365, 366,
8616 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
8617 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
8618 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 393,
8619 : 394, 0, 395, 0, 396, 397, 398, 399, 400, 3470,
8620 : 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 3471, 1314,
8621 : 412, 413, 414, 415, 416, 417, 418, 3472, 0, 419,
8622 : 1315, 421, 422, 423, 0, 424, 425, 426, 1316, 1317,
8623 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
8624 : 1318, 438, 439, 440, 441, 442, 443, 444, 445, 446,
8625 : 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
8626 : 457, 1321, 459, 0, 460, 461, 462, 463, 0, 1324,
8627 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
8628 : 0, 862, 474, 475, 476, 0, 0, 477, 478, 479,
8629 : 480, 481, 482, 1327, 484, 485, 486, 487, 488, 489,
8630 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
8631 : 1328, 500, 501, 502, 503, 504, 0, 505, 506, 507,
8632 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
8633 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
8634 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
8635 : 536, 537, 538, 539, 540, 541, 3473, 543, 544, 545,
8636 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
8637 : 555, 556, 1331, 557, 558, 559, 560, 561, 562, 563,
8638 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
8639 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 1333,
8640 : 583, 0, 584, 585, 1334, 0, 586, 587, 588, 589,
8641 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
8642 : 597, 598, 1337, 600, 1338, 0, 602, 603, 604, 605,
8643 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
8644 : 614, 615, 1341, 0, 616, 617, 618, 619, 620, 621,
8645 : 622, 0, 623, 624, 625, 626, 627, 628, 629, 0,
8646 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
8647 : 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350,
8648 : 3474, 648, 649, 650, 0, 0, 0, 0, 0, 0,
8649 : 234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8650 : 0, 0, 0, 0, 0, 0, 3475, 235, 236, 237,
8651 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
8652 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
8653 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
8654 : 259, 260, 261, 262, 0, 263, 264, 265, 266, 267,
8655 : 268, 269, 0, 1281, 270, 271, 272, 273, 274, 0,
8656 : 275, 276, 277, 278, 1284, 0, 1285, 0, 281, 282,
8657 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
8658 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
8659 : 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303, 304,
8660 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
8661 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
8662 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
8663 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
8664 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
8665 : 1297, 0, 348, 0, 349, 350, 351, 352, 353, 0,
8666 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
8667 : 362, 0, 363, 1300, 0, 365, 366, 367, 0, 368,
8668 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
8669 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
8670 : 387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
8671 : 0, 396, 397, 398, 399, 400, 3470, 1306, 1307, 1308,
8672 : 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413, 414,
8673 : 415, 416, 417, 418, 0, 0, 419, 1315, 421, 422,
8674 : 423, 0, 424, 425, 426, 1316, 1317, 427, 428, 429,
8675 : 430, 431, 432, 433, 434, 435, 436, 1318, 438, 439,
8676 : 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
8677 : 450, 451, 452, 453, 454, 455, 456, 457, 1321, 459,
8678 : 0, 460, 461, 462, 463, 0, 1324, 465, 466, 467,
8679 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
8680 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
8681 : 1327, 484, 485, 486, 487, 488, 489, 490, 491, 492,
8682 : 493, 494, 495, 0, 496, 497, 498, 1328, 500, 501,
8683 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
8684 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
8685 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
8686 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
8687 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
8688 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 1331,
8689 : 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
8690 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
8691 : 576, 577, 578, 579, 580, 581, 1333, 583, 0, 584,
8692 : 585, 1334, 0, 586, 587, 588, 589, 590, 591, 592,
8693 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 1337,
8694 : 600, 1338, 0, 602, 603, 604, 605, 606, 607, 608,
8695 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 1341,
8696 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
8697 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
8698 : 0, 631, 632, 633, 634, 635, 636, 637, 1343, 1344,
8699 : 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648, 649,
8700 : 650, 0, 0, 0, 0, 0, 0, 234, 0, 0,
8701 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8702 : 0, 0, 0, 3920, 235, 236, 237, 238, 239, 240,
8703 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
8704 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
8705 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
8706 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
8707 : 1281, 270, 271, 272, 273, 274, 0, 275, 276, 277,
8708 : 278, 1284, 0, 1285, 0, 281, 282, 283, 284, 285,
8709 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
8710 : 295, 296, 297, 0, 298, 299, 300, 301, 1286, 1287,
8711 : 1288, 1289, 1290, 1291, 1292, 303, 304, 305, 306, 307,
8712 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
8713 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
8714 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
8715 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
8716 : 340, 341, 342, 343, 344, 345, 346, 1297, 0, 348,
8717 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
8718 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
8719 : 1300, 0, 365, 366, 367, 0, 368, 369, 370, 371,
8720 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
8721 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
8722 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 397,
8723 : 398, 399, 400, 3470, 1306, 1307, 1308, 1309, 1310, 1311,
8724 : 1312, 1313, 3471, 1314, 412, 413, 414, 415, 416, 417,
8725 : 418, 0, 0, 419, 1315, 421, 422, 423, 0, 424,
8726 : 425, 426, 1316, 1317, 427, 428, 429, 430, 431, 432,
8727 : 433, 434, 435, 436, 1318, 438, 439, 440, 441, 442,
8728 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
8729 : 453, 454, 455, 456, 457, 1321, 459, 0, 460, 461,
8730 : 462, 463, 0, 1324, 465, 466, 467, 468, 469, 470,
8731 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
8732 : 0, 477, 478, 479, 480, 481, 482, 1327, 484, 485,
8733 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
8734 : 0, 496, 497, 498, 1328, 500, 501, 502, 503, 504,
8735 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
8736 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
8737 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
8738 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 541,
8739 : 3473, 543, 544, 545, 546, 547, 548, 549, 550, 551,
8740 : 0, 552, 553, 554, 555, 556, 1331, 557, 558, 559,
8741 : 560, 561, 562, 563, 564, 565, 566, 0, 567, 568,
8742 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
8743 : 579, 580, 581, 1333, 583, 0, 584, 585, 1334, 0,
8744 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
8745 : 595, 596, 0, 0, 597, 598, 1337, 600, 1338, 0,
8746 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
8747 : 0, 611, 612, 613, 614, 615, 1341, 0, 616, 617,
8748 : 618, 619, 620, 621, 622, 0, 623, 624, 625, 626,
8749 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
8750 : 633, 634, 635, 636, 637, 1343, 1344, 1345, 1346, 642,
8751 : 1347, 1348, 1349, 1350, 3474, 648, 649, 650, 0, 0,
8752 : 0, 0, 0, 0, 234, 0, 0, 0, 0, 0,
8753 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
8754 : 56, 235, 236, 237, 238, 239, 240, 241, 242, 243,
8755 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
8756 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
8757 : 255, 256, 257, 258, 259, 260, 261, 262, 0, 263,
8758 : 264, 265, 266, 267, 268, 269, 0, 1281, 270, 271,
8759 : 272, 273, 274, 0, 275, 276, 277, 278, 1284, 0,
8760 : 1285, 0, 281, 282, 283, 284, 285, 286, 287, 288,
8761 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
8762 : 0, 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290,
8763 : 1291, 1292, 303, 304, 305, 306, 307, 308, 309, 310,
8764 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
8765 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
8766 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
8767 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
8768 : 343, 344, 345, 346, 1297, 0, 348, 0, 349, 350,
8769 : 351, 352, 353, 0, 354, 0, 355, 356, 357, 0,
8770 : 358, 359, 360, 361, 362, 0, 363, 1300, 0, 365,
8771 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
8772 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
8773 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
8774 : 393, 394, 0, 395, 0, 396, 397, 398, 399, 400,
8775 : 3470, 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410,
8776 : 1314, 412, 413, 414, 415, 416, 417, 418, 0, 0,
8777 : 419, 1315, 421, 422, 423, 0, 424, 425, 426, 1316,
8778 : 1317, 427, 428, 429, 430, 431, 432, 433, 434, 435,
8779 : 436, 1318, 438, 439, 440, 441, 442, 443, 444, 445,
8780 : 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
8781 : 456, 457, 1321, 459, 0, 460, 461, 462, 463, 0,
8782 : 1324, 465, 466, 467, 468, 469, 470, 0, 471, 472,
8783 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
8784 : 479, 480, 481, 482, 1327, 484, 485, 486, 487, 488,
8785 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
8786 : 498, 1328, 500, 501, 502, 503, 504, 0, 505, 506,
8787 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
8788 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
8789 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
8790 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
8791 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
8792 : 554, 555, 556, 1331, 557, 558, 559, 560, 561, 562,
8793 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
8794 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
8795 : 1333, 583, 0, 584, 585, 1334, 0, 586, 587, 588,
8796 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
8797 : 0, 597, 598, 1337, 600, 1338, 0, 602, 603, 604,
8798 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
8799 : 613, 614, 615, 1341, 0, 616, 617, 618, 619, 620,
8800 : 621, 622, 0, 623, 624, 625, 626, 627, 628, 629,
8801 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
8802 : 636, 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349,
8803 : 1350, 647, 648, 649, 650, 0, 0, 0, 0, 0,
8804 : 0, 234, 0, 0, 0, 0, 0, 0, 0, 0,
8805 : 0, 0, 0, 0, 0, 0, 0, 4922, 235, 236,
8806 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
8807 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
8808 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
8809 : 258, 259, 260, 261, 262, 0, 263, 264, 265, 266,
8810 : 267, 268, 269, 0, 1281, 270, 271, 272, 273, 274,
8811 : 0, 275, 276, 277, 278, 1284, 0, 1285, 0, 281,
8812 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
8813 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
8814 : 300, 301, 1286, 1287, 1288, 1289, 1290, 1291, 1292, 303,
8815 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
8816 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
8817 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
8818 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
8819 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
8820 : 346, 1297, 0, 348, 0, 349, 350, 351, 352, 353,
8821 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
8822 : 361, 362, 0, 363, 1300, 0, 365, 366, 367, 0,
8823 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
8824 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
8825 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 0,
8826 : 395, 0, 396, 397, 398, 399, 400, 3470, 1306, 1307,
8827 : 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314, 412, 413,
8828 : 414, 415, 416, 417, 418, 0, 0, 419, 1315, 421,
8829 : 422, 423, 0, 424, 425, 426, 1316, 1317, 427, 428,
8830 : 429, 430, 431, 432, 433, 434, 435, 436, 1318, 438,
8831 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
8832 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 1321,
8833 : 459, 0, 460, 461, 462, 463, 0, 1324, 465, 466,
8834 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
8835 : 474, 475, 476, 0, 0, 477, 478, 479, 480, 481,
8836 : 482, 1327, 484, 485, 486, 487, 488, 489, 490, 491,
8837 : 492, 493, 494, 495, 0, 496, 497, 498, 1328, 500,
8838 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
8839 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
8840 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
8841 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
8842 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
8843 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
8844 : 1331, 557, 558, 559, 560, 561, 562, 563, 564, 565,
8845 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
8846 : 575, 576, 577, 578, 579, 580, 581, 1333, 583, 0,
8847 : 584, 585, 1334, 0, 586, 587, 588, 589, 590, 591,
8848 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
8849 : 1337, 600, 1338, 0, 602, 603, 604, 605, 606, 607,
8850 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
8851 : 1341, 0, 616, 617, 618, 619, 620, 621, 622, 0,
8852 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
8853 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 1343,
8854 : 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350, 647, 648,
8855 : 649, 650, 0, 0, 0, 0, 0, 0, 967, 0,
8856 : 1603, 717, 0, 0, 0, 0, 778, 0, 0, 0,
8857 : 0, 0, 0, 0, 6134, 235, 236, 237, 238, 239,
8858 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
8859 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
8860 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
8861 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
8862 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
8863 : 277, 278, 279, 0, 280, 0, 281, 282, 283, 284,
8864 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
8865 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
8866 : 0, 0, 302, 0, 0, 0, 303, 304, 305, 306,
8867 : 307, 308, 309, 310, 311, 5922, 312, 0, 313, 314,
8868 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
8869 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
8870 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
8871 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 1829,
8872 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
8873 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
8874 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
8875 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
8876 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
8877 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
8878 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
8879 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
8880 : 417, 418, 0, 0, 419, 420, 421, 422, 423, 0,
8881 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
8882 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
8883 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
8884 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
8885 : 461, 462, 463, 0, 464, 465, 466, 467, 468, 469,
8886 : 470, 0, 471, 472, 473, 1830, 0, 474, 475, 476,
8887 : 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
8888 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
8889 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
8890 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
8891 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
8892 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
8893 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
8894 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
8895 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
8896 : 559, 560, 561, 562, 563, 564, 565, 566, 0, 567,
8897 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
8898 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
8899 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
8900 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
8901 : 1831, 602, 603, 604, 605, 606, 607, 608, 609, 610,
8902 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
8903 : 617, 618, 619, 620, 621, 622, 0, 623, 624, 625,
8904 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
8905 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
8906 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 0,
8907 : 0, 0, 0, 0, 0, 967, 0, 0, 0, 0,
8908 : 0, 0, 1604, 1605, 5923, 0, 0, 0, 0, 0,
8909 : 0, 5924, 235, 236, 237, 238, 239, 240, 241, 242,
8910 : 243, 0, 244, 245, 246, 3, 4, 0, 0, 0,
8911 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
8912 : 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
8913 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
8914 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
8915 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
8916 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
8917 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
8918 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
8919 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
8920 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
8921 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
8922 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
8923 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
8924 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 357,
8925 : 0, 358, 359, 360, 361, 362, 0, 363, 364, 0,
8926 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 373,
8927 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
8928 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
8929 : 392, 393, 394, 0, 395, 0, 396, 397, 398, 399,
8930 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
8931 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
8932 : 0, 419, 420, 421, 422, 423, 0, 424, 425, 426,
8933 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
8934 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
8935 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
8936 : 455, 456, 457, 458, 459, 0, 460, 461, 462, 463,
8937 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
8938 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
8939 : 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
8940 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
8941 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
8942 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
8943 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
8944 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
8945 : 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
8946 : 544, 545, 546, 547, 548, 549, 550, 551, 40, 552,
8947 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
8948 : 562, 563, 564, 565, 566, 0, 567, 568, 569, 570,
8949 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
8950 : 581, 582, 583, 0, 584, 585, 0, 44, 586, 587,
8951 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
8952 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
8953 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
8954 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
8955 : 620, 1206, 622, 0, 623, 624, 625, 626, 627, 628,
8956 : 629, 0, 0, 630, 0, 49, 631, 632, 633, 634,
8957 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
8958 : 645, 646, 647, 648, 649, 650, 1046, 0, 0, 50,
8959 : 0, 0, 234, 0, 0, 0, 0, 0, 0, 0,
8960 : 0, 0, 0, 0, 0, 0, 0, 0, 56, 235,
8961 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
8962 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
8963 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
8964 : 257, 258, 259, 260, 261, 262, 0, 263, 264, 265,
8965 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
8966 : 274, 0, 275, 276, 277, 278, 279, 0, 280, 0,
8967 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
8968 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
8969 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
8970 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
8971 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
8972 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
8973 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
8974 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
8975 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
8976 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
8977 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
8978 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
8979 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
8980 : 0, 386, 387, 388, 389, 390, 391, 392, 393, 394,
8981 : 0, 395, 0, 396, 397, 398, 399, 400, 401, 402,
8982 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
8983 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
8984 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
8985 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
8986 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
8987 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
8988 : 458, 459, 0, 460, 461, 462, 463, 0, 464, 465,
8989 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
8990 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 480,
8991 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
8992 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
8993 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
8994 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
8995 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
8996 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
8997 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
8998 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
8999 : 556, 0, 557, 558, 559, 560, 561, 562, 563, 564,
9000 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
9001 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
9002 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
9003 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
9004 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
9005 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
9006 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
9007 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
9008 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
9009 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
9010 : 648, 649, 650, 0, 0, 0, 0, 0, 0, 658,
9011 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9012 : 0, 0, 0, 0, 0, 5666, 235, 236, 237, 238,
9013 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
9014 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
9015 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
9016 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
9017 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
9018 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
9019 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
9020 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
9021 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
9022 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
9023 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
9024 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
9025 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
9026 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
9027 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
9028 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
9029 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
9030 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
9031 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
9032 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
9033 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
9034 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
9035 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
9036 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
9037 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
9038 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
9039 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
9040 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
9041 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
9042 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
9043 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
9044 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
9045 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
9046 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
9047 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
9048 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
9049 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
9050 : 550, 551, 40, 552, 553, 554, 555, 556, 0, 557,
9051 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
9052 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
9053 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
9054 : 0, 44, 586, 0, 588, 589, 590, 591, 592, 593,
9055 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
9056 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
9057 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
9058 : 616, 617, 618, 619, 620, 1206, 622, 0, 623, 0,
9059 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 49,
9060 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
9061 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
9062 : 0, 0, 0, 50, 0, 0, 658, 0, 0, 0,
9063 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9064 : 0, 0, 56, 235, 236, 237, 238, 239, 240, 241,
9065 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
9066 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
9067 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
9068 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
9069 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
9070 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
9071 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
9072 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
9073 : 2909, 0, 0, 0, 303, 304, 305, 306, 307, 308,
9074 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
9075 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
9076 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
9077 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
9078 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
9079 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
9080 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
9081 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
9082 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
9083 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
9084 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
9085 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
9086 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
9087 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
9088 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
9089 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
9090 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
9091 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
9092 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
9093 : 471, 472, 473, 0, 862, 474, 475, 476, 0, 0,
9094 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
9095 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
9096 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
9097 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
9098 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
9099 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
9100 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
9101 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
9102 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
9103 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
9104 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
9105 : 580, 581, 582, 583, 0, 584, 585, 0, 2910, 2911,
9106 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
9107 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
9108 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
9109 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
9110 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
9111 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
9112 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
9113 : 644, 645, 646, 647, 648, 649, 650, 0, 0, 0,
9114 : 0, 0, 0, 658, 0, 0, 0, 0, 0, 0,
9115 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 1863,
9116 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
9117 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
9118 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
9119 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
9120 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
9121 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
9122 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
9123 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
9124 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
9125 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
9126 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
9127 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
9128 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
9129 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
9130 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
9131 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
9132 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
9133 : 367, 0, 368, 369, 370, 371, 372, 0, 374, 375,
9134 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
9135 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
9136 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
9137 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
9138 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
9139 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
9140 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
9141 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
9142 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
9143 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
9144 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
9145 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
9146 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
9147 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
9148 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
9149 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
9150 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
9151 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
9152 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
9153 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
9154 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
9155 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
9156 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
9157 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
9158 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
9159 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
9160 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
9161 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
9162 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
9163 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
9164 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
9165 : 647, 648, 649, 650, 0, 0, 0, 0, 0, 0,
9166 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9167 : 0, 0, 0, 0, 0, 0, 1415, 235, 236, 237,
9168 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
9169 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
9170 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
9171 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
9172 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
9173 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
9174 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
9175 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
9176 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
9177 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
9178 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
9179 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
9180 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
9181 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
9182 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
9183 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
9184 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
9185 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
9186 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
9187 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
9188 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
9189 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
9190 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
9191 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
9192 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
9193 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
9194 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
9195 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
9196 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
9197 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
9198 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
9199 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
9200 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
9201 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
9202 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
9203 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
9204 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
9205 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
9206 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
9207 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
9208 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
9209 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
9210 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
9211 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
9212 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
9213 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
9214 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
9215 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
9216 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
9217 : 650, 0, 0, 0, 0, 0, 0, 658, 0, 0,
9218 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9219 : 0, 0, 0, 3533, 235, 236, 237, 238, 239, 240,
9220 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
9221 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
9222 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
9223 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
9224 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
9225 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
9226 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
9227 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
9228 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
9229 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
9230 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
9231 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
9232 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
9233 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
9234 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
9235 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
9236 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
9237 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
9238 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
9239 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
9240 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
9241 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
9242 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
9243 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
9244 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
9245 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
9246 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
9247 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
9248 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
9249 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
9250 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
9251 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
9252 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
9253 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
9254 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
9255 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
9256 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
9257 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
9258 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
9259 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
9260 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
9261 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
9262 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
9263 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
9264 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
9265 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
9266 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
9267 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
9268 : 643, 644, 645, 646, 647, 648, 649, 650, 0, 0,
9269 : 0, 0, 0, 0, 658, 0, 0, 0, 0, 0,
9270 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9271 : 4208, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9272 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9273 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9274 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9275 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9276 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
9277 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9278 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9279 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9280 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9281 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9282 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9283 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9284 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9285 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
9286 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9287 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9288 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9289 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9290 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9291 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9292 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9293 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9294 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9295 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9296 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9297 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9298 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9299 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9300 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9301 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9302 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9303 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9304 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9305 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9306 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9307 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9308 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9309 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9310 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9311 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9312 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9313 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9314 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9315 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9316 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9317 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9318 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9319 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9320 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9321 : 0, 0, 0, 0, 2110, 0, 0, 0, 0, 0,
9322 : 0, 2111, 0, 0, 2112, 0, 0, 4851, 2113, 2114,
9323 : 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124,
9324 : 2125, 2126, 2127, 2128, 2129, 2130, 2131, 2132, 0, 2133,
9325 : 2134, 2135, 2136, 2137, 2138, 2139, 2140, 2141, 2142, 2143,
9326 : 2144, 2145, 2146, 2147, 2148, 2149, 2150, 2151, 2152, 2153,
9327 : 2154, 2155, 2156, 2157, 2158, 2159, 2160, 2161, 2162, 2163,
9328 : 0, 0, 2164, 2165, 2166, 2167, 2168, 2169, 2170, 2171,
9329 : 2172, 2173, 2174, 2175, 2176, 2177, 2178, 2179, 2180, 2181,
9330 : 2182, 2183, 2184, 2185, 2186, 2187, 2188, 2189, 2190, 2191,
9331 : 0, 2192, 2193, 2194, 2195, 2196, 2197, 2198, 2199, 2200,
9332 : 2201, 2202, 2203, 2204, 2205, 2206, 0, 2207, 2208, 2209,
9333 : 2210, 2211, 2212, 2213, 2214, 2215, 2216, 2217, 2218, 2219,
9334 : 2220, 2221, 2222, 2223, 2224, 2225, 2226, 2227, 2228, 2229,
9335 : 2230, 2231, 2232, 2233, 2234, 2235, 2236, 2237, 2238, 2239,
9336 : 2240, 2241, 2242, 2243, 0, 2244, 2245, 2246, 2247, 2248,
9337 : 2249, 2250, 2251, 2252, 2253, 2254, 2255, 0, 0, 2256,
9338 : 2257, 2258, 2259, 0, 2260, 2261, 2262, 2263, 2264, 0,
9339 : 2265, 2266, 2267, 2268, 2269, 0, 2270, 2271, 0, 2272,
9340 : 2273, 2274, 0, 2275, 2276, 0, 2277, 2278, 2279, 2280,
9341 : 2281, 2282, 2283, 2284, 2285, 2286, 2287, 2288, 2289, 2290,
9342 : 2291, 2292, 2293, 2294, 2295, 2296, 2297, 2298, 2299, 2300,
9343 : 2301, 2302, 0, 2303, 0, 2304, 2305, 2306, 2307, 2308,
9344 : 2309, 2310, 2311, 2312, 2313, 2314, 2315, 2316, 2317, 2318,
9345 : 2319, 2320, 2321, 2322, 2323, 2324, 2325, 2326, 2327, 2328,
9346 : 2329, 2330, 2331, 2332, 2333, 0, 2334, 2335, 2336, 2337,
9347 : 2338, 2339, 2340, 2341, 2342, 2343, 2344, 2345, 2346, 2347,
9348 : 2348, 2349, 2350, 0, 2351, 2352, 0, 2353, 2354, 2355,
9349 : 2356, 2357, 2358, 2359, 2360, 2361, 2362, 2363, 2364, 2365,
9350 : 2366, 2367, 2368, 2369, 2370, 2371, 2372, 2373, 2374, 2375,
9351 : 2376, 2377, 2378, 2379, 2380, 2381, 2382, 0, 2383, 2384,
9352 : 2385, 0, 2386, 2387, 2388, 2389, 2390, 0, 2391, 2392,
9353 : 2393, 2394, 0, 0, 2395, 2396, 2397, 2398, 2399, 2400,
9354 : 2401, 2402, 2403, 2404, 2405, 2406, 2407, 2408, 2409, 2410,
9355 : 2411, 2412, 2413, 0, 2414, 2415, 2416, 2417, 2418, 2419,
9356 : 2420, 2421, 2422, 2423, 2424, 2425, 2426, 2427, 2428, 2429,
9357 : 2430, 2431, 2432, 2433, 2434, 2435, 2436, 2437, 2438, 2439,
9358 : 2440, 2441, 2442, 2443, 2444, 2445, 2446, 0, 2447, 2448,
9359 : 2449, 2450, 2451, 2452, 2453, 2454, 2455, 2456, 2457, 2458,
9360 : 2459, 2460, 2461, 2462, 2463, 0, 2464, 2465, 2466, 2467,
9361 : 2468, 2469, 2470, 2471, 2472, 2473, 2474, 2475, 2476, 2477,
9362 : 2478, 2479, 2480, 2481, 2482, 2483, 2484, 2485, 2486, 2487,
9363 : 2488, 2489, 2490, 2491, 2492, 2493, 2494, 2495, 2496, 2497,
9364 : 2498, 2499, 2500, 2501, 2502, 2503, 2504, 2505, 2506, 2507,
9365 : 2508, 2509, 2510, 2511, 2512, 2513, 2514, 2515, 2516, 0,
9366 : 2517, 2518, 2519, 2520, 2521, 2522, 2523, 2524, 2525, 2526,
9367 : 2527, 2528, 2529, 2530, 2531, 2532, 0, 2533, 2534, 2535,
9368 : 2536, 2537, 2538, 2539, 2540, 2541, 2542, 2543, 2544, 2545,
9369 : 2546, 2547, 2548, 0, 2549, 2550, 2551, 2552, 2553, 2554,
9370 : 2555, 0, 2556, 0, 0, 0, 0, 2557, 2558, 2559,
9371 : 2560, 2561, 2562, 2563, 2564, 2565, 2566, 2567, 2568, 2569,
9372 : 2570, 2571, 0, 2572, 2573, 0, 2574, 0, 0, 0,
9373 : 0, 0, 0, 0, 0, 2575, 2576, 2577, 2578, 2579,
9374 : 2580, 2581, 2582, 2583, 879, 0, 1603, 717, 0, 0,
9375 : 0, 982, 778, 0, 0, 0, 0, 0, 983, 984,
9376 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9377 : 1741, 244, 245, 246, 1742, 1743, 1744, 1745, 1746, 1747,
9378 : 1748, 247, 248, 249, 1749, 250, 251, 252, 253, 254,
9379 : 255, 256, 257, 0, 880, 260, 881, 882, 1750, 263,
9380 : 264, 265, 266, 267, 268, 269, 1751, 1752, 270, 271,
9381 : 883, 884, 274, 1753, 275, 276, 277, 278, 0, 1754,
9382 : 280, 1755, 281, 282, 283, 284, 285, 286, 287, 288,
9383 : 289, 290, 291, 1756, 292, 293, 294, 295, 296, 297,
9384 : 1757, 298, 299, 300, 301, 1758, 1759, 1760, 302, 1761,
9385 : 1762, 1763, 303, 304, 305, 306, 307, 308, 885, 886,
9386 : 311, 1764, 312, 1765, 313, 314, 315, 316, 317, 318,
9387 : 319, 1766, 320, 321, 322, 323, 1767, 1768, 324, 325,
9388 : 887, 327, 328, 1769, 329, 330, 331, 332, 1770, 333,
9389 : 334, 335, 336, 337, 1771, 338, 339, 340, 341, 0,
9390 : 343, 344, 345, 346, 0, 1772, 348, 1773, 349, 350,
9391 : 351, 888, 353, 1774, 354, 1775, 355, 356, 357, 1776,
9392 : 358, 359, 360, 361, 362, 1777, 363, 0, 1778, 0,
9393 : 366, 367, 1779, 368, 369, 370, 371, 372, 373, 374,
9394 : 375, 376, 377, 1780, 378, 379, 380, 381, 382, 383,
9395 : 384, 385, 1781, 386, 387, 0, 389, 390, 391, 392,
9396 : 889, 890, 1782, 891, 1783, 396, 397, 398, 399, 400,
9397 : 892, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9398 : 0, 412, 413, 414, 415, 416, 417, 418, 1784, 1785,
9399 : 419, 0, 421, 422, 423, 1786, 424, 425, 426, 1787,
9400 : 1788, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9401 : 436, 0, 438, 439, 440, 441, 442, 443, 444, 445,
9402 : 893, 447, 894, 449, 450, 451, 452, 453, 454, 455,
9403 : 456, 4533, 0, 459, 1789, 460, 461, 462, 463, 1790,
9404 : 0, 465, 895, 467, 468, 469, 470, 1791, 471, 472,
9405 : 473, 1792, 1793, 4534, 475, 476, 1794, 1795, 477, 478,
9406 : 0, 480, 481, 482, 0, 484, 485, 486, 487, 488,
9407 : 489, 490, 491, 492, 493, 494, 495, 1796, 496, 497,
9408 : 498, 0, 500, 0, 502, 503, 504, 1797, 505, 506,
9409 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 896,
9410 : 517, 518, 519, 1798, 520, 521, 522, 523, 524, 525,
9411 : 526, 527, 528, 529, 530, 531, 532, 1799, 533, 534,
9412 : 535, 536, 537, 538, 539, 540, 0, 542, 543, 544,
9413 : 545, 546, 547, 548, 549, 550, 551, 1800, 552, 553,
9414 : 554, 555, 556, 1801, 557, 558, 2735, 560, 561, 562,
9415 : 563, 564, 898, 566, 1802, 567, 568, 569, 570, 571,
9416 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9417 : 0, 583, 1803, 584, 585, 1804, 1805, 586, 587, 588,
9418 : 589, 590, 591, 592, 593, 1806, 594, 899, 900, 1807,
9419 : 1808, 597, 598, 0, 600, 0, 1809, 602, 603, 604,
9420 : 605, 606, 607, 608, 609, 610, 1810, 1811, 611, 612,
9421 : 613, 614, 615, 1812, 1813, 616, 617, 618, 619, 620,
9422 : 0, 901, 1814, 623, 624, 625, 626, 627, 628, 629,
9423 : 1815, 1816, 630, 1817, 1818, 631, 632, 633, 634, 635,
9424 : 636, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9425 : 0, 0, 648, 649, 650, 0, 0, 0, 0, 0,
9426 : 0, 0, 0, 0, 0, 988, 989, 990, 4535, 4536,
9427 : 993, 994, 995, 996, 879, 0, 1603, 717, 0, 0,
9428 : 0, 982, 778, 0, 0, 0, 0, 0, 983, 984,
9429 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9430 : 1741, 244, 245, 246, 1742, 1743, 1744, 1745, 1746, 1747,
9431 : 1748, 247, 248, 249, 1749, 250, 251, 252, 253, 254,
9432 : 255, 256, 257, 0, 880, 260, 881, 882, 1750, 263,
9433 : 264, 265, 266, 267, 268, 269, 1751, 1752, 270, 271,
9434 : 883, 884, 274, 1753, 275, 276, 277, 278, 0, 1754,
9435 : 280, 1755, 281, 282, 283, 284, 285, 286, 287, 288,
9436 : 289, 290, 291, 1756, 292, 293, 294, 295, 296, 297,
9437 : 1757, 298, 299, 300, 301, 1758, 1759, 1760, 302, 1761,
9438 : 1762, 1763, 303, 304, 305, 306, 307, 308, 885, 886,
9439 : 311, 1764, 312, 1765, 313, 314, 315, 316, 317, 318,
9440 : 319, 1766, 320, 321, 322, 323, 1767, 1768, 324, 325,
9441 : 887, 327, 328, 1769, 329, 330, 331, 332, 1770, 333,
9442 : 334, 335, 336, 337, 1771, 338, 339, 340, 341, 0,
9443 : 343, 344, 345, 346, 0, 1772, 348, 1773, 349, 350,
9444 : 351, 888, 353, 1774, 354, 1775, 355, 356, 357, 1776,
9445 : 358, 359, 360, 361, 362, 1777, 363, 0, 1778, 0,
9446 : 366, 367, 1779, 368, 369, 370, 371, 372, 373, 374,
9447 : 375, 376, 377, 1780, 378, 379, 380, 381, 382, 383,
9448 : 384, 385, 1781, 386, 387, 0, 389, 390, 391, 392,
9449 : 889, 890, 1782, 891, 1783, 396, 397, 398, 399, 400,
9450 : 892, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9451 : 0, 412, 413, 414, 415, 416, 417, 418, 1784, 1785,
9452 : 419, 0, 421, 422, 423, 1786, 424, 425, 426, 1787,
9453 : 1788, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9454 : 436, 0, 438, 439, 440, 441, 442, 443, 444, 445,
9455 : 893, 447, 894, 449, 450, 451, 452, 453, 454, 455,
9456 : 456, 4994, 0, 459, 1789, 460, 461, 462, 463, 1790,
9457 : 0, 465, 895, 467, 468, 469, 470, 1791, 471, 472,
9458 : 473, 1792, 1793, 4534, 475, 476, 1794, 1795, 477, 478,
9459 : 0, 480, 481, 482, 0, 484, 485, 486, 487, 488,
9460 : 489, 490, 491, 492, 493, 494, 495, 1796, 496, 497,
9461 : 498, 0, 500, 0, 502, 503, 504, 1797, 505, 506,
9462 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 896,
9463 : 517, 518, 519, 1798, 520, 521, 522, 523, 524, 525,
9464 : 526, 527, 528, 529, 530, 531, 532, 1799, 533, 534,
9465 : 535, 536, 537, 538, 539, 540, 0, 542, 543, 544,
9466 : 545, 546, 547, 548, 549, 550, 551, 1800, 552, 553,
9467 : 554, 555, 556, 1801, 557, 558, 2735, 560, 561, 562,
9468 : 563, 564, 898, 566, 1802, 567, 568, 569, 570, 571,
9469 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9470 : 0, 583, 1803, 584, 585, 1804, 1805, 586, 587, 588,
9471 : 589, 590, 591, 592, 593, 1806, 594, 899, 900, 1807,
9472 : 1808, 597, 598, 0, 600, 0, 1809, 602, 603, 604,
9473 : 605, 606, 607, 608, 609, 610, 1810, 1811, 611, 612,
9474 : 613, 614, 615, 1812, 1813, 616, 617, 618, 619, 620,
9475 : 0, 901, 1814, 623, 624, 625, 626, 627, 628, 629,
9476 : 1815, 1816, 630, 1817, 1818, 631, 632, 633, 634, 635,
9477 : 636, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9478 : 0, 0, 648, 649, 650, 0, 0, 0, 0, 0,
9479 : 0, 0, 0, 0, 0, 988, 989, 990, 4535, 4536,
9480 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9481 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9482 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9483 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9484 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9485 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9486 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9487 : 272, 273, 274, 0, 275, 986, 277, 278, 279, 0,
9488 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9489 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9490 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9491 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9492 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9493 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9494 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9495 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9496 : 343, 344, 345, 346, 347, 0, 987, 0, 349, 350,
9497 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9498 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9499 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9500 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9501 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9502 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9503 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9504 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9505 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9506 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9507 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9508 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9509 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9510 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9511 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9512 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9513 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9514 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9515 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9516 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9517 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9518 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9519 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9520 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9521 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9522 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9523 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9524 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9525 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9526 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9527 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9528 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9529 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9530 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9531 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9532 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9533 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9534 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9535 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9536 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9537 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9538 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9539 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9540 : 272, 273, 274, 0, 275, 1103, 277, 278, 279, 0,
9541 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9542 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9543 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9544 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9545 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9546 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9547 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9548 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9549 : 343, 344, 345, 346, 347, 0, 1104, 0, 349, 350,
9550 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9551 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9552 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9553 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9554 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9555 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9556 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9557 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9558 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9559 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9560 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9561 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9562 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9563 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9564 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9565 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9566 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9567 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9568 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9569 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9570 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9571 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9572 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9573 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9574 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9575 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9576 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9577 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9578 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9579 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9580 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9581 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9582 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9583 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9584 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9585 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9586 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9587 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9588 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9589 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9590 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9591 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9592 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9593 : 272, 273, 274, 0, 275, 1169, 277, 278, 279, 0,
9594 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9595 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9596 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9597 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9598 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9599 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9600 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9601 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9602 : 343, 344, 345, 346, 347, 0, 1170, 0, 349, 350,
9603 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9604 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9605 : 366, 367, 0, 368, 369, 370, 371, 1171, 0, 374,
9606 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9607 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9608 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9609 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9610 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9611 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9612 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9613 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9614 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9615 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9616 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9617 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9618 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9619 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9620 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9621 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9622 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9623 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9624 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9625 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9626 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9627 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9628 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9629 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9630 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9631 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9632 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9633 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9634 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9635 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9636 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9637 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9638 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9639 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9640 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9641 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9642 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9643 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9644 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9645 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9646 : 272, 273, 274, 0, 275, 1846, 277, 278, 279, 0,
9647 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9648 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9649 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9650 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9651 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9652 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9653 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9654 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9655 : 343, 344, 345, 346, 347, 0, 1847, 0, 349, 350,
9656 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9657 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9658 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9659 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9660 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9661 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9662 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9663 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9664 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9665 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9666 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9667 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9668 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9669 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9670 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9671 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9672 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9673 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9674 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9675 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9676 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9677 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9678 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9679 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9680 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9681 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9682 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9683 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9684 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9685 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9686 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9687 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9688 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9689 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9690 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9691 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9692 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9693 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9694 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9695 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9696 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9697 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9698 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9699 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
9700 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9701 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9702 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9703 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9704 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9705 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9706 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9707 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9708 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
9709 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9710 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9711 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9712 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9713 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9714 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9715 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9716 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9717 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9718 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9719 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9720 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9721 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9722 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9723 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9724 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9725 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9726 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9727 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9728 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9729 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9730 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9731 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9732 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9733 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9734 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9735 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9736 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9737 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9738 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9739 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9740 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9741 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9742 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9743 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9744 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9745 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9746 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9747 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9748 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9749 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9750 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9751 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9752 : 272, 273, 274, 0, 275, 3598, 277, 278, 279, 0,
9753 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9754 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9755 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9756 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9757 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9758 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9759 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9760 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9761 : 343, 344, 345, 346, 347, 0, 3599, 0, 349, 350,
9762 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9763 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9764 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9765 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9766 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9767 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9768 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9769 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9770 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9771 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9772 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9773 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9774 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9775 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9776 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
9777 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9778 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9779 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9780 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9781 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9782 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9783 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9784 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9785 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9786 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9787 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9788 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9789 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9790 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9791 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9792 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9793 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9794 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9795 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9796 : 646, 647, 648, 649, 650, 0, 0, 0, 0, 0,
9797 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9798 : 993, 994, 995, 996, 658, 0, 0, 0, 0, 0,
9799 : 0, 982, 0, 0, 0, 0, 0, 0, 983, 984,
9800 : 985, 235, 236, 237, 238, 239, 240, 241, 242, 243,
9801 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
9802 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
9803 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
9804 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
9805 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
9806 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
9807 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
9808 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
9809 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
9810 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
9811 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
9812 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
9813 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
9814 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
9815 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
9816 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
9817 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
9818 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
9819 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
9820 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
9821 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
9822 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
9823 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
9824 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
9825 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
9826 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
9827 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
9828 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
9829 : 473, 0, 0, 5646, 475, 476, 0, 0, 477, 478,
9830 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
9831 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
9832 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
9833 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
9834 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
9835 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
9836 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
9837 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
9838 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
9839 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
9840 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
9841 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
9842 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
9843 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
9844 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
9845 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
9846 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
9847 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
9848 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
9849 : 646, 647, 648, 649, 650, 0, 0, 1740, 0, 0,
9850 : 0, 0, 0, 0, 0, 988, 989, 990, 991, 992,
9851 : 993, 994, 995, 996, 235, 236, 237, 238, 239, 240,
9852 : 241, 242, 243, 1741, 244, 245, 246, 1742, 1743, 1744,
9853 : 1745, 1746, 1747, 1748, 247, 248, 249, 1749, 250, 251,
9854 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
9855 : 262, 1750, 263, 264, 265, 266, 267, 268, 269, 1751,
9856 : 1752, 270, 271, 272, 273, 274, 1753, 275, 276, 277,
9857 : 278, 279, 1754, 280, 1755, 281, 282, 283, 284, 285,
9858 : 286, 287, 288, 289, 290, 291, 1756, 292, 293, 294,
9859 : 295, 296, 297, 1757, 298, 299, 300, 301, 1758, 1759,
9860 : 1760, 302, 1761, 1762, 1763, 303, 304, 305, 306, 307,
9861 : 308, 309, 310, 311, 1764, 312, 1765, 313, 314, 315,
9862 : 316, 317, 318, 319, 1766, 320, 321, 322, 323, 1767,
9863 : 1768, 324, 325, 326, 327, 328, 1769, 329, 330, 331,
9864 : 332, 1770, 333, 334, 335, 336, 337, 1771, 338, 339,
9865 : 340, 341, 342, 343, 344, 345, 346, 347, 1772, 348,
9866 : 1773, 349, 350, 351, 352, 353, 1774, 354, 1775, 355,
9867 : 356, 357, 1776, 358, 359, 360, 361, 362, 1777, 363,
9868 : 364, 1778, 365, 366, 367, 1779, 368, 369, 370, 371,
9869 : 372, 373, 374, 375, 376, 377, 1780, 378, 379, 380,
9870 : 381, 382, 383, 384, 385, 1781, 386, 387, 388, 389,
9871 : 390, 391, 392, 393, 394, 1782, 395, 1783, 396, 397,
9872 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
9873 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
9874 : 418, 1784, 1785, 419, 420, 421, 422, 423, 1786, 424,
9875 : 425, 426, 1787, 1788, 427, 428, 429, 430, 431, 432,
9876 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
9877 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
9878 : 453, 454, 455, 456, 457, 458, 459, 1789, 460, 461,
9879 : 462, 463, 1790, 464, 465, 466, 467, 468, 469, 470,
9880 : 1791, 471, 472, 473, 1792, 1793, 474, 475, 476, 1794,
9881 : 1795, 477, 478, 479, 480, 481, 482, 483, 484, 485,
9882 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
9883 : 1796, 496, 497, 498, 499, 500, 501, 502, 503, 504,
9884 : 1797, 505, 506, 507, 508, 509, 510, 511, 512, 513,
9885 : 514, 515, 516, 517, 518, 519, 1798, 520, 521, 522,
9886 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
9887 : 1799, 533, 534, 535, 536, 537, 538, 539, 540, 541,
9888 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
9889 : 1800, 552, 553, 554, 555, 556, 1801, 557, 558, 559,
9890 : 560, 561, 562, 563, 564, 565, 566, 1802, 567, 568,
9891 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
9892 : 579, 580, 581, 582, 583, 1803, 584, 585, 1804, 1805,
9893 : 586, 587, 588, 589, 590, 591, 592, 593, 1806, 594,
9894 : 595, 596, 1807, 1808, 597, 598, 599, 600, 601, 1809,
9895 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 1810,
9896 : 1811, 611, 612, 613, 614, 615, 1812, 1813, 616, 617,
9897 : 618, 619, 620, 621, 622, 1814, 623, 624, 625, 626,
9898 : 627, 628, 629, 1815, 1816, 630, 1817, 1818, 631, 632,
9899 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
9900 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
9901 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9902 : 0, 0, 0, 1819, 0, 235, 236, 237, 238, 239,
9903 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
9904 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
9905 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
9906 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
9907 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
9908 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
9909 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
9910 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
9911 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
9912 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
9913 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
9914 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
9915 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
9916 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
9917 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
9918 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
9919 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
9920 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
9921 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
9922 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
9923 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
9924 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
9925 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
9926 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
9927 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
9928 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
9929 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
9930 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
9931 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
9932 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
9933 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
9934 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
9935 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
9936 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
9937 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
9938 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
9939 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
9940 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
9941 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
9942 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
9943 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
9944 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
9945 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
9946 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
9947 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
9948 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
9949 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
9950 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
9951 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
9952 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
9953 : 0, 0, 0, 0, 868, 0, 235, 236, 237, 238,
9954 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
9955 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
9956 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
9957 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
9958 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
9959 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
9960 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
9961 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
9962 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
9963 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
9964 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
9965 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
9966 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
9967 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
9968 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
9969 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
9970 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
9971 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
9972 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
9973 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
9974 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
9975 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
9976 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
9977 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
9978 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
9979 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
9980 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
9981 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
9982 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
9983 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
9984 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
9985 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
9986 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
9987 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
9988 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
9989 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
9990 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
9991 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
9992 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
9993 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
9994 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
9995 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
9996 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
9997 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
9998 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
9999 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
10000 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
10001 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
10002 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
10003 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10004 : 0, 0, 0, 0, 0, 6103, 0, 235, 236, 237,
10005 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
10006 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
10007 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
10008 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
10009 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
10010 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
10011 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
10012 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
10013 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
10014 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
10015 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
10016 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
10017 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
10018 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
10019 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
10020 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
10021 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
10022 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
10023 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
10024 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
10025 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
10026 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
10027 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
10028 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
10029 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
10030 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
10031 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
10032 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
10033 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
10034 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
10035 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
10036 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
10037 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
10038 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
10039 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
10040 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
10041 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
10042 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
10043 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
10044 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
10045 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
10046 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
10047 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
10048 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
10049 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
10050 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
10051 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
10052 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
10053 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
10054 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
10055 : 0, 0, 0, 0, 0, 0, 6105, 0, 235, 236,
10056 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
10057 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
10058 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
10059 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
10060 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
10061 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
10062 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
10063 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
10064 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
10065 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
10066 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
10067 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
10068 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
10069 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
10070 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
10071 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
10072 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
10073 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
10074 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
10075 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
10076 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
10077 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
10078 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
10079 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
10080 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
10081 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
10082 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
10083 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
10084 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
10085 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
10086 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
10087 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
10088 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
10089 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
10090 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
10091 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
10092 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
10093 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
10094 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
10095 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
10096 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
10097 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
10098 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
10099 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
10100 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
10101 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
10102 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
10103 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
10104 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
10105 : 649, 650, 879, 0, 0, 0, 0, 0, 0, 0,
10106 : 0, 0, 0, 0, 0, 0, 0, 6234, 0, 235,
10107 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
10108 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
10109 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
10110 : 257, 0, 880, 260, 881, 882, 0, 263, 264, 265,
10111 : 266, 267, 268, 269, 0, 0, 270, 271, 883, 884,
10112 : 274, 0, 275, 276, 277, 278, 0, 0, 280, 0,
10113 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
10114 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
10115 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
10116 : 303, 304, 305, 306, 307, 308, 885, 886, 311, 0,
10117 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
10118 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
10119 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
10120 : 336, 337, 0, 338, 339, 340, 341, 0, 343, 344,
10121 : 345, 346, 0, 0, 348, 0, 349, 350, 351, 888,
10122 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
10123 : 360, 361, 362, 0, 363, 0, 0, 0, 366, 367,
10124 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
10125 : 377, 2731, 378, 379, 380, 381, 382, 383, 384, 385,
10126 : 0, 386, 387, 2732, 389, 390, 391, 392, 889, 890,
10127 : 0, 891, 0, 396, 397, 398, 399, 400, 892, 0,
10128 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
10129 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 0,
10130 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
10131 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
10132 : 438, 439, 440, 441, 442, 443, 444, 445, 893, 447,
10133 : 894, 449, 450, 451, 452, 453, 454, 455, 456, 0,
10134 : 0, 459, 0, 460, 461, 462, 463, 0, 0, 465,
10135 : 895, 467, 468, 469, 470, 0, 471, 472, 473, 0,
10136 : 0, 474, 475, 476, 0, 2733, 477, 478, 2734, 480,
10137 : 481, 482, 0, 484, 485, 486, 487, 488, 489, 490,
10138 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 0,
10139 : 500, 0, 502, 503, 504, 0, 505, 506, 507, 508,
10140 : 509, 510, 511, 512, 513, 514, 515, 896, 517, 518,
10141 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
10142 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
10143 : 537, 538, 539, 540, 0, 542, 543, 544, 545, 546,
10144 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
10145 : 556, 0, 557, 558, 2735, 560, 561, 562, 563, 564,
10146 : 898, 566, 0, 567, 568, 569, 570, 571, 572, 573,
10147 : 574, 575, 576, 577, 578, 579, 580, 581, 0, 583,
10148 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
10149 : 591, 592, 593, 0, 594, 899, 900, 0, 0, 597,
10150 : 598, 0, 600, 0, 0, 602, 603, 604, 605, 606,
10151 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
10152 : 615, 0, 0, 616, 617, 618, 619, 620, 0, 901,
10153 : 2736, 623, 624, 625, 626, 627, 628, 629, 0, 0,
10154 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 0,
10155 : 0, 0, 3957, 0, 0, 0, 0, 0, 0, 0,
10156 : 648, 649, 650, 0, 0, 0, 0, 0, 0, 235,
10157 : 236, 237, 238, 239, 240, 241, 242, 243, 2737, 244,
10158 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
10159 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
10160 : 257, 0, 880, 260, 881, 882, 0, 263, 264, 265,
10161 : 266, 267, 268, 269, 0, 0, 270, 271, 883, 884,
10162 : 274, 0, 275, 276, 277, 278, 0, 0, 280, 0,
10163 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
10164 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
10165 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
10166 : 303, 304, 305, 306, 307, 308, 885, 886, 311, 0,
10167 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
10168 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
10169 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
10170 : 336, 337, 0, 338, 339, 340, 341, 0, 343, 344,
10171 : 345, 346, 0, 0, 348, 0, 349, 350, 351, 888,
10172 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
10173 : 360, 361, 362, 0, 363, 0, 0, 0, 366, 367,
10174 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
10175 : 377, 2731, 378, 379, 380, 381, 382, 383, 384, 385,
10176 : 0, 386, 387, 2732, 389, 390, 391, 392, 889, 890,
10177 : 0, 891, 0, 396, 397, 398, 399, 400, 892, 0,
10178 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
10179 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 0,
10180 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
10181 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
10182 : 438, 439, 440, 441, 442, 443, 444, 445, 893, 447,
10183 : 894, 449, 450, 451, 452, 453, 454, 455, 456, 0,
10184 : 0, 459, 0, 460, 461, 462, 463, 0, 0, 465,
10185 : 895, 467, 468, 469, 470, 0, 471, 472, 473, 0,
10186 : 0, 474, 475, 476, 0, 2733, 477, 478, 2734, 480,
10187 : 481, 482, 0, 484, 485, 486, 487, 488, 489, 490,
10188 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 0,
10189 : 500, 0, 502, 503, 504, 0, 505, 506, 507, 508,
10190 : 509, 510, 511, 512, 513, 514, 515, 896, 517, 518,
10191 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
10192 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
10193 : 537, 538, 539, 540, 0, 542, 543, 544, 545, 546,
10194 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
10195 : 556, 0, 557, 558, 2735, 560, 561, 562, 563, 564,
10196 : 898, 566, 0, 567, 568, 569, 570, 571, 572, 573,
10197 : 574, 575, 576, 577, 578, 579, 580, 581, 0, 583,
10198 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
10199 : 591, 592, 593, 0, 594, 899, 900, 0, 0, 597,
10200 : 598, 0, 600, 0, 0, 602, 603, 604, 605, 606,
10201 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
10202 : 615, 0, 0, 616, 617, 618, 619, 620, 0, 901,
10203 : 2736, 623, 624, 625, 626, 627, 628, 629, 0, 0,
10204 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 0,
10205 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10206 : 648, 649, 650, 967, 0, 1603, 717, 0, 0, 0,
10207 : 0, 778, 0, 0, 0, 0, 0, 0, 2737, 0,
10208 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
10209 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
10210 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
10211 : 256, 257, 258, 259, 260, 261, 262, 0, 263, 264,
10212 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
10213 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 280,
10214 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
10215 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
10216 : 298, 299, 300, 301, 0, 0, 0, 302, 0, 0,
10217 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
10218 : 2622, 312, 0, 313, 314, 315, 316, 317, 318, 319,
10219 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
10220 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
10221 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
10222 : 344, 345, 346, 347, 1829, 348, 0, 349, 350, 351,
10223 : 352, 353, 0, 354, 0, 355, 356, 357, 0, 358,
10224 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
10225 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
10226 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
10227 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 393,
10228 : 394, 0, 395, 0, 396, 397, 398, 399, 400, 401,
10229 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
10230 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
10231 : 420, 421, 422, 423, 0, 424, 425, 426, 0, 0,
10232 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
10233 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
10234 : 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
10235 : 457, 458, 459, 0, 460, 461, 462, 463, 0, 464,
10236 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
10237 : 1830, 0, 474, 475, 476, 0, 0, 477, 478, 479,
10238 : 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
10239 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
10240 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
10241 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
10242 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
10243 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
10244 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
10245 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
10246 : 555, 556, 0, 557, 558, 559, 560, 561, 562, 563,
10247 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
10248 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
10249 : 583, 0, 584, 585, 0, 0, 586, 587, 588, 589,
10250 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
10251 : 597, 598, 599, 600, 601, 1831, 602, 603, 604, 605,
10252 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
10253 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
10254 : 622, 0, 623, 624, 625, 626, 627, 628, 629, 0,
10255 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
10256 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
10257 : 647, 648, 649, 650, 967, 0, 1603, 717, 0, 0,
10258 : 0, 0, 778, 0, 0, 0, 0, 1604, 1605, 0,
10259 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
10260 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
10261 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
10262 : 255, 256, 257, 258, 259, 260, 261, 262, 0, 263,
10263 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
10264 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
10265 : 280, 0, 281, 282, 283, 284, 285, 286, 287, 288,
10266 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
10267 : 0, 298, 299, 300, 301, 0, 0, 0, 302, 0,
10268 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
10269 : 311, 2627, 312, 0, 313, 314, 315, 316, 317, 318,
10270 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
10271 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
10272 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
10273 : 343, 344, 345, 346, 347, 1829, 348, 0, 349, 350,
10274 : 351, 352, 353, 0, 354, 0, 355, 356, 357, 0,
10275 : 358, 359, 360, 361, 362, 0, 363, 364, 0, 365,
10276 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
10277 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
10278 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
10279 : 393, 394, 0, 395, 0, 396, 397, 398, 399, 400,
10280 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
10281 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
10282 : 419, 420, 421, 422, 423, 0, 424, 425, 426, 0,
10283 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
10284 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
10285 : 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
10286 : 456, 457, 458, 459, 0, 460, 461, 462, 463, 0,
10287 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
10288 : 473, 1830, 0, 474, 475, 476, 0, 0, 477, 478,
10289 : 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
10290 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
10291 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
10292 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
10293 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
10294 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
10295 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
10296 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
10297 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 562,
10298 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
10299 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
10300 : 582, 583, 0, 584, 585, 0, 0, 586, 587, 588,
10301 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
10302 : 0, 597, 598, 599, 600, 601, 1831, 602, 603, 604,
10303 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
10304 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
10305 : 621, 622, 0, 623, 624, 625, 626, 627, 628, 629,
10306 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
10307 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
10308 : 646, 647, 648, 649, 650, 967, 0, 1603, 717, 0,
10309 : 0, 0, 0, 778, 0, 0, 0, 0, 1604, 1605,
10310 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
10311 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
10312 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
10313 : 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
10314 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
10315 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
10316 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
10317 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
10318 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
10319 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
10320 : 310, 311, 3565, 312, 0, 313, 314, 315, 316, 317,
10321 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
10322 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
10323 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
10324 : 342, 343, 344, 345, 346, 347, 1829, 348, 0, 349,
10325 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 357,
10326 : 0, 358, 359, 360, 361, 362, 0, 363, 364, 0,
10327 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 373,
10328 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
10329 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
10330 : 392, 393, 394, 0, 395, 0, 396, 397, 398, 399,
10331 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
10332 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
10333 : 0, 419, 420, 421, 422, 423, 0, 424, 425, 426,
10334 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
10335 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
10336 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
10337 : 455, 456, 457, 458, 459, 0, 460, 461, 462, 463,
10338 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
10339 : 472, 473, 1830, 0, 474, 475, 476, 0, 0, 477,
10340 : 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
10341 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
10342 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
10343 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
10344 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
10345 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
10346 : 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
10347 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
10348 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
10349 : 562, 563, 564, 565, 566, 0, 567, 568, 569, 570,
10350 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
10351 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 587,
10352 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
10353 : 0, 0, 597, 598, 599, 600, 601, 1831, 602, 603,
10354 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
10355 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
10356 : 620, 621, 622, 0, 623, 624, 625, 626, 627, 628,
10357 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
10358 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
10359 : 645, 646, 647, 648, 649, 650, 967, 0, 1603, 717,
10360 : 0, 0, 0, 0, 778, 0, 0, 0, 0, 1604,
10361 : 1605, 0, 0, 235, 236, 237, 238, 239, 240, 241,
10362 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
10363 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
10364 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
10365 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
10366 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
10367 : 279, 0, 280, 0, 281, 282, 283, 284, 285, 286,
10368 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
10369 : 296, 297, 0, 298, 299, 300, 301, 0, 0, 0,
10370 : 302, 0, 0, 0, 303, 304, 305, 306, 307, 308,
10371 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
10372 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
10373 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
10374 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
10375 : 341, 342, 343, 344, 345, 346, 347, 1829, 348, 0,
10376 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
10377 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 364,
10378 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
10379 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
10380 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
10381 : 391, 392, 393, 394, 0, 395, 0, 396, 397, 398,
10382 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
10383 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
10384 : 0, 0, 419, 420, 421, 422, 423, 0, 424, 425,
10385 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
10386 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
10387 : 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
10388 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 462,
10389 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
10390 : 471, 472, 473, 1830, 0, 474, 475, 476, 0, 0,
10391 : 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
10392 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
10393 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
10394 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
10395 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
10396 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
10397 : 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
10398 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
10399 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
10400 : 561, 562, 563, 564, 565, 566, 0, 567, 568, 569,
10401 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
10402 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
10403 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 595,
10404 : 596, 0, 0, 597, 598, 599, 600, 601, 1831, 602,
10405 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
10406 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
10407 : 619, 620, 621, 622, 0, 623, 624, 625, 626, 627,
10408 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
10409 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
10410 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
10411 : 0, 0, 0, 0, 0, 778, 0, 0, 0, 0,
10412 : 1604, 1605, 0, 0, 235, 236, 779, 238, 239, 240,
10413 : 241, 242, 243, 780, 244, 245, 246, 0, 0, 0,
10414 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
10415 : 252, 253, 0, 781, 256, 257, 258, 259, 0, 261,
10416 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
10417 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
10418 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
10419 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
10420 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
10421 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
10422 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
10423 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
10424 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
10425 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
10426 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
10427 : 0, 349, 350, 782, 352, 353, 0, 354, 0, 355,
10428 : 783, 0, 784, 0, 359, 360, 361, 362, 0, 363,
10429 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
10430 : 372, 0, 374, 375, 376, 377, 785, 378, 379, 380,
10431 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
10432 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
10433 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
10434 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
10435 : 786, 0, 0, 419, 420, 0, 422, 0, 0, 424,
10436 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
10437 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
10438 : 443, 444, 445, 446, 0, 448, 449, 450, 787, 452,
10439 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
10440 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
10441 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
10442 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
10443 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
10444 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
10445 : 0, 788, 506, 507, 508, 509, 510, 511, 512, 513,
10446 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
10447 : 789, 524, 525, 526, 527, 528, 529, 530, 531, 532,
10448 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
10449 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
10450 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
10451 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
10452 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
10453 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
10454 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
10455 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
10456 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
10457 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
10458 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
10459 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
10460 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
10461 : 643, 644, 645, 646, 647, 648, 649, 650, 967, 0,
10462 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10463 : 0, 790, 791, 0, 0, 235, 236, 237, 238, 239,
10464 : 240, 241, 242, 243, 0, 244, 245, 246, 3, 4,
10465 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
10466 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
10467 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
10468 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
10469 : 277, 278, 279, 0, 280, 0, 281, 282, 283, 284,
10470 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
10471 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
10472 : 0, 0, 302, 0, 0, 0, 303, 304, 305, 306,
10473 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
10474 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
10475 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
10476 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
10477 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
10478 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
10479 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
10480 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
10481 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
10482 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
10483 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
10484 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
10485 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
10486 : 417, 418, 0, 0, 419, 420, 421, 422, 423, 0,
10487 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
10488 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
10489 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
10490 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
10491 : 461, 462, 463, 0, 464, 465, 466, 467, 468, 469,
10492 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
10493 : 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
10494 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
10495 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
10496 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
10497 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
10498 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
10499 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
10500 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
10501 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
10502 : 559, 560, 561, 562, 563, 564, 565, 566, 0, 567,
10503 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
10504 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
10505 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
10506 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
10507 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
10508 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
10509 : 617, 618, 619, 620, 621, 622, 0, 623, 624, 625,
10510 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
10511 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
10512 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 1046,
10513 : 1740, 0, 6431, 717, 0, 0, 0, 0, 778, 0,
10514 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
10515 : 238, 239, 240, 241, 242, 243, 1741, 244, 245, 246,
10516 : 1742, 1743, 1744, 1745, 1746, 1747, 1748, 247, 248, 249,
10517 : 1749, 250, 251, 252, 253, 254, 255, 256, 257, 258,
10518 : 259, 260, 261, 262, 1750, 263, 264, 265, 266, 267,
10519 : 268, 269, 1751, 1752, 270, 271, 272, 273, 274, 1753,
10520 : 275, 276, 277, 278, 279, 1754, 280, 1755, 281, 282,
10521 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 1756,
10522 : 292, 293, 294, 295, 296, 297, 1757, 298, 299, 300,
10523 : 301, 1758, 1759, 1760, 302, 1761, 1762, 1763, 303, 304,
10524 : 305, 306, 307, 308, 309, 310, 311, 1764, 312, 1765,
10525 : 313, 314, 315, 316, 317, 318, 319, 1766, 320, 321,
10526 : 322, 323, 1767, 1768, 324, 325, 326, 327, 328, 1769,
10527 : 329, 330, 331, 332, 1770, 333, 334, 335, 336, 337,
10528 : 1771, 338, 339, 340, 341, 342, 343, 344, 345, 346,
10529 : 347, 1772, 348, 1773, 349, 350, 351, 352, 353, 1774,
10530 : 354, 1775, 355, 356, 357, 1776, 358, 359, 360, 361,
10531 : 362, 1777, 363, 364, 1778, 365, 366, 367, 1779, 368,
10532 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 1780,
10533 : 378, 379, 380, 381, 382, 383, 384, 385, 1781, 386,
10534 : 387, 388, 389, 390, 391, 392, 393, 394, 1782, 395,
10535 : 1783, 396, 397, 398, 399, 400, 401, 402, 403, 404,
10536 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
10537 : 415, 416, 417, 418, 1784, 1785, 419, 420, 421, 422,
10538 : 423, 1786, 424, 425, 426, 1787, 1788, 427, 428, 429,
10539 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
10540 : 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
10541 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
10542 : 1789, 460, 461, 462, 463, 1790, 464, 465, 466, 467,
10543 : 468, 469, 470, 1791, 471, 472, 473, 1792, 1793, 474,
10544 : 475, 476, 1794, 1795, 477, 478, 479, 480, 481, 482,
10545 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
10546 : 493, 494, 495, 1796, 496, 497, 498, 499, 500, 501,
10547 : 502, 503, 504, 1797, 505, 506, 507, 508, 509, 510,
10548 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 1798,
10549 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
10550 : 530, 531, 532, 1799, 533, 534, 535, 536, 537, 538,
10551 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
10552 : 549, 550, 551, 1800, 552, 553, 554, 555, 556, 1801,
10553 : 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
10554 : 1802, 567, 568, 569, 570, 571, 572, 573, 574, 575,
10555 : 576, 577, 578, 579, 580, 581, 582, 583, 1803, 584,
10556 : 585, 1804, 1805, 586, 587, 588, 589, 590, 591, 592,
10557 : 593, 1806, 594, 595, 596, 1807, 1808, 597, 598, 599,
10558 : 600, 601, 1809, 602, 603, 604, 605, 606, 607, 608,
10559 : 609, 610, 1810, 1811, 611, 612, 613, 614, 615, 1812,
10560 : 1813, 616, 617, 618, 619, 620, 621, 622, 1814, 623,
10561 : 624, 625, 626, 627, 628, 629, 1815, 1816, 630, 1817,
10562 : 1818, 631, 632, 633, 634, 635, 636, 637, 638, 639,
10563 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
10564 : 650, 1740, 0, 0, 0, 0, 0, 0, 0, 0,
10565 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
10566 : 237, 238, 239, 240, 241, 242, 243, 1741, 244, 245,
10567 : 246, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 247, 248,
10568 : 249, 1749, 250, 251, 252, 253, 254, 255, 256, 257,
10569 : 258, 259, 260, 261, 262, 1750, 263, 264, 265, 266,
10570 : 267, 268, 269, 1751, 1752, 270, 271, 272, 273, 274,
10571 : 1753, 275, 276, 277, 278, 279, 1754, 280, 1755, 281,
10572 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
10573 : 1756, 292, 293, 294, 295, 296, 297, 1757, 298, 299,
10574 : 300, 301, 1758, 1759, 1760, 302, 1761, 1762, 1763, 303,
10575 : 304, 305, 306, 307, 308, 309, 310, 311, 1764, 312,
10576 : 1765, 313, 314, 315, 316, 317, 318, 319, 1766, 320,
10577 : 321, 322, 323, 1767, 1768, 324, 325, 326, 327, 328,
10578 : 1769, 329, 330, 331, 332, 1770, 333, 334, 335, 336,
10579 : 337, 1771, 338, 339, 340, 341, 342, 343, 344, 345,
10580 : 346, 347, 1772, 348, 1773, 349, 350, 351, 352, 353,
10581 : 1774, 354, 1775, 355, 356, 357, 1776, 358, 359, 360,
10582 : 361, 362, 1777, 363, 364, 1778, 365, 366, 367, 1779,
10583 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
10584 : 1780, 378, 379, 380, 381, 382, 383, 384, 385, 1781,
10585 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 1782,
10586 : 395, 1783, 396, 397, 398, 399, 400, 401, 402, 403,
10587 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
10588 : 414, 415, 416, 417, 418, 1784, 1785, 419, 420, 421,
10589 : 422, 423, 1786, 424, 425, 426, 1787, 1788, 427, 428,
10590 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
10591 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
10592 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
10593 : 459, 1789, 460, 461, 462, 463, 1790, 464, 465, 466,
10594 : 467, 468, 469, 470, 1791, 471, 472, 473, 1792, 1793,
10595 : 474, 475, 476, 1794, 1795, 477, 478, 479, 480, 481,
10596 : 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
10597 : 492, 493, 494, 495, 1796, 496, 497, 498, 499, 500,
10598 : 501, 502, 503, 504, 1797, 505, 506, 507, 508, 509,
10599 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
10600 : 1798, 520, 521, 522, 523, 524, 525, 526, 527, 528,
10601 : 529, 530, 531, 532, 1799, 533, 534, 535, 536, 537,
10602 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
10603 : 548, 549, 550, 551, 1800, 552, 553, 554, 555, 556,
10604 : 1801, 557, 558, 559, 560, 561, 562, 563, 564, 565,
10605 : 566, 1802, 567, 568, 569, 570, 571, 572, 573, 574,
10606 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 1803,
10607 : 584, 585, 1804, 1805, 586, 587, 588, 589, 590, 591,
10608 : 592, 593, 1806, 594, 595, 596, 1807, 1808, 597, 598,
10609 : 599, 600, 601, 1809, 602, 603, 604, 605, 606, 607,
10610 : 608, 609, 610, 1810, 1811, 611, 612, 613, 614, 615,
10611 : 1812, 1813, 616, 617, 618, 619, 620, 621, 622, 1814,
10612 : 623, 624, 625, 626, 627, 628, 629, 1815, 1816, 630,
10613 : 1817, 1818, 631, 632, 633, 634, 635, 636, 637, 638,
10614 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
10615 : 649, 650, 1740, 0, 0, 0, 0, 0, 0, 0,
10616 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
10617 : 236, 237, 238, 239, 3674, 241, 242, 243, 1741, 244,
10618 : 245, 246, 1742, 1743, 1744, 1745, 1746, 1747, 1748, 247,
10619 : 248, 249, 1749, 250, 251, 252, 253, 254, 255, 256,
10620 : 257, 258, 259, 260, 261, 262, 1750, 263, 264, 265,
10621 : 266, 267, 268, 269, 1751, 1752, 270, 271, 272, 273,
10622 : 274, 1753, 275, 276, 277, 278, 279, 1754, 280, 1755,
10623 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
10624 : 291, 1756, 292, 293, 294, 295, 296, 297, 1757, 298,
10625 : 299, 300, 301, 1758, 1759, 1760, 302, 1761, 1762, 1763,
10626 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 1764,
10627 : 312, 1765, 313, 314, 315, 316, 317, 318, 319, 1766,
10628 : 320, 321, 322, 323, 1767, 1768, 324, 325, 326, 3675,
10629 : 328, 1769, 329, 330, 331, 332, 1770, 333, 334, 335,
10630 : 336, 337, 1771, 338, 339, 340, 341, 342, 343, 344,
10631 : 345, 346, 347, 1772, 348, 1773, 349, 350, 351, 352,
10632 : 353, 1774, 354, 1775, 355, 356, 357, 1776, 358, 359,
10633 : 360, 361, 362, 1777, 363, 364, 1778, 365, 366, 367,
10634 : 1779, 368, 369, 370, 371, 372, 373, 374, 375, 376,
10635 : 377, 1780, 378, 379, 380, 381, 382, 383, 384, 385,
10636 : 1781, 386, 387, 388, 389, 390, 391, 392, 393, 394,
10637 : 1782, 395, 1783, 396, 397, 398, 399, 400, 401, 402,
10638 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
10639 : 413, 414, 415, 416, 417, 418, 1784, 1785, 419, 420,
10640 : 421, 422, 423, 1786, 424, 425, 426, 1787, 1788, 427,
10641 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
10642 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
10643 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
10644 : 458, 459, 1789, 460, 461, 462, 463, 1790, 464, 465,
10645 : 466, 467, 468, 469, 470, 1791, 471, 472, 473, 1792,
10646 : 1793, 474, 475, 476, 1794, 1795, 477, 478, 479, 480,
10647 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
10648 : 491, 492, 493, 494, 495, 1796, 496, 497, 498, 499,
10649 : 500, 501, 502, 503, 504, 1797, 505, 506, 507, 508,
10650 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
10651 : 519, 1798, 520, 521, 522, 523, 524, 525, 526, 527,
10652 : 528, 529, 530, 531, 532, 1799, 533, 534, 535, 536,
10653 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
10654 : 547, 548, 549, 550, 551, 1800, 552, 553, 554, 555,
10655 : 556, 1801, 3676, 558, 559, 560, 561, 562, 563, 564,
10656 : 565, 566, 1802, 567, 568, 569, 570, 571, 572, 573,
10657 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
10658 : 1803, 584, 585, 1804, 1805, 586, 587, 588, 589, 590,
10659 : 591, 592, 593, 1806, 594, 595, 596, 1807, 1808, 597,
10660 : 598, 599, 600, 601, 1809, 602, 603, 604, 605, 606,
10661 : 607, 608, 609, 610, 1810, 1811, 611, 612, 613, 614,
10662 : 615, 1812, 1813, 616, 617, 618, 619, 620, 621, 622,
10663 : 1814, 623, 624, 625, 626, 627, 628, 629, 1815, 1816,
10664 : 630, 1817, 1818, 631, 632, 633, 634, 635, 636, 637,
10665 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
10666 : 648, 649, 650, 234, 0, 0, 0, 0, 0, 0,
10667 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10668 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
10669 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
10670 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
10671 : 256, 257, 258, 259, 260, 261, 262, 0, 263, 264,
10672 : 265, 266, 267, 268, 269, 0, 1281, 270, 271, 272,
10673 : 273, 274, 0, 275, 276, 277, 278, 1284, 0, 1285,
10674 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
10675 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
10676 : 298, 299, 300, 301, 1286, 1287, 1288, 1289, 1290, 1291,
10677 : 1292, 303, 304, 305, 306, 307, 308, 309, 310, 311,
10678 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
10679 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
10680 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
10681 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
10682 : 344, 345, 346, 1297, 0, 348, 0, 349, 350, 351,
10683 : 352, 353, 0, 354, 0, 355, 356, 357, 0, 358,
10684 : 359, 360, 361, 362, 0, 363, 1300, 0, 365, 366,
10685 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
10686 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
10687 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 393,
10688 : 394, 0, 395, 0, 396, 397, 398, 399, 400, 3470,
10689 : 1306, 1307, 1308, 1309, 1310, 1311, 1312, 1313, 410, 1314,
10690 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
10691 : 1315, 421, 422, 423, 0, 424, 425, 426, 1316, 1317,
10692 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
10693 : 1318, 438, 439, 440, 441, 442, 443, 444, 445, 446,
10694 : 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
10695 : 457, 1321, 459, 0, 460, 461, 462, 463, 0, 1324,
10696 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
10697 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
10698 : 480, 481, 482, 1327, 484, 485, 486, 487, 488, 489,
10699 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
10700 : 1328, 500, 501, 502, 503, 504, 0, 505, 506, 507,
10701 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
10702 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
10703 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
10704 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
10705 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
10706 : 555, 556, 1331, 557, 558, 559, 560, 561, 562, 563,
10707 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
10708 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 1333,
10709 : 583, 0, 584, 585, 1334, 0, 586, 587, 588, 589,
10710 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
10711 : 597, 598, 1337, 600, 1338, 0, 602, 603, 604, 605,
10712 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
10713 : 614, 615, 1341, 0, 616, 617, 618, 619, 620, 621,
10714 : 622, 0, 623, 624, 625, 626, 627, 628, 629, 0,
10715 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
10716 : 637, 1343, 1344, 1345, 1346, 642, 1347, 1348, 1349, 1350,
10717 : 647, 648, 649, 650, 234, 0, 1271, 717, 0, 1272,
10718 : 1273, 0, 778, 0, 0, 0, 0, 0, 0, 0,
10719 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
10720 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
10721 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
10722 : 255, 256, 257, 258, 1277, 260, 1278, 1279, 0, 263,
10723 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
10724 : 1282, 1283, 274, 0, 275, 276, 277, 278, 279, 0,
10725 : 280, 0, 281, 282, 283, 284, 285, 286, 287, 288,
10726 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
10727 : 0, 298, 299, 300, 301, 0, 0, 0, 302, 0,
10728 : 0, 0, 303, 304, 305, 306, 307, 308, 1293, 1294,
10729 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
10730 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
10731 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
10732 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
10733 : 343, 344, 345, 346, 347, 1298, 348, 0, 349, 350,
10734 : 351, 1299, 353, 0, 354, 0, 355, 356, 357, 0,
10735 : 358, 359, 360, 361, 362, 0, 363, 364, 0, 365,
10736 : 366, 367, 0, 368, 369, 370, 371, 372, 373, 374,
10737 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
10738 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
10739 : 1302, 1303, 0, 1304, 0, 396, 397, 398, 399, 400,
10740 : 6403, 402, 403, 404, 405, 406, 407, 408, 409, 410,
10741 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
10742 : 419, 420, 421, 422, 423, 0, 424, 425, 426, 0,
10743 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
10744 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
10745 : 1319, 447, 1320, 449, 450, 451, 452, 453, 454, 455,
10746 : 456, 457, 458, 459, 0, 460, 461, 462, 463, 1323,
10747 : 464, 465, 1325, 467, 468, 469, 470, 0, 471, 472,
10748 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
10749 : 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
10750 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
10751 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
10752 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 1329,
10753 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
10754 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
10755 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
10756 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
10757 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 562,
10758 : 563, 564, 1332, 566, 0, 567, 568, 569, 570, 571,
10759 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
10760 : 582, 583, 0, 584, 585, 0, 0, 586, 587, 588,
10761 : 589, 590, 591, 592, 593, 0, 594, 1335, 1336, 0,
10762 : 0, 597, 598, 599, 600, 601, 1339, 602, 603, 604,
10763 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
10764 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
10765 : 621, 1342, 0, 623, 624, 625, 626, 627, 628, 629,
10766 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
10767 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
10768 : 646, 647, 648, 649, 650, 967, 0, 0, 0, 0,
10769 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10770 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
10771 : 243, 1006, 244, 245, 246, 0, 0, 0, 0, 0,
10772 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
10773 : 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
10774 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
10775 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
10776 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
10777 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
10778 : 297, 0, 298, 299, 300, 301, 0, 0, 968, 302,
10779 : 0, 0, 969, 303, 304, 305, 306, 307, 308, 309,
10780 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
10781 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
10782 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
10783 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
10784 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
10785 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 357,
10786 : 0, 358, 359, 360, 361, 362, 0, 363, 364, 0,
10787 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 373,
10788 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
10789 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
10790 : 392, 393, 394, 0, 395, 0, 396, 397, 398, 399,
10791 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
10792 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
10793 : 0, 419, 420, 421, 422, 423, 0, 424, 425, 426,
10794 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
10795 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
10796 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
10797 : 455, 456, 457, 458, 459, 0, 460, 461, 462, 463,
10798 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
10799 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
10800 : 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
10801 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
10802 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
10803 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
10804 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
10805 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
10806 : 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
10807 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
10808 : 553, 554, 555, 556, 970, 557, 558, 559, 560, 561,
10809 : 562, 563, 564, 565, 566, 0, 567, 568, 569, 570,
10810 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
10811 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 587,
10812 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
10813 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
10814 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
10815 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
10816 : 620, 621, 622, 0, 623, 624, 625, 626, 627, 628,
10817 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
10818 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
10819 : 645, 646, 647, 648, 649, 650, 967, 0, 0, 0,
10820 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10821 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
10822 : 242, 243, 1027, 244, 245, 246, 0, 0, 0, 0,
10823 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
10824 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
10825 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
10826 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
10827 : 279, 0, 280, 0, 281, 282, 283, 284, 285, 286,
10828 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
10829 : 296, 297, 0, 298, 299, 300, 301, 0, 0, 968,
10830 : 302, 0, 0, 969, 303, 304, 305, 306, 307, 308,
10831 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
10832 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
10833 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
10834 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
10835 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
10836 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
10837 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 364,
10838 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
10839 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
10840 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
10841 : 391, 392, 393, 394, 0, 395, 0, 396, 397, 398,
10842 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
10843 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
10844 : 0, 0, 419, 420, 421, 422, 423, 0, 424, 425,
10845 : 426, 0, 0, 427, 428, 429, 430, 1028, 432, 433,
10846 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
10847 : 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
10848 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 462,
10849 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
10850 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
10851 : 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
10852 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
10853 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
10854 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
10855 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
10856 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
10857 : 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
10858 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
10859 : 552, 553, 554, 555, 556, 970, 557, 558, 559, 560,
10860 : 561, 562, 563, 564, 565, 566, 0, 567, 568, 569,
10861 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
10862 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
10863 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 595,
10864 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
10865 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
10866 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
10867 : 619, 620, 621, 622, 0, 623, 624, 625, 626, 627,
10868 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
10869 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
10870 : 644, 645, 646, 647, 648, 649, 650, 967, 0, 0,
10871 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10872 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
10873 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
10874 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
10875 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
10876 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
10877 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
10878 : 278, 279, 0, 280, 0, 281, 282, 283, 284, 285,
10879 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
10880 : 295, 296, 297, 0, 298, 299, 300, 301, 0, 0,
10881 : 968, 302, 0, 0, 969, 303, 304, 305, 306, 307,
10882 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
10883 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
10884 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
10885 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
10886 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
10887 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
10888 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
10889 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
10890 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
10891 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
10892 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 397,
10893 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
10894 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
10895 : 418, 0, 0, 419, 420, 421, 422, 423, 0, 424,
10896 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
10897 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
10898 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
10899 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
10900 : 462, 463, 0, 464, 465, 466, 467, 468, 469, 470,
10901 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
10902 : 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
10903 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
10904 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
10905 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
10906 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
10907 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
10908 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 541,
10909 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
10910 : 0, 552, 553, 554, 555, 556, 970, 557, 558, 559,
10911 : 560, 561, 562, 563, 564, 565, 566, 0, 567, 568,
10912 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
10913 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
10914 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
10915 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
10916 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
10917 : 0, 611, 612, 613, 614, 615, 3003, 0, 616, 617,
10918 : 618, 619, 620, 621, 622, 0, 623, 624, 625, 626,
10919 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
10920 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
10921 : 643, 644, 645, 646, 647, 648, 649, 650, 967, 0,
10922 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
10923 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
10924 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
10925 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
10926 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
10927 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
10928 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
10929 : 277, 278, 279, 0, 280, 0, 281, 282, 283, 284,
10930 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
10931 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
10932 : 0, 968, 302, 0, 0, 969, 303, 304, 305, 306,
10933 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
10934 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
10935 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
10936 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
10937 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
10938 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
10939 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
10940 : 363, 364, 4028, 365, 366, 367, 0, 368, 369, 370,
10941 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
10942 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
10943 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
10944 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
10945 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
10946 : 417, 418, 0, 0, 419, 420, 421, 422, 423, 0,
10947 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
10948 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
10949 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
10950 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
10951 : 461, 462, 463, 0, 464, 465, 466, 467, 468, 469,
10952 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
10953 : 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
10954 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
10955 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
10956 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
10957 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
10958 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
10959 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
10960 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
10961 : 551, 0, 552, 553, 554, 555, 556, 970, 557, 558,
10962 : 559, 560, 561, 562, 563, 564, 565, 566, 0, 567,
10963 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
10964 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
10965 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
10966 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
10967 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
10968 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
10969 : 617, 618, 619, 620, 621, 622, 0, 623, 624, 625,
10970 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
10971 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
10972 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 967,
10973 : 0, 0, 717, 0, 0, 0, 0, 0, 0, 0,
10974 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
10975 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
10976 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
10977 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
10978 : 260, 261, 262, 0, 263, 264, 265, 266, 267, 268,
10979 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
10980 : 276, 277, 278, 279, 0, 280, 0, 281, 282, 283,
10981 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
10982 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
10983 : 0, 0, 0, 302, 0, 0, 0, 303, 304, 305,
10984 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
10985 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
10986 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
10987 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
10988 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
10989 : 1829, 348, 0, 349, 350, 351, 352, 353, 0, 354,
10990 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
10991 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
10992 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
10993 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
10994 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
10995 : 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
10996 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
10997 : 416, 417, 418, 0, 0, 419, 420, 421, 422, 423,
10998 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
10999 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
11000 : 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
11001 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
11002 : 460, 461, 462, 463, 0, 464, 465, 466, 467, 468,
11003 : 469, 470, 0, 471, 472, 473, 1830, 0, 474, 475,
11004 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
11005 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
11006 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
11007 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
11008 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
11009 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
11010 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
11011 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
11012 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
11013 : 558, 559, 560, 561, 562, 563, 564, 565, 566, 0,
11014 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
11015 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
11016 : 0, 0, 586, 587, 588, 589, 590, 591, 592, 593,
11017 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
11018 : 601, 1831, 602, 603, 604, 605, 606, 607, 608, 609,
11019 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
11020 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 624,
11021 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
11022 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
11023 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
11024 : 967, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11025 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
11026 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
11027 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
11028 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
11029 : 259, 260, 261, 262, 0, 263, 264, 265, 266, 267,
11030 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
11031 : 275, 276, 277, 278, 279, 0, 280, 0, 281, 282,
11032 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
11033 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
11034 : 301, 0, 0, 968, 302, 0, 0, 969, 303, 304,
11035 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
11036 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
11037 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
11038 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
11039 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
11040 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
11041 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
11042 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
11043 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
11044 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
11045 : 387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
11046 : 0, 396, 397, 398, 399, 400, 401, 402, 403, 404,
11047 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
11048 : 415, 416, 417, 418, 0, 0, 419, 420, 421, 422,
11049 : 423, 0, 424, 425, 426, 0, 0, 427, 428, 429,
11050 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
11051 : 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
11052 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
11053 : 0, 460, 461, 462, 463, 0, 464, 465, 466, 467,
11054 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
11055 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
11056 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
11057 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
11058 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
11059 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
11060 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
11061 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
11062 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
11063 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 970,
11064 : 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
11065 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
11066 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
11067 : 585, 0, 0, 586, 587, 588, 589, 590, 591, 592,
11068 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
11069 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
11070 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
11071 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
11072 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
11073 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
11074 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
11075 : 650, 967, 0, 0, 0, 0, 0, 0, 0, 0,
11076 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
11077 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
11078 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
11079 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
11080 : 258, 259, 260, 261, 262, 0, 263, 264, 265, 266,
11081 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
11082 : 0, 275, 276, 277, 278, 279, 0, 280, 0, 281,
11083 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
11084 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
11085 : 300, 301, 0, 0, 968, 302, 0, 0, 969, 303,
11086 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
11087 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
11088 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
11089 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
11090 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
11091 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
11092 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
11093 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
11094 : 368, 369, 370, 371, 372, 373, 374, 375, 376, 377,
11095 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
11096 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 0,
11097 : 395, 0, 396, 397, 398, 399, 400, 401, 402, 403,
11098 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
11099 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 421,
11100 : 422, 423, 0, 424, 425, 426, 0, 0, 427, 428,
11101 : 429, 430, 1122, 432, 433, 434, 435, 436, 437, 438,
11102 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
11103 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
11104 : 459, 0, 460, 461, 462, 463, 0, 464, 465, 466,
11105 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
11106 : 474, 475, 476, 0, 0, 477, 478, 479, 480, 481,
11107 : 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
11108 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
11109 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
11110 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
11111 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
11112 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
11113 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
11114 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
11115 : 970, 557, 558, 559, 560, 561, 562, 563, 564, 565,
11116 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
11117 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
11118 : 584, 585, 0, 0, 586, 587, 588, 589, 590, 591,
11119 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
11120 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
11121 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
11122 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
11123 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
11124 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
11125 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
11126 : 649, 650, 967, 0, 0, 0, 0, 0, 0, 0,
11127 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
11128 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
11129 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
11130 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
11131 : 257, 258, 259, 260, 261, 262, 0, 263, 264, 265,
11132 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
11133 : 274, 0, 275, 276, 277, 278, 279, 0, 280, 0,
11134 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
11135 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
11136 : 299, 300, 301, 0, 0, 968, 302, 0, 0, 969,
11137 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
11138 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
11139 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
11140 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
11141 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
11142 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
11143 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
11144 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
11145 : 0, 368, 369, 370, 371, 1164, 373, 374, 375, 376,
11146 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
11147 : 0, 386, 387, 388, 389, 390, 391, 392, 393, 394,
11148 : 0, 395, 0, 396, 397, 398, 399, 400, 401, 402,
11149 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
11150 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
11151 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
11152 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
11153 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
11154 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
11155 : 458, 459, 0, 460, 461, 462, 463, 0, 464, 465,
11156 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
11157 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 480,
11158 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
11159 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
11160 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
11161 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
11162 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
11163 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
11164 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
11165 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
11166 : 556, 970, 557, 558, 559, 560, 561, 562, 563, 564,
11167 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
11168 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
11169 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
11170 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
11171 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
11172 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
11173 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
11174 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
11175 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
11176 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
11177 : 648, 649, 650, 967, 0, 0, 0, 0, 0, 0,
11178 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11179 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
11180 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
11181 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
11182 : 256, 257, 258, 259, 260, 261, 262, 0, 263, 264,
11183 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
11184 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 280,
11185 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
11186 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
11187 : 298, 299, 300, 301, 0, 0, 968, 302, 0, 0,
11188 : 969, 303, 304, 305, 306, 307, 308, 309, 310, 311,
11189 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
11190 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
11191 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
11192 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
11193 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
11194 : 352, 353, 0, 354, 0, 355, 356, 357, 0, 358,
11195 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
11196 : 367, 0, 368, 369, 370, 371, 1177, 373, 374, 375,
11197 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
11198 : 385, 0, 386, 387, 388, 389, 390, 391, 392, 393,
11199 : 394, 0, 395, 0, 396, 397, 398, 399, 400, 401,
11200 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
11201 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
11202 : 420, 421, 422, 423, 0, 424, 425, 426, 0, 0,
11203 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
11204 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
11205 : 447, 448, 449, 450, 451, 452, 453, 454, 455, 456,
11206 : 457, 458, 459, 0, 460, 461, 462, 463, 0, 464,
11207 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
11208 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
11209 : 480, 481, 482, 483, 484, 485, 486, 487, 488, 489,
11210 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
11211 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
11212 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
11213 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
11214 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
11215 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
11216 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
11217 : 555, 556, 970, 557, 558, 559, 560, 561, 562, 563,
11218 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
11219 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
11220 : 583, 0, 584, 585, 0, 0, 586, 587, 588, 589,
11221 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
11222 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
11223 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
11224 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
11225 : 622, 0, 623, 624, 625, 626, 627, 628, 629, 0,
11226 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
11227 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
11228 : 647, 648, 649, 650, 967, 0, 0, 0, 0, 0,
11229 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11230 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
11231 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
11232 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
11233 : 255, 256, 257, 258, 259, 260, 261, 262, 0, 263,
11234 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
11235 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
11236 : 280, 0, 281, 282, 283, 284, 285, 286, 287, 288,
11237 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
11238 : 0, 298, 299, 300, 301, 0, 0, 968, 302, 0,
11239 : 0, 969, 303, 304, 305, 306, 307, 308, 309, 310,
11240 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
11241 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
11242 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
11243 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
11244 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
11245 : 351, 352, 353, 0, 354, 0, 355, 356, 357, 0,
11246 : 358, 359, 360, 361, 362, 0, 363, 364, 0, 365,
11247 : 366, 367, 0, 368, 369, 370, 371, 1189, 373, 374,
11248 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
11249 : 384, 385, 0, 386, 387, 388, 389, 390, 391, 392,
11250 : 393, 394, 0, 395, 0, 396, 397, 398, 399, 400,
11251 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
11252 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
11253 : 419, 420, 421, 422, 423, 0, 424, 425, 426, 0,
11254 : 0, 427, 428, 429, 430, 1190, 432, 433, 434, 435,
11255 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
11256 : 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
11257 : 456, 457, 458, 459, 0, 460, 461, 462, 463, 0,
11258 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
11259 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
11260 : 479, 480, 481, 482, 483, 484, 485, 486, 487, 488,
11261 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
11262 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
11263 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
11264 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
11265 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
11266 : 535, 536, 537, 538, 539, 540, 541, 542, 543, 544,
11267 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
11268 : 554, 555, 556, 970, 557, 558, 559, 560, 561, 562,
11269 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
11270 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
11271 : 582, 583, 0, 584, 585, 0, 0, 586, 587, 588,
11272 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
11273 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
11274 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
11275 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
11276 : 621, 622, 0, 623, 624, 625, 626, 627, 628, 629,
11277 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
11278 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
11279 : 646, 647, 648, 649, 650, 967, 0, 0, 717, 0,
11280 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11281 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
11282 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
11283 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
11284 : 254, 255, 256, 257, 258, 259, 260, 261, 262, 0,
11285 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
11286 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
11287 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
11288 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
11289 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
11290 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
11291 : 310, 311, 2607, 312, 0, 313, 314, 315, 316, 317,
11292 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
11293 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
11294 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
11295 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
11296 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 357,
11297 : 0, 358, 359, 360, 361, 362, 0, 363, 364, 0,
11298 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 373,
11299 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
11300 : 383, 384, 385, 0, 386, 387, 388, 389, 390, 391,
11301 : 392, 393, 394, 0, 395, 0, 396, 397, 398, 399,
11302 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
11303 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
11304 : 0, 419, 420, 421, 422, 423, 0, 424, 425, 426,
11305 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
11306 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
11307 : 445, 446, 447, 448, 449, 450, 451, 452, 453, 454,
11308 : 455, 456, 457, 458, 459, 0, 460, 461, 462, 463,
11309 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
11310 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
11311 : 478, 479, 480, 481, 482, 483, 484, 485, 486, 487,
11312 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
11313 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
11314 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
11315 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
11316 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
11317 : 534, 535, 536, 537, 538, 539, 540, 541, 542, 543,
11318 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
11319 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
11320 : 562, 563, 564, 565, 566, 0, 567, 568, 569, 570,
11321 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
11322 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 587,
11323 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
11324 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
11325 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
11326 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
11327 : 620, 621, 622, 0, 623, 624, 625, 626, 627, 628,
11328 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
11329 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
11330 : 645, 646, 647, 648, 649, 650, 967, 0, 0, 717,
11331 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11332 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
11333 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
11334 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
11335 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
11336 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
11337 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
11338 : 279, 0, 280, 0, 281, 282, 283, 284, 285, 286,
11339 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
11340 : 296, 297, 0, 298, 299, 300, 301, 0, 0, 0,
11341 : 302, 0, 0, 0, 303, 304, 305, 306, 307, 308,
11342 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
11343 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
11344 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
11345 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
11346 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
11347 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
11348 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 364,
11349 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
11350 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
11351 : 382, 383, 384, 385, 0, 386, 387, 388, 389, 390,
11352 : 391, 392, 393, 394, 0, 395, 0, 396, 397, 398,
11353 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
11354 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
11355 : 0, 0, 419, 420, 421, 422, 423, 0, 424, 425,
11356 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
11357 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
11358 : 444, 445, 446, 447, 448, 449, 450, 451, 452, 453,
11359 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 462,
11360 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
11361 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
11362 : 477, 478, 479, 480, 481, 482, 483, 484, 485, 486,
11363 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
11364 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
11365 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
11366 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
11367 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
11368 : 533, 534, 535, 536, 537, 538, 539, 540, 541, 542,
11369 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
11370 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
11371 : 561, 562, 563, 564, 565, 566, 0, 567, 568, 569,
11372 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
11373 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
11374 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 595,
11375 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
11376 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
11377 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
11378 : 619, 620, 621, 622, 0, 623, 624, 625, 626, 627,
11379 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
11380 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
11381 : 644, 645, 646, 647, 648, 649, 650, 234, 0, 0,
11382 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11383 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
11384 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
11385 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
11386 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
11387 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
11388 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
11389 : 278, 279, 0, 280, 0, 281, 282, 283, 284, 285,
11390 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
11391 : 295, 296, 297, 0, 298, 299, 300, 301, 0, 0,
11392 : 0, 302, 0, 0, 0, 303, 304, 305, 306, 307,
11393 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
11394 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
11395 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
11396 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
11397 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
11398 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
11399 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
11400 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
11401 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
11402 : 381, 382, 383, 384, 385, 0, 386, 387, 388, 389,
11403 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 397,
11404 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
11405 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
11406 : 418, 0, 0, 419, 420, 421, 422, 423, 0, 424,
11407 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
11408 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
11409 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
11410 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
11411 : 462, 463, 0, 464, 465, 466, 467, 468, 469, 470,
11412 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
11413 : 0, 477, 478, 479, 480, 481, 482, 483, 484, 485,
11414 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
11415 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
11416 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
11417 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
11418 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
11419 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 541,
11420 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
11421 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
11422 : 560, 561, 562, 563, 564, 565, 566, 0, 567, 568,
11423 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
11424 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
11425 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
11426 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
11427 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
11428 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
11429 : 618, 619, 620, 621, 622, 0, 623, 624, 625, 626,
11430 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
11431 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
11432 : 643, 644, 645, 646, 647, 648, 649, 650, 234, 0,
11433 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11434 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
11435 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
11436 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
11437 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
11438 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
11439 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
11440 : 277, 278, 279, 0, 280, 0, 281, 282, 283, 284,
11441 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
11442 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
11443 : 0, 0, 302, 0, 0, 0, 303, 304, 305, 306,
11444 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
11445 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
11446 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
11447 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
11448 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
11449 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
11450 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
11451 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
11452 : 371, 1148, 373, 374, 375, 376, 377, 0, 378, 379,
11453 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 388,
11454 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
11455 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
11456 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
11457 : 417, 418, 0, 0, 419, 420, 421, 422, 423, 0,
11458 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
11459 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
11460 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
11461 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
11462 : 461, 462, 463, 0, 464, 465, 466, 467, 468, 469,
11463 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
11464 : 0, 0, 477, 478, 479, 480, 481, 482, 483, 484,
11465 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
11466 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
11467 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
11468 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
11469 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
11470 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
11471 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
11472 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
11473 : 559, 560, 561, 562, 563, 564, 565, 566, 0, 567,
11474 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
11475 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
11476 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
11477 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
11478 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
11479 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
11480 : 617, 618, 619, 620, 621, 622, 0, 623, 624, 625,
11481 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
11482 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
11483 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 234,
11484 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11485 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
11486 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
11487 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
11488 : 250, 251, 252, 253, 254, 255, 256, 257, 258, 259,
11489 : 260, 261, 262, 0, 263, 264, 265, 266, 267, 268,
11490 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
11491 : 276, 277, 278, 279, 0, 280, 0, 281, 282, 283,
11492 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
11493 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
11494 : 0, 0, 0, 302, 0, 0, 0, 303, 304, 305,
11495 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
11496 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
11497 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
11498 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
11499 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
11500 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
11501 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
11502 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
11503 : 370, 371, 1161, 373, 374, 375, 376, 377, 0, 378,
11504 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
11505 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
11506 : 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
11507 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
11508 : 416, 417, 418, 0, 0, 419, 420, 421, 422, 423,
11509 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
11510 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
11511 : 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
11512 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
11513 : 460, 461, 462, 463, 0, 464, 465, 466, 467, 468,
11514 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
11515 : 476, 0, 0, 477, 478, 479, 480, 481, 482, 483,
11516 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
11517 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
11518 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
11519 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
11520 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
11521 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
11522 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
11523 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
11524 : 558, 559, 560, 561, 562, 563, 564, 565, 566, 0,
11525 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
11526 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
11527 : 0, 0, 586, 587, 588, 589, 590, 591, 592, 593,
11528 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
11529 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
11530 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
11531 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 624,
11532 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
11533 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
11534 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
11535 : 234, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11536 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
11537 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
11538 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
11539 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 258,
11540 : 259, 260, 261, 262, 0, 263, 264, 265, 266, 267,
11541 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
11542 : 275, 276, 277, 278, 279, 0, 280, 0, 281, 282,
11543 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
11544 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
11545 : 301, 0, 0, 0, 302, 0, 0, 0, 303, 304,
11546 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
11547 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
11548 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
11549 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
11550 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
11551 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
11552 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
11553 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
11554 : 369, 370, 371, 1175, 373, 374, 375, 376, 377, 0,
11555 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
11556 : 387, 388, 389, 390, 391, 392, 393, 394, 0, 395,
11557 : 0, 396, 397, 398, 399, 400, 401, 402, 403, 404,
11558 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
11559 : 415, 416, 417, 418, 0, 0, 419, 420, 421, 422,
11560 : 423, 0, 424, 425, 426, 0, 0, 427, 428, 429,
11561 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
11562 : 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
11563 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
11564 : 0, 460, 461, 462, 463, 0, 464, 465, 466, 467,
11565 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
11566 : 475, 476, 0, 0, 477, 478, 479, 480, 481, 482,
11567 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
11568 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
11569 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
11570 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
11571 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
11572 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
11573 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
11574 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
11575 : 557, 558, 559, 560, 561, 562, 563, 564, 565, 566,
11576 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
11577 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
11578 : 585, 0, 0, 586, 587, 588, 589, 590, 591, 592,
11579 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
11580 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
11581 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
11582 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
11583 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
11584 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
11585 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
11586 : 650, 234, 0, 0, 0, 0, 0, 0, 0, 0,
11587 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
11588 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
11589 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
11590 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
11591 : 258, 259, 260, 261, 262, 0, 263, 264, 265, 266,
11592 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
11593 : 0, 275, 276, 277, 278, 279, 0, 280, 0, 281,
11594 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
11595 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
11596 : 300, 301, 0, 0, 0, 302, 0, 0, 0, 303,
11597 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
11598 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
11599 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
11600 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
11601 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
11602 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
11603 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
11604 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
11605 : 368, 369, 370, 371, 1179, 373, 374, 375, 376, 377,
11606 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
11607 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 0,
11608 : 395, 0, 396, 397, 398, 399, 400, 401, 402, 403,
11609 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
11610 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 421,
11611 : 422, 423, 0, 424, 425, 426, 0, 0, 427, 428,
11612 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
11613 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
11614 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
11615 : 459, 0, 460, 461, 462, 463, 0, 464, 465, 466,
11616 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
11617 : 474, 475, 476, 0, 0, 477, 478, 479, 480, 481,
11618 : 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
11619 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
11620 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
11621 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
11622 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
11623 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
11624 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
11625 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
11626 : 0, 557, 558, 559, 560, 561, 562, 563, 564, 565,
11627 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
11628 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
11629 : 584, 585, 0, 0, 586, 587, 588, 589, 590, 591,
11630 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
11631 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
11632 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
11633 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
11634 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
11635 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
11636 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
11637 : 649, 650, 967, 0, 0, 0, 0, 0, 0, 0,
11638 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
11639 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
11640 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
11641 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
11642 : 257, 258, 259, 260, 261, 262, 0, 263, 264, 265,
11643 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
11644 : 274, 0, 275, 276, 277, 278, 279, 0, 280, 0,
11645 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
11646 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
11647 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
11648 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
11649 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
11650 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
11651 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
11652 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
11653 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
11654 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
11655 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
11656 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
11657 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
11658 : 0, 386, 387, 388, 389, 390, 391, 392, 393, 394,
11659 : 0, 395, 0, 396, 397, 398, 399, 400, 401, 402,
11660 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
11661 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
11662 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
11663 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
11664 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 447,
11665 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
11666 : 458, 459, 0, 460, 461, 462, 463, 0, 464, 465,
11667 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
11668 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 480,
11669 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
11670 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
11671 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
11672 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
11673 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
11674 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
11675 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
11676 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
11677 : 556, 0, 557, 558, 559, 560, 561, 562, 563, 564,
11678 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
11679 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
11680 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
11681 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
11682 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
11683 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
11684 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
11685 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
11686 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
11687 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
11688 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
11689 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11690 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
11691 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
11692 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
11693 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
11694 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
11695 : 273, 274, 2836, 275, 276, 277, 278, 279, 0, 0,
11696 : 2837, 281, 282, 283, 284, 285, 286, 0, 288, 289,
11697 : 290, 291, 2838, 292, 293, 294, 295, 296, 297, 0,
11698 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
11699 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
11700 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
11701 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
11702 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
11703 : 335, 336, 337, 0, 2839, 339, 340, 341, 342, 343,
11704 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
11705 : 352, 353, 0, 354, 2840, 355, 356, 0, 0, 0,
11706 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
11707 : 367, 0, 368, 369, 370, 371, 2841, 0, 374, 375,
11708 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
11709 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
11710 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
11711 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
11712 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
11713 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
11714 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
11715 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
11716 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
11717 : 457, 458, 459, 2842, 460, 461, 0, 463, 0, 464,
11718 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
11719 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
11720 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
11721 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
11722 : 499, 500, 501, 502, 503, 504, 2843, 505, 506, 507,
11723 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
11724 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
11725 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
11726 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
11727 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
11728 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
11729 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
11730 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
11731 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
11732 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
11733 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
11734 : 606, 607, 608, 609, 610, 0, 2844, 611, 612, 613,
11735 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
11736 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
11737 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
11738 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
11739 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
11740 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11741 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
11742 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
11743 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
11744 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
11745 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
11746 : 272, 273, 274, 2836, 275, 276, 277, 278, 279, 0,
11747 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
11748 : 289, 290, 291, 2838, 292, 293, 294, 295, 296, 297,
11749 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
11750 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
11751 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
11752 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
11753 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
11754 : 334, 335, 336, 337, 0, 2839, 339, 340, 341, 342,
11755 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
11756 : 351, 352, 353, 0, 354, 2840, 355, 356, 0, 0,
11757 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
11758 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
11759 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
11760 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
11761 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
11762 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
11763 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
11764 : 419, 420, 0, 422, 3891, 0, 424, 425, 426, 0,
11765 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
11766 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
11767 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
11768 : 456, 457, 458, 459, 2842, 460, 461, 0, 463, 0,
11769 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
11770 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
11771 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
11772 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
11773 : 498, 499, 500, 501, 502, 503, 504, 2843, 505, 506,
11774 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
11775 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
11776 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
11777 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
11778 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
11779 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
11780 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
11781 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
11782 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
11783 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
11784 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
11785 : 605, 606, 607, 608, 609, 610, 0, 2844, 611, 612,
11786 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
11787 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
11788 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
11789 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
11790 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
11791 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11792 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
11793 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
11794 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
11795 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
11796 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
11797 : 271, 272, 273, 274, 2836, 275, 276, 277, 278, 279,
11798 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
11799 : 288, 289, 290, 291, 2838, 292, 293, 294, 295, 296,
11800 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
11801 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
11802 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
11803 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
11804 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
11805 : 333, 334, 335, 336, 337, 0, 2839, 339, 340, 341,
11806 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
11807 : 350, 351, 352, 353, 0, 354, 2840, 355, 356, 0,
11808 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
11809 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
11810 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
11811 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
11812 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
11813 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
11814 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
11815 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
11816 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
11817 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
11818 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
11819 : 455, 456, 457, 458, 459, 2842, 460, 461, 0, 463,
11820 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
11821 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
11822 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
11823 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
11824 : 497, 498, 499, 500, 501, 502, 503, 504, 2843, 505,
11825 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
11826 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
11827 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
11828 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
11829 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
11830 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
11831 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
11832 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
11833 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
11834 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
11835 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
11836 : 604, 605, 606, 607, 608, 609, 610, 0, 2844, 611,
11837 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
11838 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
11839 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
11840 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
11841 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
11842 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11843 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
11844 : 242, 243, 797, 244, 798, 246, 0, 0, 0, 0,
11845 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
11846 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
11847 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
11848 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
11849 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
11850 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
11851 : 296, 297, 799, 0, 299, 300, 301, 0, 0, 0,
11852 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
11853 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
11854 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
11855 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
11856 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
11857 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
11858 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
11859 : 0, 0, 0, 359, 360, 361, 362, 830, 363, 364,
11860 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
11861 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
11862 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
11863 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
11864 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
11865 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
11866 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
11867 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
11868 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
11869 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
11870 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
11871 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
11872 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
11873 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
11874 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
11875 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
11876 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
11877 : 515, 516, 517, 518, 519, 800, 520, 521, 522, 523,
11878 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
11879 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
11880 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 801,
11881 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
11882 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
11883 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
11884 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
11885 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
11886 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
11887 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
11888 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
11889 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
11890 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
11891 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
11892 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
11893 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11894 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
11895 : 241, 242, 243, 797, 244, 798, 246, 0, 0, 0,
11896 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
11897 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
11898 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
11899 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
11900 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
11901 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
11902 : 295, 296, 297, 799, 0, 299, 300, 301, 0, 0,
11903 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
11904 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
11905 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
11906 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
11907 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
11908 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
11909 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
11910 : 356, 0, 0, 0, 359, 360, 361, 362, 3572, 363,
11911 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
11912 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
11913 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
11914 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
11915 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
11916 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
11917 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
11918 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
11919 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
11920 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
11921 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
11922 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
11923 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
11924 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
11925 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
11926 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
11927 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
11928 : 514, 515, 516, 517, 518, 519, 800, 520, 521, 522,
11929 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
11930 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
11931 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
11932 : 801, 552, 553, 554, 555, 556, 0, 557, 558, 559,
11933 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
11934 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
11935 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
11936 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
11937 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
11938 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
11939 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
11940 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
11941 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
11942 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
11943 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
11944 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11945 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
11946 : 240, 241, 242, 243, 797, 244, 798, 246, 0, 0,
11947 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
11948 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
11949 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
11950 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
11951 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
11952 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
11953 : 294, 295, 296, 297, 799, 0, 299, 300, 301, 0,
11954 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
11955 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
11956 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
11957 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
11958 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
11959 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
11960 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
11961 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
11962 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
11963 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
11964 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
11965 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
11966 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
11967 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
11968 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
11969 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
11970 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
11971 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
11972 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
11973 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
11974 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
11975 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
11976 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
11977 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
11978 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
11979 : 513, 514, 515, 516, 517, 518, 519, 800, 520, 521,
11980 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
11981 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
11982 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
11983 : 551, 801, 552, 553, 554, 555, 556, 0, 557, 558,
11984 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
11985 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
11986 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
11987 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
11988 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
11989 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
11990 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
11991 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
11992 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
11993 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
11994 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
11995 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
11996 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
11997 : 239, 240, 241, 242, 243, 3079, 244, 245, 246, 0,
11998 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
11999 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
12000 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
12001 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
12002 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
12003 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
12004 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
12005 : 0, 0, 0, 2909, 0, 0, 0, 303, 304, 305,
12006 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
12007 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
12008 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
12009 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
12010 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
12011 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
12012 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
12013 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
12014 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
12015 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
12016 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
12017 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
12018 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
12019 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
12020 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
12021 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
12022 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
12023 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
12024 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
12025 : 469, 470, 0, 471, 472, 473, 0, 862, 474, 475,
12026 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
12027 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
12028 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
12029 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
12030 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
12031 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
12032 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
12033 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
12034 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
12035 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
12036 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
12037 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
12038 : 0, 2910, 2911, 0, 588, 589, 590, 591, 592, 593,
12039 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
12040 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
12041 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
12042 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
12043 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
12044 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
12045 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
12046 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12047 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
12048 : 238, 239, 240, 241, 242, 243, 2007, 244, 245, 246,
12049 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
12050 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
12051 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
12052 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
12053 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
12054 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
12055 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
12056 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
12057 : 305, 2008, 307, 308, 309, 310, 311, 0, 312, 0,
12058 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
12059 : 322, 323, 0, 0, 324, 2009, 326, 327, 328, 0,
12060 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
12061 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
12062 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
12063 : 354, 2010, 355, 356, 0, 0, 0, 2011, 360, 361,
12064 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
12065 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
12066 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
12067 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
12068 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
12069 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
12070 : 415, 2012, 2013, 418, 0, 0, 419, 420, 0, 422,
12071 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
12072 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
12073 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
12074 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
12075 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
12076 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
12077 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
12078 : 483, 484, 485, 486, 487, 2014, 489, 490, 491, 492,
12079 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
12080 : 502, 503, 504, 0, 505, 506, 507, 2015, 509, 510,
12081 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
12082 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
12083 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
12084 : 2016, 540, 541, 542, 543, 544, 545, 2017, 547, 548,
12085 : 549, 550, 551, 0, 2018, 553, 554, 555, 556, 0,
12086 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
12087 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
12088 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
12089 : 585, 0, 2019, 586, 0, 2020, 589, 590, 591, 592,
12090 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
12091 : 600, 601, 0, 602, 603, 2021, 605, 606, 607, 608,
12092 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
12093 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
12094 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
12095 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
12096 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
12097 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
12098 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
12099 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 798,
12100 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
12101 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
12102 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
12103 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
12104 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
12105 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
12106 : 0, 292, 293, 294, 295, 296, 297, 799, 0, 299,
12107 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
12108 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
12109 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
12110 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
12111 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
12112 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
12113 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
12114 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
12115 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
12116 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
12117 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
12118 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
12119 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
12120 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
12121 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
12122 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
12123 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
12124 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
12125 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
12126 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
12127 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
12128 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
12129 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
12130 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
12131 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
12132 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
12133 : 800, 520, 521, 522, 523, 524, 525, 526, 527, 528,
12134 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
12135 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
12136 : 548, 549, 550, 551, 801, 552, 553, 554, 555, 556,
12137 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
12138 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
12139 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
12140 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
12141 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
12142 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
12143 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
12144 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
12145 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
12146 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
12147 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
12148 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
12149 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
12150 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
12151 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
12152 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
12153 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
12154 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
12155 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
12156 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
12157 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
12158 : 299, 300, 301, 0, 0, 0, 2909, 0, 0, 0,
12159 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
12160 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
12161 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
12162 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
12163 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
12164 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
12165 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
12166 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
12167 : 0, 368, 369, 370, 371, 372, 0, 374, 375, 376,
12168 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
12169 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
12170 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
12171 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
12172 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
12173 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
12174 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
12175 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
12176 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
12177 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
12178 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
12179 : 862, 474, 475, 476, 0, 0, 477, 478, 479, 0,
12180 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
12181 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
12182 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
12183 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
12184 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
12185 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
12186 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
12187 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
12188 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
12189 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
12190 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
12191 : 0, 584, 585, 0, 2910, 2911, 0, 588, 589, 590,
12192 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
12193 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
12194 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
12195 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
12196 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
12197 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
12198 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
12199 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
12200 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12201 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 1020,
12202 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
12203 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
12204 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
12205 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
12206 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
12207 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
12208 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
12209 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
12210 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
12211 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
12212 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
12213 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
12214 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
12215 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
12216 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
12217 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
12218 : 367, 0, 368, 369, 370, 371, 1021, 0, 374, 375,
12219 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
12220 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
12221 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
12222 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
12223 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
12224 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
12225 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
12226 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
12227 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
12228 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
12229 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
12230 : 0, 862, 474, 475, 476, 0, 0, 477, 478, 479,
12231 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
12232 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
12233 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
12234 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
12235 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
12236 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
12237 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
12238 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
12239 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
12240 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
12241 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
12242 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
12243 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
12244 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
12245 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
12246 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
12247 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
12248 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
12249 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
12250 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
12251 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12252 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
12253 : 3655, 244, 245, 246, 0, 0, 0, 0, 0, 0,
12254 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
12255 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
12256 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
12257 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
12258 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
12259 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
12260 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
12261 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
12262 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
12263 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
12264 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
12265 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
12266 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
12267 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
12268 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
12269 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
12270 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
12271 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
12272 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
12273 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
12274 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
12275 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
12276 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
12277 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
12278 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
12279 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
12280 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
12281 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
12282 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
12283 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
12284 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
12285 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
12286 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
12287 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
12288 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
12289 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
12290 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
12291 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
12292 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
12293 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
12294 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
12295 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
12296 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
12297 : 613, 614, 615, 3656, 0, 616, 617, 618, 619, 620,
12298 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
12299 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
12300 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
12301 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
12302 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12303 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
12304 : 243, 3668, 244, 245, 246, 0, 0, 0, 0, 0,
12305 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
12306 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
12307 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
12308 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
12309 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
12310 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
12311 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
12312 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
12313 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
12314 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
12315 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
12316 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
12317 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
12318 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
12319 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
12320 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
12321 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
12322 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
12323 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
12324 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
12325 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
12326 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
12327 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
12328 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
12329 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
12330 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
12331 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
12332 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
12333 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
12334 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
12335 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
12336 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
12337 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
12338 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
12339 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
12340 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
12341 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
12342 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
12343 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
12344 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
12345 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
12346 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
12347 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
12348 : 612, 613, 614, 615, 3669, 0, 616, 617, 618, 619,
12349 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
12350 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
12351 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
12352 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
12353 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12354 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
12355 : 242, 243, 659, 244, 245, 246, 0, 0, 0, 0,
12356 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
12357 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
12358 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
12359 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
12360 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
12361 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
12362 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
12363 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
12364 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
12365 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
12366 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
12367 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
12368 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
12369 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
12370 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
12371 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
12372 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
12373 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
12374 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
12375 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
12376 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
12377 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
12378 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
12379 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
12380 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
12381 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
12382 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
12383 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
12384 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
12385 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
12386 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
12387 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
12388 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
12389 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
12390 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
12391 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
12392 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
12393 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
12394 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
12395 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
12396 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
12397 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
12398 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
12399 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
12400 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
12401 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
12402 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
12403 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
12404 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12405 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
12406 : 241, 242, 243, 708, 244, 245, 246, 0, 0, 0,
12407 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
12408 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
12409 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
12410 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
12411 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
12412 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
12413 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
12414 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
12415 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
12416 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
12417 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
12418 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
12419 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
12420 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
12421 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
12422 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
12423 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
12424 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
12425 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
12426 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
12427 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
12428 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
12429 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
12430 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
12431 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
12432 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
12433 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
12434 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
12435 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
12436 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
12437 : 0, 496, 497, 498, 499, 500, 501, 502, 709, 504,
12438 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
12439 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
12440 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
12441 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
12442 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
12443 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
12444 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
12445 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
12446 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
12447 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
12448 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
12449 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
12450 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
12451 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
12452 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
12453 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
12454 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
12455 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12456 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
12457 : 240, 241, 242, 243, 822, 244, 245, 246, 0, 0,
12458 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
12459 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
12460 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
12461 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
12462 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
12463 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
12464 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
12465 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
12466 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
12467 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
12468 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
12469 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
12470 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
12471 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
12472 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
12473 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
12474 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
12475 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
12476 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
12477 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
12478 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
12479 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
12480 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
12481 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
12482 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
12483 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
12484 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
12485 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
12486 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
12487 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
12488 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
12489 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
12490 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
12491 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
12492 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
12493 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
12494 : 551, 0, 552, 553, 554, 555, 823, 0, 557, 558,
12495 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
12496 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
12497 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
12498 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
12499 : 594, 824, 596, 0, 0, 825, 598, 599, 600, 601,
12500 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
12501 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
12502 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
12503 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
12504 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
12505 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
12506 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12507 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
12508 : 239, 240, 241, 242, 243, 856, 244, 245, 246, 0,
12509 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
12510 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
12511 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
12512 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
12513 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
12514 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
12515 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
12516 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
12517 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
12518 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
12519 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
12520 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
12521 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
12522 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
12523 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
12524 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
12525 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
12526 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
12527 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
12528 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
12529 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
12530 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
12531 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
12532 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
12533 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
12534 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
12535 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
12536 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
12537 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
12538 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
12539 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
12540 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
12541 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
12542 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
12543 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
12544 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
12545 : 550, 551, 0, 552, 553, 554, 555, 857, 0, 557,
12546 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
12547 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
12548 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
12549 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
12550 : 0, 594, 858, 596, 0, 0, 859, 598, 599, 600,
12551 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
12552 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
12553 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
12554 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
12555 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
12556 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
12557 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12558 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
12559 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
12560 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
12561 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
12562 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
12563 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
12564 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
12565 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
12566 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
12567 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
12568 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
12569 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
12570 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
12571 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
12572 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
12573 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
12574 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
12575 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
12576 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
12577 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
12578 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
12579 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
12580 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
12581 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
12582 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
12583 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
12584 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
12585 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
12586 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
12587 : 468, 469, 470, 0, 471, 472, 473, 0, 862, 474,
12588 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
12589 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
12590 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
12591 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
12592 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
12593 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
12594 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
12595 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
12596 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
12597 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
12598 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
12599 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
12600 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
12601 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
12602 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
12603 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
12604 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
12605 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
12606 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
12607 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
12608 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
12609 : 922, 0, 0, 0, 0, 0, 0, 0, 235, 236,
12610 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
12611 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
12612 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
12613 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
12614 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
12615 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
12616 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
12617 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
12618 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
12619 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
12620 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
12621 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
12622 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
12623 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
12624 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
12625 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
12626 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
12627 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
12628 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
12629 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
12630 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
12631 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
12632 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
12633 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
12634 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
12635 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
12636 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
12637 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
12638 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
12639 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
12640 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
12641 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
12642 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
12643 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
12644 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
12645 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
12646 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
12647 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
12648 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
12649 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
12650 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
12651 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
12652 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
12653 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
12654 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
12655 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
12656 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
12657 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
12658 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
12659 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
12660 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
12661 : 236, 237, 238, 239, 240, 241, 242, 243, 977, 244,
12662 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
12663 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
12664 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
12665 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
12666 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
12667 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
12668 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
12669 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
12670 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
12671 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
12672 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
12673 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
12674 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
12675 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
12676 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
12677 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
12678 : 0, 368, 369, 370, 371, 978, 0, 374, 375, 376,
12679 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
12680 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
12681 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
12682 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
12683 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
12684 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
12685 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
12686 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
12687 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
12688 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
12689 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
12690 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
12691 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
12692 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
12693 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
12694 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
12695 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
12696 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
12697 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
12698 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
12699 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
12700 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
12701 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
12702 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
12703 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
12704 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
12705 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
12706 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
12707 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
12708 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
12709 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
12710 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
12711 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12712 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 1140,
12713 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
12714 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
12715 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
12716 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
12717 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
12718 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
12719 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
12720 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
12721 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
12722 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
12723 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
12724 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
12725 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
12726 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
12727 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
12728 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
12729 : 367, 0, 368, 369, 370, 371, 372, 0, 374, 375,
12730 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
12731 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
12732 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
12733 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
12734 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
12735 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
12736 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
12737 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
12738 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
12739 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
12740 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
12741 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
12742 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
12743 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
12744 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
12745 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
12746 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
12747 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
12748 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
12749 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
12750 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
12751 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
12752 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
12753 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
12754 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
12755 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
12756 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
12757 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
12758 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
12759 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
12760 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
12761 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
12762 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12763 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
12764 : 1390, 244, 245, 246, 0, 0, 0, 0, 0, 0,
12765 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
12766 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
12767 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
12768 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
12769 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
12770 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
12771 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
12772 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
12773 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
12774 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
12775 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
12776 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
12777 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
12778 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
12779 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
12780 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
12781 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
12782 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
12783 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
12784 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
12785 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
12786 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
12787 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
12788 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
12789 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
12790 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
12791 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
12792 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
12793 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
12794 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
12795 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
12796 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
12797 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
12798 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
12799 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
12800 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
12801 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
12802 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
12803 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
12804 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
12805 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
12806 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
12807 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
12808 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
12809 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
12810 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
12811 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
12812 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
12813 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12814 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
12815 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
12816 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
12817 : 1401, 255, 256, 257, 258, 259, 0, 261, 262, 0,
12818 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 842,
12819 : 271, 272, 273, 1402, 0, 275, 276, 277, 278, 279,
12820 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
12821 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
12822 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
12823 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
12824 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
12825 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
12826 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
12827 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
12828 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
12829 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
12830 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
12831 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
12832 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
12833 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
12834 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
12835 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
12836 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
12837 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
12838 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
12839 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
12840 : 845, 446, 0, 448, 449, 450, 451, 452, 453, 454,
12841 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
12842 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
12843 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
12844 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
12845 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
12846 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
12847 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
12848 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
12849 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
12850 : 534, 0, 846, 537, 538, 539, 540, 541, 542, 543,
12851 : 544, 545, 847, 547, 548, 549, 550, 551, 0, 552,
12852 : 553, 554, 555, 1394, 0, 557, 558, 559, 560, 561,
12853 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
12854 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
12855 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
12856 : 588, 589, 590, 591, 592, 593, 0, 594, 849, 596,
12857 : 0, 0, 850, 598, 599, 600, 601, 0, 602, 603,
12858 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
12859 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
12860 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
12861 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
12862 : 635, 851, 637, 638, 639, 640, 641, 642, 643, 644,
12863 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
12864 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12865 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
12866 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
12867 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
12868 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
12869 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
12870 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
12871 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
12872 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
12873 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
12874 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
12875 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
12876 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
12877 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
12878 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
12879 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
12880 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
12881 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
12882 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 1547,
12883 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
12884 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
12885 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
12886 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
12887 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
12888 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
12889 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
12890 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
12891 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
12892 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
12893 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
12894 : 471, 472, 473, 0, 862, 474, 475, 476, 0, 0,
12895 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
12896 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
12897 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
12898 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
12899 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
12900 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
12901 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
12902 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
12903 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
12904 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
12905 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
12906 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
12907 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
12908 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
12909 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
12910 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
12911 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
12912 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
12913 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
12914 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
12915 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12916 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
12917 : 241, 242, 243, 1608, 244, 245, 246, 0, 0, 0,
12918 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
12919 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
12920 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
12921 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
12922 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
12923 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
12924 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
12925 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
12926 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
12927 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
12928 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
12929 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
12930 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
12931 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
12932 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
12933 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
12934 : 1609, 0, 374, 375, 376, 377, 0, 378, 379, 380,
12935 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
12936 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
12937 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
12938 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
12939 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
12940 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
12941 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
12942 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
12943 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
12944 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
12945 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
12946 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
12947 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
12948 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
12949 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
12950 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
12951 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
12952 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
12953 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
12954 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
12955 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
12956 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
12957 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
12958 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
12959 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
12960 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
12961 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
12962 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
12963 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
12964 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
12965 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
12966 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
12967 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
12968 : 240, 241, 242, 243, 822, 244, 245, 246, 0, 0,
12969 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
12970 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
12971 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
12972 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
12973 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
12974 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
12975 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
12976 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
12977 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
12978 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
12979 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
12980 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
12981 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
12982 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
12983 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
12984 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
12985 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
12986 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
12987 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
12988 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
12989 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
12990 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
12991 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
12992 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
12993 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
12994 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
12995 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
12996 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
12997 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
12998 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
12999 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
13000 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
13001 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
13002 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
13003 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
13004 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
13005 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
13006 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
13007 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
13008 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
13009 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
13010 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
13011 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
13012 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
13013 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
13014 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
13015 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
13016 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
13017 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13018 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
13019 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
13020 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
13021 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
13022 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
13023 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
13024 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
13025 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
13026 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
13027 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
13028 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
13029 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
13030 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
13031 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
13032 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
13033 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
13034 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 3419,
13035 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
13036 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
13037 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
13038 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
13039 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
13040 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
13041 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
13042 : 0, 424, 425, 3420, 0, 0, 427, 428, 429, 430,
13043 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
13044 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
13045 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
13046 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
13047 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
13048 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
13049 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
13050 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
13051 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
13052 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
13053 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
13054 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
13055 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
13056 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
13057 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
13058 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
13059 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
13060 : 0, 3421, 586, 0, 588, 589, 3422, 591, 3423, 593,
13061 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
13062 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
13063 : 610, 0, 0, 611, 612, 3424, 614, 615, 0, 0,
13064 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
13065 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
13066 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
13067 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
13068 : 658, 0, 0, 717, 0, 0, 0, 0, 0, 0,
13069 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
13070 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
13071 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
13072 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
13073 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
13074 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
13075 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
13076 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
13077 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
13078 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
13079 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
13080 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
13081 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
13082 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
13083 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
13084 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
13085 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
13086 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
13087 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
13088 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
13089 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
13090 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
13091 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
13092 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
13093 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
13094 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
13095 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
13096 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
13097 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
13098 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
13099 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
13100 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
13101 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
13102 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
13103 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
13104 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
13105 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
13106 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
13107 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
13108 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
13109 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
13110 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
13111 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
13112 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
13113 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
13114 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
13115 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
13116 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
13117 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
13118 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
13119 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 778,
13120 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
13121 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
13122 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
13123 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
13124 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
13125 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
13126 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
13127 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
13128 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
13129 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
13130 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
13131 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
13132 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
13133 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
13134 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
13135 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
13136 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
13137 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
13138 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
13139 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
13140 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
13141 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
13142 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
13143 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
13144 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
13145 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
13146 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
13147 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
13148 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
13149 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
13150 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
13151 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
13152 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
13153 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
13154 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
13155 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
13156 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
13157 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
13158 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
13159 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
13160 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
13161 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
13162 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
13163 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
13164 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
13165 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
13166 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
13167 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
13168 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
13169 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
13170 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
13171 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
13172 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
13173 : 245, 246, 0, 0, 0, 0, 0, 4246, 0, 247,
13174 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
13175 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
13176 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
13177 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
13178 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
13179 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
13180 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
13181 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
13182 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
13183 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
13184 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
13185 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
13186 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
13187 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
13188 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
13189 : 0, 368, 369, 370, 371, 372, 0, 374, 375, 376,
13190 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
13191 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
13192 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
13193 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
13194 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
13195 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
13196 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
13197 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
13198 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
13199 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
13200 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
13201 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
13202 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
13203 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
13204 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
13205 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
13206 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
13207 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
13208 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
13209 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
13210 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
13211 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
13212 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
13213 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
13214 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
13215 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
13216 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
13217 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
13218 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
13219 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
13220 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
13221 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
13222 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13223 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
13224 : 244, 245, 246, 0, 0, 0, 0, 0, 4260, 0,
13225 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
13226 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
13227 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
13228 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
13229 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
13230 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
13231 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
13232 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
13233 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
13234 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
13235 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
13236 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
13237 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
13238 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
13239 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
13240 : 367, 0, 368, 369, 370, 371, 372, 0, 374, 375,
13241 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
13242 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
13243 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
13244 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
13245 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
13246 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
13247 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
13248 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
13249 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
13250 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
13251 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
13252 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
13253 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
13254 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
13255 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
13256 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
13257 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
13258 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
13259 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
13260 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
13261 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
13262 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
13263 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
13264 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
13265 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
13266 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
13267 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
13268 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
13269 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
13270 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
13271 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
13272 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
13273 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13274 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
13275 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
13276 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
13277 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
13278 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
13279 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
13280 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
13281 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
13282 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
13283 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
13284 : 311, 4408, 312, 0, 313, 314, 315, 316, 317, 318,
13285 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
13286 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
13287 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
13288 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
13289 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
13290 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
13291 : 366, 367, 0, 368, 369, 370, 371, 372, 0, 374,
13292 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
13293 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
13294 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
13295 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
13296 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
13297 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
13298 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
13299 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
13300 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
13301 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
13302 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
13303 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
13304 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
13305 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
13306 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
13307 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
13308 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
13309 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
13310 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
13311 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
13312 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
13313 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
13314 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
13315 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
13316 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
13317 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
13318 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
13319 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
13320 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
13321 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
13322 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
13323 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
13324 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13325 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
13326 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
13327 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
13328 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
13329 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
13330 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
13331 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
13332 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
13333 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
13334 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
13335 : 310, 311, 4935, 312, 0, 313, 314, 315, 316, 317,
13336 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
13337 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
13338 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
13339 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
13340 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
13341 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
13342 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
13343 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
13344 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
13345 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
13346 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
13347 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
13348 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
13349 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
13350 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
13351 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
13352 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
13353 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
13354 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
13355 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
13356 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
13357 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
13358 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
13359 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
13360 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
13361 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
13362 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
13363 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
13364 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
13365 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
13366 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
13367 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
13368 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
13369 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
13370 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
13371 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
13372 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
13373 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
13374 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
13375 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13376 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
13377 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
13378 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
13379 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
13380 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
13381 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
13382 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
13383 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
13384 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
13385 : 5008, 0, 0, 0, 303, 304, 305, 306, 307, 308,
13386 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
13387 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
13388 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
13389 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
13390 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
13391 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
13392 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
13393 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
13394 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
13395 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
13396 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
13397 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
13398 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
13399 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
13400 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
13401 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
13402 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
13403 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
13404 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
13405 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
13406 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
13407 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
13408 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
13409 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
13410 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
13411 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
13412 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
13413 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
13414 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
13415 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
13416 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
13417 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
13418 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
13419 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
13420 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
13421 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
13422 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
13423 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
13424 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
13425 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
13426 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13427 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
13428 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
13429 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
13430 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
13431 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
13432 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
13433 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
13434 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
13435 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
13436 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
13437 : 308, 309, 310, 311, 5373, 312, 0, 313, 314, 315,
13438 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
13439 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
13440 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
13441 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
13442 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
13443 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
13444 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
13445 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
13446 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
13447 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
13448 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
13449 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
13450 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
13451 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
13452 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
13453 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
13454 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
13455 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
13456 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
13457 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
13458 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
13459 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
13460 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
13461 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
13462 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
13463 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
13464 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
13465 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
13466 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
13467 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
13468 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
13469 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
13470 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
13471 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
13472 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
13473 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
13474 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
13475 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
13476 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
13477 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13478 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
13479 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
13480 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
13481 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
13482 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
13483 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
13484 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
13485 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
13486 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
13487 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
13488 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
13489 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
13490 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
13491 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
13492 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
13493 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
13494 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
13495 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
13496 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
13497 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
13498 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
13499 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
13500 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
13501 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
13502 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
13503 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
13504 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
13505 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
13506 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
13507 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
13508 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
13509 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
13510 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
13511 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
13512 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
13513 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
13514 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
13515 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
13516 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
13517 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
13518 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
13519 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
13520 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
13521 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
13522 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
13523 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
13524 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
13525 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
13526 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
13527 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
13528 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13529 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
13530 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
13531 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
13532 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
13533 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
13534 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
13535 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
13536 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
13537 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
13538 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
13539 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
13540 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
13541 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
13542 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
13543 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
13544 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
13545 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
13546 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
13547 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
13548 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
13549 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
13550 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
13551 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
13552 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
13553 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
13554 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
13555 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
13556 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
13557 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
13558 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
13559 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
13560 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
13561 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
13562 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
13563 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
13564 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
13565 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
13566 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
13567 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
13568 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
13569 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
13570 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
13571 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
13572 : 0, 594, 595, 596, 0, 0, 814, 598, 599, 600,
13573 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
13574 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
13575 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
13576 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
13577 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
13578 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
13579 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13580 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
13581 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
13582 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
13583 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
13584 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
13585 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
13586 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
13587 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
13588 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
13589 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
13590 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
13591 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
13592 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
13593 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
13594 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
13595 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
13596 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
13597 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
13598 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
13599 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
13600 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
13601 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
13602 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
13603 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
13604 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
13605 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
13606 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
13607 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
13608 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
13609 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
13610 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
13611 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
13612 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
13613 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
13614 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
13615 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
13616 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
13617 : 539, 540, 541, 542, 543, 820, 545, 546, 547, 548,
13618 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
13619 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
13620 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
13621 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
13622 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
13623 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
13624 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
13625 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
13626 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
13627 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
13628 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
13629 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
13630 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
13631 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
13632 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
13633 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
13634 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
13635 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
13636 : 267, 268, 269, 0, 0, 842, 271, 272, 273, 274,
13637 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
13638 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
13639 : 0, 843, 293, 294, 295, 296, 297, 0, 0, 299,
13640 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
13641 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
13642 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
13643 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
13644 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
13645 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
13646 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
13647 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
13648 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
13649 : 368, 369, 370, 371, 372, 0, 374, 375, 376, 377,
13650 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
13651 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
13652 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
13653 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
13654 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
13655 : 422, 0, 0, 424, 425, 844, 0, 0, 427, 428,
13656 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
13657 : 439, 440, 441, 442, 443, 444, 845, 446, 0, 448,
13658 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
13659 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
13660 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
13661 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
13662 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
13663 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
13664 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
13665 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
13666 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
13667 : 529, 530, 531, 532, 0, 533, 534, 0, 846, 537,
13668 : 538, 539, 540, 541, 542, 543, 544, 545, 847, 547,
13669 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 848,
13670 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
13671 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
13672 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
13673 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
13674 : 592, 593, 0, 594, 849, 596, 0, 0, 850, 598,
13675 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
13676 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
13677 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
13678 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
13679 : 0, 0, 631, 632, 633, 634, 635, 851, 637, 638,
13680 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
13681 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
13682 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
13683 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
13684 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
13685 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
13686 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
13687 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
13688 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
13689 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
13690 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
13691 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
13692 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
13693 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
13694 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
13695 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
13696 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
13697 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
13698 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
13699 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
13700 : 0, 368, 369, 370, 371, 372, 0, 374, 375, 376,
13701 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
13702 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
13703 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
13704 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
13705 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
13706 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
13707 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
13708 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
13709 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
13710 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
13711 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
13712 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
13713 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
13714 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
13715 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
13716 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 874,
13717 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
13718 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
13719 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
13720 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
13721 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
13722 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
13723 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
13724 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
13725 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
13726 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
13727 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
13728 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
13729 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
13730 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
13731 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
13732 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
13733 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13734 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
13735 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
13736 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
13737 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
13738 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
13739 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
13740 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
13741 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
13742 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
13743 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
13744 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
13745 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
13746 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
13747 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
13748 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
13749 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
13750 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
13751 : 367, 0, 368, 369, 370, 371, 1002, 0, 374, 375,
13752 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
13753 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
13754 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
13755 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
13756 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
13757 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
13758 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
13759 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
13760 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
13761 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
13762 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
13763 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
13764 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
13765 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
13766 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
13767 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
13768 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
13769 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
13770 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
13771 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
13772 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
13773 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
13774 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
13775 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
13776 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
13777 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
13778 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
13779 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
13780 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
13781 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
13782 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
13783 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
13784 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13785 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
13786 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
13787 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
13788 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
13789 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
13790 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
13791 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
13792 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
13793 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
13794 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
13795 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
13796 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
13797 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
13798 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
13799 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
13800 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
13801 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
13802 : 366, 367, 0, 368, 369, 370, 371, 1012, 0, 374,
13803 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
13804 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
13805 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
13806 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
13807 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
13808 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
13809 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
13810 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
13811 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
13812 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
13813 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
13814 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
13815 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
13816 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
13817 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
13818 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
13819 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
13820 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
13821 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
13822 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
13823 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
13824 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
13825 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
13826 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
13827 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
13828 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
13829 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
13830 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
13831 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
13832 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
13833 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
13834 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
13835 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13836 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
13837 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
13838 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
13839 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
13840 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
13841 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
13842 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
13843 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
13844 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
13845 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
13846 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
13847 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
13848 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
13849 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
13850 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
13851 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
13852 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
13853 : 365, 366, 367, 0, 368, 369, 370, 371, 1015, 0,
13854 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
13855 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
13856 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
13857 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
13858 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
13859 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
13860 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
13861 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
13862 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
13863 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
13864 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
13865 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
13866 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
13867 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
13868 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
13869 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
13870 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
13871 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
13872 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
13873 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
13874 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
13875 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
13876 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
13877 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
13878 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
13879 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
13880 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
13881 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
13882 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
13883 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
13884 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
13885 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
13886 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13887 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
13888 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
13889 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
13890 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
13891 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
13892 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
13893 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
13894 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
13895 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
13896 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
13897 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
13898 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
13899 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
13900 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
13901 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
13902 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
13903 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
13904 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 1031,
13905 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
13906 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
13907 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
13908 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
13909 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
13910 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
13911 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
13912 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
13913 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
13914 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
13915 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
13916 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
13917 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
13918 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
13919 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
13920 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
13921 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
13922 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
13923 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
13924 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
13925 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
13926 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
13927 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
13928 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
13929 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
13930 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
13931 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
13932 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
13933 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
13934 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
13935 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
13936 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
13937 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13938 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
13939 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
13940 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
13941 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
13942 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
13943 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
13944 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
13945 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
13946 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
13947 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
13948 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
13949 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
13950 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
13951 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
13952 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
13953 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
13954 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
13955 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
13956 : 1088, 0, 374, 375, 376, 377, 0, 378, 379, 380,
13957 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
13958 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
13959 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
13960 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
13961 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
13962 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
13963 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
13964 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
13965 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
13966 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
13967 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
13968 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
13969 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
13970 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
13971 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
13972 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
13973 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
13974 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
13975 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
13976 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
13977 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
13978 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
13979 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
13980 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
13981 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
13982 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
13983 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
13984 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
13985 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
13986 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
13987 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
13988 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
13989 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
13990 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
13991 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
13992 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
13993 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
13994 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
13995 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
13996 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
13997 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
13998 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
13999 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
14000 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
14001 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
14002 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
14003 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
14004 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
14005 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
14006 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
14007 : 371, 1093, 0, 374, 375, 376, 377, 0, 378, 379,
14008 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
14009 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
14010 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
14011 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
14012 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
14013 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
14014 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
14015 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
14016 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
14017 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
14018 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
14019 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
14020 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
14021 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
14022 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
14023 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
14024 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
14025 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
14026 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
14027 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
14028 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
14029 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
14030 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
14031 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
14032 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
14033 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
14034 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
14035 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
14036 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
14037 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
14038 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
14039 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14040 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
14041 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
14042 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
14043 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
14044 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
14045 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
14046 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
14047 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
14048 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
14049 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
14050 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
14051 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
14052 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
14053 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
14054 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
14055 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
14056 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
14057 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
14058 : 370, 371, 1110, 0, 374, 375, 376, 377, 0, 378,
14059 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
14060 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
14061 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
14062 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
14063 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
14064 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
14065 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
14066 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
14067 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
14068 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
14069 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
14070 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
14071 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
14072 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
14073 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
14074 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
14075 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
14076 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
14077 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
14078 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
14079 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
14080 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
14081 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
14082 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
14083 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
14084 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
14085 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
14086 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
14087 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
14088 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
14089 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
14090 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14091 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
14092 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
14093 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
14094 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
14095 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
14096 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
14097 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
14098 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
14099 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
14100 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
14101 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
14102 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
14103 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
14104 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
14105 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
14106 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
14107 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
14108 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
14109 : 369, 370, 371, 1113, 0, 374, 375, 376, 377, 0,
14110 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
14111 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
14112 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
14113 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
14114 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
14115 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
14116 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
14117 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
14118 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
14119 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
14120 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
14121 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
14122 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
14123 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
14124 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
14125 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
14126 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
14127 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
14128 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
14129 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
14130 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
14131 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
14132 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
14133 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
14134 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
14135 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
14136 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
14137 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
14138 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
14139 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
14140 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
14141 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
14142 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
14143 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
14144 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
14145 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
14146 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
14147 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
14148 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
14149 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
14150 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
14151 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
14152 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
14153 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
14154 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
14155 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
14156 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
14157 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
14158 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
14159 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
14160 : 368, 369, 370, 371, 1115, 0, 374, 375, 376, 377,
14161 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
14162 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
14163 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
14164 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
14165 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
14166 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
14167 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
14168 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
14169 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
14170 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
14171 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
14172 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
14173 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
14174 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
14175 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
14176 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
14177 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
14178 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
14179 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
14180 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
14181 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
14182 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
14183 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
14184 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
14185 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
14186 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
14187 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
14188 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
14189 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
14190 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
14191 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
14192 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
14193 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
14194 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
14195 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
14196 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
14197 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
14198 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
14199 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
14200 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
14201 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
14202 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
14203 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
14204 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
14205 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
14206 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
14207 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
14208 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
14209 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
14210 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
14211 : 0, 368, 369, 370, 371, 1153, 0, 374, 375, 376,
14212 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
14213 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
14214 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
14215 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
14216 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
14217 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
14218 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
14219 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
14220 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
14221 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
14222 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
14223 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
14224 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
14225 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
14226 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
14227 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
14228 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
14229 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
14230 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
14231 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
14232 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
14233 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
14234 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
14235 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
14236 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
14237 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
14238 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
14239 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
14240 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
14241 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
14242 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
14243 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
14244 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14245 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
14246 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
14247 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
14248 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
14249 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
14250 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
14251 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
14252 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
14253 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
14254 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
14255 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
14256 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
14257 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
14258 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
14259 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
14260 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
14261 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
14262 : 367, 0, 368, 369, 370, 371, 1181, 0, 374, 375,
14263 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
14264 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
14265 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
14266 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
14267 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
14268 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
14269 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
14270 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
14271 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
14272 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
14273 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
14274 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
14275 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
14276 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
14277 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
14278 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
14279 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
14280 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
14281 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
14282 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
14283 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
14284 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
14285 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
14286 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
14287 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
14288 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
14289 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
14290 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
14291 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
14292 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
14293 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
14294 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
14295 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14296 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
14297 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
14298 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
14299 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
14300 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
14301 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
14302 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
14303 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
14304 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
14305 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
14306 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
14307 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
14308 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
14309 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
14310 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
14311 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
14312 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
14313 : 366, 367, 0, 368, 369, 370, 371, 1183, 0, 374,
14314 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
14315 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
14316 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
14317 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
14318 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
14319 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
14320 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
14321 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
14322 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
14323 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
14324 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
14325 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
14326 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
14327 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
14328 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
14329 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
14330 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
14331 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
14332 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
14333 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
14334 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
14335 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
14336 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
14337 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
14338 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
14339 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
14340 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
14341 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
14342 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
14343 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
14344 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
14345 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
14346 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14347 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
14348 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
14349 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
14350 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
14351 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
14352 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
14353 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
14354 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
14355 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
14356 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
14357 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
14358 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
14359 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
14360 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
14361 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
14362 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
14363 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
14364 : 365, 366, 367, 0, 368, 369, 370, 371, 1193, 0,
14365 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
14366 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
14367 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
14368 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
14369 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
14370 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
14371 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
14372 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
14373 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
14374 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
14375 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
14376 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
14377 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
14378 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
14379 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
14380 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
14381 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
14382 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
14383 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
14384 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
14385 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
14386 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
14387 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
14388 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
14389 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
14390 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
14391 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
14392 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
14393 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
14394 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
14395 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
14396 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
14397 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14398 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
14399 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
14400 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
14401 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
14402 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
14403 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
14404 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
14405 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
14406 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
14407 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
14408 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
14409 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
14410 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
14411 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
14412 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
14413 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
14414 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
14415 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 1196,
14416 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
14417 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
14418 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
14419 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
14420 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
14421 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
14422 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
14423 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
14424 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
14425 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
14426 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
14427 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
14428 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
14429 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
14430 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
14431 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
14432 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
14433 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
14434 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
14435 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
14436 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
14437 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
14438 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
14439 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
14440 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
14441 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
14442 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
14443 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
14444 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
14445 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
14446 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
14447 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
14448 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14449 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
14450 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
14451 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
14452 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
14453 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
14454 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
14455 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
14456 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
14457 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
14458 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
14459 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
14460 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
14461 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
14462 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
14463 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
14464 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
14465 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
14466 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
14467 : 1199, 0, 374, 375, 376, 377, 0, 378, 379, 380,
14468 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
14469 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
14470 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
14471 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
14472 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
14473 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
14474 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
14475 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
14476 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
14477 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
14478 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
14479 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
14480 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
14481 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
14482 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
14483 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
14484 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
14485 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
14486 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
14487 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
14488 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
14489 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
14490 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
14491 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
14492 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
14493 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
14494 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
14495 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
14496 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
14497 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
14498 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
14499 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14500 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
14501 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
14502 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
14503 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
14504 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
14505 : 0, 0, 842, 271, 272, 273, 274, 0, 275, 276,
14506 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
14507 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
14508 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
14509 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
14510 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
14511 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
14512 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
14513 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
14514 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
14515 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
14516 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
14517 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
14518 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
14519 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
14520 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
14521 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
14522 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
14523 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
14524 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
14525 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
14526 : 442, 443, 444, 845, 446, 0, 448, 449, 450, 451,
14527 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
14528 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
14529 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
14530 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
14531 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
14532 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
14533 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
14534 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
14535 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
14536 : 532, 0, 533, 534, 0, 846, 537, 538, 539, 540,
14537 : 541, 542, 543, 544, 545, 847, 547, 548, 549, 550,
14538 : 551, 0, 552, 553, 554, 555, 1394, 0, 557, 558,
14539 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
14540 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
14541 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
14542 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
14543 : 594, 849, 596, 0, 0, 850, 598, 599, 600, 601,
14544 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
14545 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
14546 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
14547 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
14548 : 632, 633, 634, 635, 851, 637, 638, 639, 640, 641,
14549 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
14550 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14551 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
14552 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
14553 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
14554 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
14555 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
14556 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
14557 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
14558 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
14559 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
14560 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
14561 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
14562 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
14563 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
14564 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
14565 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
14566 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
14567 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
14568 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
14569 : 370, 371, 1872, 0, 374, 375, 376, 377, 0, 378,
14570 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
14571 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
14572 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
14573 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
14574 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
14575 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
14576 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
14577 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
14578 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
14579 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
14580 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
14581 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
14582 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
14583 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
14584 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
14585 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
14586 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
14587 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
14588 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
14589 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
14590 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
14591 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
14592 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
14593 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
14594 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
14595 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
14596 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
14597 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
14598 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
14599 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
14600 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
14601 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14602 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
14603 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
14604 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
14605 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
14606 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
14607 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
14608 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
14609 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
14610 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
14611 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
14612 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
14613 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
14614 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
14615 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
14616 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
14617 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
14618 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
14619 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
14620 : 369, 370, 371, 1906, 0, 374, 375, 376, 377, 0,
14621 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
14622 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
14623 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
14624 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
14625 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
14626 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
14627 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
14628 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
14629 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
14630 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
14631 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
14632 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
14633 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
14634 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
14635 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
14636 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
14637 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
14638 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
14639 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
14640 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
14641 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
14642 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
14643 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
14644 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
14645 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
14646 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
14647 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
14648 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
14649 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
14650 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
14651 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
14652 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
14653 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
14654 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
14655 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
14656 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
14657 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
14658 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
14659 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
14660 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
14661 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
14662 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
14663 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
14664 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
14665 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
14666 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
14667 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
14668 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
14669 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
14670 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
14671 : 368, 369, 370, 371, 1908, 0, 374, 375, 376, 377,
14672 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
14673 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
14674 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
14675 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
14676 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
14677 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
14678 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
14679 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
14680 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
14681 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
14682 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
14683 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
14684 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
14685 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
14686 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
14687 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
14688 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
14689 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
14690 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
14691 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
14692 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
14693 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
14694 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
14695 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
14696 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
14697 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
14698 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
14699 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
14700 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
14701 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
14702 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
14703 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
14704 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
14705 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
14706 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
14707 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
14708 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
14709 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
14710 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
14711 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
14712 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
14713 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
14714 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
14715 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
14716 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
14717 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
14718 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
14719 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
14720 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
14721 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
14722 : 0, 368, 369, 370, 371, 1948, 0, 374, 375, 376,
14723 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
14724 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
14725 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
14726 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
14727 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
14728 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
14729 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
14730 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
14731 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
14732 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
14733 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
14734 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
14735 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
14736 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
14737 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
14738 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
14739 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
14740 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
14741 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
14742 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
14743 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
14744 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
14745 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
14746 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
14747 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
14748 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
14749 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
14750 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
14751 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
14752 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
14753 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
14754 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
14755 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14756 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
14757 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
14758 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
14759 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
14760 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
14761 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
14762 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
14763 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
14764 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
14765 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
14766 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
14767 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
14768 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
14769 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
14770 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
14771 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
14772 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
14773 : 367, 0, 368, 369, 370, 371, 1950, 0, 374, 375,
14774 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
14775 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
14776 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
14777 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
14778 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
14779 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
14780 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
14781 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
14782 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
14783 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
14784 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
14785 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
14786 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
14787 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
14788 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
14789 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
14790 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
14791 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
14792 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
14793 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
14794 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
14795 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
14796 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
14797 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
14798 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
14799 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
14800 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
14801 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
14802 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
14803 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
14804 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
14805 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
14806 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14807 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
14808 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
14809 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
14810 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
14811 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
14812 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
14813 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
14814 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
14815 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
14816 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
14817 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
14818 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
14819 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
14820 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
14821 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
14822 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
14823 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
14824 : 366, 367, 0, 368, 369, 370, 371, 1952, 0, 374,
14825 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
14826 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
14827 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
14828 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
14829 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
14830 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
14831 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
14832 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
14833 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
14834 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
14835 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
14836 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
14837 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
14838 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
14839 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
14840 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
14841 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
14842 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
14843 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
14844 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
14845 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
14846 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
14847 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
14848 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
14849 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
14850 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
14851 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
14852 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
14853 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
14854 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
14855 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
14856 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
14857 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14858 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
14859 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
14860 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
14861 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
14862 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
14863 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
14864 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
14865 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
14866 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
14867 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
14868 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
14869 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
14870 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
14871 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
14872 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
14873 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
14874 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
14875 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
14876 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
14877 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
14878 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
14879 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
14880 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
14881 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
14882 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
14883 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
14884 : 445, 446, 0, 448, 449, 450, 451, 452, 453, 454,
14885 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
14886 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
14887 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
14888 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
14889 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
14890 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
14891 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
14892 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
14893 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
14894 : 534, 0, 536, 537, 538, 539, 540, 541, 542, 543,
14895 : 2046, 545, 546, 547, 548, 549, 550, 551, 0, 552,
14896 : 553, 554, 555, 556, 0, 557, 558, 559, 560, 561,
14897 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
14898 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
14899 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
14900 : 588, 589, 590, 591, 592, 593, 0, 594, 595, 596,
14901 : 0, 0, 597, 598, 599, 600, 601, 0, 602, 603,
14902 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
14903 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
14904 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
14905 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
14906 : 635, 636, 637, 638, 639, 640, 641, 642, 643, 644,
14907 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
14908 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14909 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
14910 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
14911 : 0, 2723, 0, 247, 248, 249, 0, 250, 251, 252,
14912 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
14913 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
14914 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
14915 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
14916 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
14917 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
14918 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
14919 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
14920 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
14921 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
14922 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
14923 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
14924 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
14925 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
14926 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 372,
14927 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
14928 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
14929 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
14930 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
14931 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
14932 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
14933 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
14934 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
14935 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
14936 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
14937 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
14938 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
14939 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
14940 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
14941 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
14942 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
14943 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
14944 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
14945 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
14946 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
14947 : 552, 553, 554, 555, 556, 0, 0, 558, 559, 560,
14948 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
14949 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
14950 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
14951 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
14952 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
14953 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
14954 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
14955 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
14956 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
14957 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
14958 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
14959 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
14960 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
14961 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
14962 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
14963 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
14964 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
14965 : 0, 842, 271, 272, 273, 274, 0, 275, 276, 277,
14966 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
14967 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
14968 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
14969 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
14970 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
14971 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
14972 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
14973 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
14974 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
14975 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
14976 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
14977 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
14978 : 372, 0, 374, 375, 376, 377, 0, 378, 379, 380,
14979 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
14980 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
14981 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
14982 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
14983 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
14984 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
14985 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
14986 : 443, 444, 845, 446, 0, 448, 449, 450, 451, 452,
14987 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
14988 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
14989 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
14990 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
14991 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
14992 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
14993 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
14994 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
14995 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
14996 : 0, 533, 534, 0, 846, 537, 538, 539, 540, 541,
14997 : 542, 543, 544, 545, 847, 547, 548, 549, 550, 551,
14998 : 0, 552, 553, 554, 555, 1394, 0, 557, 558, 559,
14999 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
15000 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
15001 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
15002 : 586, 0, 2757, 589, 590, 591, 592, 593, 0, 594,
15003 : 849, 596, 0, 0, 850, 598, 599, 600, 601, 0,
15004 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
15005 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
15006 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
15007 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
15008 : 633, 634, 635, 851, 637, 638, 639, 640, 641, 642,
15009 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
15010 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15011 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
15012 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
15013 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
15014 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
15015 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
15016 : 0, 0, 842, 271, 272, 273, 274, 0, 275, 276,
15017 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
15018 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
15019 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
15020 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
15021 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
15022 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
15023 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
15024 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
15025 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
15026 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
15027 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
15028 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
15029 : 371, 372, 0, 374, 375, 376, 377, 0, 378, 379,
15030 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
15031 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
15032 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
15033 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
15034 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
15035 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
15036 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
15037 : 442, 443, 444, 845, 446, 0, 448, 449, 450, 451,
15038 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
15039 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
15040 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
15041 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
15042 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
15043 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
15044 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
15045 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
15046 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
15047 : 532, 0, 533, 534, 0, 846, 537, 538, 539, 540,
15048 : 541, 542, 543, 544, 545, 2819, 547, 548, 549, 550,
15049 : 551, 0, 552, 553, 554, 555, 2820, 0, 557, 558,
15050 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
15051 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
15052 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
15053 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
15054 : 594, 849, 596, 0, 0, 2821, 598, 599, 600, 601,
15055 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
15056 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
15057 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
15058 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
15059 : 632, 633, 634, 635, 851, 637, 638, 639, 640, 641,
15060 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
15061 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15062 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
15063 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
15064 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
15065 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
15066 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
15067 : 269, 0, 0, 842, 271, 272, 273, 274, 0, 275,
15068 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
15069 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
15070 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
15071 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
15072 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
15073 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
15074 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
15075 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
15076 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
15077 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
15078 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
15079 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
15080 : 370, 371, 372, 0, 374, 375, 376, 377, 0, 378,
15081 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
15082 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
15083 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
15084 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
15085 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
15086 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
15087 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
15088 : 441, 442, 443, 444, 845, 446, 0, 448, 449, 450,
15089 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
15090 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
15091 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
15092 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
15093 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
15094 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
15095 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
15096 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
15097 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
15098 : 531, 532, 0, 533, 534, 0, 846, 537, 538, 539,
15099 : 540, 541, 542, 543, 544, 545, 2906, 547, 548, 549,
15100 : 550, 551, 0, 552, 553, 554, 555, 2820, 0, 557,
15101 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
15102 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
15103 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
15104 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
15105 : 0, 594, 849, 596, 0, 0, 2821, 598, 599, 600,
15106 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
15107 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
15108 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
15109 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
15110 : 631, 632, 633, 634, 635, 851, 637, 638, 639, 640,
15111 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
15112 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15113 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
15114 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
15115 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
15116 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
15117 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
15118 : 268, 269, 0, 0, 842, 271, 272, 273, 274, 0,
15119 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
15120 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
15121 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
15122 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
15123 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
15124 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
15125 : 322, 323, 0, 0, 324, 325, 326, 327, 328, 0,
15126 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
15127 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
15128 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
15129 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
15130 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
15131 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
15132 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
15133 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
15134 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
15135 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
15136 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
15137 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
15138 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
15139 : 440, 441, 442, 443, 444, 845, 446, 0, 448, 449,
15140 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
15141 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
15142 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
15143 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
15144 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
15145 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
15146 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
15147 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
15148 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
15149 : 530, 531, 532, 0, 533, 534, 0, 846, 537, 538,
15150 : 539, 540, 541, 542, 543, 544, 545, 2930, 547, 548,
15151 : 549, 550, 551, 0, 552, 553, 554, 555, 2820, 0,
15152 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
15153 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
15154 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
15155 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
15156 : 593, 0, 594, 849, 596, 0, 0, 2821, 598, 599,
15157 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
15158 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
15159 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
15160 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
15161 : 0, 631, 632, 633, 634, 635, 851, 637, 638, 639,
15162 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
15163 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
15164 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
15165 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
15166 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
15167 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
15168 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
15169 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
15170 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
15171 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
15172 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
15173 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
15174 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
15175 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
15176 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
15177 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
15178 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
15179 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
15180 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
15181 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
15182 : 368, 369, 370, 371, 3124, 0, 374, 375, 376, 377,
15183 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
15184 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
15185 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
15186 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
15187 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
15188 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
15189 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
15190 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
15191 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
15192 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
15193 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
15194 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
15195 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
15196 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
15197 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
15198 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
15199 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
15200 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
15201 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
15202 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
15203 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
15204 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
15205 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
15206 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
15207 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
15208 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
15209 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
15210 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
15211 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
15212 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
15213 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
15214 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
15215 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
15216 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
15217 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
15218 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
15219 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
15220 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
15221 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
15222 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
15223 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
15224 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
15225 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
15226 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
15227 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
15228 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
15229 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
15230 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
15231 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
15232 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
15233 : 0, 368, 369, 370, 371, 3128, 0, 374, 375, 376,
15234 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
15235 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
15236 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
15237 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
15238 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
15239 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
15240 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
15241 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
15242 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
15243 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
15244 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
15245 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
15246 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
15247 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 499,
15248 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
15249 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
15250 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
15251 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
15252 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
15253 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
15254 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
15255 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
15256 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
15257 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
15258 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
15259 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
15260 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
15261 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
15262 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
15263 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
15264 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
15265 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
15266 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15267 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
15268 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
15269 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
15270 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
15271 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
15272 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
15273 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
15274 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
15275 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
15276 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
15277 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
15278 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
15279 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
15280 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
15281 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
15282 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
15283 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
15284 : 367, 0, 368, 369, 370, 371, 3186, 0, 374, 375,
15285 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
15286 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
15287 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
15288 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
15289 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
15290 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
15291 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
15292 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
15293 : 0, 448, 449, 450, 451, 452, 453, 454, 455, 456,
15294 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
15295 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
15296 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
15297 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
15298 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
15299 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
15300 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
15301 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
15302 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
15303 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
15304 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
15305 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
15306 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
15307 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
15308 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
15309 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
15310 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
15311 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
15312 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
15313 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
15314 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
15315 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
15316 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
15317 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15318 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
15319 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
15320 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
15321 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
15322 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
15323 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
15324 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
15325 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
15326 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
15327 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
15328 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
15329 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
15330 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
15331 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
15332 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
15333 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
15334 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
15335 : 366, 367, 0, 368, 369, 370, 371, 3577, 0, 374,
15336 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
15337 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
15338 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
15339 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
15340 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
15341 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
15342 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
15343 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
15344 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
15345 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
15346 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
15347 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
15348 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
15349 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
15350 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
15351 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 516,
15352 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
15353 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
15354 : 0, 536, 537, 538, 539, 540, 541, 542, 543, 544,
15355 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
15356 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
15357 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
15358 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
15359 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
15360 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
15361 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
15362 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
15363 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
15364 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
15365 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
15366 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
15367 : 646, 647, 648, 649, 650, 658, 0, 0, 0, 0,
15368 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15369 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
15370 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
15371 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
15372 : 0, 255, 256, 257, 258, 259, 0, 261, 262, 0,
15373 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 842,
15374 : 271, 272, 273, 274, 0, 275, 276, 277, 278, 279,
15375 : 0, 0, 0, 281, 282, 283, 284, 285, 286, 0,
15376 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
15377 : 297, 0, 0, 299, 300, 301, 0, 0, 0, 0,
15378 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 309,
15379 : 310, 311, 0, 312, 0, 313, 314, 315, 316, 317,
15380 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
15381 : 325, 326, 327, 328, 0, 329, 330, 331, 332, 0,
15382 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
15383 : 342, 343, 344, 345, 346, 347, 0, 348, 0, 349,
15384 : 350, 351, 352, 353, 0, 354, 0, 355, 356, 0,
15385 : 0, 0, 359, 360, 361, 362, 0, 363, 364, 0,
15386 : 365, 366, 367, 0, 368, 369, 370, 371, 372, 0,
15387 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
15388 : 383, 384, 385, 0, 386, 0, 388, 389, 390, 391,
15389 : 392, 393, 394, 0, 395, 0, 396, 0, 0, 399,
15390 : 0, 401, 402, 403, 404, 405, 406, 407, 408, 409,
15391 : 410, 411, 412, 413, 414, 415, 416, 417, 418, 0,
15392 : 0, 419, 420, 0, 422, 0, 0, 424, 425, 426,
15393 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
15394 : 435, 436, 437, 438, 439, 440, 441, 442, 443, 444,
15395 : 845, 446, 0, 448, 449, 450, 451, 452, 453, 454,
15396 : 455, 456, 457, 458, 459, 0, 460, 461, 0, 463,
15397 : 0, 464, 465, 466, 467, 468, 469, 470, 0, 471,
15398 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
15399 : 478, 479, 0, 481, 0, 483, 484, 485, 486, 487,
15400 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
15401 : 497, 498, 499, 500, 501, 502, 503, 504, 0, 505,
15402 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
15403 : 516, 517, 518, 519, 0, 520, 521, 522, 523, 524,
15404 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
15405 : 534, 0, 846, 537, 538, 539, 540, 541, 542, 543,
15406 : 544, 545, 847, 547, 548, 549, 550, 551, 0, 552,
15407 : 553, 554, 555, 2820, 0, 557, 558, 559, 560, 561,
15408 : 0, 563, 564, 565, 566, 0, 567, 568, 569, 570,
15409 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
15410 : 581, 582, 583, 0, 584, 585, 0, 0, 586, 0,
15411 : 588, 589, 590, 591, 592, 593, 0, 594, 849, 596,
15412 : 0, 0, 2821, 598, 599, 600, 601, 0, 602, 603,
15413 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
15414 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
15415 : 620, 621, 622, 0, 623, 0, 625, 626, 627, 628,
15416 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
15417 : 635, 851, 637, 638, 639, 640, 641, 642, 643, 644,
15418 : 645, 646, 647, 648, 649, 650, 658, 0, 0, 0,
15419 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15420 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
15421 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
15422 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
15423 : 253, 0, 255, 256, 257, 258, 259, 0, 261, 262,
15424 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
15425 : 270, 271, 272, 273, 274, 0, 275, 276, 277, 278,
15426 : 279, 0, 0, 0, 281, 282, 283, 284, 285, 286,
15427 : 0, 288, 289, 290, 291, 0, 292, 293, 294, 295,
15428 : 296, 297, 0, 0, 299, 300, 301, 0, 0, 0,
15429 : 0, 0, 0, 0, 303, 304, 305, 306, 307, 308,
15430 : 309, 310, 311, 0, 312, 0, 313, 314, 315, 316,
15431 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
15432 : 324, 325, 326, 327, 328, 0, 329, 330, 331, 332,
15433 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
15434 : 341, 342, 343, 344, 345, 346, 347, 0, 348, 0,
15435 : 349, 350, 351, 352, 353, 0, 354, 0, 355, 356,
15436 : 0, 0, 0, 359, 360, 361, 362, 0, 363, 364,
15437 : 0, 365, 366, 367, 0, 368, 369, 370, 371, 3635,
15438 : 0, 374, 375, 376, 377, 0, 378, 379, 380, 381,
15439 : 382, 383, 384, 385, 0, 386, 0, 388, 389, 390,
15440 : 391, 392, 393, 394, 0, 395, 0, 396, 0, 0,
15441 : 399, 0, 401, 402, 403, 404, 405, 406, 407, 408,
15442 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
15443 : 0, 0, 419, 420, 0, 422, 0, 0, 424, 425,
15444 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
15445 : 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
15446 : 444, 445, 446, 0, 448, 449, 450, 451, 452, 453,
15447 : 454, 455, 456, 457, 458, 459, 0, 460, 461, 0,
15448 : 463, 0, 464, 465, 466, 467, 468, 469, 470, 0,
15449 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
15450 : 477, 478, 479, 0, 481, 0, 483, 484, 485, 486,
15451 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
15452 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 0,
15453 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
15454 : 515, 516, 517, 518, 519, 0, 520, 521, 522, 523,
15455 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
15456 : 533, 534, 0, 536, 537, 538, 539, 540, 541, 542,
15457 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
15458 : 552, 553, 554, 555, 556, 0, 557, 558, 559, 560,
15459 : 561, 0, 563, 564, 565, 566, 0, 567, 568, 569,
15460 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
15461 : 580, 581, 582, 583, 0, 584, 585, 0, 0, 586,
15462 : 0, 588, 589, 590, 591, 592, 593, 0, 594, 595,
15463 : 596, 0, 0, 597, 598, 599, 600, 601, 0, 602,
15464 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
15465 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
15466 : 619, 620, 621, 622, 0, 623, 0, 625, 626, 627,
15467 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
15468 : 634, 635, 636, 637, 638, 639, 640, 641, 642, 643,
15469 : 644, 645, 646, 647, 648, 649, 650, 658, 0, 0,
15470 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15471 : 0, 0, 0, 0, 235, 236, 237, 238, 239, 240,
15472 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
15473 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
15474 : 252, 253, 0, 255, 256, 257, 258, 259, 0, 261,
15475 : 262, 0, 263, 264, 265, 266, 267, 268, 269, 0,
15476 : 0, 270, 271, 272, 273, 274, 0, 275, 276, 277,
15477 : 278, 279, 0, 0, 0, 281, 282, 283, 284, 285,
15478 : 286, 0, 288, 289, 290, 291, 0, 292, 293, 294,
15479 : 295, 296, 297, 0, 0, 299, 300, 301, 0, 0,
15480 : 0, 0, 0, 0, 0, 303, 304, 305, 306, 307,
15481 : 308, 309, 310, 311, 0, 312, 0, 313, 314, 315,
15482 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
15483 : 0, 324, 325, 326, 327, 328, 0, 329, 330, 331,
15484 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
15485 : 340, 341, 342, 343, 344, 345, 346, 347, 0, 348,
15486 : 0, 349, 350, 351, 352, 353, 0, 354, 0, 355,
15487 : 356, 0, 0, 0, 359, 360, 361, 362, 0, 363,
15488 : 364, 0, 365, 366, 367, 0, 368, 369, 370, 371,
15489 : 3658, 0, 374, 375, 376, 377, 0, 378, 379, 380,
15490 : 381, 382, 383, 384, 385, 0, 386, 0, 388, 389,
15491 : 390, 391, 392, 393, 394, 0, 395, 0, 396, 0,
15492 : 0, 399, 0, 401, 402, 403, 404, 405, 406, 407,
15493 : 408, 409, 410, 411, 412, 413, 414, 415, 416, 417,
15494 : 418, 0, 0, 419, 420, 0, 422, 0, 0, 424,
15495 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
15496 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
15497 : 443, 444, 445, 446, 0, 448, 449, 450, 451, 452,
15498 : 453, 454, 455, 456, 457, 458, 459, 0, 460, 461,
15499 : 0, 463, 0, 464, 465, 466, 467, 468, 469, 470,
15500 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
15501 : 0, 477, 478, 479, 0, 481, 0, 483, 484, 485,
15502 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
15503 : 0, 496, 497, 498, 499, 500, 501, 502, 503, 504,
15504 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
15505 : 514, 515, 516, 517, 518, 519, 0, 520, 521, 522,
15506 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
15507 : 0, 533, 534, 0, 536, 537, 538, 539, 540, 541,
15508 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
15509 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 559,
15510 : 560, 561, 0, 563, 564, 565, 566, 0, 567, 568,
15511 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
15512 : 579, 580, 581, 582, 583, 0, 584, 585, 0, 0,
15513 : 586, 0, 588, 589, 590, 591, 592, 593, 0, 594,
15514 : 595, 596, 0, 0, 597, 598, 599, 600, 601, 0,
15515 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
15516 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
15517 : 618, 619, 620, 621, 622, 0, 623, 0, 625, 626,
15518 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
15519 : 633, 634, 635, 636, 637, 638, 639, 640, 641, 642,
15520 : 643, 644, 645, 646, 647, 648, 649, 650, 658, 0,
15521 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15522 : 0, 0, 0, 0, 0, 235, 236, 237, 238, 239,
15523 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
15524 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
15525 : 251, 252, 253, 0, 255, 256, 257, 258, 259, 0,
15526 : 261, 262, 0, 263, 264, 265, 266, 267, 268, 269,
15527 : 0, 0, 270, 271, 272, 273, 274, 0, 275, 276,
15528 : 277, 278, 279, 0, 0, 0, 281, 282, 283, 284,
15529 : 285, 286, 0, 288, 289, 290, 291, 0, 292, 293,
15530 : 294, 295, 296, 297, 0, 0, 299, 300, 301, 0,
15531 : 0, 0, 0, 0, 0, 0, 303, 304, 305, 306,
15532 : 307, 308, 309, 310, 311, 0, 312, 0, 313, 314,
15533 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
15534 : 0, 0, 324, 325, 326, 327, 328, 0, 329, 330,
15535 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
15536 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 0,
15537 : 348, 0, 349, 350, 351, 352, 353, 0, 354, 0,
15538 : 355, 356, 0, 0, 0, 359, 360, 361, 362, 0,
15539 : 363, 364, 0, 365, 366, 367, 0, 368, 369, 370,
15540 : 371, 3660, 0, 374, 375, 376, 377, 0, 378, 379,
15541 : 380, 381, 382, 383, 384, 385, 0, 386, 0, 388,
15542 : 389, 390, 391, 392, 393, 394, 0, 395, 0, 396,
15543 : 0, 0, 399, 0, 401, 402, 403, 404, 405, 406,
15544 : 407, 408, 409, 410, 411, 412, 413, 414, 415, 416,
15545 : 417, 418, 0, 0, 419, 420, 0, 422, 0, 0,
15546 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
15547 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
15548 : 442, 443, 444, 445, 446, 0, 448, 449, 450, 451,
15549 : 452, 453, 454, 455, 456, 457, 458, 459, 0, 460,
15550 : 461, 0, 463, 0, 464, 465, 466, 467, 468, 469,
15551 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
15552 : 0, 0, 477, 478, 479, 0, 481, 0, 483, 484,
15553 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
15554 : 495, 0, 496, 497, 498, 499, 500, 501, 502, 503,
15555 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
15556 : 513, 514, 515, 516, 517, 518, 519, 0, 520, 521,
15557 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
15558 : 532, 0, 533, 534, 0, 536, 537, 538, 539, 540,
15559 : 541, 542, 543, 544, 545, 546, 547, 548, 549, 550,
15560 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
15561 : 559, 560, 561, 0, 563, 564, 565, 566, 0, 567,
15562 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
15563 : 578, 579, 580, 581, 582, 583, 0, 584, 585, 0,
15564 : 0, 586, 0, 588, 589, 590, 591, 592, 593, 0,
15565 : 594, 595, 596, 0, 0, 597, 598, 599, 600, 601,
15566 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
15567 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
15568 : 617, 618, 619, 620, 621, 622, 0, 623, 0, 625,
15569 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
15570 : 632, 633, 634, 635, 636, 637, 638, 639, 640, 641,
15571 : 642, 643, 644, 645, 646, 647, 648, 649, 650, 658,
15572 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15573 : 0, 0, 0, 0, 0, 0, 235, 236, 237, 238,
15574 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
15575 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
15576 : 250, 251, 252, 253, 0, 255, 256, 257, 258, 259,
15577 : 0, 261, 262, 0, 263, 264, 265, 266, 267, 268,
15578 : 269, 0, 0, 270, 271, 272, 273, 274, 0, 275,
15579 : 276, 277, 278, 279, 0, 0, 0, 281, 282, 283,
15580 : 284, 285, 286, 0, 288, 289, 290, 291, 0, 292,
15581 : 293, 294, 295, 296, 297, 0, 0, 299, 300, 301,
15582 : 0, 0, 0, 0, 0, 0, 0, 303, 304, 305,
15583 : 306, 307, 308, 309, 310, 311, 0, 312, 0, 313,
15584 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
15585 : 323, 0, 0, 324, 325, 326, 327, 328, 0, 329,
15586 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
15587 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
15588 : 0, 348, 0, 349, 350, 351, 352, 353, 0, 354,
15589 : 0, 355, 356, 0, 0, 0, 359, 360, 361, 362,
15590 : 0, 363, 364, 0, 365, 366, 367, 0, 368, 369,
15591 : 370, 371, 3810, 0, 374, 375, 376, 377, 0, 378,
15592 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 0,
15593 : 388, 389, 390, 391, 392, 393, 394, 0, 395, 0,
15594 : 396, 0, 0, 399, 0, 401, 402, 403, 404, 405,
15595 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
15596 : 416, 417, 418, 0, 0, 419, 420, 0, 422, 0,
15597 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
15598 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
15599 : 441, 442, 443, 444, 445, 446, 0, 448, 449, 450,
15600 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 0,
15601 : 460, 461, 0, 463, 0, 464, 465, 466, 467, 468,
15602 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
15603 : 476, 0, 0, 477, 478, 479, 0, 481, 0, 483,
15604 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
15605 : 494, 495, 0, 496, 497, 498, 499, 500, 501, 502,
15606 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
15607 : 512, 513, 514, 515, 516, 517, 518, 519, 0, 520,
15608 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
15609 : 531, 532, 0, 533, 534, 0, 536, 537, 538, 539,
15610 : 540, 541, 542, 543, 544, 545, 546, 547, 548, 549,
15611 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
15612 : 558, 559, 560, 561, 0, 563, 564, 565, 566, 0,
15613 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
15614 : 577, 578, 579, 580, 581, 582, 583, 0, 584, 585,
15615 : 0, 0, 586, 0, 588, 589, 590, 591, 592, 593,
15616 : 0, 594, 595, 596, 0, 0, 597, 598, 599, 600,
15617 : 601, 0, 602, 603, 604, 605, 606, 607, 608, 609,
15618 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
15619 : 616, 617, 618, 619, 620, 621, 622, 0, 623, 0,
15620 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
15621 : 631, 632, 633, 634, 635, 636, 637, 638, 639, 640,
15622 : 641, 642, 643, 644, 645, 646, 647, 648, 649, 650,
15623 : 658, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15624 : 0, 0, 0, 0, 0, 0, 0, 235, 236, 237,
15625 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
15626 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
15627 : 0, 250, 251, 252, 253, 0, 255, 256, 257, 258,
15628 : 259, 0, 261, 262, 0, 263, 264, 265, 266, 267,
15629 : 268, 269, 0, 0, 270, 271, 272, 273, 274, 0,
15630 : 275, 276, 277, 278, 279, 0, 0, 0, 281, 282,
15631 : 283, 284, 285, 286, 0, 288, 289, 290, 291, 0,
15632 : 292, 293, 294, 295, 296, 297, 0, 0, 299, 300,
15633 : 301, 0, 0, 0, 0, 0, 0, 0, 303, 304,
15634 : 305, 306, 307, 308, 309, 310, 311, 0, 312, 0,
15635 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
15636 : 322, 323, 0, 0, 324, 3852, 326, 327, 328, 0,
15637 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
15638 : 0, 338, 339, 340, 341, 342, 343, 344, 345, 346,
15639 : 347, 0, 348, 0, 349, 350, 351, 352, 353, 0,
15640 : 354, 0, 355, 356, 0, 0, 0, 359, 360, 361,
15641 : 362, 0, 363, 364, 0, 365, 366, 367, 0, 368,
15642 : 369, 370, 371, 372, 0, 374, 375, 376, 377, 0,
15643 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
15644 : 0, 388, 389, 390, 391, 392, 393, 394, 0, 395,
15645 : 0, 396, 0, 0, 399, 0, 401, 402, 403, 404,
15646 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
15647 : 415, 416, 417, 418, 0, 0, 419, 420, 0, 422,
15648 : 0, 0, 424, 425, 426, 0, 0, 427, 428, 429,
15649 : 430, 431, 432, 433, 434, 435, 436, 437, 438, 439,
15650 : 440, 441, 442, 443, 444, 445, 446, 0, 448, 449,
15651 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
15652 : 0, 460, 461, 0, 463, 0, 464, 465, 466, 467,
15653 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
15654 : 475, 476, 0, 0, 477, 478, 479, 0, 481, 0,
15655 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
15656 : 493, 494, 495, 0, 496, 497, 498, 499, 500, 501,
15657 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
15658 : 511, 512, 513, 514, 515, 516, 517, 518, 519, 0,
15659 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
15660 : 530, 531, 532, 0, 533, 534, 0, 536, 537, 538,
15661 : 539, 540, 541, 542, 543, 544, 545, 546, 547, 548,
15662 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
15663 : 557, 558, 559, 560, 561, 0, 563, 564, 565, 566,
15664 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
15665 : 576, 577, 578, 579, 580, 581, 582, 583, 0, 584,
15666 : 585, 0, 0, 586, 0, 588, 589, 590, 591, 592,
15667 : 593, 0, 594, 595, 596, 0, 0, 597, 598, 599,
15668 : 600, 601, 0, 602, 603, 604, 605, 606, 607, 608,
15669 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
15670 : 0, 616, 617, 618, 619, 620, 621, 622, 0, 623,
15671 : 0, 625, 626, 627, 628, 629, 0, 0, 630, 0,
15672 : 0, 631, 632, 633, 634, 635, 636, 637, 638, 639,
15673 : 640, 641, 642, 643, 644, 645, 646, 647, 648, 649,
15674 : 650, 658, 0, 0, 0, 0, 0, 0, 0, 0,
15675 : 0, 0, 0, 0, 0, 0, 0, 0, 235, 236,
15676 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
15677 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
15678 : 249, 0, 250, 251, 252, 253, 0, 255, 256, 257,
15679 : 258, 259, 0, 261, 262, 0, 263, 264, 265, 266,
15680 : 267, 268, 269, 0, 0, 270, 271, 272, 273, 274,
15681 : 0, 275, 276, 277, 278, 279, 0, 0, 0, 281,
15682 : 282, 283, 284, 285, 286, 0, 288, 289, 290, 291,
15683 : 0, 292, 293, 294, 295, 296, 297, 0, 0, 299,
15684 : 300, 301, 0, 0, 0, 0, 0, 0, 0, 303,
15685 : 304, 305, 306, 307, 308, 309, 310, 311, 0, 312,
15686 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
15687 : 321, 322, 323, 0, 0, 324, 325, 326, 327, 328,
15688 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
15689 : 337, 0, 338, 339, 340, 341, 342, 343, 344, 345,
15690 : 346, 347, 0, 348, 0, 349, 350, 351, 352, 353,
15691 : 0, 354, 0, 355, 356, 0, 0, 0, 359, 360,
15692 : 361, 362, 0, 363, 364, 0, 365, 366, 367, 0,
15693 : 368, 369, 370, 371, 5122, 0, 374, 375, 376, 377,
15694 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
15695 : 386, 0, 388, 389, 390, 391, 392, 393, 394, 0,
15696 : 395, 0, 396, 0, 0, 399, 0, 401, 402, 403,
15697 : 404, 405, 406, 407, 408, 409, 410, 411, 412, 413,
15698 : 414, 415, 416, 417, 418, 0, 0, 419, 420, 0,
15699 : 422, 0, 0, 424, 425, 426, 0, 0, 427, 428,
15700 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
15701 : 439, 440, 441, 442, 443, 444, 445, 446, 0, 448,
15702 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
15703 : 459, 0, 460, 461, 0, 463, 0, 464, 465, 466,
15704 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
15705 : 474, 475, 476, 0, 0, 477, 478, 479, 0, 481,
15706 : 0, 483, 484, 485, 486, 487, 488, 489, 490, 491,
15707 : 492, 493, 494, 495, 0, 496, 497, 498, 499, 500,
15708 : 501, 502, 503, 504, 0, 505, 506, 507, 508, 509,
15709 : 510, 511, 512, 513, 514, 515, 516, 517, 518, 519,
15710 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
15711 : 529, 530, 531, 532, 0, 533, 534, 0, 536, 537,
15712 : 538, 539, 540, 541, 542, 543, 544, 545, 546, 547,
15713 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
15714 : 0, 557, 558, 559, 560, 561, 0, 563, 564, 565,
15715 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
15716 : 575, 576, 577, 578, 579, 580, 581, 582, 583, 0,
15717 : 584, 585, 0, 0, 586, 0, 588, 589, 590, 591,
15718 : 592, 593, 0, 594, 595, 596, 0, 0, 597, 598,
15719 : 599, 600, 601, 0, 602, 603, 604, 605, 606, 607,
15720 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
15721 : 0, 0, 616, 617, 618, 619, 620, 621, 622, 0,
15722 : 623, 0, 625, 626, 627, 628, 629, 0, 0, 630,
15723 : 0, 0, 631, 632, 633, 634, 635, 636, 637, 638,
15724 : 639, 640, 641, 642, 643, 644, 645, 646, 647, 648,
15725 : 649, 650, 658, 0, 0, 0, 0, 0, 0, 0,
15726 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 235,
15727 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
15728 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
15729 : 248, 249, 0, 250, 251, 252, 253, 0, 255, 256,
15730 : 257, 258, 259, 0, 261, 262, 0, 263, 264, 265,
15731 : 266, 267, 268, 269, 0, 0, 270, 271, 272, 273,
15732 : 274, 0, 275, 276, 277, 278, 279, 0, 0, 0,
15733 : 281, 282, 283, 284, 285, 286, 0, 288, 289, 290,
15734 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 0,
15735 : 299, 300, 301, 0, 0, 0, 0, 0, 0, 0,
15736 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 0,
15737 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
15738 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
15739 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
15740 : 336, 337, 0, 338, 339, 340, 341, 342, 343, 344,
15741 : 345, 346, 347, 0, 348, 0, 349, 350, 351, 352,
15742 : 353, 0, 354, 0, 355, 356, 0, 0, 0, 359,
15743 : 360, 361, 362, 0, 363, 364, 0, 365, 366, 367,
15744 : 0, 368, 369, 370, 371, 372, 0, 374, 375, 376,
15745 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
15746 : 0, 386, 0, 388, 389, 390, 391, 392, 393, 394,
15747 : 0, 395, 0, 396, 0, 0, 399, 0, 401, 402,
15748 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
15749 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 420,
15750 : 0, 422, 0, 0, 424, 425, 426, 0, 0, 427,
15751 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 437,
15752 : 438, 439, 440, 441, 442, 443, 444, 445, 446, 0,
15753 : 448, 449, 450, 451, 452, 453, 454, 455, 456, 457,
15754 : 458, 459, 0, 460, 461, 0, 463, 0, 464, 465,
15755 : 466, 467, 468, 469, 470, 0, 471, 472, 473, 0,
15756 : 0, 474, 475, 476, 0, 0, 477, 478, 479, 0,
15757 : 481, 0, 483, 484, 485, 486, 487, 488, 489, 490,
15758 : 491, 492, 493, 494, 5651, 0, 496, 497, 498, 499,
15759 : 500, 501, 502, 503, 504, 0, 505, 506, 507, 508,
15760 : 509, 510, 511, 512, 513, 514, 515, 516, 517, 518,
15761 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
15762 : 528, 529, 530, 531, 532, 0, 533, 534, 0, 536,
15763 : 537, 538, 539, 540, 541, 542, 543, 544, 545, 546,
15764 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
15765 : 556, 0, 557, 558, 559, 560, 561, 0, 563, 564,
15766 : 565, 566, 0, 567, 568, 569, 570, 571, 572, 573,
15767 : 574, 575, 576, 577, 578, 579, 580, 581, 582, 583,
15768 : 0, 584, 585, 0, 0, 586, 0, 588, 589, 590,
15769 : 591, 592, 593, 0, 594, 595, 596, 0, 0, 597,
15770 : 598, 599, 600, 601, 0, 602, 603, 604, 605, 606,
15771 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
15772 : 615, 0, 0, 616, 617, 618, 619, 620, 621, 622,
15773 : 0, 623, 0, 625, 626, 627, 628, 629, 0, 0,
15774 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 637,
15775 : 638, 639, 640, 641, 642, 643, 644, 645, 646, 647,
15776 : 648, 649, 650, 658, 0, 0, 0, 0, 0, 0,
15777 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15778 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
15779 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
15780 : 247, 248, 249, 0, 250, 251, 252, 253, 0, 255,
15781 : 256, 257, 258, 259, 0, 261, 262, 0, 263, 264,
15782 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 272,
15783 : 273, 274, 0, 275, 276, 277, 278, 279, 0, 0,
15784 : 0, 281, 282, 283, 284, 285, 286, 0, 288, 289,
15785 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
15786 : 0, 299, 300, 301, 0, 0, 0, 0, 0, 0,
15787 : 0, 303, 304, 305, 306, 307, 308, 309, 310, 311,
15788 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
15789 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 326,
15790 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
15791 : 335, 336, 337, 0, 338, 339, 340, 341, 342, 343,
15792 : 344, 345, 346, 347, 0, 348, 0, 349, 350, 351,
15793 : 352, 353, 0, 354, 0, 355, 356, 0, 0, 0,
15794 : 359, 360, 361, 362, 0, 363, 364, 0, 365, 366,
15795 : 367, 0, 368, 369, 370, 371, 372, 0, 374, 375,
15796 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
15797 : 385, 0, 386, 0, 388, 389, 390, 391, 392, 393,
15798 : 394, 0, 395, 0, 396, 0, 0, 399, 0, 401,
15799 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
15800 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
15801 : 420, 0, 422, 0, 0, 424, 425, 426, 0, 0,
15802 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
15803 : 437, 438, 439, 440, 441, 442, 443, 444, 445, 446,
15804 : 0, 448, 6367, 450, 451, 452, 453, 454, 455, 456,
15805 : 457, 458, 459, 0, 460, 461, 0, 463, 0, 464,
15806 : 465, 466, 467, 468, 469, 470, 0, 471, 472, 473,
15807 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 479,
15808 : 0, 481, 0, 483, 484, 485, 486, 487, 488, 489,
15809 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
15810 : 499, 500, 501, 502, 503, 504, 0, 505, 506, 507,
15811 : 508, 509, 510, 511, 512, 513, 514, 515, 516, 517,
15812 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
15813 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 0,
15814 : 536, 537, 538, 539, 540, 541, 542, 543, 544, 545,
15815 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
15816 : 555, 556, 0, 557, 558, 559, 560, 561, 0, 563,
15817 : 564, 565, 566, 0, 567, 568, 569, 570, 571, 572,
15818 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 582,
15819 : 583, 0, 584, 585, 0, 0, 586, 0, 588, 589,
15820 : 590, 591, 592, 593, 0, 594, 595, 596, 0, 0,
15821 : 597, 598, 599, 600, 601, 0, 602, 603, 604, 605,
15822 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
15823 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 621,
15824 : 622, 0, 623, 0, 625, 626, 627, 628, 629, 0,
15825 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
15826 : 637, 638, 639, 640, 641, 642, 643, 644, 645, 646,
15827 : 647, 648, 649, 650, 658, 0, 0, 0, 0, 0,
15828 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15829 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
15830 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
15831 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 0,
15832 : 255, 256, 257, 258, 259, 0, 261, 262, 0, 263,
15833 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
15834 : 272, 273, 274, 0, 275, 276, 277, 278, 279, 0,
15835 : 0, 0, 281, 282, 283, 284, 285, 286, 0, 288,
15836 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
15837 : 0, 0, 299, 300, 301, 0, 0, 0, 0, 0,
15838 : 0, 0, 303, 304, 305, 306, 307, 308, 309, 310,
15839 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
15840 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
15841 : 326, 327, 328, 0, 329, 330, 331, 332, 0, 333,
15842 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 342,
15843 : 343, 344, 345, 346, 347, 0, 348, 0, 349, 350,
15844 : 351, 352, 353, 0, 354, 0, 355, 356, 0, 0,
15845 : 0, 359, 360, 361, 362, 0, 363, 364, 0, 365,
15846 : 0, 367, 0, 368, 369, 370, 371, 372, 0, 374,
15847 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
15848 : 384, 385, 0, 386, 0, 388, 389, 390, 391, 392,
15849 : 393, 394, 0, 395, 0, 396, 0, 0, 399, 0,
15850 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
15851 : 411, 412, 413, 414, 415, 416, 417, 418, 0, 0,
15852 : 419, 420, 0, 422, 0, 0, 424, 425, 426, 0,
15853 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
15854 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
15855 : 446, 0, 448, 449, 450, 451, 452, 453, 454, 455,
15856 : 456, 457, 458, 459, 0, 460, 461, 0, 463, 0,
15857 : 464, 465, 466, 467, 468, 469, 470, 0, 471, 472,
15858 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
15859 : 479, 0, 481, 0, 483, 484, 485, 486, 487, 488,
15860 : 489, 490, 0, 492, 493, 494, 495, 0, 496, 497,
15861 : 498, 499, 500, 501, 502, 503, 504, 0, 505, 506,
15862 : 507, 508, 509, 510, 511, 512, 513, 0, 515, 516,
15863 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
15864 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
15865 : 0, 536, 537, 538, 539, 540, 541, 0, 543, 544,
15866 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
15867 : 554, 555, 556, 0, 557, 558, 559, 560, 561, 0,
15868 : 563, 564, 565, 566, 0, 567, 568, 569, 570, 571,
15869 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
15870 : 582, 583, 0, 584, 585, 0, 0, 586, 0, 588,
15871 : 589, 590, 591, 592, 593, 0, 594, 595, 596, 0,
15872 : 0, 597, 598, 599, 600, 601, 0, 602, 603, 604,
15873 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
15874 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
15875 : 621, 622, 0, 623, 0, 625, 626, 627, 628, 629,
15876 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
15877 : 636, 637, 638, 639, 640, 641, 642, 643, 644, 645,
15878 : 646, 647, 648, 649, 650, 879, 0, 0, 0, 0,
15879 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15880 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
15881 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
15882 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
15883 : 254, 255, 256, 257, 0, 880, 260, 881, 882, 0,
15884 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
15885 : 271, 883, 884, 274, 0, 275, 276, 277, 278, 0,
15886 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
15887 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
15888 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
15889 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 885,
15890 : 886, 311, 0, 312, 0, 313, 314, 315, 316, 317,
15891 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
15892 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
15893 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
15894 : 0, 343, 344, 345, 346, 0, 0, 348, 0, 349,
15895 : 350, 351, 888, 353, 0, 354, 0, 355, 356, 357,
15896 : 0, 358, 359, 360, 361, 362, 0, 363, 0, 0,
15897 : 0, 366, 367, 0, 368, 369, 370, 371, 372, 373,
15898 : 374, 375, 376, 377, 2731, 378, 379, 380, 381, 382,
15899 : 383, 384, 385, 0, 386, 387, 2732, 389, 390, 391,
15900 : 392, 889, 890, 0, 891, 0, 396, 397, 398, 399,
15901 : 400, 892, 0, 0, 0, 0, 0, 0, 0, 0,
15902 : 0, 0, 412, 413, 414, 415, 416, 417, 418, 0,
15903 : 0, 419, 0, 421, 422, 423, 0, 424, 425, 426,
15904 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
15905 : 435, 436, 0, 438, 439, 440, 441, 442, 443, 444,
15906 : 445, 893, 447, 894, 449, 450, 451, 452, 453, 454,
15907 : 455, 456, 0, 0, 459, 0, 460, 461, 462, 463,
15908 : 0, 0, 465, 895, 467, 468, 469, 470, 0, 471,
15909 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
15910 : 478, 2734, 480, 481, 482, 0, 484, 485, 486, 487,
15911 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
15912 : 497, 498, 0, 500, 0, 502, 503, 504, 0, 505,
15913 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
15914 : 896, 517, 518, 519, 0, 520, 521, 522, 523, 524,
15915 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
15916 : 534, 535, 536, 537, 538, 539, 540, 0, 542, 543,
15917 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
15918 : 553, 554, 555, 556, 0, 557, 558, 2735, 560, 561,
15919 : 562, 563, 564, 898, 566, 0, 567, 568, 569, 570,
15920 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
15921 : 581, 0, 583, 0, 584, 585, 0, 0, 586, 587,
15922 : 588, 589, 590, 591, 592, 593, 0, 594, 899, 900,
15923 : 0, 0, 597, 598, 0, 600, 0, 0, 602, 603,
15924 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
15925 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
15926 : 620, 0, 901, 2736, 623, 624, 625, 626, 627, 628,
15927 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
15928 : 635, 636, 879, 0, 0, 0, 0, 0, 0, 0,
15929 : 0, 0, 0, 648, 649, 650, 0, 0, 0, 235,
15930 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
15931 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
15932 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
15933 : 257, 0, 880, 260, 881, 882, 0, 263, 264, 265,
15934 : 266, 267, 268, 269, 0, 0, 270, 271, 883, 884,
15935 : 274, 0, 275, 276, 277, 278, 0, 0, 280, 0,
15936 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
15937 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
15938 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
15939 : 303, 304, 305, 306, 307, 308, 885, 886, 311, 0,
15940 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
15941 : 320, 321, 322, 323, 0, 0, 324, 325, 887, 327,
15942 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
15943 : 336, 337, 0, 338, 339, 340, 341, 0, 343, 344,
15944 : 345, 346, 0, 0, 348, 0, 349, 350, 351, 888,
15945 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
15946 : 360, 361, 362, 0, 363, 0, 0, 0, 366, 367,
15947 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
15948 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
15949 : 0, 386, 387, 0, 389, 390, 391, 392, 889, 890,
15950 : 0, 891, 0, 396, 397, 398, 399, 400, 892, 0,
15951 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
15952 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 0,
15953 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
15954 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
15955 : 438, 439, 440, 441, 442, 443, 444, 445, 893, 447,
15956 : 894, 449, 450, 451, 452, 453, 454, 455, 456, 0,
15957 : 0, 459, 0, 460, 461, 462, 463, 2815, 0, 465,
15958 : 895, 467, 468, 469, 470, 0, 471, 472, 473, 0,
15959 : 0, 474, 475, 476, 0, 0, 477, 478, 0, 480,
15960 : 481, 482, 0, 484, 485, 486, 487, 488, 489, 490,
15961 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 0,
15962 : 500, 0, 502, 503, 504, 0, 505, 506, 507, 508,
15963 : 509, 510, 511, 512, 513, 514, 515, 896, 517, 518,
15964 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
15965 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
15966 : 537, 538, 539, 540, 0, 542, 543, 544, 545, 546,
15967 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
15968 : 556, 0, 557, 558, 2735, 560, 561, 562, 563, 564,
15969 : 898, 566, 0, 567, 568, 569, 570, 571, 572, 573,
15970 : 574, 575, 576, 577, 578, 579, 580, 581, 0, 583,
15971 : 0, 584, 585, 0, 4635, 586, 587, 588, 589, 590,
15972 : 591, 592, 593, 0, 594, 899, 900, 0, 0, 597,
15973 : 598, 0, 600, 0, 0, 602, 603, 604, 605, 606,
15974 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
15975 : 615, 0, 0, 616, 617, 618, 619, 620, 0, 901,
15976 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
15977 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 879,
15978 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15979 : 648, 649, 650, 0, 0, 0, 235, 236, 237, 238,
15980 : 239, 240, 241, 242, 243, 0, 244, 245, 246, 0,
15981 : 0, 0, 0, 0, 0, 0, 247, 248, 249, 0,
15982 : 250, 251, 252, 253, 254, 255, 256, 257, 0, 880,
15983 : 260, 881, 882, 0, 263, 264, 265, 266, 267, 268,
15984 : 269, 0, 0, 270, 271, 883, 884, 274, 0, 275,
15985 : 276, 277, 278, 0, 0, 280, 0, 281, 282, 283,
15986 : 284, 285, 286, 287, 288, 289, 290, 291, 0, 292,
15987 : 293, 294, 295, 296, 297, 0, 298, 299, 300, 301,
15988 : 0, 0, 0, 302, 0, 0, 0, 303, 304, 305,
15989 : 306, 307, 308, 885, 886, 311, 0, 312, 0, 313,
15990 : 314, 315, 316, 317, 318, 319, 0, 320, 321, 322,
15991 : 323, 0, 0, 324, 325, 887, 327, 328, 0, 329,
15992 : 330, 331, 332, 0, 333, 334, 335, 336, 337, 0,
15993 : 338, 339, 340, 341, 0, 343, 344, 345, 346, 0,
15994 : 0, 348, 0, 349, 350, 351, 888, 353, 0, 354,
15995 : 0, 355, 356, 357, 0, 358, 359, 360, 361, 362,
15996 : 0, 363, 0, 0, 0, 366, 367, 0, 368, 369,
15997 : 370, 371, 372, 373, 374, 375, 376, 377, 0, 378,
15998 : 379, 380, 381, 382, 383, 384, 385, 0, 386, 387,
15999 : 0, 389, 390, 391, 392, 889, 890, 0, 891, 0,
16000 : 396, 397, 398, 399, 400, 892, 0, 0, 0, 0,
16001 : 0, 0, 0, 0, 0, 0, 412, 413, 414, 415,
16002 : 416, 417, 418, 0, 0, 419, 0, 421, 422, 423,
16003 : 0, 424, 425, 426, 0, 0, 427, 428, 429, 430,
16004 : 431, 432, 433, 434, 435, 436, 0, 438, 439, 440,
16005 : 441, 442, 443, 444, 445, 893, 447, 894, 449, 450,
16006 : 451, 452, 453, 454, 455, 456, 2896, 0, 459, 0,
16007 : 460, 461, 462, 463, 0, 0, 465, 895, 467, 468,
16008 : 469, 470, 0, 471, 472, 473, 0, 0, 474, 475,
16009 : 476, 0, 0, 477, 478, 0, 480, 481, 482, 0,
16010 : 484, 485, 486, 487, 488, 489, 490, 491, 492, 493,
16011 : 494, 495, 0, 496, 497, 498, 0, 500, 0, 502,
16012 : 503, 504, 0, 505, 506, 507, 508, 509, 510, 511,
16013 : 512, 513, 514, 515, 896, 517, 518, 519, 0, 520,
16014 : 521, 522, 523, 524, 525, 526, 527, 528, 529, 530,
16015 : 531, 532, 0, 533, 534, 535, 536, 537, 538, 539,
16016 : 540, 0, 542, 543, 544, 545, 546, 547, 548, 549,
16017 : 550, 551, 0, 552, 553, 554, 555, 556, 0, 557,
16018 : 558, 897, 560, 561, 562, 563, 564, 898, 566, 0,
16019 : 567, 568, 569, 570, 571, 572, 573, 574, 575, 576,
16020 : 577, 578, 579, 580, 581, 0, 583, 0, 584, 585,
16021 : 0, 0, 586, 587, 588, 589, 590, 591, 592, 593,
16022 : 0, 594, 899, 900, 0, 0, 597, 598, 0, 600,
16023 : 0, 0, 602, 603, 604, 605, 606, 607, 608, 609,
16024 : 610, 0, 0, 611, 612, 613, 614, 615, 0, 0,
16025 : 616, 617, 618, 619, 620, 0, 901, 0, 623, 624,
16026 : 625, 626, 627, 628, 629, 0, 0, 630, 0, 0,
16027 : 631, 632, 633, 634, 635, 636, 879, 0, 0, 0,
16028 : 0, 0, 0, 0, 0, 0, 0, 648, 649, 650,
16029 : 0, 0, 0, 235, 236, 237, 238, 239, 240, 241,
16030 : 242, 243, 0, 244, 245, 246, 0, 0, 0, 0,
16031 : 0, 0, 0, 247, 248, 249, 0, 250, 251, 252,
16032 : 253, 254, 255, 256, 257, 0, 880, 260, 881, 882,
16033 : 0, 263, 264, 265, 266, 267, 268, 269, 0, 0,
16034 : 270, 271, 883, 884, 274, 0, 275, 276, 277, 278,
16035 : 0, 0, 280, 0, 281, 282, 283, 284, 285, 286,
16036 : 287, 288, 289, 290, 291, 0, 292, 293, 294, 295,
16037 : 296, 297, 0, 298, 299, 300, 301, 0, 0, 0,
16038 : 302, 0, 0, 0, 303, 304, 305, 306, 307, 308,
16039 : 885, 886, 311, 0, 312, 0, 313, 314, 315, 316,
16040 : 317, 318, 319, 0, 320, 321, 322, 323, 0, 0,
16041 : 324, 325, 887, 327, 328, 0, 329, 330, 331, 332,
16042 : 0, 333, 334, 335, 336, 337, 0, 338, 339, 340,
16043 : 341, 0, 343, 344, 345, 346, 0, 0, 348, 0,
16044 : 349, 350, 351, 888, 353, 0, 354, 0, 355, 356,
16045 : 357, 0, 358, 359, 360, 361, 362, 0, 363, 0,
16046 : 0, 0, 366, 367, 0, 368, 369, 370, 371, 372,
16047 : 373, 374, 375, 376, 377, 0, 378, 379, 380, 381,
16048 : 382, 383, 384, 385, 0, 386, 387, 0, 389, 390,
16049 : 391, 392, 889, 890, 0, 891, 0, 396, 397, 398,
16050 : 399, 400, 892, 0, 0, 0, 0, 0, 0, 0,
16051 : 0, 0, 0, 412, 413, 414, 415, 416, 417, 418,
16052 : 0, 0, 419, 0, 421, 422, 423, 0, 424, 425,
16053 : 426, 0, 0, 427, 428, 429, 430, 431, 432, 433,
16054 : 434, 435, 436, 0, 438, 439, 440, 441, 442, 443,
16055 : 444, 445, 893, 447, 894, 449, 450, 451, 452, 453,
16056 : 454, 455, 456, 4430, 0, 459, 0, 460, 461, 462,
16057 : 463, 0, 0, 465, 895, 467, 468, 469, 470, 0,
16058 : 471, 472, 473, 0, 0, 474, 475, 476, 0, 0,
16059 : 477, 478, 0, 480, 481, 482, 0, 484, 485, 486,
16060 : 487, 488, 489, 490, 491, 492, 493, 494, 495, 0,
16061 : 496, 497, 498, 0, 500, 0, 502, 503, 504, 0,
16062 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
16063 : 515, 896, 517, 518, 519, 0, 520, 521, 522, 523,
16064 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 0,
16065 : 533, 534, 535, 536, 537, 538, 539, 540, 0, 542,
16066 : 543, 544, 545, 546, 547, 548, 549, 550, 551, 0,
16067 : 552, 553, 554, 555, 556, 0, 557, 558, 897, 560,
16068 : 561, 562, 563, 564, 898, 566, 0, 567, 568, 569,
16069 : 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
16070 : 580, 581, 0, 583, 0, 584, 585, 0, 0, 586,
16071 : 587, 588, 589, 590, 591, 592, 593, 0, 594, 899,
16072 : 900, 0, 0, 597, 598, 0, 600, 0, 0, 602,
16073 : 603, 604, 605, 606, 607, 608, 609, 610, 0, 0,
16074 : 611, 612, 613, 614, 615, 0, 0, 616, 617, 618,
16075 : 619, 620, 0, 901, 0, 623, 624, 625, 626, 627,
16076 : 628, 629, 0, 0, 630, 0, 0, 631, 632, 633,
16077 : 634, 635, 636, 879, 0, 0, 0, 0, 0, 0,
16078 : 0, 0, 0, 0, 648, 649, 650, 0, 0, 0,
16079 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 0,
16080 : 244, 245, 246, 0, 0, 0, 0, 0, 0, 0,
16081 : 247, 248, 249, 0, 250, 251, 252, 253, 254, 255,
16082 : 256, 257, 0, 880, 260, 881, 882, 0, 263, 264,
16083 : 265, 266, 267, 268, 269, 0, 0, 270, 271, 883,
16084 : 884, 274, 0, 275, 276, 277, 278, 0, 0, 280,
16085 : 0, 281, 282, 283, 284, 285, 286, 287, 288, 289,
16086 : 290, 291, 0, 292, 293, 294, 295, 296, 297, 0,
16087 : 298, 299, 300, 301, 0, 0, 0, 302, 0, 0,
16088 : 0, 303, 304, 305, 306, 307, 308, 885, 886, 311,
16089 : 0, 312, 0, 313, 314, 315, 316, 317, 318, 319,
16090 : 0, 320, 321, 322, 323, 0, 0, 324, 325, 887,
16091 : 327, 328, 0, 329, 330, 331, 332, 0, 333, 334,
16092 : 335, 336, 337, 0, 338, 339, 340, 341, 0, 343,
16093 : 344, 345, 346, 0, 0, 348, 0, 349, 350, 351,
16094 : 888, 353, 6047, 354, 0, 355, 356, 357, 0, 358,
16095 : 359, 360, 361, 362, 0, 363, 0, 0, 0, 366,
16096 : 367, 0, 368, 369, 370, 371, 372, 373, 374, 375,
16097 : 376, 377, 0, 378, 379, 380, 381, 382, 383, 384,
16098 : 385, 0, 386, 387, 0, 389, 390, 391, 392, 889,
16099 : 890, 0, 891, 0, 396, 397, 398, 399, 400, 892,
16100 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16101 : 412, 413, 414, 415, 416, 417, 418, 0, 0, 419,
16102 : 0, 421, 422, 423, 0, 424, 425, 426, 0, 0,
16103 : 427, 428, 429, 430, 431, 432, 433, 434, 435, 436,
16104 : 0, 438, 439, 440, 441, 442, 443, 444, 445, 893,
16105 : 447, 894, 449, 450, 451, 452, 453, 454, 455, 456,
16106 : 0, 0, 459, 0, 460, 461, 462, 463, 0, 0,
16107 : 465, 895, 467, 468, 469, 470, 0, 471, 472, 473,
16108 : 0, 0, 474, 475, 476, 0, 0, 477, 478, 0,
16109 : 480, 481, 482, 0, 484, 485, 486, 487, 488, 489,
16110 : 490, 491, 492, 493, 494, 495, 0, 496, 497, 498,
16111 : 0, 500, 0, 502, 503, 504, 0, 505, 506, 507,
16112 : 508, 509, 510, 511, 512, 513, 514, 515, 896, 517,
16113 : 518, 519, 0, 520, 521, 522, 523, 524, 525, 526,
16114 : 527, 528, 529, 530, 531, 532, 0, 533, 534, 535,
16115 : 536, 537, 538, 539, 540, 0, 542, 543, 544, 545,
16116 : 546, 547, 548, 549, 550, 551, 0, 552, 553, 554,
16117 : 555, 556, 0, 557, 558, 897, 560, 561, 562, 563,
16118 : 564, 898, 566, 0, 567, 568, 569, 570, 571, 572,
16119 : 573, 574, 575, 576, 577, 578, 579, 580, 581, 0,
16120 : 583, 0, 584, 585, 0, 0, 586, 587, 588, 589,
16121 : 590, 591, 592, 593, 0, 594, 899, 900, 0, 0,
16122 : 597, 598, 0, 600, 0, 0, 602, 603, 604, 605,
16123 : 606, 607, 608, 609, 610, 0, 0, 611, 612, 613,
16124 : 614, 615, 0, 0, 616, 617, 618, 619, 620, 0,
16125 : 901, 0, 623, 624, 625, 626, 627, 628, 629, 0,
16126 : 0, 630, 0, 0, 631, 632, 633, 634, 635, 636,
16127 : 879, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16128 : 0, 648, 649, 650, 0, 0, 0, 235, 236, 237,
16129 : 238, 239, 240, 241, 242, 243, 0, 244, 245, 246,
16130 : 0, 0, 0, 0, 0, 0, 0, 247, 248, 249,
16131 : 0, 250, 251, 252, 253, 254, 255, 256, 257, 0,
16132 : 880, 260, 881, 882, 0, 263, 264, 265, 266, 267,
16133 : 268, 269, 0, 0, 270, 271, 883, 884, 274, 0,
16134 : 275, 276, 277, 278, 0, 0, 280, 0, 281, 282,
16135 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 0,
16136 : 292, 293, 294, 295, 296, 297, 0, 298, 299, 300,
16137 : 301, 0, 0, 0, 302, 0, 0, 0, 303, 304,
16138 : 305, 306, 307, 308, 885, 886, 311, 0, 312, 0,
16139 : 313, 314, 315, 316, 317, 318, 319, 0, 320, 321,
16140 : 322, 323, 0, 0, 324, 325, 887, 327, 328, 0,
16141 : 329, 330, 331, 332, 0, 333, 334, 335, 336, 337,
16142 : 0, 338, 339, 340, 341, 0, 343, 344, 345, 346,
16143 : 0, 0, 348, 0, 349, 350, 351, 888, 353, 6411,
16144 : 354, 0, 355, 356, 357, 0, 358, 359, 360, 361,
16145 : 362, 0, 363, 0, 0, 0, 366, 367, 0, 368,
16146 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 0,
16147 : 378, 379, 380, 381, 382, 383, 384, 385, 0, 386,
16148 : 387, 0, 389, 390, 391, 392, 889, 890, 0, 891,
16149 : 0, 396, 397, 398, 399, 400, 892, 0, 0, 0,
16150 : 0, 0, 0, 0, 0, 0, 0, 412, 413, 414,
16151 : 415, 416, 417, 418, 0, 0, 419, 0, 421, 422,
16152 : 423, 0, 424, 425, 426, 0, 0, 427, 428, 429,
16153 : 430, 431, 432, 433, 434, 435, 436, 0, 438, 439,
16154 : 440, 441, 442, 443, 444, 445, 893, 447, 894, 449,
16155 : 450, 451, 452, 453, 454, 455, 456, 0, 0, 459,
16156 : 0, 460, 461, 462, 463, 0, 0, 465, 895, 467,
16157 : 468, 469, 470, 0, 471, 472, 473, 0, 0, 474,
16158 : 475, 476, 0, 0, 477, 478, 0, 480, 481, 482,
16159 : 0, 484, 485, 486, 487, 488, 489, 490, 491, 492,
16160 : 493, 494, 495, 0, 496, 497, 498, 0, 500, 0,
16161 : 502, 503, 504, 0, 505, 506, 507, 508, 509, 510,
16162 : 511, 512, 513, 514, 515, 896, 517, 518, 519, 0,
16163 : 520, 521, 522, 523, 524, 525, 526, 527, 528, 529,
16164 : 530, 531, 532, 0, 533, 534, 535, 536, 537, 538,
16165 : 539, 540, 0, 542, 543, 544, 545, 546, 547, 548,
16166 : 549, 550, 551, 0, 552, 553, 554, 555, 556, 0,
16167 : 557, 558, 897, 560, 561, 562, 563, 564, 898, 566,
16168 : 0, 567, 568, 569, 570, 571, 572, 573, 574, 575,
16169 : 576, 577, 578, 579, 580, 581, 0, 583, 0, 584,
16170 : 585, 0, 0, 586, 587, 588, 589, 590, 591, 592,
16171 : 593, 0, 594, 899, 900, 0, 0, 597, 598, 0,
16172 : 600, 0, 0, 602, 603, 604, 605, 606, 607, 608,
16173 : 609, 610, 0, 0, 611, 612, 613, 614, 615, 0,
16174 : 0, 616, 617, 618, 619, 620, 0, 901, 0, 623,
16175 : 624, 625, 626, 627, 628, 629, 0, 0, 630, 0,
16176 : 0, 631, 632, 633, 634, 635, 636, 879, 0, 0,
16177 : 0, 0, 0, 0, 0, 0, 0, 0, 648, 649,
16178 : 650, 0, 0, 0, 235, 236, 237, 238, 239, 240,
16179 : 241, 242, 243, 0, 244, 245, 246, 0, 0, 0,
16180 : 0, 0, 0, 0, 247, 248, 249, 0, 250, 251,
16181 : 252, 253, 254, 255, 256, 257, 0, 880, 260, 881,
16182 : 882, 0, 263, 264, 265, 266, 267, 268, 269, 0,
16183 : 0, 270, 271, 883, 884, 274, 0, 275, 276, 277,
16184 : 278, 0, 0, 280, 0, 281, 282, 283, 284, 285,
16185 : 286, 287, 288, 289, 290, 291, 0, 292, 293, 294,
16186 : 295, 296, 297, 0, 298, 299, 300, 301, 0, 0,
16187 : 0, 302, 0, 0, 0, 303, 304, 305, 306, 307,
16188 : 308, 885, 886, 311, 0, 312, 0, 313, 314, 315,
16189 : 316, 317, 318, 319, 0, 320, 321, 322, 323, 0,
16190 : 0, 324, 325, 887, 327, 328, 0, 329, 330, 331,
16191 : 332, 0, 333, 334, 335, 336, 337, 0, 338, 339,
16192 : 340, 341, 0, 343, 344, 345, 346, 0, 0, 348,
16193 : 0, 349, 350, 351, 888, 353, 0, 354, 0, 355,
16194 : 356, 357, 0, 358, 359, 360, 361, 362, 0, 363,
16195 : 0, 0, 0, 366, 367, 0, 368, 369, 370, 371,
16196 : 372, 373, 374, 375, 376, 377, 0, 378, 379, 380,
16197 : 381, 382, 383, 384, 385, 0, 386, 387, 0, 389,
16198 : 390, 391, 392, 889, 890, 0, 891, 0, 396, 397,
16199 : 398, 399, 400, 892, 0, 0, 0, 0, 0, 0,
16200 : 0, 0, 0, 0, 412, 413, 414, 415, 416, 417,
16201 : 418, 0, 0, 419, 0, 421, 422, 423, 0, 424,
16202 : 425, 426, 0, 0, 427, 428, 429, 430, 431, 432,
16203 : 433, 434, 435, 436, 0, 438, 439, 440, 441, 442,
16204 : 443, 444, 445, 893, 447, 894, 449, 450, 451, 452,
16205 : 453, 454, 455, 456, 0, 0, 459, 0, 460, 461,
16206 : 462, 463, 0, 0, 465, 895, 467, 468, 469, 470,
16207 : 0, 471, 472, 473, 0, 0, 474, 475, 476, 0,
16208 : 0, 477, 478, 0, 480, 481, 482, 0, 484, 485,
16209 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
16210 : 0, 496, 497, 498, 0, 500, 0, 502, 503, 504,
16211 : 0, 505, 506, 507, 508, 509, 510, 511, 512, 513,
16212 : 514, 515, 896, 517, 518, 519, 0, 520, 521, 522,
16213 : 523, 524, 525, 526, 527, 528, 529, 530, 531, 532,
16214 : 0, 533, 534, 535, 536, 537, 538, 539, 540, 0,
16215 : 542, 543, 544, 545, 546, 547, 548, 549, 550, 551,
16216 : 0, 552, 553, 554, 555, 556, 0, 557, 558, 897,
16217 : 560, 561, 562, 563, 564, 898, 566, 0, 567, 568,
16218 : 569, 570, 571, 572, 573, 574, 575, 576, 577, 578,
16219 : 579, 580, 581, 0, 583, 0, 584, 585, 0, 0,
16220 : 586, 587, 588, 589, 590, 591, 592, 593, 0, 594,
16221 : 899, 900, 0, 0, 597, 598, 0, 600, 0, 0,
16222 : 602, 603, 604, 605, 606, 607, 608, 609, 610, 0,
16223 : 0, 611, 612, 613, 614, 615, 0, 0, 616, 617,
16224 : 618, 619, 620, 0, 901, 0, 623, 624, 625, 626,
16225 : 627, 628, 629, 0, 0, 630, 0, 0, 631, 632,
16226 : 633, 634, 635, 636, 879, 0, 0, 0, 0, 0,
16227 : 0, 0, 0, 0, 0, 648, 649, 650, 0, 0,
16228 : 0, 235, 236, 237, 238, 239, 240, 241, 242, 243,
16229 : 0, 244, 245, 246, 0, 0, 0, 0, 0, 0,
16230 : 0, 247, 248, 249, 0, 250, 251, 252, 253, 254,
16231 : 255, 256, 257, 0, 880, 260, 881, 882, 0, 263,
16232 : 264, 265, 266, 267, 268, 269, 0, 0, 270, 271,
16233 : 883, 884, 274, 0, 275, 276, 277, 278, 0, 0,
16234 : 280, 0, 281, 282, 283, 284, 285, 286, 287, 288,
16235 : 289, 290, 291, 0, 292, 293, 294, 295, 296, 297,
16236 : 0, 298, 299, 300, 301, 0, 0, 0, 302, 0,
16237 : 0, 0, 303, 304, 305, 306, 307, 308, 885, 886,
16238 : 311, 0, 312, 0, 313, 314, 315, 316, 317, 318,
16239 : 319, 0, 320, 321, 322, 323, 0, 0, 324, 325,
16240 : 887, 327, 328, 0, 329, 330, 331, 332, 0, 333,
16241 : 334, 335, 336, 337, 0, 338, 339, 340, 341, 0,
16242 : 343, 344, 345, 346, 0, 0, 348, 0, 349, 350,
16243 : 351, 888, 353, 0, 354, 0, 355, 356, 357, 0,
16244 : 358, 359, 360, 361, 362, 0, 363, 0, 0, 0,
16245 : 366, 367, 0, 368, 369, 370, 371, 1155, 373, 374,
16246 : 375, 376, 377, 0, 378, 379, 380, 381, 382, 383,
16247 : 384, 385, 0, 386, 387, 0, 389, 390, 391, 392,
16248 : 889, 890, 0, 891, 0, 396, 397, 398, 399, 400,
16249 : 892, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16250 : 0, 412, 413, 414, 415, 416, 417, 418, 0, 0,
16251 : 419, 0, 421, 422, 423, 0, 424, 425, 426, 0,
16252 : 0, 427, 428, 429, 430, 431, 432, 433, 434, 435,
16253 : 436, 0, 438, 439, 440, 441, 442, 443, 444, 445,
16254 : 893, 447, 894, 449, 450, 451, 452, 453, 454, 455,
16255 : 456, 0, 0, 459, 0, 460, 461, 462, 463, 0,
16256 : 0, 465, 895, 467, 468, 469, 470, 0, 471, 472,
16257 : 473, 0, 0, 474, 475, 476, 0, 0, 477, 478,
16258 : 0, 480, 481, 482, 0, 484, 485, 486, 487, 488,
16259 : 489, 490, 491, 492, 493, 494, 495, 0, 496, 497,
16260 : 498, 0, 500, 0, 502, 503, 504, 0, 505, 506,
16261 : 507, 508, 509, 510, 511, 512, 513, 514, 515, 896,
16262 : 517, 518, 519, 0, 520, 521, 522, 523, 524, 525,
16263 : 526, 527, 528, 529, 530, 531, 532, 0, 533, 534,
16264 : 535, 536, 537, 538, 539, 540, 0, 542, 543, 544,
16265 : 545, 546, 547, 548, 549, 550, 551, 0, 552, 553,
16266 : 554, 555, 556, 0, 557, 558, 897, 560, 561, 562,
16267 : 563, 564, 898, 566, 0, 567, 568, 569, 570, 571,
16268 : 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
16269 : 0, 583, 0, 584, 585, 0, 0, 586, 587, 588,
16270 : 589, 590, 591, 592, 593, 0, 594, 899, 900, 0,
16271 : 0, 597, 598, 0, 600, 0, 0, 602, 603, 604,
16272 : 605, 606, 607, 608, 609, 610, 0, 0, 611, 612,
16273 : 613, 614, 615, 0, 0, 616, 617, 618, 619, 620,
16274 : 0, 901, 0, 623, 624, 625, 626, 627, 628, 629,
16275 : 0, 0, 630, 0, 0, 631, 632, 633, 634, 635,
16276 : 636, 879, 0, 0, 0, 0, 0, 0, 0, 0,
16277 : 0, 0, 648, 649, 650, 0, 0, 0, 235, 236,
16278 : 237, 238, 239, 240, 241, 242, 243, 0, 244, 245,
16279 : 246, 0, 0, 0, 0, 0, 0, 0, 247, 248,
16280 : 249, 0, 250, 251, 252, 253, 254, 255, 256, 257,
16281 : 0, 880, 260, 881, 882, 0, 263, 264, 265, 266,
16282 : 267, 268, 269, 0, 0, 270, 271, 883, 884, 274,
16283 : 0, 275, 276, 277, 278, 0, 0, 280, 0, 281,
16284 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
16285 : 0, 292, 293, 294, 295, 296, 297, 0, 298, 299,
16286 : 300, 301, 0, 0, 0, 302, 0, 0, 0, 303,
16287 : 304, 305, 306, 307, 308, 885, 886, 311, 0, 312,
16288 : 0, 313, 314, 315, 316, 317, 318, 319, 0, 320,
16289 : 321, 322, 323, 0, 0, 324, 325, 887, 327, 328,
16290 : 0, 329, 330, 331, 332, 0, 333, 334, 335, 336,
16291 : 337, 0, 338, 339, 340, 341, 0, 343, 344, 345,
16292 : 346, 0, 0, 348, 0, 349, 350, 351, 888, 353,
16293 : 0, 354, 0, 355, 356, 357, 0, 358, 359, 360,
16294 : 361, 362, 0, 363, 0, 0, 0, 366, 367, 0,
16295 : 368, 369, 370, 371, 1187, 373, 374, 375, 376, 377,
16296 : 0, 378, 379, 380, 381, 382, 383, 384, 385, 0,
16297 : 386, 387, 0, 389, 390, 391, 392, 889, 890, 0,
16298 : 891, 0, 396, 397, 398, 399, 400, 892, 0, 0,
16299 : 0, 0, 0, 0, 0, 0, 0, 0, 412, 413,
16300 : 414, 415, 416, 417, 418, 0, 0, 419, 0, 421,
16301 : 422, 423, 0, 424, 425, 426, 0, 0, 427, 428,
16302 : 429, 430, 431, 432, 433, 434, 435, 436, 0, 438,
16303 : 439, 440, 441, 442, 443, 444, 445, 893, 447, 894,
16304 : 449, 450, 451, 452, 453, 454, 455, 456, 0, 0,
16305 : 459, 0, 460, 461, 462, 463, 0, 0, 465, 895,
16306 : 467, 468, 469, 470, 0, 471, 472, 473, 0, 0,
16307 : 474, 475, 476, 0, 0, 477, 478, 0, 480, 481,
16308 : 482, 0, 484, 485, 486, 487, 488, 489, 490, 491,
16309 : 492, 493, 494, 495, 0, 496, 497, 498, 0, 500,
16310 : 0, 502, 503, 504, 0, 505, 506, 507, 508, 509,
16311 : 510, 511, 512, 513, 514, 515, 896, 517, 518, 519,
16312 : 0, 520, 521, 522, 523, 524, 525, 526, 527, 528,
16313 : 529, 530, 531, 532, 0, 533, 534, 535, 536, 537,
16314 : 538, 539, 540, 0, 542, 543, 544, 545, 546, 547,
16315 : 548, 549, 550, 551, 0, 552, 553, 554, 555, 556,
16316 : 0, 557, 558, 897, 560, 561, 562, 563, 564, 898,
16317 : 566, 0, 567, 568, 569, 570, 571, 572, 573, 574,
16318 : 575, 576, 577, 578, 579, 580, 581, 0, 583, 0,
16319 : 584, 585, 0, 0, 586, 587, 588, 589, 590, 591,
16320 : 592, 593, 0, 594, 899, 900, 0, 0, 597, 598,
16321 : 0, 600, 0, 0, 602, 603, 604, 605, 606, 607,
16322 : 608, 609, 610, 0, 0, 611, 612, 613, 614, 615,
16323 : 0, 0, 616, 617, 618, 619, 620, 0, 901, 0,
16324 : 623, 624, 625, 626, 627, 628, 629, 0, 0, 630,
16325 : 0, 0, 631, 632, 633, 634, 635, 636, 879, 0,
16326 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 648,
16327 : 649, 650, 0, 0, 0, 235, 236, 237, 238, 239,
16328 : 240, 241, 242, 243, 0, 244, 245, 246, 0, 0,
16329 : 0, 0, 0, 0, 0, 247, 248, 249, 0, 250,
16330 : 251, 252, 253, 254, 255, 256, 257, 0, 880, 260,
16331 : 881, 882, 0, 263, 264, 265, 266, 267, 268, 269,
16332 : 0, 0, 270, 271, 883, 884, 274, 0, 275, 276,
16333 : 277, 278, 0, 0, 280, 0, 281, 282, 283, 284,
16334 : 285, 286, 287, 288, 289, 290, 291, 0, 292, 293,
16335 : 294, 295, 296, 297, 0, 298, 299, 300, 301, 0,
16336 : 0, 0, 302, 0, 0, 0, 303, 304, 305, 306,
16337 : 307, 308, 885, 886, 311, 0, 312, 0, 313, 314,
16338 : 315, 316, 317, 318, 319, 0, 320, 321, 322, 323,
16339 : 0, 0, 324, 325, 887, 327, 328, 0, 329, 330,
16340 : 331, 332, 0, 333, 334, 335, 336, 337, 0, 338,
16341 : 339, 340, 341, 0, 343, 344, 345, 346, 0, 0,
16342 : 348, 0, 349, 350, 351, 888, 353, 0, 354, 0,
16343 : 355, 356, 357, 0, 358, 359, 360, 361, 362, 0,
16344 : 363, 0, 0, 0, 366, 367, 0, 368, 369, 370,
16345 : 371, 372, 373, 374, 375, 376, 377, 0, 378, 379,
16346 : 380, 381, 382, 383, 384, 385, 0, 386, 387, 0,
16347 : 389, 390, 391, 392, 889, 890, 0, 891, 0, 396,
16348 : 397, 398, 399, 400, 892, 0, 0, 0, 0, 0,
16349 : 0, 0, 0, 0, 0, 412, 413, 414, 415, 416,
16350 : 417, 418, 0, 0, 419, 0, 421, 422, 423, 0,
16351 : 424, 425, 426, 0, 0, 427, 428, 429, 430, 431,
16352 : 432, 433, 434, 435, 436, 0, 438, 439, 440, 441,
16353 : 442, 443, 444, 445, 893, 447, 894, 449, 450, 451,
16354 : 452, 453, 454, 455, 456, 0, 0, 459, 0, 460,
16355 : 461, 462, 463, 0, 0, 465, 895, 467, 468, 469,
16356 : 470, 0, 471, 472, 473, 0, 0, 474, 475, 476,
16357 : 0, 0, 477, 478, 0, 480, 481, 482, 0, 484,
16358 : 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
16359 : 495, 0, 496, 497, 498, 0, 500, 0, 502, 503,
16360 : 504, 0, 505, 506, 507, 508, 509, 510, 511, 512,
16361 : 513, 514, 515, 896, 517, 518, 519, 0, 520, 521,
16362 : 522, 523, 524, 525, 526, 527, 528, 529, 530, 531,
16363 : 532, 0, 533, 534, 535, 536, 537, 538, 539, 540,
16364 : 0, 542, 543, 544, 545, 546, 547, 548, 549, 550,
16365 : 551, 0, 552, 553, 554, 555, 556, 0, 557, 558,
16366 : 2735, 560, 561, 562, 563, 564, 898, 566, 0, 567,
16367 : 568, 569, 570, 571, 572, 573, 574, 575, 576, 577,
16368 : 578, 579, 580, 581, 0, 583, 0, 584, 585, 0,
16369 : 0, 586, 587, 588, 589, 590, 591, 592, 593, 0,
16370 : 594, 899, 900, 0, 0, 597, 598, 0, 600, 0,
16371 : 0, 602, 603, 604, 605, 606, 607, 608, 609, 610,
16372 : 0, 0, 611, 612, 613, 614, 615, 0, 0, 616,
16373 : 617, 618, 619, 620, 0, 901, 0, 623, 624, 625,
16374 : 626, 627, 628, 629, 0, 0, 630, 0, 0, 631,
16375 : 632, 633, 634, 635, 636, 879, 0, 0, 0, 0,
16376 : 0, 0, 0, 0, 0, 0, 648, 649, 650, 0,
16377 : 0, 0, 235, 236, 237, 238, 239, 240, 241, 242,
16378 : 243, 0, 244, 245, 246, 0, 0, 0, 0, 0,
16379 : 0, 0, 247, 248, 249, 0, 250, 251, 252, 253,
16380 : 254, 255, 256, 257, 0, 880, 260, 881, 882, 0,
16381 : 263, 264, 265, 266, 267, 268, 269, 0, 0, 270,
16382 : 271, 883, 884, 274, 0, 275, 276, 277, 278, 0,
16383 : 0, 280, 0, 281, 282, 283, 284, 285, 286, 287,
16384 : 288, 289, 290, 291, 0, 292, 293, 294, 295, 296,
16385 : 297, 0, 298, 299, 300, 301, 0, 0, 0, 302,
16386 : 0, 0, 0, 303, 304, 305, 306, 307, 308, 885,
16387 : 886, 311, 0, 312, 0, 313, 314, 315, 316, 317,
16388 : 318, 319, 0, 320, 321, 322, 323, 0, 0, 324,
16389 : 325, 887, 327, 328, 0, 329, 330, 331, 332, 0,
16390 : 333, 334, 335, 336, 337, 0, 338, 339, 340, 341,
16391 : 0, 343, 344, 345, 346, 0, 0, 348, 0, 349,
16392 : 350, 351, 888, 353, 0, 354, 0, 355, 356, 357,
16393 : 0, 358, 359, 360, 361, 362, 0, 363, 0, 0,
16394 : 0, 366, 367, 0, 368, 369, 370, 371, 372, 373,
16395 : 374, 375, 376, 377, 0, 378, 379, 380, 381, 382,
16396 : 383, 384, 385, 0, 386, 387, 0, 389, 390, 391,
16397 : 392, 889, 890, 0, 891, 0, 396, 397, 398, 399,
16398 : 400, 892, 0, 0, 0, 0, 0, 0, 0, 0,
16399 : 0, 0, 412, 413, 414, 415, 416, 417, 418, 0,
16400 : 0, 419, 0, 421, 422, 423, 0, 424, 425, 426,
16401 : 0, 0, 427, 428, 429, 430, 431, 432, 433, 434,
16402 : 435, 436, 0, 438, 439, 440, 441, 442, 443, 444,
16403 : 445, 893, 447, 894, 449, 450, 451, 452, 453, 454,
16404 : 455, 456, 0, 0, 459, 0, 460, 461, 462, 463,
16405 : 0, 0, 465, 895, 467, 468, 469, 470, 0, 471,
16406 : 472, 473, 0, 0, 474, 475, 476, 0, 0, 477,
16407 : 478, 0, 480, 481, 482, 0, 484, 485, 486, 487,
16408 : 488, 489, 490, 491, 492, 493, 494, 495, 0, 496,
16409 : 497, 498, 0, 500, 0, 502, 503, 504, 0, 505,
16410 : 506, 507, 508, 509, 510, 511, 512, 513, 514, 515,
16411 : 896, 517, 518, 519, 0, 520, 521, 522, 523, 524,
16412 : 525, 526, 527, 528, 529, 530, 531, 532, 0, 533,
16413 : 534, 535, 536, 537, 538, 539, 540, 0, 542, 543,
16414 : 544, 545, 546, 547, 548, 549, 550, 551, 0, 552,
16415 : 553, 554, 555, 556, 0, 557, 558, 0, 560, 561,
16416 : 562, 563, 564, 898, 566, 0, 567, 568, 569, 570,
16417 : 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
16418 : 581, 0, 583, 0, 584, 585, 0, 0, 586, 587,
16419 : 588, 589, 590, 591, 592, 593, 0, 594, 899, 900,
16420 : 0, 0, 597, 598, 0, 600, 0, 0, 602, 603,
16421 : 604, 605, 606, 607, 608, 609, 610, 0, 0, 611,
16422 : 612, 613, 614, 615, 0, 0, 616, 617, 618, 619,
16423 : 620, 0, 901, 0, 623, 624, 625, 626, 627, 628,
16424 : 629, 0, 0, 630, 0, 0, 631, 632, 633, 634,
16425 : 635, 636, 879, 0, 0, 0, 0, 0, 0, 0,
16426 : 0, 0, 0, 648, 649, 650, 0, 0, 0, 235,
16427 : 236, 237, 238, 239, 240, 241, 242, 243, 0, 244,
16428 : 245, 246, 0, 0, 0, 0, 0, 0, 0, 247,
16429 : 248, 249, 0, 250, 251, 252, 253, 254, 255, 256,
16430 : 257, 0, 0, 260, 0, 0, 0, 263, 264, 265,
16431 : 266, 267, 268, 269, 0, 0, 270, 271, 0, 0,
16432 : 274, 0, 275, 276, 277, 278, 0, 0, 280, 0,
16433 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
16434 : 291, 0, 292, 293, 294, 295, 296, 297, 0, 298,
16435 : 299, 300, 301, 0, 0, 0, 302, 0, 0, 0,
16436 : 303, 304, 305, 306, 307, 308, 0, 0, 311, 0,
16437 : 312, 0, 313, 314, 315, 316, 317, 318, 319, 0,
16438 : 320, 321, 322, 323, 0, 0, 324, 325, 326, 327,
16439 : 328, 0, 329, 330, 331, 332, 0, 333, 334, 335,
16440 : 336, 337, 0, 338, 339, 340, 341, 0, 343, 344,
16441 : 345, 346, 0, 0, 348, 0, 349, 350, 351, 0,
16442 : 353, 0, 354, 0, 355, 356, 357, 0, 358, 359,
16443 : 360, 361, 362, 0, 363, 0, 0, 0, 366, 367,
16444 : 0, 368, 369, 370, 371, 372, 373, 374, 375, 376,
16445 : 377, 0, 378, 379, 380, 381, 382, 383, 384, 385,
16446 : 0, 386, 387, 0, 389, 390, 391, 392, 0, 0,
16447 : 0, 0, 0, 396, 397, 398, 399, 400, 0, 0,
16448 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 412,
16449 : 413, 414, 415, 416, 417, 418, 0, 0, 419, 0,
16450 : 421, 422, 423, 0, 424, 425, 426, 0, 0, 427,
16451 : 428, 429, 430, 431, 432, 433, 434, 435, 436, 0,
16452 : 438, 439, 440, 441, 442, 443, 444, 445, 0, 447,
16453 : 0, 449, 450, 451, 452, 453, 454, 455, 456, 0,
16454 : 0, 459, 0, 460, 461, 462, 463, 0, 0, 465,
16455 : 0, 467, 468, 469, 470, 0, 471, 472, 473, 0,
16456 : 0, 474, 475, 476, 0, 0, 477, 478, 0, 480,
16457 : 481, 482, 0, 484, 485, 486, 487, 488, 489, 490,
16458 : 491, 492, 493, 494, 495, 0, 496, 497, 498, 0,
16459 : 500, 0, 502, 503, 504, 0, 505, 506, 507, 508,
16460 : 509, 510, 511, 512, 513, 514, 515, 0, 517, 518,
16461 : 519, 0, 520, 521, 522, 523, 524, 525, 526, 527,
16462 : 528, 529, 530, 531, 532, 0, 533, 534, 535, 536,
16463 : 537, 538, 539, 540, 0, 542, 543, 544, 545, 546,
16464 : 547, 548, 549, 550, 551, 0, 552, 553, 554, 555,
16465 : 556, 0, 557, 558, 0, 560, 561, 562, 563, 564,
16466 : 0, 566, 0, 567, 568, 569, 570, 571, 572, 573,
16467 : 574, 575, 576, 577, 578, 579, 580, 581, 0, 583,
16468 : 0, 584, 585, 0, 0, 586, 587, 588, 589, 590,
16469 : 591, 592, 593, 0, 594, 0, 0, 0, 0, 597,
16470 : 598, 0, 600, 0, 0, 602, 603, 604, 605, 606,
16471 : 607, 608, 609, 610, 0, 0, 611, 612, 613, 614,
16472 : 615, 0, 0, 616, 617, 618, 619, 620, 0, 0,
16473 : 0, 623, 624, 625, 626, 627, 628, 629, 0, 0,
16474 : 630, 0, 0, 631, 632, 633, 634, 635, 636, 0,
16475 : 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
16476 : 648, 649, 650
16477 : };
16478 :
16479 : static const yytype_int16 yycheck[] =
16480 : {
16481 : 6, 0, 211, 665, 0, 0, 0, 0, 0, 1041,
16482 : 56, 0, 211, 0, 206, 0, 0, 23, 942, 25,
16483 : 0, 0, 214, 29, 36, 217, 21, 0, 34, 35,
16484 : 36, 0, 38, 0, 1050, 41, 42, 1013, 44, 843,
16485 : 46, 1167, 21, 686, 840, 189, 1662, 53, 54, 55,
16486 : 1579, 897, 1595, 2844, 45, 1030, 718, 1014, 22, 1579,
16487 : 0, 0, 718, 1045, 28, 867, 799, 800, 801, 0,
16488 : 759, 1228, 805, 936, 916, 938, 2717, 1572, 1039, 1275,
16489 : 2718, 1584, 0, 2044, 197, 885, 886, 44, 873, 1262,
16490 : 1505, 850, 3247, 1116, 3137, 895, 3428, 216, 3430, 900,
16491 : 833, 3197, 3523, 765, 1902, 763, 1247, 3728, 3099, 3072,
16492 : 1251, 230, 954, 1254, 1255, 1090, 3926, 3953, 2033, 1094,
16493 : 2085, 1730, 3084, 2071, 1099, 3942, 23, 3611, 2052, 866,
16494 : 8, 3975, 4275, 741, 1109, 2070, 3674, 15, 3676, 36,
16495 : 1625, 1626, 2990, 3878, 1629, 667, 3481, 755, 1123, 4359,
16496 : 3533, 4835, 4297, 4318, 1697, 1698, 818, 1572, 3646, 2109,
16497 : 3648, 191, 1562, 1462, 2968, 191, 175, 1043, 1915, 2066,
16498 : 2067, 2068, 2069, 2, 5232, 2072, 1974, 2074, 2075, 1154,
16499 : 4606, 980, 764, 4611, 846, 4623, 739, 979, 1691, 742,
16500 : 846, 197, 198, 199, 5160, 4568, 202, 754, 5366, 5152,
16501 : 206, 5324, 208, 35, 4737, 211, 4739, 5460, 214, 871,
16502 : 42, 217, 1004, 3497, 220, 1718, 222, 1009, 1105, 225,
16503 : 2739, 2740, 1622, 229, 3475, 231, 4406, 1013, 965, 4600,
16504 : 4851, 2597, 4853, 5103, 1121, 2601, 1022, 4610, 50, 1639,
16505 : 2634, 2702, 5496, 3543, 3382, 2704, 1032, 5357, 3290, 41,
16506 : 5508, 1050, 3387, 3940, 3037, 5147, 3039, 3040, 4927, 939,
16507 : 5457, 3044, 3045, 3046, 0, 3048, 3049, 3050, 225, 5766,
16508 : 939, 933, 963, 11, 0, 1545, 3080, 0, 6, 6,
16509 : 3531, 5151, 21, 0, 5750, 38, 4459, 2681, 15, 16,
16510 : 4775, 6, 2039, 54, 5422, 5423, 37, 63, 6, 6,
16511 : 15, 16, 37, 63, 63, 5415, 6, 63, 3480, 6,
16512 : 3482, 3483, 37, 1004, 6, 15, 16, 1054, 1009, 0,
16513 : 25, 6, 21, 32, 13, 43, 95, 6, 47, 120,
16514 : 11, 37, 0, 6, 6, 29, 37, 35, 149, 172,
16515 : 6, 120, 120, 11, 178, 47, 6, 88, 29, 13,
16516 : 178, 1084, 6, 63, 6, 883, 884, 6, 178, 157,
16517 : 6, 29, 178, 85, 1525, 153, 894, 6, 195, 80,
16518 : 164, 6, 63, 47, 5, 120, 3613, 11, 179, 37,
16519 : 11, 45, 0, 3, 51, 5, 6, 190, 1050, 1156,
16520 : 15, 11, 179, 5447, 6027, 1162, 1881, 178, 122, 6064,
16521 : 179, 178, 13, 21, 5, 1172, 13, 68, 6, 1176,
16522 : 11, 43, 178, 1180, 78, 1182, 5649, 1202, 4701, 4702,
16523 : 4703, 1188, 4705, 4706, 4707, 4708, 4709, 1194, 316, 331,
16524 : 1197, 125, 180, 221, 45, 140, 1418, 158, 56, 353,
16525 : 257, 310, 178, 32, 4624, 1406, 6020, 180, 1106, 135,
16526 : 345, 1474, 178, 63, 348, 178, 403, 63, 345, 669,
16527 : 120, 178, 361, 404, 6151, 376, 202, 78, 11, 35,
16528 : 448, 360, 385, 166, 25, 272, 202, 206, 325, 202,
16529 : 122, 39, 5979, 5375, 1466, 202, 120, 686, 240, 424,
16530 : 78, 120, 29, 1293, 1294, 63, 289, 178, 448, 385,
16531 : 120, 13, 153, 227, 5970, 495, 92, 450, 433, 32,
16532 : 178, 372, 267, 1623, 5768, 294, 283, 6466, 178, 313,
16533 : 80, 202, 535, 217, 440, 1325, 442, 540, 316, 330,
16534 : 1640, 6480, 92, 178, 202, 1336, 59, 736, 293, 6,
16535 : 178, 308, 403, 172, 5497, 356, 324, 472, 293, 435,
16536 : 540, 761, 487, 496, 5664, 450, 403, 309, 471, 298,
16537 : 289, 254, 540, 450, 312, 684, 1174, 302, 4939, 293,
16538 : 1355, 690, 130, 191, 29, 368, 80, 29, 489, 478,
16539 : 29, 36, 6269, 702, 36, 227, 1462, 36, 92, 140,
16540 : 540, 157, 1574, 540, 80, 536, 485, 394, 135, 298,
16541 : 80, 496, 222, 254, 373, 1404, 1268, 293, 409, 496,
16542 : 1409, 1410, 1268, 334, 374, 374, 178, 350, 374, 1356,
16543 : 29, 92, 536, 80, 390, 835, 1208, 1235, 289, 446,
16544 : 80, 185, 448, 357, 536, 92, 80, 257, 1246, 80,
16545 : 13, 185, 536, 6140, 302, 390, 244, 6312, 1433, 1386,
16546 : 3887, 293, 540, 185, 389, 1263, 5889, 6290, 5712, 23,
16547 : 666, 455, 371, 1463, 374, 534, 672, 448, 674, 538,
16548 : 676, 4406, 45, 679, 477, 423, 385, 465, 387, 127,
16549 : 686, 1656, 125, 374, 1659, 691, 671, 693, 412, 5886,
16550 : 5311, 489, 671, 699, 473, 334, 1728, 1729, 403, 4434,
16551 : 142, 479, 396, 536, 1865, 78, 540, 6394, 375, 536,
16552 : 526, 1668, 540, 431, 1499, 357, 536, 723, 484, 765,
16553 : 10, 462, 538, 13, 5978, 536, 732, 17, 18, 19,
16554 : 736, 671, 671, 739, 4879, 526, 742, 448, 1427, 1401,
16555 : 671, 463, 1629, 478, 453, 1401, 448, 1409, 1410, 536,
16556 : 448, 1550, 758, 671, 1282, 1283, 497, 6254, 536, 478,
16557 : 769, 1560, 1548, 540, 374, 1726, 471, 4940, 374, 4579,
16558 : 25, 540, 497, 5258, 482, 536, 478, 471, 4951, 2049,
16559 : 540, 540, 371, 536, 540, 764, 6252, 5915, 448, 517,
16560 : 518, 497, 1320, 514, 1681, 1682, 497, 535, 942, 431,
16561 : 1646, 540, 4619, 539, 478, 811, 374, 5760, 536, 536,
16562 : 4620, 1735, 1492, 539, 820, 779, 539, 781, 1610, 783,
16563 : 4441, 536, 539, 1492, 1610, 789, 4447, 534, 536, 536,
16564 : 540, 538, 517, 518, 840, 841, 536, 843, 844, 536,
16565 : 6337, 540, 848, 532, 536, 2002, 527, 528, 1647, 540,
16566 : 1976, 536, 1651, 1652, 811, 1064, 862, 536, 539, 527,
16567 : 528, 867, 448, 536, 536, 1064, 526, 873, 532, 1061,
16568 : 536, 539, 5764, 1065, 4362, 1067, 4364, 6131, 538, 1570,
16569 : 6077, 6078, 536, 2009, 536, 140, 6144, 536, 6385, 4624,
16570 : 536, 536, 493, 527, 528, 2021, 527, 528, 540, 263,
16571 : 930, 526, 540, 4238, 930, 6479, 6159, 527, 528, 534,
16572 : 867, 1439, 1440, 538, 920, 793, 517, 6491, 529, 530,
16573 : 531, 532, 529, 530, 531, 532, 527, 528, 934, 338,
16574 : 540, 5214, 1623, 932, 540, 225, 932, 932, 932, 932,
16575 : 932, 947, 1055, 932, 448, 932, 534, 932, 932, 1640,
16576 : 538, 3913, 932, 932, 421, 422, 962, 956, 413, 932,
16577 : 6070, 413, 448, 932, 413, 932, 3770, 3771, 448, 4104,
16578 : 4105, 3775, 540, 5642, 1617, 981, 4114, 934, 540, 6089,
16579 : 986, 987, 453, 4670, 527, 528, 540, 1863, 3, 398,
16580 : 947, 448, 932, 932, 52, 1882, 540, 72, 448, 4250,
16581 : 23, 932, 6256, 4254, 448, 962, 3, 448, 540, 6,
16582 : 4310, 5977, 1018, 1019, 932, 527, 528, 529, 530, 531,
16583 : 532, 5974, 312, 1545, 122, 473, 390, 3546, 471, 3548,
16584 : 6, 440, 76, 442, 156, 1041, 1042, 89, 2070, 156,
16585 : 4528, 3502, 89, 4527, 3503, 4087, 1845, 489, 3442, 1055,
16586 : 148, 1057, 844, 671, 4189, 1061, 848, 23, 1064, 1065,
16587 : 202, 1067, 874, 6151, 125, 4237, 1072, 4239, 4240, 2051,
16588 : 63, 326, 207, 3856, 438, 136, 91, 113, 185, 154,
16589 : 132, 6, 6336, 223, 125, 132, 6, 5957, 187, 113,
16590 : 1096, 125, 6260, 6261, 310, 313, 113, 1103, 1104, 174,
16591 : 172, 103, 25, 5973, 385, 469, 3910, 33, 34, 5480,
16592 : 331, 6169, 113, 368, 5487, 6225, 124, 89, 115, 1125,
16593 : 1126, 1127, 294, 1129, 2106, 1131, 2675, 1133, 1134, 10,
16594 : 145, 495, 13, 156, 169, 21, 17, 18, 19, 197,
16595 : 289, 178, 21, 311, 202, 297, 764, 765, 403, 6,
16596 : 4434, 125, 5362, 23, 527, 528, 529, 530, 531, 532,
16597 : 132, 1167, 390, 1169, 1170, 202, 1828, 368, 3534, 178,
16598 : 4591, 4655, 536, 99, 6427, 6141, 217, 190, 1911, 6132,
16599 : 25, 6269, 1949, 217, 6, 187, 1018, 1019, 23, 23,
16600 : 1957, 6409, 6315, 119, 526, 253, 1202, 194, 368, 266,
16601 : 48, 372, 283, 174, 115, 5701, 538, 5703, 113, 5389,
16602 : 3, 5707, 5708, 310, 2018, 2019, 224, 140, 293, 6387,
16603 : 5841, 476, 1228, 71, 1230, 304, 293, 308, 1234, 1208,
16604 : 1236, 157, 403, 403, 524, 525, 526, 527, 528, 529,
16605 : 530, 531, 532, 217, 72, 260, 6464, 448, 30, 284,
16606 : 1626, 316, 331, 1629, 1260, 536, 1262, 2133, 410, 23,
16607 : 1266, 10, 172, 307, 13, 2050, 63, 2052, 17, 18,
16608 : 19, 346, 289, 2058, 1280, 272, 289, 329, 275, 2064,
16609 : 2065, 380, 329, 194, 406, 10, 35, 289, 13, 406,
16610 : 1979, 2076, 17, 18, 19, 140, 6262, 263, 91, 471,
16611 : 435, 2086, 2805, 114, 5732, 5838, 6394, 2092, 536, 1355,
16612 : 1139, 326, 930, 5149, 932, 536, 1322, 2837, 536, 2008,
16613 : 536, 202, 298, 2012, 2739, 5142, 5136, 6450, 2017, 5173,
16614 : 498, 2020, 5758, 1211, 5762, 1213, 3083, 1215, 1946, 1217,
16615 : 5778, 1219, 1220, 1221, 225, 1351, 1352, 1353, 1226, 1355,
16616 : 408, 6409, 1960, 146, 125, 3320, 3321, 329, 5731, 3878,
16617 : 3325, 272, 385, 512, 275, 1973, 2103, 311, 4359, 6335,
16618 : 1376, 3306, 23, 298, 2673, 197, 5747, 475, 298, 189,
16619 : 6346, 374, 1939, 406, 206, 5756, 493, 2890, 5761, 441,
16620 : 1943, 466, 214, 263, 441, 217, 207, 394, 540, 435,
16621 : 540, 3366, 3367, 326, 1986, 1958, 6464, 4895, 1961, 1415,
16622 : 471, 435, 298, 1422, 1971, 456, 209, 3026, 1617, 298,
16623 : 6386, 493, 396, 438, 390, 2825, 441, 1433, 263, 263,
16624 : 471, 312, 4920, 540, 435, 5806, 218, 471, 364, 448,
16625 : 2083, 298, 300, 445, 6365, 368, 217, 1477, 1478, 3968,
16626 : 1480, 1477, 1478, 120, 1480, 6421, 493, 536, 2011, 390,
16627 : 370, 403, 2015, 2016, 477, 293, 326, 316, 23, 441,
16628 : 396, 5636, 438, 1479, 38, 540, 225, 1483, 1484, 380,
16629 : 403, 326, 92, 394, 3434, 5630, 37, 6453, 1494, 1495,
16630 : 1496, 1497, 289, 1499, 4877, 400, 60, 471, 269, 263,
16631 : 3116, 4836, 6186, 469, 6000, 1881, 172, 115, 368, 435,
16632 : 120, 40, 58, 72, 511, 171, 1522, 6438, 184, 27,
16633 : 390, 28, 324, 368, 6, 54, 289, 2049, 190, 495,
16634 : 368, 403, 42, 92, 133, 5, 202, 1494, 25, 1496,
16635 : 333, 11, 50, 403, 31, 144, 356, 403, 112, 493,
16636 : 3099, 1557, 100, 479, 241, 390, 1562, 483, 403, 1565,
16637 : 180, 311, 5100, 312, 325, 403, 2598, 493, 438, 120,
16638 : 536, 472, 1578, 1579, 87, 473, 386, 374, 94, 390,
16639 : 125, 1587, 111, 129, 1590, 92, 194, 312, 5959, 4840,
16640 : 1208, 517, 536, 4636, 4845, 140, 435, 4848, 540, 469,
16641 : 511, 4592, 289, 438, 438, 536, 403, 124, 72, 311,
16642 : 536, 1617, 263, 1619, 311, 473, 1622, 120, 2600, 1625,
16643 : 1626, 137, 433, 1629, 435, 495, 390, 289, 194, 6137,
16644 : 6138, 179, 1631, 1639, 469, 469, 1642, 1636, 536, 1645,
16645 : 3135, 205, 403, 524, 525, 526, 527, 528, 529, 530,
16646 : 531, 532, 314, 140, 5389, 168, 120, 324, 1276, 5869,
16647 : 495, 495, 5498, 1669, 272, 213, 536, 275, 540, 5486,
16648 : 357, 464, 122, 180, 438, 190, 536, 479, 1296, 472,
16649 : 228, 1687, 475, 293, 540, 341, 10, 216, 537, 13,
16650 : 200, 540, 312, 1699, 1700, 1701, 1702, 1703, 148, 263,
16651 : 471, 536, 536, 251, 268, 469, 272, 224, 263, 273,
16652 : 218, 1717, 378, 1712, 477, 304, 3131, 1716, 182, 406,
16653 : 3135, 45, 1728, 1729, 1730, 289, 304, 326, 52, 396,
16654 : 1687, 495, 280, 4516, 293, 325, 304, 1355, 4521, 390,
16655 : 183, 10, 331, 493, 13, 5888, 1955, 2763, 17, 18,
16656 : 19, 4599, 1944, 331, 78, 1954, 1955, 6128, 29, 448,
16657 : 289, 325, 310, 331, 4555, 316, 35, 166, 435, 368,
16658 : 136, 122, 536, 181, 289, 524, 525, 526, 527, 528,
16659 : 529, 530, 531, 532, 471, 10, 394, 438, 13, 4593,
16660 : 2926, 493, 17, 18, 19, 298, 493, 2673, 343, 524,
16661 : 525, 526, 527, 528, 529, 530, 531, 532, 403, 373,
16662 : 35, 326, 479, 396, 257, 477, 3, 403, 469, 25,
16663 : 1933, 1827, 123, 179, 267, 31, 493, 151, 394, 293,
16664 : 6338, 379, 1838, 397, 298, 390, 99, 526, 10, 326,
16665 : 1846, 1847, 4833, 350, 495, 17, 18, 19, 298, 538,
16666 : 517, 217, 435, 368, 418, 254, 1862, 213, 112, 1477,
16667 : 1478, 123, 1480, 392, 135, 13, 2633, 2652, 5386, 536,
16668 : 241, 3007, 228, 197, 1880, 1881, 227, 23, 202, 6250,
16669 : 387, 368, 346, 438, 2083, 536, 326, 4406, 325, 2735,
16670 : 1896, 1897, 1898, 1899, 414, 251, 479, 198, 362, 1905,
16671 : 6445, 723, 5, 511, 267, 469, 1912, 306, 11, 1915,
16672 : 732, 2715, 5430, 536, 469, 4434, 403, 739, 289, 439,
16673 : 742, 184, 6467, 3472, 1930, 473, 3475, 1933, 536, 253,
16674 : 78, 5767, 6075, 120, 140, 243, 198, 1943, 1944, 5749,
16675 : 495, 123, 293, 351, 451, 540, 453, 536, 1954, 1955,
16676 : 457, 387, 1958, 536, 540, 1961, 225, 314, 536, 5776,
16677 : 2936, 6332, 477, 403, 2763, 135, 403, 137, 536, 326,
16678 : 1976, 1977, 370, 537, 3523, 526, 384, 1983, 120, 1985,
16679 : 178, 536, 3531, 534, 483, 536, 537, 538, 312, 540,
16680 : 398, 493, 490, 64, 23, 23, 2002, 440, 2874, 442,
16681 : 225, 72, 466, 2009, 202, 2011, 357, 1986, 2014, 2015,
16682 : 2016, 368, 2018, 2019, 268, 2021, 198, 453, 160, 273,
16683 : 483, 2067, 2028, 379, 2900, 387, 469, 316, 436, 2035,
16684 : 2042, 122, 2038, 2039, 3160, 406, 2042, 536, 540, 2045,
16685 : 2046, 5525, 540, 312, 2050, 385, 2052, 387, 2033, 2835,
16686 : 5205, 2057, 2058, 195, 2033, 6265, 5307, 148, 2064, 2065,
16687 : 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075,
16688 : 2076, 2028, 4033, 536, 2080, 450, 2082, 2083, 2084, 2085,
16689 : 2086, 2087, 2088, 2089, 408, 173, 2092, 312, 2094, 2095,
16690 : 4051, 453, 2098, 2033, 2033, 493, 3020, 3021, 3022, 2986,
16691 : 471, 2763, 2033, 536, 393, 4624, 293, 2113, 2114, 2115,
16692 : 1988, 298, 1990, 453, 1992, 2033, 1994, 263, 1996, 517,
16693 : 211, 209, 2000, 293, 3000, 2131, 473, 484, 3543, 1631,
16694 : 69, 70, 25, 3628, 1636, 5126, 5972, 3753, 3553, 5102,
16695 : 312, 2940, 540, 4067, 13, 169, 5990, 334, 2045, 2948,
16696 : 2936, 293, 2951, 4088, 5971, 4103, 38, 3353, 4093, 5121,
16697 : 4125, 4126, 4127, 4128, 157, 2171, 4131, 4132, 4133, 4134,
16698 : 4135, 4136, 4137, 4138, 4139, 4140, 45, 3152, 5141, 2916,
16699 : 6390, 2914, 5337, 2916, 5339, 326, 257, 5519, 2974, 536,
16700 : 3066, 515, 5730, 493, 180, 4092, 326, 2989, 289, 81,
16701 : 4097, 4098, 293, 527, 528, 529, 530, 531, 532, 78,
16702 : 1712, 4009, 765, 3628, 1716, 360, 3103, 3104, 3105, 3106,
16703 : 155, 3108, 246, 3009, 293, 2833, 3835, 368, 214, 298,
16704 : 4195, 4196, 3841, 1055, 263, 263, 166, 390, 368, 1061,
16705 : 540, 3726, 172, 1065, 390, 1067, 3133, 140, 166, 6415,
16706 : 540, 6417, 397, 326, 172, 524, 525, 526, 527, 528,
16707 : 529, 530, 531, 532, 440, 818, 442, 420, 326, 204,
16708 : 493, 360, 5368, 2279, 3777, 2964, 38, 2966, 493, 0,
16709 : 5063, 2970, 5065, 5066, 5067, 354, 5090, 202, 5092, 326,
16710 : 435, 3, 438, 5781, 517, 368, 326, 6133, 60, 524,
16711 : 525, 526, 527, 528, 529, 530, 531, 532, 397, 1131,
16712 : 368, 1133, 1134, 4228, 26, 6481, 80, 540, 871, 5803,
16713 : 493, 3824, 539, 469, 254, 540, 5, 2333, 92, 157,
16714 : 403, 368, 11, 385, 5755, 372, 254, 5328, 368, 4236,
16715 : 485, 3537, 27, 29, 517, 403, 435, 3223, 122, 495,
16716 : 112, 373, 524, 525, 526, 527, 528, 529, 530, 531,
16717 : 532, 390, 390, 25, 1008, 50, 403, 419, 1986, 31,
16718 : 448, 5362, 112, 403, 148, 6477, 306, 172, 5710, 91,
16719 : 933, 403, 3149, 1027, 2390, 22, 1030, 3154, 306, 3156,
16720 : 536, 28, 6494, 3126, 326, 473, 485, 83, 172, 3166,
16721 : 86, 196, 3169, 396, 3171, 3172, 3949, 93, 3175, 438,
16722 : 438, 3210, 3179, 100, 3181, 2033, 326, 3184, 4941, 6255,
16723 : 182, 314, 172, 781, 782, 783, 4949, 3085, 786, 787,
16724 : 788, 153, 120, 173, 146, 121, 368, 211, 796, 493,
16725 : 469, 469, 435, 205, 166, 1884, 196, 15, 16, 2067,
16726 : 172, 6072, 357, 368, 364, 143, 6266, 372, 368, 172,
16727 : 493, 35, 150, 517, 369, 1904, 495, 495, 3344, 209,
16728 : 531, 403, 183, 2091, 3350, 536, 164, 538, 140, 372,
16729 : 373, 3248, 536, 196, 517, 534, 479, 536, 403, 538,
16730 : 202, 38, 179, 403, 399, 10, 182, 209, 13, 221,
16731 : 493, 263, 17, 18, 19, 3429, 268, 536, 536, 195,
16732 : 403, 273, 135, 60, 137, 289, 531, 5508, 3207, 293,
16733 : 35, 536, 208, 538, 517, 5, 213, 289, 268, 517,
16734 : 518, 11, 254, 273, 517, 518, 5868, 3322, 143, 19,
16735 : 99, 228, 310, 536, 348, 150, 257, 315, 536, 3334,
16736 : 33, 34, 3289, 536, 535, 5651, 5666, 37, 453, 540,
16737 : 119, 5671, 5672, 325, 251, 112, 25, 302, 396, 2575,
16738 : 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, 493, 2585,
16739 : 536, 4546, 538, 310, 306, 3370, 1004, 2796, 315, 2595,
16740 : 2596, 1009, 2598, 280, 316, 485, 5587, 2796, 157, 2605,
16741 : 534, 244, 517, 2795, 538, 2797, 2798, 435, 529, 537,
16742 : 298, 373, 540, 534, 6424, 536, 3333, 538, 3335, 3336,
16743 : 534, 333, 536, 310, 285, 286, 287, 288, 2634, 3414,
16744 : 2636, 453, 91, 2639, 2640, 397, 3435, 2643, 529, 2645,
16745 : 2635, 3782, 2648, 534, 393, 536, 2652, 538, 536, 360,
16746 : 538, 479, 5435, 3454, 3455, 536, 418, 3614, 205, 537,
16747 : 537, 271, 540, 540, 326, 493, 2284, 537, 380, 2675,
16748 : 540, 153, 536, 3432, 133, 2681, 2682, 2634, 370, 2792,
16749 : 537, 140, 267, 540, 166, 144, 2692, 393, 537, 517,
16750 : 172, 540, 379, 3650, 537, 2701, 2702, 540, 517, 518,
16751 : 537, 4250, 3544, 540, 267, 4254, 368, 469, 536, 2715,
16752 : 225, 537, 537, 2832, 540, 540, 263, 2723, 207, 2725,
16753 : 432, 268, 4683, 96, 2681, 2682, 273, 385, 386, 440,
16754 : 6218, 442, 385, 386, 420, 6223, 6224, 423, 4699, 221,
16755 : 5783, 403, 289, 465, 271, 537, 3389, 3729, 540, 385,
16756 : 386, 3488, 464, 2765, 3554, 2767, 385, 386, 469, 2765,
16757 : 472, 2767, 4378, 475, 196, 537, 537, 455, 540, 540,
16758 : 324, 25, 254, 3435, 485, 2781, 453, 31, 325, 467,
16759 : 537, 3938, 537, 540, 100, 540, 2792, 5654, 5655, 2795,
16760 : 2796, 2797, 2798, 4728, 87, 2801, 537, 312, 2804, 540,
16761 : 4735, 4736, 2720, 4601, 537, 364, 2925, 540, 5830, 5831,
16762 : 4359, 3578, 534, 59, 537, 537, 538, 540, 537, 2825,
16763 : 537, 540, 76, 540, 306, 6443, 373, 396, 6446, 3615,
16764 : 493, 2837, 495, 4376, 316, 4378, 537, 396, 4341, 540,
16765 : 5644, 4361, 396, 6033, 6034, 2851, 2852, 2804, 393, 483,
16766 : 397, 1209, 2858, 493, 1212, 495, 1214, 485, 1216, 537,
16767 : 1218, 2867, 540, 179, 1222, 537, 435, 326, 540, 537,
16768 : 5389, 418, 540, 6205, 54, 55, 435, 4050, 5869, 133,
16769 : 244, 435, 3571, 2889, 11, 537, 140, 3006, 540, 536,
16770 : 144, 6379, 3659, 390, 3661, 4310, 3919, 213, 537, 537,
16771 : 2096, 540, 540, 2099, 2910, 364, 3881, 433, 310, 368,
16772 : 479, 4414, 228, 537, 6069, 3701, 540, 2923, 537, 173,
16773 : 479, 540, 469, 537, 493, 479, 540, 540, 537, 537,
16774 : 3592, 540, 540, 536, 493, 251, 3592, 536, 10, 493,
16775 : 2946, 13, 59, 2949, 403, 17, 18, 19, 517, 537,
16776 : 485, 410, 540, 2910, 537, 209, 537, 540, 517, 540,
16777 : 3568, 3569, 537, 517, 280, 540, 440, 536, 442, 2975,
16778 : 2976, 537, 537, 45, 540, 540, 537, 536, 48, 540,
16779 : 52, 5619, 536, 465, 2990, 5976, 2992, 2993, 3875, 513,
16780 : 538, 3724, 5511, 227, 181, 537, 3729, 537, 540, 2963,
16781 : 540, 3877, 294, 295, 537, 537, 78, 540, 540, 524,
16782 : 525, 526, 527, 528, 529, 530, 531, 532, 3024, 3025,
16783 : 3026, 310, 313, 2641, 3030, 135, 537, 137, 537, 540,
16784 : 537, 540, 3038, 540, 537, 289, 172, 540, 3805, 293,
16785 : 2675, 310, 4591, 4592, 3811, 3051, 537, 513, 313, 540,
16786 : 304, 3057, 534, 3059, 164, 48, 538, 2675, 245, 6391,
16787 : 314, 513, 3254, 379, 3256, 3257, 3072, 2666, 2667, 2668,
16788 : 4613, 3077, 326, 537, 227, 177, 540, 3083, 153, 4608,
16789 : 3086, 537, 537, 537, 540, 540, 540, 537, 5892, 5893,
16790 : 540, 166, 3098, 3099, 440, 529, 442, 172, 10, 4295,
16791 : 540, 13, 2720, 3109, 396, 17, 18, 19, 1930, 537,
16792 : 3718, 1933, 540, 3119, 368, 3121, 536, 371, 372, 229,
16793 : 537, 1943, 1944, 540, 537, 197, 38, 540, 537, 482,
16794 : 202, 540, 3740, 493, 4629, 495, 1958, 6469, 3251, 1961,
16795 : 342, 537, 537, 435, 540, 540, 221, 537, 537, 403,
16796 : 540, 540, 537, 6144, 3160, 540, 3162, 537, 3164, 537,
16797 : 540, 536, 540, 537, 6127, 537, 540, 537, 540, 537,
16798 : 540, 493, 540, 495, 3907, 285, 286, 287, 288, 254,
16799 : 536, 253, 292, 293, 37, 536, 4168, 479, 298, 2011,
16800 : 3389, 3197, 537, 2015, 2016, 540, 537, 384, 537, 540,
16801 : 3118, 493, 92, 4360, 391, 537, 4363, 537, 540, 4366,
16802 : 540, 398, 537, 537, 4629, 540, 540, 537, 537, 5860,
16803 : 540, 3883, 476, 3885, 59, 517, 0, 3883, 178, 3885,
16804 : 3997, 306, 3999, 223, 4001, 4037, 3925, 223, 538, 537,
16805 : 312, 316, 540, 368, 536, 3251, 3252, 202, 3254, 436,
16806 : 3256, 3257, 537, 3259, 537, 540, 493, 540, 495, 4058,
16807 : 3266, 4222, 497, 537, 537, 3271, 540, 540, 6259, 43,
16808 : 537, 158, 459, 540, 6265, 537, 3322, 537, 540, 5244,
16809 : 540, 537, 158, 539, 4833, 4161, 4268, 537, 536, 539,
16810 : 3898, 4840, 3900, 183, 536, 536, 4845, 10, 3497, 4848,
16811 : 13, 537, 5237, 5238, 540, 3967, 4219, 537, 4221, 3,
16812 : 540, 3967, 536, 225, 3320, 3321, 3322, 207, 537, 3325,
16813 : 4822, 540, 4824, 4305, 3370, 99, 536, 3333, 3334, 3335,
16814 : 3336, 537, 45, 4022, 540, 4120, 408, 538, 537, 52,
16815 : 4956, 540, 310, 3349, 10, 455, 3352, 13, 3354, 368,
16816 : 202, 17, 18, 19, 310, 6146, 537, 467, 158, 540,
16817 : 3366, 3367, 158, 537, 3370, 78, 540, 257, 537, 4154,
16818 : 537, 540, 537, 540, 537, 540, 202, 540, 537, 153,
16819 : 4255, 540, 4257, 3389, 1494, 3391, 1496, 3393, 158, 3395,
16820 : 465, 310, 166, 153, 5288, 172, 5290, 91, 172, 6390,
16821 : 312, 4921, 4377, 368, 178, 158, 166, 252, 3414, 473,
16822 : 184, 3417, 172, 187, 122, 3421, 310, 191, 536, 302,
16823 : 4205, 172, 537, 72, 293, 315, 38, 293, 497, 3475,
16824 : 536, 3422, 3423, 3424, 293, 310, 3442, 48, 151, 48,
16825 : 295, 458, 293, 515, 293, 4053, 326, 221, 91, 223,
16826 : 485, 145, 524, 525, 526, 527, 528, 529, 530, 531,
16827 : 532, 221, 485, 87, 3099, 453, 3472, 54, 172, 3475,
16828 : 3476, 349, 158, 158, 3480, 3481, 3482, 3483, 536, 158,
16829 : 254, 3527, 158, 3489, 197, 3442, 153, 497, 3494, 202,
16830 : 135, 4333, 137, 158, 254, 4652, 158, 540, 158, 166,
16831 : 3118, 158, 158, 3509, 158, 172, 158, 4307, 158, 172,
16832 : 158, 158, 158, 310, 101, 435, 158, 3523, 158, 164,
16833 : 536, 3527, 38, 252, 3530, 3531, 310, 3533, 172, 4405,
16834 : 10, 4407, 306, 13, 172, 536, 310, 6, 6, 126,
16835 : 253, 396, 316, 172, 536, 4502, 306, 536, 6, 4524,
16836 : 440, 536, 442, 536, 221, 536, 316, 4433, 145, 225,
16837 : 536, 536, 536, 453, 151, 45, 260, 6, 3574, 536,
16838 : 536, 6, 52, 5534, 536, 536, 466, 5126, 536, 469,
16839 : 435, 6, 536, 536, 229, 536, 173, 254, 4512, 536,
16840 : 177, 536, 3598, 3599, 5559, 536, 536, 6388, 78, 312,
16841 : 536, 536, 376, 536, 536, 192, 536, 536, 536, 536,
16842 : 536, 536, 524, 525, 526, 527, 528, 529, 530, 531,
16843 : 532, 536, 300, 536, 479, 5590, 536, 536, 3634, 536,
16844 : 536, 536, 326, 536, 494, 4434, 3642, 167, 493, 306,
16845 : 285, 286, 287, 288, 223, 322, 312, 292, 540, 316,
16846 : 38, 540, 103, 298, 252, 38, 37, 431, 10, 536,
16847 : 446, 13, 517, 446, 534, 17, 18, 19, 448, 534,
16848 : 364, 151, 448, 448, 368, 536, 448, 178, 372, 3878,
16849 : 172, 536, 537, 35, 539, 306, 3692, 172, 304, 403,
16850 : 540, 465, 68, 45, 448, 408, 448, 390, 448, 484,
16851 : 52, 448, 390, 448, 3322, 465, 538, 448, 390, 403,
16852 : 3716, 298, 254, 448, 79, 448, 490, 197, 492, 493,
16853 : 3726, 526, 202, 448, 92, 158, 78, 310, 249, 390,
16854 : 448, 395, 448, 298, 128, 472, 448, 438, 331, 310,
16855 : 514, 304, 536, 448, 438, 448, 385, 441, 195, 536,
16856 : 92, 540, 3370, 10, 128, 158, 13, 5172, 5307, 326,
16857 : 17, 18, 19, 537, 202, 539, 540, 354, 448, 128,
16858 : 114, 473, 128, 253, 473, 448, 3394, 448, 35, 5328,
16859 : 448, 59, 59, 277, 353, 314, 331, 353, 45, 448,
16860 : 448, 353, 3410, 448, 331, 52, 47, 448, 465, 493,
16861 : 540, 537, 515, 438, 225, 225, 310, 448, 225, 4685,
16862 : 455, 448, 448, 5362, 527, 528, 529, 530, 531, 532,
16863 : 448, 78, 467, 448, 541, 448, 448, 225, 448, 3835,
16864 : 448, 448, 312, 448, 448, 3841, 225, 3472, 448, 225,
16865 : 3475, 225, 448, 225, 310, 197, 3852, 225, 225, 536,
16866 : 202, 458, 38, 2675, 3472, 158, 310, 3475, 524, 525,
16867 : 526, 527, 528, 529, 530, 531, 532, 158, 120, 293,
16868 : 473, 158, 158, 225, 226, 158, 484, 293, 4677, 310,
16869 : 260, 293, 293, 3889, 3890, 3891, 38, 172, 3523, 38,
16870 : 4872, 244, 2675, 392, 158, 158, 3531, 473, 158, 4666,
16871 : 3906, 253, 4669, 536, 536, 3523, 536, 302, 158, 3527,
16872 : 448, 178, 473, 3531, 3920, 489, 277, 536, 297, 277,
16873 : 13, 448, 187, 195, 537, 321, 450, 195, 408, 513,
16874 : 534, 4698, 3938, 3939, 3940, 540, 536, 536, 3944, 536,
16875 : 197, 4787, 537, 513, 296, 202, 540, 537, 537, 537,
16876 : 3956, 537, 394, 275, 5111, 537, 490, 406, 473, 5508,
16877 : 312, 241, 221, 5492, 311, 4573, 4574, 540, 225, 226,
16878 : 2792, 38, 540, 2795, 319, 2797, 2798, 473, 59, 537,
16879 : 390, 484, 4671, 4672, 4673, 4674, 4675, 536, 4773, 298,
16880 : 298, 298, 4855, 448, 172, 448, 253, 536, 448, 3956,
16881 : 298, 48, 241, 412, 310, 310, 4012, 241, 536, 293,
16882 : 298, 252, 252, 385, 252, 271, 310, 128, 448, 438,
16883 : 4026, 4027, 540, 202, 196, 368, 540, 357, 310, 310,
16884 : 403, 4037, 493, 400, 3952, 515, 310, 316, 5587, 296,
16885 : 448, 448, 537, 38, 4050, 225, 473, 527, 528, 529,
16886 : 530, 531, 532, 244, 526, 312, 408, 352, 315, 4203,
16887 : 473, 158, 304, 4069, 172, 38, 436, 485, 174, 536,
16888 : 3988, 400, 4078, 158, 536, 158, 158, 353, 304, 493,
16889 : 4037, 473, 293, 38, 293, 310, 4092, 27, 310, 244,
16890 : 4096, 4097, 4098, 193, 304, 193, 5071, 4103, 172, 38,
16891 : 4106, 173, 244, 4109, 400, 310, 172, 5650, 293, 4115,
16892 : 202, 4117, 202, 202, 4120, 202, 202, 540, 62, 4125,
16893 : 4126, 4127, 4128, 538, 59, 4131, 4132, 4133, 4134, 4135,
16894 : 4136, 4137, 4138, 4139, 4140, 4902, 540, 497, 4144, 4145,
16895 : 4146, 540, 178, 540, 448, 536, 274, 4946, 4154, 310,
16896 : 540, 408, 493, 4159, 98, 4201, 302, 4163, 178, 514,
16897 : 316, 478, 537, 515, 376, 4171, 537, 536, 4174, 322,
16898 : 4176, 537, 524, 525, 526, 527, 528, 529, 530, 531,
16899 : 532, 135, 332, 537, 178, 513, 4192, 537, 292, 4195,
16900 : 4196, 540, 4959, 4960, 4200, 4201, 267, 490, 537, 4205,
16901 : 540, 4207, 4208, 540, 537, 537, 5755, 4406, 535, 540,
16902 : 4216, 4217, 4218, 537, 537, 4858, 537, 537, 162, 537,
16903 : 4211, 4212, 4213, 4214, 6189, 6190, 540, 1484, 6193, 448,
16904 : 4236, 4237, 4238, 4239, 4240, 4434, 4242, 4243, 537, 536,
16905 : 4246, 178, 187, 4228, 4250, 537, 23, 536, 4254, 4228,
16906 : 540, 28, 262, 471, 4260, 199, 479, 490, 515, 310,
16907 : 526, 536, 517, 536, 535, 59, 536, 524, 525, 526,
16908 : 527, 528, 529, 530, 531, 532, 537, 3099, 536, 516,
16909 : 310, 4287, 536, 310, 541, 313, 5053, 5054, 4228, 4228,
16910 : 158, 448, 215, 298, 448, 161, 4302, 4228, 4304, 158,
16911 : 448, 448, 79, 80, 293, 249, 536, 536, 207, 4917,
16912 : 4228, 423, 536, 209, 158, 403, 3099, 395, 158, 96,
16913 : 5869, 252, 395, 207, 161, 395, 310, 526, 448, 473,
16914 : 161, 390, 490, 254, 3952, 333, 333, 114, 470, 161,
16915 : 420, 5030, 5031, 448, 5033, 289, 448, 448, 264, 293,
16916 : 264, 264, 448, 4359, 4360, 4361, 390, 4363, 5091, 5283,
16917 : 4366, 138, 4368, 128, 448, 390, 390, 390, 293, 5784,
16918 : 3988, 448, 448, 448, 403, 152, 158, 47, 47, 448,
16919 : 448, 4387, 326, 327, 161, 448, 448, 448, 448, 225,
16920 : 225, 190, 537, 5317, 537, 535, 537, 174, 537, 314,
16921 : 537, 458, 540, 180, 3, 172, 48, 113, 537, 540,
16922 : 172, 536, 38, 5021, 537, 158, 448, 5184, 158, 526,
16923 : 5187, 5188, 172, 304, 368, 4624, 190, 5976, 372, 3251,
16924 : 207, 473, 3254, 377, 3256, 3257, 4442, 536, 473, 158,
16925 : 5207, 390, 386, 390, 390, 540, 156, 390, 390, 400,
16926 : 225, 395, 156, 225, 225, 225, 225, 225, 147, 403,
16927 : 466, 310, 225, 229, 225, 225, 466, 310, 245, 534,
16928 : 59, 310, 416, 537, 13, 322, 310, 484, 178, 537,
16929 : 292, 425, 535, 537, 4448, 540, 430, 537, 537, 537,
16930 : 267, 4497, 537, 6109, 540, 4459, 537, 537, 536, 228,
16931 : 537, 320, 228, 536, 437, 536, 317, 59, 191, 445,
16932 : 536, 5119, 376, 478, 90, 172, 38, 458, 448, 244,
16933 : 473, 473, 215, 59, 4530, 158, 5322, 438, 86, 420,
16934 : 182, 458, 395, 161, 390, 473, 448, 390, 4544, 448,
16935 : 4546, 448, 448, 448, 488, 537, 537, 537, 4554, 536,
16936 : 368, 536, 59, 438, 4560, 479, 172, 310, 78, 493,
16937 : 158, 5687, 113, 5689, 5440, 4571, 458, 537, 536, 225,
16938 : 225, 225, 349, 350, 225, 241, 353, 536, 210, 536,
16939 : 4586, 448, 310, 4201, 540, 4591, 4592, 497, 38, 537,
16940 : 331, 307, 310, 4599, 72, 6144, 3, 458, 44, 400,
16941 : 78, 184, 4608, 380, 185, 113, 383, 536, 540, 537,
16942 : 4228, 5300, 4618, 390, 92, 4250, 448, 536, 540, 4254,
16943 : 397, 178, 5311, 400, 4630, 4631, 145, 242, 225, 537,
16944 : 242, 298, 4250, 537, 10, 4641, 4254, 13, 298, 537,
16945 : 298, 178, 120, 420, 122, 298, 4652, 4653, 537, 537,
16946 : 3472, 428, 331, 3475, 59, 537, 536, 540, 435, 4858,
16947 : 322, 438, 491, 491, 4670, 5469, 443, 537, 537, 45,
16948 : 148, 492, 228, 304, 536, 540, 52, 493, 5835, 536,
16949 : 526, 458, 5698, 303, 458, 178, 445, 493, 209, 3472,
16950 : 448, 78, 3475, 196, 196, 38, 298, 38, 540, 4617,
16951 : 526, 3523, 78, 298, 182, 4711, 59, 438, 485, 3531,
16952 : 6259, 448, 72, 540, 448, 540, 6265, 158, 448, 62,
16953 : 5363, 4727, 161, 537, 4359, 448, 225, 536, 5885, 6,
16954 : 127, 180, 120, 211, 38, 289, 202, 304, 536, 4745,
16955 : 3523, 0, 38, 293, 174, 304, 473, 493, 3531, 59,
16956 : 400, 400, 84, 438, 493, 98, 38, 178, 5401, 172,
16957 : 536, 310, 540, 363, 212, 313, 223, 4773, 178, 478,
16958 : 4776, 417, 59, 38, 51, 5932, 5933, 92, 4784, 4785,
16959 : 5565, 537, 5390, 537, 536, 4791, 4792, 393, 537, 537,
16960 : 4796, 81, 536, 310, 5579, 4801, 136, 203, 4804, 4805,
16961 : 536, 448, 537, 536, 322, 4811, 38, 158, 158, 4815,
16962 : 4816, 4817, 4818, 2070, 2071, 293, 5601, 537, 448, 162,
16963 : 298, 197, 537, 5608, 537, 537, 202, 4833, 2085, 536,
16964 : 4836, 536, 38, 536, 4840, 536, 172, 2094, 536, 4845,
16965 : 99, 6390, 4848, 4849, 536, 4851, 536, 4853, 209, 473,
16966 : 4856, 298, 4858, 265, 536, 536, 199, 537, 400, 158,
16967 : 113, 38, 537, 314, 178, 4871, 458, 172, 346, 4875,
16968 : 5637, 4877, 415, 537, 415, 540, 38, 253, 0, 10,
16969 : 206, 4893, 13, 310, 362, 112, 38, 4893, 478, 537,
16970 : 35, 438, 537, 536, 153, 536, 536, 5682, 5683, 5698,
16971 : 536, 244, 540, 540, 362, 473, 249, 166, 5924, 5598,
16972 : 195, 536, 172, 172, 45, 4921, 4922, 536, 207, 178,
16973 : 197, 52, 438, 537, 310, 184, 5693, 6, 187, 206,
16974 : 207, 4937, 191, 5809, 165, 497, 312, 214, 72, 216,
16975 : 217, 386, 536, 386, 313, 6102, 72, 78, 539, 136,
16976 : 293, 4869, 4870, 230, 477, 493, 4591, 4592, 493, 141,
16977 : 489, 150, 221, 310, 537, 5941, 478, 537, 169, 5845,
16978 : 169, 540, 536, 4591, 332, 536, 4940, 99, 38, 403,
16979 : 266, 444, 444, 178, 327, 438, 298, 4951, 466, 310,
16980 : 310, 536, 400, 10, 438, 254, 13, 5003, 38, 4617,
16981 : 38, 203, 5691, 536, 5010, 313, 313, 180, 180, 536,
16982 : 157, 497, 497, 355, 385, 154, 355, 59, 59, 81,
16983 : 151, 369, 5684, 317, 6181, 6182, 5032, 38, 45, 372,
16984 : 59, 153, 408, 537, 377, 52, 5698, 59, 536, 448,
16985 : 5807, 5047, 125, 386, 166, 5921, 471, 306, 537, 6,
16986 : 172, 310, 395, 536, 400, 141, 178, 316, 310, 497,
16987 : 403, 78, 184, 497, 6221, 187, 197, 310, 5853, 191,
16988 : 5855, 202, 5078, 416, 35, 298, 537, 536, 294, 403,
16989 : 536, 294, 425, 24, 536, 385, 540, 430, 389, 5095,
16990 : 310, 389, 385, 318, 81, 479, 5102, 178, 540, 221,
16991 : 536, 536, 150, 448, 426, 5111, 10, 426, 451, 13,
16992 : 478, 540, 157, 415, 537, 6, 120, 376, 415, 317,
16993 : 5126, 493, 253, 479, 334, 180, 493, 180, 81, 473,
16994 : 932, 5518, 254, 5139, 151, 5141, 537, 536, 536, 515,
16995 : 478, 45, 537, 536, 1019, 488, 1018, 3435, 52, 492,
16996 : 2974, 527, 528, 529, 530, 531, 532, 972, 1715, 2883,
16997 : 3650, 5167, 1410, 4405, 5363, 4380, 6093, 3001, 3055, 3869,
16998 : 5443, 5921, 5178, 6233, 78, 4571, 435, 5492, 4378, 4378,
16999 : 197, 312, 5080, 5468, 306, 202, 3637, 3575, 310, 5716,
17000 : 5389, 4934, 5401, 6321, 316, 6222, 5362, 6322, 4833, 5951,
17001 : 6259, 5950, 5401, 6113, 3643, 4840, 465, 5126, 5400, 4592,
17002 : 4845, 4618, 4603, 4848, 4561, 5894, 3069, 6233, 3069, 4400,
17003 : 5138, 3675, 4840, 3917, 1014, 5231, 4587, 4845, 5120, 5475,
17004 : 4848, 490, 3961, 492, 493, 5241, 253, 4654, 5244, 6347,
17005 : 5796, 5247, 5248, 5249, 5887, 6483, 6458, 151, 5459, 3877,
17006 : 4626, 4869, 4870, 5445, 376, 514, 6125, 5403, 5669, 5406,
17007 : 18, 28, 5924, 667, 1236, 5635, 5272, 5273, 4026, 4682,
17008 : 5276, 4685, 6343, 1875, 3085, 534, 4629, 408, 537, 538,
17009 : 539, 3553, 2740, 5518, 3972, 1919, 5784, 5293, 719, 1916,
17010 : 3809, 5297, 752, 197, 4433, 312, 3000, 5303, 202, 1930,
17011 : 3726, 5307, 6151, 6394, 4658, 5311, 861, 6317, 5314, 1529,
17012 : 5316, 4660, 4871, 435, 6059, 3031, 5322, 1828, 4302, 2682,
17013 : 5630, 5633, 5328, 1426, 40, 5331, 40, 4727, 1954, 3494,
17014 : 3509, 1387, 6052, 2692, 5857, 3475, 1487, 4256, 4238, 3472,
17015 : 5308, 4303, 5587, 465, 5586, 3472, 6371, 6046, 5844, 253,
17016 : 1486, 6194, 3472, 6410, 1489, 5563, 5362, 5363, 5364, 4163,
17017 : 5366, 2590, 5368, 5858, 1443, 3412, 38, 5859, 490, 2591,
17018 : 492, 493, 2087, 3394, 3030, 3267, 3392, 5808, 6412, 3382,
17019 : 3303, 4095, 2596, 2680, 515, -1, 920, -1, 665, -1,
17020 : 62, 408, 514, -1, 5400, 5401, 527, 528, 529, 530,
17021 : 531, 532, -1, -1, -1, 6437, -1, 684, 312, -1,
17022 : -1, -1, 534, 690, -1, 537, 538, 539, -1, -1,
17023 : -1, -1, -1, -1, -1, 702, 98, -1, 4250, -1,
17024 : -1, 6093, 4254, -1, -1, 2692, -1, -1, -1, 5445,
17025 : -1, 718, 5320, -1, -1, -1, 723, -1, 6215, -1,
17026 : -1, 728, -1, 5459, -1, 732, 733, -1, 5464, -1,
17027 : -1, -1, 739, 5469, 741, 742, -1, 4250, -1, -1,
17028 : -1, 4254, 5478, -1, -1, -1, -1, 754, 755, -1,
17029 : -1, -1, 5488, -1, -1, -1, 5492, -1, 765, 5495,
17030 : 162, 5126, -1, -1, -1, -1, -1, -1, 515, -1,
17031 : 5506, 5507, 5508, -1, 408, -1, -1, -1, -1, -1,
17032 : 527, 528, 529, 530, 531, 532, -1, -1, -1, 5518,
17033 : 5138, 6397, 5518, 5518, 5518, 5518, 5518, 199, -1, 5518,
17034 : -1, 5518, -1, 5518, 5518, 6459, 5542, 4359, 5518, 5518,
17035 : -1, 818, 6327, -1, -1, 5518, -1, -1, -1, 5518,
17036 : 5507, 5518, -1, 5559, -1, 5473, -1, 5563, -1, 5565,
17037 : -1, -1, 5608, 840, 841, -1, -1, -1, -1, 846,
17038 : -1, 6233, 244, 5579, -1, -1, 4359, 249, 5518, 5518,
17039 : -1, 5587, 6458, -1, 5590, -1, 5504, 5518, 5594, -1,
17040 : -1, 6376, -1, -1, 871, 5601, 873, 6330, 6331, -1,
17041 : 5518, -1, 5608, -1, -1, -1, -1, 6483, -1, -1,
17042 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
17043 : 897, 293, -1, 527, 528, 529, 530, 531, 532, -1,
17044 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17045 : -1, -1, -1, 920, -1, 5651, -1, -1, -1, -1,
17046 : -1, -1, -1, 25, 5660, 327, 933, -1, -1, 31,
17047 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17048 : 5676, -1, 5307, -1, 46, -1, 5682, 5683, -1, -1,
17049 : -1, 5687, 5688, 5689, 5690, -1, -1, -1, 5887, 5307,
17050 : -1, -1, -1, 5328, -1, -1, -1, -1, -1, -1,
17051 : 372, -1, -1, -1, 76, 377, -1, -1, -1, -1,
17052 : -1, -1, 5718, -1, 386, -1, -1, -1, -1, -1,
17053 : -1, 5727, -1, 395, -1, -1, -1, 5362, -1, -1,
17054 : -1, 403, -1, -1, -1, -1, -1, -1, -1, -1,
17055 : -1, -1, -1, -1, 416, -1, 5752, -1, -1, 5755,
17056 : -1, -1, -1, 425, -1, -1, -1, -1, 430, 131,
17057 : -1, 133, -1, -1, 1041, 1042, 1043, -1, 140, 4591,
17058 : 4592, -1, 144, 1050, 5780, -1, -1, -1, 1055, 451,
17059 : -1, -1, -1, 1060, 1061, -1, -1, -1, 1065, -1,
17060 : 1067, -1, -1, -1, 1071, -1, -1, -1, -1, -1,
17061 : -1, 173, 5808, -1, -1, -1, -1, -1, 4591, 4592,
17062 : 1087, -1, -1, -1, 5820, -1, 488, -1, -1, -1,
17063 : 492, -1, -1, 5829, 5830, 5831, -1, -1, -1, 5835,
17064 : -1, -1, -1, -1, -1, 5841, -1, 209, 5844, 5757,
17065 : -1, -1, -1, -1, -1, -1, -1, 5853, -1, 5855,
17066 : -1, 5857, 5858, -1, 1131, 5473, 1133, 1134, -1, -1,
17067 : -1, -1, -1, 5869, -1, -1, -1, -1, -1, -1,
17068 : 5876, -1, -1, 5508, -1, -1, -1, -1, -1, 5885,
17069 : -1, 5887, -1, -1, -1, 5891, 5504, -1, -1, -1,
17070 : 5896, 6083, -1, -1, -1, -1, -1, 1174, -1, -1,
17071 : 5518, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17072 : -1, -1, -1, -1, -1, -1, -1, 289, -1, -1,
17073 : -1, 293, -1, -1, -1, 1202, 5932, 5933, -1, -1,
17074 : -1, -1, 304, -1, -1, -1, -1, -1, -1, -1,
17075 : -1, -1, 314, -1, -1, -1, -1, -1, 5866, -1,
17076 : -1, -1, 5587, -1, 326, -1, 5962, -1, 1235, -1,
17077 : 6152, 6153, -1, -1, -1, -1, -1, 1244, -1, 1246,
17078 : 5976, 25, -1, -1, -1, -1, -1, 31, -1, -1,
17079 : -1, -1, -1, -1, -1, -1, 1263, -1, -1, -1,
17080 : 5608, 1268, 46, -1, -1, -1, 368, -1, -1, 371,
17081 : 372, -1, -1, 1280, -1, -1, -1, -1, -1, -1,
17082 : -1, 4833, -1, -1, -1, -1, -1, -1, 4840, -1,
17083 : -1, 6027, 76, 4845, -1, -1, 4848, 4849, -1, -1,
17084 : -1, 403, -1, -1, -1, -1, 6042, -1, -1, -1,
17085 : 6046, -1, -1, -1, -1, 1322, 6052, -1, -1, -1,
17086 : 4833, -1, -1, -1, 6060, -1, -1, 4840, 6064, -1,
17087 : -1, -1, 4845, 3320, 3321, 4848, -1, -1, 3325, -1,
17088 : -1, -1, -1, -1, 1351, 1352, 1353, 6083, 1355, 133,
17089 : -1, -1, -1, -1, -1, -1, 140, -1, -1, 6095,
17090 : 144, -1, -1, -1, -1, -1, 6102, -1, -1, 1376,
17091 : -1, -1, -1, -1, 476, -1, -1, -1, -1, 3366,
17092 : 3367, -1, -1, -1, -1, -1, -1, -1, -1, 173,
17093 : 5755, 6127, -1, -1, 1401, -1, -1, -1, 6134, -1,
17094 : -1, -1, 1409, 1410, -1, -1, -1, 5755, 6144, 5757,
17095 : -1, -1, -1, -1, -1, -1, 6152, 6153, 6154, -1,
17096 : -1, -1, 6158, -1, -1, 209, 1433, -1, -1, -1,
17097 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17098 : -1, -1, 6151, -1, -1, 6181, 6182, 6183, -1, -1,
17099 : -1, -1, -1, 6189, 6190, 1462, -1, 6193, -1, -1,
17100 : 6196, -1, -1, -1, -1, -1, 10, -1, -1, 13,
17101 : -1, -1, 1479, 17, 18, 19, 1483, 1484, 6126, -1,
17102 : -1, 6151, 6151, -1, -1, 6221, -1, -1, -1, -1,
17103 : 6151, 6227, 1499, 6269, -1, -1, -1, -1, 1505, -1,
17104 : -1, 45, -1, 6151, 5869, 289, -1, -1, 52, 293,
17105 : -1, -1, 62, -1, -1, -1, -1, -1, 5866, -1,
17106 : 304, -1, -1, 6259, 6260, 6261, -1, -1, -1, 6265,
17107 : 314, -1, -1, -1, 78, -1, -1, -1, -1, -1,
17108 : -1, -1, 326, 5095, -1, -1, -1, 6283, 98, 6471,
17109 : 6472, -1, -1, -1, 6290, -1, -1, -1, -1, -1,
17110 : 6269, -1, 6298, -1, -1, 1572, -1, -1, -1, -1,
17111 : 6306, -1, -1, -1, 5126, -1, 6312, -1, -1, 22,
17112 : -1, 6317, -1, -1, 368, 28, -1, 371, 372, -1,
17113 : -1, 6327, -1, -1, -1, -1, -1, -1, -1, 6269,
17114 : 6269, -1, -1, -1, -1, -1, 1613, -1, 6269, -1,
17115 : -1, 5976, 162, 5126, -1, 10, -1, -1, 13, 403,
17116 : -1, 6269, 17, 18, 19, -1, -1, 6363, 6364, 6365,
17117 : 6366, -1, -1, -1, -1, 6371, -1, -1, -1, 1646,
17118 : 6376, -1, -1, -1, -1, -1, -1, -1, -1, 199,
17119 : 45, 6387, -1, 197, 6390, -1, -1, 52, 202, -1,
17120 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17121 : -1, -1, -1, -1, 6410, -1, -1, -1, -1, -1,
17122 : -1, 225, 226, 78, -1, 6394, -1, -1, -1, -1,
17123 : -1, -1, 476, -1, -1, -1, -1, -1, -1, 249,
17124 : -1, 6437, 6438, -1, -1, -1, 1713, -1, -1, 253,
17125 : -1, -1, -1, -1, -1, -1, -1, -1, 6454, -1,
17126 : 0, 1728, 1729, 1730, 6394, 6394, -1, -1, -1, -1,
17127 : -1, -1, -1, 6394, -1, 6471, 6472, -1, -1, 6475,
17128 : -1, 6477, -1, 293, -1, -1, 6394, -1, -1, -1,
17129 : -1, -1, 296, -1, -1, 5307, -1, -1, 6494, -1,
17130 : -1, -1, -1, -1, -1, -1, -1, -1, 312, -1,
17131 : -1, -1, -1, -1, -1, -1, 5328, 327, 6126, 6144,
17132 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17133 : -1, 207, -1, -1, 5307, -1, -1, -1, -1, -1,
17134 : 216, -1, 197, 6151, -1, -1, -1, 202, -1, -1,
17135 : 5362, -1, -1, -1, 230, 5328, -1, -1, -1, 99,
17136 : -1, 1828, 372, -1, 374, -1, -1, 377, -1, -1,
17137 : 225, 226, -1, 1840, -1, -1, 386, -1, -1, -1,
17138 : -1, -1, 17, -1, 1851, 395, -1, -1, 5400, 5362,
17139 : -1, 26, -1, 403, -1, -1, 1863, -1, 253, -1,
17140 : 1867, -1, -1, -1, 408, -1, 416, -1, -1, -1,
17141 : -1, -1, -1, 153, -1, 425, -1, -1, -1, 1886,
17142 : 430, -1, -1, -1, -1, -1, 166, 1894, -1, -1,
17143 : -1, -1, 172, 5445, 6259, 1902, -1, -1, 178, -1,
17144 : 6265, 296, -1, -1, 184, -1, -1, 187, -1, -1,
17145 : -1, 191, -1, -1, 1921, -1, -1, 312, -1, -1,
17146 : -1, 6269, -1, 1930, -1, -1, 1933, -1, -1, 1936,
17147 : -1, -1, 1939, 1940, -1, -1, 1943, 1944, 488, 1946,
17148 : 1947, 221, -1, -1, -1, -1, -1, -1, -1, -1,
17149 : -1, 1958, -1, 1960, 1961, -1, 5508, -1, -1, -1,
17150 : -1, -1, -1, 1970, 1971, -1, 1973, 1974, -1, -1,
17151 : -1, 515, -1, -1, 254, -1, -1, -1, -1, -1,
17152 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
17153 : -1, -1, -1, -1, -1, 5508, -1, -1, -1, -1,
17154 : -1, -1, -1, -1, 2011, -1, -1, -1, 2015, 2016,
17155 : -1, -1, -1, 408, -1, -1, -1, -1, -1, -1,
17156 : -1, -1, -1, -1, -1, 6390, 306, -1, -1, -1,
17157 : 310, -1, -1, -1, -1, 5587, 316, -1, -1, -1,
17158 : -1, -1, -1, 2050, -1, 2052, 6394, -1, -1, -1,
17159 : 2057, 2058, -1, -1, -1, -1, -1, 2064, 2065, 2066,
17160 : 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074, 2075, 2076,
17161 : -1, -1, -1, 2080, 5587, 2082, -1, 2084, 2085, 2086,
17162 : 2087, 2088, 2089, -1, -1, 2092, -1, 2094, 2095, -1,
17163 : -1, 2098, -1, -1, -1, -1, 376, -1, -1, -1,
17164 : -1, -1, -1, -1, -1, 2112, 2113, 2114, 2115, -1,
17165 : -1, -1, 25, -1, -1, -1, 4103, -1, 31, -1,
17166 : 515, -1, -1, -1, 2131, -1, 2133, -1, -1, 524,
17167 : 525, 526, 527, 528, 529, 530, 531, 532, 4125, 4126,
17168 : 4127, 4128, -1, -1, 4131, 4132, 4133, 4134, 4135, 4136,
17169 : 4137, 4138, 4139, 4140, 38, 435, -1, -1, -1, -1,
17170 : -1, -1, -1, 76, -1, -1, -1, -1, -1, -1,
17171 : -1, -1, 4159, -1, -1, 5727, 60, -1, -1, -1,
17172 : -1, -1, -1, -1, -1, 465, -1, -1, -1, -1,
17173 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17174 : -1, -1, 86, 5755, -1, -1, -1, -1, 4195, 4196,
17175 : 490, -1, 492, 493, -1, -1, -1, -1, -1, -1,
17176 : 133, -1, -1, -1, -1, -1, -1, 140, 112, 113,
17177 : -1, 144, -1, -1, 514, -1, 120, -1, -1, -1,
17178 : -1, -1, 5755, -1, -1, -1, -1, -1, -1, -1,
17179 : -1, -1, -1, -1, 534, 4242, -1, 537, 538, 539,
17180 : 173, -1, -1, -1, -1, -1, -1, -1, 684, -1,
17181 : -1, -1, 2279, -1, 690, -1, 160, -1, -1, -1,
17182 : -1, 10, -1, -1, 13, -1, 702, -1, 17, 18,
17183 : 19, -1, -1, -1, -1, -1, 209, -1, 182, -1,
17184 : -1, -1, -1, -1, -1, -1, 35, -1, -1, -1,
17185 : -1, -1, -1, -1, -1, -1, 45, 5869, -1, -1,
17186 : -1, 205, -1, 52, -1, -1, 2333, -1, -1, -1,
17187 : -1, 25, -1, -1, -1, -1, 779, 31, 781, -1,
17188 : 783, -1, -1, -1, -1, -1, 789, 790, 791, 78,
17189 : -1, -1, 46, -1, -1, -1, 5869, -1, -1, -1,
17190 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17191 : -1, -1, -1, -1, -1, -1, 289, -1, -1, 263,
17192 : 293, -1, 76, 2390, 268, -1, -1, -1, -1, 273,
17193 : -1, 304, -1, -1, -1, -1, -1, -1, -1, -1,
17194 : -1, 314, -1, -1, -1, 289, -1, -1, -1, 293,
17195 : -1, -1, -1, 326, -1, -1, -1, -1, -1, -1,
17196 : -1, -1, -1, -1, 5976, -1, -1, -1, -1, -1,
17197 : -1, -1, -1, -1, -1, -1, -1, 131, -1, 133,
17198 : -1, 325, -1, -1, -1, -1, 140, -1, -1, -1,
17199 : 144, -1, -1, -1, -1, 368, -1, -1, 371, 372,
17200 : -1, -1, -1, 5976, -1, 51, -1, -1, 197, -1,
17201 : -1, -1, -1, 202, -1, -1, -1, -1, -1, 173,
17202 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 373,
17203 : 403, -1, -1, 668, -1, -1, 225, 226, -1, -1,
17204 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17205 : -1, -1, -1, 397, -1, 209, -1, -1, -1, -1,
17206 : -1, -1, -1, -1, 253, -1, -1, -1, -1, -1,
17207 : -1, 6083, -1, -1, 418, -1, 420, 980, -1, 423,
17208 : -1, -1, -1, 718, 719, -1, -1, -1, -1, -1,
17209 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4546,
17210 : -1, -1, -1, 476, -1, -1, -1, 296, 2575, 2576,
17211 : 2577, 2578, 2579, 2580, 2581, 2582, 2583, -1, 2585, -1,
17212 : -1, -1, -1, 312, -1, 469, 315, -1, -1, 2596,
17213 : -1, 2598, 6144, -1, -1, 289, -1, -1, -1, 293,
17214 : 6152, 6153, -1, -1, -1, -1, -1, 1050, -1, -1,
17215 : 304, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17216 : 314, -1, -1, -1, -1, -1, -1, -1, -1, 2636,
17217 : -1, 6144, 326, 2640, -1, -1, 2643, -1, 2645, 814,
17218 : -1, 2648, -1, -1, -1, 2652, -1, -1, -1, -1,
17219 : -1, -1, 536, -1, -1, -1, -1, -1, -1, 834,
17220 : -1, -1, -1, -1, -1, -1, 2673, 842, 2675, -1,
17221 : 845, 846, 847, -1, 368, -1, -1, 371, 372, 408,
17222 : -1, -1, -1, -1, -1, 2692, -1, -1, -1, -1,
17223 : -1, -1, -1, -1, 2701, 2702, -1, -1, -1, -1,
17224 : -1, -1, -1, -1, -1, -1, -1, 6259, -1, 403,
17225 : -1, -1, -1, 6265, -1, -1, -1, -1, -1, -1,
17226 : -1, 2728, -1, -1, -1, -1, -1, -1, 2735, -1,
17227 : -1, 6283, 2739, 2740, -1, -1, -1, -1, -1, 2746,
17228 : -1, -1, -1, 2750, -1, -1, 6259, 2754, -1, -1,
17229 : -1, -1, 6265, -1, -1, -1, 2763, -1, -1, -1,
17230 : -1, -1, -1, -1, -1, -1, 25, -1, -1, -1,
17231 : -1, 2778, 31, -1, 2781, -1, -1, -1, -1, -1,
17232 : -1, -1, 476, -1, -1, 2792, 515, 2794, 2795, 4776,
17233 : 2797, 2798, -1, 2800, -1, 524, 525, 526, 527, 528,
17234 : 529, 530, 531, 532, -1, 2812, -1, -1, 537, -1,
17235 : -1, 540, -1, 6365, -1, -1, -1, 76, -1, -1,
17236 : -1, -1, -1, -1, -1, 2832, 2833, -1, -1, -1,
17237 : -1, -1, -1, -1, -1, -1, -1, -1, 6390, -1,
17238 : -1, 2848, -1, -1, -1, -1, -1, -1, -1, -1,
17239 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17240 : -1, -1, -1, 2870, 2871, -1, -1, 2874, -1, -1,
17241 : -1, -1, -1, -1, 133, 1050, -1, 6390, -1, -1,
17242 : -1, 140, -1, -1, -1, 144, 6438, -1, -1, -1,
17243 : -1, 2898, -1, 2900, -1, -1, -1, 2904, -1, -1,
17244 : -1, -1, 6454, -1, -1, -1, -1, -1, -1, -1,
17245 : -1, 2918, -1, -1, 173, -1, -1, -1, 2925, 6471,
17246 : 6472, 2928, -1, -1, 25, -1, -1, 2934, -1, -1,
17247 : 31, -1, -1, -1, 10, -1, -1, 13, -1, -1,
17248 : -1, 17, 18, 19, -1, -1, -1, 2954, -1, -1,
17249 : 209, -1, -1, 2960, -1, -1, -1, -1, -1, 35,
17250 : 2967, 1404, -1, -1, -1, -1, 1409, 1410, -1, 45,
17251 : -1, -1, -1, -1, 2981, 76, 52, -1, -1, -1,
17252 : -1, -1, -1, -1, -1, -1, -1, -1, 2995, -1,
17253 : -1, -1, -1, 3000, 1437, -1, -1, -1, -1, 3006,
17254 : -1, -1, 78, 1446, -1, 1448, -1, -1, -1, 1452,
17255 : -1, -1, -1, -1, -1, -1, 1459, 3024, 3025, 3026,
17256 : -1, -1, -1, 3030, -1, -1, -1, -1, -1, -1,
17257 : 289, -1, 133, -1, 293, -1, -1, -1, -1, 140,
17258 : -1, -1, -1, 144, -1, 304, -1, -1, -1, -1,
17259 : 3057, 3058, -1, -1, -1, 314, -1, -1, -1, 3066,
17260 : -1, -1, -1, -1, -1, -1, 1241, 326, -1, -1,
17261 : -1, -1, 173, -1, -1, -1, -1, -1, -1, -1,
17262 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17263 : -1, -1, 3099, 1268, -1, -1, -1, -1, -1, -1,
17264 : -1, -1, -1, -1, -1, -1, -1, 1550, 209, 368,
17265 : -1, -1, 371, 372, -1, -1, -1, 1560, -1, -1,
17266 : -1, 197, -1, -1, 3131, -1, 202, -1, 3135, -1,
17267 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17268 : -1, -1, 728, -1, 403, -1, -1, -1, -1, 225,
17269 : 226, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17270 : -1, 1604, 1605, -1, -1, -1, -1, -1, 754, -1,
17271 : -1, -1, -1, -1, -1, -1, -1, 253, -1, -1,
17272 : -1, -1, 1357, -1, -1, -1, -1, -1, 289, -1,
17273 : -1, 1366, 293, -1, -1, -1, -1, -1, -1, -1,
17274 : -1, -1, -1, 304, 1647, -1, -1, 1382, 1651, 1652,
17275 : -1, -1, -1, 314, 3221, -1, 3223, 476, -1, -1,
17276 : 296, -1, -1, -1, -1, 326, 1401, -1, -1, 1404,
17277 : 1405, 3238, -1, 3240, 1409, 1410, 312, -1, -1, 315,
17278 : 3247, -1, -1, -1, 3251, -1, 3253, 3254, -1, 3256,
17279 : 3257, 3258, -1, -1, -1, -1, -1, 5244, -1, 3266,
17280 : -1, -1, -1, -1, 3271, -1, -1, 368, -1, -1,
17281 : 371, 372, -1, -1, -1, -1, -1, -1, -1, -1,
17282 : -1, 3288, -1, -1, -1, -1, -1, -1, -1, -1,
17283 : -1, -1, -1, -1, -1, -1, -1, 1713, -1, -1,
17284 : -1, -1, 403, -1, -1, -1, -1, -1, -1, -1,
17285 : 5297, 897, -1, 3320, 3321, 3322, -1, -1, 3325, -1,
17286 : -1, -1, -1, -1, -1, -1, 3333, 3334, 3335, 3336,
17287 : -1, -1, 408, -1, -1, -1, -1, 3344, -1, -1,
17288 : -1, -1, 3349, 3350, -1, 3352, -1, 3354, -1, -1,
17289 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 3366,
17290 : 3367, 25, -1, 3370, -1, -1, -1, 31, -1, -1,
17291 : -1, -1, -1, -1, -1, 476, -1, -1, -1, -1,
17292 : -1, 25, -1, -1, 3391, -1, 3393, 31, 3395, -1,
17293 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17294 : -1, -1, 1845, -1, -1, -1, -1, 3414, -1, -1,
17295 : -1, 25, 76, -1, -1, -1, -1, 31, -1, -1,
17296 : -1, -1, -1, -1, -1, -1, -1, -1, 3435, -1,
17297 : -1, -1, 76, -1, -1, -1, -1, -1, -1, 515,
17298 : -1, -1, -1, -1, -1, -1, -1, -1, 524, 525,
17299 : 526, 527, 528, 529, 530, 531, 532, -1, -1, -1,
17300 : -1, -1, 76, -1, 540, 3472, -1, -1, 3475, 133,
17301 : 1886, -1, -1, -1, 1060, -1, 140, -1, 1894, -1,
17302 : 144, 51, 3489, -1, -1, 1071, 1902, 3494, -1, 133,
17303 : -1, 1666, -1, -1, -1, -1, 140, -1, -1, 1674,
17304 : 144, 1087, 3509, -1, -1, -1, -1, -1, -1, 173,
17305 : -1, -1, -1, -1, -1, -1, 3523, -1, -1, 133,
17306 : -1, -1, -1, -1, 3531, -1, 140, -1, -1, 173,
17307 : 144, 1947, -1, -1, -1, -1, 3543, -1, -1, 3546,
17308 : 0, 3548, -1, -1, -1, 209, 3553, -1, -1, -1,
17309 : -1, -1, -1, -1, -1, -1, -1, -1, 1974, 173,
17310 : 20, 3568, 3569, -1, -1, 209, -1, 3574, -1, -1,
17311 : -1, 31, 5559, 33, 34, -1, -1, -1, -1, -1,
17312 : -1, -1, 3589, -1, -1, 3592, -1, -1, 3595, -1,
17313 : -1, 51, -1, -1, -1, 209, 3603, -1, -1, -1,
17314 : -1, 61, -1, 5590, -1, -1, -1, -1, -1, -1,
17315 : -1, -1, -1, 73, -1, 75, 76, 2060, 2061, -1,
17316 : -1, 3628, 82, -1, 84, 289, -1, 3634, -1, 293,
17317 : -1, -1, -1, -1, 2077, 2078, -1, 97, -1, 99,
17318 : 304, -1, -1, -1, -1, 289, -1, -1, -1, 293,
17319 : 314, -1, -1, -1, -1, -1, 116, -1, 1244, 119,
17320 : 304, -1, 326, -1, -1, 2108, -1, 3674, 3675, 3676,
17321 : 314, -1, -1, -1, 134, 289, 136, -1, -1, 293,
17322 : 140, -1, 326, -1, -1, -1, -1, 147, -1, -1,
17323 : 304, -1, 3699, -1, -1, -1, -1, 157, -1, 159,
17324 : 314, 3708, -1, 3710, 368, -1, 166, 371, 372, -1,
17325 : -1, 3718, 326, -1, 1889, -1, -1, -1, 1893, -1,
17326 : -1, -1, -1, -1, 184, -1, -1, 371, 372, -1,
17327 : -1, -1, -1, 3740, -1, -1, -1, -1, -1, 403,
17328 : -1, 201, -1, -1, -1, -1, -1, -1, -1, -1,
17329 : -1, -1, -1, -1, 368, -1, -1, 371, 372, 403,
17330 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17331 : -1, -1, 10, -1, -1, 13, -1, -1, -1, 17,
17332 : 18, 19, -1, -1, -1, -1, -1, -1, -1, 403,
17333 : -1, -1, -1, -1, -1, 255, 256, 35, -1, 3806,
17334 : -1, 261, -1, -1, -1, -1, -1, 45, -1, -1,
17335 : -1, -1, 476, -1, 52, -1, 276, -1, 1404, -1,
17336 : -1, -1, -1, 3830, -1, -1, -1, -1, 3835, -1,
17337 : -1, -1, 476, -1, 3841, 295, -1, -1, -1, -1,
17338 : 78, -1, -1, 3850, -1, -1, -1, -1, -1, -1,
17339 : -1, -1, -1, -1, -1, -1, -1, 5844, -1, -1,
17340 : -1, -1, 476, -1, -1, -1, -1, -1, -1, -1,
17341 : 3877, 3878, -1, -1, -1, -1, 3883, -1, 3885, -1,
17342 : -1, -1, -1, -1, 344, -1, -1, -1, 2063, -1,
17343 : -1, 3898, -1, 3900, -1, -1, -1, -1, -1, 359,
17344 : -1, -1, -1, -1, 364, 365, -1, 367, -1, -1,
17345 : -1, -1, 372, 3920, -1, -1, -1, -1, 378, 1505,
17346 : -1, 381, -1, -1, -1, -1, -1, -1, 388, -1,
17347 : -1, -1, -1, -1, -1, 395, 396, -1, -1, 3946,
17348 : -1, -1, -1, 403, -1, -1, -1, 407, -1, -1,
17349 : -1, -1, -1, -1, -1, -1, -1, -1, 418, 197,
17350 : 3967, 3968, -1, -1, 202, -1, -1, -1, -1, -1,
17351 : -1, -1, -1, -1, -1, 435, -1, -1, -1, -1,
17352 : -1, -1, -1, 3990, -1, -1, 1572, 225, 226, -1,
17353 : -1, -1, -1, -1, -1, -1, 456, -1, -1, -1,
17354 : -1, -1, 4009, -1, -1, -1, -1, -1, 468, -1,
17355 : -1, -1, -1, -1, 474, 253, -1, -1, -1, 479,
17356 : -1, 4028, -1, -1, -1, 4032, -1, 1613, -1, -1,
17357 : -1, -1, -1, 493, -1, -1, -1, -1, -1, -1,
17358 : -1, -1, -1, -1, -1, 51, 4053, -1, -1, -1,
17359 : -1, -1, -1, -1, -1, 6042, -1, 517, 296, -1,
17360 : 1646, -1, 4069, -1, -1, 4072, -1, -1, -1, -1,
17361 : -1, 4078, -1, -1, 312, -1, 536, 315, -1, 539,
17362 : -1, -1, -1, -1, -1, 4092, -1, -1, -1, 4096,
17363 : 4097, 4098, -1, -1, -1, -1, 4103, -1, -1, 4106,
17364 : -1, -1, 4109, -1, -1, -1, -1, -1, 4115, -1,
17365 : 4117, -1, -1, 4120, -1, -1, -1, 4124, 4125, 4126,
17366 : 4127, 4128, -1, -1, 4131, 4132, 4133, 4134, 4135, 4136,
17367 : 4137, 4138, 4139, 4140, -1, -1, -1, 4144, 4145, 4146,
17368 : -1, -1, 4149, -1, -1, -1, -1, 4154, -1, -1,
17369 : -1, -1, 4159, -1, 4161, -1, 4163, -1, 728, -1,
17370 : -1, -1, -1, -1, 4171, -1, -1, 4174, -1, 4176,
17371 : 408, -1, -1, -1, 10, -1, -1, 13, -1, -1,
17372 : -1, 17, 18, 19, 754, 4192, -1, -1, 4195, 4196,
17373 : -1, -1, -1, 4200, 4201, -1, -1, -1, 4205, 35,
17374 : 4207, -1, 6189, 6190, -1, -1, 6193, -1, -1, 45,
17375 : -1, -1, -1, -1, -1, -1, 52, -1, -1, -1,
17376 : 2663, 2664, -1, -1, -1, -1, 2669, -1, -1, 4236,
17377 : -1, -1, -1, -1, -1, 4242, -1, -1, -1, -1,
17378 : -1, -1, 78, 4250, -1, -1, -1, 4254, -1, -1,
17379 : -1, -1, -1, -1, 1840, -1, -1, -1, 2701, 2702,
17380 : -1, -1, -1, -1, -1, 1851, -1, -1, -1, -1,
17381 : -1, -1, -1, -1, -1, -1, -1, 515, -1, -1,
17382 : 4287, 1867, -1, -1, -1, -1, 524, 525, 526, 527,
17383 : 528, 529, 530, 531, 532, -1, -1, 4304, -1, -1,
17384 : -1, -1, 540, 4310, -1, -1, -1, -1, -1, -1,
17385 : -1, -1, 2728, -1, -1, -1, -1, -1, -1, -1,
17386 : 2763, -1, -1, -1, -1, -1, -1, 897, -1, 4336,
17387 : 2746, -1, -1, -1, 2750, 1921, -1, -1, 2754, -1,
17388 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17389 : 1936, -1, 4359, 1939, 1940, -1, -1, -1, -1, -1,
17390 : -1, 197, 2778, -1, -1, -1, 202, 10, -1, -1,
17391 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
17392 : -1, -1, -1, -1, 1970, 1971, -1, -1, -1, 225,
17393 : 226, -1, 35, 4400, -1, -1, 2812, -1, 4405, 4406,
17394 : 4407, -1, 45, -1, -1, -1, -1, -1, 2851, 52,
17395 : -1, -1, -1, -1, -1, -1, 2832, 253, -1, -1,
17396 : -1, -1, -1, -1, -1, -1, 4433, 4434, -1, -1,
17397 : -1, -1, -1, -1, -1, 78, -1, -1, -1, 10,
17398 : 2615, -1, 13, -1, -1, -1, 17, 18, 19, -1,
17399 : -1, -1, -1, -1, -1, 2871, -1, -1, -1, -1,
17400 : 296, -1, -1, -1, 35, -1, -1, -1, -1, -1,
17401 : -1, 1041, 4479, -1, 45, 4482, 312, -1, -1, 315,
17402 : -1, 52, 2898, -1, -1, -1, -1, -1, 2904, -1,
17403 : 1060, -1, -1, -1, -1, -1, -1, 2940, -1, -1,
17404 : -1, 1071, 2918, -1, -1, 2948, -1, 78, 2951, 2925,
17405 : -1, -1, 2928, -1, -1, -1, -1, 1087, 2934, -1,
17406 : 2963, -1, -1, -1, -1, -1, 2112, -1, -1, -1,
17407 : -1, -1, -1, -1, -1, -1, -1, -1, 2954, 4546,
17408 : -1, -1, -1, -1, 2960, -1, -1, -1, -1, -1,
17409 : -1, 2967, -1, -1, 197, -1, -1, -1, -1, 202,
17410 : -1, -1, -1, -1, -1, 2981, 4573, 4574, -1, -1,
17411 : 4577, -1, 408, -1, -1, -1, -1, 4584, -1, 2995,
17412 : -1, -1, 225, 226, 4591, 4592, -1, -1, 2763, -1,
17413 : 3006, -1, -1, -1, 4601, -1, -1, -1, -1, -1,
17414 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17415 : 253, -1, -1, -1, -1, -1, -1, 4624, -1, -1,
17416 : -1, -1, 4629, 4630, 4631, -1, 197, -1, -1, -1,
17417 : -1, 202, -1, -1, 4641, -1, -1, -1, -1, -1,
17418 : -1, -1, -1, -1, 2819, -1, -1, -1, -1, -1,
17419 : -1, -1, -1, 296, 225, 226, -1, -1, -1, -1,
17420 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
17421 : -1, -1, 315, -1, 1244, 4682, -1, -1, 4685, 515,
17422 : -1, -1, 253, -1, -1, -1, -1, -1, 524, 525,
17423 : 526, 527, 528, 529, 530, 531, 532, -1, -1, -1,
17424 : -1, 537, -1, -1, 4711, -1, 25, -1, -1, -1,
17425 : -1, -1, 31, -1, -1, -1, -1, -1, -1, -1,
17426 : 4727, -1, 728, -1, -1, 296, -1, -1, -1, -1,
17427 : -1, 2906, -1, -1, -1, -1, -1, -1, 4745, -1,
17428 : -1, 312, -1, -1, 315, -1, -1, -1, 754, -1,
17429 : -1, -1, -1, -1, -1, 2930, -1, 76, -1, -1,
17430 : -1, -1, -1, -1, -1, 408, 4773, 3210, -1, 4776,
17431 : -1, -1, -1, -1, -1, -1, -1, 4784, 4785, -1,
17432 : 4787, -1, -1, -1, 4791, 4792, -1, -1, -1, 4796,
17433 : -1, -1, -1, -1, 4801, -1, -1, 4804, 4805, -1,
17434 : -1, -1, -1, -1, 4811, 3221, -1, -1, -1, -1,
17435 : -1, -1, -1, -1, 133, -1, -1, -1, -1, 2994,
17436 : -1, 140, -1, 2998, 3240, 144, 4833, -1, -1, -1,
17437 : -1, 3247, -1, 4840, -1, -1, -1, 408, 4845, -1,
17438 : -1, 4848, 4849, -1, -1, -1, -1, -1, -1, 4856,
17439 : -1, -1, -1, -1, 173, -1, -1, -1, -1, -1,
17440 : 3035, -1, 3037, -1, 3039, 3040, -1, -1, 4875, 3044,
17441 : 3045, 3046, 515, 3048, 3049, 3050, -1, -1, -1, -1,
17442 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
17443 : 209, 897, -1, -1, 537, -1, -1, 4904, -1, -1,
17444 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17445 : 4917, -1, -1, -1, -1, 4922, -1, -1, -1, -1,
17446 : -1, -1, -1, -1, -1, -1, -1, 3102, -1, -1,
17447 : -1, -1, -1, -1, -1, 1505, -1, -1, -1, -1,
17448 : -1, -1, -1, -1, 515, -1, -1, -1, -1, -1,
17449 : -1, 4958, 3127, 524, 525, 526, 527, 528, 529, 530,
17450 : 531, 532, -1, -1, -1, -1, 537, -1, 4975, 10,
17451 : 289, -1, 13, 4980, 293, -1, 17, 18, 19, -1,
17452 : 4987, -1, -1, -1, -1, 304, -1, -1, -1, -1,
17453 : 3433, -1, 3435, -1, 35, 314, 5003, -1, -1, -1,
17454 : -1, -1, 1572, 5010, 45, -1, -1, 326, 3451, -1,
17455 : -1, 52, -1, -1, 5021, -1, -1, -1, -1, -1,
17456 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17457 : -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
17458 : -1, -1, -1, 1613, -1, 5052, -1, -1, -1, 368,
17459 : -1, -1, 371, 372, 1060, -1, -1, -1, 3501, 3502,
17460 : -1, -1, -1, -1, -1, 1071, -1, -1, -1, -1,
17461 : -1, 5078, -1, -1, -1, -1, 1646, -1, -1, -1,
17462 : -1, 1087, -1, -1, 403, -1, -1, -1, 5095, 62,
17463 : -1, -1, -1, 5100, -1, -1, -1, -1, -1, -1,
17464 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17465 : -1, -1, 5119, -1, -1, -1, -1, -1, -1, 5126,
17466 : -1, -1, -1, -1, -1, 98, -1, -1, -1, -1,
17467 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17468 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2735,
17469 : -1, -1, -1, 2739, 2740, -1, 197, 476, 1728, 1729,
17470 : 1730, 202, -1, -1, -1, 5172, -1, 5174, -1, -1,
17471 : -1, -1, -1, 3589, -1, -1, 23, -1, -1, -1,
17472 : -1, 28, -1, -1, 225, 226, -1, -1, -1, 162,
17473 : -1, -1, -1, -1, -1, -1, -1, -1, 5205, -1,
17474 : -1, -1, -1, -1, -1, -1, -1, -1, 2794, -1,
17475 : -1, -1, 253, -1, 2800, -1, -1, -1, -1, 66,
17476 : -1, -1, -1, -1, 5231, -1, 199, -1, -1, -1,
17477 : -1, -1, 79, -1, 5241, -1, -1, 5244, 1244, -1,
17478 : 5247, 5248, 5249, -1, -1, -1, -1, -1, -1, 96,
17479 : -1, -1, -1, -1, -1, 296, -1, -1, -1, -1,
17480 : 3435, -1, 2848, -1, -1, 5272, 5273, 114, -1, 5276,
17481 : 1840, 312, -1, -1, 315, -1, 249, -1, -1, -1,
17482 : -1, 1851, -1, 3699, -1, -1, 5293, -1, -1, -1,
17483 : 5297, 138, -1, -1, -1, -1, 5303, 1867, -1, -1,
17484 : 5307, -1, -1, -1, -1, 152, 5313, 5314, -1, -1,
17485 : -1, -1, -1, -1, 161, 5322, 289, -1, -1, -1,
17486 : 293, 5328, -1, -1, 5331, -1, -1, 174, -1, -1,
17487 : 5337, -1, 5339, 180, -1, -1, -1, -1, -1, -1,
17488 : 187, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17489 : -1, 1921, -1, 326, 327, 5362, -1, -1, -1, -1,
17490 : 207, -1, -1, -1, -1, -1, 1936, 408, -1, 1939,
17491 : 1940, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17492 : -1, -1, 5389, 5390, -1, -1, -1, -1, -1, -1,
17493 : -1, -1, -1, 5400, -1, 368, -1, -1, -1, 372,
17494 : 1970, 1971, -1, -1, 377, -1, -1, -1, -1, -1,
17495 : -1, -1, -1, 386, 3830, -1, -1, 3592, -1, -1,
17496 : 267, -1, 395, -1, -1, -1, -1, -1, -1, -1,
17497 : 403, -1, -1, 5440, -1, 3878, -1, -1, 5445, -1,
17498 : -1, -1, -1, 416, -1, -1, -1, -1, -1, -1,
17499 : -1, -1, 425, -1, -1, -1, -1, 430, 3901, -1,
17500 : -1, -1, -1, -1, -1, 312, -1, -1, -1, -1,
17501 : -1, -1, 3058, -1, 515, -1, -1, -1, 325, -1,
17502 : -1, -1, -1, 524, 525, 526, 527, 528, 529, 530,
17503 : 531, 532, 339, -1, -1, -1, 537, -1, -1, 1505,
17504 : 2070, 5508, 349, 350, 5511, 3680, 353, -1, -1, -1,
17505 : -1, -1, -1, -1, 2084, 488, -1, 2087, -1, -1,
17506 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17507 : -1, -1, -1, 380, -1, 5542, 383, -1, -1, -1,
17508 : 387, -1, 2112, 390, -1, 3131, -1, -1, -1, 3135,
17509 : 397, -1, 5559, 400, -1, -1, 5563, -1, 5565, -1,
17510 : -1, -1, -1, 3738, -1, -1, 1572, -1, -1, -1,
17511 : -1, -1, 5579, 420, -1, -1, -1, -1, -1, -1,
17512 : 5587, 428, -1, 5590, -1, -1, -1, -1, 435, -1,
17513 : -1, 438, -1, 4009, 5601, -1, 443, -1, -1, -1,
17514 : -1, 5608, -1, -1, 451, -1, 453, 1613, -1, -1,
17515 : -1, 458, 4028, -1, -1, 4058, 4032, -1, -1, -1,
17516 : -1, -1, -1, -1, -1, 472, -1, -1, -1, -1,
17517 : -1, -1, -1, 3808, -1, -1, -1, -1, 485, -1,
17518 : 1646, -1, -1, -1, 62, -1, -1, -1, -1, -1,
17519 : -1, -1, 3238, 5660, -1, -1, -1, -1, -1, 5666,
17520 : -1, -1, -1, -1, 5671, 5672, -1, 3253, -1, 5676,
17521 : -1, -1, 3258, -1, -1, 5682, 5683, 5684, -1, -1,
17522 : 98, 3856, -1, -1, -1, -1, -1, -1, -1, -1,
17523 : -1, 5698, 8, 3868, 3869, -1, -1, -1, 14, 15,
17524 : -1, -1, 3288, 3878, 20, -1, 22, -1, 3883, -1,
17525 : 3885, 5718, 28, -1, 30, -1, -1, -1, -1, -1,
17526 : 5727, -1, -1, 5730, -1, -1, -1, -1, -1, -1,
17527 : -1, -1, -1, 49, 50, -1, -1, -1, -1, -1,
17528 : -1, -1, -1, -1, 162, -1, -1, -1, 5755, -1,
17529 : -1, -1, -1, -1, -1, -1, 3931, -1, -1, -1,
17530 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17531 : -1, -1, -1, -1, -1, -1, -1, 5784, 5785, -1,
17532 : -1, 199, -1, -1, -1, -1, 10, -1, -1, 13,
17533 : -1, 3966, 3967, 17, 18, 19, -1, -1, -1, -1,
17534 : -1, 5808, 5809, -1, -1, -1, -1, -1, -1, -1,
17535 : -1, 35, -1, 5820, -1, -1, -1, -1, -1, -1,
17536 : -1, 45, 5829, 5830, 5831, -1, -1, -1, 52, -1,
17537 : -1, 249, -1, -1, 1840, -1, -1, 5844, 5845, -1,
17538 : -1, 5848, -1, -1, -1, 1851, 5853, -1, 5855, -1,
17539 : 5857, -1, -1, -1, 78, -1, -1, -1, -1, -1,
17540 : -1, 1867, 5869, -1, -1, -1, -1, -1, -1, 5876,
17541 : -1, 289, -1, -1, -1, 293, -1, -1, -1, -1,
17542 : -1, -1, -1, -1, 200, -1, -1, -1, 204, 5896,
17543 : -1, -1, -1, -1, -1, -1, 212, -1, -1, 215,
17544 : -1, -1, 218, 219, -1, 221, -1, 223, 326, 327,
17545 : 226, -1, 228, -1, 5921, 1921, -1, 5924, -1, -1,
17546 : 4336, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17547 : 1936, -1, -1, 1939, 1940, -1, -1, -1, -1, -1,
17548 : -1, 51, -1, -1, -1, -1, -1, -1, -1, -1,
17549 : 368, -1, -1, -1, 372, -1, -1, 3543, -1, 377,
17550 : 3546, -1, 3548, 4406, 1970, 1971, -1, 3553, 386, 5976,
17551 : -1, -1, -1, 197, -1, -1, -1, 395, 202, -1,
17552 : -1, -1, -1, -1, -1, 403, 51, -1, -1, -1,
17553 : -1, 4434, -1, -1, -1, 4170, -1, -1, 416, -1,
17554 : -1, 225, 226, -1, -1, 4448, -1, 425, -1, 3595,
17555 : -1, -1, 430, -1, -1, -1, 4459, 3603, -1, -1,
17556 : 6027, -1, -1, -1, -1, -1, -1, -1, 2598, 253,
17557 : -1, -1, -1, -1, -1, 6042, -1, -1, -1, -1,
17558 : -1, -1, 3628, -1, -1, 6052, -1, -1, -1, -1,
17559 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17560 : -1, -1, 6069, 4479, -1, -1, 4482, -1, -1, -1,
17561 : 488, -1, 296, -1, -1, -1, 6083, -1, -1, -1,
17562 : -1, -1, -1, -1, -1, -1, 6093, -1, 312, -1,
17563 : -1, 315, 4535, 4536, 10, -1, -1, 13, -1, -1,
17564 : -1, 17, 18, 19, -1, -1, 2112, -1, -1, -1,
17565 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
17566 : -1, -1, 3708, -1, 3710, -1, -1, 6134, -1, 45,
17567 : -1, -1, -1, -1, -1, -1, 52, 6144, -1, -1,
17568 : -1, -1, -1, -1, -1, 6152, 6153, -1, -1, -1,
17569 : -1, 6158, -1, -1, -1, -1, -1, -1, -1, -1,
17570 : -1, -1, 78, -1, -1, 2735, -1, -1, 4584, 2739,
17571 : 2740, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17572 : -1, 4624, 6189, 6190, 408, 4601, 6193, -1, -1, -1,
17573 : -1, -1, -1, -1, 10, -1, -1, 13, -1, -1,
17574 : -1, 17, 18, 19, 51, -1, -1, -1, -1, -1,
17575 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 35,
17576 : 3806, -1, -1, -1, 2794, -1, 6233, -1, -1, 45,
17577 : 2800, 4406, -1, -1, 4677, -1, 52, 51, -1, -1,
17578 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17579 : -1, -1, 6259, -1, -1, -1, -1, -1, 6265, 4434,
17580 : -1, -1, 78, -1, 3850, -1, 4682, -1, -1, -1,
17581 : -1, -1, -1, -1, 4449, -1, 6283, 4452, 2848, 4454,
17582 : -1, 197, -1, 6290, -1, -1, 202, -1, -1, -1,
17583 : -1, 515, 3878, -1, -1, -1, -1, -1, -1, 6306,
17584 : 524, 525, 526, 527, 528, 529, 530, 531, 532, 225,
17585 : 226, -1, -1, 537, -1, -1, -1, -1, -1, -1,
17586 : 6327, -1, -1, -1, -1, 4500, -1, -1, -1, -1,
17587 : -1, -1, -1, -1, -1, -1, -1, 253, -1, -1,
17588 : -1, 4516, -1, -1, -1, -1, 4521, -1, -1, -1,
17589 : 666, -1, -1, -1, -1, -1, -1, -1, 6365, -1,
17590 : 3946, 677, -1, 6370, -1, 681, -1, -1, -1, 6376,
17591 : -1, -1, 688, 689, -1, -1, 692, -1, 694, 695,
17592 : 296, 197, 3968, 6390, -1, -1, 202, -1, -1, -1,
17593 : 6397, -1, -1, 709, -1, -1, 312, -1, -1, 315,
17594 : -1, -1, -1, -1, 3990, -1, -1, -1, -1, 225,
17595 : 226, 727, -1, -1, -1, -1, -1, -1, -1, -1,
17596 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17597 : 6437, 6438, 748, -1, 750, -1, -1, 253, -1, -1,
17598 : -1, -1, -1, -1, 760, -1, 4621, 6454, -1, 4624,
17599 : -1, 6458, -1, -1, -1, -1, 3026, -1, -1, -1,
17600 : -1, -1, -1, -1, 6471, 6472, -1, -1, -1, -1,
17601 : -1, -1, -1, -1, -1, -1, 6483, 793, -1, -1,
17602 : 296, -1, -1, -1, -1, -1, 4072, -1, 3058, -1,
17603 : -1, -1, 408, -1, -1, -1, 312, 4940, -1, 315,
17604 : -1, -1, -1, 4946, -1, -1, -1, -1, 4951, -1,
17605 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17606 : -1, -1, -1, -1, -1, 4700, 4701, 4702, 4703, -1,
17607 : 4705, 4706, 4707, 4708, 4709, 4978, 4979, -1, 4124, -1,
17608 : 4983, 4984, -1, -1, -1, -1, -1, -1, -1, -1,
17609 : -1, -1, -1, -1, -1, -1, -1, -1, 874, 4975,
17610 : -1, 3131, -1, 4149, -1, 3135, -1, -1, -1, -1,
17611 : -1, 4987, -1, -1, -1, -1, -1, -1, -1, -1,
17612 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17613 : -1, -1, 408, -1, -1, -1, -1, -1, -1, 515,
17614 : -1, -1, -1, -1, -1, -1, -1, -1, 524, 525,
17615 : 526, 527, 528, 529, 530, 531, 532, -1, 728, -1,
17616 : -1, 537, -1, -1, -1, -1, -1, -1, -1, -1,
17617 : 10, -1, -1, 13, -1, -1, -1, 17, 18, 19,
17618 : -1, -1, -1, 959, 754, -1, -1, -1, 4823, -1,
17619 : 4825, 10, -1, -1, 13, 35, -1, -1, 17, 18,
17620 : 19, -1, -1, 728, -1, 45, -1, -1, 3238, -1,
17621 : -1, -1, 52, -1, -1, -1, 35, -1, -1, -1,
17622 : -1, -1, -1, 3253, -1, -1, 45, -1, 3258, 754,
17623 : -1, -1, -1, 52, -1, -1, -1, -1, 78, 515,
17624 : -1, -1, -1, -1, -1, -1, -1, -1, 524, 525,
17625 : 526, 527, 528, 529, 530, 531, 532, 1033, 3288, 78,
17626 : -1, 537, -1, -1, 4310, -1, -1, -1, -1, 2735,
17627 : -1, -1, -1, 2739, 2740, -1, -1, -1, -1, -1,
17628 : -1, -1, 1058, -1, -1, -1, -1, -1, -1, -1,
17629 : -1, -1, -1, -1, -1, -1, -1, 1073, -1, 1075,
17630 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1085,
17631 : -1, -1, -1, -1, -1, -1, 1092, -1, -1, -1,
17632 : -1, -1, -1, -1, -1, -1, -1, 897, 2794, 5205,
17633 : -1, -1, -1, -1, 2800, -1, -1, -1, -1, -1,
17634 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17635 : -1, -1, -1, -1, -1, -1, -1, 197, -1, 1135,
17636 : 4406, 1137, 202, -1, -1, -1, -1, -1, -1, -1,
17637 : -1, -1, 897, -1, -1, -1, -1, -1, 197, -1,
17638 : -1, -1, 2848, 202, -1, 225, 226, -1, 4434, -1,
17639 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17640 : -1, -1, -1, -1, -1, -1, 225, 226, -1, -1,
17641 : -1, -1, -1, 253, -1, 5050, 5051, -1, -1, -1,
17642 : -1, 728, -1, -1, -1, -1, -1, -1, 5063, -1,
17643 : 5065, 5066, 5067, -1, 253, 1211, -1, 1213, -1, 1215,
17644 : -1, 1217, -1, 1219, 1220, 1221, -1, 754, -1, -1,
17645 : 1226, -1, -1, -1, 728, -1, 296, 10, -1, -1,
17646 : 13, 5337, 1238, 5339, 17, 18, 19, -1, -1, -1,
17647 : -1, -1, 312, -1, -1, 315, -1, 296, -1, -1,
17648 : 754, -1, 35, -1, -1, -1, 5389, -1, -1, -1,
17649 : 1060, -1, 45, 312, -1, -1, 315, 5132, -1, 52,
17650 : -1, 1071, -1, -1, -1, -1, -1, -1, -1, -1,
17651 : -1, -1, 10, 3543, -1, 13, 3546, 1087, 3548, 17,
17652 : 18, 19, -1, 3553, -1, 78, -1, -1, -1, -1,
17653 : -1, 4577, -1, -1, -1, 1060, 5171, 35, -1, -1,
17654 : -1, -1, -1, -1, -1, -1, 1071, 45, -1, -1,
17655 : -1, -1, -1, -1, 52, -1, -1, -1, -1, -1,
17656 : -1, -1, 1087, -1, -1, 3595, -1, -1, 408, -1,
17657 : -1, -1, -1, 3603, -1, -1, -1, -1, 4624, 5214,
17658 : 78, -1, -1, 4629, -1, -1, -1, 10, -1, 408,
17659 : 13, -1, 3058, -1, 17, 18, 19, -1, 3628, -1,
17660 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17661 : -1, -1, 35, -1, -1, -1, -1, -1, -1, -1,
17662 : -1, -1, 45, 897, -1, -1, -1, -1, -1, 52,
17663 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17664 : -1, -1, -1, -1, 197, -1, -1, -1, -1, 202,
17665 : 1426, -1, -1, -1, -1, 78, -1, -1, -1, -1,
17666 : -1, -1, -1, -1, -1, 3131, -1, -1, -1, 3135,
17667 : -1, -1, 225, 226, 1244, 515, -1, -1, 3708, -1,
17668 : 3710, -1, -1, -1, 524, 525, 526, 527, 528, 529,
17669 : 530, 531, 532, -1, -1, -1, 515, 537, -1, 197,
17670 : 253, -1, -1, -1, 202, 524, 525, 526, 527, 528,
17671 : 529, 530, 531, 532, -1, -1, -1, -1, 537, 1244,
17672 : -1, -1, -1, -1, -1, -1, -1, 225, 226, -1,
17673 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17674 : -1, 4787, -1, 296, -1, -1, -1, -1, -1, -1,
17675 : -1, -1, -1, 1060, 5389, 253, -1, -1, -1, 312,
17676 : -1, -1, 315, -1, 1071, -1, -1, -1, -1, -1,
17677 : 1546, -1, 3238, -1, 197, -1, 3806, -1, -1, 202,
17678 : 1087, -1, -1, -1, -1, -1, 1060, 3253, -1, -1,
17679 : -1, -1, 3258, -1, -1, 5698, -1, 1071, 296, -1,
17680 : 5435, -1, 225, 226, -1, 3835, -1, -1, -1, 5444,
17681 : -1, 3841, -1, 1087, 312, -1, -1, 315, -1, -1,
17682 : 3850, -1, 3288, -1, -1, -1, -1, -1, -1, -1,
17683 : 253, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17684 : -1, -1, 1618, -1, -1, -1, -1, -1, 3878, -1,
17685 : -1, -1, -1, -1, -1, 408, -1, -1, 4904, -1,
17686 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17687 : -1, -1, -1, 296, -1, -1, -1, -1, -1, -1,
17688 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
17689 : -1, -1, 315, -1, -1, -1, -1, -1, -1, -1,
17690 : -1, -1, -1, -1, -1, -1, 51, -1, -1, -1,
17691 : 408, -1, 4958, -1, -1, -1, 3946, -1, -1, -1,
17692 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17693 : -1, -1, -1, -1, 4980, 1505, -1, 1244, 3968, -1,
17694 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17695 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17696 : 3990, -1, 515, -1, -1, -1, -1, -1, -1, -1,
17697 : 1244, 524, 525, 526, 527, 528, 529, 530, 531, 532,
17698 : 1505, -1, -1, -1, 537, 408, -1, -1, -1, -1,
17699 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17700 : -1, -1, 1572, -1, -1, -1, 5052, -1, -1, -1,
17701 : 5913, -1, -1, -1, -1, -1, -1, 515, -1, -1,
17702 : -1, -1, -1, -1, -1, -1, 524, 525, 526, 527,
17703 : 528, 529, 530, 531, 532, -1, -1, -1, -1, 537,
17704 : -1, -1, 4072, 1613, -1, -1, -1, 1572, -1, -1,
17705 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17706 : 1836, -1, -1, 5698, -1, -1, -1, 5702, -1, -1,
17707 : -1, -1, -1, -1, -1, -1, 1646, 3543, -1, -1,
17708 : 3546, -1, 3548, -1, -1, -1, -1, 3553, 1613, -1,
17709 : -1, -1, 515, -1, 4124, 1871, -1, -1, -1, -1,
17710 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
17711 : -1, -1, -1, -1, 537, -1, -1, -1, -1, 4149,
17712 : -1, 1646, -1, -1, -1, -1, -1, -1, 5174, 3595,
17713 : -1, -1, -1, -1, -1, -1, -1, 3603, -1, -1,
17714 : -1, 1917, -1, -1, -1, -1, -1, -1, -1, -1,
17715 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17716 : -1, 1937, 3628, -1, -1, -1, -1, -1, -1, -1,
17717 : -1, -1, -1, 10, -1, -1, 13, -1, -1, -1,
17718 : 17, 18, 19, -1, -1, -1, -1, 1963, -1, 1965,
17719 : -1, -1, -1, 6069, -1, -1, -1, -1, 35, -1,
17720 : -1, -1, -1, -1, 1980, -1, 1982, -1, 45, -1,
17721 : -1, -1, 1988, -1, 1990, 52, 1992, -1, 1994, -1,
17722 : 1996, -1, -1, -1, 2000, -1, -1, -1, -1, -1,
17723 : -1, 1505, -1, -1, -1, -1, -1, -1, -1, -1,
17724 : -1, 78, 3708, -1, 3710, -1, -1, -1, -1, -1,
17725 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17726 : -1, 2037, -1, -1, -1, -1, -1, 5313, -1, -1,
17727 : 1840, -1, -1, -1, -1, -1, 10, -1, -1, 13,
17728 : 4310, 1851, -1, 17, 18, 19, -1, -1, -1, 5924,
17729 : -1, -1, -1, 5928, -1, 5930, -1, 1867, 1572, 5934,
17730 : 5935, 35, -1, -1, -1, -1, 1613, -1, -1, -1,
17731 : -1, 45, -1, -1, -1, 1840, -1, -1, 52, -1,
17732 : -1, -1, -1, -1, -1, -1, 1851, -1, -1, -1,
17733 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1613,
17734 : 3806, -1, 1867, 5389, 78, -1, -1, -1, -1, -1,
17735 : -1, 1921, -1, -1, -1, -1, -1, -1, -1, -1,
17736 : 197, -1, -1, -1, -1, 202, 1936, -1, -1, 1939,
17737 : 1940, -1, 1646, -1, -1, -1, 4406, -1, -1, 51,
17738 : -1, -1, -1, -1, 3850, -1, -1, -1, 225, 226,
17739 : -1, -1, -1, -1, -1, -1, 1921, -1, -1, -1,
17740 : 1970, 1971, -1, -1, 4434, -1, -1, -1, -1, -1,
17741 : -1, 1936, 3878, -1, 1939, 1940, 253, -1, -1, -1,
17742 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17743 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17744 : -1, -1, -1, -1, -1, 1970, 1971, -1, -1, -1,
17745 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 296,
17746 : -1, -1, -1, 197, -1, 5511, -1, -1, 202, -1,
17747 : -1, -1, -1, -1, -1, 312, -1, -1, 315, -1,
17748 : 3946, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17749 : -1, 225, 226, -1, 6397, -1, -1, -1, -1, -1,
17750 : -1, -1, 3968, -1, -1, -1, -1, -1, -1, -1,
17751 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 253,
17752 : -1, -1, -1, -1, 3990, -1, -1, -1, -1, -1,
17753 : -1, -1, 10, 1840, -1, 13, -1, -1, -1, 17,
17754 : 18, 19, 2112, -1, 1851, -1, -1, 4577, -1, -1,
17755 : -1, -1, -1, -1, -1, 6458, -1, 35, -1, -1,
17756 : 1867, -1, 296, -1, -1, -1, 1840, 45, -1, -1,
17757 : -1, 408, -1, -1, 52, -1, -1, 1851, 312, -1,
17758 : 6483, 315, -1, 728, -1, -1, -1, 2112, -1, -1,
17759 : -1, -1, -1, 1867, 4624, -1, -1, -1, 6233, 4629,
17760 : 78, -1, -1, -1, -1, -1, 4072, -1, -1, 754,
17761 : -1, -1, -1, -1, 1921, -1, -1, -1, -1, -1,
17762 : 5666, -1, -1, -1, -1, 5671, 5672, -1, -1, 1936,
17763 : -1, -1, 1939, 1940, -1, -1, -1, -1, -1, -1,
17764 : -1, -1, -1, -1, -1, -1, -1, 1921, -1, -1,
17765 : -1, -1, -1, -1, -1, -1, -1, -1, 4124, -1,
17766 : -1, -1, 1936, 1970, 1971, 1939, 1940, -1, -1, -1,
17767 : -1, -1, -1, -1, 408, -1, -1, -1, 515, -1,
17768 : -1, -1, -1, 4149, -1, -1, -1, 524, 525, 526,
17769 : 527, 528, 529, 530, 531, 532, 1970, 1971, -1, -1,
17770 : 537, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17771 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 197,
17772 : -1, -1, -1, -1, 202, -1, -1, -1, -1, -1,
17773 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5785,
17774 : -1, -1, -1, -1, -1, -1, -1, 225, 226, -1,
17775 : -1, -1, 897, -1, -1, -1, -1, 4787, -1, -1,
17776 : -1, -1, 6397, -1, -1, -1, -1, -1, -1, 6404,
17777 : -1, -1, -1, 6408, -1, 253, -1, -1, -1, -1,
17778 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
17779 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
17780 : -1, -1, 5848, 537, -1, 2112, -1, -1, -1, 6444,
17781 : -1, -1, -1, -1, -1, -1, -1, -1, 296, -1,
17782 : -1, -1, -1, 6458, -1, -1, -1, -1, -1, -1,
17783 : -1, -1, -1, -1, 312, -1, -1, 315, 2112, -1,
17784 : -1, -1, -1, -1, 4310, -1, -1, -1, 6483, -1,
17785 : -1, 6486, -1, -1, -1, -1, -1, -1, -1, -1,
17786 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17787 : -1, -1, -1, -1, 4904, -1, -1, -1, -1, -1,
17788 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17789 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17790 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17791 : -1, -1, -1, -1, -1, 1060, -1, -1, -1, -1,
17792 : -1, -1, -1, -1, -1, -1, 1071, -1, 4958, -1,
17793 : 408, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17794 : 4406, -1, 1087, -1, -1, -1, -1, -1, -1, -1,
17795 : 4980, -1, -1, 2729, 2730, -1, -1, -1, -1, -1,
17796 : -1, -1, -1, -1, -1, -1, -1, -1, 4434, -1,
17797 : -1, -1, 2748, 2749, -1, 2751, 2752, -1, -1, -1,
17798 : 2756, 2757, -1, -1, -1, -1, -1, -1, -1, -1,
17799 : -1, -1, -1, -1, -1, 2771, -1, -1, -1, 2775,
17800 : -1, -1, -1, 2779, 2780, -1, -1, 2783, 2784, -1,
17801 : -1, -1, -1, -1, 2790, -1, -1, -1, -1, -1,
17802 : -1, -1, 5052, -1, -1, -1, 2802, -1, -1, -1,
17803 : -1, -1, -1, -1, -1, -1, -1, 515, 2814, -1,
17804 : -1, -1, -1, 2819, -1, -1, 524, 525, 526, 527,
17805 : 528, 529, 530, 531, 532, -1, 728, -1, 2834, 537,
17806 : -1, -1, 2838, -1, -1, -1, -1, -1, -1, -1,
17807 : -1, -1, -1, -1, 2850, -1, -1, 2853, -1, 2855,
17808 : 2856, 2857, 754, -1, -1, -1, 2862, 2863, -1, -1,
17809 : -1, -1, -1, 23, -1, -1, 2872, -1, 28, 1244,
17810 : -1, -1, 2878, -1, -1, -1, 2882, -1, -1, -1,
17811 : -1, 4577, -1, -1, -1, -1, -1, -1, 2894, 2895,
17812 : -1, -1, -1, 2899, -1, -1, -1, -1, -1, 2905,
17813 : 2906, -1, -1, -1, -1, -1, 66, -1, -1, -1,
17814 : -1, -1, 5172, 2919, 5174, -1, 2922, -1, -1, 79,
17815 : 80, -1, -1, 2929, 2930, -1, -1, -1, 4624, 2935,
17816 : -1, -1, 92, 4629, -1, 2735, 96, -1, -1, 2739,
17817 : 2740, 2947, -1, -1, 2950, -1, -1, -1, -1, 2955,
17818 : -1, -1, -1, -1, 114, 2961, 2962, -1, -1, -1,
17819 : -1, -1, -1, 2969, -1, -1, -1, 2973, -1, -1,
17820 : -1, 2977, 2978, 2979, 2980, -1, 2982, -1, 138, -1,
17821 : 2735, -1, -1, -1, 2739, 2740, -1, -1, -1, -1,
17822 : 2996, 2997, 152, 2999, 2794, 897, -1, -1, -1, -1,
17823 : 2800, 161, -1, -1, 3010, 3011, 3012, -1, -1, -1,
17824 : -1, -1, -1, -1, 174, -1, -1, -1, -1, -1,
17825 : 180, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17826 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2794,
17827 : -1, -1, -1, -1, -1, 2800, -1, 207, 2848, -1,
17828 : -1, -1, -1, 5313, -1, -1, -1, -1, -1, -1,
17829 : -1, 3067, -1, -1, -1, -1, -1, -1, -1, 3075,
17830 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17831 : -1, -1, -1, -1, -1, 245, -1, -1, 3094, -1,
17832 : -1, 4787, -1, 2848, 6370, -1, -1, -1, -1, -1,
17833 : -1, -1, -1, -1, -1, -1, -1, 267, -1, -1,
17834 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17835 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5389,
17836 : 1505, -1, -1, -1, -1, -1, -1, -1, 3144, -1,
17837 : -1, -1, -1, -1, -1, -1, 10, -1, -1, 13,
17838 : -1, -1, 312, 17, 18, 19, -1, 3163, 1060, 3165,
17839 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1071,
17840 : -1, 35, -1, -1, -1, -1, -1, -1, -1, 339,
17841 : -1, 45, -1, -1, -1, 1087, -1, -1, 52, 349,
17842 : 350, -1, -1, 353, -1, -1, -1, 1572, -1, -1,
17843 : -1, -1, -1, -1, -1, -1, -1, -1, 4904, -1,
17844 : -1, -1, -1, -1, 78, -1, -1, 51, -1, -1,
17845 : 380, -1, -1, 383, -1, -1, -1, 387, -1, -1,
17846 : 390, 2735, -1, -1, -1, 2739, 2740, 397, 1613, -1,
17847 : 400, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17848 : -1, 5511, -1, -1, 3260, -1, -1, 2794, 3058, -1,
17849 : 420, -1, 4958, 2800, -1, -1, -1, -1, 428, -1,
17850 : -1, 1646, -1, -1, -1, 435, -1, -1, 438, -1,
17851 : -1, -1, -1, 443, 4980, -1, -1, -1, -1, -1,
17852 : 2794, 451, 10, 453, -1, 13, 2800, -1, 458, 17,
17853 : 18, 19, -1, 3058, -1, -1, -1, -1, -1, -1,
17854 : -1, 2848, -1, -1, -1, -1, -1, 35, -1, -1,
17855 : -1, -1, -1, -1, -1, 485, -1, 45, -1, -1,
17856 : -1, 3131, -1, 197, 52, 3135, -1, -1, 202, -1,
17857 : -1, -1, 1244, -1, 2848, -1, -1, -1, -1, -1,
17858 : -1, -1, -1, -1, -1, -1, 5052, -1, -1, -1,
17859 : 78, 225, 226, -1, -1, -1, -1, -1, -1, -1,
17860 : -1, -1, -1, -1, -1, -1, 3131, -1, -1, -1,
17861 : 3135, -1, -1, -1, -1, -1, -1, -1, -1, 253,
17862 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17863 : -1, -1, -1, -1, -1, -1, 5666, -1, -1, -1,
17864 : -1, 5671, 5672, -1, -1, -1, -1, -1, -1, -1,
17865 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17866 : -1, -1, 296, -1, -1, -1, -1, -1, 3238, -1,
17867 : -1, -1, -1, -1, -1, -1, -1, -1, 312, -1,
17868 : -1, 315, -1, 3253, -1, -1, -1, -1, 3258, -1,
17869 : -1, -1, -1, -1, -1, 1840, -1, -1, -1, -1,
17870 : -1, -1, -1, -1, -1, -1, 1851, -1, 5174, 197,
17871 : -1, -1, -1, 3238, 202, -1, -1, -1, 3288, -1,
17872 : -1, -1, 1867, -1, -1, -1, -1, -1, 3253, -1,
17873 : -1, -1, -1, 3258, -1, -1, -1, 225, 226, -1,
17874 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17875 : -1, 3058, -1, -1, 5784, 5785, -1, -1, -1, -1,
17876 : -1, -1, -1, 3288, -1, 253, -1, -1, -1, -1,
17877 : -1, -1, -1, -1, 408, -1, 1921, -1, -1, -1,
17878 : -1, -1, -1, -1, 3058, -1, -1, -1, -1, -1,
17879 : -1, 1936, -1, -1, 1939, 1940, -1, -1, -1, -1,
17880 : -1, -1, -1, -1, -1, -1, -1, -1, 296, -1,
17881 : -1, -1, -1, -1, 3590, -1, -1, -1, 5848, -1,
17882 : -1, -1, -1, -1, 312, 1970, 1971, 315, -1, -1,
17883 : -1, 3607, -1, 1505, -1, 3611, -1, -1, -1, -1,
17884 : 3616, 3617, 3618, -1, -1, -1, -1, 5313, -1, -1,
17885 : -1, -1, -1, -1, -1, -1, -1, 3131, -1, -1,
17886 : -1, 3135, 3638, -1, -1, -1, -1, -1, -1, -1,
17887 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17888 : -1, 515, -1, -1, -1, -1, 3662, 3663, 3664, 3665,
17889 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
17890 : 1572, -1, -1, 537, -1, -1, -1, -1, -1, -1,
17891 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17892 : 408, -1, -1, 5389, 3700, -1, 3702, 3703, 3704, -1,
17893 : -1, 3238, -1, -1, -1, -1, -1, -1, -1, -1,
17894 : -1, 1613, -1, -1, -1, -1, 3253, -1, -1, -1,
17895 : -1, 3258, -1, -1, -1, -1, -1, -1, -1, -1,
17896 : -1, -1, -1, -1, 3238, -1, -1, 2112, -1, -1,
17897 : -1, -1, -1, 3543, 1646, -1, 3546, -1, 3548, 3253,
17898 : -1, 3288, -1, 3553, 3258, -1, -1, -1, -1, -1,
17899 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17900 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17901 : -1, -1, -1, -1, 3288, -1, -1, -1, 3543, -1,
17902 : -1, 3546, -1, 3548, -1, 3595, -1, 515, 3553, -1,
17903 : -1, -1, -1, 3603, -1, -1, 524, 525, 526, 527,
17904 : 528, 529, 530, 531, 532, 5511, 3822, -1, -1, 537,
17905 : -1, -1, -1, -1, -1, 3831, -1, -1, 3628, -1,
17906 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17907 : 3595, -1, -1, -1, -1, -1, -1, -1, 3603, -1,
17908 : -1, 3857, 3858, -1, -1, -1, 3862, -1, -1, -1,
17909 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17910 : -1, -1, -1, 3628, -1, -1, -1, -1, 3884, -1,
17911 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17912 : -1, -1, -1, -1, 728, -1, -1, -1, -1, -1,
17913 : -1, -1, -1, -1, -1, -1, -1, -1, 3708, -1,
17914 : 3710, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17915 : 754, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17916 : 3936, -1, -1, -1, -1, 3941, -1, -1, 1840, -1,
17917 : -1, 3947, -1, -1, -1, -1, -1, -1, -1, 1851,
17918 : -1, -1, -1, 3708, -1, 3710, -1, -1, -1, -1,
17919 : -1, -1, -1, -1, -1, 1867, -1, -1, -1, -1,
17920 : 5666, 3977, -1, -1, -1, 5671, 5672, -1, -1, -1,
17921 : -1, -1, -1, -1, -1, -1, -1, 10, -1, -1,
17922 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
17923 : 4006, -1, 4008, -1, -1, -1, 3806, -1, -1, -1,
17924 : -1, -1, 35, -1, -1, -1, -1, -1, -1, 1921,
17925 : -1, -1, 45, -1, -1, -1, -1, -1, -1, 52,
17926 : -1, -1, -1, -1, 1936, -1, -1, 1939, 1940, 3543,
17927 : -1, -1, 3546, -1, 3548, -1, -1, -1, -1, 3553,
17928 : 3850, 3806, -1, -1, -1, 78, -1, -1, 3595, -1,
17929 : -1, -1, -1, 897, -1, -1, 3603, -1, 1970, 1971,
17930 : -1, -1, -1, -1, -1, -1, -1, -1, 3878, -1,
17931 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5785,
17932 : -1, 3595, -1, -1, -1, 3850, -1, -1, -1, 3603,
17933 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17934 : 6370, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17935 : -1, -1, -1, 3878, 3628, -1, -1, -1, -1, -1,
17936 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17937 : -1, -1, -1, -1, -1, -1, 3946, -1, -1, -1,
17938 : -1, -1, 5848, -1, -1, -1, -1, -1, -1, -1,
17939 : -1, -1, -1, -1, -1, -1, -1, -1, 3968, -1,
17940 : -1, 3708, -1, 3710, 197, -1, -1, 6437, -1, 202,
17941 : -1, -1, -1, -1, -1, -1, 10, -1, -1, 13,
17942 : 3990, 3946, -1, 17, 18, 19, -1, -1, -1, -1,
17943 : -1, -1, 225, 226, 3708, -1, 3710, -1, -1, -1,
17944 : 2112, 35, -1, 3968, -1, -1, -1, -1, -1, -1,
17945 : -1, 45, -1, -1, -1, -1, 1060, -1, 52, -1,
17946 : 253, -1, -1, -1, -1, 3990, -1, 1071, -1, -1,
17947 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17948 : -1, -1, -1, 1087, 78, -1, -1, -1, -1, -1,
17949 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 3806,
17950 : -1, -1, 4072, 296, -1, -1, -1, -1, -1, -1,
17951 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
17952 : -1, -1, 315, -1, -1, -1, -1, -1, -1, -1,
17953 : -1, -1, 3806, -1, -1, -1, -1, -1, -1, -1,
17954 : -1, -1, -1, 3850, -1, -1, 4322, 4072, 4324, -1,
17955 : -1, -1, -1, -1, 4124, -1, -1, -1, -1, -1,
17956 : -1, 4337, -1, -1, -1, -1, -1, -1, -1, -1,
17957 : -1, -1, -1, 4349, -1, -1, 3850, 4353, -1, 4149,
17958 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4365,
17959 : 2735, -1, -1, -1, 2739, 2740, -1, -1, -1, 4124,
17960 : -1, -1, -1, 197, 3878, -1, -1, -1, 202, 4385,
17961 : -1, -1, -1, -1, -1, 408, -1, -1, -1, -1,
17962 : -1, -1, -1, -1, 4149, -1, -1, 4403, -1, -1,
17963 : -1, 225, 226, -1, -1, 4411, -1, -1, -1, 3946,
17964 : 1244, -1, -1, -1, -1, -1, -1, -1, -1, 2794,
17965 : -1, -1, -1, -1, -1, 2800, -1, -1, -1, 253,
17966 : 4436, -1, -1, -1, 4440, -1, -1, -1, -1, -1,
17967 : -1, -1, 3946, -1, -1, -1, -1, -1, -1, 4455,
17968 : 4456, 4457, 4458, 3990, -1, -1, -1, -1, -1, 4465,
17969 : 4466, 4467, 4468, -1, 3968, -1, -1, -1, 4474, 4475,
17970 : -1, -1, 296, 2848, 4480, 4481, -1, 4483, 4484, 4485,
17971 : 4486, 4487, 4488, 4489, -1, -1, 3990, -1, 312, -1,
17972 : -1, 315, 515, 4499, -1, -1, -1, 4503, 4504, 4505,
17973 : 4506, 524, 525, 526, 527, 528, 529, 530, 531, 532,
17974 : 4310, -1, -1, -1, 537, -1, -1, -1, 207, -1,
17975 : -1, 4527, -1, -1, -1, -1, -1, 216, -1, -1,
17976 : -1, -1, -1, -1, -1, 4072, -1, -1, -1, 4545,
17977 : -1, 230, -1, -1, -1, -1, -1, -1, -1, -1,
17978 : -1, -1, -1, -1, -1, 4310, -1, -1, -1, -1,
17979 : -1, -1, -1, -1, -1, -1, -1, -1, 4072, -1,
17980 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17981 : -1, -1, -1, -1, 408, -1, -1, 4124, -1, -1,
17982 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17983 : -1, -1, -1, -1, -1, -1, 4406, -1, -1, -1,
17984 : -1, -1, 4149, -1, -1, -1, 4622, -1, -1, -1,
17985 : 4124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17986 : -1, -1, -1, -1, 4434, -1, -1, -1, -1, -1,
17987 : -1, -1, -1, -1, -1, 4149, -1, -1, -1, 4655,
17988 : -1, 4406, -1, -1, -1, -1, 4662, -1, 4664, -1,
17989 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17990 : -1, 1505, -1, -1, 6370, -1, -1, -1, -1, 4434,
17991 : -1, -1, -1, 3058, -1, -1, 4692, -1, -1, -1,
17992 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
17993 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
17994 : -1, -1, -1, 537, -1, -1, -1, -1, -1, -1,
17995 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
17996 : -1, -1, -1, -1, -1, -1, -1, -1, 1572, -1,
17997 : -1, 10, -1, -1, 13, -1, -1, -1, 17, 18,
17998 : 19, -1, -1, -1, -1, -1, 3131, -1, -1, -1,
17999 : 3135, -1, -1, -1, -1, -1, 35, -1, -1, -1,
18000 : -1, -1, -1, -1, -1, -1, 45, 4577, -1, 1613,
18001 : -1, -1, -1, 52, -1, -1, -1, -1, 10, -1,
18002 : -1, 13, -1, -1, -1, 17, 18, 19, -1, -1,
18003 : -1, -1, -1, -1, -1, -1, 4310, -1, -1, 78,
18004 : -1, -1, 1646, 35, -1, -1, -1, 206, 207, -1,
18005 : -1, -1, 4577, 45, 4624, 214, -1, 216, 217, 4629,
18006 : 52, -1, -1, 2735, -1, -1, -1, 2739, 2740, -1,
18007 : -1, 230, -1, -1, -1, -1, -1, -1, -1, -1,
18008 : -1, -1, -1, -1, -1, -1, 78, -1, -1, -1,
18009 : -1, -1, -1, 3238, -1, -1, -1, -1, -1, 4624,
18010 : -1, -1, -1, -1, 4629, -1, -1, -1, 3253, -1,
18011 : -1, -1, -1, 3258, -1, -1, -1, -1, -1, -1,
18012 : -1, -1, 2794, -1, -1, -1, -1, -1, 2800, 4905,
18013 : 4906, 4907, 4406, -1, -1, 4911, 4912, 4913, 4914, -1,
18014 : -1, -1, 4918, 3288, -1, -1, -1, -1, -1, -1,
18015 : -1, -1, -1, -1, -1, -1, -1, -1, 197, -1,
18016 : 4434, -1, -1, 202, -1, -1, -1, -1, -1, -1,
18017 : -1, -1, -1, -1, -1, -1, 2848, -1, -1, -1,
18018 : -1, -1, -1, -1, -1, -1, 225, 226, -1, -1,
18019 : -1, -1, -1, -1, 4970, 4971, 4972, 4973, 4974, -1,
18020 : 4976, 4977, -1, -1, -1, 197, 665, -1, -1, -1,
18021 : 202, -1, 4988, 4989, 253, -1, -1, 4787, -1, -1,
18022 : -1, -1, -1, -1, -1, 684, -1, -1, -1, -1,
18023 : -1, 690, -1, 225, 226, -1, 1840, -1, -1, -1,
18024 : -1, -1, -1, 702, -1, -1, 5022, 1851, -1, -1,
18025 : -1, -1, -1, -1, -1, -1, -1, 296, -1, 718,
18026 : -1, 253, 4787, 1867, -1, -1, -1, -1, -1, -1,
18027 : 4577, -1, -1, 312, 733, -1, 315, -1, -1, -1,
18028 : -1, -1, 741, -1, -1, -1, -1, -1, -1, -1,
18029 : -1, -1, -1, -1, -1, -1, 755, -1, -1, -1,
18030 : -1, -1, -1, 4577, 296, -1, 765, -1, -1, -1,
18031 : -1, -1, -1, -1, -1, -1, -1, 1921, -1, -1,
18032 : 312, -1, -1, 315, -1, -1, -1, -1, -1, -1,
18033 : -1, -1, 1936, -1, 4904, 1939, 1940, -1, -1, -1,
18034 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5125,
18035 : 4624, -1, -1, -1, -1, 4629, -1, -1, -1, 818,
18036 : -1, -1, -1, -1, -1, -1, 1970, 1971, -1, 408,
18037 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4904,
18038 : -1, -1, -1, -1, -1, -1, 3058, 846, 4958, -1,
18039 : -1, -1, -1, -1, -1, -1, -1, -1, 3543, -1,
18040 : -1, 3546, -1, 3548, -1, -1, -1, -1, 3553, -1,
18041 : 4980, -1, 871, -1, 5190, -1, 408, -1, -1, -1,
18042 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18043 : -1, -1, -1, 4958, -1, -1, -1, -1, -1, -1,
18044 : -1, -1, -1, -1, -1, -1, 5222, -1, -1, -1,
18045 : 3595, -1, -1, -1, -1, 4980, -1, -1, 3603, 3131,
18046 : -1, -1, -1, 3135, -1, -1, -1, -1, -1, -1,
18047 : -1, -1, -1, -1, 933, -1, 515, -1, -1, -1,
18048 : -1, -1, 5052, 3628, -1, 524, 525, 526, 527, 528,
18049 : 529, 530, 531, 532, -1, -1, -1, -1, 537, -1,
18050 : -1, -1, -1, -1, -1, -1, 665, -1, 2112, -1,
18051 : -1, -1, -1, 4787, -1, -1, -1, -1, -1, -1,
18052 : -1, -1, -1, 515, -1, 684, -1, 5052, -1, -1,
18053 : -1, 690, 524, 525, 526, 527, 528, 529, 530, 531,
18054 : 532, -1, -1, 702, 5320, 537, -1, -1, -1, -1,
18055 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 718,
18056 : -1, -1, -1, 3708, -1, 3710, 3238, -1, -1, -1,
18057 : -1, -1, -1, 732, 733, -1, -1, -1, -1, -1,
18058 : 739, 3253, 741, 742, 1043, -1, 3258, -1, -1, -1,
18059 : -1, 1050, -1, -1, -1, -1, 755, 4904, -1, -1,
18060 : -1, -1, -1, -1, 5174, -1, 765, -1, -1, -1,
18061 : -1, -1, -1, -1, -1, 5391, 3288, -1, -1, -1,
18062 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18063 : 4904, -1, -1, -1, 5410, -1, -1, -1, -1, -1,
18064 : 5416, 5417, -1, -1, -1, -1, -1, -1, -1, 5174,
18065 : 5426, 4958, -1, -1, -1, -1, -1, 5433, -1, 818,
18066 : -1, 3806, -1, -1, -1, -1, -1, -1, -1, -1,
18067 : -1, -1, -1, 4980, -1, -1, 25, -1, -1, -1,
18068 : -1, -1, 31, 10, 4958, -1, 13, 846, -1, 38,
18069 : 17, 18, 19, -1, 5470, 5471, -1, -1, -1, -1,
18070 : -1, -1, -1, -1, -1, 3850, 4980, 5483, 35, 5485,
18071 : -1, 60, 871, -1, -1, 1174, -1, -1, 45, -1,
18072 : -1, -1, -1, -1, 5500, 52, -1, 76, -1, -1,
18073 : -1, -1, -1, 3878, -1, -1, -1, -1, -1, -1,
18074 : -1, -1, -1, 5313, -1, 5052, -1, -1, -1, 5525,
18075 : -1, 78, -1, -1, -1, -1, -1, 5533, -1, -1,
18076 : -1, -1, -1, 112, -1, -1, -1, -1, -1, -1,
18077 : -1, -1, -1, -1, 933, -1, 1235, -1, 5052, -1,
18078 : -1, -1, -1, -1, 133, -1, -1, 1246, 5313, -1,
18079 : -1, 140, -1, -1, -1, 144, -1, -1, -1, -1,
18080 : -1, 3946, -1, -1, 1263, -1, -1, -1, -1, 1268,
18081 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5389,
18082 : -1, -1, -1, 3968, 173, -1, -1, -1, -1, -1,
18083 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18084 : -1, -1, -1, -1, -1, 3990, -1, -1, -1, 5625,
18085 : -1, -1, -1, -1, -1, -1, 205, -1, -1, -1,
18086 : 209, -1, -1, 5639, 5389, -1, -1, 5174, -1, -1,
18087 : 197, 3543, -1, -1, 3546, 202, 3548, -1, -1, -1,
18088 : -1, 3553, -1, -1, 1043, -1, -1, -1, -1, 5665,
18089 : -1, 1050, -1, -1, -1, -1, -1, -1, 225, 226,
18090 : 5174, -1, 1061, -1, -1, -1, 1065, -1, 1067, -1,
18091 : -1, -1, -1, -1, 263, -1, -1, -1, -1, 268,
18092 : -1, -1, -1, 3595, 273, -1, 253, 4072, -1, -1,
18093 : -1, 3603, -1, -1, -1, -1, -1, -1, -1, -1,
18094 : 289, 5511, 1401, -1, 293, -1, -1, -1, -1, -1,
18095 : 1409, 1410, -1, -1, -1, 304, 3628, 5733, -1, -1,
18096 : -1, -1, -1, -1, -1, 314, -1, -1, -1, 296,
18097 : -1, -1, -1, -1, -1, -1, 325, 326, -1, 4124,
18098 : -1, -1, -1, -1, -1, 312, 5511, -1, 315, -1,
18099 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18100 : -1, -1, -1, 1462, 4149, -1, 5313, -1, -1, -1,
18101 : -1, -1, -1, -1, -1, 1174, -1, -1, -1, 368,
18102 : -1, -1, 371, 372, 373, -1, -1, 5803, -1, -1,
18103 : -1, -1, -1, -1, -1, -1, 3708, -1, 3710, 5313,
18104 : -1, -1, 10, -1, -1, 13, -1, -1, 397, 17,
18105 : 18, 19, -1, -1, 403, -1, -1, -1, -1, -1,
18106 : -1, 5837, -1, -1, -1, -1, -1, 35, -1, 418,
18107 : -1, -1, -1, -1, -1, -1, 1235, 45, -1, -1,
18108 : -1, 408, -1, -1, 52, -1, -1, 1246, -1, -1,
18109 : -1, -1, -1, -1, -1, -1, 5666, -1, -1, -1,
18110 : -1, 5671, 5672, -1, 1263, -1, -1, 5883, -1, 1268,
18111 : 78, -1, -1, -1, -1, 5389, -1, 208, -1, -1,
18112 : 469, -1, -1, -1, -1, -1, -1, 476, -1, 220,
18113 : -1, 2735, 5908, -1, 3806, 2739, 2740, -1, -1, -1,
18114 : 231, 5666, -1, -1, -1, -1, 5671, 5672, -1, -1,
18115 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18116 : -1, -1, -1, -1, -1, 4310, -1, -1, -1, -1,
18117 : -1, -1, -1, -1, -1, -1, -1, -1, 3850, -1,
18118 : -1, -1, -1, -1, -1, -1, -1, -1, 515, -1,
18119 : 2794, 5967, -1, -1, -1, -1, 2800, 524, 525, 526,
18120 : 527, 528, 529, 530, 531, 532, 3878, -1, -1, -1,
18121 : 537, -1, -1, -1, -1, 5785, -1, -1, -1, -1,
18122 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 197,
18123 : -1, -1, -1, -1, 202, -1, -1, 5511, -1, -1,
18124 : -1, -1, 1401, -1, 2848, -1, -1, -1, -1, -1,
18125 : 1409, 1410, -1, -1, 1713, -1, -1, 225, 226, -1,
18126 : 5785, 4406, -1, -1, -1, -1, -1, -1, -1, -1,
18127 : -1, -1, -1, -1, 3946, -1, -1, -1, 5848, -1,
18128 : -1, -1, -1, -1, -1, 253, -1, -1, -1, 4434,
18129 : -1, -1, -1, -1, -1, -1, 3968, -1, -1, -1,
18130 : -1, -1, -1, 1462, -1, -1, 6082, 10, -1, -1,
18131 : 13, -1, -1, -1, 17, 18, 19, -1, 3990, -1,
18132 : -1, -1, -1, 5848, -1, -1, -1, -1, 296, -1,
18133 : -1, -1, 35, -1, -1, 6111, -1, -1, -1, -1,
18134 : -1, -1, 45, -1, 312, -1, 6122, 315, -1, 52,
18135 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5666,
18136 : -1, -1, -1, -1, 5671, 5672, -1, -1, -1, 1828,
18137 : -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
18138 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18139 : -1, -1, 5666, -1, -1, -1, -1, 5671, 5672, -1,
18140 : 4072, -1, -1, -1, 1863, -1, -1, 198, 199, -1,
18141 : -1, 202, -1, -1, -1, -1, -1, -1, -1, -1,
18142 : -1, -1, -1, -1, -1, -1, -1, 1886, -1, -1,
18143 : -1, 222, 4577, -1, -1, 1894, -1, -1, 229, -1,
18144 : 408, -1, -1, 1902, -1, -1, -1, -1, -1, -1,
18145 : -1, -1, 4124, -1, 3058, -1, -1, -1, -1, -1,
18146 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18147 : -1, -1, -1, 6249, -1, -1, -1, 4149, 5785, 4624,
18148 : -1, -1, -1, -1, 4629, -1, -1, 1946, 1947, -1,
18149 : -1, -1, -1, -1, 197, -1, -1, -1, -1, 202,
18150 : -1, 1960, -1, -1, -1, -1, -1, -1, -1, -1,
18151 : -1, 5785, -1, -1, 1973, 1974, -1, -1, -1, -1,
18152 : -1, -1, 225, 226, -1, -1, -1, 3131, -1, -1,
18153 : -1, 3135, -1, -1, -1, -1, -1, -1, -1, -1,
18154 : -1, 5848, -1, -1, -1, -1, -1, 515, -1, -1,
18155 : 253, -1, -1, -1, 1713, -1, 524, 525, 526, 527,
18156 : 528, 529, 530, 531, 532, -1, -1, -1, -1, 537,
18157 : -1, -1, -1, -1, 5848, 666, -1, -1, -1, -1,
18158 : -1, 672, -1, -1, -1, -1, -1, -1, -1, -1,
18159 : -1, -1, -1, 296, -1, -1, -1, -1, -1, -1,
18160 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 312,
18161 : -1, -1, 315, -1, -1, -1, -1, -1, -1, -1,
18162 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18163 : -1, -1, -1, -1, 3238, -1, -1, -1, 4310, -1,
18164 : -1, -1, 4787, -1, -1, -1, -1, -1, -1, 3253,
18165 : -1, -1, -1, -1, 3258, -1, -1, -1, -1, -1,
18166 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1828,
18167 : -1, -1, -1, -1, 2133, -1, -1, -1, -1, -1,
18168 : -1, -1, -1, -1, 3288, 6461, -1, -1, -1, -1,
18169 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18170 : -1, -1, -1, -1, 1863, 408, -1, -1, -1, -1,
18171 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18172 : -1, -1, -1, -1, -1, -1, -1, 1886, -1, -1,
18173 : -1, -1, -1, -1, 4406, 1894, -1, -1, -1, -1,
18174 : -1, -1, -1, 1902, -1, -1, -1, -1, -1, -1,
18175 : -1, -1, 843, -1, -1, -1, -1, -1, -1, 4904,
18176 : -1, -1, 4434, -1, -1, -1, -1, -1, -1, -1,
18177 : -1, 862, -1, -1, -1, -1, -1, -1, -1, -1,
18178 : -1, -1, -1, -1, 1943, 1944, -1, 1946, 1947, -1,
18179 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 1958,
18180 : 6370, 1960, 1961, -1, -1, -1, -1, -1, -1, -1,
18181 : -1, -1, 515, 4958, 1973, 1974, -1, -1, -1, -1,
18182 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18183 : 10, -1, -1, 13, 537, 4980, -1, 17, 18, 19,
18184 : -1, -1, -1, -1, -1, 6370, -1, -1, -1, -1,
18185 : -1, -1, 2011, -1, -1, 35, 2015, 2016, -1, -1,
18186 : -1, -1, -1, -1, -1, 45, -1, -1, -1, -1,
18187 : -1, -1, 52, -1, -1, -1, -1, -1, -1, -1,
18188 : -1, -1, -1, 674, -1, 676, -1, -1, 679, -1,
18189 : 981, -1, -1, -1, -1, -1, -1, -1, 78, -1,
18190 : -1, -1, 693, 10, -1, 4577, 13, 5052, 699, -1,
18191 : 17, 18, 19, -1, -1, -1, -1, -1, -1, -1,
18192 : -1, -1, -1, -1, -1, -1, -1, -1, 35, -1,
18193 : -1, -1, -1, -1, -1, -1, -1, -1, 45, 3543,
18194 : -1, -1, 3546, -1, 3548, 52, -1, -1, -1, 3553,
18195 : -1, -1, 4624, -1, -1, -1, -1, 4629, -1, -1,
18196 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18197 : -1, 78, -1, -1, 2133, -1, -1, -1, -1, -1,
18198 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18199 : -1, 3595, -1, -1, -1, -1, -1, -1, -1, 3603,
18200 : -1, -1, -1, -1, -1, 1096, -1, -1, -1, -1,
18201 : -1, -1, -1, -1, -1, -1, -1, 197, -1, -1,
18202 : -1, -1, 202, -1, 3628, -1, -1, -1, -1, 5174,
18203 : -1, -1, -1, -1, 1125, 1126, 1127, -1, -1, -1,
18204 : -1, -1, -1, -1, -1, 225, 226, -1, -1, -1,
18205 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18206 : -1, -1, -1, 6370, -1, 172, -1, -1, -1, -1,
18207 : -1, 178, -1, 253, -1, -1, -1, -1, -1, -1,
18208 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18209 : 197, -1, -1, -1, -1, 202, 6370, -1, -1, -1,
18210 : -1, -1, -1, -1, 3708, -1, 3710, -1, -1, -1,
18211 : -1, -1, -1, -1, -1, 4787, 296, -1, 225, 226,
18212 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18213 : -1, -1, 312, -1, -1, 315, -1, -1, -1, -1,
18214 : -1, -1, -1, 1234, -1, 10, 253, -1, 13, -1,
18215 : -1, -1, 17, 18, 19, -1, -1, -1, -1, -1,
18216 : -1, -1, -1, -1, -1, -1, -1, -1, 5313, -1,
18217 : 35, 1262, -1, -1, 39, -1, -1, -1, -1, -1,
18218 : 45, -1, -1, -1, -1, -1, -1, 52, -1, 296,
18219 : -1, -1, -1, -1, -1, 986, 987, -1, -1, -1,
18220 : -1, -1, 3806, -1, -1, 312, -1, -1, 315, -1,
18221 : -1, -1, -1, 78, 2673, -1, -1, -1, -1, -1,
18222 : -1, -1, -1, -1, -1, -1, -1, -1, 408, -1,
18223 : -1, -1, 4904, -1, -1, -1, -1, -1, -1, -1,
18224 : -1, -1, -1, -1, 5389, -1, 3850, -1, -1, -1,
18225 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18226 : -1, -1, -1, -1, -1, 130, 1057, -1, -1, 2728,
18227 : -1, -1, -1, -1, 3878, -1, -1, -1, -1, -1,
18228 : -1, 1072, -1, -1, -1, -1, 4958, 2746, -1, -1,
18229 : -1, 2750, -1, -1, -1, 2754, -1, -1, -1, -1,
18230 : -1, 408, -1, -1, 2763, -1, -1, -1, 4980, -1,
18231 : -1, -1, 1103, 1104, -1, -1, -1, -1, -1, 2778,
18232 : -1, -1, -1, -1, 1415, -1, -1, -1, -1, -1,
18233 : -1, -1, 197, -1, -1, 515, -1, 202, 1129, -1,
18234 : -1, -1, 3946, -1, 524, 525, 526, 527, 528, 529,
18235 : 530, 531, 532, 2812, -1, 535, -1, -1, -1, -1,
18236 : 225, 226, -1, -1, 3968, -1, 5511, -1, -1, -1,
18237 : -1, -1, -1, 2832, 2833, -1, -1, -1, 1169, 1170,
18238 : 5052, -1, -1, -1, -1, -1, 3990, -1, 253, -1,
18239 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18240 : -1, -1, -1, -1, 1495, -1, -1, -1, 515, -1,
18241 : -1, 2870, 2871, -1, -1, 2874, -1, 524, 525, 526,
18242 : 527, 528, 529, 530, 531, 532, -1, -1, -1, -1,
18243 : -1, 296, -1, -1, -1, -1, -1, -1, -1, 2898,
18244 : -1, 2900, -1, -1, -1, 2904, -1, 312, -1, -1,
18245 : 315, -1, -1, -1, -1, -1, -1, -1, -1, 2918,
18246 : -1, -1, -1, -1, -1, -1, 2925, -1, 4072, 2928,
18247 : -1, -1, -1, -1, -1, 2934, -1, -1, -1, -1,
18248 : -1, -1, -1, -1, -1, -1, -1, 1578, -1, -1,
18249 : -1, -1, -1, -1, -1, 2954, 1587, -1, -1, -1,
18250 : -1, 2960, 5174, -1, -1, -1, -1, -1, 2967, -1,
18251 : -1, -1, -1, -1, 2673, -1, -1, -1, -1, -1,
18252 : 4124, 5666, 2981, -1, -1, -1, 5671, 5672, 1619, -1,
18253 : -1, -1, -1, -1, 1625, 1626, 2995, -1, 1629, -1,
18254 : -1, 3000, -1, 408, -1, 4149, -1, 3006, -1, -1,
18255 : -1, 1642, -1, -1, 1645, -1, -1, -1, -1, -1,
18256 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 2728,
18257 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18258 : -1, -1, -1, -1, -1, -1, -1, 2746, -1, -1,
18259 : -1, 2750, -1, -1, -1, 2754, -1, -1, -1, -1,
18260 : -1, -1, -1, -1, 2763, -1, -1, 3066, 473, -1,
18261 : -1, -1, 1703, -1, -1, -1, -1, -1, -1, 2778,
18262 : -1, -1, -1, -1, -1, -1, 1717, -1, -1, -1,
18263 : -1, -1, -1, -1, -1, -1, 2795, -1, 2797, 2798,
18264 : 5785, 5313, -1, -1, -1, -1, -1, -1, -1, -1,
18265 : 515, -1, -1, 2812, -1, -1, -1, -1, -1, 524,
18266 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18267 : -1, -1, -1, 2832, 2833, -1, -1, -1, -1, -1,
18268 : -1, -1, -1, -1, -1, -1, -1, -1, 10, -1,
18269 : -1, 13, -1, -1, -1, 17, 18, 19, -1, -1,
18270 : -1, -1, -1, 5848, -1, -1, 4310, -1, -1, -1,
18271 : -1, 2870, 2871, 35, -1, 2874, -1, 5389, -1, -1,
18272 : -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
18273 : 52, -1, -1, -1, -1, -1, 1827, -1, -1, 2898,
18274 : -1, 2900, -1, -1, -1, 2904, -1, 1838, -1, -1,
18275 : -1, -1, -1, -1, -1, -1, 78, -1, -1, 2918,
18276 : -1, -1, 3221, -1, 3223, -1, 2925, -1, -1, 2928,
18277 : -1, -1, -1, -1, 1565, 2934, -1, -1, -1, -1,
18278 : -1, 3240, -1, -1, -1, -1, -1, -1, 3247, 1880,
18279 : 1881, -1, -1, -1, -1, 2954, -1, -1, -1, 1590,
18280 : -1, 2960, 4406, -1, -1, -1, -1, -1, 2967, -1,
18281 : -1, -1, -1, -1, 1905, -1, -1, -1, -1, -1,
18282 : -1, 1912, 2981, -1, -1, -1, -1, -1, -1, -1,
18283 : 4434, -1, -1, -1, -1, -1, 2995, -1, -1, 5511,
18284 : -1, 3000, -1, -1, -1, -1, -1, 3006, -1, 171,
18285 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18286 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18287 : -1, -1, -1, -1, -1, 197, -1, -1, 1669, -1,
18288 : 202, -1, -1, -1, -1, 3344, -1, -1, -1, -1,
18289 : -1, 3350, -1, -1, 1985, -1, -1, -1, -1, -1,
18290 : -1, -1, -1, 225, 226, -1, -1, 3066, 1699, 1700,
18291 : 1701, 1702, -1, -1, -1, -1, -1, -1, -1, -1,
18292 : -1, -1, -1, -1, -1, -1, -1, 2018, 2019, -1,
18293 : -1, 253, -1, -1, -1, -1, -1, -1, -1, -1,
18294 : -1, -1, -1, -1, 2035, 10, -1, 2038, 13, -1,
18295 : -1, -1, 17, 18, 19, -1, -1, -1, -1, -1,
18296 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18297 : 35, -1, -1, 4577, 296, -1, 3435, -1, -1, -1,
18298 : 45, -1, -1, -1, -1, -1, -1, 52, -1, -1,
18299 : 312, -1, -1, 315, 5666, -1, -1, -1, -1, 5671,
18300 : 5672, -1, -1, -1, -1, -1, -1, -1, 10, -1,
18301 : -1, 13, -1, 78, -1, 17, 18, 19, -1, 341,
18302 : 4624, -1, -1, -1, -1, 4629, -1, -1, -1, -1,
18303 : -1, -1, -1, 35, -1, -1, 38, -1, -1, -1,
18304 : -1, -1, -1, 45, -1, -1, -1, -1, -1, -1,
18305 : 52, -1, -1, -1, -1, 1846, 1847, -1, -1, -1,
18306 : -1, -1, 3221, -1, 3223, -1, -1, -1, -1, -1,
18307 : -1, 1862, -1, -1, -1, -1, 78, -1, -1, -1,
18308 : -1, 3240, -1, -1, -1, -1, 408, -1, 3247, -1,
18309 : -1, -1, -1, -1, -1, 3254, -1, 3256, 3257, -1,
18310 : -1, -1, -1, -1, -1, 1896, 1897, 1898, 1899, 3568,
18311 : 3569, -1, -1, 5785, 10, -1, -1, 13, -1, -1,
18312 : -1, 17, 18, 19, -1, -1, -1, -1, -1, -1,
18313 : 3589, -1, 197, 3592, -1, -1, -1, 202, -1, 35,
18314 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 45,
18315 : -1, -1, -1, -1, -1, -1, 52, -1, -1, -1,
18316 : 225, 226, -1, -1, -1, -1, -1, -1, -1, -1,
18317 : -1, -1, -1, -1, -1, -1, 5848, -1, -1, -1,
18318 : -1, -1, 78, 4787, -1, 3344, 1977, -1, 253, -1,
18319 : -1, 3350, 1983, 515, -1, 197, -1, -1, -1, -1,
18320 : 202, -1, 524, 525, 526, 527, 528, 529, 530, 531,
18321 : 532, -1, -1, -1, -1, 3674, 3675, 3676, -1, -1,
18322 : -1, -1, -1, 225, 226, 6370, -1, -1, -1, -1,
18323 : -1, 296, -1, -1, -1, -1, -1, -1, -1, -1,
18324 : 3699, -1, -1, -1, -1, -1, -1, 312, -1, -1,
18325 : 315, 253, -1, -1, -1, -1, -1, -1, -1, 3718,
18326 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18327 : -1, -1, -1, -1, -1, -1, 3435, -1, 343, -1,
18328 : -1, 3740, -1, -1, -1, -1, -1, -1, -1, -1,
18329 : -1, -1, -1, -1, 296, -1, 25, -1, -1, -1,
18330 : 4904, 197, 31, -1, -1, -1, 202, -1, -1, 38,
18331 : 312, -1, -1, 315, -1, -1, -1, -1, -1, -1,
18332 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 225,
18333 : 226, 60, -1, -1, -1, -1, -1, -1, -1, -1,
18334 : -1, -1, -1, 408, -1, -1, -1, 76, -1, -1,
18335 : -1, -1, -1, -1, 4958, -1, -1, 253, -1, -1,
18336 : -1, -1, 427, -1, -1, -1, -1, -1, -1, -1,
18337 : -1, 3830, -1, -1, -1, -1, 4980, -1, -1, -1,
18338 : 2171, -1, -1, 112, -1, -1, -1, -1, -1, -1,
18339 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18340 : 296, -1, -1, -1, 133, -1, 408, -1, -1, 3568,
18341 : 3569, 140, -1, -1, -1, 144, 312, -1, 3877, 315,
18342 : -1, -1, -1, -1, 3883, -1, 3885, -1, -1, -1,
18343 : 3589, -1, -1, 3592, -1, -1, -1, -1, -1, 3898,
18344 : -1, 3900, -1, -1, 173, -1, -1, -1, 5052, -1,
18345 : 515, -1, -1, -1, -1, -1, -1, -1, -1, 524,
18346 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18347 : -1, -1, -1, -1, -1, -1, 205, -1, -1, -1,
18348 : 209, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18349 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18350 : -1, -1, -1, -1, 2595, -1, -1, -1, 3967, -1,
18351 : -1, -1, 408, 515, 2605, 3674, 3675, 3676, -1, -1,
18352 : -1, -1, 524, 525, 526, 527, 528, 529, 530, 531,
18353 : 532, -1, -1, -1, 263, -1, -1, -1, -1, 268,
18354 : 3699, -1, -1, -1, 273, -1, -1, -1, -1, -1,
18355 : 4009, -1, -1, -1, -1, -1, -1, -1, -1, 3718,
18356 : 289, -1, -1, -1, 293, -1, -1, -1, -1, 4028,
18357 : 5174, -1, -1, 4032, -1, 304, -1, -1, -1, -1,
18358 : -1, 3740, -1, -1, -1, 314, -1, -1, -1, -1,
18359 : -1, -1, -1, -1, 4053, -1, 325, 326, -1, -1,
18360 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18361 : -1, -1, -1, -1, -1, -1, -1, -1, 514, 515,
18362 : -1, -1, -1, -1, 2715, -1, -1, -1, 524, 525,
18363 : 526, 527, 528, 529, 530, 531, 532, -1, -1, 368,
18364 : -1, -1, 371, 372, 373, 10, -1, -1, 13, -1,
18365 : -1, -1, 17, 18, 19, -1, -1, -1, -1, -1,
18366 : -1, -1, -1, -1, -1, -1, -1, -1, 397, -1,
18367 : 35, 3830, -1, -1, 403, -1, -1, -1, -1, -1,
18368 : 45, -1, -1, -1, -1, -1, -1, 52, -1, 418,
18369 : -1, -1, -1, -1, -1, -1, -1, -1, 6370, -1,
18370 : -1, -1, 4161, -1, -1, -1, -1, -1, -1, 5313,
18371 : -1, -1, -1, 78, -1, -1, -1, 0, 3877, -1,
18372 : -1, -1, -1, -1, 3883, -1, 3885, -1, -1, -1,
18373 : -1, -1, -1, -1, -1, -1, -1, 20, -1, 3898,
18374 : 469, 3900, -1, -1, -1, -1, -1, 476, 31, -1,
18375 : 33, 34, -1, -1, -1, -1, -1, -1, -1, -1,
18376 : -1, 2852, -1, -1, -1, -1, -1, -1, 51, -1,
18377 : -1, -1, -1, -1, -1, -1, 2867, -1, 61, -1,
18378 : -1, -1, -1, -1, -1, 5389, -1, -1, -1, -1,
18379 : 73, -1, 75, 76, -1, -1, -1, -1, 2889, 82,
18380 : -1, 84, -1, -1, -1, -1, -1, -1, 3967, -1,
18381 : -1, -1, -1, -1, 97, -1, 99, -1, -1, -1,
18382 : -1, 10, -1, -1, 13, -1, -1, -1, 17, 18,
18383 : 19, -1, 197, 116, -1, -1, 119, 202, -1, -1,
18384 : -1, -1, -1, -1, -1, -1, 35, -1, 2639, 38,
18385 : 4009, 134, -1, 136, -1, -1, 45, 140, -1, -1,
18386 : 225, 226, -1, 52, 147, -1, -1, -1, -1, 4028,
18387 : -1, -1, -1, 4032, 157, -1, 159, 4336, -1, -1,
18388 : -1, -1, -1, 166, 2975, 2976, -1, -1, 253, 78,
18389 : -1, -1, -1, -1, 4053, -1, -1, -1, -1, -1,
18390 : -1, 184, -1, -1, -1, -1, -1, 5511, -1, -1,
18391 : -1, -1, -1, -1, -1, -1, -1, -1, 201, -1,
18392 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18393 : -1, 296, -1, -1, -1, 840, 841, -1, -1, -1,
18394 : -1, 4400, -1, -1, -1, -1, 4405, 312, 4407, -1,
18395 : 315, -1, -1, -1, -1, -1, -1, -1, -1, 10,
18396 : -1, -1, 13, -1, -1, -1, 17, 18, 19, -1,
18397 : -1, 336, 255, 256, 4433, -1, -1, -1, 261, -1,
18398 : -1, -1, -1, -1, 35, -1, 3077, -1, -1, -1,
18399 : -1, -1, -1, 276, 45, -1, -1, -1, -1, -1,
18400 : -1, 52, 4161, -1, -1, -1, -1, -1, 197, -1,
18401 : 2801, -1, 295, 202, -1, 920, -1, -1, -1, -1,
18402 : 4479, -1, -1, 4482, -1, -1, -1, 78, -1, -1,
18403 : -1, -1, -1, -1, -1, -1, 225, 226, -1, -1,
18404 : -1, -1, -1, 408, -1, -1, -1, -1, -1, -1,
18405 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18406 : -1, 344, 5666, -1, 253, -1, -1, 5671, 5672, -1,
18407 : -1, -1, -1, -1, -1, -1, 359, -1, -1, -1,
18408 : -1, 364, 365, -1, 367, -1, -1, -1, -1, 372,
18409 : -1, -1, -1, -1, -1, 378, -1, -1, 381, -1,
18410 : -1, -1, -1, -1, -1, 388, -1, 296, -1, -1,
18411 : -1, -1, 395, 396, 4573, 4574, -1, -1, -1, -1,
18412 : 403, -1, -1, 312, 407, 4584, 315, 178, -1, -1,
18413 : -1, -1, -1, -1, -1, 418, 1041, 1042, -1, -1,
18414 : -1, -1, 4601, -1, -1, -1, 197, -1, -1, -1,
18415 : 515, 202, 435, -1, -1, 2946, -1, -1, 2949, 524,
18416 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18417 : -1, -1, -1, 456, 225, 226, -1, 4336, -1, -1,
18418 : -1, 5785, -1, -1, -1, 468, -1, -1, -1, -1,
18419 : -1, 474, -1, -1, -1, -1, 479, -1, -1, -1,
18420 : -1, -1, 253, -1, -1, -1, -1, -1, 10, -1,
18421 : 493, 13, -1, -1, -1, 17, 18, 19, -1, 408,
18422 : -1, -1, -1, 4682, -1, -1, 4685, -1, -1, -1,
18423 : -1, 1368, -1, 35, 517, -1, 519, 520, 521, 522,
18424 : 523, 4400, -1, 45, 5848, 296, 4405, 3038, 4407, -1,
18425 : 52, -1, -1, 536, -1, -1, 539, -1, -1, -1,
18426 : 3051, 312, -1, -1, 315, -1, -1, -1, 3059, -1,
18427 : -1, -1, -1, -1, 4433, -1, 78, -1, -1, -1,
18428 : -1, -1, -1, -1, -1, -1, 1423, -1, -1, -1,
18429 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18430 : -1, -1, -1, -1, -1, -1, -1, 3098, -1, -1,
18431 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18432 : 4479, -1, -1, 4482, -1, -1, 515, -1, 3119, -1,
18433 : 3421, -1, -1, -1, -1, 524, 525, 526, 527, 528,
18434 : 529, 530, 531, 532, -1, -1, -1, -1, -1, -1,
18435 : -1, 10, -1, -1, 13, -1, -1, 408, 17, 18,
18436 : 19, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18437 : -1, 3162, -1, 3164, -1, 1280, 35, -1, -1, 38,
18438 : -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
18439 : -1, -1, -1, 52, -1, 197, -1, -1, -1, -1,
18440 : 202, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18441 : -1, -1, -1, -1, 4573, 4574, -1, 1322, -1, 78,
18442 : -1, -1, -1, 225, 226, 4584, -1, -1, -1, -1,
18443 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18444 : -1, -1, 4601, -1, -1, -1, 1351, 1352, 1353, -1,
18445 : 1355, 253, -1, -1, -1, -1, -1, -1, 4917, -1,
18446 : -1, 3252, -1, -1, 515, -1, -1, -1, 3259, -1,
18447 : -1, 1376, -1, 524, 525, 526, 527, 528, 529, 530,
18448 : 531, 532, -1, -1, -1, -1, -1, -1, -1, 10,
18449 : -1, -1, 13, -1, 296, -1, 17, 18, 19, -1,
18450 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18451 : 312, -1, -1, 315, 35, -1, 4975, 38, -1, -1,
18452 : -1, -1, -1, 4682, 45, -1, 4685, -1, 4987, -1,
18453 : -1, 52, -1, -1, -1, -1, -1, -1, 197, -1,
18454 : -1, -1, -1, 202, -1, -1, -1, -1, -1, -1,
18455 : -1, -1, -1, -1, -1, -1, -1, 78, -1, -1,
18456 : -1, -1, 5021, -1, -1, -1, 225, 226, -1, -1,
18457 : -1, -1, -1, -1, 1479, -1, -1, 10, 1483, 1484,
18458 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
18459 : -1, -1, -1, -1, 253, -1, -1, 1734, -1, -1,
18460 : -1, 1738, 35, -1, -1, -1, 408, -1, -1, -1,
18461 : -1, -1, 45, -1, -1, -1, -1, -1, -1, 52,
18462 : -1, -1, -1, -1, -1, 3716, -1, -1, -1, -1,
18463 : -1, -1, -1, -1, -1, 3726, -1, 296, -1, -1,
18464 : -1, 5100, 444, -1, -1, 78, -1, -1, -1, -1,
18465 : -1, -1, -1, 312, -1, -1, 315, -1, -1, -1,
18466 : 5119, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18467 : -1, -1, -1, -1, -1, -1, 197, -1, -1, -1,
18468 : -1, 202, -1, -1, -1, -1, -1, -1, -1, -1,
18469 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18470 : -1, -1, -1, -1, 225, 226, -1, -1, -1, -1,
18471 : -1, -1, -1, 515, -1, -1, -1, -1, -1, -1,
18472 : -1, -1, 524, 525, 526, 527, 528, 529, 530, 531,
18473 : 532, -1, 253, -1, -1, 10, -1, -1, 13, -1,
18474 : -1, -1, 17, 18, 19, -1, 5205, -1, -1, 408,
18475 : -1, -1, -1, -1, -1, -1, -1, -1, 4917, -1,
18476 : 35, -1, -1, -1, 197, -1, 6370, -1, -1, 202,
18477 : 45, -1, -1, -1, -1, 296, -1, 52, -1, -1,
18478 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18479 : -1, 312, 225, 226, 315, -1, -1, -1, 3889, 3890,
18480 : 3891, -1, -1, 78, -1, -1, -1, 3598, 3599, -1,
18481 : -1, -1, -1, -1, -1, 3906, 4975, -1, -1, -1,
18482 : 253, -1, -1, 1728, 1729, 1730, -1, -1, 4987, -1,
18483 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18484 : -1, -1, -1, -1, -1, -1, -1, -1, 3939, 3940,
18485 : -1, -1, -1, 3944, -1, -1, 515, -1, -1, -1,
18486 : -1, -1, 5021, 296, -1, 524, 525, 526, 527, 528,
18487 : 529, 530, 531, 532, -1, -1, -1, -1, 5337, 312,
18488 : 5339, -1, 315, -1, -1, -1, 10, 408, -1, 13,
18489 : -1, -1, -1, 17, 18, 19, -1, -1, -1, 332,
18490 : -1, -1, -1, 178, -1, -1, -1, -1, -1, -1,
18491 : -1, 35, -1, -1, -1, -1, -1, -1, 2055, -1,
18492 : -1, 45, 197, -1, -1, -1, -1, 202, 52, -1,
18493 : -1, 5390, -1, -1, -1, -1, -1, -1, -1, -1,
18494 : -1, 5100, -1, -1, 2081, -1, -1, -1, 2085, -1,
18495 : 225, 226, -1, -1, 78, -1, -1, -1, -1, 4050,
18496 : 5119, -1, -1, 2100, 2101, 2102, -1, 2104, -1, -1,
18497 : -1, -1, -1, -1, -1, 408, -1, -1, 253, -1,
18498 : -1, 5440, -1, -1, -1, -1, -1, -1, -1, 10,
18499 : -1, -1, 13, -1, 515, -1, 17, 18, 19, -1,
18500 : -1, -1, -1, 524, 525, 526, 527, 528, 529, 530,
18501 : 531, 532, -1, -1, 35, -1, -1, -1, -1, -1,
18502 : -1, 296, -1, -1, 45, -1, -1, -1, -1, -1,
18503 : -1, 52, -1, -1, -1, -1, -1, 312, -1, -1,
18504 : 315, -1, -1, -1, -1, -1, 5205, -1, -1, -1,
18505 : -1, -1, -1, -1, 178, -1, -1, 78, -1, -1,
18506 : -1, 3852, -1, -1, -1, -1, -1, -1, -1, -1,
18507 : -1, -1, -1, 197, -1, -1, -1, -1, 202, -1,
18508 : -1, -1, 515, -1, -1, -1, -1, -1, -1, -1,
18509 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18510 : -1, 225, 226, -1, -1, -1, -1, -1, -1, -1,
18511 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18512 : -1, -1, -1, -1, -1, 4216, 4217, 4218, -1, 253,
18513 : -1, -1, -1, 408, -1, -1, -1, -1, -1, -1,
18514 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18515 : -1, 172, 2057, -1, -1, -1, -1, -1, -1, -1,
18516 : -1, 2066, 2067, 2068, 2069, 2070, 2071, 2072, 2073, 2074,
18517 : 2075, -1, 296, -1, -1, 2080, 197, 2082, 5337, 2084,
18518 : 5339, 202, 2087, 2088, 2089, -1, -1, -1, 312, -1,
18519 : 2095, 315, -1, 2098, -1, -1, -1, -1, -1, -1,
18520 : -1, -1, -1, -1, 225, 226, -1, -1, 2113, 2114,
18521 : 2115, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18522 : -1, 4012, -1, -1, -1, 5684, 2131, -1, -1, -1,
18523 : -1, 5390, 253, -1, -1, -1, -1, -1, -1, 5698,
18524 : 515, 5400, -1, -1, -1, -1, -1, -1, -1, 524,
18525 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18526 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18527 : -1, 5730, -1, -1, -1, 296, -1, -1, -1, -1,
18528 : -1, 5440, -1, -1, 408, -1, 5445, -1, -1, -1,
18529 : -1, 312, -1, -1, 315, -1, -1, 10, -1, -1,
18530 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
18531 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18532 : -1, -1, 35, -1, -1, -1, -1, -1, -1, -1,
18533 : -1, -1, 45, -1, -1, -1, -1, -1, -1, 52,
18534 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18535 : 5809, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18536 : -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
18537 : -1, -1, -1, -1, 2279, -1, -1, -1, -1, -1,
18538 : -1, -1, -1, -1, -1, -1, 5845, 408, -1, -1,
18539 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
18540 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
18541 : -1, 10, -1, -1, 13, -1, -1, -1, 17, 18,
18542 : 19, -1, -1, -1, -1, -1, -1, -1, 2333, -1,
18543 : -1, -1, -1, -1, -1, -1, 35, -1, 151, -1,
18544 : -1, -1, -1, -1, -1, -1, 45, -1, -1, -1,
18545 : -1, -1, -1, 52, -1, 2592, -1, -1, -1, -1,
18546 : -1, -1, 5921, 4554, -1, 5924, -1, -1, -1, -1,
18547 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 78,
18548 : -1, -1, -1, -1, 197, 2390, -1, -1, -1, 202,
18549 : -1, -1, -1, -1, 515, 4586, -1, -1, -1, -1,
18550 : -1, -1, -1, 524, 525, 526, 527, 528, 529, 530,
18551 : 531, 532, 225, 226, -1, -1, -1, -1, -1, -1,
18552 : -1, -1, -1, -1, -1, 5684, -1, 4618, -1, -1,
18553 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5698,
18554 : 253, -1, -1, -1, -1, 10, -1, -1, 13, -1,
18555 : -1, 2688, 17, 18, 19, -1, -1, -1, -1, -1,
18556 : -1, -1, 4653, 2700, -1, -1, -1, -1, 2705, -1,
18557 : 35, 5730, -1, -1, -1, -1, -1, -1, -1, 4670,
18558 : 45, -1, -1, 296, -1, -1, -1, 52, -1, -1,
18559 : -1, -1, -1, -1, -1, -1, -1, -1, 197, 312,
18560 : -1, -1, 315, 202, -1, -1, -1, -1, -1, -1,
18561 : 6069, -1, -1, 78, -1, -1, -1, -1, -1, -1,
18562 : -1, -1, -1, -1, -1, -1, 225, 226, -1, -1,
18563 : -1, -1, -1, -1, 6093, -1, -1, -1, -1, -1,
18564 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18565 : 5809, -1, -1, -1, 253, -1, -1, -1, -1, -1,
18566 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18567 : 2575, 2576, 2577, 2578, 2579, 2580, 2581, 2582, 2583, -1,
18568 : 2585, -1, -1, -1, -1, -1, 5845, -1, -1, -1,
18569 : -1, 2596, -1, 2598, -1, 408, -1, 296, -1, -1,
18570 : -1, -1, -1, -1, -1, -1, -1, 172, -1, -1,
18571 : -1, -1, -1, 312, -1, -1, 315, -1, -1, -1,
18572 : -1, -1, -1, -1, 4815, 4816, 4817, 4818, -1, -1,
18573 : -1, 2636, 197, -1, -1, 2640, -1, 202, 2643, 4530,
18574 : 2645, -1, -1, 2648, -1, -1, -1, -1, -1, -1,
18575 : -1, -1, -1, 4544, -1, -1, -1, -1, -1, -1,
18576 : 225, 226, 5921, -1, -1, 5924, -1, -1, -1, -1,
18577 : -1, -1, -1, -1, 6233, -1, -1, -1, -1, -1,
18578 : -1, -1, -1, -1, -1, -1, -1, -1, 253, -1,
18579 : -1, -1, -1, -1, -1, -1, 2701, 2702, -1, -1,
18580 : -1, -1, 515, -1, -1, -1, -1, -1, -1, 408,
18581 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18582 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18583 : -1, 296, -1, -1, -1, -1, 10, -1, -1, 13,
18584 : -1, -1, -1, 17, 18, 19, -1, 312, -1, -1,
18585 : 315, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18586 : -1, 35, -1, -1, 38, -1, -1, -1, -1, -1,
18587 : -1, 45, -1, -1, -1, -1, 2781, -1, 52, -1,
18588 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18589 : 489, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18590 : -1, -1, -1, -1, 78, -1, -1, -1, -1, -1,
18591 : 6069, -1, -1, -1, -1, -1, 515, -1, -1, -1,
18592 : -1, -1, -1, -1, 6083, 524, 525, 526, 527, 528,
18593 : 529, 530, 531, 532, 6093, -1, -1, -1, 6397, -1,
18594 : -1, -1, -1, 408, -1, -1, -1, 10, -1, -1,
18595 : 13, -1, -1, -1, 17, 18, 19, -1, -1, -1,
18596 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18597 : -1, -1, 35, -1, -1, -1, -1, -1, -1, -1,
18598 : -1, -1, 45, -1, -1, -1, -1, -1, -1, 52,
18599 : -1, -1, -1, 6152, 6153, -1, -1, -1, -1, 6458,
18600 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18601 : -1, -1, -1, -1, -1, 78, -1, -1, -1, -1,
18602 : -1, -1, -1, 197, 6483, -1, -1, -1, 202, -1,
18603 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18604 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18605 : 515, 225, 226, -1, -1, -1, -1, -1, -1, 524,
18606 : 525, 526, 527, 528, 529, 530, 531, 532, -1, -1,
18607 : -1, -1, -1, -1, 6233, -1, 5167, -1, -1, 253,
18608 : -1, -1, -1, -1, -1, -1, -1, 5178, -1, -1,
18609 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18610 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18611 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 3024,
18612 : 3025, 3026, 296, -1, -1, 3030, -1, -1, -1, -1,
18613 : -1, -1, 3269, -1, 197, -1, -1, -1, 312, 202,
18614 : -1, 315, -1, -1, -1, -1, -1, -1, -1, 3286,
18615 : -1, -1, 3057, -1, -1, -1, -1, -1, -1, 3296,
18616 : -1, -1, 225, 226, -1, 3302, -1, -1, 3305, -1,
18617 : -1, -1, -1, -1, -1, 3312, 3313, -1, 3315, -1,
18618 : -1, -1, -1, 3320, 3321, -1, 3323, -1, 3325, -1,
18619 : 253, -1, 3329, -1, -1, 3332, -1, -1, -1, -1,
18620 : 3337, -1, -1, -1, -1, -1, -1, -1, -1, 3346,
18621 : -1, -1, -1, -1, 3351, -1, -1, -1, -1, -1,
18622 : -1, 3358, 3359, 3360, 3361, -1, -1, -1, -1, 3366,
18623 : 3367, -1, 3369, 296, 408, -1, -1, -1, 6397, -1,
18624 : -1, 5032, -1, -1, -1, -1, -1, -1, -1, 312,
18625 : -1, 3388, 315, 3390, -1, -1, 5047, -1, -1, -1,
18626 : 3397, 3398, 3399, 3400, 3401, 3402, 3403, 3404, 3405, 3406,
18627 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18628 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18629 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 6458,
18630 : -1, -1, -1, -1, -1, -1, 3443, -1, -1, -1,
18631 : -1, -1, 6471, 6472, -1, -1, -1, -1, -1, -1,
18632 : -1, -1, -1, -1, 6483, -1, -1, -1, -1, -1,
18633 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18634 : -1, 515, -1, -1, -1, 408, -1, -1, 5139, -1,
18635 : 524, 525, 526, 527, 528, 529, 530, 531, 532, -1,
18636 : -1, 3266, -1, -1, -1, -1, 3271, -1, -1, -1,
18637 : -1, -1, -1, 5464, -1, -1, -1, -1, 5469, -1,
18638 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18639 : -1, -1, -1, -1, -1, 20, -1, 5488, -1, -1,
18640 : -1, -1, -1, -1, -1, -1, 31, -1, 33, 34,
18641 : -1, -1, -1, -1, -1, -1, -1, 3322, -1, -1,
18642 : -1, -1, -1, -1, -1, -1, -1, -1, 3333, -1,
18643 : 3335, 3336, -1, -1, -1, -1, 61, -1, -1, -1,
18644 : -1, -1, -1, -1, 3349, -1, 3583, 3352, 73, 3354,
18645 : 75, 76, 515, -1, -1, -1, -1, 82, -1, 84,
18646 : -1, 524, 525, 526, 527, 528, 529, 530, 531, 532,
18647 : -1, -1, 97, -1, 99, -1, -1, -1, -1, -1,
18648 : -1, -1, -1, 23, -1, -1, 3391, -1, 3393, -1,
18649 : 3395, 116, -1, -1, 119, -1, -1, -1, -1, -1,
18650 : -1, 41, -1, -1, -1, -1, -1, -1, -1, 134,
18651 : -1, 136, -1, -1, -1, 140, -1, -1, -1, -1,
18652 : -1, -1, 147, -1, -1, -1, 66, -1, -1, -1,
18653 : -1, -1, 157, -1, 159, -1, -1, -1, -1, 79,
18654 : -1, 166, -1, -1, -1, -1, -1, -1, -1, -1,
18655 : -1, -1, -1, -1, -1, -1, 96, -1, -1, 184,
18656 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18657 : -1, -1, -1, 5364, 114, 5366, 201, -1, -1, -1,
18658 : 120, -1, -1, -1, 3489, -1, -1, -1, -1, 3494,
18659 : -1, -1, -1, -1, -1, -1, -1, -1, 138, -1,
18660 : -1, -1, -1, -1, 3509, -1, -1, -1, -1, -1,
18661 : -1, -1, 152, -1, -1, -1, -1, -1, -1, -1,
18662 : -1, 161, -1, -1, -1, -1, -1, -1, -1, -1,
18663 : 255, 256, -1, -1, 174, -1, 261, -1, -1, -1,
18664 : -1, -1, -1, 183, -1, -1, -1, 187, -1, -1,
18665 : -1, 276, -1, -1, -1, -1, -1, -1, -1, -1,
18666 : -1, 5752, -1, -1, -1, -1, -1, 207, -1, 3574,
18667 : 295, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18668 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5780,
18669 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18670 : -1, -1, 3839, 3840, -1, -1, -1, 3844, -1, -1,
18671 : -1, -1, -1, -1, -1, 5506, -1, 257, -1, 344,
18672 : -1, -1, -1, -1, -1, -1, -1, 267, -1, 3634,
18673 : -1, -1, -1, -1, 359, -1, 3873, -1, -1, 364,
18674 : 365, -1, 367, -1, -1, -1, -1, 372, -1, -1,
18675 : 375, -1, -1, 378, -1, -1, 381, -1, -1, -1,
18676 : -1, -1, -1, 388, -1, -1, -1, -1, -1, -1,
18677 : 395, 396, 312, -1, -1, 315, -1, -1, 403, -1,
18678 : -1, -1, 407, -1, -1, -1, -1, -1, -1, -1,
18679 : -1, -1, -1, 418, -1, -1, -1, -1, -1, 339,
18680 : 5891, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18681 : 435, -1, -1, 353, -1, -1, -1, -1, -1, -1,
18682 : 360, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18683 : -1, 456, -1, -1, -1, -1, -1, -1, -1, -1,
18684 : 380, -1, -1, 468, -1, -1, -1, -1, -1, 474,
18685 : 390, -1, -1, -1, 479, -1, -1, 397, -1, -1,
18686 : 400, -1, -1, -1, -1, -1, -1, -1, 493, -1,
18687 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18688 : 420, -1, -1, -1, -1, -1, -1, -1, 428, -1,
18689 : -1, -1, 517, -1, -1, 435, -1, 5688, 438, 5690,
18690 : 440, -1, 442, 443, -1, -1, -1, -1, -1, -1,
18691 : -1, 536, -1, -1, 539, -1, -1, -1, 458, -1,
18692 : -1, -1, -1, -1, -1, -1, 466, -1, -1, 469,
18693 : 3835, 4068, 472, -1, -1, -1, 3841, 4074, -1, -1,
18694 : -1, -1, -1, -1, -1, 485, -1, -1, -1, -1,
18695 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18696 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18697 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18698 : -1, -1, -1, -1, 4121, 4122, -1, -1, 4125, 4126,
18699 : 4127, 4128, -1, -1, 4131, 4132, 4133, 4134, 4135, 4136,
18700 : 4137, 4138, 4139, 4140, 4141, -1, -1, -1, -1, -1,
18701 : -1, 23, -1, -1, -1, 3920, 28, -1, -1, -1,
18702 : -1, -1, -1, -1, -1, -1, -1, 4164, -1, -1,
18703 : 4167, -1, 4169, -1, -1, 4172, 4173, -1, -1, -1,
18704 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18705 : -1, -1, -1, -1, 66, -1, -1, 4194, 4195, 4196,
18706 : 4197, -1, 4199, -1, -1, -1, -1, 79, -1, -1,
18707 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18708 : -1, -1, -1, -1, 96, -1, -1, -1, -1, -1,
18709 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18710 : -1, -1, 114, -1, -1, -1, -1, -1, -1, -1,
18711 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18712 : -1, -1, -1, -1, -1, -1, 138, -1, -1, -1,
18713 : -1, -1, 4269, -1, -1, -1, -1, -1, -1, -1,
18714 : 152, -1, -1, -1, -1, -1, -1, -1, -1, 161,
18715 : -1, -1, -1, -1, -1, -1, -1, 28, -1, -1,
18716 : -1, -1, 174, -1, 4069, -1, -1, -1, 180, -1,
18717 : -1, 5962, -1, 4078, -1, -1, -1, -1, -1, -1,
18718 : -1, -1, 4319, -1, -1, -1, -1, 4092, -1, -1,
18719 : -1, 4096, 4097, 4098, -1, 207, -1, -1, 4103, -1,
18720 : -1, 4106, -1, -1, 4109, -1, -1, -1, 79, -1,
18721 : 4115, -1, 4117, -1, -1, -1, -1, 4354, -1, -1,
18722 : -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
18723 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4144,
18724 : 4145, 4146, -1, 114, -1, -1, -1, -1, -1, 120,
18725 : -1, -1, -1, -1, -1, 267, -1, -1, 4163, -1,
18726 : -1, -1, -1, -1, -1, -1, 4171, 138, -1, 4174,
18727 : -1, 4176, -1, -1, -1, -1, -1, -1, -1, -1,
18728 : -1, 152, -1, -1, -1, -1, -1, 4192, -1, -1,
18729 : 161, -1, -1, -1, -1, 4200, 4201, -1, -1, -1,
18730 : 312, -1, 4207, 174, 6095, -1, -1, -1, -1, 180,
18731 : -1, -1, -1, -1, -1, -1, 187, -1, -1, -1,
18732 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18733 : -1, 4236, -1, -1, -1, -1, 207, 349, 350, -1,
18734 : -1, 353, -1, -1, -1, -1, -1, -1, -1, -1,
18735 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18736 : -1, -1, -1, -1, -1, -1, -1, -1, 380, -1,
18737 : -1, 383, -1, -1, 245, -1, -1, -1, 390, -1,
18738 : -1, -1, 4287, -1, -1, 397, -1, -1, 400, -1,
18739 : -1, -1, -1, -1, -1, -1, 267, -1, -1, 4304,
18740 : -1, -1, -1, -1, -1, -1, -1, -1, 420, 4546,
18741 : -1, -1, -1, -1, -1, -1, 428, -1, -1, -1,
18742 : -1, -1, -1, 435, -1, -1, 438, -1, -1, -1,
18743 : -1, 443, -1, -1, -1, -1, 6227, -1, -1, 451,
18744 : -1, 312, -1, -1, -1, -1, 458, -1, -1, -1,
18745 : -1, -1, -1, 4590, -1, -1, -1, -1, -1, -1,
18746 : -1, -1, -1, -1, -1, -1, -1, -1, 339, 6260,
18747 : 6261, -1, -1, 485, -1, -1, -1, -1, 349, 350,
18748 : -1, -1, 353, -1, -1, -1, -1, -1, -1, -1,
18749 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18750 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 380,
18751 : -1, -1, 383, -1, -1, -1, 387, -1, -1, 390,
18752 : -1, -1, -1, -1, -1, -1, 397, -1, -1, 400,
18753 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18754 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 420,
18755 : -1, -1, -1, -1, -1, -1, -1, 428, -1, -1,
18756 : -1, -1, 433, -1, 435, -1, -1, 438, -1, -1,
18757 : -1, -1, 443, -1, -1, 4712, -1, -1, -1, 4716,
18758 : -1, -1, 453, -1, -1, -1, -1, 458, -1, -1,
18759 : -1, -1, 4729, -1, -1, -1, 6387, -1, -1, -1,
18760 : 4737, 472, 4739, -1, 4741, 4742, -1, -1, -1, -1,
18761 : 4747, 4748, 4749, 4750, 485, -1, -1, 4754, 4755, 4756,
18762 : 4757, 4758, 4759, 4760, 4761, 4762, 4763, 4764, 4765, 4766,
18763 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18764 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18765 : -1, -1, -1, 4790, -1, -1, 4793, -1, 4795, -1,
18766 : -1, -1, 4799, -1, -1, 4802, 4803, -1, -1, 4806,
18767 : 4807, -1, -1, -1, -1, 4812, -1, -1, -1, -1,
18768 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18769 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18770 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18771 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18772 : -1, -1, -1, -1, -1, 4630, 4631, -1, -1, 4866,
18773 : -1, -1, -1, -1, -1, -1, 4641, -1, -1, -1,
18774 : -1, -1, -1, 4880, -1, -1, -1, -1, -1, -1,
18775 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18776 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18777 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18778 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18779 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18780 : -1, -1, -1, -1, -1, -1, 4711, -1, -1, -1,
18781 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18782 : -1, -1, 4727, -1, -1, -1, -1, -1, -1, -1,
18783 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18784 : 4745, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18785 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18786 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18787 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 4784,
18788 : 4785, -1, -1, -1, -1, -1, 4791, 4792, -1, -1,
18789 : -1, 4796, -1, -1, -1, -1, 4801, -1, -1, 4804,
18790 : 4805, -1, -1, -1, -1, -1, 4811, -1, -1, -1,
18791 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18792 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18793 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18794 : -1, -1, -1, -1, 5081, -1, -1, -1, -1, -1,
18795 : -1, 4856, -1, -1, -1, -1, -1, -1, -1, -1,
18796 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18797 : 4875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18798 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18799 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18800 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18801 : -1, -1, -1, -1, -1, -1, -1, 4922, -1, -1,
18802 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18803 : -1, -1, 5169, 5170, -1, -1, -1, -1, -1, -1,
18804 : 5177, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18805 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18806 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18807 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18808 : -1, -1, -1, 5220, -1, -1, -1, -1, -1, -1,
18809 : -1, -1, -1, -1, -1, -1, -1, -1, 5003, -1,
18810 : -1, -1, -1, -1, -1, 5010, 5243, 5244, -1, -1,
18811 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18812 : -1, -1, -1, -1, -1, 5262, -1, 5264, -1, -1,
18813 : -1, 5268, 5269, 5270, 5271, -1, -1, 5274, 5275, -1,
18814 : -1, -1, -1, 5280, -1, -1, -1, -1, -1, -1,
18815 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18816 : 5297, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18817 : -1, -1, -1, 5078, -1, -1, -1, -1, 5315, -1,
18818 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18819 : -1, -1, -1, 5330, -1, -1, -1, -1, -1, -1,
18820 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18821 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18822 : -1, -1, -1, 5360, -1, -1, -1, -1, -1, -1,
18823 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18824 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18825 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18826 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18827 : -1, -1, -1, -1, 5411, -1, 5413, -1, -1, -1,
18828 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18829 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18830 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18831 : -1, 5448, -1, -1, -1, -1, -1, -1, -1, -1,
18832 : -1, -1, -1, -1, -1, -1, 5231, -1, -1, -1,
18833 : -1, -1, -1, -1, -1, -1, 5241, -1, -1, -1,
18834 : -1, -1, 5247, 5248, 5249, -1, -1, -1, -1, -1,
18835 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18836 : -1, -1, -1, -1, -1, -1, -1, 5272, 5273, -1,
18837 : -1, 5276, -1, -1, -1, -1, -1, -1, -1, -1,
18838 : -1, -1, -1, -1, -1, -1, -1, -1, 5293, -1,
18839 : -1, -1, -1, -1, -1, -1, -1, -1, 5303, -1,
18840 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 5314,
18841 : -1, -1, -1, -1, -1, -1, -1, 5322, -1, 5556,
18842 : -1, 5558, 5559, 5560, 5561, 5562, 5331, -1, -1, -1,
18843 : -1, -1, -1, -1, -1, -1, -1, -1, 5575, 5576,
18844 : 5577, -1, -1, -1, -1, -1, -1, -1, 5585, -1,
18845 : -1, -1, -1, 5590, -1, -1, 5593, -1, -1, -1,
18846 : 5597, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18847 : -1, -1, -1, -1, -1, -1, -1, -1, 5615, -1,
18848 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18849 : -1, -1, -1, -1, -1, -1, -1, 5634, -1, -1,
18850 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18851 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18852 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18853 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18854 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18855 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18856 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18857 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18858 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18859 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18860 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18861 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18862 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18863 : -1, -1, -1, -1, -1, -1, -1, 5542, -1, -1,
18864 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18865 : -1, -1, -1, -1, -1, -1, -1, -1, 5563, -1,
18866 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18867 : -1, -1, -1, 5810, -1, -1, -1, -1, -1, -1,
18868 : -1, -1, -1, -1, 5821, -1, -1, -1, -1, -1,
18869 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18870 : -1, -1, -1, 5608, -1, 5842, -1, 5844, -1, -1,
18871 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18872 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18873 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18874 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18875 : -1, -1, -1, -1, -1, 5660, -1, -1, 5895, -1,
18876 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18877 : 5907, 5676, -1, -1, -1, -1, -1, -1, -1, -1,
18878 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18879 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18880 : -1, -1, -1, -1, -1, -1, 5943, -1, -1, -1,
18881 : -1, -1, -1, 5718, -1, -1, -1, -1, -1, -1,
18882 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18883 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18884 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18885 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18886 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18887 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18888 : -1, -1, -1, -1, -1, -1, 6023, -1, -1, -1,
18889 : -1, -1, -1, 6030, -1, -1, -1, -1, -1, -1,
18890 : -1, -1, -1, 5808, -1, -1, -1, -1, -1, -1,
18891 : -1, -1, -1, -1, -1, 5820, -1, -1, -1, -1,
18892 : -1, -1, -1, -1, 5829, 5830, 5831, -1, -1, 6066,
18893 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18894 : -1, -1, -1, -1, 6081, -1, -1, -1, -1, -1,
18895 : -1, -1, 5857, -1, -1, -1, -1, -1, -1, -1,
18896 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18897 : -1, 5876, -1, -1, -1, -1, -1, -1, -1, -1,
18898 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18899 : -1, 5896, -1, -1, -1, -1, -1, -1, -1, -1,
18900 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18901 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18902 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18903 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18904 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18905 : -1, -1, 6189, 6190, -1, -1, 6193, -1, -1, -1,
18906 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18907 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18908 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18909 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18910 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18911 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18912 : 6257, -1, 6027, -1, -1, -1, -1, -1, -1, -1,
18913 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18914 : -1, -1, -1, -1, -1, 6282, -1, 6052, -1, -1,
18915 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18916 : -1, -1, -1, 6300, 6301, -1, 6303, -1, -1, -1,
18917 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18918 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18919 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18920 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18921 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18922 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 6134,
18923 : -1, -1, -1, -1, -1, 6372, -1, -1, -1, -1,
18924 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18925 : -1, -1, -1, 6158, -1, -1, -1, -1, -1, -1,
18926 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18927 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18928 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18929 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18930 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18931 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18932 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18933 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18934 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18935 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
18936 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
18937 : -1, 5, 6, -1, 8, 9, 10, 11, 12, -1,
18938 : -1, -1, -1, -1, -1, 6290, 20, 21, 22, 23,
18939 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
18940 : -1, 6306, -1, 37, -1, -1, 40, 41, 42, -1,
18941 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
18942 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
18943 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
18944 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
18945 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
18946 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
18947 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
18948 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
18949 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
18950 : 134, 135, -1, 137, 138, 139, 140, 141, -1, 143,
18951 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
18952 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
18953 : 164, 165, 6437, 167, 168, 169, 170, 171, -1, 173,
18954 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
18955 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
18956 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
18957 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
18958 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
18959 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
18960 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
18961 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
18962 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
18963 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
18964 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
18965 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
18966 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
18967 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
18968 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
18969 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
18970 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
18971 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
18972 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
18973 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
18974 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
18975 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
18976 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
18977 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
18978 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
18979 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
18980 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
18981 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
18982 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
18983 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
18984 : 474, 475, 476, 477, 478, 479, 480, 481, 482, 483,
18985 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
18986 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
18987 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
18988 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
18989 : -1, -1, -1, 527, 528, 529, -1, -1, -1, -1,
18990 : -1, -1, 536, 537, 3, -1, 5, 6, -1, 8,
18991 : 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
18992 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
18993 : -1, 30, 31, 32, -1, -1, -1, -1, 37, -1,
18994 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
18995 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
18996 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
18997 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
18998 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
18999 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
19000 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
19001 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
19002 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
19003 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
19004 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
19005 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
19006 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
19007 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
19008 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
19009 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
19010 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
19011 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
19012 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
19013 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
19014 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
19015 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
19016 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
19017 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
19018 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
19019 : 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
19020 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
19021 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
19022 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
19023 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
19024 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
19025 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
19026 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
19027 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
19028 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
19029 : 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
19030 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
19031 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
19032 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
19033 : 429, 430, -1, 432, 433, 434, 435, 436, 437, 438,
19034 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
19035 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
19036 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
19037 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
19038 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
19039 : -1, -1, 491, -1, 493, 494, 495, 496, 497, 498,
19040 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
19041 : 509, 510, 511, 512, 513, -1, 515, -1, 517, -1,
19042 : -1, -1, -1, -1, -1, -1, -1, -1, 527, 528,
19043 : -1, -1, -1, -1, -1, -1, -1, 536, 537, 3,
19044 : -1, 5, 6, -1, 8, 9, 10, 11, 12, -1,
19045 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
19046 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
19047 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
19048 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
19049 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
19050 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19051 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19052 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19053 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19054 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19055 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19056 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19057 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
19058 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19059 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19060 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
19061 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
19062 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19063 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19064 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19065 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19066 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19067 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19068 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
19069 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19070 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19071 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19072 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19073 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19074 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19075 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19076 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19077 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19078 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19079 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19080 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19081 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19082 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19083 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19084 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19085 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19086 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19087 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19088 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
19089 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19090 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19091 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
19092 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19093 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19094 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19095 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
19096 : -1, -1, -1, 527, 528, -1, -1, -1, -1, -1,
19097 : -1, -1, 536, 537, 3, -1, 5, 6, -1, 8,
19098 : 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
19099 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
19100 : -1, 30, 31, 32, -1, -1, -1, -1, 37, -1,
19101 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
19102 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
19103 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
19104 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
19105 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
19106 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
19107 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
19108 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
19109 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
19110 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
19111 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
19112 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
19113 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
19114 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
19115 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
19116 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
19117 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
19118 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
19119 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
19120 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
19121 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
19122 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
19123 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
19124 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
19125 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
19126 : 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
19127 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
19128 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
19129 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
19130 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
19131 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
19132 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
19133 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
19134 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
19135 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
19136 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
19137 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
19138 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
19139 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
19140 : 429, 430, -1, 432, 433, 434, -1, 436, 437, 438,
19141 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
19142 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
19143 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
19144 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
19145 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
19146 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
19147 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
19148 : 509, 510, 511, 512, 513, -1, 515, -1, -1, -1,
19149 : -1, -1, -1, -1, -1, -1, -1, -1, 527, 528,
19150 : -1, -1, -1, -1, -1, -1, -1, 536, 537, 3,
19151 : -1, 5, 6, -1, 8, 9, 10, 11, 12, -1,
19152 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
19153 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
19154 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
19155 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
19156 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
19157 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19158 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19159 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19160 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19161 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19162 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19163 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19164 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
19165 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19166 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19167 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
19168 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
19169 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19170 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19171 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19172 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19173 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19174 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19175 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
19176 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19177 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19178 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19179 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19180 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19181 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19182 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19183 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19184 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19185 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19186 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19187 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19188 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19189 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19190 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19191 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19192 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19193 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19194 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19195 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
19196 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19197 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19198 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
19199 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19200 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19201 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19202 : -1, 515, -1, -1, -1, -1, -1, 3, -1, -1,
19203 : -1, -1, -1, 527, 528, -1, -1, -1, -1, -1,
19204 : -1, -1, 536, 537, 20, 21, 22, 23, 24, 25,
19205 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
19206 : -1, -1, 38, -1, 40, 41, 42, -1, 44, 45,
19207 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
19208 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
19209 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
19210 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
19211 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
19212 : 96, 97, 98, -1, 100, 101, 102, 103, -1, -1,
19213 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
19214 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
19215 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
19216 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
19217 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
19218 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
19219 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
19220 : 176, -1, -1, 179, 180, 181, 182, 183, -1, 185,
19221 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
19222 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
19223 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
19224 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
19225 : -1, 227, 228, 229, 230, 231, 232, 233, 234, 235,
19226 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
19227 : 246, -1, -1, 249, 250, 251, 252, -1, -1, 255,
19228 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
19229 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
19230 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
19231 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
19232 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
19233 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
19234 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
19235 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
19236 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
19237 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
19238 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
19239 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
19240 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
19241 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
19242 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
19243 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
19244 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
19245 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
19246 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
19247 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
19248 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
19249 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
19250 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
19251 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
19252 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
19253 : 506, 507, 508, 509, 510, 511, 512, 513, -1, -1,
19254 : -1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
19255 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19256 : -1, 537, 20, 21, 22, 23, 24, 25, 26, 27,
19257 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
19258 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
19259 : 48, 49, 50, 51, -1, 53, 54, 55, 56, -1,
19260 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
19261 : 68, 69, 70, 71, -1, 73, 74, 75, 76, -1,
19262 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
19263 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
19264 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
19265 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
19266 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
19267 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
19268 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
19269 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
19270 : -1, 159, 160, 161, 162, -1, -1, 165, -1, 167,
19271 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
19272 : -1, 179, 180, 181, 182, 183, -1, 185, -1, -1,
19273 : -1, 189, 190, -1, 192, 193, 194, 195, 196, 197,
19274 : 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
19275 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
19276 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
19277 : 228, 229, -1, -1, -1, -1, -1, -1, -1, -1,
19278 : -1, -1, 240, 241, 242, 243, 244, 245, 246, -1,
19279 : -1, 249, -1, 251, 252, 253, -1, 255, 256, 257,
19280 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
19281 : 268, 269, -1, 271, 272, 273, 274, 275, 276, 277,
19282 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
19283 : 288, 289, -1, -1, 292, -1, 294, 295, 296, 297,
19284 : -1, -1, 300, 301, 302, 303, 304, 305, -1, 307,
19285 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
19286 : 318, 319, 320, 321, 322, -1, 324, 325, 326, 327,
19287 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
19288 : 338, 339, -1, 341, -1, 343, 344, 345, -1, 347,
19289 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
19290 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
19291 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
19292 : 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
19293 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
19294 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
19295 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
19296 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
19297 : 428, -1, 430, -1, 432, 433, -1, -1, 436, 437,
19298 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
19299 : -1, -1, 450, 451, -1, 453, -1, -1, 456, 457,
19300 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
19301 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
19302 : 478, -1, 480, 481, 482, 483, 484, 485, 486, 487,
19303 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
19304 : 498, 499, -1, 3, -1, -1, -1, -1, -1, -1,
19305 : -1, -1, -1, 511, 512, 513, -1, -1, -1, -1,
19306 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
19307 : 30, 31, 32, -1, -1, -1, -1, -1, -1, 537,
19308 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
19309 : 50, 51, -1, 53, 54, 55, 56, -1, 58, 59,
19310 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
19311 : 70, 71, -1, 73, 74, 75, 76, -1, -1, 79,
19312 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
19313 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
19314 : 100, 101, 102, 103, -1, -1, -1, 107, -1, -1,
19315 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
19316 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
19317 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
19318 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
19319 : 150, 151, 152, -1, 154, 155, 156, 157, -1, 159,
19320 : 160, 161, 162, -1, -1, 165, -1, 167, 168, 169,
19321 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
19322 : 180, 181, 182, 183, -1, 185, -1, -1, -1, 189,
19323 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
19324 : 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
19325 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
19326 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
19327 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19328 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
19329 : -1, 251, 252, 253, -1, 255, 256, 257, -1, -1,
19330 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
19331 : -1, 271, 272, 273, 274, 275, 276, 277, 278, 279,
19332 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
19333 : -1, -1, 292, -1, 294, 295, 296, 297, -1, -1,
19334 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
19335 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
19336 : 320, 321, 322, -1, 324, 325, 326, 327, 328, 329,
19337 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
19338 : -1, 341, -1, 343, 344, 345, -1, 347, 348, 349,
19339 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
19340 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
19341 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
19342 : 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
19343 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
19344 : 400, 401, -1, 403, 404, 405, 406, 407, 408, 409,
19345 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
19346 : 420, 421, 422, 423, 424, 425, 426, 427, 428, -1,
19347 : 430, -1, 432, 433, -1, -1, 436, 437, 438, 439,
19348 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
19349 : 450, 451, -1, 453, -1, -1, 456, 457, 458, 459,
19350 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
19351 : 470, 471, -1, -1, 474, 475, 476, 477, 478, -1,
19352 : 480, 481, 482, 483, 484, 485, 486, 487, 488, -1,
19353 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
19354 : -1, 3, -1, 5, 6, -1, 8, 9, 10, 11,
19355 : 12, 511, 512, 513, -1, -1, -1, -1, 20, 21,
19356 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
19357 : 32, -1, -1, -1, -1, 37, -1, 537, 40, 41,
19358 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
19359 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
19360 : 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
19361 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
19362 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
19363 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
19364 : 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
19365 : 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
19366 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
19367 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
19368 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
19369 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
19370 : 162, 163, 164, 165, -1, 167, 168, 169, 170, 171,
19371 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
19372 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
19373 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
19374 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
19375 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
19376 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
19377 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
19378 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
19379 : 252, 253, -1, 255, 256, 257, 258, 259, 260, 261,
19380 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
19381 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
19382 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
19383 : 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
19384 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
19385 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
19386 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
19387 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
19388 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
19389 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
19390 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
19391 : 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
19392 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
19393 : 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
19394 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
19395 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
19396 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
19397 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
19398 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
19399 : 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
19400 : 462, 463, 464, -1, 466, 467, 468, 469, 470, 471,
19401 : 472, -1, 474, 475, 476, 477, 478, 479, 480, -1,
19402 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
19403 : -1, 493, 494, 495, 496, 497, 498, 499, 500, 501,
19404 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
19405 : 512, 513, -1, 515, -1, 517, -1, -1, -1, -1,
19406 : -1, -1, -1, -1, -1, 527, 528, -1, -1, -1,
19407 : 3, -1, 5, 6, 536, 8, 9, 10, 11, 12,
19408 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
19409 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
19410 : -1, -1, -1, -1, 37, -1, -1, 40, 41, 42,
19411 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
19412 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
19413 : 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
19414 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
19415 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
19416 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
19417 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
19418 : 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
19419 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
19420 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
19421 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
19422 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
19423 : 163, 164, 165, -1, 167, 168, 169, 170, 171, -1,
19424 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
19425 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
19426 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
19427 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
19428 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
19429 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
19430 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
19431 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
19432 : 253, -1, 255, 256, 257, 258, 259, 260, 261, 262,
19433 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
19434 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
19435 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
19436 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
19437 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
19438 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
19439 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
19440 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
19441 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
19442 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
19443 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
19444 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
19445 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
19446 : 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
19447 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
19448 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
19449 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
19450 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
19451 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
19452 : 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
19453 : 463, 464, -1, 466, 467, 468, 469, 470, 471, 472,
19454 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
19455 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
19456 : 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
19457 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
19458 : 513, -1, 515, -1, 517, -1, -1, -1, -1, -1,
19459 : -1, -1, -1, -1, 527, 528, -1, -1, -1, 3,
19460 : -1, 5, 6, 536, 8, 9, 10, 11, 12, -1,
19461 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
19462 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
19463 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
19464 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
19465 : 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
19466 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19467 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19468 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19469 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19470 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19471 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19472 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19473 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
19474 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19475 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19476 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
19477 : -1, 175, 176, 177, 178, 179, 180, 181, 182, 183,
19478 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19479 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19480 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19481 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19482 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19483 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19484 : 244, 245, 246, -1, 248, 249, 250, 251, 252, 253,
19485 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19486 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19487 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19488 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19489 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19490 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19491 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19492 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19493 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19494 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19495 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19496 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19497 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19498 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19499 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19500 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19501 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19502 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19503 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19504 : -1, 445, 446, 447, -1, 449, 450, 451, 452, 453,
19505 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19506 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19507 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
19508 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19509 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19510 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19511 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
19512 : -1, -1, -1, 527, 528, -1, -1, -1, 3, -1,
19513 : 5, 6, 536, 8, 9, 10, 11, 12, -1, -1,
19514 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
19515 : 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
19516 : -1, 36, 37, -1, -1, 40, 41, 42, -1, 44,
19517 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
19518 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
19519 : 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
19520 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
19521 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
19522 : 95, 96, 97, 98, -1, 100, 101, 102, 103, 104,
19523 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
19524 : 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
19525 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
19526 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
19527 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
19528 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
19529 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
19530 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
19531 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
19532 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
19533 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
19534 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
19535 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
19536 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
19537 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
19538 : 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
19539 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
19540 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
19541 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
19542 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
19543 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
19544 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
19545 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
19546 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
19547 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
19548 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
19549 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
19550 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
19551 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
19552 : 395, -1, 397, 398, 399, 400, 401, 402, 403, 404,
19553 : 405, 406, 407, 408, 409, 410, 411, 412, 413, 414,
19554 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
19555 : 425, 426, 427, 428, 429, 430, -1, 432, 433, 434,
19556 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
19557 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
19558 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
19559 : -1, 466, 467, 468, 469, 470, 471, 472, -1, 474,
19560 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
19561 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
19562 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
19563 : 505, 506, 507, 508, 509, 510, 511, 512, 513, -1,
19564 : 515, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19565 : -1, -1, 527, 528, -1, -1, -1, 3, -1, 5,
19566 : 6, 536, 8, 9, 10, 11, 12, -1, -1, -1,
19567 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
19568 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
19569 : 36, 37, -1, -1, 40, 41, 42, -1, 44, 45,
19570 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
19571 : 56, -1, 58, 59, 60, 61, 62, 63, 64, 65,
19572 : 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
19573 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
19574 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
19575 : 96, 97, 98, -1, 100, 101, 102, 103, 104, 105,
19576 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
19577 : 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
19578 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
19579 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
19580 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
19581 : 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
19582 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
19583 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
19584 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
19585 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
19586 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
19587 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
19588 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
19589 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
19590 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
19591 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
19592 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
19593 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
19594 : 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
19595 : 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
19596 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
19597 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
19598 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
19599 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
19600 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
19601 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
19602 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
19603 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
19604 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
19605 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
19606 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
19607 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
19608 : 426, 427, 428, 429, 430, -1, 432, 433, 434, -1,
19609 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
19610 : 446, 447, -1, -1, 450, 451, 452, 453, 454, 455,
19611 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
19612 : 466, 467, 468, 469, 470, 471, 472, -1, 474, 475,
19613 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
19614 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
19615 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
19616 : 506, 507, 508, 509, 510, 511, 512, 513, -1, 515,
19617 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19618 : -1, 527, 528, -1, -1, -1, 3, -1, 5, 6,
19619 : 536, 8, 9, 10, 11, 12, -1, -1, -1, -1,
19620 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
19621 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
19622 : 37, -1, -1, 40, 41, 42, -1, 44, 45, 46,
19623 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
19624 : -1, 58, 59, 60, 61, 62, 63, 64, 65, 66,
19625 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
19626 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
19627 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
19628 : 97, 98, -1, 100, 101, 102, 103, 104, 105, 106,
19629 : 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
19630 : 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
19631 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
19632 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
19633 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
19634 : 157, 158, 159, 160, 161, 162, 163, 164, 165, -1,
19635 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
19636 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
19637 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
19638 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
19639 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
19640 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
19641 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
19642 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
19643 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
19644 : 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
19645 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
19646 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
19647 : 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
19648 : 297, 298, 299, 300, 301, 302, 303, 304, 305, -1,
19649 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
19650 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
19651 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
19652 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
19653 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
19654 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
19655 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
19656 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
19657 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
19658 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
19659 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
19660 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
19661 : 427, 428, 429, 430, -1, 432, 433, 434, -1, 436,
19662 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
19663 : 447, -1, -1, 450, 451, 452, 453, 454, 455, 456,
19664 : 457, 458, 459, 460, 461, 462, 463, 464, -1, 466,
19665 : 467, 468, 469, 470, 471, 472, -1, 474, 475, 476,
19666 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
19667 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
19668 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
19669 : 507, 508, 509, 510, 511, 512, 513, -1, 515, -1,
19670 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19671 : 527, 528, -1, -1, -1, -1, -1, 534, 535, 536,
19672 : 3, -1, 5, 6, -1, 8, 9, 10, 11, 12,
19673 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
19674 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
19675 : -1, -1, -1, -1, 37, -1, -1, 40, 41, 42,
19676 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
19677 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
19678 : 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
19679 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
19680 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
19681 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
19682 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
19683 : 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
19684 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
19685 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
19686 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
19687 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
19688 : 163, 164, 165, -1, 167, 168, 169, 170, 171, -1,
19689 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
19690 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
19691 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
19692 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
19693 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
19694 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
19695 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
19696 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
19697 : 253, -1, 255, 256, 257, 258, 259, 260, 261, 262,
19698 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
19699 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
19700 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
19701 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
19702 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
19703 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
19704 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
19705 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
19706 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
19707 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
19708 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
19709 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
19710 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
19711 : 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
19712 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
19713 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
19714 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
19715 : 433, 434, -1, 436, 437, 438, 439, 440, 441, 442,
19716 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
19717 : 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
19718 : 463, 464, -1, 466, 467, 468, 469, 470, 471, 472,
19719 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
19720 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
19721 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
19722 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
19723 : 513, -1, 515, -1, -1, -1, -1, -1, -1, -1,
19724 : -1, -1, -1, -1, 527, 528, 529, -1, -1, 3,
19725 : -1, 5, 6, 536, 8, 9, 10, 11, 12, -1,
19726 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
19727 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
19728 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
19729 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
19730 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
19731 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
19732 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
19733 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
19734 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
19735 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
19736 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
19737 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
19738 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
19739 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
19740 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
19741 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
19742 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
19743 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
19744 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
19745 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
19746 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
19747 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
19748 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
19749 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
19750 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
19751 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
19752 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
19753 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
19754 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
19755 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
19756 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
19757 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
19758 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
19759 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
19760 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
19761 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
19762 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
19763 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
19764 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
19765 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
19766 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
19767 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
19768 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
19769 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
19770 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
19771 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
19772 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
19773 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
19774 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
19775 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
19776 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
19777 : -1, -1, -1, 527, 528, -1, -1, -1, 3, -1,
19778 : 5, 6, 536, 8, 9, 10, 11, 12, -1, -1,
19779 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
19780 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
19781 : -1, -1, 37, -1, -1, 40, 41, 42, -1, 44,
19782 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
19783 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
19784 : 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
19785 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
19786 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
19787 : 95, 96, 97, 98, -1, 100, 101, 102, 103, 104,
19788 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
19789 : 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
19790 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
19791 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
19792 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
19793 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
19794 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
19795 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
19796 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
19797 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
19798 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
19799 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
19800 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
19801 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
19802 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
19803 : 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
19804 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
19805 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
19806 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
19807 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
19808 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
19809 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
19810 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
19811 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
19812 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
19813 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
19814 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
19815 : 375, 376, 377, 378, 379, 380, 381, 382, 383, 384,
19816 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
19817 : 395, -1, 397, 398, 399, 400, 401, 402, 403, 404,
19818 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
19819 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
19820 : 425, 426, 427, 428, 429, 430, -1, 432, 433, 434,
19821 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
19822 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
19823 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
19824 : -1, 466, 467, 468, 469, 470, 471, 472, -1, 474,
19825 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
19826 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
19827 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
19828 : 505, 506, 507, 508, 509, 510, 511, 512, 513, -1,
19829 : 515, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19830 : -1, -1, 527, 528, -1, -1, -1, 3, -1, 5,
19831 : 6, 536, 8, 9, 10, 11, 12, -1, -1, -1,
19832 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
19833 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
19834 : -1, 37, -1, -1, 40, 41, 42, -1, 44, 45,
19835 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
19836 : 56, -1, 58, 59, 60, 61, 62, 63, 64, 65,
19837 : 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
19838 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
19839 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
19840 : 96, 97, 98, -1, 100, 101, 102, 103, 104, 105,
19841 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
19842 : 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
19843 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
19844 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
19845 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
19846 : 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
19847 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
19848 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
19849 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
19850 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
19851 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
19852 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
19853 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
19854 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
19855 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
19856 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
19857 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
19858 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
19859 : 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
19860 : 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
19861 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
19862 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
19863 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
19864 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
19865 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
19866 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
19867 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
19868 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
19869 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
19870 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
19871 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
19872 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
19873 : 426, 427, 428, 429, 430, -1, 432, 433, 434, -1,
19874 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
19875 : 446, 447, -1, -1, 450, 451, 452, 453, 454, 455,
19876 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
19877 : 466, 467, 468, 469, 470, 471, 472, -1, 474, 475,
19878 : 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
19879 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
19880 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
19881 : 506, 507, 508, 509, 510, 511, 512, 513, -1, 515,
19882 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19883 : -1, 527, 528, -1, -1, -1, 3, -1, 5, 6,
19884 : 536, 8, 9, 10, 11, 12, -1, -1, -1, -1,
19885 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
19886 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
19887 : 37, -1, -1, 40, 41, 42, -1, 44, 45, 46,
19888 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
19889 : -1, 58, 59, 60, 61, 62, 63, 64, 65, 66,
19890 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
19891 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
19892 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
19893 : 97, 98, -1, 100, 101, 102, 103, 104, 105, 106,
19894 : 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
19895 : 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
19896 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
19897 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
19898 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
19899 : 157, 158, 159, 160, 161, 162, 163, 164, 165, -1,
19900 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
19901 : 177, 178, 179, 180, 181, 182, 183, -1, 185, 186,
19902 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
19903 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
19904 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
19905 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
19906 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
19907 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
19908 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
19909 : 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
19910 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
19911 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
19912 : 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
19913 : 297, 298, 299, 300, 301, 302, 303, 304, 305, -1,
19914 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
19915 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
19916 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
19917 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
19918 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
19919 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
19920 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
19921 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
19922 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
19923 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
19924 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
19925 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
19926 : 427, 428, 429, 430, -1, 432, 433, 434, -1, 436,
19927 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
19928 : 447, -1, -1, 450, 451, 452, 453, 454, 455, 456,
19929 : 457, 458, 459, 460, 461, 462, 463, 464, -1, 466,
19930 : 467, 468, 469, 470, 471, 472, -1, 474, 475, 476,
19931 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
19932 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
19933 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
19934 : 507, 508, 509, 510, 511, 512, 513, -1, 515, -1,
19935 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
19936 : 527, 528, -1, -1, -1, 3, -1, 5, 6, 536,
19937 : 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
19938 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
19939 : 28, -1, 30, 31, 32, -1, -1, -1, -1, 37,
19940 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
19941 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
19942 : 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
19943 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
19944 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
19945 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
19946 : 98, -1, 100, 101, 102, 103, 104, 105, 106, 107,
19947 : 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
19948 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
19949 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
19950 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
19951 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
19952 : 158, 159, 160, 161, 162, 163, 164, 165, -1, 167,
19953 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
19954 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
19955 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
19956 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
19957 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
19958 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
19959 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
19960 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
19961 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
19962 : 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
19963 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
19964 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
19965 : 288, 289, 290, 291, 292, 293, 294, 295, 296, 297,
19966 : 298, 299, 300, 301, 302, 303, 304, 305, -1, 307,
19967 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
19968 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
19969 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
19970 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
19971 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
19972 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
19973 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
19974 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
19975 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
19976 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
19977 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
19978 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
19979 : 428, 429, 430, -1, 432, 433, 434, -1, 436, 437,
19980 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
19981 : 448, -1, 450, 451, 452, 453, 454, 455, 456, 457,
19982 : 458, 459, 460, 461, 462, 463, 464, -1, 466, 467,
19983 : 468, 469, 470, 471, 472, -1, 474, 475, 476, 477,
19984 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
19985 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
19986 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
19987 : 508, 509, 510, 511, 512, 513, -1, 515, -1, -1,
19988 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 527,
19989 : 528, -1, -1, -1, 3, -1, 5, 6, 536, 8,
19990 : 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
19991 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
19992 : -1, 30, 31, 32, -1, -1, -1, -1, 37, -1,
19993 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
19994 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
19995 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
19996 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
19997 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
19998 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
19999 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
20000 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
20001 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
20002 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
20003 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
20004 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
20005 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
20006 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
20007 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
20008 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
20009 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
20010 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
20011 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
20012 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
20013 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
20014 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
20015 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
20016 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
20017 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
20018 : 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
20019 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
20020 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
20021 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
20022 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
20023 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
20024 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
20025 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
20026 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
20027 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
20028 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
20029 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
20030 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
20031 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
20032 : 429, 430, -1, 432, 433, 434, -1, 436, 437, 438,
20033 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
20034 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
20035 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
20036 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
20037 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
20038 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
20039 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
20040 : 509, 510, 511, 512, 513, -1, 515, -1, -1, -1,
20041 : -1, -1, -1, -1, -1, -1, -1, -1, 527, 528,
20042 : -1, -1, -1, 3, -1, 5, 6, 536, 8, 9,
20043 : 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
20044 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
20045 : 30, 31, 32, -1, -1, -1, -1, 37, -1, -1,
20046 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
20047 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
20048 : 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
20049 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
20050 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
20051 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
20052 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
20053 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
20054 : 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
20055 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
20056 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
20057 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
20058 : 160, 161, 162, 163, 164, 165, -1, 167, 168, 169,
20059 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
20060 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
20061 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
20062 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
20063 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
20064 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
20065 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
20066 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
20067 : 250, 251, 252, 253, -1, 255, 256, 257, 258, 259,
20068 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
20069 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
20070 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
20071 : 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
20072 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
20073 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
20074 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
20075 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
20076 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
20077 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
20078 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
20079 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
20080 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
20081 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
20082 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
20083 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
20084 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
20085 : 430, -1, 432, 433, 434, -1, 436, 437, 438, 439,
20086 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
20087 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
20088 : 460, 461, 462, 463, 464, -1, 466, 467, 468, 469,
20089 : 470, 471, 472, -1, 474, 475, 476, 477, 478, 479,
20090 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
20091 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
20092 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
20093 : 510, 511, 512, 513, -1, 515, -1, -1, -1, -1,
20094 : -1, -1, -1, -1, -1, -1, -1, 527, 528, -1,
20095 : -1, -1, 3, -1, 5, 6, 536, 8, 9, 10,
20096 : 11, 12, -1, -1, -1, -1, -1, -1, -1, 20,
20097 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
20098 : 31, 32, -1, -1, -1, -1, 37, -1, -1, 40,
20099 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
20100 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
20101 : 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
20102 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
20103 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
20104 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
20105 : 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
20106 : 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
20107 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
20108 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
20109 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
20110 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
20111 : 161, 162, 163, 164, 165, -1, 167, 168, 169, 170,
20112 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
20113 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
20114 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
20115 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
20116 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
20117 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
20118 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
20119 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
20120 : 251, 252, 253, -1, 255, 256, 257, 258, 259, 260,
20121 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
20122 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
20123 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
20124 : 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
20125 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
20126 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
20127 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
20128 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
20129 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
20130 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
20131 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
20132 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
20133 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
20134 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
20135 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
20136 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
20137 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
20138 : -1, 432, 433, 434, -1, 436, 437, 438, 439, 440,
20139 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
20140 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
20141 : 461, 462, 463, 464, -1, 466, 467, 468, 469, 470,
20142 : 471, 472, -1, 474, 475, 476, 477, 478, 479, 480,
20143 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
20144 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
20145 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
20146 : 511, 512, 513, -1, 515, -1, -1, -1, -1, -1,
20147 : -1, -1, -1, -1, -1, -1, 527, 528, -1, -1,
20148 : -1, 3, -1, 5, 6, 536, 8, 9, 10, 11,
20149 : 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
20150 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
20151 : 32, -1, -1, -1, -1, 37, -1, -1, 40, 41,
20152 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
20153 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
20154 : 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
20155 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
20156 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
20157 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
20158 : 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
20159 : 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
20160 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
20161 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
20162 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
20163 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
20164 : 162, 163, 164, 165, -1, 167, 168, 169, 170, 171,
20165 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
20166 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
20167 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
20168 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
20169 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
20170 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
20171 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
20172 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
20173 : 252, 253, -1, 255, 256, 257, 258, 259, 260, 261,
20174 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
20175 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
20176 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
20177 : 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
20178 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
20179 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
20180 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
20181 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
20182 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
20183 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
20184 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
20185 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
20186 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
20187 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
20188 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
20189 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
20190 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
20191 : 432, 433, 434, -1, 436, 437, 438, 439, 440, 441,
20192 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
20193 : 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
20194 : 462, 463, 464, -1, 466, 467, 468, 469, 470, 471,
20195 : 472, -1, 474, 475, 476, 477, 478, 479, 480, -1,
20196 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
20197 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
20198 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
20199 : 512, 513, -1, 515, -1, -1, -1, -1, -1, -1,
20200 : -1, -1, -1, -1, -1, 527, 528, -1, -1, -1,
20201 : 3, -1, 5, 6, 536, 8, 9, 10, 11, 12,
20202 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
20203 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
20204 : -1, -1, -1, -1, 37, -1, -1, 40, 41, 42,
20205 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
20206 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
20207 : 63, 64, 65, 66, 67, 68, 69, 70, 71, -1,
20208 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
20209 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
20210 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
20211 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
20212 : 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
20213 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
20214 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
20215 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
20216 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
20217 : 163, 164, 165, -1, 167, 168, 169, 170, 171, -1,
20218 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
20219 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
20220 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
20221 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
20222 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
20223 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
20224 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
20225 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
20226 : 253, -1, 255, 256, 257, 258, 259, 260, 261, 262,
20227 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
20228 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
20229 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
20230 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
20231 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
20232 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
20233 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
20234 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
20235 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
20236 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
20237 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
20238 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
20239 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
20240 : 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
20241 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
20242 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
20243 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
20244 : 433, 434, -1, 436, 437, 438, 439, 440, 441, 442,
20245 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
20246 : 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
20247 : 463, 464, -1, 466, 467, 468, 469, 470, 471, 472,
20248 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
20249 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
20250 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
20251 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
20252 : 513, -1, 515, -1, -1, -1, -1, -1, -1, -1,
20253 : -1, -1, -1, -1, 527, 528, -1, -1, -1, 3,
20254 : -1, 5, 6, 536, 8, 9, 10, 11, 12, -1,
20255 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
20256 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
20257 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
20258 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
20259 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
20260 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
20261 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
20262 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
20263 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
20264 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
20265 : 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
20266 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
20267 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
20268 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
20269 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
20270 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
20271 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
20272 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
20273 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
20274 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
20275 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
20276 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
20277 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
20278 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
20279 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
20280 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
20281 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
20282 : 284, 285, 286, 287, 288, 289, 290, 291, 292, 293,
20283 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
20284 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
20285 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
20286 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
20287 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
20288 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
20289 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
20290 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
20291 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
20292 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
20293 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
20294 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
20295 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
20296 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
20297 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
20298 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
20299 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
20300 : 464, -1, 466, 467, 468, 469, 470, 471, 472, -1,
20301 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
20302 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
20303 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
20304 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
20305 : -1, 515, -1, -1, -1, -1, -1, -1, -1, -1,
20306 : -1, -1, -1, 527, 528, -1, -1, -1, 3, -1,
20307 : 5, 6, 536, 8, 9, 10, 11, 12, -1, -1,
20308 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
20309 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
20310 : -1, -1, 37, -1, -1, 40, 41, 42, -1, 44,
20311 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
20312 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
20313 : 65, 66, 67, 68, 69, 70, 71, -1, 73, 74,
20314 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
20315 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
20316 : 95, 96, 97, 98, -1, 100, 101, 102, 103, 104,
20317 : 105, 106, 107, 108, 109, 110, 111, 112, 113, 114,
20318 : 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
20319 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
20320 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
20321 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
20322 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
20323 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
20324 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
20325 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
20326 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
20327 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
20328 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
20329 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
20330 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
20331 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
20332 : 255, 256, 257, 258, 259, 260, 261, 262, 263, 264,
20333 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
20334 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
20335 : 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
20336 : 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
20337 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
20338 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
20339 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
20340 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
20341 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
20342 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
20343 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
20344 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
20345 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
20346 : 395, -1, 397, 398, 399, 400, 401, 402, 403, 404,
20347 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
20348 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
20349 : 425, 426, 427, 428, 429, 430, -1, 432, 433, 434,
20350 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
20351 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
20352 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
20353 : -1, 466, 467, 468, 469, 470, 471, 472, -1, 474,
20354 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
20355 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
20356 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
20357 : 505, 506, 507, 508, 509, 510, 511, 512, 513, -1,
20358 : 515, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20359 : -1, -1, 527, 528, -1, -1, -1, 3, -1, 5,
20360 : 6, 536, 8, 9, 10, 11, 12, -1, -1, -1,
20361 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
20362 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
20363 : -1, 37, -1, -1, 40, 41, 42, -1, 44, 45,
20364 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
20365 : 56, -1, 58, 59, 60, 61, 62, 63, 64, 65,
20366 : 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
20367 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
20368 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
20369 : 96, 97, 98, -1, 100, 101, 102, 103, 104, 105,
20370 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
20371 : 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
20372 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
20373 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
20374 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
20375 : 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
20376 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
20377 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
20378 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
20379 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
20380 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
20381 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
20382 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
20383 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
20384 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
20385 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
20386 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
20387 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
20388 : 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
20389 : 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
20390 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
20391 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
20392 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
20393 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
20394 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
20395 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
20396 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
20397 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
20398 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
20399 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
20400 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
20401 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
20402 : 426, 427, 428, 429, 430, -1, 432, 433, 434, -1,
20403 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
20404 : 446, 447, -1, -1, 450, 451, 452, 453, 454, 455,
20405 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
20406 : 466, 467, 468, 469, 470, 471, 472, -1, 474, 475,
20407 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
20408 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
20409 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
20410 : 506, 507, 508, 509, 510, 511, 512, 513, -1, 515,
20411 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20412 : -1, 527, 528, -1, -1, -1, 3, -1, 5, 6,
20413 : 536, 8, 9, 10, 11, 12, -1, -1, -1, -1,
20414 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
20415 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
20416 : 37, -1, -1, 40, 41, 42, -1, 44, 45, 46,
20417 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
20418 : -1, 58, 59, 60, 61, 62, 63, 64, 65, 66,
20419 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
20420 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
20421 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
20422 : 97, 98, -1, 100, 101, 102, 103, 104, 105, 106,
20423 : 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
20424 : 117, 118, 119, 120, 121, -1, 123, 124, 125, 126,
20425 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
20426 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
20427 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
20428 : 157, 158, 159, 160, 161, 162, 163, 164, 165, -1,
20429 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
20430 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
20431 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
20432 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
20433 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
20434 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
20435 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
20436 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
20437 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
20438 : 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
20439 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
20440 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
20441 : 287, 288, 289, 290, 291, 292, 293, 294, 295, 296,
20442 : 297, 298, 299, 300, 301, 302, 303, 304, 305, -1,
20443 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
20444 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
20445 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
20446 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
20447 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
20448 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
20449 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
20450 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
20451 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
20452 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
20453 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
20454 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
20455 : 427, 428, 429, 430, -1, 432, 433, 434, -1, 436,
20456 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
20457 : 447, -1, -1, 450, 451, 452, 453, 454, 455, 456,
20458 : 457, 458, 459, 460, 461, 462, 463, 464, -1, 466,
20459 : 467, 468, 469, 470, 471, 472, -1, 474, 475, 476,
20460 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
20461 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
20462 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
20463 : 507, 508, 509, 510, 511, 512, 513, -1, 515, -1,
20464 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20465 : 527, 528, -1, -1, -1, 3, -1, 5, 6, 536,
20466 : 8, 9, 10, 11, 12, -1, -1, -1, -1, -1,
20467 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
20468 : 28, -1, 30, 31, 32, -1, -1, -1, -1, 37,
20469 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
20470 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
20471 : 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
20472 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
20473 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
20474 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
20475 : 98, -1, 100, 101, 102, 103, 104, 105, 106, 107,
20476 : 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
20477 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
20478 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
20479 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
20480 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
20481 : 158, 159, 160, 161, 162, 163, 164, 165, -1, 167,
20482 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
20483 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
20484 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
20485 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
20486 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
20487 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
20488 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
20489 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
20490 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
20491 : 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
20492 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
20493 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
20494 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
20495 : 298, 299, 300, 301, 302, 303, 304, 305, -1, 307,
20496 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
20497 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
20498 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
20499 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
20500 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
20501 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
20502 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
20503 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
20504 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
20505 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
20506 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
20507 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
20508 : 428, 429, 430, -1, 432, 433, 434, -1, 436, 437,
20509 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
20510 : -1, -1, 450, 451, 452, 453, 454, 455, 456, 457,
20511 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
20512 : 468, 469, 470, 471, 472, -1, 474, 475, 476, 477,
20513 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
20514 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
20515 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
20516 : 508, 509, 510, 511, 512, 513, -1, -1, -1, -1,
20517 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 527,
20518 : 528, -1, -1, -1, 3, -1, 5, 6, 536, 8,
20519 : 9, 10, 11, 12, -1, -1, -1, -1, -1, -1,
20520 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
20521 : -1, 30, 31, 32, -1, -1, -1, -1, 37, -1,
20522 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
20523 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
20524 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
20525 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
20526 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
20527 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
20528 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
20529 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
20530 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
20531 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
20532 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
20533 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
20534 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
20535 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
20536 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
20537 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
20538 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
20539 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
20540 : 219, 220, -1, 222, -1, 224, -1, -1, 227, 228,
20541 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
20542 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
20543 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
20544 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
20545 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
20546 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
20547 : 289, 290, 291, 292, 293, 294, 295, -1, 297, 298,
20548 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
20549 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
20550 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
20551 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
20552 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
20553 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
20554 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
20555 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
20556 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
20557 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
20558 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
20559 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
20560 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
20561 : 429, 430, -1, 432, 433, 434, -1, 436, 437, 438,
20562 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
20563 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
20564 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
20565 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
20566 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
20567 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
20568 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
20569 : 509, 510, 511, 512, 513, -1, 515, -1, -1, -1,
20570 : -1, -1, -1, -1, -1, -1, -1, -1, 527, 528,
20571 : -1, -1, -1, 3, -1, 5, 6, 536, 8, 9,
20572 : 10, 11, 12, -1, -1, -1, -1, -1, -1, -1,
20573 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
20574 : 30, 31, 32, -1, -1, -1, -1, 37, -1, -1,
20575 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
20576 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
20577 : 60, 61, 62, 63, 64, 65, 66, 67, 68, 69,
20578 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
20579 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
20580 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
20581 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
20582 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
20583 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
20584 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
20585 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
20586 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
20587 : 160, 161, 162, 163, 164, 165, -1, 167, 168, 169,
20588 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
20589 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
20590 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
20591 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
20592 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
20593 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
20594 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
20595 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
20596 : 250, 251, 252, 253, -1, 255, 256, 257, 258, 259,
20597 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
20598 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
20599 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
20600 : 290, 291, 292, -1, 294, 295, 296, 297, 298, 299,
20601 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
20602 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
20603 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
20604 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
20605 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
20606 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
20607 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
20608 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
20609 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
20610 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
20611 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
20612 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
20613 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
20614 : 430, -1, 432, 433, 434, -1, 436, 437, 438, 439,
20615 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
20616 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
20617 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
20618 : 470, 471, 472, -1, 474, 475, 476, 477, 478, 479,
20619 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
20620 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
20621 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
20622 : 510, 511, 512, 513, -1, -1, -1, -1, -1, -1,
20623 : -1, -1, -1, -1, -1, -1, -1, 527, 528, 3,
20624 : -1, 5, 6, -1, 8, 9, 536, 11, 12, -1,
20625 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
20626 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
20627 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
20628 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
20629 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
20630 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
20631 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
20632 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
20633 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
20634 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
20635 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
20636 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
20637 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
20638 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
20639 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
20640 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
20641 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
20642 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
20643 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
20644 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
20645 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
20646 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
20647 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
20648 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
20649 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
20650 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
20651 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
20652 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
20653 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
20654 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
20655 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
20656 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
20657 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
20658 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
20659 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
20660 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
20661 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
20662 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
20663 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
20664 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
20665 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
20666 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
20667 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
20668 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
20669 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
20670 : 464, -1, -1, 467, 468, 469, 470, 471, 472, -1,
20671 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
20672 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
20673 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
20674 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
20675 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20676 : -1, -1, -1, 527, 528, 3, -1, 5, 6, -1,
20677 : 8, 9, 536, 11, 12, -1, -1, -1, -1, -1,
20678 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
20679 : 28, -1, 30, 31, 32, -1, -1, -1, -1, 37,
20680 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
20681 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
20682 : 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
20683 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
20684 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
20685 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
20686 : 98, -1, 100, 101, 102, 103, 104, 105, 106, 107,
20687 : 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
20688 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
20689 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
20690 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
20691 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
20692 : 158, 159, 160, 161, 162, 163, 164, 165, -1, 167,
20693 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
20694 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
20695 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
20696 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
20697 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
20698 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
20699 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
20700 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
20701 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
20702 : 258, 259, 260, 261, 262, 263, 264, 265, 266, 267,
20703 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
20704 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
20705 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
20706 : 298, 299, 300, 301, 302, 303, 304, 305, -1, 307,
20707 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
20708 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
20709 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
20710 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
20711 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
20712 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
20713 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
20714 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
20715 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
20716 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
20717 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
20718 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
20719 : 428, 429, 430, -1, 432, 433, 434, -1, 436, 437,
20720 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
20721 : -1, -1, 450, 451, 452, 453, 454, 455, 456, 457,
20722 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
20723 : 468, 469, 470, 471, 472, -1, 474, 475, 476, 477,
20724 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
20725 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
20726 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
20727 : 508, 509, 510, 511, 512, 513, -1, -1, -1, -1,
20728 : -1, -1, 3, -1, 5, 6, -1, 8, 9, -1,
20729 : 11, 12, -1, -1, -1, -1, -1, -1, 536, 20,
20730 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
20731 : 31, 32, -1, -1, -1, -1, 37, -1, -1, 40,
20732 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
20733 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
20734 : 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
20735 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
20736 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
20737 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
20738 : 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
20739 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
20740 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
20741 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
20742 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
20743 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
20744 : 161, 162, 163, 164, 165, -1, 167, 168, 169, 170,
20745 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
20746 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
20747 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
20748 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
20749 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
20750 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
20751 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
20752 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
20753 : 251, 252, 253, -1, 255, 256, 257, 258, 259, 260,
20754 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
20755 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
20756 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
20757 : 291, 292, -1, 294, 295, 296, 297, 298, 299, 300,
20758 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
20759 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
20760 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
20761 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
20762 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
20763 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
20764 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
20765 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
20766 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
20767 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
20768 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
20769 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
20770 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
20771 : -1, 432, 433, 434, -1, 436, 437, 438, 439, 440,
20772 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
20773 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
20774 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
20775 : 471, 472, -1, 474, 475, 476, 477, 478, 479, 480,
20776 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
20777 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
20778 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
20779 : 511, 512, 513, -1, -1, -1, -1, -1, -1, 3,
20780 : -1, 5, 6, -1, 8, 9, -1, 11, 12, -1,
20781 : -1, -1, -1, -1, -1, 536, 20, 21, 22, 23,
20782 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
20783 : -1, -1, -1, 37, -1, -1, 40, 41, 42, -1,
20784 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
20785 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
20786 : 64, 65, 66, 67, 68, 69, 70, 71, -1, 73,
20787 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
20788 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
20789 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
20790 : 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
20791 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
20792 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
20793 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
20794 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
20795 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
20796 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
20797 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
20798 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
20799 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
20800 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
20801 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
20802 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
20803 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
20804 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
20805 : -1, 255, 256, 257, 258, 259, 260, 261, 262, 263,
20806 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
20807 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
20808 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
20809 : 294, 295, 296, 297, 298, 299, 300, 301, 302, 303,
20810 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
20811 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
20812 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
20813 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
20814 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
20815 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
20816 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
20817 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
20818 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
20819 : 394, 395, -1, 397, 398, 399, 400, 401, 402, 403,
20820 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
20821 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
20822 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
20823 : 434, -1, 436, 437, 438, 439, 440, 441, 442, 443,
20824 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
20825 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
20826 : 464, -1, -1, 467, 468, 469, 470, 471, 472, -1,
20827 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
20828 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
20829 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
20830 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
20831 : -1, -1, -1, -1, -1, -1, 3, -1, -1, -1,
20832 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20833 : -1, -1, 536, 20, 21, 22, 23, 24, 25, 26,
20834 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
20835 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
20836 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
20837 : -1, 58, 59, 60, 61, 62, 63, 64, -1, 66,
20838 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
20839 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
20840 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
20841 : 97, 98, -1, 100, 101, 102, 103, 104, 105, 106,
20842 : 107, 108, 109, 110, 111, 112, 113, 114, 115, 116,
20843 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
20844 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
20845 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
20846 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
20847 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
20848 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
20849 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
20850 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
20851 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
20852 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
20853 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
20854 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
20855 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
20856 : 247, -1, 249, 250, 251, 252, 253, -1, 255, 256,
20857 : 257, 258, 259, 260, 261, 262, 263, 264, 265, 266,
20858 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
20859 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
20860 : 287, 288, 289, 290, 291, 292, -1, 294, 295, 296,
20861 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
20862 : 307, 308, 309, -1, 311, 312, 313, 314, -1, -1,
20863 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
20864 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
20865 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
20866 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
20867 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
20868 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
20869 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
20870 : 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
20871 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
20872 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
20873 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
20874 : 427, 428, 429, 430, -1, 432, 433, 434, 435, 436,
20875 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
20876 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
20877 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
20878 : 467, 468, 469, 470, 471, 472, -1, 474, 475, 476,
20879 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
20880 : 487, 488, -1, -1, 491, -1, 493, 494, 495, 496,
20881 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
20882 : 507, 508, 509, 510, 511, 512, 513, -1, -1, -1,
20883 : 517, -1, -1, 3, -1, -1, -1, -1, -1, -1,
20884 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 536,
20885 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
20886 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
20887 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
20888 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
20889 : 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
20890 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
20891 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
20892 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
20893 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
20894 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
20895 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
20896 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
20897 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
20898 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
20899 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
20900 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
20901 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
20902 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
20903 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
20904 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
20905 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
20906 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
20907 : 240, 241, 242, 243, 244, 245, 246, 247, -1, 249,
20908 : 250, 251, 252, 253, -1, 255, 256, 257, 258, 259,
20909 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
20910 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
20911 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
20912 : 290, 291, 292, -1, 294, 295, 296, 297, -1, 299,
20913 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
20914 : -1, 311, 312, 313, 314, -1, -1, 317, 318, 319,
20915 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
20916 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
20917 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
20918 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
20919 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
20920 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
20921 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
20922 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
20923 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
20924 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
20925 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
20926 : 430, -1, 432, 433, 434, -1, 436, 437, 438, 439,
20927 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
20928 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
20929 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
20930 : 470, 471, 472, -1, 474, 475, 476, 477, 478, 479,
20931 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
20932 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
20933 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
20934 : 510, 511, 512, 513, -1, -1, -1, -1, -1, -1,
20935 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20936 : -1, -1, -1, -1, -1, -1, 536, 20, 21, 22,
20937 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
20938 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
20939 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
20940 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
20941 : 63, 64, -1, 66, 67, 68, 69, 70, 71, -1,
20942 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
20943 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
20944 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
20945 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
20946 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
20947 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
20948 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
20949 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
20950 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
20951 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
20952 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
20953 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
20954 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
20955 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
20956 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
20957 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
20958 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
20959 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
20960 : 253, -1, 255, 256, 257, 258, 259, 260, 261, 262,
20961 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
20962 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
20963 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
20964 : -1, 294, 295, 296, 297, -1, 299, 300, 301, 302,
20965 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
20966 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
20967 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
20968 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
20969 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
20970 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
20971 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
20972 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
20973 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
20974 : 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
20975 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
20976 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
20977 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
20978 : 433, 434, -1, 436, 437, 438, 439, 440, 441, 442,
20979 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
20980 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
20981 : 463, 464, -1, -1, 467, 468, 469, 470, 471, 472,
20982 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
20983 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
20984 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
20985 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
20986 : 513, -1, -1, -1, -1, -1, -1, 3, -1, -1,
20987 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
20988 : -1, -1, -1, 536, 20, 21, 22, 23, 24, 25,
20989 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
20990 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
20991 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
20992 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
20993 : 66, 67, 68, 69, 70, 71, -1, 73, 74, 75,
20994 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
20995 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
20996 : 96, 97, 98, -1, 100, 101, 102, 103, 104, 105,
20997 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
20998 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
20999 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
21000 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
21001 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
21002 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
21003 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
21004 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
21005 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
21006 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
21007 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
21008 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
21009 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
21010 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
21011 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
21012 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
21013 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
21014 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
21015 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
21016 : 296, 297, -1, 299, 300, 301, 302, 303, 304, 305,
21017 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
21018 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
21019 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
21020 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
21021 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
21022 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
21023 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
21024 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
21025 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
21026 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
21027 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
21028 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
21029 : 426, 427, 428, 429, 430, -1, 432, 433, 434, -1,
21030 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
21031 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
21032 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
21033 : -1, 467, 468, 469, 470, 471, 472, -1, 474, 475,
21034 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
21035 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
21036 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
21037 : 506, 507, 508, 509, 510, 511, 512, 513, -1, -1,
21038 : -1, -1, -1, -1, 3, -1, -1, -1, -1, -1,
21039 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21040 : 536, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21041 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21042 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
21043 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
21044 : 59, 60, 61, 62, 63, 64, -1, 66, 67, 68,
21045 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21046 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
21047 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21048 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
21049 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
21050 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21051 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21052 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21053 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21054 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21055 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
21056 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21057 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
21058 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21059 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
21060 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
21061 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21062 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21063 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
21064 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21065 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21066 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
21067 : 289, 290, 291, 292, -1, 294, 295, 296, 297, -1,
21068 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21069 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21070 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
21071 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21072 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21073 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21074 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21075 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21076 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21077 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21078 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
21079 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21080 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21081 : 429, 430, -1, 432, 433, 434, -1, 436, 437, 438,
21082 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21083 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21084 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21085 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
21086 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
21087 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21088 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21089 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21090 : -1, 3, -1, -1, -1, -1, -1, -1, -1, -1,
21091 : -1, -1, -1, -1, -1, -1, -1, 536, 20, 21,
21092 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
21093 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
21094 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
21095 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
21096 : 62, 63, 64, -1, 66, 67, 68, 69, 70, 71,
21097 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
21098 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
21099 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
21100 : 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
21101 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
21102 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
21103 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
21104 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
21105 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
21106 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
21107 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
21108 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
21109 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
21110 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
21111 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
21112 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
21113 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
21114 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
21115 : 252, 253, -1, 255, 256, 257, 258, 259, 260, 261,
21116 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
21117 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
21118 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
21119 : 292, -1, 294, 295, 296, 297, -1, 299, 300, 301,
21120 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
21121 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
21122 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
21123 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
21124 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
21125 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
21126 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
21127 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
21128 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
21129 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
21130 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
21131 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
21132 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
21133 : 432, 433, 434, -1, 436, 437, 438, 439, 440, 441,
21134 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
21135 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
21136 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
21137 : 472, -1, 474, 475, 476, 477, 478, 479, 480, -1,
21138 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
21139 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
21140 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
21141 : 512, 513, -1, -1, -1, -1, -1, -1, 3, -1,
21142 : 5, 6, -1, -1, -1, -1, 11, -1, -1, -1,
21143 : -1, -1, -1, -1, 536, 20, 21, 22, 23, 24,
21144 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
21145 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
21146 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
21147 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
21148 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
21149 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
21150 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
21151 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
21152 : -1, -1, 107, -1, -1, -1, 111, 112, 113, 114,
21153 : 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
21154 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
21155 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
21156 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
21157 : 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
21158 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
21159 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
21160 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
21161 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
21162 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
21163 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
21164 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
21165 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
21166 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
21167 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
21168 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
21169 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
21170 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
21171 : 295, 296, 297, -1, 299, 300, 301, 302, 303, 304,
21172 : 305, -1, 307, 308, 309, 310, -1, 312, 313, 314,
21173 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
21174 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
21175 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
21176 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
21177 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
21178 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
21179 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
21180 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
21181 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
21182 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
21183 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
21184 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
21185 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
21186 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
21187 : 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
21188 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
21189 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
21190 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
21191 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
21192 : 505, 506, 507, 508, 509, 510, 511, 512, 513, -1,
21193 : -1, -1, -1, -1, -1, 3, -1, -1, -1, -1,
21194 : -1, -1, 527, 528, 529, -1, -1, -1, -1, -1,
21195 : -1, 536, 20, 21, 22, 23, 24, 25, 26, 27,
21196 : 28, -1, 30, 31, 32, 33, 34, -1, -1, -1,
21197 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
21198 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
21199 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
21200 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
21201 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
21202 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
21203 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
21204 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
21205 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
21206 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
21207 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
21208 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
21209 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
21210 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
21211 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
21212 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
21213 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
21214 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
21215 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
21216 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
21217 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
21218 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
21219 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
21220 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
21221 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
21222 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
21223 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
21224 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
21225 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
21226 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
21227 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
21228 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
21229 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
21230 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
21231 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
21232 : 388, 389, 390, 391, 392, 393, 394, 395, 396, 397,
21233 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
21234 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
21235 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
21236 : 428, 429, 430, -1, 432, 433, -1, 435, 436, 437,
21237 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
21238 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
21239 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
21240 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
21241 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
21242 : 488, -1, -1, 491, -1, 493, 494, 495, 496, 497,
21243 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
21244 : 508, 509, 510, 511, 512, 513, 514, -1, -1, 517,
21245 : -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
21246 : -1, -1, -1, -1, -1, -1, -1, -1, 536, 20,
21247 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
21248 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
21249 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
21250 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
21251 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
21252 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
21253 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
21254 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
21255 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
21256 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
21257 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
21258 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
21259 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
21260 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
21261 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
21262 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
21263 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
21264 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
21265 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
21266 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
21267 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
21268 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
21269 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
21270 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
21271 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
21272 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
21273 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
21274 : 291, 292, -1, 294, 295, 296, 297, -1, 299, 300,
21275 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
21276 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
21277 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
21278 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
21279 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
21280 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
21281 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
21282 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
21283 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
21284 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
21285 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
21286 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
21287 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
21288 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
21289 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
21290 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
21291 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
21292 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
21293 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
21294 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
21295 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
21296 : 511, 512, 513, -1, -1, -1, -1, -1, -1, 3,
21297 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21298 : -1, -1, -1, -1, -1, 536, 20, 21, 22, 23,
21299 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
21300 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
21301 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
21302 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
21303 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
21304 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
21305 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
21306 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
21307 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
21308 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
21309 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
21310 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
21311 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
21312 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
21313 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
21314 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
21315 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
21316 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
21317 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
21318 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
21319 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
21320 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
21321 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
21322 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
21323 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
21324 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
21325 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
21326 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
21327 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
21328 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
21329 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
21330 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
21331 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
21332 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
21333 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
21334 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
21335 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
21336 : 394, 395, 396, 397, 398, 399, 400, 401, -1, 403,
21337 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
21338 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
21339 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
21340 : -1, 435, 436, -1, 438, 439, 440, 441, 442, 443,
21341 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
21342 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
21343 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
21344 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
21345 : 484, 485, 486, 487, 488, -1, -1, 491, -1, 493,
21346 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
21347 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
21348 : -1, -1, -1, 517, -1, -1, 3, -1, -1, -1,
21349 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21350 : -1, -1, 536, 20, 21, 22, 23, 24, 25, 26,
21351 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
21352 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
21353 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
21354 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
21355 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
21356 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
21357 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
21358 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
21359 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
21360 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
21361 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
21362 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
21363 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
21364 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
21365 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
21366 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
21367 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
21368 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
21369 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
21370 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
21371 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
21372 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
21373 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
21374 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
21375 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
21376 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
21377 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
21378 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
21379 : 307, 308, 309, -1, 311, 312, 313, 314, -1, -1,
21380 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
21381 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
21382 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
21383 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
21384 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
21385 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
21386 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
21387 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
21388 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
21389 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
21390 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
21391 : 427, 428, 429, 430, -1, 432, 433, -1, 435, 436,
21392 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
21393 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
21394 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
21395 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
21396 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
21397 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
21398 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
21399 : 507, 508, 509, 510, 511, 512, 513, -1, -1, -1,
21400 : -1, -1, -1, 3, -1, -1, -1, -1, -1, -1,
21401 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 536,
21402 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
21403 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
21404 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
21405 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
21406 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
21407 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
21408 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
21409 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
21410 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
21411 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
21412 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
21413 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
21414 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
21415 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
21416 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
21417 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
21418 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
21419 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
21420 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
21421 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
21422 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
21423 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
21424 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
21425 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
21426 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
21427 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
21428 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
21429 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
21430 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
21431 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
21432 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
21433 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
21434 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
21435 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
21436 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
21437 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
21438 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
21439 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
21440 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
21441 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
21442 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
21443 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
21444 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
21445 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
21446 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
21447 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
21448 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
21449 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
21450 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
21451 : 510, 511, 512, 513, -1, -1, -1, -1, -1, -1,
21452 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21453 : -1, -1, -1, -1, -1, -1, 536, 20, 21, 22,
21454 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
21455 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
21456 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
21457 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
21458 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
21459 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
21460 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
21461 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
21462 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
21463 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
21464 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
21465 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
21466 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
21467 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
21468 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
21469 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
21470 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
21471 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
21472 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
21473 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
21474 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
21475 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
21476 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
21477 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
21478 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
21479 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
21480 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
21481 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
21482 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
21483 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
21484 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
21485 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
21486 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
21487 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
21488 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
21489 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
21490 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
21491 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
21492 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
21493 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
21494 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
21495 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
21496 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
21497 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
21498 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
21499 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
21500 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
21501 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
21502 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
21503 : 513, -1, -1, -1, -1, -1, -1, 3, -1, -1,
21504 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21505 : -1, -1, -1, 536, 20, 21, 22, 23, 24, 25,
21506 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
21507 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
21508 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
21509 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
21510 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
21511 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
21512 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
21513 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
21514 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
21515 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
21516 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
21517 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
21518 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
21519 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
21520 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
21521 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
21522 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
21523 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
21524 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
21525 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
21526 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
21527 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
21528 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
21529 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
21530 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
21531 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
21532 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
21533 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
21534 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
21535 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
21536 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
21537 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
21538 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
21539 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
21540 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
21541 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
21542 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
21543 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
21544 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
21545 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
21546 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
21547 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
21548 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
21549 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
21550 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
21551 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
21552 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
21553 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
21554 : 506, 507, 508, 509, 510, 511, 512, 513, -1, -1,
21555 : -1, -1, -1, -1, 3, -1, -1, -1, -1, -1,
21556 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21557 : 536, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21558 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21559 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21560 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21561 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21562 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21563 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21564 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21565 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21566 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21567 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21568 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21569 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21570 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21571 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21572 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21573 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21574 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21575 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21576 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21577 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21578 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21579 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21580 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21581 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21582 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21583 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21584 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21585 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21586 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21587 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21588 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21589 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21590 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21591 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21592 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21593 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21594 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21595 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21596 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21597 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21598 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21599 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21600 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21601 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21602 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21603 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21604 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21605 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21606 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21607 : -1, -1, -1, -1, 3, -1, -1, -1, -1, -1,
21608 : -1, 10, -1, -1, 13, -1, -1, 536, 17, 18,
21609 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21610 : 29, 30, 31, 32, 33, 34, 35, 36, -1, 38,
21611 : 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
21612 : 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
21613 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
21614 : -1, -1, 71, 72, 73, 74, 75, 76, 77, 78,
21615 : 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
21616 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
21617 : -1, 100, 101, 102, 103, 104, 105, 106, 107, 108,
21618 : 109, 110, 111, 112, 113, 114, -1, 116, 117, 118,
21619 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
21620 : 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
21621 : 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
21622 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21623 : 159, 160, 161, 162, 163, 164, 165, -1, -1, 168,
21624 : 169, 170, 171, -1, 173, 174, 175, 176, 177, -1,
21625 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21626 : 189, 190, -1, 192, 193, -1, 195, 196, 197, 198,
21627 : 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
21628 : 209, 210, 211, 212, 213, 214, 215, 216, 217, 218,
21629 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
21630 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21631 : 239, 240, 241, 242, 243, 244, 245, 246, 247, 248,
21632 : 249, 250, 251, 252, 253, -1, 255, 256, 257, 258,
21633 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21634 : 269, 270, 271, -1, 273, 274, -1, 276, 277, 278,
21635 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
21636 : 289, 290, 291, 292, 293, 294, 295, 296, 297, 298,
21637 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21638 : 309, -1, 311, 312, 313, 314, 315, -1, 317, 318,
21639 : 319, 320, -1, -1, 323, 324, 325, 326, 327, 328,
21640 : 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
21641 : 339, 340, 341, -1, 343, 344, 345, 346, 347, 348,
21642 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21643 : 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
21644 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21645 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21646 : 389, 390, 391, 392, 393, -1, 395, 396, 397, 398,
21647 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
21648 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
21649 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21650 : 429, 430, 431, 432, 433, 434, 435, 436, 437, 438,
21651 : 439, 440, 441, 442, 443, 444, 445, 446, 447, -1,
21652 : 449, 450, 451, 452, 453, 454, 455, 456, 457, 458,
21653 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
21654 : 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
21655 : 479, 480, 481, -1, 483, 484, 485, 486, 487, 488,
21656 : 489, -1, 491, -1, -1, -1, -1, 496, 497, 498,
21657 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21658 : 509, 510, -1, 512, 513, -1, 515, -1, -1, -1,
21659 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21660 : 529, 530, 531, 532, 3, -1, 5, 6, -1, -1,
21661 : -1, 10, 11, -1, -1, -1, -1, -1, 17, 18,
21662 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21663 : 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
21664 : 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
21665 : 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
21666 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
21667 : 69, 70, 71, 72, 73, 74, 75, 76, -1, 78,
21668 : 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
21669 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
21670 : 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
21671 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
21672 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
21673 : 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
21674 : 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
21675 : 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
21676 : 159, 160, 161, 162, -1, 164, 165, 166, 167, 168,
21677 : 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
21678 : 179, 180, 181, 182, 183, 184, 185, -1, 187, -1,
21679 : 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
21680 : 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
21681 : 209, 210, 211, 212, 213, -1, 215, 216, 217, 218,
21682 : 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
21683 : 229, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21684 : -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
21685 : 249, -1, 251, 252, 253, 254, 255, 256, 257, 258,
21686 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21687 : 269, -1, 271, 272, 273, 274, 275, 276, 277, 278,
21688 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
21689 : 289, 290, -1, 292, 293, 294, 295, 296, 297, 298,
21690 : -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
21691 : 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
21692 : -1, 320, 321, 322, -1, 324, 325, 326, 327, 328,
21693 : 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
21694 : 339, -1, 341, -1, 343, 344, 345, 346, 347, 348,
21695 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21696 : 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
21697 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
21698 : 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
21699 : 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
21700 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
21701 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
21702 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21703 : -1, 430, 431, 432, 433, 434, 435, 436, 437, 438,
21704 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
21705 : 449, 450, 451, -1, 453, -1, 455, 456, 457, 458,
21706 : 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
21707 : 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
21708 : -1, 480, 481, 482, 483, 484, 485, 486, 487, 488,
21709 : 489, 490, 491, 492, 493, 494, 495, 496, 497, 498,
21710 : 499, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21711 : -1, -1, 511, 512, 513, -1, -1, -1, -1, -1,
21712 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21713 : 529, 530, 531, 532, 3, -1, 5, 6, -1, -1,
21714 : -1, 10, 11, -1, -1, -1, -1, -1, 17, 18,
21715 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21716 : 29, 30, 31, 32, 33, 34, 35, 36, 37, 38,
21717 : 39, 40, 41, 42, 43, 44, 45, 46, 47, 48,
21718 : 49, 50, 51, -1, 53, 54, 55, 56, 57, 58,
21719 : 59, 60, 61, 62, 63, 64, 65, 66, 67, 68,
21720 : 69, 70, 71, 72, 73, 74, 75, 76, -1, 78,
21721 : 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
21722 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
21723 : 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
21724 : 109, 110, 111, 112, 113, 114, 115, 116, 117, 118,
21725 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
21726 : 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
21727 : 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
21728 : 149, 150, 151, 152, 153, 154, 155, 156, 157, -1,
21729 : 159, 160, 161, 162, -1, 164, 165, 166, 167, 168,
21730 : 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
21731 : 179, 180, 181, 182, 183, 184, 185, -1, 187, -1,
21732 : 189, 190, 191, 192, 193, 194, 195, 196, 197, 198,
21733 : 199, 200, 201, 202, 203, 204, 205, 206, 207, 208,
21734 : 209, 210, 211, 212, 213, -1, 215, 216, 217, 218,
21735 : 219, 220, 221, 222, 223, 224, 225, 226, 227, 228,
21736 : 229, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21737 : -1, 240, 241, 242, 243, 244, 245, 246, 247, 248,
21738 : 249, -1, 251, 252, 253, 254, 255, 256, 257, 258,
21739 : 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21740 : 269, -1, 271, 272, 273, 274, 275, 276, 277, 278,
21741 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
21742 : 289, 290, -1, 292, 293, 294, 295, 296, 297, 298,
21743 : -1, 300, 301, 302, 303, 304, 305, 306, 307, 308,
21744 : 309, 310, 311, 312, 313, 314, 315, 316, 317, 318,
21745 : -1, 320, 321, 322, -1, 324, 325, 326, 327, 328,
21746 : 329, 330, 331, 332, 333, 334, 335, 336, 337, 338,
21747 : 339, -1, 341, -1, 343, 344, 345, 346, 347, 348,
21748 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21749 : 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
21750 : 369, 370, 371, 372, 373, 374, 375, 376, 377, 378,
21751 : 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
21752 : 389, 390, 391, 392, 393, 394, 395, 396, 397, 398,
21753 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
21754 : 409, 410, 411, 412, 413, 414, 415, 416, 417, 418,
21755 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21756 : -1, 430, 431, 432, 433, 434, 435, 436, 437, 438,
21757 : 439, 440, 441, 442, 443, 444, 445, 446, 447, 448,
21758 : 449, 450, 451, -1, 453, -1, 455, 456, 457, 458,
21759 : 459, 460, 461, 462, 463, 464, 465, 466, 467, 468,
21760 : 469, 470, 471, 472, 473, 474, 475, 476, 477, 478,
21761 : -1, 480, 481, 482, 483, 484, 485, 486, 487, 488,
21762 : 489, 490, 491, 492, 493, 494, 495, 496, 497, 498,
21763 : 499, -1, -1, -1, -1, -1, -1, -1, -1, -1,
21764 : -1, -1, 511, 512, 513, -1, -1, -1, -1, -1,
21765 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21766 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21767 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21768 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21769 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21770 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21771 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21772 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21773 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21774 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21775 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21776 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21777 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21778 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21779 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21780 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21781 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21782 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21783 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21784 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21785 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21786 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21787 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21788 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21789 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21790 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21791 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21792 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21793 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21794 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21795 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21796 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21797 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21798 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21799 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21800 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21801 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21802 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21803 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21804 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21805 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21806 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21807 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21808 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21809 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21810 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21811 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21812 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21813 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21814 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21815 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21816 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21817 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21818 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21819 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21820 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21821 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21822 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21823 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21824 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21825 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21826 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21827 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21828 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21829 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21830 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21831 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21832 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21833 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21834 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21835 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21836 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21837 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21838 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21839 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21840 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21841 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21842 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21843 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21844 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21845 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21846 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21847 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21848 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21849 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21850 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21851 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21852 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21853 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21854 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21855 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21856 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21857 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21858 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21859 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21860 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21861 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21862 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21863 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21864 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21865 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21866 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21867 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21868 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21869 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21870 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21871 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21872 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21873 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21874 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21875 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21876 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21877 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21878 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21879 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21880 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21881 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21882 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21883 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21884 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21885 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21886 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21887 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21888 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21889 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21890 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21891 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21892 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21893 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21894 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21895 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21896 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21897 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21898 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21899 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21900 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21901 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21902 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21903 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21904 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21905 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21906 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21907 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21908 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21909 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21910 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21911 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21912 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21913 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21914 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21915 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21916 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21917 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21918 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21919 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21920 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21921 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21922 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21923 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21924 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21925 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21926 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21927 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21928 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21929 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21930 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21931 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21932 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21933 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21934 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21935 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21936 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21937 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21938 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21939 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21940 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21941 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21942 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21943 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21944 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21945 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21946 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
21947 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
21948 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
21949 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
21950 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
21951 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
21952 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
21953 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
21954 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
21955 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
21956 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
21957 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
21958 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
21959 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
21960 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
21961 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
21962 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
21963 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
21964 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
21965 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
21966 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
21967 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
21968 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
21969 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
21970 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
21971 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
21972 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
21973 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
21974 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
21975 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
21976 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
21977 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
21978 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
21979 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
21980 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
21981 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
21982 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
21983 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
21984 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
21985 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
21986 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
21987 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
21988 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
21989 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
21990 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
21991 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
21992 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
21993 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
21994 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
21995 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
21996 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
21997 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
21998 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
21999 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
22000 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
22001 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22002 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22003 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
22004 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22005 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22006 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
22007 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
22008 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22009 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
22010 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
22011 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22012 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22013 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22014 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22015 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22016 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22017 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22018 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
22019 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22020 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22021 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
22022 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22023 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
22024 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22025 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22026 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
22027 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22028 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22029 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
22030 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
22031 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
22032 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
22033 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
22034 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
22035 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
22036 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
22037 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
22038 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
22039 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
22040 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
22041 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
22042 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
22043 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
22044 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
22045 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
22046 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
22047 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
22048 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
22049 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
22050 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
22051 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
22052 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
22053 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
22054 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22055 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22056 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
22057 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22058 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22059 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
22060 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
22061 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22062 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
22063 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
22064 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22065 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22066 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22067 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22068 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22069 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22070 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22071 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
22072 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22073 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22074 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
22075 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22076 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
22077 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22078 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22079 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
22080 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22081 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22082 : 509, 510, 511, 512, 513, -1, -1, -1, -1, -1,
22083 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
22084 : 529, 530, 531, 532, 3, -1, -1, -1, -1, -1,
22085 : -1, 10, -1, -1, -1, -1, -1, -1, 17, 18,
22086 : 19, 20, 21, 22, 23, 24, 25, 26, 27, 28,
22087 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
22088 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
22089 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
22090 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
22091 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
22092 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
22093 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
22094 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
22095 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
22096 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
22097 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
22098 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
22099 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
22100 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
22101 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
22102 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
22103 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
22104 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
22105 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
22106 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
22107 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22108 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22109 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
22110 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22111 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22112 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
22113 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
22114 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22115 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
22116 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
22117 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22118 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22119 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22120 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22121 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22122 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22123 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22124 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
22125 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22126 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22127 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
22128 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22129 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
22130 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22131 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22132 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
22133 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22134 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22135 : 509, 510, 511, 512, 513, -1, -1, 3, -1, -1,
22136 : -1, -1, -1, -1, -1, 524, 525, 526, 527, 528,
22137 : 529, 530, 531, 532, 20, 21, 22, 23, 24, 25,
22138 : 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
22139 : 36, 37, 38, 39, 40, 41, 42, 43, 44, 45,
22140 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
22141 : 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
22142 : 66, 67, 68, 69, 70, 71, 72, 73, 74, 75,
22143 : 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
22144 : 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
22145 : 96, 97, 98, 99, 100, 101, 102, 103, 104, 105,
22146 : 106, 107, 108, 109, 110, 111, 112, 113, 114, 115,
22147 : 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
22148 : 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
22149 : 136, 137, 138, 139, 140, 141, 142, 143, 144, 145,
22150 : 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
22151 : 156, 157, 158, 159, 160, 161, 162, 163, 164, 165,
22152 : 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
22153 : 176, 177, 178, 179, 180, 181, 182, 183, 184, 185,
22154 : 186, 187, 188, 189, 190, 191, 192, 193, 194, 195,
22155 : 196, 197, 198, 199, 200, 201, 202, 203, 204, 205,
22156 : 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
22157 : 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
22158 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
22159 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
22160 : 246, 247, 248, 249, 250, 251, 252, 253, 254, 255,
22161 : 256, 257, 258, 259, 260, 261, 262, 263, 264, 265,
22162 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
22163 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
22164 : 286, 287, 288, 289, 290, 291, 292, 293, 294, 295,
22165 : 296, 297, 298, 299, 300, 301, 302, 303, 304, 305,
22166 : 306, 307, 308, 309, 310, 311, 312, 313, 314, 315,
22167 : 316, 317, 318, 319, 320, 321, 322, 323, 324, 325,
22168 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
22169 : 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
22170 : 346, 347, 348, 349, 350, 351, 352, 353, 354, 355,
22171 : 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
22172 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
22173 : 376, 377, 378, 379, 380, 381, 382, 383, 384, 385,
22174 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
22175 : 396, 397, 398, 399, 400, 401, 402, 403, 404, 405,
22176 : 406, 407, 408, 409, 410, 411, 412, 413, 414, 415,
22177 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
22178 : 426, 427, 428, 429, 430, 431, 432, 433, 434, 435,
22179 : 436, 437, 438, 439, 440, 441, 442, 443, 444, 445,
22180 : 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
22181 : 456, 457, 458, 459, 460, 461, 462, 463, 464, 465,
22182 : 466, 467, 468, 469, 470, 471, 472, 473, 474, 475,
22183 : 476, 477, 478, 479, 480, 481, 482, 483, 484, 485,
22184 : 486, 487, 488, 489, 490, 491, 492, 493, 494, 495,
22185 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
22186 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
22187 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22188 : -1, -1, -1, 529, -1, 20, 21, 22, 23, 24,
22189 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
22190 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
22191 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
22192 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
22193 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
22194 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
22195 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
22196 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
22197 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
22198 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
22199 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
22200 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
22201 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
22202 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
22203 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
22204 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
22205 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
22206 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
22207 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
22208 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
22209 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
22210 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
22211 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
22212 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
22213 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
22214 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
22215 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
22216 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
22217 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
22218 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
22219 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
22220 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
22221 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
22222 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
22223 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
22224 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
22225 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
22226 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
22227 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
22228 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
22229 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
22230 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
22231 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
22232 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
22233 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
22234 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
22235 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
22236 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
22237 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
22238 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22239 : -1, -1, -1, -1, 529, -1, 20, 21, 22, 23,
22240 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
22241 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
22242 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
22243 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
22244 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
22245 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
22246 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
22247 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
22248 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
22249 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
22250 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
22251 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
22252 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
22253 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
22254 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
22255 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
22256 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
22257 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
22258 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
22259 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
22260 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
22261 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
22262 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
22263 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
22264 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
22265 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
22266 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
22267 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
22268 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
22269 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
22270 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
22271 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
22272 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
22273 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
22274 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
22275 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
22276 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
22277 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
22278 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
22279 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
22280 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
22281 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
22282 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
22283 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
22284 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
22285 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
22286 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
22287 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
22288 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
22289 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22290 : -1, -1, -1, -1, -1, 529, -1, 20, 21, 22,
22291 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
22292 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
22293 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
22294 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
22295 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
22296 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
22297 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
22298 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
22299 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
22300 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
22301 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
22302 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
22303 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
22304 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
22305 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
22306 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
22307 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
22308 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
22309 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
22310 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
22311 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
22312 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
22313 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
22314 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
22315 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
22316 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
22317 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
22318 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
22319 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
22320 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
22321 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
22322 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
22323 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
22324 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
22325 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
22326 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
22327 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
22328 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
22329 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
22330 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
22331 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
22332 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
22333 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
22334 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
22335 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
22336 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
22337 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
22338 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
22339 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
22340 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
22341 : -1, -1, -1, -1, -1, -1, 529, -1, 20, 21,
22342 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
22343 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
22344 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
22345 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
22346 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
22347 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
22348 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
22349 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
22350 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
22351 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
22352 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
22353 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
22354 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
22355 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
22356 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
22357 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
22358 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
22359 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
22360 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
22361 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
22362 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
22363 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
22364 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
22365 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
22366 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
22367 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
22368 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
22369 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
22370 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
22371 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
22372 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
22373 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
22374 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
22375 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
22376 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
22377 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
22378 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
22379 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
22380 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
22381 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
22382 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
22383 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
22384 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
22385 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
22386 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
22387 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
22388 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
22389 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
22390 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
22391 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
22392 : -1, -1, -1, -1, -1, -1, -1, 529, -1, 20,
22393 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
22394 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
22395 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
22396 : 51, -1, 53, 54, 55, 56, -1, 58, 59, 60,
22397 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
22398 : 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
22399 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
22400 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
22401 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
22402 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
22403 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
22404 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
22405 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
22406 : 151, 152, -1, 154, 155, 156, 157, -1, 159, 160,
22407 : 161, 162, -1, -1, 165, -1, 167, 168, 169, 170,
22408 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
22409 : 181, 182, 183, -1, 185, -1, -1, -1, 189, 190,
22410 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
22411 : 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
22412 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
22413 : -1, 222, -1, 224, 225, 226, 227, 228, 229, -1,
22414 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 240,
22415 : 241, 242, 243, 244, 245, 246, -1, -1, 249, -1,
22416 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
22417 : 261, 262, 263, 264, 265, 266, 267, 268, 269, -1,
22418 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
22419 : 281, 282, 283, 284, 285, 286, 287, 288, 289, -1,
22420 : -1, 292, -1, 294, 295, 296, 297, -1, -1, 300,
22421 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
22422 : -1, 312, 313, 314, -1, 316, 317, 318, 319, 320,
22423 : 321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
22424 : 331, 332, 333, 334, 335, -1, 337, 338, 339, -1,
22425 : 341, -1, 343, 344, 345, -1, 347, 348, 349, 350,
22426 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
22427 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
22428 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
22429 : 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
22430 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
22431 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
22432 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
22433 : 421, 422, 423, 424, 425, 426, 427, 428, -1, 430,
22434 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
22435 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
22436 : 451, -1, 453, -1, -1, 456, 457, 458, 459, 460,
22437 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
22438 : 471, -1, -1, 474, 475, 476, 477, 478, -1, 480,
22439 : 481, 482, 483, 484, 485, 486, 487, 488, -1, -1,
22440 : 491, -1, -1, 494, 495, 496, 497, 498, 499, -1,
22441 : -1, -1, 3, -1, -1, -1, -1, -1, -1, -1,
22442 : 511, 512, 513, -1, -1, -1, -1, -1, -1, 20,
22443 : 21, 22, 23, 24, 25, 26, 27, 28, 529, 30,
22444 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
22445 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
22446 : 51, -1, 53, 54, 55, 56, -1, 58, 59, 60,
22447 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
22448 : 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
22449 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
22450 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
22451 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
22452 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
22453 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
22454 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
22455 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
22456 : 151, 152, -1, 154, 155, 156, 157, -1, 159, 160,
22457 : 161, 162, -1, -1, 165, -1, 167, 168, 169, 170,
22458 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
22459 : 181, 182, 183, -1, 185, -1, -1, -1, 189, 190,
22460 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
22461 : 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
22462 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
22463 : -1, 222, -1, 224, 225, 226, 227, 228, 229, -1,
22464 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 240,
22465 : 241, 242, 243, 244, 245, 246, -1, -1, 249, -1,
22466 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
22467 : 261, 262, 263, 264, 265, 266, 267, 268, 269, -1,
22468 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
22469 : 281, 282, 283, 284, 285, 286, 287, 288, 289, -1,
22470 : -1, 292, -1, 294, 295, 296, 297, -1, -1, 300,
22471 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
22472 : -1, 312, 313, 314, -1, 316, 317, 318, 319, 320,
22473 : 321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
22474 : 331, 332, 333, 334, 335, -1, 337, 338, 339, -1,
22475 : 341, -1, 343, 344, 345, -1, 347, 348, 349, 350,
22476 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
22477 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
22478 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
22479 : 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
22480 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
22481 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
22482 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
22483 : 421, 422, 423, 424, 425, 426, 427, 428, -1, 430,
22484 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
22485 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
22486 : 451, -1, 453, -1, -1, 456, 457, 458, 459, 460,
22487 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
22488 : 471, -1, -1, 474, 475, 476, 477, 478, -1, 480,
22489 : 481, 482, 483, 484, 485, 486, 487, 488, -1, -1,
22490 : 491, -1, -1, 494, 495, 496, 497, 498, 499, -1,
22491 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22492 : 511, 512, 513, 3, -1, 5, 6, -1, -1, -1,
22493 : -1, 11, -1, -1, -1, -1, -1, -1, 529, -1,
22494 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
22495 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
22496 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
22497 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
22498 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
22499 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
22500 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
22501 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
22502 : 100, 101, 102, 103, -1, -1, -1, 107, -1, -1,
22503 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
22504 : 120, 121, -1, 123, 124, 125, 126, 127, 128, 129,
22505 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
22506 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
22507 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
22508 : 160, 161, 162, 163, 164, 165, -1, 167, 168, 169,
22509 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
22510 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
22511 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
22512 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
22513 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
22514 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
22515 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
22516 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
22517 : 250, 251, 252, 253, -1, 255, 256, 257, -1, -1,
22518 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
22519 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
22520 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
22521 : 290, 291, 292, -1, 294, 295, 296, 297, -1, 299,
22522 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
22523 : 310, -1, 312, 313, 314, -1, -1, 317, 318, 319,
22524 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
22525 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
22526 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
22527 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
22528 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
22529 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
22530 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
22531 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
22532 : 400, 401, -1, 403, 404, 405, 406, 407, 408, 409,
22533 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
22534 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
22535 : 430, -1, 432, 433, -1, -1, 436, 437, 438, 439,
22536 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
22537 : 450, 451, 452, 453, 454, 455, 456, 457, 458, 459,
22538 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
22539 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
22540 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
22541 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
22542 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
22543 : 510, 511, 512, 513, 3, -1, 5, 6, -1, -1,
22544 : -1, -1, 11, -1, -1, -1, -1, 527, 528, -1,
22545 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
22546 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
22547 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
22548 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
22549 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
22550 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
22551 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
22552 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
22553 : -1, 100, 101, 102, 103, -1, -1, -1, 107, -1,
22554 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
22555 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
22556 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
22557 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
22558 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
22559 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
22560 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
22561 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
22562 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
22563 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
22564 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
22565 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
22566 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
22567 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
22568 : 249, 250, 251, 252, 253, -1, 255, 256, 257, -1,
22569 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
22570 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
22571 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
22572 : 289, 290, 291, 292, -1, 294, 295, 296, 297, -1,
22573 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
22574 : 309, 310, -1, 312, 313, 314, -1, -1, 317, 318,
22575 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
22576 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
22577 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
22578 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
22579 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
22580 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
22581 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
22582 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
22583 : 399, 400, 401, -1, 403, 404, 405, 406, 407, 408,
22584 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
22585 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
22586 : 429, 430, -1, 432, 433, -1, -1, 436, 437, 438,
22587 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
22588 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
22589 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
22590 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
22591 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
22592 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
22593 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
22594 : 509, 510, 511, 512, 513, 3, -1, 5, 6, -1,
22595 : -1, -1, -1, 11, -1, -1, -1, -1, 527, 528,
22596 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
22597 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
22598 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
22599 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
22600 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
22601 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
22602 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
22603 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
22604 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
22605 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
22606 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
22607 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
22608 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
22609 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
22610 : 158, 159, 160, 161, 162, 163, 164, 165, -1, 167,
22611 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
22612 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
22613 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
22614 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
22615 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
22616 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
22617 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
22618 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
22619 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
22620 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
22621 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
22622 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
22623 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
22624 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
22625 : 308, 309, 310, -1, 312, 313, 314, -1, -1, 317,
22626 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
22627 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
22628 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
22629 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
22630 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
22631 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
22632 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
22633 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
22634 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
22635 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
22636 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
22637 : 428, 429, 430, -1, 432, 433, -1, -1, 436, 437,
22638 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
22639 : -1, -1, 450, 451, 452, 453, 454, 455, 456, 457,
22640 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
22641 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
22642 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
22643 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
22644 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
22645 : 508, 509, 510, 511, 512, 513, 3, -1, 5, 6,
22646 : -1, -1, -1, -1, 11, -1, -1, -1, -1, 527,
22647 : 528, -1, -1, 20, 21, 22, 23, 24, 25, 26,
22648 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
22649 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
22650 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
22651 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
22652 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
22653 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
22654 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
22655 : 97, 98, -1, 100, 101, 102, 103, -1, -1, -1,
22656 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
22657 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
22658 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
22659 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
22660 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
22661 : 157, 158, 159, 160, 161, 162, 163, 164, 165, -1,
22662 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
22663 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
22664 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
22665 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
22666 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
22667 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
22668 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
22669 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
22670 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
22671 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
22672 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
22673 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
22674 : 287, 288, 289, 290, 291, 292, -1, 294, 295, 296,
22675 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
22676 : 307, 308, 309, 310, -1, 312, 313, 314, -1, -1,
22677 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
22678 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
22679 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
22680 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
22681 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
22682 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
22683 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
22684 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
22685 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
22686 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
22687 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
22688 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
22689 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
22690 : 447, -1, -1, 450, 451, 452, 453, 454, 455, 456,
22691 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
22692 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
22693 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
22694 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
22695 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
22696 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
22697 : -1, -1, -1, -1, -1, 11, -1, -1, -1, -1,
22698 : 527, 528, -1, -1, 20, 21, 22, 23, 24, 25,
22699 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
22700 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
22701 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
22702 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
22703 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
22704 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
22705 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
22706 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
22707 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
22708 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
22709 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
22710 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
22711 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
22712 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
22713 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
22714 : 176, -1, 178, -1, 180, 181, 182, 183, -1, 185,
22715 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
22716 : 196, -1, 198, 199, 200, 201, 202, 203, 204, 205,
22717 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
22718 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
22719 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
22720 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
22721 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
22722 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
22723 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
22724 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
22725 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
22726 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
22727 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
22728 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
22729 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
22730 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
22731 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
22732 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
22733 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
22734 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
22735 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
22736 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
22737 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
22738 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
22739 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
22740 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
22741 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
22742 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
22743 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
22744 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
22745 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
22746 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
22747 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
22748 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22749 : -1, 527, 528, -1, -1, 20, 21, 22, 23, 24,
22750 : 25, 26, 27, 28, -1, 30, 31, 32, 33, 34,
22751 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
22752 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
22753 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
22754 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
22755 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
22756 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
22757 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
22758 : -1, -1, 107, -1, -1, -1, 111, 112, 113, 114,
22759 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
22760 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
22761 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
22762 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
22763 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
22764 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
22765 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
22766 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
22767 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
22768 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
22769 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
22770 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
22771 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
22772 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
22773 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
22774 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
22775 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
22776 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
22777 : 295, 296, 297, -1, 299, 300, 301, 302, 303, 304,
22778 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
22779 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
22780 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
22781 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
22782 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
22783 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
22784 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
22785 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
22786 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
22787 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
22788 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
22789 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
22790 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
22791 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
22792 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
22793 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
22794 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
22795 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
22796 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
22797 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
22798 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
22799 : 3, -1, 5, 6, -1, -1, -1, -1, 11, -1,
22800 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
22801 : 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
22802 : 33, 34, 35, 36, 37, 38, 39, 40, 41, 42,
22803 : 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
22804 : 53, 54, 55, 56, 57, 58, 59, 60, 61, 62,
22805 : 63, 64, 65, 66, 67, 68, 69, 70, 71, 72,
22806 : 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
22807 : 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
22808 : 93, 94, 95, 96, 97, 98, 99, 100, 101, 102,
22809 : 103, 104, 105, 106, 107, 108, 109, 110, 111, 112,
22810 : 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
22811 : 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
22812 : 133, 134, 135, 136, 137, 138, 139, 140, 141, 142,
22813 : 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
22814 : 153, 154, 155, 156, 157, 158, 159, 160, 161, 162,
22815 : 163, 164, 165, 166, 167, 168, 169, 170, 171, 172,
22816 : 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
22817 : 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
22818 : 193, 194, 195, 196, 197, 198, 199, 200, 201, 202,
22819 : 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
22820 : 213, 214, 215, 216, 217, 218, 219, 220, 221, 222,
22821 : 223, 224, 225, 226, 227, 228, 229, 230, 231, 232,
22822 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
22823 : 243, 244, 245, 246, 247, 248, 249, 250, 251, 252,
22824 : 253, 254, 255, 256, 257, 258, 259, 260, 261, 262,
22825 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
22826 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
22827 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
22828 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
22829 : 303, 304, 305, 306, 307, 308, 309, 310, 311, 312,
22830 : 313, 314, 315, 316, 317, 318, 319, 320, 321, 322,
22831 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
22832 : 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
22833 : 343, 344, 345, 346, 347, 348, 349, 350, 351, 352,
22834 : 353, 354, 355, 356, 357, 358, 359, 360, 361, 362,
22835 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
22836 : 373, 374, 375, 376, 377, 378, 379, 380, 381, 382,
22837 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
22838 : 393, 394, 395, 396, 397, 398, 399, 400, 401, 402,
22839 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
22840 : 413, 414, 415, 416, 417, 418, 419, 420, 421, 422,
22841 : 423, 424, 425, 426, 427, 428, 429, 430, 431, 432,
22842 : 433, 434, 435, 436, 437, 438, 439, 440, 441, 442,
22843 : 443, 444, 445, 446, 447, 448, 449, 450, 451, 452,
22844 : 453, 454, 455, 456, 457, 458, 459, 460, 461, 462,
22845 : 463, 464, 465, 466, 467, 468, 469, 470, 471, 472,
22846 : 473, 474, 475, 476, 477, 478, 479, 480, 481, 482,
22847 : 483, 484, 485, 486, 487, 488, 489, 490, 491, 492,
22848 : 493, 494, 495, 496, 497, 498, 499, 500, 501, 502,
22849 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
22850 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
22851 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
22852 : 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
22853 : 32, 33, 34, 35, 36, 37, 38, 39, 40, 41,
22854 : 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
22855 : 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
22856 : 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
22857 : 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
22858 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
22859 : 92, 93, 94, 95, 96, 97, 98, 99, 100, 101,
22860 : 102, 103, 104, 105, 106, 107, 108, 109, 110, 111,
22861 : 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
22862 : 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
22863 : 132, 133, 134, 135, 136, 137, 138, 139, 140, 141,
22864 : 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
22865 : 152, 153, 154, 155, 156, 157, 158, 159, 160, 161,
22866 : 162, 163, 164, 165, 166, 167, 168, 169, 170, 171,
22867 : 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
22868 : 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
22869 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
22870 : 202, 203, 204, 205, 206, 207, 208, 209, 210, 211,
22871 : 212, 213, 214, 215, 216, 217, 218, 219, 220, 221,
22872 : 222, 223, 224, 225, 226, 227, 228, 229, 230, 231,
22873 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
22874 : 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
22875 : 252, 253, 254, 255, 256, 257, 258, 259, 260, 261,
22876 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
22877 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
22878 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
22879 : 292, 293, 294, 295, 296, 297, 298, 299, 300, 301,
22880 : 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
22881 : 312, 313, 314, 315, 316, 317, 318, 319, 320, 321,
22882 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
22883 : 332, 333, 334, 335, 336, 337, 338, 339, 340, 341,
22884 : 342, 343, 344, 345, 346, 347, 348, 349, 350, 351,
22885 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
22886 : 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
22887 : 372, 373, 374, 375, 376, 377, 378, 379, 380, 381,
22888 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
22889 : 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
22890 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
22891 : 412, 413, 414, 415, 416, 417, 418, 419, 420, 421,
22892 : 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
22893 : 432, 433, 434, 435, 436, 437, 438, 439, 440, 441,
22894 : 442, 443, 444, 445, 446, 447, 448, 449, 450, 451,
22895 : 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
22896 : 462, 463, 464, 465, 466, 467, 468, 469, 470, 471,
22897 : 472, 473, 474, 475, 476, 477, 478, 479, 480, 481,
22898 : 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
22899 : 492, 493, 494, 495, 496, 497, 498, 499, 500, 501,
22900 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
22901 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
22902 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
22903 : 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
22904 : 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
22905 : 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
22906 : 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
22907 : 61, 62, 63, 64, 65, 66, 67, 68, 69, 70,
22908 : 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
22909 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
22910 : 91, 92, 93, 94, 95, 96, 97, 98, 99, 100,
22911 : 101, 102, 103, 104, 105, 106, 107, 108, 109, 110,
22912 : 111, 112, 113, 114, 115, 116, 117, 118, 119, 120,
22913 : 121, 122, 123, 124, 125, 126, 127, 128, 129, 130,
22914 : 131, 132, 133, 134, 135, 136, 137, 138, 139, 140,
22915 : 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
22916 : 151, 152, 153, 154, 155, 156, 157, 158, 159, 160,
22917 : 161, 162, 163, 164, 165, 166, 167, 168, 169, 170,
22918 : 171, 172, 173, 174, 175, 176, 177, 178, 179, 180,
22919 : 181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
22920 : 191, 192, 193, 194, 195, 196, 197, 198, 199, 200,
22921 : 201, 202, 203, 204, 205, 206, 207, 208, 209, 210,
22922 : 211, 212, 213, 214, 215, 216, 217, 218, 219, 220,
22923 : 221, 222, 223, 224, 225, 226, 227, 228, 229, 230,
22924 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
22925 : 241, 242, 243, 244, 245, 246, 247, 248, 249, 250,
22926 : 251, 252, 253, 254, 255, 256, 257, 258, 259, 260,
22927 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
22928 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
22929 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
22930 : 291, 292, 293, 294, 295, 296, 297, 298, 299, 300,
22931 : 301, 302, 303, 304, 305, 306, 307, 308, 309, 310,
22932 : 311, 312, 313, 314, 315, 316, 317, 318, 319, 320,
22933 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
22934 : 331, 332, 333, 334, 335, 336, 337, 338, 339, 340,
22935 : 341, 342, 343, 344, 345, 346, 347, 348, 349, 350,
22936 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
22937 : 361, 362, 363, 364, 365, 366, 367, 368, 369, 370,
22938 : 371, 372, 373, 374, 375, 376, 377, 378, 379, 380,
22939 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
22940 : 391, 392, 393, 394, 395, 396, 397, 398, 399, 400,
22941 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
22942 : 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
22943 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
22944 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
22945 : 441, 442, 443, 444, 445, 446, 447, 448, 449, 450,
22946 : 451, 452, 453, 454, 455, 456, 457, 458, 459, 460,
22947 : 461, 462, 463, 464, 465, 466, 467, 468, 469, 470,
22948 : 471, 472, 473, 474, 475, 476, 477, 478, 479, 480,
22949 : 481, 482, 483, 484, 485, 486, 487, 488, 489, 490,
22950 : 491, 492, 493, 494, 495, 496, 497, 498, 499, 500,
22951 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
22952 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
22953 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
22954 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
22955 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
22956 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
22957 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
22958 : 60, 61, 62, 63, 64, -1, 66, 67, 68, 69,
22959 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
22960 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
22961 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
22962 : 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
22963 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
22964 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
22965 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
22966 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
22967 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
22968 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
22969 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
22970 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
22971 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
22972 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
22973 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
22974 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
22975 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
22976 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
22977 : 250, 251, 252, 253, -1, 255, 256, 257, 258, 259,
22978 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
22979 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
22980 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
22981 : 290, 291, 292, -1, 294, 295, 296, 297, -1, 299,
22982 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
22983 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
22984 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
22985 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
22986 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
22987 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
22988 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
22989 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
22990 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
22991 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
22992 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
22993 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
22994 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
22995 : 430, -1, 432, 433, 434, -1, 436, 437, 438, 439,
22996 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
22997 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
22998 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
22999 : 470, 471, 472, -1, 474, 475, 476, 477, 478, 479,
23000 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
23001 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
23002 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
23003 : 510, 511, 512, 513, 3, -1, 5, 6, -1, 8,
23004 : 9, -1, 11, -1, -1, -1, -1, -1, -1, -1,
23005 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
23006 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
23007 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
23008 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
23009 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
23010 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
23011 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
23012 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
23013 : -1, 100, 101, 102, 103, -1, -1, -1, 107, -1,
23014 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
23015 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
23016 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
23017 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
23018 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
23019 : 159, 160, 161, 162, 163, 164, 165, -1, 167, 168,
23020 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
23021 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
23022 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
23023 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
23024 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
23025 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
23026 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
23027 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
23028 : 249, 250, 251, 252, 253, -1, 255, 256, 257, -1,
23029 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
23030 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
23031 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
23032 : 289, 290, 291, 292, -1, 294, 295, 296, 297, 298,
23033 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
23034 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
23035 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
23036 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
23037 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
23038 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
23039 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
23040 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
23041 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
23042 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
23043 : 399, 400, 401, -1, 403, 404, 405, 406, 407, 408,
23044 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
23045 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
23046 : 429, 430, -1, 432, 433, -1, -1, 436, 437, 438,
23047 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
23048 : -1, 450, 451, 452, 453, 454, 455, 456, 457, 458,
23049 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
23050 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
23051 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
23052 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
23053 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
23054 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
23055 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23056 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
23057 : 28, 29, 30, 31, 32, -1, -1, -1, -1, -1,
23058 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
23059 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
23060 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
23061 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
23062 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
23063 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
23064 : 98, -1, 100, 101, 102, 103, -1, -1, 106, 107,
23065 : -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
23066 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
23067 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
23068 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
23069 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
23070 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
23071 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
23072 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
23073 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
23074 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
23075 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
23076 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
23077 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
23078 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
23079 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
23080 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
23081 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
23082 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
23083 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
23084 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
23085 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
23086 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
23087 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
23088 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
23089 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
23090 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
23091 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
23092 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
23093 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
23094 : 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
23095 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
23096 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
23097 : 428, 429, 430, -1, 432, 433, -1, -1, 436, 437,
23098 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
23099 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
23100 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
23101 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
23102 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
23103 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
23104 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
23105 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
23106 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23107 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
23108 : 27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
23109 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
23110 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
23111 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
23112 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
23113 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
23114 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
23115 : 97, 98, -1, 100, 101, 102, 103, -1, -1, 106,
23116 : 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
23117 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
23118 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
23119 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
23120 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
23121 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
23122 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
23123 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
23124 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
23125 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
23126 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
23127 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
23128 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
23129 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
23130 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
23131 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
23132 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
23133 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
23134 : 287, 288, 289, 290, 291, 292, -1, 294, 295, 296,
23135 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
23136 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
23137 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
23138 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
23139 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
23140 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
23141 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
23142 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
23143 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
23144 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
23145 : 397, 398, 399, 400, 401, 402, 403, 404, 405, 406,
23146 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
23147 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
23148 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
23149 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
23150 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
23151 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
23152 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
23153 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
23154 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
23155 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
23156 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
23157 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23158 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
23159 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
23160 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
23161 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
23162 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
23163 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
23164 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
23165 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
23166 : 96, 97, 98, -1, 100, 101, 102, 103, -1, -1,
23167 : 106, 107, -1, -1, 110, 111, 112, 113, 114, 115,
23168 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
23169 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
23170 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
23171 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
23172 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
23173 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
23174 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
23175 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
23176 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
23177 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
23178 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
23179 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
23180 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
23181 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
23182 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
23183 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
23184 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
23185 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
23186 : 296, 297, -1, 299, 300, 301, 302, 303, 304, 305,
23187 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
23188 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
23189 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
23190 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
23191 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
23192 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
23193 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
23194 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
23195 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
23196 : -1, 397, 398, 399, 400, 401, 402, 403, 404, 405,
23197 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
23198 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
23199 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
23200 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
23201 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
23202 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
23203 : -1, 467, 468, 469, 470, 471, 472, -1, 474, 475,
23204 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
23205 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
23206 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
23207 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
23208 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23209 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
23210 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
23211 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
23212 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
23213 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
23214 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
23215 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
23216 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
23217 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
23218 : -1, 106, 107, -1, -1, 110, 111, 112, 113, 114,
23219 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
23220 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
23221 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
23222 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
23223 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
23224 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
23225 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
23226 : 185, 186, 187, 188, 189, 190, -1, 192, 193, 194,
23227 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
23228 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
23229 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
23230 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
23231 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
23232 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
23233 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
23234 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
23235 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
23236 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
23237 : 295, 296, 297, -1, 299, 300, 301, 302, 303, 304,
23238 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
23239 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
23240 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
23241 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
23242 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
23243 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
23244 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
23245 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
23246 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
23247 : 395, -1, 397, 398, 399, 400, 401, 402, 403, 404,
23248 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
23249 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
23250 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
23251 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
23252 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
23253 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
23254 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
23255 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
23256 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
23257 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
23258 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
23259 : -1, -1, 6, -1, -1, -1, -1, -1, -1, -1,
23260 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
23261 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
23262 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
23263 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
23264 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
23265 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
23266 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
23267 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
23268 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
23269 : -1, -1, -1, 107, -1, -1, -1, 111, 112, 113,
23270 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
23271 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
23272 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
23273 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
23274 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
23275 : 164, 165, -1, 167, 168, 169, 170, 171, -1, 173,
23276 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
23277 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
23278 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
23279 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
23280 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
23281 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
23282 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
23283 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
23284 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
23285 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
23286 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
23287 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
23288 : 294, 295, 296, 297, -1, 299, 300, 301, 302, 303,
23289 : 304, 305, -1, 307, 308, 309, 310, -1, 312, 313,
23290 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
23291 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
23292 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
23293 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
23294 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
23295 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
23296 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
23297 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
23298 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
23299 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
23300 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
23301 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
23302 : -1, -1, 436, 437, 438, 439, 440, 441, 442, 443,
23303 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
23304 : 454, 455, 456, 457, 458, 459, 460, 461, 462, 463,
23305 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
23306 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
23307 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
23308 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
23309 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
23310 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23311 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
23312 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
23313 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
23314 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
23315 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
23316 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
23317 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
23318 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
23319 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
23320 : 103, -1, -1, 106, 107, -1, -1, 110, 111, 112,
23321 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
23322 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
23323 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
23324 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
23325 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
23326 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
23327 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
23328 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
23329 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
23330 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
23331 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
23332 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
23333 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
23334 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
23335 : 253, -1, 255, 256, 257, -1, -1, 260, 261, 262,
23336 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
23337 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
23338 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
23339 : -1, 294, 295, 296, 297, -1, 299, 300, 301, 302,
23340 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
23341 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
23342 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
23343 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
23344 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
23345 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
23346 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
23347 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
23348 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
23349 : 393, 394, 395, -1, 397, 398, 399, 400, 401, 402,
23350 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
23351 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
23352 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
23353 : 433, -1, -1, 436, 437, 438, 439, 440, 441, 442,
23354 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
23355 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
23356 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
23357 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
23358 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
23359 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
23360 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
23361 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
23362 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
23363 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
23364 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
23365 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
23366 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
23367 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
23368 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
23369 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
23370 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
23371 : 102, 103, -1, -1, 106, 107, -1, -1, 110, 111,
23372 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
23373 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
23374 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
23375 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
23376 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
23377 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
23378 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
23379 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
23380 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
23381 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
23382 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
23383 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
23384 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
23385 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
23386 : 252, 253, -1, 255, 256, 257, -1, -1, 260, 261,
23387 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
23388 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
23389 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
23390 : 292, -1, 294, 295, 296, 297, -1, 299, 300, 301,
23391 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
23392 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
23393 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
23394 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
23395 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
23396 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
23397 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
23398 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
23399 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
23400 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
23401 : 402, 403, 404, 405, 406, 407, 408, 409, 410, 411,
23402 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
23403 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
23404 : 432, 433, -1, -1, 436, 437, 438, 439, 440, 441,
23405 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
23406 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
23407 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
23408 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
23409 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
23410 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
23411 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
23412 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
23413 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
23414 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
23415 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
23416 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
23417 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
23418 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
23419 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
23420 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
23421 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
23422 : 101, 102, 103, -1, -1, 106, 107, -1, -1, 110,
23423 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
23424 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
23425 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
23426 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
23427 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
23428 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
23429 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
23430 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
23431 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
23432 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
23433 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
23434 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
23435 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
23436 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
23437 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
23438 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
23439 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
23440 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
23441 : 291, 292, -1, 294, 295, 296, 297, -1, 299, 300,
23442 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
23443 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
23444 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
23445 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
23446 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
23447 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
23448 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
23449 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
23450 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
23451 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
23452 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
23453 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
23454 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
23455 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
23456 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
23457 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
23458 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
23459 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
23460 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
23461 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
23462 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
23463 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
23464 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23465 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
23466 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
23467 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
23468 : 50, 51, 52, 53, 54, 55, 56, -1, 58, 59,
23469 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
23470 : 70, 71, -1, 73, 74, 75, 76, 77, -1, 79,
23471 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
23472 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
23473 : 100, 101, 102, 103, -1, -1, 106, 107, -1, -1,
23474 : 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
23475 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
23476 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
23477 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
23478 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
23479 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
23480 : 170, 171, -1, 173, -1, 175, 176, 177, -1, 179,
23481 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
23482 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
23483 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
23484 : 210, -1, 212, 213, 214, 215, 216, 217, 218, 219,
23485 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
23486 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
23487 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
23488 : 250, 251, 252, 253, -1, 255, 256, 257, -1, -1,
23489 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
23490 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
23491 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
23492 : 290, 291, 292, -1, 294, 295, 296, 297, -1, 299,
23493 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
23494 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
23495 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
23496 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
23497 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
23498 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
23499 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
23500 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
23501 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
23502 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
23503 : 400, 401, 402, 403, 404, 405, 406, 407, 408, 409,
23504 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
23505 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
23506 : 430, -1, 432, 433, -1, -1, 436, 437, 438, 439,
23507 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
23508 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
23509 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
23510 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
23511 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
23512 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
23513 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
23514 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
23515 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23516 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
23517 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
23518 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
23519 : 49, 50, 51, 52, 53, 54, 55, 56, -1, 58,
23520 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
23521 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
23522 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
23523 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
23524 : -1, 100, 101, 102, 103, -1, -1, 106, 107, -1,
23525 : -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
23526 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
23527 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
23528 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
23529 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
23530 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
23531 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
23532 : 179, 180, 181, 182, 183, -1, 185, 186, -1, 188,
23533 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
23534 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
23535 : 209, 210, -1, 212, 213, 214, 215, 216, 217, 218,
23536 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
23537 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
23538 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
23539 : 249, 250, 251, 252, 253, -1, 255, 256, 257, -1,
23540 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
23541 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
23542 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
23543 : 289, 290, 291, 292, -1, 294, 295, 296, 297, -1,
23544 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
23545 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
23546 : 319, 320, 321, 322, 323, 324, 325, 326, 327, 328,
23547 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
23548 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
23549 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
23550 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
23551 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
23552 : 379, 380, 381, 382, 383, 384, 385, 386, 387, 388,
23553 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
23554 : 399, 400, 401, 402, 403, 404, 405, 406, 407, 408,
23555 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
23556 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
23557 : 429, 430, -1, 432, 433, -1, -1, 436, 437, 438,
23558 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
23559 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
23560 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
23561 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
23562 : 479, 480, -1, 482, 483, 484, 485, 486, 487, 488,
23563 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
23564 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
23565 : 509, 510, 511, 512, 513, 3, -1, -1, 6, -1,
23566 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23567 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
23568 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
23569 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
23570 : 48, 49, 50, 51, 52, 53, 54, 55, 56, -1,
23571 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
23572 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
23573 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
23574 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
23575 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
23576 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
23577 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
23578 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
23579 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
23580 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
23581 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
23582 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
23583 : -1, 179, 180, 181, 182, 183, -1, 185, 186, -1,
23584 : 188, 189, 190, -1, 192, 193, 194, 195, 196, 197,
23585 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
23586 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
23587 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
23588 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
23589 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
23590 : -1, 249, 250, 251, 252, 253, -1, 255, 256, 257,
23591 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
23592 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
23593 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
23594 : 288, 289, 290, 291, 292, -1, 294, 295, 296, 297,
23595 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
23596 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
23597 : 318, 319, 320, 321, 322, 323, 324, 325, 326, 327,
23598 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
23599 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
23600 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
23601 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
23602 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
23603 : 378, 379, 380, 381, 382, 383, 384, 385, 386, 387,
23604 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
23605 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
23606 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
23607 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
23608 : 428, 429, 430, -1, 432, 433, -1, -1, 436, 437,
23609 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
23610 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
23611 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
23612 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
23613 : 478, 479, 480, -1, 482, 483, 484, 485, 486, 487,
23614 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
23615 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
23616 : 508, 509, 510, 511, 512, 513, 3, -1, -1, 6,
23617 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23618 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
23619 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
23620 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
23621 : 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
23622 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
23623 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
23624 : 77, -1, 79, -1, 81, 82, 83, 84, 85, 86,
23625 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
23626 : 97, 98, -1, 100, 101, 102, 103, -1, -1, -1,
23627 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
23628 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
23629 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
23630 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
23631 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
23632 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
23633 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
23634 : 177, -1, 179, 180, 181, 182, 183, -1, 185, 186,
23635 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
23636 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
23637 : 207, 208, 209, 210, -1, 212, 213, 214, 215, 216,
23638 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
23639 : 227, 228, 229, 230, 231, 232, 233, 234, 235, 236,
23640 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
23641 : -1, -1, 249, 250, 251, 252, 253, -1, 255, 256,
23642 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
23643 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
23644 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
23645 : 287, 288, 289, 290, 291, 292, -1, 294, 295, 296,
23646 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
23647 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
23648 : 317, 318, 319, 320, 321, 322, 323, 324, 325, 326,
23649 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
23650 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
23651 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
23652 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
23653 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
23654 : 377, 378, 379, 380, 381, 382, 383, 384, 385, 386,
23655 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
23656 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
23657 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
23658 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
23659 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
23660 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
23661 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
23662 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
23663 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
23664 : 477, 478, 479, 480, -1, 482, 483, 484, 485, 486,
23665 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
23666 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
23667 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
23668 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23669 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
23670 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
23671 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
23672 : 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
23673 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
23674 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
23675 : 76, 77, -1, 79, -1, 81, 82, 83, 84, 85,
23676 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
23677 : 96, 97, 98, -1, 100, 101, 102, 103, -1, -1,
23678 : -1, 107, -1, -1, -1, 111, 112, 113, 114, 115,
23679 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
23680 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
23681 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
23682 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
23683 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
23684 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
23685 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
23686 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
23687 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
23688 : 206, 207, 208, 209, 210, -1, 212, 213, 214, 215,
23689 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
23690 : 226, 227, 228, 229, 230, 231, 232, 233, 234, 235,
23691 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
23692 : 246, -1, -1, 249, 250, 251, 252, 253, -1, 255,
23693 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
23694 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
23695 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
23696 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
23697 : 296, 297, -1, 299, 300, 301, 302, 303, 304, 305,
23698 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
23699 : -1, 317, 318, 319, 320, 321, 322, 323, 324, 325,
23700 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
23701 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
23702 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
23703 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
23704 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
23705 : -1, 377, 378, 379, 380, 381, 382, 383, 384, 385,
23706 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
23707 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
23708 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
23709 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
23710 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
23711 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
23712 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
23713 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
23714 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
23715 : 476, 477, 478, 479, 480, -1, 482, 483, 484, 485,
23716 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
23717 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
23718 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
23719 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23720 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
23721 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
23722 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
23723 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
23724 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
23725 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
23726 : 75, 76, 77, -1, 79, -1, 81, 82, 83, 84,
23727 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
23728 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
23729 : -1, -1, 107, -1, -1, -1, 111, 112, 113, 114,
23730 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
23731 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
23732 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
23733 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
23734 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
23735 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
23736 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
23737 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
23738 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
23739 : 205, 206, 207, 208, 209, 210, -1, 212, 213, 214,
23740 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
23741 : 225, 226, 227, 228, 229, 230, 231, 232, 233, 234,
23742 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
23743 : 245, 246, -1, -1, 249, 250, 251, 252, 253, -1,
23744 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
23745 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
23746 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
23747 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
23748 : 295, 296, 297, -1, 299, 300, 301, 302, 303, 304,
23749 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
23750 : -1, -1, 317, 318, 319, 320, 321, 322, 323, 324,
23751 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
23752 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
23753 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
23754 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
23755 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
23756 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
23757 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
23758 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
23759 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
23760 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
23761 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
23762 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
23763 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
23764 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
23765 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
23766 : 475, 476, 477, 478, 479, 480, -1, 482, 483, 484,
23767 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
23768 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
23769 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
23770 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23771 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
23772 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
23773 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
23774 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
23775 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
23776 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
23777 : 74, 75, 76, 77, -1, 79, -1, 81, 82, 83,
23778 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
23779 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
23780 : -1, -1, -1, 107, -1, -1, -1, 111, 112, 113,
23781 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
23782 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
23783 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
23784 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
23785 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
23786 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
23787 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
23788 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
23789 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
23790 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
23791 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
23792 : 224, 225, 226, 227, 228, 229, 230, 231, 232, 233,
23793 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
23794 : 244, 245, 246, -1, -1, 249, 250, 251, 252, 253,
23795 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
23796 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
23797 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
23798 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
23799 : 294, 295, 296, 297, -1, 299, 300, 301, 302, 303,
23800 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
23801 : 314, -1, -1, 317, 318, 319, 320, 321, 322, 323,
23802 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
23803 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
23804 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
23805 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
23806 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
23807 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
23808 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
23809 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
23810 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
23811 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
23812 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
23813 : -1, -1, 436, 437, 438, 439, 440, 441, 442, 443,
23814 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
23815 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
23816 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
23817 : 474, 475, 476, 477, 478, 479, 480, -1, 482, 483,
23818 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
23819 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
23820 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
23821 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23822 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
23823 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
23824 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
23825 : -1, 44, 45, 46, 47, 48, 49, 50, 51, 52,
23826 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
23827 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
23828 : 73, 74, 75, 76, 77, -1, 79, -1, 81, 82,
23829 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
23830 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
23831 : 103, -1, -1, -1, 107, -1, -1, -1, 111, 112,
23832 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
23833 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
23834 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
23835 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
23836 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
23837 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
23838 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
23839 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
23840 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
23841 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
23842 : 213, 214, 215, 216, 217, 218, 219, 220, -1, 222,
23843 : -1, 224, 225, 226, 227, 228, 229, 230, 231, 232,
23844 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
23845 : 243, 244, 245, 246, -1, -1, 249, 250, 251, 252,
23846 : 253, -1, 255, 256, 257, -1, -1, 260, 261, 262,
23847 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
23848 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
23849 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
23850 : -1, 294, 295, 296, 297, -1, 299, 300, 301, 302,
23851 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
23852 : 313, 314, -1, -1, 317, 318, 319, 320, 321, 322,
23853 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
23854 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
23855 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
23856 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
23857 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
23858 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
23859 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
23860 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
23861 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
23862 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
23863 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
23864 : 433, -1, -1, 436, 437, 438, 439, 440, 441, 442,
23865 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
23866 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
23867 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
23868 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
23869 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
23870 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
23871 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
23872 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
23873 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
23874 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
23875 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
23876 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
23877 : 52, 53, 54, 55, 56, -1, 58, 59, 60, 61,
23878 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
23879 : -1, 73, 74, 75, 76, 77, -1, 79, -1, 81,
23880 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
23881 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
23882 : 102, 103, -1, -1, -1, 107, -1, -1, -1, 111,
23883 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
23884 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
23885 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
23886 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
23887 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
23888 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
23889 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
23890 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
23891 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
23892 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
23893 : 212, 213, 214, 215, 216, 217, 218, 219, 220, -1,
23894 : 222, -1, 224, 225, 226, 227, 228, 229, 230, 231,
23895 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
23896 : 242, 243, 244, 245, 246, -1, -1, 249, 250, 251,
23897 : 252, 253, -1, 255, 256, 257, -1, -1, 260, 261,
23898 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
23899 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
23900 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
23901 : 292, -1, 294, 295, 296, 297, -1, 299, 300, 301,
23902 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
23903 : 312, 313, 314, -1, -1, 317, 318, 319, 320, 321,
23904 : 322, 323, 324, 325, 326, 327, 328, 329, 330, 331,
23905 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
23906 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
23907 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
23908 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
23909 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
23910 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
23911 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
23912 : -1, 403, 404, 405, 406, 407, 408, 409, 410, 411,
23913 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
23914 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
23915 : 432, 433, -1, -1, 436, 437, 438, 439, 440, 441,
23916 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
23917 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
23918 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
23919 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
23920 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
23921 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
23922 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
23923 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
23924 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
23925 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
23926 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
23927 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
23928 : 51, 52, 53, 54, 55, 56, -1, 58, 59, 60,
23929 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
23930 : 71, -1, 73, 74, 75, 76, 77, -1, 79, -1,
23931 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
23932 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
23933 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
23934 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
23935 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
23936 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
23937 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
23938 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
23939 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
23940 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
23941 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
23942 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
23943 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
23944 : -1, 212, 213, 214, 215, 216, 217, 218, 219, 220,
23945 : -1, 222, -1, 224, 225, 226, 227, 228, 229, 230,
23946 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
23947 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
23948 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
23949 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
23950 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
23951 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
23952 : 291, 292, -1, 294, 295, 296, 297, -1, 299, 300,
23953 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
23954 : -1, 312, 313, 314, -1, -1, 317, 318, 319, 320,
23955 : 321, 322, 323, 324, 325, 326, 327, 328, 329, 330,
23956 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
23957 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
23958 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
23959 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
23960 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
23961 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
23962 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
23963 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
23964 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
23965 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
23966 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
23967 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
23968 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
23969 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
23970 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
23971 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
23972 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
23973 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
23974 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
23975 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
23976 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
23977 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
23978 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
23979 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
23980 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
23981 : 70, 71, 72, 73, 74, 75, 76, 77, -1, -1,
23982 : 80, 81, 82, 83, 84, 85, 86, -1, 88, 89,
23983 : 90, 91, 92, 93, 94, 95, 96, 97, 98, -1,
23984 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
23985 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
23986 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
23987 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
23988 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
23989 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
23990 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
23991 : 170, 171, -1, 173, 174, 175, 176, -1, -1, -1,
23992 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
23993 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
23994 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
23995 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
23996 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
23997 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
23998 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
23999 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
24000 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
24001 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
24002 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
24003 : 290, 291, 292, 293, 294, 295, -1, 297, -1, 299,
24004 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
24005 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
24006 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
24007 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
24008 : 340, 341, 342, 343, 344, 345, 346, 347, 348, 349,
24009 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
24010 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
24011 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
24012 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
24013 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
24014 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
24015 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
24016 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
24017 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
24018 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
24019 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
24020 : 460, 461, 462, 463, 464, -1, 466, 467, 468, 469,
24021 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
24022 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
24023 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
24024 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
24025 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
24026 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24027 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
24028 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
24029 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
24030 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
24031 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
24032 : 69, 70, 71, 72, 73, 74, 75, 76, 77, -1,
24033 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
24034 : 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
24035 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
24036 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
24037 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
24038 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
24039 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
24040 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
24041 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
24042 : 169, 170, 171, -1, 173, 174, 175, 176, -1, -1,
24043 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
24044 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
24045 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
24046 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
24047 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
24048 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
24049 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
24050 : 249, 250, -1, 252, 253, -1, 255, 256, 257, -1,
24051 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
24052 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
24053 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
24054 : 289, 290, 291, 292, 293, 294, 295, -1, 297, -1,
24055 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
24056 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
24057 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
24058 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
24059 : 339, 340, 341, 342, 343, 344, 345, 346, 347, 348,
24060 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
24061 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
24062 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
24063 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
24064 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
24065 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
24066 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
24067 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
24068 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
24069 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
24070 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
24071 : 459, 460, 461, 462, 463, 464, -1, 466, 467, 468,
24072 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
24073 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
24074 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
24075 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
24076 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
24077 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24078 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
24079 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
24080 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
24081 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
24082 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
24083 : 68, 69, 70, 71, 72, 73, 74, 75, 76, 77,
24084 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
24085 : 88, 89, 90, 91, 92, 93, 94, 95, 96, 97,
24086 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
24087 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
24088 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
24089 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
24090 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
24091 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
24092 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
24093 : 168, 169, 170, 171, -1, 173, 174, 175, 176, -1,
24094 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
24095 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
24096 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
24097 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
24098 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
24099 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
24100 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
24101 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
24102 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
24103 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
24104 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
24105 : 288, 289, 290, 291, 292, 293, 294, 295, -1, 297,
24106 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
24107 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
24108 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
24109 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
24110 : 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
24111 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
24112 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
24113 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
24114 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
24115 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
24116 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
24117 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
24118 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
24119 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
24120 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
24121 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
24122 : 458, 459, 460, 461, 462, 463, 464, -1, 466, 467,
24123 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
24124 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
24125 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
24126 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
24127 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
24128 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24129 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
24130 : 27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
24131 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
24132 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
24133 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
24134 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
24135 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
24136 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
24137 : 97, 98, 99, -1, 101, 102, 103, -1, -1, -1,
24138 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
24139 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
24140 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
24141 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
24142 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
24143 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
24144 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
24145 : -1, -1, -1, 180, 181, 182, 183, 184, 185, 186,
24146 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
24147 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
24148 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
24149 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
24150 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
24151 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
24152 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
24153 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
24154 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
24155 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
24156 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
24157 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
24158 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
24159 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
24160 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
24161 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
24162 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
24163 : 357, 358, 359, 360, 361, 362, 363, 364, 365, 366,
24164 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
24165 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
24166 : 387, 388, 389, 390, 391, 392, 393, 394, 395, 396,
24167 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
24168 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
24169 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
24170 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
24171 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
24172 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
24173 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
24174 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
24175 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
24176 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
24177 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
24178 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
24179 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24180 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
24181 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
24182 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
24183 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
24184 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
24185 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
24186 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
24187 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
24188 : 96, 97, 98, 99, -1, 101, 102, 103, -1, -1,
24189 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
24190 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
24191 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
24192 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
24193 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
24194 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
24195 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
24196 : 176, -1, -1, -1, 180, 181, 182, 183, 184, 185,
24197 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
24198 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
24199 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
24200 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
24201 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
24202 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
24203 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
24204 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
24205 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
24206 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
24207 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
24208 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
24209 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
24210 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
24211 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
24212 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
24213 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
24214 : 356, 357, 358, 359, 360, 361, 362, 363, 364, 365,
24215 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
24216 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
24217 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
24218 : 396, 397, 398, 399, 400, 401, -1, 403, 404, 405,
24219 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
24220 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
24221 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
24222 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
24223 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
24224 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
24225 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
24226 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
24227 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
24228 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
24229 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
24230 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24231 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
24232 : 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
24233 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
24234 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
24235 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
24236 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
24237 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
24238 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
24239 : 95, 96, 97, 98, 99, -1, 101, 102, 103, -1,
24240 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
24241 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
24242 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
24243 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
24244 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
24245 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
24246 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
24247 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
24248 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
24249 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
24250 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
24251 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
24252 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
24253 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
24254 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
24255 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
24256 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
24257 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
24258 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
24259 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
24260 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
24261 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
24262 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
24263 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
24264 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
24265 : 355, 356, 357, 358, 359, 360, 361, 362, 363, 364,
24266 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
24267 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
24268 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
24269 : 395, 396, 397, 398, 399, 400, 401, -1, 403, 404,
24270 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
24271 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
24272 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
24273 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
24274 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
24275 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
24276 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
24277 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
24278 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
24279 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
24280 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
24281 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24282 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
24283 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
24284 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
24285 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
24286 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
24287 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
24288 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
24289 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
24290 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
24291 : -1, -1, -1, 107, -1, -1, -1, 111, 112, 113,
24292 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
24293 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
24294 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
24295 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
24296 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
24297 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
24298 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
24299 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
24300 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
24301 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
24302 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
24303 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
24304 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
24305 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
24306 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
24307 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
24308 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
24309 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
24310 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
24311 : 304, 305, -1, 307, 308, 309, -1, 311, 312, 313,
24312 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
24313 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
24314 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
24315 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
24316 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
24317 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
24318 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
24319 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
24320 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
24321 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
24322 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
24323 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
24324 : -1, 435, 436, -1, 438, 439, 440, 441, 442, 443,
24325 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
24326 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
24327 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
24328 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
24329 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
24330 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
24331 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
24332 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24333 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
24334 : 23, 24, 25, 26, 27, 28, 29, 30, 31, 32,
24335 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
24336 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
24337 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
24338 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
24339 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
24340 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
24341 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
24342 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
24343 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
24344 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
24345 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
24346 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
24347 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
24348 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
24349 : 173, 174, 175, 176, -1, -1, -1, 180, 181, 182,
24350 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
24351 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
24352 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
24353 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
24354 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
24355 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
24356 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
24357 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
24358 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
24359 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
24360 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
24361 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
24362 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
24363 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
24364 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
24365 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
24366 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
24367 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
24368 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
24369 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
24370 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
24371 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
24372 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
24373 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
24374 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
24375 : 433, -1, 435, 436, -1, 438, 439, 440, 441, 442,
24376 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
24377 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
24378 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
24379 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
24380 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
24381 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
24382 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
24383 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
24384 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
24385 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
24386 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
24387 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
24388 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
24389 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
24390 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
24391 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
24392 : -1, 93, 94, 95, 96, 97, 98, 99, -1, 101,
24393 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
24394 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
24395 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
24396 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
24397 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
24398 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
24399 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
24400 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
24401 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
24402 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
24403 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
24404 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
24405 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
24406 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
24407 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
24408 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
24409 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
24410 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
24411 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
24412 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
24413 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
24414 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
24415 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
24416 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
24417 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
24418 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
24419 : 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
24420 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
24421 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
24422 : 392, 393, 394, 395, 396, 397, 398, 399, 400, 401,
24423 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
24424 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
24425 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
24426 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
24427 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
24428 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
24429 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
24430 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
24431 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
24432 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
24433 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
24434 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
24435 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
24436 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
24437 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
24438 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
24439 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
24440 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
24441 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
24442 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
24443 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
24444 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
24445 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
24446 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
24447 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
24448 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
24449 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
24450 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
24451 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
24452 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
24453 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
24454 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
24455 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
24456 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
24457 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
24458 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
24459 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
24460 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
24461 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
24462 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
24463 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
24464 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
24465 : 311, 312, 313, 314, -1, -1, 317, 318, 319, -1,
24466 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
24467 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
24468 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
24469 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
24470 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
24471 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
24472 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
24473 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
24474 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
24475 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
24476 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
24477 : -1, 432, 433, -1, 435, 436, -1, 438, 439, 440,
24478 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
24479 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
24480 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
24481 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
24482 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
24483 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
24484 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
24485 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
24486 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24487 : 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
24488 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
24489 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
24490 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
24491 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
24492 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
24493 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
24494 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
24495 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
24496 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
24497 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
24498 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
24499 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
24500 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
24501 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
24502 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
24503 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
24504 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
24505 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
24506 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
24507 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
24508 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
24509 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
24510 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
24511 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
24512 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
24513 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
24514 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
24515 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
24516 : -1, 311, 312, 313, 314, -1, -1, 317, 318, 319,
24517 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
24518 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
24519 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
24520 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
24521 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
24522 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
24523 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
24524 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
24525 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
24526 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
24527 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
24528 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
24529 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
24530 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
24531 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
24532 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
24533 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
24534 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
24535 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
24536 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
24537 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24538 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
24539 : 29, 30, 31, 32, -1, -1, -1, -1, -1, -1,
24540 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
24541 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
24542 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
24543 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
24544 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
24545 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
24546 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
24547 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
24548 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
24549 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
24550 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
24551 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
24552 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
24553 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
24554 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
24555 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
24556 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
24557 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
24558 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
24559 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
24560 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
24561 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
24562 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
24563 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
24564 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
24565 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
24566 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
24567 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
24568 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
24569 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
24570 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
24571 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
24572 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
24573 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
24574 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
24575 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
24576 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
24577 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
24578 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
24579 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
24580 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
24581 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
24582 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
24583 : 469, 470, 471, 472, -1, 474, 475, 476, 477, 478,
24584 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
24585 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
24586 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
24587 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
24588 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24589 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
24590 : 28, 29, 30, 31, 32, -1, -1, -1, -1, -1,
24591 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
24592 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
24593 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
24594 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
24595 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
24596 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
24597 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
24598 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
24599 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
24600 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
24601 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
24602 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
24603 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
24604 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
24605 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
24606 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
24607 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
24608 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
24609 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
24610 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
24611 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
24612 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
24613 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
24614 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
24615 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
24616 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
24617 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
24618 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
24619 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
24620 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
24621 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
24622 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
24623 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
24624 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
24625 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
24626 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
24627 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
24628 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
24629 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
24630 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
24631 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
24632 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
24633 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
24634 : 468, 469, 470, 471, 472, -1, 474, 475, 476, 477,
24635 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
24636 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
24637 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
24638 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
24639 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24640 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
24641 : 27, 28, 29, 30, 31, 32, -1, -1, -1, -1,
24642 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
24643 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
24644 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
24645 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
24646 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
24647 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
24648 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
24649 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
24650 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
24651 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
24652 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
24653 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
24654 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
24655 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
24656 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
24657 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
24658 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
24659 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
24660 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
24661 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
24662 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
24663 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
24664 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
24665 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
24666 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
24667 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
24668 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
24669 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
24670 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
24671 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
24672 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
24673 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
24674 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
24675 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
24676 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
24677 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
24678 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
24679 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
24680 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
24681 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
24682 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
24683 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
24684 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
24685 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
24686 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
24687 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
24688 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
24689 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
24690 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24691 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
24692 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
24693 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
24694 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
24695 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
24696 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
24697 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
24698 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
24699 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
24700 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
24701 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
24702 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
24703 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
24704 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
24705 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
24706 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
24707 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
24708 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
24709 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
24710 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
24711 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
24712 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
24713 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
24714 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
24715 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
24716 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
24717 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
24718 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
24719 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
24720 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
24721 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
24722 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
24723 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
24724 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
24725 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
24726 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
24727 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
24728 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
24729 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
24730 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
24731 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
24732 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
24733 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
24734 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
24735 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
24736 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
24737 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
24738 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
24739 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
24740 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
24741 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24742 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
24743 : 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
24744 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
24745 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
24746 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
24747 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
24748 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
24749 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
24750 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
24751 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
24752 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
24753 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
24754 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
24755 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
24756 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
24757 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
24758 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
24759 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
24760 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
24761 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
24762 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
24763 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
24764 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
24765 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
24766 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
24767 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
24768 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
24769 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
24770 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
24771 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
24772 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
24773 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
24774 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
24775 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
24776 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
24777 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
24778 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
24779 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
24780 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
24781 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
24782 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
24783 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
24784 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
24785 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
24786 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
24787 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
24788 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
24789 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
24790 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
24791 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
24792 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24793 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
24794 : 24, 25, 26, 27, 28, 29, 30, 31, 32, -1,
24795 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
24796 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
24797 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
24798 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
24799 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
24800 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
24801 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
24802 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
24803 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
24804 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
24805 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
24806 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
24807 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
24808 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
24809 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
24810 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
24811 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
24812 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
24813 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
24814 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
24815 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
24816 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
24817 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
24818 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
24819 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
24820 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
24821 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
24822 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
24823 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
24824 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
24825 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
24826 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
24827 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
24828 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
24829 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
24830 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
24831 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
24832 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
24833 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
24834 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
24835 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
24836 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
24837 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
24838 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
24839 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
24840 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
24841 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
24842 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
24843 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24844 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
24845 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
24846 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
24847 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
24848 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
24849 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
24850 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
24851 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
24852 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
24853 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
24854 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
24855 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
24856 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
24857 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
24858 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
24859 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
24860 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
24861 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
24862 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
24863 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
24864 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
24865 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
24866 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
24867 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
24868 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
24869 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
24870 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
24871 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
24872 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
24873 : 303, 304, 305, -1, 307, 308, 309, -1, 311, 312,
24874 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
24875 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
24876 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
24877 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
24878 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
24879 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
24880 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
24881 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
24882 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
24883 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
24884 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
24885 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
24886 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
24887 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
24888 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
24889 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
24890 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
24891 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
24892 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
24893 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
24894 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
24895 : 12, -1, -1, -1, -1, -1, -1, -1, 20, 21,
24896 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
24897 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
24898 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
24899 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
24900 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
24901 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
24902 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
24903 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
24904 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
24905 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
24906 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
24907 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
24908 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
24909 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
24910 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
24911 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
24912 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
24913 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
24914 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
24915 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
24916 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
24917 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
24918 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
24919 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
24920 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
24921 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
24922 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
24923 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
24924 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
24925 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
24926 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
24927 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
24928 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
24929 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
24930 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
24931 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
24932 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
24933 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
24934 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
24935 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
24936 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
24937 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
24938 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
24939 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
24940 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
24941 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
24942 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
24943 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
24944 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
24945 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
24946 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
24947 : 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,
24948 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
24949 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
24950 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
24951 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
24952 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
24953 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
24954 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
24955 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
24956 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
24957 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
24958 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
24959 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
24960 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
24961 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
24962 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
24963 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
24964 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
24965 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
24966 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
24967 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
24968 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
24969 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
24970 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
24971 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
24972 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
24973 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
24974 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
24975 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
24976 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
24977 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
24978 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
24979 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
24980 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
24981 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
24982 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
24983 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
24984 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
24985 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
24986 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
24987 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
24988 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
24989 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
24990 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
24991 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
24992 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
24993 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
24994 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
24995 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
24996 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
24997 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
24998 : 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
24999 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
25000 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
25001 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
25002 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
25003 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
25004 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
25005 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
25006 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
25007 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
25008 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
25009 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
25010 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
25011 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
25012 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
25013 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
25014 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
25015 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
25016 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
25017 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
25018 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
25019 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
25020 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
25021 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
25022 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
25023 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
25024 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
25025 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
25026 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
25027 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
25028 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
25029 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
25030 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
25031 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
25032 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
25033 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
25034 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
25035 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
25036 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
25037 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
25038 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
25039 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
25040 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
25041 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
25042 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
25043 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
25044 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
25045 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
25046 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
25047 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
25048 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25049 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
25050 : 29, 30, 31, 32, -1, -1, -1, -1, -1, -1,
25051 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
25052 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
25053 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
25054 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
25055 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
25056 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
25057 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
25058 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
25059 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
25060 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
25061 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
25062 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
25063 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
25064 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
25065 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
25066 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
25067 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
25068 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
25069 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
25070 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
25071 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
25072 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
25073 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
25074 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
25075 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
25076 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
25077 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
25078 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
25079 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
25080 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
25081 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
25082 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
25083 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
25084 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
25085 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
25086 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
25087 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
25088 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
25089 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
25090 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
25091 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
25092 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
25093 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
25094 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
25095 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
25096 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
25097 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
25098 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
25099 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25100 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
25101 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
25102 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
25103 : 48, 49, 50, 51, 52, 53, -1, 55, 56, -1,
25104 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
25105 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
25106 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
25107 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
25108 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
25109 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
25110 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
25111 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
25112 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
25113 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
25114 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
25115 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
25116 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
25117 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
25118 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
25119 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
25120 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
25121 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
25122 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
25123 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
25124 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
25125 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
25126 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
25127 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
25128 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
25129 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
25130 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
25131 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
25132 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
25133 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
25134 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
25135 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
25136 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
25137 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
25138 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
25139 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
25140 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
25141 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
25142 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
25143 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
25144 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
25145 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
25146 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
25147 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
25148 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
25149 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
25150 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25151 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
25152 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
25153 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
25154 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
25155 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
25156 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
25157 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
25158 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
25159 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
25160 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
25161 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
25162 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
25163 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
25164 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
25165 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
25166 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
25167 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
25168 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
25169 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
25170 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
25171 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
25172 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
25173 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
25174 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
25175 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
25176 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
25177 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
25178 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
25179 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
25180 : 307, 308, 309, -1, 311, 312, 313, 314, -1, -1,
25181 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
25182 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
25183 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
25184 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
25185 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
25186 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
25187 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
25188 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
25189 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
25190 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
25191 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
25192 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
25193 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
25194 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
25195 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
25196 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
25197 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
25198 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
25199 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
25200 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
25201 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25202 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
25203 : 26, 27, 28, 29, 30, 31, 32, -1, -1, -1,
25204 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
25205 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
25206 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
25207 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
25208 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
25209 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
25210 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
25211 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
25212 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
25213 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
25214 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
25215 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
25216 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
25217 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
25218 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
25219 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
25220 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
25221 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
25222 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
25223 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
25224 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
25225 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
25226 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
25227 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
25228 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
25229 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
25230 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
25231 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
25232 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
25233 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
25234 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
25235 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
25236 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
25237 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
25238 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
25239 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
25240 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
25241 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
25242 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
25243 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
25244 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
25245 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
25246 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
25247 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
25248 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
25249 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
25250 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
25251 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
25252 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25253 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
25254 : 25, 26, 27, 28, 29, 30, 31, 32, -1, -1,
25255 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
25256 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
25257 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
25258 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
25259 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
25260 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
25261 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
25262 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
25263 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
25264 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
25265 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
25266 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
25267 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
25268 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
25269 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
25270 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
25271 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
25272 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
25273 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
25274 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
25275 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
25276 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
25277 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
25278 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
25279 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
25280 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
25281 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
25282 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
25283 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
25284 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
25285 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
25286 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
25287 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
25288 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
25289 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
25290 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
25291 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
25292 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
25293 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
25294 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
25295 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
25296 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
25297 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
25298 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
25299 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
25300 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
25301 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
25302 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
25303 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25304 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
25305 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
25306 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
25307 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
25308 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
25309 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
25310 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
25311 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
25312 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
25313 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
25314 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
25315 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
25316 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
25317 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
25318 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
25319 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
25320 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
25321 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
25322 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
25323 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
25324 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
25325 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
25326 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
25327 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
25328 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
25329 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
25330 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
25331 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
25332 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
25333 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
25334 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
25335 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
25336 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
25337 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
25338 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
25339 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
25340 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
25341 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
25342 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
25343 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
25344 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
25345 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
25346 : -1, 435, 436, -1, 438, 439, 440, 441, 442, 443,
25347 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
25348 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
25349 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
25350 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
25351 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
25352 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
25353 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
25354 : 3, -1, -1, 6, -1, -1, -1, -1, -1, -1,
25355 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
25356 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
25357 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
25358 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
25359 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
25360 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
25361 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
25362 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
25363 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
25364 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
25365 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
25366 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
25367 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
25368 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
25369 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
25370 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
25371 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
25372 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
25373 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
25374 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
25375 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
25376 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
25377 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
25378 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
25379 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
25380 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
25381 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
25382 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
25383 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
25384 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
25385 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
25386 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
25387 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
25388 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
25389 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
25390 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
25391 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
25392 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
25393 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
25394 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
25395 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
25396 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
25397 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
25398 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
25399 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
25400 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
25401 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
25402 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
25403 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
25404 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
25405 : 513, 3, -1, -1, -1, -1, -1, -1, -1, 11,
25406 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
25407 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
25408 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
25409 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
25410 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
25411 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
25412 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
25413 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
25414 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
25415 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
25416 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
25417 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
25418 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
25419 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
25420 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
25421 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
25422 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
25423 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
25424 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
25425 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
25426 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
25427 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
25428 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
25429 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
25430 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
25431 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
25432 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
25433 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
25434 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
25435 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
25436 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
25437 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
25438 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
25439 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
25440 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
25441 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
25442 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
25443 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
25444 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
25445 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
25446 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
25447 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
25448 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
25449 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
25450 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
25451 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
25452 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
25453 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
25454 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
25455 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
25456 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
25457 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
25458 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
25459 : 31, 32, -1, -1, -1, -1, -1, 38, -1, 40,
25460 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
25461 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
25462 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
25463 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
25464 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
25465 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
25466 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
25467 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
25468 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
25469 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
25470 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
25471 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
25472 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
25473 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
25474 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
25475 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
25476 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
25477 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
25478 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
25479 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
25480 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
25481 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
25482 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
25483 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
25484 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
25485 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
25486 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
25487 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
25488 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
25489 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
25490 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
25491 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
25492 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
25493 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
25494 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
25495 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
25496 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
25497 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
25498 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
25499 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
25500 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
25501 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
25502 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
25503 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
25504 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
25505 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
25506 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
25507 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
25508 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25509 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
25510 : 30, 31, 32, -1, -1, -1, -1, -1, 38, -1,
25511 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
25512 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
25513 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
25514 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
25515 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
25516 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
25517 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
25518 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
25519 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
25520 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
25521 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
25522 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
25523 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
25524 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
25525 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
25526 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
25527 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
25528 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
25529 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
25530 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
25531 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
25532 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
25533 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
25534 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
25535 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
25536 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
25537 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
25538 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
25539 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
25540 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
25541 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
25542 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
25543 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
25544 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
25545 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
25546 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
25547 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
25548 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
25549 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
25550 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
25551 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
25552 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
25553 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
25554 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
25555 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
25556 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
25557 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
25558 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
25559 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25560 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
25561 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
25562 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
25563 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
25564 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
25565 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
25566 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
25567 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
25568 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
25569 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
25570 : 119, 120, 121, -1, 123, 124, 125, 126, 127, 128,
25571 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
25572 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
25573 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
25574 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
25575 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
25576 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
25577 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
25578 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
25579 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
25580 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
25581 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
25582 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
25583 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
25584 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
25585 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
25586 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
25587 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
25588 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
25589 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
25590 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
25591 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
25592 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
25593 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
25594 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
25595 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
25596 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
25597 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
25598 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
25599 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
25600 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
25601 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
25602 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
25603 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
25604 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
25605 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
25606 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
25607 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
25608 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
25609 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
25610 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25611 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
25612 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
25613 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
25614 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
25615 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
25616 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
25617 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
25618 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
25619 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
25620 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
25621 : 118, 119, 120, 121, -1, 123, 124, 125, 126, 127,
25622 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
25623 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
25624 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
25625 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
25626 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
25627 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
25628 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
25629 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
25630 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
25631 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
25632 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
25633 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
25634 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
25635 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
25636 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
25637 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
25638 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
25639 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
25640 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
25641 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
25642 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
25643 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
25644 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
25645 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
25646 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
25647 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
25648 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
25649 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
25650 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
25651 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
25652 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
25653 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
25654 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
25655 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
25656 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
25657 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
25658 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
25659 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
25660 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
25661 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25662 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
25663 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
25664 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
25665 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
25666 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
25667 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
25668 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
25669 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
25670 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
25671 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
25672 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
25673 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
25674 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
25675 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
25676 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
25677 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
25678 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
25679 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
25680 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
25681 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
25682 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
25683 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
25684 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
25685 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
25686 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
25687 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
25688 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
25689 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
25690 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
25691 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
25692 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
25693 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
25694 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
25695 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
25696 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
25697 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
25698 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
25699 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
25700 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
25701 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
25702 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
25703 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
25704 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
25705 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
25706 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
25707 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
25708 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
25709 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
25710 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
25711 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
25712 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25713 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
25714 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
25715 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
25716 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
25717 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
25718 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
25719 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
25720 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
25721 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
25722 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
25723 : 116, 117, 118, 119, 120, 121, -1, 123, 124, 125,
25724 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
25725 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
25726 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
25727 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
25728 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
25729 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
25730 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
25731 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
25732 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
25733 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
25734 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
25735 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
25736 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
25737 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
25738 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
25739 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
25740 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
25741 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
25742 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
25743 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
25744 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
25745 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
25746 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
25747 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
25748 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
25749 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
25750 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
25751 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
25752 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
25753 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
25754 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
25755 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
25756 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
25757 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
25758 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
25759 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
25760 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
25761 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
25762 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
25763 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25764 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
25765 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
25766 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
25767 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
25768 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
25769 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
25770 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
25771 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
25772 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
25773 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
25774 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
25775 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
25776 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
25777 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
25778 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
25779 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
25780 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
25781 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
25782 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
25783 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
25784 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
25785 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
25786 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
25787 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
25788 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
25789 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
25790 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
25791 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
25792 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
25793 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
25794 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
25795 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
25796 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
25797 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
25798 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
25799 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
25800 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
25801 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
25802 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
25803 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
25804 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
25805 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
25806 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
25807 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
25808 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
25809 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
25810 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
25811 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
25812 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
25813 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
25814 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25815 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
25816 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
25817 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
25818 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
25819 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
25820 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
25821 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
25822 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
25823 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
25824 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
25825 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
25826 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
25827 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
25828 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
25829 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
25830 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
25831 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
25832 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
25833 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
25834 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
25835 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
25836 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
25837 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
25838 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
25839 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
25840 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
25841 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
25842 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
25843 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
25844 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
25845 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
25846 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
25847 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
25848 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
25849 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
25850 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
25851 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
25852 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
25853 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
25854 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
25855 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
25856 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
25857 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
25858 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
25859 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
25860 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
25861 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
25862 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
25863 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
25864 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
25865 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
25866 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
25867 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
25868 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
25869 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
25870 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
25871 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
25872 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
25873 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
25874 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
25875 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
25876 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
25877 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
25878 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
25879 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
25880 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
25881 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
25882 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
25883 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
25884 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
25885 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
25886 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
25887 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
25888 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
25889 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
25890 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
25891 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
25892 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
25893 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
25894 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
25895 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
25896 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
25897 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
25898 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
25899 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
25900 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
25901 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
25902 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
25903 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
25904 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
25905 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
25906 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
25907 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
25908 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
25909 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
25910 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
25911 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
25912 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
25913 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
25914 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
25915 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
25916 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
25917 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
25918 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
25919 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
25920 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
25921 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
25922 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
25923 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
25924 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
25925 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
25926 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
25927 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
25928 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
25929 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
25930 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
25931 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
25932 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
25933 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
25934 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
25935 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
25936 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
25937 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
25938 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
25939 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
25940 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
25941 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
25942 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
25943 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
25944 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
25945 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
25946 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
25947 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
25948 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
25949 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
25950 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
25951 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
25952 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
25953 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
25954 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
25955 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
25956 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
25957 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
25958 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
25959 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
25960 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
25961 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
25962 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
25963 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
25964 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
25965 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
25966 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
25967 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
25968 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
25969 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
25970 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
25971 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
25972 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
25973 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
25974 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
25975 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
25976 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
25977 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
25978 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
25979 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
25980 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
25981 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
25982 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
25983 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
25984 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
25985 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
25986 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
25987 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
25988 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
25989 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
25990 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
25991 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
25992 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
25993 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
25994 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
25995 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
25996 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
25997 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
25998 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
25999 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
26000 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
26001 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
26002 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
26003 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
26004 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
26005 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
26006 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
26007 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
26008 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
26009 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
26010 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
26011 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
26012 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
26013 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
26014 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
26015 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
26016 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
26017 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
26018 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
26019 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26020 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
26021 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
26022 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
26023 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
26024 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
26025 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
26026 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
26027 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
26028 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
26029 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
26030 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
26031 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
26032 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
26033 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
26034 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
26035 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
26036 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
26037 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
26038 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
26039 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
26040 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
26041 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
26042 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
26043 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
26044 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
26045 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
26046 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
26047 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
26048 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
26049 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
26050 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
26051 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
26052 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
26053 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
26054 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
26055 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
26056 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
26057 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
26058 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
26059 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
26060 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
26061 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
26062 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
26063 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
26064 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
26065 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
26066 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
26067 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
26068 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
26069 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
26070 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26071 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
26072 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
26073 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
26074 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
26075 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
26076 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
26077 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
26078 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
26079 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
26080 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
26081 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
26082 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
26083 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
26084 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
26085 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
26086 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
26087 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
26088 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
26089 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
26090 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
26091 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
26092 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
26093 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
26094 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
26095 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
26096 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
26097 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
26098 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
26099 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
26100 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
26101 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
26102 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
26103 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
26104 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
26105 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
26106 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
26107 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
26108 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
26109 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
26110 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
26111 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
26112 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
26113 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
26114 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
26115 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
26116 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
26117 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
26118 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
26119 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
26120 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
26121 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26122 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
26123 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
26124 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
26125 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
26126 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
26127 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
26128 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
26129 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
26130 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
26131 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
26132 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
26133 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
26134 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
26135 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
26136 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
26137 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
26138 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
26139 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
26140 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
26141 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
26142 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
26143 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
26144 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
26145 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
26146 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
26147 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
26148 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
26149 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
26150 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
26151 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
26152 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
26153 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
26154 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
26155 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
26156 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
26157 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
26158 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
26159 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
26160 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
26161 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
26162 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
26163 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
26164 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
26165 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
26166 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
26167 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
26168 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
26169 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
26170 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
26171 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
26172 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26173 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
26174 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
26175 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
26176 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
26177 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
26178 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
26179 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
26180 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
26181 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
26182 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
26183 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
26184 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
26185 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
26186 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
26187 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
26188 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
26189 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
26190 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
26191 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
26192 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
26193 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
26194 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
26195 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
26196 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
26197 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
26198 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
26199 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
26200 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
26201 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
26202 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
26203 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
26204 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
26205 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
26206 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
26207 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
26208 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
26209 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
26210 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
26211 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
26212 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
26213 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
26214 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
26215 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
26216 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
26217 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
26218 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
26219 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
26220 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
26221 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
26222 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
26223 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26224 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
26225 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
26226 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
26227 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
26228 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
26229 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
26230 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
26231 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
26232 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
26233 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
26234 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
26235 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
26236 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
26237 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
26238 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
26239 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
26240 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
26241 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
26242 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
26243 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
26244 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
26245 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
26246 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
26247 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
26248 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
26249 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
26250 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
26251 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
26252 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
26253 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
26254 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
26255 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
26256 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
26257 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
26258 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
26259 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
26260 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
26261 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
26262 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
26263 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
26264 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
26265 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
26266 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
26267 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
26268 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
26269 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
26270 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
26271 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
26272 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
26273 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
26274 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26275 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
26276 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
26277 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
26278 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
26279 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
26280 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
26281 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
26282 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
26283 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
26284 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
26285 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
26286 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
26287 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
26288 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
26289 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
26290 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
26291 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
26292 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
26293 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
26294 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
26295 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
26296 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
26297 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
26298 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
26299 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
26300 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
26301 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
26302 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
26303 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
26304 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
26305 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
26306 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
26307 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
26308 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
26309 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
26310 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
26311 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
26312 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
26313 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
26314 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
26315 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
26316 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
26317 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
26318 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
26319 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
26320 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
26321 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
26322 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
26323 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
26324 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
26325 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26326 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
26327 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
26328 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
26329 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
26330 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
26331 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
26332 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
26333 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
26334 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
26335 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
26336 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
26337 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
26338 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
26339 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
26340 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
26341 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
26342 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
26343 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
26344 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
26345 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
26346 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
26347 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
26348 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
26349 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
26350 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
26351 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
26352 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
26353 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
26354 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
26355 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
26356 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
26357 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
26358 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
26359 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
26360 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
26361 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
26362 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
26363 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
26364 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
26365 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
26366 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
26367 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
26368 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
26369 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
26370 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
26371 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
26372 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
26373 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
26374 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
26375 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
26376 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26377 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
26378 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
26379 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
26380 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
26381 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
26382 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
26383 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
26384 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
26385 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
26386 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
26387 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
26388 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
26389 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
26390 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
26391 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
26392 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
26393 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
26394 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
26395 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
26396 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
26397 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
26398 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
26399 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
26400 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
26401 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
26402 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
26403 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
26404 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
26405 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
26406 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
26407 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
26408 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
26409 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
26410 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
26411 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
26412 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
26413 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
26414 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
26415 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
26416 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
26417 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
26418 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
26419 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
26420 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
26421 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
26422 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
26423 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
26424 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
26425 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
26426 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
26427 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
26428 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
26429 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
26430 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
26431 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
26432 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
26433 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
26434 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
26435 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
26436 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
26437 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
26438 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
26439 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
26440 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
26441 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
26442 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
26443 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
26444 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
26445 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
26446 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
26447 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
26448 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
26449 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
26450 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
26451 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
26452 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
26453 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
26454 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
26455 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
26456 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
26457 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
26458 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
26459 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
26460 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
26461 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
26462 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
26463 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
26464 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
26465 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
26466 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
26467 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
26468 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
26469 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
26470 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
26471 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
26472 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
26473 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
26474 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
26475 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
26476 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
26477 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
26478 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
26479 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
26480 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
26481 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
26482 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
26483 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
26484 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
26485 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
26486 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
26487 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
26488 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
26489 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
26490 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
26491 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
26492 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
26493 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
26494 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
26495 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
26496 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
26497 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
26498 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
26499 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
26500 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
26501 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
26502 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
26503 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
26504 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
26505 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
26506 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
26507 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
26508 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
26509 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
26510 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
26511 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
26512 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
26513 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
26514 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
26515 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
26516 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
26517 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
26518 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
26519 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
26520 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
26521 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
26522 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
26523 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
26524 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
26525 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
26526 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
26527 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
26528 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
26529 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
26530 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26531 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
26532 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
26533 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
26534 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
26535 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
26536 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
26537 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
26538 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
26539 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
26540 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
26541 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
26542 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
26543 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
26544 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
26545 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
26546 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
26547 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
26548 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
26549 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
26550 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
26551 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
26552 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
26553 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
26554 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
26555 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
26556 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
26557 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
26558 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
26559 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
26560 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
26561 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
26562 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
26563 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
26564 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
26565 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
26566 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
26567 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
26568 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
26569 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
26570 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
26571 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
26572 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
26573 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
26574 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
26575 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
26576 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
26577 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
26578 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
26579 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
26580 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
26581 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26582 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
26583 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
26584 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
26585 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
26586 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
26587 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
26588 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
26589 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
26590 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
26591 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
26592 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
26593 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
26594 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
26595 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
26596 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
26597 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
26598 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
26599 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
26600 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
26601 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
26602 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
26603 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
26604 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
26605 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
26606 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
26607 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
26608 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
26609 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
26610 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
26611 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
26612 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
26613 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
26614 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
26615 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
26616 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
26617 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
26618 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
26619 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
26620 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
26621 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
26622 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
26623 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
26624 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
26625 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
26626 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
26627 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
26628 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
26629 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
26630 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
26631 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
26632 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26633 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
26634 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
26635 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
26636 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
26637 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
26638 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
26639 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
26640 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
26641 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
26642 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
26643 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
26644 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
26645 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
26646 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
26647 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
26648 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
26649 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
26650 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
26651 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
26652 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
26653 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
26654 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
26655 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
26656 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
26657 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
26658 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
26659 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
26660 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
26661 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
26662 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
26663 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
26664 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
26665 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
26666 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
26667 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
26668 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
26669 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
26670 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
26671 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
26672 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
26673 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
26674 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
26675 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
26676 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
26677 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
26678 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
26679 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
26680 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
26681 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
26682 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
26683 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26684 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
26685 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
26686 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
26687 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
26688 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
26689 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
26690 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
26691 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
26692 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
26693 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
26694 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
26695 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
26696 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
26697 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
26698 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
26699 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
26700 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
26701 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
26702 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
26703 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
26704 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
26705 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
26706 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
26707 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
26708 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
26709 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
26710 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
26711 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
26712 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
26713 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
26714 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
26715 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
26716 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
26717 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
26718 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
26719 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
26720 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
26721 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
26722 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
26723 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
26724 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
26725 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
26726 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
26727 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
26728 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
26729 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
26730 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
26731 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
26732 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
26733 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
26734 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26735 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
26736 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
26737 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
26738 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
26739 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
26740 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
26741 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
26742 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
26743 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
26744 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
26745 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
26746 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
26747 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
26748 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
26749 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
26750 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
26751 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
26752 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
26753 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
26754 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
26755 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
26756 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
26757 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
26758 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
26759 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
26760 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
26761 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
26762 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
26763 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
26764 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
26765 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
26766 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
26767 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
26768 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
26769 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
26770 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
26771 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
26772 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
26773 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
26774 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
26775 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
26776 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
26777 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
26778 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
26779 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
26780 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
26781 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
26782 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
26783 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
26784 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
26785 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26786 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
26787 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
26788 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
26789 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
26790 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
26791 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
26792 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
26793 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
26794 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
26795 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
26796 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
26797 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
26798 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
26799 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
26800 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
26801 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
26802 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
26803 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
26804 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
26805 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
26806 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
26807 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
26808 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
26809 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
26810 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
26811 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
26812 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
26813 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
26814 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
26815 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
26816 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
26817 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
26818 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
26819 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
26820 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
26821 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
26822 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
26823 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
26824 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
26825 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
26826 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
26827 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
26828 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
26829 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
26830 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
26831 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
26832 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
26833 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
26834 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
26835 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
26836 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26837 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
26838 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
26839 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
26840 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
26841 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
26842 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
26843 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
26844 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
26845 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
26846 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
26847 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
26848 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
26849 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
26850 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
26851 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
26852 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
26853 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
26854 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
26855 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
26856 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
26857 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
26858 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
26859 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
26860 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
26861 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
26862 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
26863 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
26864 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
26865 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
26866 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
26867 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
26868 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
26869 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
26870 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
26871 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
26872 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
26873 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
26874 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
26875 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
26876 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
26877 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
26878 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
26879 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
26880 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
26881 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
26882 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
26883 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
26884 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
26885 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
26886 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
26887 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
26888 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
26889 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
26890 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
26891 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
26892 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
26893 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
26894 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
26895 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
26896 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
26897 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
26898 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
26899 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
26900 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
26901 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
26902 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
26903 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
26904 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
26905 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
26906 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
26907 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
26908 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
26909 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
26910 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
26911 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
26912 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
26913 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
26914 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
26915 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
26916 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
26917 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
26918 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
26919 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
26920 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
26921 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
26922 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
26923 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
26924 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
26925 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
26926 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
26927 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
26928 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
26929 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
26930 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
26931 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
26932 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
26933 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
26934 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
26935 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
26936 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
26937 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
26938 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
26939 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
26940 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
26941 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
26942 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
26943 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
26944 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
26945 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
26946 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
26947 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
26948 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
26949 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
26950 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
26951 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
26952 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
26953 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
26954 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
26955 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
26956 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
26957 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
26958 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
26959 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
26960 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
26961 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
26962 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
26963 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
26964 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
26965 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
26966 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
26967 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
26968 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
26969 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
26970 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
26971 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
26972 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
26973 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
26974 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
26975 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
26976 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
26977 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
26978 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
26979 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
26980 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
26981 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
26982 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
26983 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
26984 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
26985 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
26986 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
26987 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
26988 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
26989 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
26990 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
26991 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
26992 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
26993 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
26994 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
26995 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
26996 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
26997 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
26998 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
26999 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
27000 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
27001 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
27002 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
27003 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
27004 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
27005 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
27006 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
27007 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
27008 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
27009 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
27010 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
27011 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
27012 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
27013 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
27014 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
27015 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
27016 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
27017 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
27018 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
27019 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
27020 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
27021 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
27022 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
27023 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
27024 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
27025 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
27026 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
27027 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
27028 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
27029 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
27030 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
27031 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
27032 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
27033 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
27034 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
27035 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
27036 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
27037 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
27038 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
27039 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
27040 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
27041 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27042 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
27043 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
27044 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
27045 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
27046 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
27047 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
27048 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
27049 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
27050 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
27051 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
27052 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
27053 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
27054 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
27055 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
27056 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
27057 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
27058 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
27059 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
27060 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
27061 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
27062 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
27063 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
27064 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
27065 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
27066 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
27067 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
27068 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
27069 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
27070 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
27071 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
27072 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
27073 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
27074 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
27075 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
27076 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
27077 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
27078 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
27079 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
27080 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
27081 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
27082 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
27083 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
27084 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
27085 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
27086 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
27087 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
27088 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
27089 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
27090 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
27091 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
27092 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27093 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
27094 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
27095 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
27096 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
27097 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
27098 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
27099 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
27100 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
27101 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
27102 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
27103 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
27104 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
27105 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
27106 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
27107 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
27108 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
27109 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
27110 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
27111 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
27112 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
27113 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
27114 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
27115 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
27116 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
27117 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
27118 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
27119 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
27120 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
27121 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
27122 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
27123 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
27124 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
27125 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
27126 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
27127 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
27128 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
27129 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
27130 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
27131 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
27132 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
27133 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
27134 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
27135 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
27136 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
27137 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
27138 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
27139 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
27140 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
27141 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
27142 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
27143 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27144 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
27145 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
27146 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
27147 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
27148 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
27149 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
27150 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
27151 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
27152 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
27153 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
27154 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
27155 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
27156 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
27157 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
27158 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
27159 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
27160 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
27161 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
27162 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
27163 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
27164 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
27165 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
27166 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
27167 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
27168 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
27169 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
27170 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
27171 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
27172 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
27173 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
27174 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
27175 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
27176 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
27177 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
27178 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
27179 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
27180 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
27181 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
27182 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
27183 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
27184 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
27185 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
27186 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
27187 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
27188 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
27189 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
27190 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
27191 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
27192 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
27193 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
27194 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27195 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
27196 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
27197 : -1, 38, -1, 40, 41, 42, -1, 44, 45, 46,
27198 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
27199 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
27200 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
27201 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
27202 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
27203 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
27204 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
27205 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
27206 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
27207 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
27208 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
27209 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
27210 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
27211 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
27212 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
27213 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
27214 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
27215 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
27216 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
27217 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
27218 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
27219 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
27220 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
27221 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
27222 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
27223 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
27224 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
27225 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
27226 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
27227 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
27228 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
27229 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
27230 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
27231 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
27232 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
27233 : 397, 398, 399, 400, 401, -1, -1, 404, 405, 406,
27234 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
27235 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
27236 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
27237 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
27238 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
27239 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
27240 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
27241 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
27242 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
27243 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
27244 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
27245 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27246 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
27247 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
27248 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
27249 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
27250 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
27251 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
27252 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
27253 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
27254 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
27255 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
27256 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
27257 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
27258 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
27259 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
27260 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
27261 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
27262 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
27263 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
27264 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
27265 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
27266 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
27267 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
27268 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
27269 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
27270 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
27271 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
27272 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
27273 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
27274 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
27275 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
27276 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
27277 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
27278 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
27279 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
27280 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
27281 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
27282 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
27283 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
27284 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
27285 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
27286 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
27287 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
27288 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
27289 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
27290 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
27291 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
27292 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
27293 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
27294 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
27295 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
27296 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27297 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
27298 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
27299 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
27300 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
27301 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
27302 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
27303 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
27304 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
27305 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
27306 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
27307 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
27308 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
27309 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
27310 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
27311 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
27312 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
27313 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
27314 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
27315 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
27316 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
27317 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
27318 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
27319 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
27320 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
27321 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
27322 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
27323 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
27324 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
27325 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
27326 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
27327 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
27328 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
27329 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
27330 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
27331 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
27332 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
27333 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
27334 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
27335 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
27336 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
27337 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
27338 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
27339 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
27340 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
27341 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
27342 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
27343 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
27344 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
27345 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
27346 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
27347 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27348 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
27349 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
27350 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
27351 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
27352 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
27353 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
27354 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
27355 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
27356 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
27357 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
27358 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
27359 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
27360 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
27361 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
27362 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
27363 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
27364 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
27365 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
27366 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
27367 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
27368 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
27369 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
27370 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
27371 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
27372 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
27373 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
27374 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
27375 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
27376 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
27377 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
27378 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
27379 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
27380 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
27381 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
27382 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
27383 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
27384 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
27385 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
27386 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
27387 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
27388 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
27389 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
27390 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
27391 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
27392 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
27393 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
27394 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
27395 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
27396 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
27397 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
27398 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27399 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
27400 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
27401 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
27402 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
27403 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
27404 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
27405 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
27406 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
27407 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
27408 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
27409 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
27410 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
27411 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
27412 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
27413 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
27414 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
27415 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
27416 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
27417 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
27418 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
27419 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
27420 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
27421 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
27422 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
27423 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
27424 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
27425 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
27426 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
27427 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
27428 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
27429 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
27430 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
27431 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
27432 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
27433 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
27434 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
27435 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
27436 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
27437 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
27438 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
27439 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
27440 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
27441 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
27442 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
27443 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
27444 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
27445 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
27446 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
27447 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
27448 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
27449 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
27450 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
27451 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
27452 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
27453 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
27454 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
27455 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
27456 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
27457 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
27458 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
27459 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
27460 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
27461 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
27462 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
27463 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
27464 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
27465 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
27466 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
27467 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
27468 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
27469 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
27470 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
27471 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
27472 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
27473 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
27474 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
27475 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
27476 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
27477 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
27478 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
27479 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
27480 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
27481 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
27482 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
27483 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
27484 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
27485 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
27486 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
27487 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
27488 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
27489 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
27490 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
27491 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
27492 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
27493 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
27494 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
27495 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
27496 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
27497 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
27498 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
27499 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
27500 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
27501 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
27502 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
27503 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
27504 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
27505 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
27506 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
27507 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
27508 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
27509 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
27510 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
27511 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
27512 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
27513 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
27514 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
27515 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
27516 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
27517 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
27518 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
27519 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
27520 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
27521 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
27522 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
27523 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
27524 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
27525 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
27526 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
27527 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
27528 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
27529 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
27530 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
27531 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
27532 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
27533 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
27534 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
27535 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
27536 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
27537 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
27538 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
27539 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
27540 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
27541 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
27542 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
27543 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
27544 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
27545 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
27546 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
27547 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
27548 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
27549 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
27550 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
27551 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
27552 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27553 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
27554 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
27555 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
27556 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
27557 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
27558 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
27559 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
27560 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
27561 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
27562 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
27563 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
27564 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
27565 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
27566 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
27567 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
27568 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
27569 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
27570 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
27571 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
27572 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
27573 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
27574 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
27575 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
27576 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
27577 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
27578 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
27579 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
27580 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
27581 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
27582 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
27583 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
27584 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
27585 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
27586 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
27587 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
27588 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
27589 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
27590 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
27591 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
27592 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
27593 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
27594 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
27595 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
27596 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
27597 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
27598 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
27599 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
27600 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
27601 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
27602 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
27603 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27604 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
27605 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
27606 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
27607 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
27608 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
27609 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
27610 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
27611 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
27612 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
27613 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
27614 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
27615 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
27616 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
27617 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
27618 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
27619 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
27620 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
27621 : 189, 190, -1, 192, 193, 194, 195, 196, -1, 198,
27622 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
27623 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
27624 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
27625 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
27626 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
27627 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
27628 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
27629 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
27630 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
27631 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
27632 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
27633 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
27634 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
27635 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
27636 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
27637 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
27638 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
27639 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
27640 : -1, 380, 381, 382, 383, 384, 385, 386, 387, 388,
27641 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
27642 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
27643 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
27644 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
27645 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
27646 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
27647 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
27648 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
27649 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
27650 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
27651 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
27652 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
27653 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
27654 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27655 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
27656 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
27657 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
27658 : -1, 49, 50, 51, 52, 53, -1, 55, 56, -1,
27659 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
27660 : 68, 69, 70, 71, -1, 73, 74, 75, 76, 77,
27661 : -1, -1, -1, 81, 82, 83, 84, 85, 86, -1,
27662 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
27663 : 98, -1, -1, 101, 102, 103, -1, -1, -1, -1,
27664 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
27665 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
27666 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
27667 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
27668 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
27669 : 158, 159, 160, 161, 162, 163, -1, 165, -1, 167,
27670 : 168, 169, 170, 171, -1, 173, -1, 175, 176, -1,
27671 : -1, -1, 180, 181, 182, 183, -1, 185, 186, -1,
27672 : 188, 189, 190, -1, 192, 193, 194, 195, 196, -1,
27673 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
27674 : 208, 209, 210, -1, 212, -1, 214, 215, 216, 217,
27675 : 218, 219, 220, -1, 222, -1, 224, -1, -1, 227,
27676 : -1, 229, 230, 231, 232, 233, 234, 235, 236, 237,
27677 : 238, 239, 240, 241, 242, 243, 244, 245, 246, -1,
27678 : -1, 249, 250, -1, 252, -1, -1, 255, 256, 257,
27679 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
27680 : 268, 269, 270, 271, 272, 273, 274, 275, 276, 277,
27681 : 278, 279, -1, 281, 282, 283, 284, 285, 286, 287,
27682 : 288, 289, 290, 291, 292, -1, 294, 295, -1, 297,
27683 : -1, 299, 300, 301, 302, 303, 304, 305, -1, 307,
27684 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
27685 : 318, 319, -1, 321, -1, 323, 324, 325, 326, 327,
27686 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
27687 : 338, 339, 340, 341, 342, 343, 344, 345, -1, 347,
27688 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
27689 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
27690 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
27691 : 378, -1, 380, 381, 382, 383, 384, 385, 386, 387,
27692 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
27693 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
27694 : -1, 409, 410, 411, 412, -1, 414, 415, 416, 417,
27695 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
27696 : 428, 429, 430, -1, 432, 433, -1, -1, 436, -1,
27697 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
27698 : -1, -1, 450, 451, 452, 453, 454, -1, 456, 457,
27699 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
27700 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
27701 : 478, 479, 480, -1, 482, -1, 484, 485, 486, 487,
27702 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
27703 : 498, 499, 500, 501, 502, 503, 504, 505, 506, 507,
27704 : 508, 509, 510, 511, 512, 513, 3, -1, -1, -1,
27705 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27706 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
27707 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
27708 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
27709 : 47, -1, 49, 50, 51, 52, 53, -1, 55, 56,
27710 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
27711 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
27712 : 77, -1, -1, -1, 81, 82, 83, 84, 85, 86,
27713 : -1, 88, 89, 90, 91, -1, 93, 94, 95, 96,
27714 : 97, 98, -1, -1, 101, 102, 103, -1, -1, -1,
27715 : -1, -1, -1, -1, 111, 112, 113, 114, 115, 116,
27716 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
27717 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
27718 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
27719 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
27720 : 157, 158, 159, 160, 161, 162, 163, -1, 165, -1,
27721 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
27722 : -1, -1, -1, 180, 181, 182, 183, -1, 185, 186,
27723 : -1, 188, 189, 190, -1, 192, 193, 194, 195, 196,
27724 : -1, 198, 199, 200, 201, -1, 203, 204, 205, 206,
27725 : 207, 208, 209, 210, -1, 212, -1, 214, 215, 216,
27726 : 217, 218, 219, 220, -1, 222, -1, 224, -1, -1,
27727 : 227, -1, 229, 230, 231, 232, 233, 234, 235, 236,
27728 : 237, 238, 239, 240, 241, 242, 243, 244, 245, 246,
27729 : -1, -1, 249, 250, -1, 252, -1, -1, 255, 256,
27730 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
27731 : 267, 268, 269, 270, 271, 272, 273, 274, 275, 276,
27732 : 277, 278, 279, -1, 281, 282, 283, 284, 285, 286,
27733 : 287, 288, 289, 290, 291, 292, -1, 294, 295, -1,
27734 : 297, -1, 299, 300, 301, 302, 303, 304, 305, -1,
27735 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
27736 : 317, 318, 319, -1, 321, -1, 323, 324, 325, 326,
27737 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
27738 : 337, 338, 339, 340, 341, 342, 343, 344, 345, -1,
27739 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
27740 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
27741 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
27742 : 377, 378, -1, 380, 381, 382, 383, 384, 385, 386,
27743 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
27744 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
27745 : 407, -1, 409, 410, 411, 412, -1, 414, 415, 416,
27746 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
27747 : 427, 428, 429, 430, -1, 432, 433, -1, -1, 436,
27748 : -1, 438, 439, 440, 441, 442, 443, -1, 445, 446,
27749 : 447, -1, -1, 450, 451, 452, 453, 454, -1, 456,
27750 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
27751 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
27752 : 477, 478, 479, 480, -1, 482, -1, 484, 485, 486,
27753 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
27754 : 497, 498, 499, 500, 501, 502, 503, 504, 505, 506,
27755 : 507, 508, 509, 510, 511, 512, 513, 3, -1, -1,
27756 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27757 : -1, -1, -1, -1, 20, 21, 22, 23, 24, 25,
27758 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
27759 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
27760 : 46, 47, -1, 49, 50, 51, 52, 53, -1, 55,
27761 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
27762 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
27763 : 76, 77, -1, -1, -1, 81, 82, 83, 84, 85,
27764 : 86, -1, 88, 89, 90, 91, -1, 93, 94, 95,
27765 : 96, 97, 98, -1, -1, 101, 102, 103, -1, -1,
27766 : -1, -1, -1, -1, -1, 111, 112, 113, 114, 115,
27767 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
27768 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
27769 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
27770 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
27771 : 156, 157, 158, 159, 160, 161, 162, 163, -1, 165,
27772 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
27773 : 176, -1, -1, -1, 180, 181, 182, 183, -1, 185,
27774 : 186, -1, 188, 189, 190, -1, 192, 193, 194, 195,
27775 : 196, -1, 198, 199, 200, 201, -1, 203, 204, 205,
27776 : 206, 207, 208, 209, 210, -1, 212, -1, 214, 215,
27777 : 216, 217, 218, 219, 220, -1, 222, -1, 224, -1,
27778 : -1, 227, -1, 229, 230, 231, 232, 233, 234, 235,
27779 : 236, 237, 238, 239, 240, 241, 242, 243, 244, 245,
27780 : 246, -1, -1, 249, 250, -1, 252, -1, -1, 255,
27781 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
27782 : 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
27783 : 276, 277, 278, 279, -1, 281, 282, 283, 284, 285,
27784 : 286, 287, 288, 289, 290, 291, 292, -1, 294, 295,
27785 : -1, 297, -1, 299, 300, 301, 302, 303, 304, 305,
27786 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
27787 : -1, 317, 318, 319, -1, 321, -1, 323, 324, 325,
27788 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
27789 : -1, 337, 338, 339, 340, 341, 342, 343, 344, 345,
27790 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
27791 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
27792 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
27793 : -1, 377, 378, -1, 380, 381, 382, 383, 384, 385,
27794 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
27795 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
27796 : 406, 407, -1, 409, 410, 411, 412, -1, 414, 415,
27797 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
27798 : 426, 427, 428, 429, 430, -1, 432, 433, -1, -1,
27799 : 436, -1, 438, 439, 440, 441, 442, 443, -1, 445,
27800 : 446, 447, -1, -1, 450, 451, 452, 453, 454, -1,
27801 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
27802 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
27803 : 476, 477, 478, 479, 480, -1, 482, -1, 484, 485,
27804 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
27805 : 496, 497, 498, 499, 500, 501, 502, 503, 504, 505,
27806 : 506, 507, 508, 509, 510, 511, 512, 513, 3, -1,
27807 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27808 : -1, -1, -1, -1, -1, 20, 21, 22, 23, 24,
27809 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
27810 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
27811 : 45, 46, 47, -1, 49, 50, 51, 52, 53, -1,
27812 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
27813 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
27814 : 75, 76, 77, -1, -1, -1, 81, 82, 83, 84,
27815 : 85, 86, -1, 88, 89, 90, 91, -1, 93, 94,
27816 : 95, 96, 97, 98, -1, -1, 101, 102, 103, -1,
27817 : -1, -1, -1, -1, -1, -1, 111, 112, 113, 114,
27818 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
27819 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
27820 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
27821 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
27822 : 155, 156, 157, 158, 159, 160, 161, 162, 163, -1,
27823 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
27824 : 175, 176, -1, -1, -1, 180, 181, 182, 183, -1,
27825 : 185, 186, -1, 188, 189, 190, -1, 192, 193, 194,
27826 : 195, 196, -1, 198, 199, 200, 201, -1, 203, 204,
27827 : 205, 206, 207, 208, 209, 210, -1, 212, -1, 214,
27828 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
27829 : -1, -1, 227, -1, 229, 230, 231, 232, 233, 234,
27830 : 235, 236, 237, 238, 239, 240, 241, 242, 243, 244,
27831 : 245, 246, -1, -1, 249, 250, -1, 252, -1, -1,
27832 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
27833 : 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
27834 : 275, 276, 277, 278, 279, -1, 281, 282, 283, 284,
27835 : 285, 286, 287, 288, 289, 290, 291, 292, -1, 294,
27836 : 295, -1, 297, -1, 299, 300, 301, 302, 303, 304,
27837 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
27838 : -1, -1, 317, 318, 319, -1, 321, -1, 323, 324,
27839 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
27840 : 335, -1, 337, 338, 339, 340, 341, 342, 343, 344,
27841 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
27842 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
27843 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
27844 : 375, -1, 377, 378, -1, 380, 381, 382, 383, 384,
27845 : 385, 386, 387, 388, 389, 390, 391, 392, 393, 394,
27846 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
27847 : 405, 406, 407, -1, 409, 410, 411, 412, -1, 414,
27848 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
27849 : 425, 426, 427, 428, 429, 430, -1, 432, 433, -1,
27850 : -1, 436, -1, 438, 439, 440, 441, 442, 443, -1,
27851 : 445, 446, 447, -1, -1, 450, 451, 452, 453, 454,
27852 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
27853 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
27854 : 475, 476, 477, 478, 479, 480, -1, 482, -1, 484,
27855 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
27856 : 495, 496, 497, 498, 499, 500, 501, 502, 503, 504,
27857 : 505, 506, 507, 508, 509, 510, 511, 512, 513, 3,
27858 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27859 : -1, -1, -1, -1, -1, -1, 20, 21, 22, 23,
27860 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
27861 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
27862 : 44, 45, 46, 47, -1, 49, 50, 51, 52, 53,
27863 : -1, 55, 56, -1, 58, 59, 60, 61, 62, 63,
27864 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
27865 : 74, 75, 76, 77, -1, -1, -1, 81, 82, 83,
27866 : 84, 85, 86, -1, 88, 89, 90, 91, -1, 93,
27867 : 94, 95, 96, 97, 98, -1, -1, 101, 102, 103,
27868 : -1, -1, -1, -1, -1, -1, -1, 111, 112, 113,
27869 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
27870 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
27871 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
27872 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
27873 : 154, 155, 156, 157, 158, 159, 160, 161, 162, 163,
27874 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
27875 : -1, 175, 176, -1, -1, -1, 180, 181, 182, 183,
27876 : -1, 185, 186, -1, 188, 189, 190, -1, 192, 193,
27877 : 194, 195, 196, -1, 198, 199, 200, 201, -1, 203,
27878 : 204, 205, 206, 207, 208, 209, 210, -1, 212, -1,
27879 : 214, 215, 216, 217, 218, 219, 220, -1, 222, -1,
27880 : 224, -1, -1, 227, -1, 229, 230, 231, 232, 233,
27881 : 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
27882 : 244, 245, 246, -1, -1, 249, 250, -1, 252, -1,
27883 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
27884 : 264, 265, 266, 267, 268, 269, 270, 271, 272, 273,
27885 : 274, 275, 276, 277, 278, 279, -1, 281, 282, 283,
27886 : 284, 285, 286, 287, 288, 289, 290, 291, 292, -1,
27887 : 294, 295, -1, 297, -1, 299, 300, 301, 302, 303,
27888 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
27889 : 314, -1, -1, 317, 318, 319, -1, 321, -1, 323,
27890 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
27891 : 334, 335, -1, 337, 338, 339, 340, 341, 342, 343,
27892 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
27893 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
27894 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
27895 : 374, 375, -1, 377, 378, -1, 380, 381, 382, 383,
27896 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
27897 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
27898 : 404, 405, 406, 407, -1, 409, 410, 411, 412, -1,
27899 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
27900 : 424, 425, 426, 427, 428, 429, 430, -1, 432, 433,
27901 : -1, -1, 436, -1, 438, 439, 440, 441, 442, 443,
27902 : -1, 445, 446, 447, -1, -1, 450, 451, 452, 453,
27903 : 454, -1, 456, 457, 458, 459, 460, 461, 462, 463,
27904 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
27905 : 474, 475, 476, 477, 478, 479, 480, -1, 482, -1,
27906 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
27907 : 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
27908 : 504, 505, 506, 507, 508, 509, 510, 511, 512, 513,
27909 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
27910 : -1, -1, -1, -1, -1, -1, -1, 20, 21, 22,
27911 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
27912 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
27913 : -1, 44, 45, 46, 47, -1, 49, 50, 51, 52,
27914 : 53, -1, 55, 56, -1, 58, 59, 60, 61, 62,
27915 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
27916 : 73, 74, 75, 76, 77, -1, -1, -1, 81, 82,
27917 : 83, 84, 85, 86, -1, 88, 89, 90, 91, -1,
27918 : 93, 94, 95, 96, 97, 98, -1, -1, 101, 102,
27919 : 103, -1, -1, -1, -1, -1, -1, -1, 111, 112,
27920 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
27921 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
27922 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
27923 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
27924 : -1, 154, 155, 156, 157, 158, 159, 160, 161, 162,
27925 : 163, -1, 165, -1, 167, 168, 169, 170, 171, -1,
27926 : 173, -1, 175, 176, -1, -1, -1, 180, 181, 182,
27927 : 183, -1, 185, 186, -1, 188, 189, 190, -1, 192,
27928 : 193, 194, 195, 196, -1, 198, 199, 200, 201, -1,
27929 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
27930 : -1, 214, 215, 216, 217, 218, 219, 220, -1, 222,
27931 : -1, 224, -1, -1, 227, -1, 229, 230, 231, 232,
27932 : 233, 234, 235, 236, 237, 238, 239, 240, 241, 242,
27933 : 243, 244, 245, 246, -1, -1, 249, 250, -1, 252,
27934 : -1, -1, 255, 256, 257, -1, -1, 260, 261, 262,
27935 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
27936 : 273, 274, 275, 276, 277, 278, 279, -1, 281, 282,
27937 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
27938 : -1, 294, 295, -1, 297, -1, 299, 300, 301, 302,
27939 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
27940 : 313, 314, -1, -1, 317, 318, 319, -1, 321, -1,
27941 : 323, 324, 325, 326, 327, 328, 329, 330, 331, 332,
27942 : 333, 334, 335, -1, 337, 338, 339, 340, 341, 342,
27943 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
27944 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
27945 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
27946 : 373, 374, 375, -1, 377, 378, -1, 380, 381, 382,
27947 : 383, 384, 385, 386, 387, 388, 389, 390, 391, 392,
27948 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
27949 : 403, 404, 405, 406, 407, -1, 409, 410, 411, 412,
27950 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
27951 : 423, 424, 425, 426, 427, 428, 429, 430, -1, 432,
27952 : 433, -1, -1, 436, -1, 438, 439, 440, 441, 442,
27953 : 443, -1, 445, 446, 447, -1, -1, 450, 451, 452,
27954 : 453, 454, -1, 456, 457, 458, 459, 460, 461, 462,
27955 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
27956 : -1, 474, 475, 476, 477, 478, 479, 480, -1, 482,
27957 : -1, 484, 485, 486, 487, 488, -1, -1, 491, -1,
27958 : -1, 494, 495, 496, 497, 498, 499, 500, 501, 502,
27959 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
27960 : 513, 3, -1, -1, -1, -1, -1, -1, -1, -1,
27961 : -1, -1, -1, -1, -1, -1, -1, -1, 20, 21,
27962 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
27963 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
27964 : 42, -1, 44, 45, 46, 47, -1, 49, 50, 51,
27965 : 52, 53, -1, 55, 56, -1, 58, 59, 60, 61,
27966 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
27967 : -1, 73, 74, 75, 76, 77, -1, -1, -1, 81,
27968 : 82, 83, 84, 85, 86, -1, 88, 89, 90, 91,
27969 : -1, 93, 94, 95, 96, 97, 98, -1, -1, 101,
27970 : 102, 103, -1, -1, -1, -1, -1, -1, -1, 111,
27971 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
27972 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
27973 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
27974 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
27975 : 152, -1, 154, 155, 156, 157, 158, 159, 160, 161,
27976 : 162, 163, -1, 165, -1, 167, 168, 169, 170, 171,
27977 : -1, 173, -1, 175, 176, -1, -1, -1, 180, 181,
27978 : 182, 183, -1, 185, 186, -1, 188, 189, 190, -1,
27979 : 192, 193, 194, 195, 196, -1, 198, 199, 200, 201,
27980 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
27981 : 212, -1, 214, 215, 216, 217, 218, 219, 220, -1,
27982 : 222, -1, 224, -1, -1, 227, -1, 229, 230, 231,
27983 : 232, 233, 234, 235, 236, 237, 238, 239, 240, 241,
27984 : 242, 243, 244, 245, 246, -1, -1, 249, 250, -1,
27985 : 252, -1, -1, 255, 256, 257, -1, -1, 260, 261,
27986 : 262, 263, 264, 265, 266, 267, 268, 269, 270, 271,
27987 : 272, 273, 274, 275, 276, 277, 278, 279, -1, 281,
27988 : 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
27989 : 292, -1, 294, 295, -1, 297, -1, 299, 300, 301,
27990 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
27991 : 312, 313, 314, -1, -1, 317, 318, 319, -1, 321,
27992 : -1, 323, 324, 325, 326, 327, 328, 329, 330, 331,
27993 : 332, 333, 334, 335, -1, 337, 338, 339, 340, 341,
27994 : 342, 343, 344, 345, -1, 347, 348, 349, 350, 351,
27995 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
27996 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
27997 : 372, 373, 374, 375, -1, 377, 378, -1, 380, 381,
27998 : 382, 383, 384, 385, 386, 387, 388, 389, 390, 391,
27999 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
28000 : -1, 403, 404, 405, 406, 407, -1, 409, 410, 411,
28001 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
28002 : 422, 423, 424, 425, 426, 427, 428, 429, 430, -1,
28003 : 432, 433, -1, -1, 436, -1, 438, 439, 440, 441,
28004 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
28005 : 452, 453, 454, -1, 456, 457, 458, 459, 460, 461,
28006 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
28007 : -1, -1, 474, 475, 476, 477, 478, 479, 480, -1,
28008 : 482, -1, 484, 485, 486, 487, 488, -1, -1, 491,
28009 : -1, -1, 494, 495, 496, 497, 498, 499, 500, 501,
28010 : 502, 503, 504, 505, 506, 507, 508, 509, 510, 511,
28011 : 512, 513, 3, -1, -1, -1, -1, -1, -1, -1,
28012 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 20,
28013 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
28014 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
28015 : 41, 42, -1, 44, 45, 46, 47, -1, 49, 50,
28016 : 51, 52, 53, -1, 55, 56, -1, 58, 59, 60,
28017 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
28018 : 71, -1, 73, 74, 75, 76, 77, -1, -1, -1,
28019 : 81, 82, 83, 84, 85, 86, -1, 88, 89, 90,
28020 : 91, -1, 93, 94, 95, 96, 97, 98, -1, -1,
28021 : 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
28022 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
28023 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
28024 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
28025 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
28026 : 151, 152, -1, 154, 155, 156, 157, 158, 159, 160,
28027 : 161, 162, 163, -1, 165, -1, 167, 168, 169, 170,
28028 : 171, -1, 173, -1, 175, 176, -1, -1, -1, 180,
28029 : 181, 182, 183, -1, 185, 186, -1, 188, 189, 190,
28030 : -1, 192, 193, 194, 195, 196, -1, 198, 199, 200,
28031 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
28032 : -1, 212, -1, 214, 215, 216, 217, 218, 219, 220,
28033 : -1, 222, -1, 224, -1, -1, 227, -1, 229, 230,
28034 : 231, 232, 233, 234, 235, 236, 237, 238, 239, 240,
28035 : 241, 242, 243, 244, 245, 246, -1, -1, 249, 250,
28036 : -1, 252, -1, -1, 255, 256, 257, -1, -1, 260,
28037 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
28038 : 271, 272, 273, 274, 275, 276, 277, 278, 279, -1,
28039 : 281, 282, 283, 284, 285, 286, 287, 288, 289, 290,
28040 : 291, 292, -1, 294, 295, -1, 297, -1, 299, 300,
28041 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
28042 : -1, 312, 313, 314, -1, -1, 317, 318, 319, -1,
28043 : 321, -1, 323, 324, 325, 326, 327, 328, 329, 330,
28044 : 331, 332, 333, 334, 335, -1, 337, 338, 339, 340,
28045 : 341, 342, 343, 344, 345, -1, 347, 348, 349, 350,
28046 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
28047 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
28048 : 371, 372, 373, 374, 375, -1, 377, 378, -1, 380,
28049 : 381, 382, 383, 384, 385, 386, 387, 388, 389, 390,
28050 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
28051 : 401, -1, 403, 404, 405, 406, 407, -1, 409, 410,
28052 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
28053 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
28054 : -1, 432, 433, -1, -1, 436, -1, 438, 439, 440,
28055 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
28056 : 451, 452, 453, 454, -1, 456, 457, 458, 459, 460,
28057 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
28058 : 471, -1, -1, 474, 475, 476, 477, 478, 479, 480,
28059 : -1, 482, -1, 484, 485, 486, 487, 488, -1, -1,
28060 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 500,
28061 : 501, 502, 503, 504, 505, 506, 507, 508, 509, 510,
28062 : 511, 512, 513, 3, -1, -1, -1, -1, -1, -1,
28063 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28064 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
28065 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
28066 : 40, 41, 42, -1, 44, 45, 46, 47, -1, 49,
28067 : 50, 51, 52, 53, -1, 55, 56, -1, 58, 59,
28068 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
28069 : 70, 71, -1, 73, 74, 75, 76, 77, -1, -1,
28070 : -1, 81, 82, 83, 84, 85, 86, -1, 88, 89,
28071 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
28072 : -1, 101, 102, 103, -1, -1, -1, -1, -1, -1,
28073 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
28074 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
28075 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
28076 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
28077 : 150, 151, 152, -1, 154, 155, 156, 157, 158, 159,
28078 : 160, 161, 162, 163, -1, 165, -1, 167, 168, 169,
28079 : 170, 171, -1, 173, -1, 175, 176, -1, -1, -1,
28080 : 180, 181, 182, 183, -1, 185, 186, -1, 188, 189,
28081 : 190, -1, 192, 193, 194, 195, 196, -1, 198, 199,
28082 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
28083 : 210, -1, 212, -1, 214, 215, 216, 217, 218, 219,
28084 : 220, -1, 222, -1, 224, -1, -1, 227, -1, 229,
28085 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
28086 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
28087 : 250, -1, 252, -1, -1, 255, 256, 257, -1, -1,
28088 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
28089 : 270, 271, 272, 273, 274, 275, 276, 277, 278, 279,
28090 : -1, 281, 282, 283, 284, 285, 286, 287, 288, 289,
28091 : 290, 291, 292, -1, 294, 295, -1, 297, -1, 299,
28092 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
28093 : -1, -1, 312, 313, 314, -1, -1, 317, 318, 319,
28094 : -1, 321, -1, 323, 324, 325, 326, 327, 328, 329,
28095 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
28096 : 340, 341, 342, 343, 344, 345, -1, 347, 348, 349,
28097 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
28098 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
28099 : 370, 371, 372, 373, 374, 375, -1, 377, 378, -1,
28100 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
28101 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
28102 : 400, 401, -1, 403, 404, 405, 406, 407, -1, 409,
28103 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
28104 : 420, 421, 422, 423, 424, 425, 426, 427, 428, 429,
28105 : 430, -1, 432, 433, -1, -1, 436, -1, 438, 439,
28106 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
28107 : 450, 451, 452, 453, 454, -1, 456, 457, 458, 459,
28108 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
28109 : 470, 471, -1, -1, 474, 475, 476, 477, 478, 479,
28110 : 480, -1, 482, -1, 484, 485, 486, 487, 488, -1,
28111 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
28112 : 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
28113 : 510, 511, 512, 513, 3, -1, -1, -1, -1, -1,
28114 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28115 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
28116 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
28117 : -1, 40, 41, 42, -1, 44, 45, 46, 47, -1,
28118 : 49, 50, 51, 52, 53, -1, 55, 56, -1, 58,
28119 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
28120 : 69, 70, 71, -1, 73, 74, 75, 76, 77, -1,
28121 : -1, -1, 81, 82, 83, 84, 85, 86, -1, 88,
28122 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
28123 : -1, -1, 101, 102, 103, -1, -1, -1, -1, -1,
28124 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
28125 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
28126 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
28127 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
28128 : 149, 150, 151, 152, -1, 154, 155, 156, 157, 158,
28129 : 159, 160, 161, 162, 163, -1, 165, -1, 167, 168,
28130 : 169, 170, 171, -1, 173, -1, 175, 176, -1, -1,
28131 : -1, 180, 181, 182, 183, -1, 185, 186, -1, 188,
28132 : -1, 190, -1, 192, 193, 194, 195, 196, -1, 198,
28133 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
28134 : 209, 210, -1, 212, -1, 214, 215, 216, 217, 218,
28135 : 219, 220, -1, 222, -1, 224, -1, -1, 227, -1,
28136 : 229, 230, 231, 232, 233, 234, 235, 236, 237, 238,
28137 : 239, 240, 241, 242, 243, 244, 245, 246, -1, -1,
28138 : 249, 250, -1, 252, -1, -1, 255, 256, 257, -1,
28139 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
28140 : 269, 270, 271, 272, 273, 274, 275, 276, 277, 278,
28141 : 279, -1, 281, 282, 283, 284, 285, 286, 287, 288,
28142 : 289, 290, 291, 292, -1, 294, 295, -1, 297, -1,
28143 : 299, 300, 301, 302, 303, 304, 305, -1, 307, 308,
28144 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
28145 : 319, -1, 321, -1, 323, 324, 325, 326, 327, 328,
28146 : 329, 330, -1, 332, 333, 334, 335, -1, 337, 338,
28147 : 339, 340, 341, 342, 343, 344, 345, -1, 347, 348,
28148 : 349, 350, 351, 352, 353, 354, 355, -1, 357, 358,
28149 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
28150 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
28151 : -1, 380, 381, 382, 383, 384, 385, -1, 387, 388,
28152 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
28153 : 399, 400, 401, -1, 403, 404, 405, 406, 407, -1,
28154 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
28155 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
28156 : 429, 430, -1, 432, 433, -1, -1, 436, -1, 438,
28157 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
28158 : -1, 450, 451, 452, 453, 454, -1, 456, 457, 458,
28159 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
28160 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
28161 : 479, 480, -1, 482, -1, 484, 485, 486, 487, 488,
28162 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
28163 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
28164 : 509, 510, 511, 512, 513, 3, -1, -1, -1, -1,
28165 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28166 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
28167 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
28168 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
28169 : 48, 49, 50, 51, -1, 53, 54, 55, 56, -1,
28170 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
28171 : 68, 69, 70, 71, -1, 73, 74, 75, 76, -1,
28172 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
28173 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
28174 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
28175 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
28176 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
28177 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
28178 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
28179 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
28180 : -1, 159, 160, 161, 162, -1, -1, 165, -1, 167,
28181 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
28182 : -1, 179, 180, 181, 182, 183, -1, 185, -1, -1,
28183 : -1, 189, 190, -1, 192, 193, 194, 195, 196, 197,
28184 : 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
28185 : 208, 209, 210, -1, 212, 213, 214, 215, 216, 217,
28186 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
28187 : 228, 229, -1, -1, -1, -1, -1, -1, -1, -1,
28188 : -1, -1, 240, 241, 242, 243, 244, 245, 246, -1,
28189 : -1, 249, -1, 251, 252, 253, -1, 255, 256, 257,
28190 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
28191 : 268, 269, -1, 271, 272, 273, 274, 275, 276, 277,
28192 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
28193 : 288, 289, -1, -1, 292, -1, 294, 295, 296, 297,
28194 : -1, -1, 300, 301, 302, 303, 304, 305, -1, 307,
28195 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
28196 : 318, 319, 320, 321, 322, -1, 324, 325, 326, 327,
28197 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
28198 : 338, 339, -1, 341, -1, 343, 344, 345, -1, 347,
28199 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
28200 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
28201 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
28202 : 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
28203 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
28204 : 398, 399, 400, 401, -1, 403, 404, 405, 406, 407,
28205 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
28206 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
28207 : 428, -1, 430, -1, 432, 433, -1, -1, 436, 437,
28208 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
28209 : -1, -1, 450, 451, -1, 453, -1, -1, 456, 457,
28210 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
28211 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
28212 : 478, -1, 480, 481, 482, 483, 484, 485, 486, 487,
28213 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
28214 : 498, 499, 3, -1, -1, -1, -1, -1, -1, -1,
28215 : -1, -1, -1, 511, 512, 513, -1, -1, -1, 20,
28216 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
28217 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
28218 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
28219 : 51, -1, 53, 54, 55, 56, -1, 58, 59, 60,
28220 : 61, 62, 63, 64, -1, -1, 67, 68, 69, 70,
28221 : 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
28222 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
28223 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
28224 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
28225 : 111, 112, 113, 114, 115, 116, 117, 118, 119, -1,
28226 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
28227 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
28228 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
28229 : 151, 152, -1, 154, 155, 156, 157, -1, 159, 160,
28230 : 161, 162, -1, -1, 165, -1, 167, 168, 169, 170,
28231 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
28232 : 181, 182, 183, -1, 185, -1, -1, -1, 189, 190,
28233 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
28234 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
28235 : -1, 212, 213, -1, 215, 216, 217, 218, 219, 220,
28236 : -1, 222, -1, 224, 225, 226, 227, 228, 229, -1,
28237 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 240,
28238 : 241, 242, 243, 244, 245, 246, -1, -1, 249, -1,
28239 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
28240 : 261, 262, 263, 264, 265, 266, 267, 268, 269, -1,
28241 : 271, 272, 273, 274, 275, 276, 277, 278, 279, 280,
28242 : 281, 282, 283, 284, 285, 286, 287, 288, 289, -1,
28243 : -1, 292, -1, 294, 295, 296, 297, 298, -1, 300,
28244 : 301, 302, 303, 304, 305, -1, 307, 308, 309, -1,
28245 : -1, 312, 313, 314, -1, -1, 317, 318, -1, 320,
28246 : 321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
28247 : 331, 332, 333, 334, 335, -1, 337, 338, 339, -1,
28248 : 341, -1, 343, 344, 345, -1, 347, 348, 349, 350,
28249 : 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
28250 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
28251 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
28252 : 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
28253 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
28254 : 401, -1, 403, 404, 405, 406, 407, 408, 409, 410,
28255 : 411, 412, -1, 414, 415, 416, 417, 418, 419, 420,
28256 : 421, 422, 423, 424, 425, 426, 427, 428, -1, 430,
28257 : -1, 432, 433, -1, 435, 436, 437, 438, 439, 440,
28258 : 441, 442, 443, -1, 445, 446, 447, -1, -1, 450,
28259 : 451, -1, 453, -1, -1, 456, 457, 458, 459, 460,
28260 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
28261 : 471, -1, -1, 474, 475, 476, 477, 478, -1, 480,
28262 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
28263 : 491, -1, -1, 494, 495, 496, 497, 498, 499, 3,
28264 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28265 : 511, 512, 513, -1, -1, -1, 20, 21, 22, 23,
28266 : 24, 25, 26, 27, 28, -1, 30, 31, 32, -1,
28267 : -1, -1, -1, -1, -1, -1, 40, 41, 42, -1,
28268 : 44, 45, 46, 47, 48, 49, 50, 51, -1, 53,
28269 : 54, 55, 56, -1, 58, 59, 60, 61, 62, 63,
28270 : 64, -1, -1, 67, 68, 69, 70, 71, -1, 73,
28271 : 74, 75, 76, -1, -1, 79, -1, 81, 82, 83,
28272 : 84, 85, 86, 87, 88, 89, 90, 91, -1, 93,
28273 : 94, 95, 96, 97, 98, -1, 100, 101, 102, 103,
28274 : -1, -1, -1, 107, -1, -1, -1, 111, 112, 113,
28275 : 114, 115, 116, 117, 118, 119, -1, 121, -1, 123,
28276 : 124, 125, 126, 127, 128, 129, -1, 131, 132, 133,
28277 : 134, -1, -1, 137, 138, 139, 140, 141, -1, 143,
28278 : 144, 145, 146, -1, 148, 149, 150, 151, 152, -1,
28279 : 154, 155, 156, 157, -1, 159, 160, 161, 162, -1,
28280 : -1, 165, -1, 167, 168, 169, 170, 171, -1, 173,
28281 : -1, 175, 176, 177, -1, 179, 180, 181, 182, 183,
28282 : -1, 185, -1, -1, -1, 189, 190, -1, 192, 193,
28283 : 194, 195, 196, 197, 198, 199, 200, 201, -1, 203,
28284 : 204, 205, 206, 207, 208, 209, 210, -1, 212, 213,
28285 : -1, 215, 216, 217, 218, 219, 220, -1, 222, -1,
28286 : 224, 225, 226, 227, 228, 229, -1, -1, -1, -1,
28287 : -1, -1, -1, -1, -1, -1, 240, 241, 242, 243,
28288 : 244, 245, 246, -1, -1, 249, -1, 251, 252, 253,
28289 : -1, 255, 256, 257, -1, -1, 260, 261, 262, 263,
28290 : 264, 265, 266, 267, 268, 269, -1, 271, 272, 273,
28291 : 274, 275, 276, 277, 278, 279, 280, 281, 282, 283,
28292 : 284, 285, 286, 287, 288, 289, 290, -1, 292, -1,
28293 : 294, 295, 296, 297, -1, -1, 300, 301, 302, 303,
28294 : 304, 305, -1, 307, 308, 309, -1, -1, 312, 313,
28295 : 314, -1, -1, 317, 318, -1, 320, 321, 322, -1,
28296 : 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
28297 : 334, 335, -1, 337, 338, 339, -1, 341, -1, 343,
28298 : 344, 345, -1, 347, 348, 349, 350, 351, 352, 353,
28299 : 354, 355, 356, 357, 358, 359, 360, 361, -1, 363,
28300 : 364, 365, 366, 367, 368, 369, 370, 371, 372, 373,
28301 : 374, 375, -1, 377, 378, 379, 380, 381, 382, 383,
28302 : 384, -1, 386, 387, 388, 389, 390, 391, 392, 393,
28303 : 394, 395, -1, 397, 398, 399, 400, 401, -1, 403,
28304 : 404, 405, 406, 407, 408, 409, 410, 411, 412, -1,
28305 : 414, 415, 416, 417, 418, 419, 420, 421, 422, 423,
28306 : 424, 425, 426, 427, 428, -1, 430, -1, 432, 433,
28307 : -1, -1, 436, 437, 438, 439, 440, 441, 442, 443,
28308 : -1, 445, 446, 447, -1, -1, 450, 451, -1, 453,
28309 : -1, -1, 456, 457, 458, 459, 460, 461, 462, 463,
28310 : 464, -1, -1, 467, 468, 469, 470, 471, -1, -1,
28311 : 474, 475, 476, 477, 478, -1, 480, -1, 482, 483,
28312 : 484, 485, 486, 487, 488, -1, -1, 491, -1, -1,
28313 : 494, 495, 496, 497, 498, 499, 3, -1, -1, -1,
28314 : -1, -1, -1, -1, -1, -1, -1, 511, 512, 513,
28315 : -1, -1, -1, 20, 21, 22, 23, 24, 25, 26,
28316 : 27, 28, -1, 30, 31, 32, -1, -1, -1, -1,
28317 : -1, -1, -1, 40, 41, 42, -1, 44, 45, 46,
28318 : 47, 48, 49, 50, 51, -1, 53, 54, 55, 56,
28319 : -1, 58, 59, 60, 61, 62, 63, 64, -1, -1,
28320 : 67, 68, 69, 70, 71, -1, 73, 74, 75, 76,
28321 : -1, -1, 79, -1, 81, 82, 83, 84, 85, 86,
28322 : 87, 88, 89, 90, 91, -1, 93, 94, 95, 96,
28323 : 97, 98, -1, 100, 101, 102, 103, -1, -1, -1,
28324 : 107, -1, -1, -1, 111, 112, 113, 114, 115, 116,
28325 : 117, 118, 119, -1, 121, -1, 123, 124, 125, 126,
28326 : 127, 128, 129, -1, 131, 132, 133, 134, -1, -1,
28327 : 137, 138, 139, 140, 141, -1, 143, 144, 145, 146,
28328 : -1, 148, 149, 150, 151, 152, -1, 154, 155, 156,
28329 : 157, -1, 159, 160, 161, 162, -1, -1, 165, -1,
28330 : 167, 168, 169, 170, 171, -1, 173, -1, 175, 176,
28331 : 177, -1, 179, 180, 181, 182, 183, -1, 185, -1,
28332 : -1, -1, 189, 190, -1, 192, 193, 194, 195, 196,
28333 : 197, 198, 199, 200, 201, -1, 203, 204, 205, 206,
28334 : 207, 208, 209, 210, -1, 212, 213, -1, 215, 216,
28335 : 217, 218, 219, 220, -1, 222, -1, 224, 225, 226,
28336 : 227, 228, 229, -1, -1, -1, -1, -1, -1, -1,
28337 : -1, -1, -1, 240, 241, 242, 243, 244, 245, 246,
28338 : -1, -1, 249, -1, 251, 252, 253, -1, 255, 256,
28339 : 257, -1, -1, 260, 261, 262, 263, 264, 265, 266,
28340 : 267, 268, 269, -1, 271, 272, 273, 274, 275, 276,
28341 : 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
28342 : 287, 288, 289, 290, -1, 292, -1, 294, 295, 296,
28343 : 297, -1, -1, 300, 301, 302, 303, 304, 305, -1,
28344 : 307, 308, 309, -1, -1, 312, 313, 314, -1, -1,
28345 : 317, 318, -1, 320, 321, 322, -1, 324, 325, 326,
28346 : 327, 328, 329, 330, 331, 332, 333, 334, 335, -1,
28347 : 337, 338, 339, -1, 341, -1, 343, 344, 345, -1,
28348 : 347, 348, 349, 350, 351, 352, 353, 354, 355, 356,
28349 : 357, 358, 359, 360, 361, -1, 363, 364, 365, 366,
28350 : 367, 368, 369, 370, 371, 372, 373, 374, 375, -1,
28351 : 377, 378, 379, 380, 381, 382, 383, 384, -1, 386,
28352 : 387, 388, 389, 390, 391, 392, 393, 394, 395, -1,
28353 : 397, 398, 399, 400, 401, -1, 403, 404, 405, 406,
28354 : 407, 408, 409, 410, 411, 412, -1, 414, 415, 416,
28355 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
28356 : 427, 428, -1, 430, -1, 432, 433, -1, -1, 436,
28357 : 437, 438, 439, 440, 441, 442, 443, -1, 445, 446,
28358 : 447, -1, -1, 450, 451, -1, 453, -1, -1, 456,
28359 : 457, 458, 459, 460, 461, 462, 463, 464, -1, -1,
28360 : 467, 468, 469, 470, 471, -1, -1, 474, 475, 476,
28361 : 477, 478, -1, 480, -1, 482, 483, 484, 485, 486,
28362 : 487, 488, -1, -1, 491, -1, -1, 494, 495, 496,
28363 : 497, 498, 499, 3, -1, -1, -1, -1, -1, -1,
28364 : -1, -1, -1, -1, 511, 512, 513, -1, -1, -1,
28365 : 20, 21, 22, 23, 24, 25, 26, 27, 28, -1,
28366 : 30, 31, 32, -1, -1, -1, -1, -1, -1, -1,
28367 : 40, 41, 42, -1, 44, 45, 46, 47, 48, 49,
28368 : 50, 51, -1, 53, 54, 55, 56, -1, 58, 59,
28369 : 60, 61, 62, 63, 64, -1, -1, 67, 68, 69,
28370 : 70, 71, -1, 73, 74, 75, 76, -1, -1, 79,
28371 : -1, 81, 82, 83, 84, 85, 86, 87, 88, 89,
28372 : 90, 91, -1, 93, 94, 95, 96, 97, 98, -1,
28373 : 100, 101, 102, 103, -1, -1, -1, 107, -1, -1,
28374 : -1, 111, 112, 113, 114, 115, 116, 117, 118, 119,
28375 : -1, 121, -1, 123, 124, 125, 126, 127, 128, 129,
28376 : -1, 131, 132, 133, 134, -1, -1, 137, 138, 139,
28377 : 140, 141, -1, 143, 144, 145, 146, -1, 148, 149,
28378 : 150, 151, 152, -1, 154, 155, 156, 157, -1, 159,
28379 : 160, 161, 162, -1, -1, 165, -1, 167, 168, 169,
28380 : 170, 171, 172, 173, -1, 175, 176, 177, -1, 179,
28381 : 180, 181, 182, 183, -1, 185, -1, -1, -1, 189,
28382 : 190, -1, 192, 193, 194, 195, 196, 197, 198, 199,
28383 : 200, 201, -1, 203, 204, 205, 206, 207, 208, 209,
28384 : 210, -1, 212, 213, -1, 215, 216, 217, 218, 219,
28385 : 220, -1, 222, -1, 224, 225, 226, 227, 228, 229,
28386 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28387 : 240, 241, 242, 243, 244, 245, 246, -1, -1, 249,
28388 : -1, 251, 252, 253, -1, 255, 256, 257, -1, -1,
28389 : 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
28390 : -1, 271, 272, 273, 274, 275, 276, 277, 278, 279,
28391 : 280, 281, 282, 283, 284, 285, 286, 287, 288, 289,
28392 : -1, -1, 292, -1, 294, 295, 296, 297, -1, -1,
28393 : 300, 301, 302, 303, 304, 305, -1, 307, 308, 309,
28394 : -1, -1, 312, 313, 314, -1, -1, 317, 318, -1,
28395 : 320, 321, 322, -1, 324, 325, 326, 327, 328, 329,
28396 : 330, 331, 332, 333, 334, 335, -1, 337, 338, 339,
28397 : -1, 341, -1, 343, 344, 345, -1, 347, 348, 349,
28398 : 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
28399 : 360, 361, -1, 363, 364, 365, 366, 367, 368, 369,
28400 : 370, 371, 372, 373, 374, 375, -1, 377, 378, 379,
28401 : 380, 381, 382, 383, 384, -1, 386, 387, 388, 389,
28402 : 390, 391, 392, 393, 394, 395, -1, 397, 398, 399,
28403 : 400, 401, -1, 403, 404, 405, 406, 407, 408, 409,
28404 : 410, 411, 412, -1, 414, 415, 416, 417, 418, 419,
28405 : 420, 421, 422, 423, 424, 425, 426, 427, 428, -1,
28406 : 430, -1, 432, 433, -1, -1, 436, 437, 438, 439,
28407 : 440, 441, 442, 443, -1, 445, 446, 447, -1, -1,
28408 : 450, 451, -1, 453, -1, -1, 456, 457, 458, 459,
28409 : 460, 461, 462, 463, 464, -1, -1, 467, 468, 469,
28410 : 470, 471, -1, -1, 474, 475, 476, 477, 478, -1,
28411 : 480, -1, 482, 483, 484, 485, 486, 487, 488, -1,
28412 : -1, 491, -1, -1, 494, 495, 496, 497, 498, 499,
28413 : 3, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28414 : -1, 511, 512, 513, -1, -1, -1, 20, 21, 22,
28415 : 23, 24, 25, 26, 27, 28, -1, 30, 31, 32,
28416 : -1, -1, -1, -1, -1, -1, -1, 40, 41, 42,
28417 : -1, 44, 45, 46, 47, 48, 49, 50, 51, -1,
28418 : 53, 54, 55, 56, -1, 58, 59, 60, 61, 62,
28419 : 63, 64, -1, -1, 67, 68, 69, 70, 71, -1,
28420 : 73, 74, 75, 76, -1, -1, 79, -1, 81, 82,
28421 : 83, 84, 85, 86, 87, 88, 89, 90, 91, -1,
28422 : 93, 94, 95, 96, 97, 98, -1, 100, 101, 102,
28423 : 103, -1, -1, -1, 107, -1, -1, -1, 111, 112,
28424 : 113, 114, 115, 116, 117, 118, 119, -1, 121, -1,
28425 : 123, 124, 125, 126, 127, 128, 129, -1, 131, 132,
28426 : 133, 134, -1, -1, 137, 138, 139, 140, 141, -1,
28427 : 143, 144, 145, 146, -1, 148, 149, 150, 151, 152,
28428 : -1, 154, 155, 156, 157, -1, 159, 160, 161, 162,
28429 : -1, -1, 165, -1, 167, 168, 169, 170, 171, 172,
28430 : 173, -1, 175, 176, 177, -1, 179, 180, 181, 182,
28431 : 183, -1, 185, -1, -1, -1, 189, 190, -1, 192,
28432 : 193, 194, 195, 196, 197, 198, 199, 200, 201, -1,
28433 : 203, 204, 205, 206, 207, 208, 209, 210, -1, 212,
28434 : 213, -1, 215, 216, 217, 218, 219, 220, -1, 222,
28435 : -1, 224, 225, 226, 227, 228, 229, -1, -1, -1,
28436 : -1, -1, -1, -1, -1, -1, -1, 240, 241, 242,
28437 : 243, 244, 245, 246, -1, -1, 249, -1, 251, 252,
28438 : 253, -1, 255, 256, 257, -1, -1, 260, 261, 262,
28439 : 263, 264, 265, 266, 267, 268, 269, -1, 271, 272,
28440 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
28441 : 283, 284, 285, 286, 287, 288, 289, -1, -1, 292,
28442 : -1, 294, 295, 296, 297, -1, -1, 300, 301, 302,
28443 : 303, 304, 305, -1, 307, 308, 309, -1, -1, 312,
28444 : 313, 314, -1, -1, 317, 318, -1, 320, 321, 322,
28445 : -1, 324, 325, 326, 327, 328, 329, 330, 331, 332,
28446 : 333, 334, 335, -1, 337, 338, 339, -1, 341, -1,
28447 : 343, 344, 345, -1, 347, 348, 349, 350, 351, 352,
28448 : 353, 354, 355, 356, 357, 358, 359, 360, 361, -1,
28449 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
28450 : 373, 374, 375, -1, 377, 378, 379, 380, 381, 382,
28451 : 383, 384, -1, 386, 387, 388, 389, 390, 391, 392,
28452 : 393, 394, 395, -1, 397, 398, 399, 400, 401, -1,
28453 : 403, 404, 405, 406, 407, 408, 409, 410, 411, 412,
28454 : -1, 414, 415, 416, 417, 418, 419, 420, 421, 422,
28455 : 423, 424, 425, 426, 427, 428, -1, 430, -1, 432,
28456 : 433, -1, -1, 436, 437, 438, 439, 440, 441, 442,
28457 : 443, -1, 445, 446, 447, -1, -1, 450, 451, -1,
28458 : 453, -1, -1, 456, 457, 458, 459, 460, 461, 462,
28459 : 463, 464, -1, -1, 467, 468, 469, 470, 471, -1,
28460 : -1, 474, 475, 476, 477, 478, -1, 480, -1, 482,
28461 : 483, 484, 485, 486, 487, 488, -1, -1, 491, -1,
28462 : -1, 494, 495, 496, 497, 498, 499, 3, -1, -1,
28463 : -1, -1, -1, -1, -1, -1, -1, -1, 511, 512,
28464 : 513, -1, -1, -1, 20, 21, 22, 23, 24, 25,
28465 : 26, 27, 28, -1, 30, 31, 32, -1, -1, -1,
28466 : -1, -1, -1, -1, 40, 41, 42, -1, 44, 45,
28467 : 46, 47, 48, 49, 50, 51, -1, 53, 54, 55,
28468 : 56, -1, 58, 59, 60, 61, 62, 63, 64, -1,
28469 : -1, 67, 68, 69, 70, 71, -1, 73, 74, 75,
28470 : 76, -1, -1, 79, -1, 81, 82, 83, 84, 85,
28471 : 86, 87, 88, 89, 90, 91, -1, 93, 94, 95,
28472 : 96, 97, 98, -1, 100, 101, 102, 103, -1, -1,
28473 : -1, 107, -1, -1, -1, 111, 112, 113, 114, 115,
28474 : 116, 117, 118, 119, -1, 121, -1, 123, 124, 125,
28475 : 126, 127, 128, 129, -1, 131, 132, 133, 134, -1,
28476 : -1, 137, 138, 139, 140, 141, -1, 143, 144, 145,
28477 : 146, -1, 148, 149, 150, 151, 152, -1, 154, 155,
28478 : 156, 157, -1, 159, 160, 161, 162, -1, -1, 165,
28479 : -1, 167, 168, 169, 170, 171, -1, 173, -1, 175,
28480 : 176, 177, -1, 179, 180, 181, 182, 183, -1, 185,
28481 : -1, -1, -1, 189, 190, -1, 192, 193, 194, 195,
28482 : 196, 197, 198, 199, 200, 201, -1, 203, 204, 205,
28483 : 206, 207, 208, 209, 210, -1, 212, 213, -1, 215,
28484 : 216, 217, 218, 219, 220, -1, 222, -1, 224, 225,
28485 : 226, 227, 228, 229, -1, -1, -1, -1, -1, -1,
28486 : -1, -1, -1, -1, 240, 241, 242, 243, 244, 245,
28487 : 246, -1, -1, 249, -1, 251, 252, 253, -1, 255,
28488 : 256, 257, -1, -1, 260, 261, 262, 263, 264, 265,
28489 : 266, 267, 268, 269, -1, 271, 272, 273, 274, 275,
28490 : 276, 277, 278, 279, 280, 281, 282, 283, 284, 285,
28491 : 286, 287, 288, 289, -1, -1, 292, -1, 294, 295,
28492 : 296, 297, -1, -1, 300, 301, 302, 303, 304, 305,
28493 : -1, 307, 308, 309, -1, -1, 312, 313, 314, -1,
28494 : -1, 317, 318, -1, 320, 321, 322, -1, 324, 325,
28495 : 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
28496 : -1, 337, 338, 339, -1, 341, -1, 343, 344, 345,
28497 : -1, 347, 348, 349, 350, 351, 352, 353, 354, 355,
28498 : 356, 357, 358, 359, 360, 361, -1, 363, 364, 365,
28499 : 366, 367, 368, 369, 370, 371, 372, 373, 374, 375,
28500 : -1, 377, 378, 379, 380, 381, 382, 383, 384, -1,
28501 : 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
28502 : -1, 397, 398, 399, 400, 401, -1, 403, 404, 405,
28503 : 406, 407, 408, 409, 410, 411, 412, -1, 414, 415,
28504 : 416, 417, 418, 419, 420, 421, 422, 423, 424, 425,
28505 : 426, 427, 428, -1, 430, -1, 432, 433, -1, -1,
28506 : 436, 437, 438, 439, 440, 441, 442, 443, -1, 445,
28507 : 446, 447, -1, -1, 450, 451, -1, 453, -1, -1,
28508 : 456, 457, 458, 459, 460, 461, 462, 463, 464, -1,
28509 : -1, 467, 468, 469, 470, 471, -1, -1, 474, 475,
28510 : 476, 477, 478, -1, 480, -1, 482, 483, 484, 485,
28511 : 486, 487, 488, -1, -1, 491, -1, -1, 494, 495,
28512 : 496, 497, 498, 499, 3, -1, -1, -1, -1, -1,
28513 : -1, -1, -1, -1, -1, 511, 512, 513, -1, -1,
28514 : -1, 20, 21, 22, 23, 24, 25, 26, 27, 28,
28515 : -1, 30, 31, 32, -1, -1, -1, -1, -1, -1,
28516 : -1, 40, 41, 42, -1, 44, 45, 46, 47, 48,
28517 : 49, 50, 51, -1, 53, 54, 55, 56, -1, 58,
28518 : 59, 60, 61, 62, 63, 64, -1, -1, 67, 68,
28519 : 69, 70, 71, -1, 73, 74, 75, 76, -1, -1,
28520 : 79, -1, 81, 82, 83, 84, 85, 86, 87, 88,
28521 : 89, 90, 91, -1, 93, 94, 95, 96, 97, 98,
28522 : -1, 100, 101, 102, 103, -1, -1, -1, 107, -1,
28523 : -1, -1, 111, 112, 113, 114, 115, 116, 117, 118,
28524 : 119, -1, 121, -1, 123, 124, 125, 126, 127, 128,
28525 : 129, -1, 131, 132, 133, 134, -1, -1, 137, 138,
28526 : 139, 140, 141, -1, 143, 144, 145, 146, -1, 148,
28527 : 149, 150, 151, 152, -1, 154, 155, 156, 157, -1,
28528 : 159, 160, 161, 162, -1, -1, 165, -1, 167, 168,
28529 : 169, 170, 171, -1, 173, -1, 175, 176, 177, -1,
28530 : 179, 180, 181, 182, 183, -1, 185, -1, -1, -1,
28531 : 189, 190, -1, 192, 193, 194, 195, 196, 197, 198,
28532 : 199, 200, 201, -1, 203, 204, 205, 206, 207, 208,
28533 : 209, 210, -1, 212, 213, -1, 215, 216, 217, 218,
28534 : 219, 220, -1, 222, -1, 224, 225, 226, 227, 228,
28535 : 229, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28536 : -1, 240, 241, 242, 243, 244, 245, 246, -1, -1,
28537 : 249, -1, 251, 252, 253, -1, 255, 256, 257, -1,
28538 : -1, 260, 261, 262, 263, 264, 265, 266, 267, 268,
28539 : 269, -1, 271, 272, 273, 274, 275, 276, 277, 278,
28540 : 279, 280, 281, 282, 283, 284, 285, 286, 287, 288,
28541 : 289, -1, -1, 292, -1, 294, 295, 296, 297, -1,
28542 : -1, 300, 301, 302, 303, 304, 305, -1, 307, 308,
28543 : 309, -1, -1, 312, 313, 314, -1, -1, 317, 318,
28544 : -1, 320, 321, 322, -1, 324, 325, 326, 327, 328,
28545 : 329, 330, 331, 332, 333, 334, 335, -1, 337, 338,
28546 : 339, -1, 341, -1, 343, 344, 345, -1, 347, 348,
28547 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
28548 : 359, 360, 361, -1, 363, 364, 365, 366, 367, 368,
28549 : 369, 370, 371, 372, 373, 374, 375, -1, 377, 378,
28550 : 379, 380, 381, 382, 383, 384, -1, 386, 387, 388,
28551 : 389, 390, 391, 392, 393, 394, 395, -1, 397, 398,
28552 : 399, 400, 401, -1, 403, 404, 405, 406, 407, 408,
28553 : 409, 410, 411, 412, -1, 414, 415, 416, 417, 418,
28554 : 419, 420, 421, 422, 423, 424, 425, 426, 427, 428,
28555 : -1, 430, -1, 432, 433, -1, -1, 436, 437, 438,
28556 : 439, 440, 441, 442, 443, -1, 445, 446, 447, -1,
28557 : -1, 450, 451, -1, 453, -1, -1, 456, 457, 458,
28558 : 459, 460, 461, 462, 463, 464, -1, -1, 467, 468,
28559 : 469, 470, 471, -1, -1, 474, 475, 476, 477, 478,
28560 : -1, 480, -1, 482, 483, 484, 485, 486, 487, 488,
28561 : -1, -1, 491, -1, -1, 494, 495, 496, 497, 498,
28562 : 499, 3, -1, -1, -1, -1, -1, -1, -1, -1,
28563 : -1, -1, 511, 512, 513, -1, -1, -1, 20, 21,
28564 : 22, 23, 24, 25, 26, 27, 28, -1, 30, 31,
28565 : 32, -1, -1, -1, -1, -1, -1, -1, 40, 41,
28566 : 42, -1, 44, 45, 46, 47, 48, 49, 50, 51,
28567 : -1, 53, 54, 55, 56, -1, 58, 59, 60, 61,
28568 : 62, 63, 64, -1, -1, 67, 68, 69, 70, 71,
28569 : -1, 73, 74, 75, 76, -1, -1, 79, -1, 81,
28570 : 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
28571 : -1, 93, 94, 95, 96, 97, 98, -1, 100, 101,
28572 : 102, 103, -1, -1, -1, 107, -1, -1, -1, 111,
28573 : 112, 113, 114, 115, 116, 117, 118, 119, -1, 121,
28574 : -1, 123, 124, 125, 126, 127, 128, 129, -1, 131,
28575 : 132, 133, 134, -1, -1, 137, 138, 139, 140, 141,
28576 : -1, 143, 144, 145, 146, -1, 148, 149, 150, 151,
28577 : 152, -1, 154, 155, 156, 157, -1, 159, 160, 161,
28578 : 162, -1, -1, 165, -1, 167, 168, 169, 170, 171,
28579 : -1, 173, -1, 175, 176, 177, -1, 179, 180, 181,
28580 : 182, 183, -1, 185, -1, -1, -1, 189, 190, -1,
28581 : 192, 193, 194, 195, 196, 197, 198, 199, 200, 201,
28582 : -1, 203, 204, 205, 206, 207, 208, 209, 210, -1,
28583 : 212, 213, -1, 215, 216, 217, 218, 219, 220, -1,
28584 : 222, -1, 224, 225, 226, 227, 228, 229, -1, -1,
28585 : -1, -1, -1, -1, -1, -1, -1, -1, 240, 241,
28586 : 242, 243, 244, 245, 246, -1, -1, 249, -1, 251,
28587 : 252, 253, -1, 255, 256, 257, -1, -1, 260, 261,
28588 : 262, 263, 264, 265, 266, 267, 268, 269, -1, 271,
28589 : 272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
28590 : 282, 283, 284, 285, 286, 287, 288, 289, -1, -1,
28591 : 292, -1, 294, 295, 296, 297, -1, -1, 300, 301,
28592 : 302, 303, 304, 305, -1, 307, 308, 309, -1, -1,
28593 : 312, 313, 314, -1, -1, 317, 318, -1, 320, 321,
28594 : 322, -1, 324, 325, 326, 327, 328, 329, 330, 331,
28595 : 332, 333, 334, 335, -1, 337, 338, 339, -1, 341,
28596 : -1, 343, 344, 345, -1, 347, 348, 349, 350, 351,
28597 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
28598 : -1, 363, 364, 365, 366, 367, 368, 369, 370, 371,
28599 : 372, 373, 374, 375, -1, 377, 378, 379, 380, 381,
28600 : 382, 383, 384, -1, 386, 387, 388, 389, 390, 391,
28601 : 392, 393, 394, 395, -1, 397, 398, 399, 400, 401,
28602 : -1, 403, 404, 405, 406, 407, 408, 409, 410, 411,
28603 : 412, -1, 414, 415, 416, 417, 418, 419, 420, 421,
28604 : 422, 423, 424, 425, 426, 427, 428, -1, 430, -1,
28605 : 432, 433, -1, -1, 436, 437, 438, 439, 440, 441,
28606 : 442, 443, -1, 445, 446, 447, -1, -1, 450, 451,
28607 : -1, 453, -1, -1, 456, 457, 458, 459, 460, 461,
28608 : 462, 463, 464, -1, -1, 467, 468, 469, 470, 471,
28609 : -1, -1, 474, 475, 476, 477, 478, -1, 480, -1,
28610 : 482, 483, 484, 485, 486, 487, 488, -1, -1, 491,
28611 : -1, -1, 494, 495, 496, 497, 498, 499, 3, -1,
28612 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 511,
28613 : 512, 513, -1, -1, -1, 20, 21, 22, 23, 24,
28614 : 25, 26, 27, 28, -1, 30, 31, 32, -1, -1,
28615 : -1, -1, -1, -1, -1, 40, 41, 42, -1, 44,
28616 : 45, 46, 47, 48, 49, 50, 51, -1, 53, 54,
28617 : 55, 56, -1, 58, 59, 60, 61, 62, 63, 64,
28618 : -1, -1, 67, 68, 69, 70, 71, -1, 73, 74,
28619 : 75, 76, -1, -1, 79, -1, 81, 82, 83, 84,
28620 : 85, 86, 87, 88, 89, 90, 91, -1, 93, 94,
28621 : 95, 96, 97, 98, -1, 100, 101, 102, 103, -1,
28622 : -1, -1, 107, -1, -1, -1, 111, 112, 113, 114,
28623 : 115, 116, 117, 118, 119, -1, 121, -1, 123, 124,
28624 : 125, 126, 127, 128, 129, -1, 131, 132, 133, 134,
28625 : -1, -1, 137, 138, 139, 140, 141, -1, 143, 144,
28626 : 145, 146, -1, 148, 149, 150, 151, 152, -1, 154,
28627 : 155, 156, 157, -1, 159, 160, 161, 162, -1, -1,
28628 : 165, -1, 167, 168, 169, 170, 171, -1, 173, -1,
28629 : 175, 176, 177, -1, 179, 180, 181, 182, 183, -1,
28630 : 185, -1, -1, -1, 189, 190, -1, 192, 193, 194,
28631 : 195, 196, 197, 198, 199, 200, 201, -1, 203, 204,
28632 : 205, 206, 207, 208, 209, 210, -1, 212, 213, -1,
28633 : 215, 216, 217, 218, 219, 220, -1, 222, -1, 224,
28634 : 225, 226, 227, 228, 229, -1, -1, -1, -1, -1,
28635 : -1, -1, -1, -1, -1, 240, 241, 242, 243, 244,
28636 : 245, 246, -1, -1, 249, -1, 251, 252, 253, -1,
28637 : 255, 256, 257, -1, -1, 260, 261, 262, 263, 264,
28638 : 265, 266, 267, 268, 269, -1, 271, 272, 273, 274,
28639 : 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
28640 : 285, 286, 287, 288, 289, -1, -1, 292, -1, 294,
28641 : 295, 296, 297, -1, -1, 300, 301, 302, 303, 304,
28642 : 305, -1, 307, 308, 309, -1, -1, 312, 313, 314,
28643 : -1, -1, 317, 318, -1, 320, 321, 322, -1, 324,
28644 : 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
28645 : 335, -1, 337, 338, 339, -1, 341, -1, 343, 344,
28646 : 345, -1, 347, 348, 349, 350, 351, 352, 353, 354,
28647 : 355, 356, 357, 358, 359, 360, 361, -1, 363, 364,
28648 : 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
28649 : 375, -1, 377, 378, 379, 380, 381, 382, 383, 384,
28650 : -1, 386, 387, 388, 389, 390, 391, 392, 393, 394,
28651 : 395, -1, 397, 398, 399, 400, 401, -1, 403, 404,
28652 : 405, 406, 407, 408, 409, 410, 411, 412, -1, 414,
28653 : 415, 416, 417, 418, 419, 420, 421, 422, 423, 424,
28654 : 425, 426, 427, 428, -1, 430, -1, 432, 433, -1,
28655 : -1, 436, 437, 438, 439, 440, 441, 442, 443, -1,
28656 : 445, 446, 447, -1, -1, 450, 451, -1, 453, -1,
28657 : -1, 456, 457, 458, 459, 460, 461, 462, 463, 464,
28658 : -1, -1, 467, 468, 469, 470, 471, -1, -1, 474,
28659 : 475, 476, 477, 478, -1, 480, -1, 482, 483, 484,
28660 : 485, 486, 487, 488, -1, -1, 491, -1, -1, 494,
28661 : 495, 496, 497, 498, 499, 3, -1, -1, -1, -1,
28662 : -1, -1, -1, -1, -1, -1, 511, 512, 513, -1,
28663 : -1, -1, 20, 21, 22, 23, 24, 25, 26, 27,
28664 : 28, -1, 30, 31, 32, -1, -1, -1, -1, -1,
28665 : -1, -1, 40, 41, 42, -1, 44, 45, 46, 47,
28666 : 48, 49, 50, 51, -1, 53, 54, 55, 56, -1,
28667 : 58, 59, 60, 61, 62, 63, 64, -1, -1, 67,
28668 : 68, 69, 70, 71, -1, 73, 74, 75, 76, -1,
28669 : -1, 79, -1, 81, 82, 83, 84, 85, 86, 87,
28670 : 88, 89, 90, 91, -1, 93, 94, 95, 96, 97,
28671 : 98, -1, 100, 101, 102, 103, -1, -1, -1, 107,
28672 : -1, -1, -1, 111, 112, 113, 114, 115, 116, 117,
28673 : 118, 119, -1, 121, -1, 123, 124, 125, 126, 127,
28674 : 128, 129, -1, 131, 132, 133, 134, -1, -1, 137,
28675 : 138, 139, 140, 141, -1, 143, 144, 145, 146, -1,
28676 : 148, 149, 150, 151, 152, -1, 154, 155, 156, 157,
28677 : -1, 159, 160, 161, 162, -1, -1, 165, -1, 167,
28678 : 168, 169, 170, 171, -1, 173, -1, 175, 176, 177,
28679 : -1, 179, 180, 181, 182, 183, -1, 185, -1, -1,
28680 : -1, 189, 190, -1, 192, 193, 194, 195, 196, 197,
28681 : 198, 199, 200, 201, -1, 203, 204, 205, 206, 207,
28682 : 208, 209, 210, -1, 212, 213, -1, 215, 216, 217,
28683 : 218, 219, 220, -1, 222, -1, 224, 225, 226, 227,
28684 : 228, 229, -1, -1, -1, -1, -1, -1, -1, -1,
28685 : -1, -1, 240, 241, 242, 243, 244, 245, 246, -1,
28686 : -1, 249, -1, 251, 252, 253, -1, 255, 256, 257,
28687 : -1, -1, 260, 261, 262, 263, 264, 265, 266, 267,
28688 : 268, 269, -1, 271, 272, 273, 274, 275, 276, 277,
28689 : 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
28690 : 288, 289, -1, -1, 292, -1, 294, 295, 296, 297,
28691 : -1, -1, 300, 301, 302, 303, 304, 305, -1, 307,
28692 : 308, 309, -1, -1, 312, 313, 314, -1, -1, 317,
28693 : 318, -1, 320, 321, 322, -1, 324, 325, 326, 327,
28694 : 328, 329, 330, 331, 332, 333, 334, 335, -1, 337,
28695 : 338, 339, -1, 341, -1, 343, 344, 345, -1, 347,
28696 : 348, 349, 350, 351, 352, 353, 354, 355, 356, 357,
28697 : 358, 359, 360, 361, -1, 363, 364, 365, 366, 367,
28698 : 368, 369, 370, 371, 372, 373, 374, 375, -1, 377,
28699 : 378, 379, 380, 381, 382, 383, 384, -1, 386, 387,
28700 : 388, 389, 390, 391, 392, 393, 394, 395, -1, 397,
28701 : 398, 399, 400, 401, -1, 403, 404, -1, 406, 407,
28702 : 408, 409, 410, 411, 412, -1, 414, 415, 416, 417,
28703 : 418, 419, 420, 421, 422, 423, 424, 425, 426, 427,
28704 : 428, -1, 430, -1, 432, 433, -1, -1, 436, 437,
28705 : 438, 439, 440, 441, 442, 443, -1, 445, 446, 447,
28706 : -1, -1, 450, 451, -1, 453, -1, -1, 456, 457,
28707 : 458, 459, 460, 461, 462, 463, 464, -1, -1, 467,
28708 : 468, 469, 470, 471, -1, -1, 474, 475, 476, 477,
28709 : 478, -1, 480, -1, 482, 483, 484, 485, 486, 487,
28710 : 488, -1, -1, 491, -1, -1, 494, 495, 496, 497,
28711 : 498, 499, 3, -1, -1, -1, -1, -1, -1, -1,
28712 : -1, -1, -1, 511, 512, 513, -1, -1, -1, 20,
28713 : 21, 22, 23, 24, 25, 26, 27, 28, -1, 30,
28714 : 31, 32, -1, -1, -1, -1, -1, -1, -1, 40,
28715 : 41, 42, -1, 44, 45, 46, 47, 48, 49, 50,
28716 : 51, -1, -1, 54, -1, -1, -1, 58, 59, 60,
28717 : 61, 62, 63, 64, -1, -1, 67, 68, -1, -1,
28718 : 71, -1, 73, 74, 75, 76, -1, -1, 79, -1,
28719 : 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
28720 : 91, -1, 93, 94, 95, 96, 97, 98, -1, 100,
28721 : 101, 102, 103, -1, -1, -1, 107, -1, -1, -1,
28722 : 111, 112, 113, 114, 115, 116, -1, -1, 119, -1,
28723 : 121, -1, 123, 124, 125, 126, 127, 128, 129, -1,
28724 : 131, 132, 133, 134, -1, -1, 137, 138, 139, 140,
28725 : 141, -1, 143, 144, 145, 146, -1, 148, 149, 150,
28726 : 151, 152, -1, 154, 155, 156, 157, -1, 159, 160,
28727 : 161, 162, -1, -1, 165, -1, 167, 168, 169, -1,
28728 : 171, -1, 173, -1, 175, 176, 177, -1, 179, 180,
28729 : 181, 182, 183, -1, 185, -1, -1, -1, 189, 190,
28730 : -1, 192, 193, 194, 195, 196, 197, 198, 199, 200,
28731 : 201, -1, 203, 204, 205, 206, 207, 208, 209, 210,
28732 : -1, 212, 213, -1, 215, 216, 217, 218, -1, -1,
28733 : -1, -1, -1, 224, 225, 226, 227, 228, -1, -1,
28734 : -1, -1, -1, -1, -1, -1, -1, -1, -1, 240,
28735 : 241, 242, 243, 244, 245, 246, -1, -1, 249, -1,
28736 : 251, 252, 253, -1, 255, 256, 257, -1, -1, 260,
28737 : 261, 262, 263, 264, 265, 266, 267, 268, 269, -1,
28738 : 271, 272, 273, 274, 275, 276, 277, 278, -1, 280,
28739 : -1, 282, 283, 284, 285, 286, 287, 288, 289, -1,
28740 : -1, 292, -1, 294, 295, 296, 297, -1, -1, 300,
28741 : -1, 302, 303, 304, 305, -1, 307, 308, 309, -1,
28742 : -1, 312, 313, 314, -1, -1, 317, 318, -1, 320,
28743 : 321, 322, -1, 324, 325, 326, 327, 328, 329, 330,
28744 : 331, 332, 333, 334, 335, -1, 337, 338, 339, -1,
28745 : 341, -1, 343, 344, 345, -1, 347, 348, 349, 350,
28746 : 351, 352, 353, 354, 355, 356, 357, -1, 359, 360,
28747 : 361, -1, 363, 364, 365, 366, 367, 368, 369, 370,
28748 : 371, 372, 373, 374, 375, -1, 377, 378, 379, 380,
28749 : 381, 382, 383, 384, -1, 386, 387, 388, 389, 390,
28750 : 391, 392, 393, 394, 395, -1, 397, 398, 399, 400,
28751 : 401, -1, 403, 404, -1, 406, 407, 408, 409, 410,
28752 : -1, 412, -1, 414, 415, 416, 417, 418, 419, 420,
28753 : 421, 422, 423, 424, 425, 426, 427, 428, -1, 430,
28754 : -1, 432, 433, -1, -1, 436, 437, 438, 439, 440,
28755 : 441, 442, 443, -1, 445, -1, -1, -1, -1, 450,
28756 : 451, -1, 453, -1, -1, 456, 457, 458, 459, 460,
28757 : 461, 462, 463, 464, -1, -1, 467, 468, 469, 470,
28758 : 471, -1, -1, 474, 475, 476, 477, 478, -1, -1,
28759 : -1, 482, 483, 484, 485, 486, 487, 488, -1, -1,
28760 : 491, -1, -1, 494, 495, 496, 497, 498, 499, -1,
28761 : -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
28762 : 511, 512, 513
28763 : };
28764 :
28765 : /* YYSTOS[STATE-NUM] -- The symbol kind of the accessing symbol of
28766 : state STATE-NUM. */
28767 : static const yytype_int16 yystos[] =
28768 : {
28769 : 0, 20, 31, 33, 34, 51, 61, 73, 75, 76,
28770 : 82, 84, 97, 99, 116, 119, 134, 136, 140, 147,
28771 : 157, 159, 166, 184, 201, 255, 256, 261, 276, 295,
28772 : 344, 359, 364, 365, 367, 372, 378, 381, 388, 395,
28773 : 396, 403, 407, 418, 435, 456, 468, 474, 479, 493,
28774 : 517, 519, 520, 521, 522, 523, 536, 543, 544, 545,
28775 : 546, 551, 552, 558, 559, 561, 562, 563, 564, 566,
28776 : 569, 581, 586, 587, 590, 591, 592, 612, 615, 616,
28777 : 631, 686, 689, 690, 693, 696, 697, 698, 706, 713,
28778 : 715, 716, 719, 722, 723, 727, 736, 740, 741, 742,
28779 : 745, 747, 748, 749, 750, 758, 760, 780, 784, 786,
28780 : 787, 797, 799, 805, 806, 809, 810, 811, 812, 813,
28781 : 822, 824, 826, 829, 833, 834, 844, 845, 850, 855,
28782 : 866, 898, 901, 902, 903, 908, 911, 913, 915, 917,
28783 : 918, 922, 923, 926, 928, 929, 933, 934, 935, 938,
28784 : 939, 940, 941, 942, 949, 951, 952, 953, 954, 960,
28785 : 962, 963, 969, 970, 971, 974, 975, 976, 977, 979,
28786 : 980, 982, 983, 985, 986, 988, 1000, 1002, 1005, 1007,
28787 : 1008, 1021, 1023, 1028, 1033, 1043, 1047, 1048, 1049, 1050,
28788 : 1051, 1052, 1058, 1094, 450, 496, 955, 28, 79, 96,
28789 : 114, 120, 138, 152, 161, 174, 180, 187, 207, 245,
28790 : 267, 312, 339, 349, 350, 353, 380, 383, 387, 390,
28791 : 397, 400, 420, 428, 433, 435, 438, 443, 453, 458,
28792 : 472, 485, 712, 955, 3, 20, 21, 22, 23, 24,
28793 : 25, 26, 27, 28, 30, 31, 32, 40, 41, 42,
28794 : 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
28795 : 54, 55, 56, 58, 59, 60, 61, 62, 63, 64,
28796 : 67, 68, 69, 70, 71, 73, 74, 75, 76, 77,
28797 : 79, 81, 82, 83, 84, 85, 86, 87, 88, 89,
28798 : 90, 91, 93, 94, 95, 96, 97, 98, 100, 101,
28799 : 102, 103, 107, 111, 112, 113, 114, 115, 116, 117,
28800 : 118, 119, 121, 123, 124, 125, 126, 127, 128, 129,
28801 : 131, 132, 133, 134, 137, 138, 139, 140, 141, 143,
28802 : 144, 145, 146, 148, 149, 150, 151, 152, 154, 155,
28803 : 156, 157, 158, 159, 160, 161, 162, 163, 165, 167,
28804 : 168, 169, 170, 171, 173, 175, 176, 177, 179, 180,
28805 : 181, 182, 183, 185, 186, 188, 189, 190, 192, 193,
28806 : 194, 195, 196, 197, 198, 199, 200, 201, 203, 204,
28807 : 205, 206, 207, 208, 209, 210, 212, 213, 214, 215,
28808 : 216, 217, 218, 219, 220, 222, 224, 225, 226, 227,
28809 : 228, 229, 230, 231, 232, 233, 234, 235, 236, 237,
28810 : 238, 239, 240, 241, 242, 243, 244, 245, 246, 249,
28811 : 250, 251, 252, 253, 255, 256, 257, 260, 261, 262,
28812 : 263, 264, 265, 266, 267, 268, 269, 270, 271, 272,
28813 : 273, 274, 275, 276, 277, 278, 279, 280, 281, 282,
28814 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
28815 : 294, 295, 296, 297, 299, 300, 301, 302, 303, 304,
28816 : 305, 307, 308, 309, 312, 313, 314, 317, 318, 319,
28817 : 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
28818 : 330, 331, 332, 333, 334, 335, 337, 338, 339, 340,
28819 : 341, 342, 343, 344, 345, 347, 348, 349, 350, 351,
28820 : 352, 353, 354, 355, 356, 357, 358, 359, 360, 361,
28821 : 363, 364, 365, 366, 367, 368, 369, 370, 371, 372,
28822 : 373, 374, 375, 377, 378, 379, 380, 381, 382, 383,
28823 : 384, 385, 386, 387, 388, 389, 390, 391, 392, 393,
28824 : 394, 395, 397, 398, 399, 400, 401, 403, 404, 405,
28825 : 406, 407, 408, 409, 410, 411, 412, 414, 415, 416,
28826 : 417, 418, 419, 420, 421, 422, 423, 424, 425, 426,
28827 : 427, 428, 429, 430, 432, 433, 436, 437, 438, 439,
28828 : 440, 441, 442, 443, 445, 446, 447, 450, 451, 452,
28829 : 453, 454, 456, 457, 458, 459, 460, 461, 462, 463,
28830 : 464, 467, 468, 469, 470, 471, 474, 475, 476, 477,
28831 : 478, 479, 480, 482, 483, 484, 485, 486, 487, 488,
28832 : 491, 494, 495, 496, 497, 498, 499, 500, 501, 502,
28833 : 503, 504, 505, 506, 507, 508, 509, 510, 511, 512,
28834 : 513, 1162, 1255, 1267, 1268, 1272, 1273, 1274, 3, 29,
28835 : 1044, 1252, 1267, 1272, 483, 536, 993, 310, 345, 955,
28836 : 54, 536, 623, 23, 41, 66, 79, 114, 120, 138,
28837 : 152, 161, 174, 183, 187, 257, 312, 315, 339, 353,
28838 : 380, 390, 400, 420, 428, 438, 440, 442, 443, 458,
28839 : 466, 469, 472, 632, 695, 802, 856, 867, 29, 344,
28840 : 1252, 1044, 29, 338, 398, 440, 442, 6, 244, 909,
28841 : 910, 1258, 23, 28, 66, 79, 96, 114, 138, 152,
28842 : 161, 174, 180, 187, 207, 267, 312, 325, 339, 350,
28843 : 353, 380, 383, 387, 390, 397, 400, 420, 428, 435,
28844 : 438, 443, 451, 453, 458, 472, 485, 712, 814, 816,
28845 : 817, 955, 1252, 99, 483, 536, 690, 693, 696, 988,
28846 : 1001, 1005, 1008, 1021, 1028, 1033, 1043, 1047, 11, 22,
28847 : 29, 49, 169, 176, 178, 202, 246, 284, 347, 366,
28848 : 527, 528, 830, 831, 1044, 1257, 1259, 29, 31, 99,
28849 : 362, 396, 835, 836, 837, 1267, 174, 1267, 1254, 1258,
28850 : 435, 1061, 830, 1267, 450, 1252, 325, 267, 536, 921,
28851 : 388, 1267, 29, 401, 446, 450, 573, 582, 583, 1267,
28852 : 184, 835, 836, 1267, 345, 955, 1267, 243, 29, 135,
28853 : 1063, 1064, 67, 93, 257, 278, 380, 390, 401, 446,
28854 : 450, 499, 570, 571, 572, 573, 29, 401, 446, 450,
28855 : 573, 450, 311, 1106, 1107, 1250, 1267, 1061, 529, 1267,
28856 : 179, 536, 994, 536, 360, 1053, 1054, 1252, 1053, 3,
28857 : 53, 55, 56, 69, 70, 117, 118, 139, 170, 219,
28858 : 220, 222, 229, 279, 281, 301, 358, 405, 411, 446,
28859 : 447, 480, 1135, 1137, 1139, 1141, 1143, 1145, 1146, 1147,
28860 : 1149, 1150, 1151, 1153, 1154, 1158, 1268, 1272, 1063, 1064,
28861 : 1065, 1263, 12, 1264, 1265, 1267, 1264, 1264, 1048, 1049,
28862 : 1052, 0, 539, 536, 993, 153, 221, 316, 465, 1066,
28863 : 1067, 1048, 1050, 1051, 125, 217, 269, 471, 540, 35,
28864 : 959, 883, 1255, 819, 1267, 819, 1252, 348, 819, 453,
28865 : 1252, 113, 435, 871, 1255, 1267, 1274, 3, 106, 110,
28866 : 402, 1260, 1261, 1269, 1272, 1273, 1274, 29, 196, 1250,
28867 : 302, 485, 10, 17, 18, 19, 74, 165, 524, 525,
28868 : 526, 527, 528, 529, 530, 531, 532, 905, 907, 1193,
28869 : 1194, 1267, 196, 1252, 871, 1252, 29, 1260, 1261, 871,
28870 : 1252, 1252, 196, 1250, 1252, 196, 819, 1252, 372, 403,
28871 : 29, 196, 1106, 1252, 393, 1252, 819, 29, 264, 1260,
28872 : 1261, 196, 1250, 244, 122, 227, 293, 357, 956, 957,
28873 : 958, 536, 534, 538, 1219, 1221, 514, 987, 988, 989,
28874 : 990, 1269, 1250, 1252, 1267, 28, 66, 80, 92, 114,
28875 : 138, 180, 207, 245, 312, 350, 380, 383, 428, 438,
28876 : 451, 458, 814, 815, 816, 817, 1258, 959, 1004, 1008,
28877 : 1021, 1028, 1033, 1047, 1250, 271, 819, 536, 196, 819,
28878 : 1252, 819, 453, 196, 1252, 113, 435, 440, 442, 1260,
28879 : 1261, 440, 442, 74, 165, 905, 370, 1252, 1252, 1260,
28880 : 196, 547, 1267, 196, 1252, 196, 548, 819, 1252, 1252,
28881 : 393, 819, 264, 1260, 360, 397, 435, 485, 267, 96,
28882 : 207, 28, 92, 180, 350, 387, 451, 453, 457, 707,
28883 : 29, 1252, 1045, 580, 1258, 1269, 910, 271, 196, 883,
28884 : 884, 196, 914, 196, 1252, 196, 821, 1135, 453, 113,
28885 : 435, 196, 870, 871, 196, 1261, 1262, 87, 485, 74,
28886 : 165, 196, 906, 907, 59, 196, 870, 196, 1262, 196,
28887 : 870, 196, 1252, 196, 1252, 393, 914, 196, 821, 196,
28888 : 264, 1262, 244, 196, 818, 819, 196, 1251, 1252, 196,
28889 : 1252, 959, 536, 1006, 632, 1001, 479, 987, 993, 1259,
28890 : 831, 832, 29, 832, 1259, 832, 29, 832, 1259, 832,
28891 : 832, 832, 1259, 1257, 1257, 1044, 832, 348, 536, 433,
28892 : 536, 661, 661, 661, 310, 448, 540, 661, 390, 1106,
28893 : 1108, 540, 950, 1258, 536, 1003, 59, 485, 987, 114,
28894 : 207, 390, 433, 435, 919, 920, 1267, 48, 513, 227,
28895 : 538, 313, 310, 178, 313, 1258, 448, 959, 172, 827,
28896 : 310, 5, 8, 9, 10, 12, 37, 53, 55, 56,
28897 : 65, 66, 69, 70, 77, 79, 104, 105, 106, 107,
28898 : 108, 109, 110, 117, 118, 120, 158, 163, 164, 170,
28899 : 186, 188, 219, 220, 222, 229, 230, 231, 232, 233,
28900 : 234, 235, 236, 237, 239, 250, 258, 259, 270, 279,
28901 : 281, 291, 293, 298, 299, 301, 312, 323, 340, 358,
28902 : 385, 402, 411, 429, 434, 446, 447, 452, 454, 455,
28903 : 466, 472, 480, 501, 502, 503, 504, 506, 507, 508,
28904 : 509, 515, 527, 528, 529, 536, 1048, 1138, 1141, 1144,
28905 : 1145, 1146, 1148, 1149, 1150, 1153, 1154, 1158, 1159, 1161,
28906 : 1162, 1163, 1165, 1189, 1190, 1191, 1195, 1213, 1218, 1244,
28907 : 1247, 1248, 1255, 1256, 1257, 1258, 1267, 1246, 1247, 1258,
28908 : 29, 588, 1249, 1250, 401, 570, 120, 579, 1258, 580,
28909 : 1258, 48, 71, 570, 513, 412, 957, 313, 178, 448,
28910 : 526, 48, 513, 227, 958, 536, 1250, 529, 1221, 1108,
28911 : 987, 177, 995, 1159, 1198, 1053, 540, 536, 996, 482,
28912 : 1152, 1152, 1152, 536, 1140, 1140, 342, 536, 1142, 69,
28913 : 70, 1152, 1140, 1137, 517, 518, 536, 1155, 536, 1155,
28914 : 37, 1136, 536, 115, 194, 272, 275, 394, 511, 536,
28915 : 1156, 1157, 538, 820, 1140, 1246, 1222, 537, 537, 545,
28916 : 987, 997, 998, 999, 1106, 29, 135, 1062, 1062, 59,
28917 : 1062, 166, 172, 254, 306, 1070, 1072, 1073, 1088, 1090,
28918 : 1091, 1092, 1066, 1067, 178, 223, 223, 1106, 1109, 536,
28919 : 68, 289, 326, 368, 403, 536, 881, 326, 364, 368,
28920 : 403, 820, 326, 368, 403, 3, 91, 145, 260, 326,
28921 : 364, 368, 403, 438, 441, 493, 581, 584, 964, 965,
28922 : 966, 967, 851, 25, 140, 326, 368, 403, 476, 597,
28923 : 1252, 25, 140, 403, 471, 565, 497, 196, 1106, 62,
28924 : 98, 162, 199, 249, 289, 293, 326, 327, 368, 377,
28925 : 386, 395, 403, 416, 425, 430, 488, 581, 585, 887,
28926 : 899, 927, 536, 868, 1221, 368, 565, 202, 158, 25,
28927 : 31, 46, 76, 133, 140, 144, 173, 209, 289, 293,
28928 : 304, 314, 326, 368, 371, 372, 403, 476, 593, 595,
28929 : 596, 730, 927, 5, 527, 528, 704, 1259, 29, 196,
28930 : 1250, 819, 819, 536, 904, 326, 403, 538, 158, 310,
28931 : 326, 368, 403, 899, 927, 25, 140, 326, 368, 403,
28932 : 202, 560, 368, 493, 517, 553, 560, 326, 368, 403,
28933 : 899, 927, 310, 326, 368, 158, 38, 60, 112, 205,
28934 : 263, 268, 273, 289, 325, 368, 373, 397, 403, 418,
28935 : 469, 593, 701, 702, 326, 368, 484, 730, 738, 158,
28936 : 326, 368, 403, 25, 91, 133, 140, 144, 326, 364,
28937 : 368, 403, 410, 583, 571, 573, 202, 158, 46, 131,
28938 : 289, 368, 403, 593, 594, 326, 368, 372, 403, 89,
28939 : 132, 329, 441, 310, 25, 31, 140, 326, 368, 403,
28940 : 613, 614, 560, 172, 368, 553, 560, 158, 368, 403,
28941 : 593, 1252, 252, 122, 311, 498, 540, 956, 29, 135,
28942 : 481, 529, 537, 876, 1159, 1199, 1200, 1268, 1159, 1220,
28943 : 3, 29, 33, 34, 35, 36, 37, 38, 39, 43,
28944 : 57, 65, 66, 72, 78, 80, 92, 99, 104, 105,
28945 : 106, 108, 109, 110, 120, 122, 130, 135, 136, 142,
28946 : 147, 153, 164, 166, 172, 174, 178, 184, 187, 191,
28947 : 202, 211, 221, 223, 247, 248, 254, 258, 259, 293,
28948 : 298, 306, 310, 311, 315, 316, 336, 346, 362, 376,
28949 : 396, 402, 413, 431, 434, 435, 444, 448, 449, 455,
28950 : 465, 466, 472, 473, 481, 489, 490, 492, 493, 529,
28951 : 1253, 1270, 1272, 1273, 1274, 1275, 1219, 537, 540, 164,
28952 : 310, 455, 577, 580, 704, 991, 473, 984, 310, 883,
28953 : 536, 819, 1252, 1135, 871, 302, 74, 165, 907, 871,
28954 : 871, 172, 1135, 819, 1252, 1252, 537, 661, 1252, 72,
28955 : 1135, 293, 178, 536, 788, 553, 38, 978, 1252, 293,
28956 : 553, 497, 196, 1250, 553, 819, 819, 788, 469, 632,
28957 : 310, 172, 493, 895, 553, 293, 48, 567, 293, 458,
28958 : 737, 293, 996, 91, 326, 714, 89, 132, 329, 441,
28959 : 38, 788, 172, 196, 553, 485, 196, 1250, 196, 691,
28960 : 1250, 1250, 485, 819, 87, 549, 1255, 453, 1255, 1255,
28961 : 1252, 172, 1252, 712, 40, 54, 111, 216, 289, 392,
28962 : 158, 63, 374, 540, 550, 158, 536, 158, 553, 158,
28963 : 540, 550, 497, 158, 540, 550, 158, 540, 196, 818,
28964 : 196, 819, 196, 819, 158, 540, 550, 1262, 158, 550,
28965 : 158, 158, 550, 158, 550, 158, 89, 132, 329, 441,
28966 : 172, 158, 550, 158, 172, 196, 158, 540, 550, 158,
28967 : 540, 550, 158, 310, 1198, 435, 537, 1001, 832, 1044,
28968 : 832, 1044, 832, 1044, 832, 1044, 832, 1044, 1044, 1044,
28969 : 832, 1044, 536, 662, 665, 1267, 662, 29, 114, 138,
28970 : 174, 180, 244, 245, 328, 350, 383, 390, 397, 435,
28971 : 438, 458, 840, 1249, 1262, 837, 1252, 202, 540, 1024,
28972 : 1258, 1135, 1202, 38, 1262, 549, 537, 549, 549, 549,
28973 : 252, 1267, 172, 840, 1262, 172, 388, 1267, 580, 310,
28974 : 536, 1222, 534, 1048, 1203, 1159, 1217, 536, 536, 172,
28975 : 536, 536, 1048, 536, 536, 536, 536, 536, 536, 536,
28976 : 536, 536, 536, 536, 536, 536, 536, 536, 536, 536,
28977 : 536, 1159, 536, 536, 536, 536, 536, 536, 536, 536,
28978 : 300, 648, 536, 536, 536, 536, 536, 536, 536, 536,
28979 : 1159, 1159, 1159, 1048, 1159, 1198, 1221, 1258, 536, 1258,
28980 : 3, 10, 13, 17, 18, 19, 20, 21, 22, 23,
28981 : 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
28982 : 34, 35, 36, 38, 39, 40, 41, 42, 43, 44,
28983 : 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
28984 : 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
28985 : 65, 66, 67, 68, 71, 72, 73, 74, 75, 76,
28986 : 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
28987 : 87, 88, 89, 90, 91, 92, 93, 94, 95, 96,
28988 : 97, 98, 100, 101, 102, 103, 104, 105, 106, 107,
28989 : 108, 109, 110, 111, 112, 113, 114, 116, 117, 118,
28990 : 119, 120, 121, 122, 123, 124, 125, 126, 127, 128,
28991 : 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
28992 : 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
28993 : 149, 150, 151, 152, 154, 155, 156, 157, 158, 159,
28994 : 160, 161, 162, 163, 164, 165, 168, 169, 170, 171,
28995 : 173, 174, 175, 176, 177, 179, 180, 181, 182, 183,
28996 : 185, 186, 188, 189, 190, 192, 193, 195, 196, 197,
28997 : 198, 199, 200, 201, 202, 203, 204, 205, 206, 207,
28998 : 208, 209, 210, 211, 212, 213, 214, 215, 216, 217,
28999 : 218, 219, 220, 222, 224, 225, 226, 227, 228, 229,
29000 : 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
29001 : 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
29002 : 250, 251, 252, 253, 255, 256, 257, 258, 259, 260,
29003 : 261, 262, 263, 264, 265, 266, 267, 268, 269, 270,
29004 : 271, 273, 274, 276, 277, 278, 279, 280, 281, 282,
29005 : 283, 284, 285, 286, 287, 288, 289, 290, 291, 292,
29006 : 293, 294, 295, 296, 297, 298, 299, 300, 301, 302,
29007 : 303, 304, 305, 307, 308, 309, 311, 312, 313, 314,
29008 : 315, 317, 318, 319, 320, 323, 324, 325, 326, 327,
29009 : 328, 329, 330, 331, 332, 333, 334, 335, 336, 337,
29010 : 338, 339, 340, 341, 343, 344, 345, 346, 347, 348,
29011 : 349, 350, 351, 352, 353, 354, 355, 356, 357, 358,
29012 : 359, 360, 361, 362, 363, 364, 365, 366, 367, 368,
29013 : 369, 370, 371, 372, 373, 374, 375, 377, 378, 379,
29014 : 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
29015 : 390, 391, 392, 393, 395, 396, 397, 398, 399, 400,
29016 : 401, 402, 403, 404, 405, 406, 407, 408, 409, 410,
29017 : 411, 412, 413, 414, 415, 416, 417, 418, 419, 420,
29018 : 421, 422, 423, 424, 425, 426, 427, 428, 429, 430,
29019 : 431, 432, 433, 434, 435, 436, 437, 438, 439, 440,
29020 : 441, 442, 443, 444, 445, 446, 447, 449, 450, 451,
29021 : 452, 453, 454, 455, 456, 457, 458, 459, 460, 461,
29022 : 462, 463, 464, 466, 467, 468, 469, 470, 471, 472,
29023 : 473, 474, 475, 476, 477, 478, 479, 480, 481, 483,
29024 : 484, 485, 486, 487, 488, 489, 491, 496, 497, 498,
29025 : 499, 500, 501, 502, 503, 504, 505, 506, 507, 508,
29026 : 509, 510, 512, 513, 515, 524, 525, 526, 527, 528,
29027 : 529, 530, 531, 532, 1193, 1195, 1197, 1271, 1276, 494,
29028 : 1176, 322, 1159, 167, 1177, 223, 540, 1059, 536, 1258,
29029 : 1221, 1059, 123, 198, 589, 540, 71, 120, 580, 38,
29030 : 3, 120, 257, 578, 704, 1154, 1258, 1258, 94, 137,
29031 : 1171, 103, 120, 574, 575, 577, 704, 120, 574, 252,
29032 : 1250, 95, 373, 823, 537, 993, 35, 45, 52, 78,
29033 : 197, 202, 225, 253, 312, 315, 408, 537, 540, 1054,
29034 : 1251, 38, 536, 1198, 1257, 1152, 1152, 37, 1136, 446,
29035 : 446, 1257, 1257, 534, 534, 1257, 448, 448, 448, 536,
29036 : 448, 1257, 1253, 538, 1140, 178, 1095, 15, 526, 1219,
29037 : 1266, 537, 540, 996, 1050, 1050, 1068, 1069, 1159, 1050,
29038 : 169, 284, 1079, 241, 289, 357, 406, 471, 29, 1074,
29039 : 1159, 527, 528, 1075, 1076, 1159, 1161, 1088, 1089, 1073,
29040 : 1072, 1070, 1071, 172, 1091, 304, 1093, 1070, 1088, 1109,
29041 : 1009, 1250, 1109, 38, 1267, 403, 1198, 68, 448, 448,
29042 : 390, 202, 214, 316, 319, 405, 481, 529, 874, 875,
29043 : 876, 878, 880, 882, 1135, 1268, 448, 484, 448, 390,
29044 : 448, 448, 390, 254, 448, 79, 448, 438, 570, 326,
29045 : 964, 966, 526, 968, 172, 184, 202, 378, 852, 853,
29046 : 72, 92, 293, 657, 658, 92, 120, 293, 448, 92,
29047 : 448, 120, 293, 390, 92, 133, 144, 326, 368, 785,
29048 : 390, 720, 28, 66, 138, 180, 312, 350, 383, 451,
29049 : 458, 814, 815, 1252, 158, 368, 403, 593, 310, 704,
29050 : 395, 249, 448, 1267, 448, 298, 704, 124, 224, 390,
29051 : 401, 450, 572, 819, 374, 403, 887, 900, 128, 537,
29052 : 869, 874, 448, 472, 438, 1250, 72, 80, 92, 154,
29053 : 174, 196, 293, 346, 466, 639, 655, 656, 1267, 80,
29054 : 92, 924, 331, 310, 385, 387, 453, 92, 924, 32,
29055 : 371, 385, 387, 453, 385, 1250, 173, 209, 304, 819,
29056 : 536, 448, 448, 195, 536, 601, 23, 263, 438, 469,
29057 : 495, 601, 92, 540, 128, 5, 5, 326, 202, 158,
29058 : 368, 403, 593, 927, 473, 473, 290, 1135, 448, 390,
29059 : 536, 905, 1252, 1250, 448, 448, 390, 900, 128, 107,
29060 : 435, 436, 936, 937, 1107, 1250, 1267, 937, 448, 448,
29061 : 788, 937, 114, 403, 584, 448, 555, 584, 448, 448,
29062 : 390, 900, 128, 1250, 448, 448, 1250, 1137, 704, 59,
29063 : 703, 704, 704, 112, 268, 273, 59, 448, 553, 277,
29064 : 390, 553, 289, 702, 448, 448, 298, 1258, 730, 819,
29065 : 448, 448, 390, 420, 353, 1258, 353, 448, 353, 448,
29066 : 353, 788, 788, 438, 1106, 331, 331, 92, 448, 924,
29067 : 390, 448, 448, 601, 601, 819, 819, 819, 819, 1250,
29068 : 47, 478, 47, 47, 478, 448, 47, 448, 478, 390,
29069 : 536, 540, 584, 472, 746, 1261, 448, 555, 584, 1250,
29070 : 448, 924, 390, 326, 368, 357, 369, 399, 576, 956,
29071 : 1199, 1199, 1200, 537, 15, 16, 540, 1066, 1067, 535,
29072 : 541, 1250, 989, 1252, 1250, 225, 1135, 225, 310, 225,
29073 : 225, 704, 819, 819, 225, 225, 225, 1135, 225, 225,
29074 : 225, 310, 448, 178, 448, 617, 458, 536, 38, 158,
29075 : 819, 789, 790, 1270, 964, 1135, 310, 158, 717, 1252,
29076 : 293, 331, 536, 554, 802, 473, 360, 485, 1250, 29,
29077 : 937, 788, 554, 158, 1261, 99, 184, 568, 631, 697,
29078 : 760, 833, 855, 960, 158, 1258, 738, 739, 158, 310,
29079 : 1258, 1261, 260, 819, 819, 819, 819, 149, 356, 536,
29080 : 746, 293, 554, 1250, 293, 699, 701, 293, 38, 304,
29081 : 331, 536, 661, 661, 196, 694, 1250, 172, 196, 547,
29082 : 1267, 536, 792, 881, 1252, 536, 872, 872, 38, 1135,
29083 : 27, 50, 218, 761, 244, 493, 495, 1046, 392, 884,
29084 : 883, 1135, 1252, 536, 821, 1135, 870, 871, 1262, 1261,
29085 : 158, 550, 158, 473, 158, 473, 906, 907, 550, 870,
29086 : 1262, 870, 1252, 1252, 1135, 821, 1262, 746, 158, 818,
29087 : 819, 1251, 1252, 1252, 819, 537, 196, 1250, 1001, 1044,
29088 : 1044, 1044, 1044, 1044, 1044, 662, 537, 540, 537, 181,
29089 : 351, 384, 398, 436, 1251, 818, 113, 400, 870, 1251,
29090 : 302, 838, 839, 1267, 870, 870, 1251, 1249, 1249, 1251,
29091 : 818, 448, 185, 493, 849, 153, 254, 743, 744, 23,
29092 : 156, 385, 406, 1025, 1106, 297, 1026, 537, 540, 1004,
29093 : 448, 1250, 1252, 1250, 547, 835, 836, 178, 849, 836,
29094 : 1267, 28, 80, 138, 180, 245, 350, 383, 458, 814,
29095 : 815, 1198, 535, 1198, 1203, 1204, 489, 1214, 1215, 1159,
29096 : 1198, 536, 1257, 1257, 3, 115, 194, 272, 275, 394,
29097 : 511, 1205, 1206, 1258, 1198, 1198, 1159, 1232, 376, 1048,
29098 : 1049, 1232, 1236, 1243, 1232, 1232, 1159, 1161, 1199, 1236,
29099 : 1239, 1240, 1159, 1240, 1232, 1159, 1232, 1232, 1198, 1257,
29100 : 1257, 537, 1159, 1159, 905, 1159, 1199, 1201, 1208, 385,
29101 : 527, 528, 536, 1160, 1161, 1195, 1209, 537, 1198, 1159,
29102 : 1201, 1210, 1159, 57, 178, 248, 449, 1159, 1198, 1211,
29103 : 135, 293, 1048, 1198, 277, 1161, 1159, 1169, 1170, 1171,
29104 : 277, 1159, 1171, 537, 540, 1257, 1156, 1135, 1159, 1159,
29105 : 1159, 1159, 1270, 257, 446, 43, 431, 1223, 819, 1159,
29106 : 536, 1048, 1212, 135, 137, 164, 229, 285, 286, 287,
29107 : 288, 292, 293, 298, 455, 467, 1207, 1237, 1159, 536,
29108 : 1159, 448, 52, 197, 202, 253, 408, 1159, 1159, 1159,
29109 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 29, 36, 413,
29110 : 1192, 187, 1177, 385, 536, 1189, 536, 321, 1181, 183,
29111 : 257, 435, 440, 442, 469, 1060, 1250, 1248, 1095, 1199,
29112 : 1095, 1250, 450, 536, 1258, 540, 537, 195, 195, 550,
29113 : 999, 988, 992, 1159, 537, 267, 293, 1055, 1198, 537,
29114 : 537, 534, 513, 513, 537, 537, 1257, 535, 1257, 537,
29115 : 194, 272, 1157, 272, 1157, 1157, 1257, 275, 537, 1253,
29116 : 229, 238, 247, 386, 510, 536, 1048, 1096, 1097, 1098,
29117 : 1106, 1112, 1122, 1129, 1162, 1164, 1165, 1244, 1267, 490,
29118 : 1117, 1263, 999, 997, 540, 39, 130, 473, 864, 385,
29119 : 386, 527, 528, 1076, 1078, 1161, 406, 241, 311, 540,
29120 : 5, 1077, 1257, 1077, 385, 386, 1078, 1249, 297, 410,
29121 : 1027, 1089, 1071, 473, 1022, 120, 324, 536, 1010, 1047,
29122 : 38, 473, 1267, 536, 1029, 1030, 1031, 1267, 537, 1261,
29123 : 1252, 1252, 319, 59, 1268, 537, 876, 878, 875, 878,
29124 : 1268, 316, 537, 540, 820, 1261, 1252, 1252, 1261, 1252,
29125 : 1252, 1261, 484, 1252, 1252, 120, 577, 704, 380, 472,
29126 : 835, 390, 184, 835, 536, 1252, 298, 196, 1252, 298,
29127 : 1261, 1252, 1252, 1159, 298, 1252, 1252, 32, 371, 448,
29128 : 448, 1252, 448, 721, 883, 536, 1135, 871, 74, 165,
29129 : 907, 871, 871, 172, 1135, 819, 1252, 190, 289, 326,
29130 : 368, 477, 724, 725, 726, 1106, 448, 924, 390, 298,
29131 : 124, 224, 1261, 1252, 310, 1252, 310, 537, 540, 1260,
29132 : 1262, 1252, 368, 593, 536, 196, 639, 1252, 473, 857,
29133 : 241, 293, 298, 241, 473, 648, 685, 1135, 1252, 1257,
29134 : 1267, 1250, 1252, 252, 1252, 29, 472, 1252, 196, 1252,
29135 : 196, 1267, 387, 453, 387, 453, 252, 1252, 29, 472,
29136 : 1252, 252, 385, 1250, 25, 140, 403, 731, 732, 733,
29137 : 734, 1270, 1261, 1252, 120, 179, 294, 473, 600, 603,
29138 : 604, 1270, 271, 1252, 76, 307, 1252, 596, 310, 448,
29139 : 438, 1250, 448, 924, 390, 128, 1252, 1252, 540, 537,
29140 : 540, 1261, 1252, 930, 931, 1270, 310, 368, 448, 754,
29141 : 1261, 1252, 1252, 310, 1106, 202, 540, 661, 661, 1221,
29142 : 1261, 1252, 1252, 1260, 3, 91, 146, 209, 333, 464,
29143 : 472, 475, 556, 1261, 1252, 1252, 310, 368, 1261, 1252,
29144 : 368, 403, 593, 701, 704, 819, 1252, 704, 819, 1252,
29145 : 704, 1261, 1252, 403, 1261, 1252, 1252, 120, 607, 1259,
29146 : 1251, 1251, 1261, 895, 1252, 1251, 1252, 368, 403, 593,
29147 : 594, 1250, 1250, 1252, 1252, 1252, 1252, 1261, 1252, 25,
29148 : 31, 140, 326, 368, 403, 326, 368, 403, 788, 368,
29149 : 403, 368, 403, 368, 927, 1121, 1267, 196, 798, 1267,
29150 : 196, 1267, 1258, 1261, 1252, 1252, 1258, 1252, 930, 25,
29151 : 140, 614, 400, 1260, 368, 403, 593, 1252, 1252, 1252,
29152 : 448, 448, 85, 463, 357, 540, 1066, 1066, 1066, 1159,
29153 : 1159, 481, 1200, 537, 1159, 1220, 984, 298, 825, 1258,
29154 : 38, 825, 138, 819, 825, 825, 225, 473, 473, 825,
29155 : 825, 825, 244, 825, 825, 825, 819, 352, 618, 618,
29156 : 207, 435, 759, 1159, 1135, 819, 537, 540, 526, 645,
29157 : 1270, 1252, 63, 178, 390, 484, 718, 725, 726, 158,
29158 : 304, 253, 633, 635, 637, 639, 652, 655, 26, 202,
29159 : 380, 432, 556, 557, 172, 1252, 485, 1250, 38, 755,
29160 : 436, 895, 547, 1267, 567, 632, 867, 1252, 174, 819,
29161 : 536, 687, 688, 1164, 1267, 353, 1258, 788, 788, 788,
29162 : 788, 536, 788, 1119, 1120, 1121, 400, 158, 536, 158,
29163 : 158, 157, 1047, 819, 304, 633, 1267, 473, 680, 493,
29164 : 602, 293, 38, 661, 1258, 293, 310, 3, 793, 794,
29165 : 788, 27, 537, 873, 874, 879, 38, 244, 377, 451,
29166 : 492, 885, 886, 887, 888, 885, 310, 244, 304, 125,
29167 : 217, 456, 471, 762, 763, 1252, 193, 193, 172, 550,
29168 : 38, 553, 173, 972, 973, 550, 550, 818, 819, 1252,
29169 : 819, 1252, 550, 550, 550, 550, 244, 550, 400, 172,
29170 : 550, 550, 310, 550, 293, 537, 665, 202, 202, 202,
29171 : 202, 202, 497, 1251, 704, 705, 540, 538, 187, 841,
29172 : 842, 1261, 59, 846, 847, 1270, 448, 536, 178, 156,
29173 : 406, 156, 406, 385, 471, 274, 1135, 1261, 493, 692,
29174 : 310, 841, 550, 178, 883, 819, 1135, 871, 302, 871,
29175 : 871, 1135, 819, 1252, 537, 535, 535, 540, 1159, 142,
29176 : 1215, 1216, 38, 537, 1159, 537, 537, 537, 178, 537,
29177 : 537, 514, 1233, 1234, 493, 495, 1238, 1135, 1234, 537,
29178 : 21, 298, 540, 1242, 316, 1245, 540, 541, 478, 537,
29179 : 537, 21, 298, 540, 1241, 1241, 540, 537, 1236, 540,
29180 : 537, 537, 537, 537, 540, 540, 537, 336, 537, 537,
29181 : 536, 1160, 1160, 1198, 13, 17, 18, 19, 202, 225,
29182 : 312, 524, 525, 526, 527, 528, 529, 530, 531, 532,
29183 : 1195, 1160, 537, 537, 172, 178, 408, 537, 537, 38,
29184 : 1211, 1198, 1211, 1211, 178, 537, 135, 537, 1270, 332,
29185 : 1174, 38, 537, 540, 1159, 1270, 540, 1159, 1222, 1159,
29186 : 537, 513, 1160, 1160, 151, 1198, 178, 37, 302, 389,
29187 : 478, 135, 137, 164, 292, 298, 455, 467, 1207, 1237,
29188 : 292, 1238, 151, 905, 1159, 431, 1223, 1159, 1212, 1159,
29189 : 448, 536, 1048, 536, 1181, 536, 1198, 490, 536, 1182,
29190 : 1267, 440, 442, 440, 442, 1250, 1061, 1061, 1061, 1117,
29191 : 1066, 1117, 957, 1257, 1156, 575, 999, 267, 536, 537,
29192 : 1257, 1155, 1155, 535, 535, 537, 536, 1048, 1112, 1122,
29193 : 1129, 178, 536, 1048, 1097, 1098, 38, 1099, 1100, 1267,
29194 : 540, 100, 179, 213, 228, 251, 280, 379, 1103, 1100,
29195 : 38, 1099, 1102, 1267, 1100, 1100, 517, 1116, 1221, 1159,
29196 : 187, 1080, 1069, 312, 1193, 1196, 516, 865, 5, 1257,
29197 : 1078, 311, 493, 471, 1075, 262, 1096, 490, 1118, 479,
29198 : 433, 472, 1011, 1012, 1013, 1267, 310, 1014, 1267, 1097,
29199 : 1031, 1032, 540, 1095, 526, 1222, 882, 820, 878, 878,
29200 : 59, 880, 531, 1262, 1262, 310, 1251, 313, 310, 1159,
29201 : 658, 778, 158, 550, 448, 1261, 1252, 580, 1135, 819,
29202 : 819, 1135, 708, 1252, 190, 477, 448, 448, 708, 724,
29203 : 730, 368, 403, 593, 1252, 1252, 1252, 215, 298, 161,
29204 : 874, 325, 403, 448, 1159, 293, 154, 656, 1252, 536,
29205 : 536, 158, 1267, 536, 685, 207, 536, 778, 423, 643,
29206 : 644, 209, 778, 403, 25, 140, 372, 373, 403, 597,
29207 : 605, 606, 730, 925, 395, 158, 550, 158, 550, 1252,
29208 : 1252, 1252, 1252, 395, 395, 252, 733, 734, 733, 537,
29209 : 540, 735, 1258, 207, 537, 540, 526, 538, 120, 608,
29210 : 1267, 161, 1261, 1252, 368, 403, 593, 1252, 1252, 1252,
29211 : 310, 326, 368, 403, 25, 140, 326, 368, 403, 1135,
29212 : 290, 1135, 537, 540, 526, 1250, 448, 1262, 473, 751,
29213 : 161, 661, 390, 936, 490, 670, 670, 661, 254, 333,
29214 : 298, 1258, 333, 1262, 470, 161, 448, 448, 390, 420,
29215 : 895, 895, 895, 325, 403, 92, 448, 924, 390, 120,
29216 : 172, 609, 168, 549, 448, 448, 264, 264, 264, 448,
29217 : 448, 390, 448, 448, 390, 448, 390, 448, 390, 448,
29218 : 128, 550, 1135, 293, 1258, 403, 925, 158, 550, 448,
29219 : 448, 537, 1252, 448, 924, 390, 448, 1261, 1252, 537,
29220 : 537, 537, 1200, 535, 1135, 819, 225, 825, 1252, 1252,
29221 : 1252, 225, 421, 422, 619, 1258, 619, 190, 537, 537,
29222 : 178, 788, 790, 290, 312, 527, 528, 704, 791, 878,
29223 : 1196, 1258, 1275, 72, 78, 92, 120, 122, 148, 182,
29224 : 211, 293, 298, 346, 362, 466, 646, 647, 651, 157,
29225 : 489, 553, 580, 1252, 580, 314, 728, 1250, 1250, 1250,
29226 : 537, 540, 1262, 187, 380, 1262, 1257, 458, 1250, 661,
29227 : 3, 172, 756, 895, 48, 567, 435, 737, 113, 996,
29228 : 1159, 178, 540, 1251, 602, 795, 796, 1258, 537, 540,
29229 : 1252, 172, 662, 1250, 691, 1250, 1252, 692, 536, 634,
29230 : 1250, 537, 1252, 493, 495, 681, 601, 38, 158, 1047,
29231 : 680, 448, 158, 1106, 526, 537, 540, 762, 537, 540,
29232 : 120, 526, 889, 1258, 580, 435, 877, 878, 172, 894,
29233 : 51, 375, 890, 891, 888, 891, 125, 217, 396, 471,
29234 : 947, 1252, 304, 310, 315, 190, 1047, 1135, 536, 537,
29235 : 540, 550, 473, 550, 473, 550, 1252, 1252, 746, 819,
29236 : 158, 390, 390, 390, 390, 390, 1251, 540, 839, 1267,
29237 : 1261, 493, 540, 843, 1261, 540, 849, 164, 313, 455,
29238 : 848, 1108, 400, 156, 156, 113, 289, 840, 849, 1262,
29239 : 225, 225, 225, 225, 704, 225, 225, 225, 225, 225,
29240 : 1203, 444, 1159, 147, 1135, 537, 1159, 229, 466, 466,
29241 : 537, 1234, 1236, 310, 310, 1232, 1236, 59, 1242, 1159,
29242 : 1232, 1232, 310, 310, 1240, 1238, 1238, 1159, 537, 1159,
29243 : 1207, 1159, 1159, 537, 1198, 540, 1135, 1160, 1160, 1160,
29244 : 1160, 135, 137, 293, 1160, 1160, 1160, 1160, 1160, 1160,
29245 : 1160, 1160, 1160, 1160, 1159, 1159, 1159, 1135, 537, 537,
29246 : 537, 1198, 537, 540, 59, 1161, 1175, 537, 1270, 1170,
29247 : 343, 427, 1173, 537, 540, 484, 1166, 38, 537, 1258,
29248 : 1159, 35, 35, 1159, 537, 1159, 178, 292, 1238, 1159,
29249 : 537, 151, 1160, 1160, 151, 151, 1159, 1159, 1067, 537,
29250 : 1198, 540, 1159, 1183, 1267, 1061, 1061, 1061, 1061, 1250,
29251 : 1250, 1250, 1080, 537, 1080, 537, 1004, 535, 1232, 1100,
29252 : 1102, 1100, 1100, 536, 505, 1161, 537, 1267, 536, 1097,
29253 : 228, 320, 1104, 1097, 1104, 228, 1103, 1104, 228, 437,
29254 : 1110, 536, 1267, 536, 317, 59, 191, 1087, 536, 865,
29255 : 169, 246, 311, 493, 445, 103, 1159, 376, 1016, 478,
29256 : 537, 540, 1222, 90, 1016, 310, 537, 540, 1030, 1118,
29257 : 1159, 537, 531, 882, 458, 181, 245, 384, 391, 398,
29258 : 436, 459, 854, 172, 854, 537, 122, 148, 211, 289,
29259 : 293, 779, 1252, 1252, 38, 473, 473, 244, 820, 1261,
29260 : 1252, 448, 924, 390, 448, 215, 1252, 59, 438, 1252,
29261 : 537, 158, 536, 668, 669, 860, 1164, 1267, 662, 639,
29262 : 778, 662, 778, 1252, 662, 120, 1267, 86, 641, 642,
29263 : 420, 182, 160, 195, 293, 601, 553, 113, 160, 182,
29264 : 293, 420, 601, 641, 643, 702, 403, 606, 458, 1252,
29265 : 1267, 395, 732, 1252, 604, 791, 1270, 1252, 325, 403,
29266 : 448, 924, 390, 448, 161, 448, 448, 390, 180, 312,
29267 : 423, 800, 801, 180, 312, 807, 808, 448, 448, 390,
29268 : 537, 537, 537, 931, 290, 704, 878, 932, 1196, 1258,
29269 : 1275, 368, 1252, 536, 493, 752, 1252, 670, 107, 1267,
29270 : 536, 670, 1259, 1258, 1258, 1258, 1252, 1252, 1252, 1252,
29271 : 607, 59, 438, 1252, 1252, 1252, 1252, 479, 1252, 1252,
29272 : 172, 172, 370, 172, 196, 1261, 1252, 1252, 1261, 1252,
29273 : 1252, 1252, 1252, 1252, 1252, 1252, 310, 78, 598, 158,
29274 : 27, 50, 458, 1267, 1252, 1258, 730, 1252, 1252, 1252,
29275 : 1252, 1066, 537, 225, 825, 225, 225, 225, 825, 553,
29276 : 473, 624, 625, 708, 778, 493, 495, 819, 536, 819,
29277 : 1252, 1160, 32, 59, 649, 123, 198, 122, 148, 298,
29278 : 241, 1250, 648, 180, 350, 774, 781, 782, 1267, 717,
29279 : 536, 331, 536, 634, 653, 210, 675, 637, 1262, 1262,
29280 : 1135, 536, 602, 29, 125, 217, 396, 471, 757, 448,
29281 : 753, 1261, 196, 1250, 739, 497, 310, 537, 1096, 688,
29282 : 895, 537, 540, 1121, 728, 746, 537, 699, 38, 304,
29283 : 331, 536, 1006, 636, 638, 640, 655, 1267, 331, 676,
29284 : 677, 634, 675, 601, 307, 310, 682, 1047, 694, 692,
29285 : 602, 1258, 1252, 857, 791, 3, 794, 310, 879, 1159,
29286 : 1159, 540, 536, 885, 458, 540, 44, 1159, 448, 536,
29287 : 662, 1250, 763, 708, 537, 972, 973, 1252, 1252, 550,
29288 : 400, 550, 1251, 1251, 1251, 1251, 1251, 704, 184, 842,
29289 : 849, 847, 537, 1252, 113, 178, 550, 849, 298, 828,
29290 : 1258, 828, 828, 828, 225, 828, 828, 828, 828, 828,
29291 : 1159, 537, 145, 242, 242, 537, 298, 298, 537, 1068,
29292 : 1236, 332, 1224, 298, 298, 1236, 1236, 1224, 1224, 537,
29293 : 537, 178, 537, 1159, 178, 135, 137, 178, 172, 151,
29294 : 537, 500, 1168, 1198, 361, 478, 59, 1175, 1161, 491,
29295 : 491, 537, 1159, 289, 1159, 540, 1167, 1137, 1159, 1159,
29296 : 1159, 1159, 35, 35, 1159, 1159, 151, 537, 537, 537,
29297 : 1159, 537, 331, 1184, 1250, 1250, 1250, 1250, 1087, 1258,
29298 : 1087, 1258, 537, 540, 1113, 1114, 1164, 536, 1174, 1099,
29299 : 536, 1251, 1097, 310, 473, 1105, 1097, 228, 1097, 1255,
29300 : 1120, 536, 1120, 1267, 1062, 1159, 492, 1178, 905, 445,
29301 : 304, 493, 1017, 1047, 324, 1047, 1013, 310, 536, 1015,
29302 : 1159, 526, 1031, 1016, 458, 537, 303, 448, 835, 178,
29303 : 778, 123, 198, 209, 122, 148, 475, 550, 1135, 1252,
29304 : 1252, 1252, 1252, 1252, 1252, 1252, 1262, 1252, 778, 639,
29305 : 1159, 537, 540, 493, 78, 859, 863, 859, 540, 663,
29306 : 495, 660, 660, 120, 1267, 728, 607, 649, 196, 196,
29307 : 298, 704, 38, 649, 298, 607, 1135, 550, 550, 526,
29308 : 59, 438, 1252, 1252, 1252, 1252, 1252, 1261, 1252, 1252,
29309 : 1257, 1257, 1135, 540, 1257, 1257, 540, 1261, 1252, 1252,
29310 : 448, 1159, 72, 1159, 1262, 1252, 448, 448, 178, 202,
29311 : 493, 1251, 1251, 819, 1251, 158, 161, 819, 1258, 1258,
29312 : 1135, 550, 550, 448, 537, 225, 825, 825, 825, 825,
29313 : 536, 620, 621, 553, 127, 180, 214, 180, 1159, 293,
29314 : 647, 120, 38, 289, 659, 895, 661, 895, 1255, 35,
29315 : 157, 202, 729, 733, 304, 633, 609, 155, 204, 536,
29316 : 400, 473, 662, 38, 1262, 751, 567, 293, 536, 174,
29317 : 1252, 687, 1258, 400, 602, 157, 1047, 819, 304, 633,
29318 : 692, 537, 540, 493, 645, 59, 680, 609, 676, 84,
29319 : 438, 683, 493, 961, 38, 683, 178, 310, 536, 1250,
29320 : 1258, 876, 896, 897, 1268, 891, 1135, 172, 892, 1250,
29321 : 178, 448, 916, 363, 764, 212, 709, 550, 537, 550,
29322 : 550, 1252, 313, 223, 841, 550, 828, 1252, 537, 1225,
29323 : 1226, 1232, 120, 143, 150, 164, 298, 455, 467, 1228,
29324 : 1229, 1231, 537, 537, 1236, 1236, 1159, 537, 1160, 178,
29325 : 1159, 1159, 1159, 536, 537, 540, 537, 1175, 537, 478,
29326 : 417, 537, 206, 289, 1172, 1159, 1159, 1159, 537, 59,
29327 : 1066, 1178, 1178, 393, 1056, 1159, 537, 540, 38, 1115,
29328 : 120, 1127, 1128, 1160, 81, 1251, 537, 1159, 536, 1097,
29329 : 1105, 536, 537, 1120, 537, 102, 188, 382, 536, 1081,
29330 : 1082, 1083, 1084, 1085, 1086, 1159, 1179, 1180, 1267, 1066,
29331 : 537, 1044, 536, 1247, 1011, 92, 858, 860, 136, 489,
29332 : 1034, 1035, 1036, 1037, 1159, 841, 310, 841, 537, 448,
29333 : 403, 1026, 537, 203, 666, 669, 312, 905, 819, 548,
29334 : 819, 335, 537, 322, 537, 537, 645, 38, 158, 158,
29335 : 536, 598, 791, 1262, 1252, 448, 536, 871, 905, 907,
29336 : 801, 536, 536, 808, 1252, 537, 536, 537, 403, 1026,
29337 : 1252, 1252, 536, 536, 536, 493, 517, 981, 370, 981,
29338 : 981, 172, 1252, 598, 1252, 825, 626, 627, 1270, 54,
29339 : 101, 126, 145, 151, 173, 177, 192, 298, 354, 622,
29340 : 620, 1258, 871, 38, 912, 912, 537, 195, 536, 209,
29341 : 473, 684, 265, 667, 684, 536, 782, 774, 536, 537,
29342 : 540, 1250, 537, 400, 29, 83, 86, 93, 121, 182,
29343 : 195, 208, 420, 423, 654, 654, 1249, 1252, 1252, 537,
29344 : 1047, 752, 158, 113, 728, 178, 1252, 38, 1252, 692,
29345 : 634, 1250, 537, 638, 314, 1267, 681, 676, 680, 125,
29346 : 140, 343, 1252, 64, 72, 257, 1047, 819, 1106, 858,
29347 : 178, 777, 878, 537, 540, 458, 147, 546, 890, 893,
29348 : 1117, 415, 415, 537, 283, 308, 765, 766, 767, 172,
29349 : 770, 708, 289, 477, 710, 711, 1252, 849, 540, 38,
29350 : 1159, 37, 302, 310, 537, 493, 495, 1227, 1228, 1230,
29351 : 172, 1160, 1169, 1198, 289, 512, 206, 537, 1198, 189,
29352 : 356, 386, 1185, 58, 129, 112, 1057, 38, 1130, 1116,
29353 : 1113, 536, 1160, 537, 540, 38, 1123, 1124, 1267, 537,
29354 : 1251, 1198, 537, 536, 404, 536, 537, 540, 540, 38,
29355 : 1071, 283, 308, 1018, 1019, 1020, 478, 1252, 537, 540,
29356 : 294, 471, 266, 293, 1016, 1035, 35, 1038, 1038, 843,
29357 : 854, 550, 1252, 438, 859, 536, 895, 536, 864, 601,
29358 : 665, 362, 666, 666, 195, 1159, 473, 599, 403, 1026,
29359 : 1252, 1202, 172, 804, 804, 1202, 1202, 1159, 438, 1198,
29360 : 1198, 610, 611, 1269, 818, 819, 818, 819, 1251, 550,
29361 : 537, 540, 120, 529, 536, 577, 628, 704, 978, 1258,
29362 : 978, 293, 298, 354, 978, 978, 1117, 912, 42, 200,
29363 : 659, 536, 700, 1159, 207, 179, 330, 409, 310, 671,
29364 : 672, 673, 537, 1255, 6, 783, 733, 634, 675, 1252,
29365 : 537, 728, 165, 803, 602, 961, 1250, 497, 1096, 728,
29366 : 1047, 1006, 676, 634, 675, 645, 536, 682, 680, 681,
29367 : 386, 386, 72, 313, 72, 692, 857, 537, 1250, 778,
29368 : 885, 896, 1135, 539, 136, 493, 493, 766, 385, 435,
29369 : 768, 141, 771, 489, 773, 477, 708, 728, 550, 1226,
29370 : 1270, 150, 37, 88, 462, 497, 37, 497, 240, 309,
29371 : 1235, 310, 537, 1159, 537, 537, 478, 52, 103, 461,
29372 : 1159, 1186, 1187, 1186, 1186, 537, 169, 169, 662, 1252,
29373 : 1224, 1120, 540, 1128, 1270, 537, 540, 172, 1135, 537,
29374 : 537, 1198, 536, 1198, 1082, 1180, 1182, 1089, 537, 540,
29375 : 38, 1047, 1117, 860, 403, 266, 1159, 444, 444, 178,
29376 : 1252, 662, 684, 905, 865, 864, 1250, 895, 895, 700,
29377 : 537, 1159, 438, 537, 316, 393, 537, 537, 537, 1252,
29378 : 537, 537, 537, 540, 1257, 981, 627, 577, 629, 630,
29379 : 1258, 1258, 298, 529, 662, 529, 662, 1258, 1258, 701,
29380 : 537, 438, 125, 471, 310, 673, 310, 672, 536, 537,
29381 : 540, 609, 400, 728, 819, 38, 38, 536, 1252, 961,
29382 : 692, 680, 609, 676, 536, 678, 679, 1164, 1267, 683,
29383 : 681, 682, 313, 313, 536, 203, 861, 172, 891, 30,
29384 : 218, 948, 180, 180, 978, 385, 419, 772, 536, 157,
29385 : 497, 37, 497, 37, 497, 497, 355, 355, 1230, 143,
29386 : 150, 1187, 385, 171, 341, 171, 341, 154, 1188, 1188,
29387 : 1188, 59, 59, 403, 81, 537, 1161, 1124, 317, 3,
29388 : 120, 293, 298, 334, 1125, 1126, 38, 1101, 369, 1111,
29389 : 537, 1081, 537, 1019, 1267, 1029, 59, 125, 136, 471,
29390 : 1039, 1040, 136, 217, 1041, 841, 1026, 537, 670, 537,
29391 : 865, 536, 664, 684, 684, 1252, 871, 59, 1026, 448,
29392 : 610, 819, 537, 540, 529, 662, 537, 424, 487, 650,
29393 : 1252, 63, 289, 374, 403, 674, 674, 537, 6, 400,
29394 : 1252, 800, 1047, 728, 681, 676, 680, 1159, 537, 540,
29395 : 863, 863, 682, 683, 858, 536, 648, 141, 294, 536,
29396 : 943, 945, 949, 1008, 1021, 1028, 1047, 1058, 871, 871,
29397 : 769, 1267, 1159, 774, 497, 497, 310, 310, 537, 1228,
29398 : 35, 103, 187, 289, 445, 662, 662, 1267, 536, 1174,
29399 : 1160, 1160, 298, 1160, 1126, 1267, 536, 537, 1117, 414,
29400 : 439, 294, 403, 294, 120, 324, 479, 536, 1042, 550,
29401 : 778, 662, 667, 778, 778, 1026, 819, 536, 630, 24,
29402 : 120, 298, 1252, 728, 961, 682, 680, 681, 537, 679,
29403 : 548, 548, 683, 537, 860, 862, 602, 385, 944, 945,
29404 : 946, 1048, 1049, 540, 540, 537, 1255, 389, 389, 310,
29405 : 1187, 385, 318, 403, 403, 448, 473, 282, 1131, 1132,
29406 : 1267, 81, 1159, 1029, 479, 1011, 536, 1012, 663, 671,
29407 : 1198, 661, 661, 728, 683, 681, 682, 863, 861, 537,
29408 : 540, 683, 773, 537, 539, 448, 178, 536, 426, 426,
29409 : 150, 1267, 1267, 229, 1255, 1256, 1267, 334, 1133, 537,
29410 : 540, 172, 1135, 1123, 537, 478, 1198, 537, 537, 778,
29411 : 537, 682, 683, 548, 648, 860, 1117, 157, 946, 415,
29412 : 415, 5, 775, 776, 1257, 1258, 1270, 536, 120, 1258,
29413 : 1231, 1132, 317, 158, 334, 1134, 1233, 537, 1042, 537,
29414 : 324, 1042, 683, 602, 774, 493, 493, 537, 540, 1199,
29415 : 1256, 38, 81, 537, 1134, 1258, 1227, 1134, 1011, 683,
29416 : 1255, 180, 180, 776, 1066, 473, 1252, 536, 1231, 1235,
29417 : 1227, 478, 1117, 536, 871, 871, 537, 1267, 81, 1131,
29418 : 1230, 1235, 1042, 775, 536, 537, 1230, 537, 1131, 537
29419 : };
29420 :
29421 : /* YYR1[RULE-NUM] -- Symbol kind of the left-hand side of rule RULE-NUM. */
29422 : static const yytype_int16 yyr1[] =
29423 : {
29424 : 0, 542, 543, 543, 543, 543, 543, 543, 544, 544,
29425 : 545, 545, 546, 546, 546, 546, 546, 546, 546, 546,
29426 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29427 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29428 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29429 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29430 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29431 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29432 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29433 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29434 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29435 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29436 : 546, 546, 546, 546, 546, 546, 546, 546, 546, 546,
29437 : 546, 546, 546, 546, 546, 546, 546, 547, 547, 548,
29438 : 548, 549, 549, 550, 550, 550, 551, 552, 553, 553,
29439 : 553, 554, 554, 555, 555, 556, 556, 556, 556, 556,
29440 : 556, 556, 556, 556, 557, 557, 557, 557, 557, 557,
29441 : 558, 559, 559, 560, 560, 561, 561, 561, 561, 562,
29442 : 562, 562, 562, 562, 562, 563, 564, 565, 565, 566,
29443 : 566, 566, 566, 567, 567, 568, 568, 568, 568, 568,
29444 : 568, 569, 569, 569, 570, 570, 570, 571, 571, 571,
29445 : 571, 572, 572, 572, 572, 572, 572, 572, 572, 572,
29446 : 572, 572, 573, 573, 574, 574, 575, 575, 576, 576,
29447 : 576, 576, 577, 577, 577, 577, 578, 578, 578, 578,
29448 : 578, 578, 578, 579, 579, 579, 580, 580, 581, 582,
29449 : 582, 582, 582, 583, 583, 584, 584, 585, 585, 586,
29450 : 586, 586, 586, 586, 587, 588, 588, 589, 589, 590,
29451 : 591, 591, 591, 591, 591, 592, 592, 592, 592, 592,
29452 : 592, 592, 592, 592, 592, 592, 592, 592, 592, 592,
29453 : 592, 592, 592, 592, 592, 592, 593, 593, 594, 594,
29454 : 594, 595, 596, 596, 596, 596, 596, 596, 596, 596,
29455 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29456 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29457 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29458 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29459 : 596, 596, 596, 596, 596, 596, 596, 596, 596, 596,
29460 : 596, 596, 596, 596, 597, 597, 598, 598, 599, 599,
29461 : 600, 600, 600, 600, 601, 602, 602, 603, 603, 604,
29462 : 604, 604, 604, 605, 605, 606, 606, 606, 606, 607,
29463 : 607, 608, 608, 609, 609, 609, 609, 610, 611, 611,
29464 : 612, 613, 613, 614, 614, 614, 614, 615, 615, 616,
29465 : 616, 617, 617, 618, 618, 619, 619, 619, 620, 620,
29466 : 621, 621, 622, 622, 622, 622, 622, 622, 622, 622,
29467 : 622, 622, 622, 622, 622, 622, 622, 623, 623, 624,
29468 : 624, 625, 625, 626, 626, 627, 628, 628, 628, 628,
29469 : 628, 628, 629, 629, 630, 631, 631, 631, 631, 631,
29470 : 631, 632, 632, 632, 632, 632, 632, 632, 632, 633,
29471 : 633, 634, 634, 635, 635, 636, 636, 637, 637, 637,
29472 : 638, 638, 639, 640, 640, 641, 641, 642, 642, 643,
29473 : 643, 644, 644, 645, 645, 646, 646, 646, 646, 647,
29474 : 647, 647, 647, 647, 647, 647, 647, 647, 648, 648,
29475 : 648, 649, 649, 650, 650, 650, 651, 651, 651, 651,
29476 : 651, 651, 652, 653, 653, 653, 654, 654, 654, 654,
29477 : 654, 654, 654, 654, 654, 654, 655, 655, 656, 656,
29478 : 656, 656, 656, 656, 656, 656, 657, 657, 658, 658,
29479 : 659, 659, 660, 660, 661, 661, 662, 662, 663, 663,
29480 : 664, 664, 665, 666, 666, 667, 667, 667, 667, 668,
29481 : 668, 669, 669, 670, 670, 671, 671, 671, 671, 671,
29482 : 672, 673, 674, 674, 674, 674, 674, 675, 675, 676,
29483 : 676, 677, 678, 678, 679, 679, 679, 680, 680, 681,
29484 : 681, 681, 682, 682, 682, 682, 683, 683, 684, 684,
29485 : 685, 686, 686, 687, 687, 688, 688, 688, 689, 689,
29486 : 690, 690, 691, 692, 692, 692, 693, 693, 694, 695,
29487 : 695, 696, 697, 697, 698, 698, 699, 699, 700, 700,
29488 : 701, 701, 702, 702, 702, 702, 702, 702, 702, 702,
29489 : 702, 702, 702, 702, 702, 702, 702, 702, 703, 703,
29490 : 704, 704, 704, 704, 705, 705, 706, 706, 707, 707,
29491 : 708, 708, 709, 709, 710, 710, 711, 711, 712, 712,
29492 : 713, 714, 714, 715, 715, 716, 716, 717, 717, 718,
29493 : 718, 718, 718, 719, 720, 720, 721, 722, 722, 722,
29494 : 722, 722, 722, 722, 722, 722, 722, 722, 722, 722,
29495 : 723, 724, 724, 724, 724, 725, 725, 726, 726, 727,
29496 : 727, 728, 728, 729, 729, 730, 731, 731, 732, 732,
29497 : 732, 732, 733, 734, 735, 736, 736, 737, 737, 738,
29498 : 738, 739, 739, 740, 740, 740, 741, 741, 741, 741,
29499 : 742, 743, 743, 744, 744, 745, 745, 746, 746, 747,
29500 : 747, 748, 749, 750, 751, 751, 752, 752, 753, 753,
29501 : 754, 754, 755, 755, 756, 756, 757, 757, 757, 757,
29502 : 757, 758, 759, 759, 760, 760, 761, 761, 761, 762,
29503 : 762, 763, 763, 763, 763, 763, 764, 764, 765, 765,
29504 : 766, 767, 767, 768, 768, 769, 770, 770, 771, 771,
29505 : 772, 772, 773, 773, 774, 774, 775, 775, 775, 776,
29506 : 776, 776, 776, 777, 777, 778, 778, 779, 779, 779,
29507 : 779, 779, 779, 779, 779, 780, 780, 781, 781, 782,
29508 : 783, 783, 784, 785, 785, 785, 785, 786, 787, 787,
29509 : 787, 787, 787, 787, 787, 787, 787, 787, 787, 787,
29510 : 787, 787, 787, 787, 788, 789, 789, 790, 790, 791,
29511 : 791, 791, 791, 791, 791, 792, 793, 793, 794, 795,
29512 : 795, 796, 796, 797, 797, 797, 797, 797, 798, 798,
29513 : 799, 800, 800, 801, 801, 801, 801, 801, 802, 802,
29514 : 803, 803, 804, 804, 804, 805, 806, 806, 807, 807,
29515 : 808, 808, 809, 809, 810, 810, 811, 812, 813, 813,
29516 : 813, 813, 813, 813, 813, 813, 813, 813, 813, 813,
29517 : 814, 814, 814, 814, 814, 814, 814, 814, 814, 814,
29518 : 814, 814, 814, 815, 815, 815, 815, 815, 816, 816,
29519 : 816, 816, 816, 816, 816, 816, 817, 817, 817, 818,
29520 : 818, 819, 819, 820, 820, 821, 821, 822, 823, 823,
29521 : 823, 824, 824, 824, 824, 824, 824, 824, 824, 824,
29522 : 824, 824, 824, 824, 824, 824, 824, 824, 824, 825,
29523 : 825, 826, 826, 826, 826, 826, 826, 826, 826, 826,
29524 : 826, 827, 827, 828, 828, 829, 829, 830, 830, 830,
29525 : 830, 830, 830, 830, 830, 830, 830, 830, 830, 830,
29526 : 830, 830, 830, 831, 831, 832, 832, 833, 834, 834,
29527 : 835, 835, 835, 835, 835, 836, 836, 837, 837, 837,
29528 : 837, 837, 838, 838, 839, 839, 840, 840, 840, 840,
29529 : 840, 840, 840, 840, 840, 840, 840, 840, 840, 840,
29530 : 840, 840, 840, 840, 840, 840, 840, 841, 841, 842,
29531 : 842, 843, 843, 844, 844, 845, 845, 846, 846, 847,
29532 : 848, 848, 848, 849, 849, 850, 851, 851, 852, 852,
29533 : 852, 853, 853, 853, 854, 854, 854, 854, 854, 854,
29534 : 854, 855, 855, 856, 856, 857, 857, 858, 858, 859,
29535 : 859, 860, 860, 860, 861, 861, 862, 862, 863, 863,
29536 : 864, 864, 864, 865, 865, 865, 866, 866, 866, 866,
29537 : 867, 867, 868, 868, 869, 869, 870, 870, 871, 871,
29538 : 871, 871, 872, 872, 873, 873, 874, 874, 874, 874,
29539 : 874, 875, 875, 875, 875, 875, 876, 877, 878, 878,
29540 : 878, 879, 879, 879, 880, 881, 881, 881, 881, 882,
29541 : 882, 883, 884, 884, 885, 885, 886, 886, 887, 887,
29542 : 887, 887, 887, 887, 887, 887, 887, 887, 887, 887,
29543 : 887, 887, 887, 887, 887, 888, 888, 888, 888, 888,
29544 : 889, 889, 890, 891, 891, 891, 892, 892, 893, 893,
29545 : 894, 894, 895, 895, 896, 897, 897, 898, 898, 898,
29546 : 899, 899, 900, 900, 901, 901, 901, 901, 901, 901,
29547 : 902, 902, 903, 903, 904, 904, 904, 904, 905, 905,
29548 : 906, 906, 907, 908, 909, 909, 910, 910, 911, 911,
29549 : 911, 912, 912, 912, 913, 914, 914, 915, 916, 916,
29550 : 916, 916, 917, 918, 918, 918, 919, 919, 920, 920,
29551 : 921, 921, 922, 922, 923, 923, 923, 923, 923, 923,
29552 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
29553 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
29554 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
29555 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 923,
29556 : 923, 923, 923, 923, 923, 923, 923, 923, 923, 924,
29557 : 924, 925, 925, 926, 926, 926, 926, 926, 926, 927,
29558 : 927, 928, 928, 928, 928, 928, 928, 928, 928, 928,
29559 : 928, 928, 928, 928, 928, 928, 928, 928, 928, 928,
29560 : 928, 928, 928, 928, 928, 928, 928, 928, 929, 930,
29561 : 930, 931, 931, 931, 932, 932, 932, 932, 932, 933,
29562 : 934, 934, 934, 934, 934, 934, 934, 934, 934, 934,
29563 : 934, 934, 934, 934, 934, 934, 934, 934, 934, 934,
29564 : 934, 934, 934, 934, 935, 935, 935, 936, 936, 936,
29565 : 936, 936, 936, 936, 937, 937, 938, 938, 938, 938,
29566 : 939, 940, 940, 940, 940, 940, 940, 940, 940, 940,
29567 : 941, 941, 942, 943, 943, 943, 944, 944, 945, 945,
29568 : 945, 945, 945, 946, 946, 947, 947, 947, 947, 948,
29569 : 948, 948, 949, 950, 950, 951, 952, 952, 953, 953,
29570 : 953, 953, 953, 953, 953, 953, 953, 953, 953, 953,
29571 : 954, 954, 955, 955, 955, 956, 956, 956, 956, 956,
29572 : 957, 957, 957, 958, 958, 959, 959, 959, 960, 960,
29573 : 960, 960, 961, 961, 961, 961, 962, 963, 964, 964,
29574 : 965, 965, 966, 966, 966, 967, 967, 967, 967, 967,
29575 : 967, 967, 968, 968, 969, 969, 969, 969, 970, 971,
29576 : 971, 971, 971, 972, 972, 973, 974, 975, 975, 976,
29577 : 977, 977, 977, 977, 977, 977, 977, 978, 978, 979,
29578 : 980, 980, 980, 980, 980, 980, 981, 981, 982, 983,
29579 : 983, 983, 983, 983, 984, 984, 985, 985, 986, 986,
29580 : 987, 987, 988, 988, 989, 990, 990, 990, 991, 991,
29581 : 991, 992, 992, 993, 993, 994, 994, 995, 995, 996,
29582 : 996, 997, 998, 998, 999, 999, 1000, 1000, 1000, 1000,
29583 : 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001, 1001,
29584 : 1002, 1003, 1003, 1004, 1004, 1004, 1004, 1004, 1005, 1005,
29585 : 1005, 1006, 1006, 1007, 1007, 1007, 1007, 1008, 1009, 1009,
29586 : 1010, 1010, 1010, 1010, 1010, 1011, 1011, 1012, 1012, 1013,
29587 : 1014, 1014, 1014, 1015, 1015, 1015, 1016, 1016, 1017, 1017,
29588 : 1018, 1018, 1019, 1020, 1020, 1021, 1022, 1022, 1023, 1024,
29589 : 1024, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1025, 1026,
29590 : 1026, 1027, 1027, 1027, 1028, 1029, 1029, 1030, 1030, 1031,
29591 : 1032, 1032, 1033, 1034, 1034, 1035, 1035, 1035, 1035, 1035,
29592 : 1036, 1036, 1037, 1037, 1038, 1038, 1039, 1040, 1041, 1041,
29593 : 1041, 1041, 1041, 1042, 1043, 1044, 1045, 1045, 1045, 1045,
29594 : 1045, 1045, 1046, 1046, 1046, 1047, 1047, 1048, 1048, 1049,
29595 : 1049, 1049, 1049, 1049, 1049, 1049, 1049, 1050, 1050, 1051,
29596 : 1051, 1051, 1051, 1051, 1051, 1051, 1052, 1052, 1052, 1053,
29597 : 1053, 1054, 1055, 1055, 1055, 1056, 1056, 1056, 1057, 1057,
29598 : 1057, 1058, 1058, 1059, 1059, 1060, 1060, 1060, 1060, 1060,
29599 : 1060, 1060, 1060, 1060, 1061, 1061, 1062, 1062, 1062, 1063,
29600 : 1063, 1064, 1064, 1065, 1065, 1066, 1066, 1067, 1068, 1068,
29601 : 1069, 1069, 1070, 1070, 1070, 1070, 1071, 1071, 1072, 1072,
29602 : 1072, 1072, 1072, 1072, 1073, 1073, 1074, 1074, 1075, 1076,
29603 : 1076, 1076, 1077, 1077, 1078, 1078, 1079, 1079, 1080, 1080,
29604 : 1081, 1081, 1082, 1082, 1082, 1082, 1082, 1083, 1084, 1085,
29605 : 1086, 1087, 1087, 1088, 1088, 1089, 1089, 1090, 1090, 1091,
29606 : 1092, 1092, 1092, 1092, 1093, 1093, 1094, 1094, 1095, 1095,
29607 : 1096, 1096, 1097, 1097, 1097, 1097, 1097, 1097, 1097, 1097,
29608 : 1097, 1097, 1097, 1097, 1098, 1098, 1098, 1098, 1098, 1098,
29609 : 1099, 1099, 1099, 1099, 1100, 1100, 1101, 1101, 1102, 1102,
29610 : 1102, 1102, 1102, 1103, 1103, 1103, 1103, 1104, 1104, 1105,
29611 : 1105, 1106, 1106, 1107, 1107, 1107, 1108, 1108, 1109, 1109,
29612 : 1109, 1110, 1111, 1111, 1112, 1112, 1113, 1114, 1114, 1115,
29613 : 1115, 1116, 1116, 1117, 1117, 1118, 1118, 1118, 1119, 1119,
29614 : 1120, 1120, 1121, 1122, 1122, 1123, 1123, 1124, 1124, 1124,
29615 : 1125, 1125, 1126, 1126, 1126, 1126, 1126, 1127, 1127, 1128,
29616 : 1128, 1129, 1130, 1130, 1131, 1131, 1132, 1132, 1132, 1132,
29617 : 1132, 1132, 1133, 1133, 1134, 1134, 1135, 1135, 1135, 1135,
29618 : 1135, 1135, 1136, 1136, 1136, 1137, 1137, 1137, 1137, 1137,
29619 : 1137, 1137, 1137, 1138, 1138, 1138, 1138, 1138, 1139, 1139,
29620 : 1140, 1140, 1141, 1141, 1141, 1141, 1141, 1141, 1141, 1141,
29621 : 1141, 1141, 1141, 1142, 1142, 1143, 1143, 1144, 1144, 1145,
29622 : 1146, 1147, 1147, 1148, 1148, 1149, 1150, 1151, 1151, 1151,
29623 : 1151, 1151, 1151, 1152, 1152, 1153, 1153, 1153, 1153, 1154,
29624 : 1155, 1155, 1155, 1156, 1156, 1156, 1156, 1156, 1156, 1156,
29625 : 1156, 1156, 1156, 1156, 1156, 1156, 1156, 1157, 1157, 1158,
29626 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29627 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29628 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29629 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29630 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29631 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159,
29632 : 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1159, 1160, 1160,
29633 : 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
29634 : 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160, 1160,
29635 : 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161, 1161,
29636 : 1161, 1161, 1161, 1161, 1162, 1162, 1162, 1162, 1162, 1162,
29637 : 1162, 1163, 1163, 1163, 1164, 1164, 1164, 1165, 1165, 1165,
29638 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29639 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29640 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29641 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29642 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1165,
29643 : 1165, 1165, 1165, 1165, 1165, 1165, 1165, 1166, 1166, 1167,
29644 : 1167, 1167, 1167, 1168, 1169, 1169, 1170, 1170, 1171, 1171,
29645 : 1172, 1172, 1172, 1173, 1173, 1173, 1174, 1174, 1174, 1174,
29646 : 1175, 1175, 1176, 1176, 1177, 1177, 1178, 1178, 1179, 1179,
29647 : 1180, 1181, 1181, 1181, 1182, 1183, 1183, 1184, 1184, 1185,
29648 : 1185, 1185, 1185, 1186, 1186, 1187, 1187, 1187, 1187, 1187,
29649 : 1188, 1188, 1188, 1188, 1188, 1189, 1189, 1189, 1190, 1190,
29650 : 1191, 1192, 1192, 1192, 1193, 1193, 1194, 1194, 1194, 1194,
29651 : 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1194, 1195, 1195,
29652 : 1196, 1196, 1197, 1197, 1197, 1197, 1197, 1197, 1198, 1198,
29653 : 1199, 1199, 1200, 1200, 1200, 1201, 1201, 1202, 1202, 1203,
29654 : 1203, 1203, 1204, 1204, 1205, 1206, 1206, 1206, 1206, 1206,
29655 : 1206, 1206, 1206, 1207, 1207, 1207, 1207, 1208, 1208, 1209,
29656 : 1210, 1210, 1210, 1210, 1210, 1211, 1211, 1211, 1212, 1212,
29657 : 1213, 1214, 1214, 1215, 1216, 1216, 1217, 1217, 1218, 1218,
29658 : 1219, 1219, 1219, 1219, 1220, 1220, 1221, 1221, 1222, 1222,
29659 : 1223, 1223, 1224, 1224, 1225, 1225, 1226, 1227, 1227, 1227,
29660 : 1227, 1227, 1227, 1227, 1227, 1227, 1228, 1228, 1229, 1229,
29661 : 1229, 1229, 1229, 1229, 1229, 1229, 1230, 1230, 1230, 1230,
29662 : 1231, 1231, 1232, 1233, 1233, 1234, 1234, 1235, 1235, 1235,
29663 : 1235, 1235, 1236, 1236, 1237, 1237, 1237, 1237, 1237, 1238,
29664 : 1238, 1238, 1238, 1238, 1239, 1239, 1240, 1240, 1241, 1241,
29665 : 1241, 1242, 1242, 1242, 1243, 1243, 1244, 1244, 1245, 1245,
29666 : 1246, 1246, 1247, 1247, 1248, 1248, 1248, 1248, 1249, 1249,
29667 : 1250, 1250, 1251, 1251, 1252, 1253, 1254, 1255, 1255, 1256,
29668 : 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256, 1256,
29669 : 1256, 1256, 1257, 1258, 1259, 1259, 1259, 1260, 1261, 1261,
29670 : 1261, 1261, 1262, 1262, 1263, 1264, 1265, 1265, 1266, 1266,
29671 : 1267, 1267, 1267, 1268, 1268, 1268, 1269, 1269, 1269, 1269,
29672 : 1270, 1270, 1270, 1270, 1270, 1271, 1271, 1272, 1272, 1272,
29673 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29674 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29675 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29676 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29677 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29678 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29679 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29680 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29681 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29682 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29683 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29684 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29685 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29686 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29687 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29688 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29689 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29690 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29691 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29692 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29693 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29694 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29695 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29696 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29697 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29698 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29699 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29700 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29701 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29702 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29703 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29704 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1272,
29705 : 1272, 1272, 1272, 1272, 1272, 1272, 1272, 1273, 1273, 1273,
29706 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29707 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29708 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29709 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29710 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29711 : 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273, 1273,
29712 : 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274,
29713 : 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274, 1274,
29714 : 1274, 1274, 1274, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29715 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29716 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29717 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29718 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29719 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29720 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29721 : 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275, 1275,
29722 : 1275, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29723 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29724 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29725 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29726 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29727 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29728 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29729 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29730 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29731 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29732 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29733 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29734 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29735 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29736 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29737 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29738 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29739 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29740 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29741 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29742 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29743 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29744 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29745 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29746 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29747 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29748 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29749 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29750 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29751 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29752 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29753 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29754 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29755 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29756 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29757 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29758 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29759 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29760 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29761 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29762 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29763 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29764 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29765 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29766 : 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276, 1276,
29767 : 1276, 1276, 1276, 1276, 1276, 1276
29768 : };
29769 :
29770 : /* YYR2[RULE-NUM] -- Number of symbols on the right-hand side of rule RULE-NUM. */
29771 : static const yytype_int8 yyr2[] =
29772 : {
29773 : 0, 2, 1, 2, 2, 2, 2, 2, 3, 1,
29774 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29775 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29776 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29777 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29778 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29779 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29780 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29781 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29782 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29783 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29784 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29785 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29786 : 1, 1, 1, 1, 1, 1, 0, 1, 0, 1,
29787 : 0, 1, 0, 1, 1, 0, 2, 5, 1, 1,
29788 : 0, 2, 0, 2, 0, 2, 2, 3, 3, 1,
29789 : 3, 3, 2, 1, 1, 2, 2, 2, 3, 3,
29790 : 5, 5, 5, 0, 3, 5, 5, 5, 5, 3,
29791 : 5, 3, 5, 3, 5, 5, 6, 1, 1, 6,
29792 : 4, 9, 7, 2, 0, 1, 1, 1, 1, 1,
29793 : 1, 2, 3, 3, 2, 5, 1, 3, 3, 3,
29794 : 3, 1, 3, 3, 2, 2, 2, 2, 3, 3,
29795 : 3, 3, 1, 3, 1, 3, 1, 1, 2, 2,
29796 : 2, 1, 1, 1, 1, 1, 1, 1, 3, 5,
29797 : 1, 1, 1, 1, 1, 0, 1, 1, 2, 1,
29798 : 2, 3, 2, 1, 1, 2, 1, 2, 1, 2,
29799 : 3, 4, 3, 2, 4, 1, 1, 1, 1, 1,
29800 : 2, 2, 2, 2, 2, 4, 6, 4, 6, 10,
29801 : 13, 4, 6, 4, 10, 13, 4, 6, 4, 6,
29802 : 5, 7, 11, 14, 5, 7, 1, 3, 4, 4,
29803 : 4, 3, 2, 5, 3, 6, 4, 6, 6, 9,
29804 : 5, 7, 6, 6, 5, 5, 5, 5, 9, 4,
29805 : 5, 7, 6, 4, 8, 4, 2, 4, 4, 3,
29806 : 6, 4, 3, 3, 3, 2, 2, 3, 4, 4,
29807 : 3, 3, 3, 3, 3, 3, 4, 4, 3, 2,
29808 : 3, 2, 2, 3, 4, 3, 2, 2, 3, 4,
29809 : 4, 4, 5, 1, 3, 2, 2, 0, 2, 0,
29810 : 1, 1, 1, 3, 3, 2, 0, 1, 3, 3,
29811 : 1, 5, 3, 1, 2, 1, 3, 2, 3, 1,
29812 : 1, 1, 1, 6, 6, 10, 1, 2, 1, 3,
29813 : 4, 1, 3, 4, 6, 4, 8, 2, 2, 11,
29814 : 9, 1, 1, 1, 0, 1, 1, 1, 1, 3,
29815 : 2, 0, 1, 1, 3, 3, 1, 1, 3, 3,
29816 : 3, 3, 4, 4, 3, 3, 2, 1, 0, 3,
29817 : 0, 1, 0, 1, 3, 2, 1, 1, 1, 1,
29818 : 3, 0, 1, 3, 1, 13, 16, 12, 15, 14,
29819 : 17, 1, 1, 2, 2, 2, 2, 1, 0, 1,
29820 : 0, 3, 0, 1, 3, 1, 3, 1, 1, 1,
29821 : 1, 1, 6, 2, 4, 2, 2, 1, 0, 2,
29822 : 2, 1, 0, 2, 0, 3, 1, 1, 2, 3,
29823 : 1, 4, 4, 5, 2, 5, 7, 5, 2, 3,
29824 : 0, 1, 2, 1, 1, 0, 1, 2, 2, 2,
29825 : 1, 2, 3, 3, 3, 0, 1, 1, 1, 1,
29826 : 1, 1, 1, 1, 1, 1, 3, 1, 5, 4,
29827 : 10, 3, 10, 4, 10, 12, 3, 1, 5, 3,
29828 : 2, 0, 2, 0, 3, 0, 1, 3, 3, 0,
29829 : 4, 0, 1, 4, 0, 2, 2, 2, 0, 1,
29830 : 3, 3, 6, 4, 0, 1, 1, 2, 2, 0,
29831 : 3, 3, 2, 1, 1, 3, 3, 4, 0, 1,
29832 : 0, 6, 1, 3, 3, 3, 5, 2, 0, 2,
29833 : 2, 0, 3, 4, 4, 0, 2, 0, 4, 0,
29834 : 3, 8, 11, 1, 3, 1, 1, 3, 6, 8,
29835 : 7, 10, 6, 2, 3, 0, 8, 11, 5, 1,
29836 : 0, 6, 5, 8, 4, 6, 1, 0, 3, 0,
29837 : 1, 2, 2, 2, 1, 2, 3, 1, 2, 2,
29838 : 2, 2, 3, 3, 3, 1, 3, 1, 1, 0,
29839 : 1, 2, 2, 1, 1, 3, 6, 10, 1, 0,
29840 : 1, 2, 2, 0, 2, 2, 1, 0, 1, 0,
29841 : 7, 2, 0, 3, 5, 5, 8, 2, 0, 2,
29842 : 2, 2, 1, 5, 2, 0, 2, 6, 6, 6,
29843 : 10, 6, 6, 6, 9, 9, 6, 6, 9, 6,
29844 : 7, 2, 2, 2, 2, 1, 2, 1, 0, 7,
29845 : 6, 4, 0, 1, 3, 4, 1, 3, 1, 2,
29846 : 2, 2, 2, 1, 1, 10, 13, 2, 0, 2,
29847 : 2, 1, 0, 5, 4, 4, 11, 14, 12, 15,
29848 : 11, 2, 1, 4, 0, 8, 11, 1, 1, 7,
29849 : 9, 8, 10, 8, 4, 0, 5, 0, 2, 0,
29850 : 2, 0, 2, 0, 2, 0, 1, 1, 1, 1,
29851 : 1, 8, 1, 1, 17, 21, 1, 1, 2, 1,
29852 : 3, 1, 1, 1, 3, 1, 2, 0, 1, 2,
29853 : 4, 1, 1, 1, 1, 1, 3, 0, 1, 0,
29854 : 1, 1, 4, 0, 1, 1, 1, 3, 0, 1,
29855 : 1, 1, 1, 2, 0, 0, 2, 2, 1, 2,
29856 : 2, 2, 2, 2, 1, 11, 13, 1, 3, 5,
29857 : 1, 3, 5, 1, 2, 2, 1, 8, 6, 5,
29858 : 4, 4, 3, 7, 8, 6, 6, 6, 6, 6,
29859 : 4, 7, 5, 8, 3, 1, 3, 3, 1, 1,
29860 : 1, 1, 1, 1, 1, 3, 1, 3, 3, 1,
29861 : 0, 1, 3, 7, 9, 9, 8, 6, 3, 0,
29862 : 13, 1, 3, 4, 4, 3, 6, 2, 1, 0,
29863 : 2, 0, 2, 4, 0, 6, 8, 8, 1, 3,
29864 : 5, 5, 7, 9, 7, 9, 5, 6, 6, 4,
29865 : 6, 4, 6, 8, 4, 6, 4, 6, 5, 7,
29866 : 1, 1, 1, 2, 1, 2, 1, 1, 1, 3,
29867 : 3, 3, 3, 1, 1, 1, 1, 1, 2, 2,
29868 : 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
29869 : 3, 1, 2, 2, 3, 1, 3, 5, 2, 2,
29870 : 0, 6, 6, 6, 6, 6, 6, 6, 6, 8,
29871 : 9, 8, 6, 6, 9, 9, 9, 7, 10, 1,
29872 : 1, 8, 8, 8, 8, 8, 8, 8, 9, 8,
29873 : 8, 2, 0, 1, 1, 2, 2, 1, 2, 3,
29874 : 3, 3, 3, 4, 4, 3, 3, 3, 4, 4,
29875 : 3, 4, 4, 1, 1, 1, 0, 8, 8, 11,
29876 : 1, 1, 2, 4, 5, 1, 3, 2, 2, 2,
29877 : 2, 2, 1, 3, 1, 3, 1, 2, 2, 4,
29878 : 3, 2, 2, 2, 2, 2, 2, 3, 2, 2,
29879 : 2, 2, 5, 5, 5, 5, 5, 1, 3, 1,
29880 : 2, 3, 0, 5, 7, 6, 9, 3, 1, 2,
29881 : 1, 1, 1, 3, 0, 5, 2, 0, 3, 3,
29882 : 3, 7, 7, 10, 1, 1, 1, 1, 1, 1,
29883 : 2, 16, 19, 1, 0, 2, 0, 1, 3, 4,
29884 : 5, 2, 2, 4, 4, 0, 1, 3, 2, 0,
29885 : 1, 1, 0, 2, 2, 0, 9, 12, 7, 7,
29886 : 2, 0, 3, 2, 1, 3, 1, 3, 2, 1,
29887 : 1, 2, 3, 2, 1, 3, 3, 3, 2, 2,
29888 : 1, 1, 1, 1, 2, 1, 1, 1, 1, 4,
29889 : 5, 1, 3, 3, 1, 3, 3, 5, 6, 1,
29890 : 3, 2, 1, 3, 1, 0, 1, 2, 4, 5,
29891 : 1, 1, 1, 1, 3, 3, 2, 2, 1, 2,
29892 : 2, 2, 2, 1, 2, 2, 2, 2, 1, 1,
29893 : 1, 3, 2, 1, 4, 0, 3, 0, 1, 1,
29894 : 3, 5, 2, 0, 2, 1, 3, 5, 5, 5,
29895 : 1, 2, 1, 0, 4, 6, 4, 6, 4, 6,
29896 : 4, 6, 4, 6, 3, 5, 5, 5, 1, 3,
29897 : 1, 3, 2, 2, 1, 2, 1, 2, 11, 10,
29898 : 10, 2, 2, 0, 9, 2, 0, 10, 11, 11,
29899 : 5, 5, 8, 5, 5, 5, 1, 1, 1, 1,
29900 : 3, 0, 5, 5, 6, 6, 6, 6, 6, 8,
29901 : 8, 6, 6, 7, 9, 9, 8, 10, 6, 6,
29902 : 6, 6, 6, 6, 6, 8, 6, 8, 6, 8,
29903 : 7, 9, 6, 8, 7, 9, 8, 10, 8, 10,
29904 : 9, 11, 8, 10, 9, 11, 8, 8, 7, 6,
29905 : 6, 6, 6, 8, 8, 8, 8, 6, 9, 1,
29906 : 0, 2, 0, 8, 8, 8, 10, 9, 8, 1,
29907 : 0, 6, 6, 6, 6, 6, 6, 6, 9, 9,
29908 : 6, 6, 6, 8, 6, 8, 8, 8, 8, 6,
29909 : 8, 6, 8, 7, 9, 7, 9, 6, 7, 1,
29910 : 3, 3, 3, 1, 1, 1, 1, 1, 1, 7,
29911 : 6, 6, 6, 6, 6, 6, 7, 7, 6, 9,
29912 : 9, 6, 6, 6, 6, 6, 6, 8, 8, 8,
29913 : 6, 7, 6, 6, 4, 7, 6, 4, 4, 4,
29914 : 3, 4, 3, 1, 1, 3, 5, 5, 5, 5,
29915 : 8, 5, 5, 6, 7, 7, 7, 4, 4, 5,
29916 : 4, 6, 13, 1, 1, 3, 3, 1, 1, 1,
29917 : 1, 1, 1, 1, 0, 1, 1, 1, 1, 1,
29918 : 1, 0, 3, 2, 0, 2, 2, 2, 3, 3,
29919 : 3, 3, 2, 3, 2, 5, 4, 3, 3, 3,
29920 : 3, 3, 1, 1, 0, 3, 2, 2, 1, 2,
29921 : 1, 3, 2, 1, 0, 2, 3, 0, 9, 11,
29922 : 12, 14, 3, 4, 4, 0, 2, 5, 1, 0,
29923 : 1, 2, 3, 3, 3, 1, 2, 1, 1, 1,
29924 : 1, 1, 1, 0, 5, 4, 6, 6, 4, 3,
29925 : 5, 7, 9, 1, 3, 1, 5, 4, 4, 6,
29926 : 4, 6, 6, 5, 7, 9, 6, 1, 0, 6,
29927 : 11, 11, 11, 13, 9, 11, 1, 1, 10, 6,
29928 : 4, 4, 2, 5, 2, 0, 6, 5, 3, 5,
29929 : 1, 3, 1, 1, 2, 1, 1, 1, 1, 1,
29930 : 0, 1, 0, 1, 0, 1, 0, 1, 0, 3,
29931 : 0, 2, 1, 3, 1, 0, 2, 4, 3, 5,
29932 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
29933 : 5, 3, 0, 1, 1, 1, 1, 1, 3, 9,
29934 : 12, 3, 0, 2, 3, 2, 3, 7, 1, 3,
29935 : 1, 4, 4, 7, 2, 1, 1, 1, 3, 2,
29936 : 8, 5, 0, 4, 3, 0, 3, 0, 4, 0,
29937 : 1, 3, 3, 1, 1, 7, 2, 0, 5, 3,
29938 : 0, 2, 2, 2, 3, 1, 3, 1, 2, 1,
29939 : 0, 1, 2, 0, 8, 1, 3, 3, 5, 2,
29940 : 1, 3, 10, 1, 2, 4, 4, 4, 5, 5,
29941 : 2, 5, 3, 5, 2, 0, 3, 1, 2, 5,
29942 : 5, 8, 3, 4, 7, 1, 0, 3, 2, 2,
29943 : 2, 2, 0, 2, 2, 1, 1, 3, 3, 1,
29944 : 2, 4, 4, 2, 3, 5, 5, 1, 1, 9,
29945 : 9, 1, 2, 4, 4, 4, 2, 2, 3, 1,
29946 : 3, 9, 1, 2, 0, 7, 7, 0, 10, 6,
29947 : 0, 1, 0, 2, 0, 3, 3, 4, 4, 4,
29948 : 4, 3, 2, 1, 1, 0, 1, 1, 0, 1,
29949 : 5, 1, 0, 1, 1, 1, 0, 3, 1, 3,
29950 : 4, 3, 2, 2, 1, 1, 1, 0, 2, 4,
29951 : 5, 6, 4, 5, 2, 3, 1, 1, 1, 1,
29952 : 2, 2, 1, 1, 1, 1, 1, 1, 4, 0,
29953 : 1, 3, 1, 1, 1, 1, 1, 2, 4, 4,
29954 : 5, 2, 0, 1, 3, 1, 0, 1, 2, 3,
29955 : 2, 4, 2, 3, 2, 0, 4, 5, 2, 0,
29956 : 1, 3, 2, 3, 2, 3, 2, 3, 2, 3,
29957 : 1, 4, 2, 3, 3, 4, 5, 4, 5, 4,
29958 : 5, 2, 4, 1, 1, 0, 2, 0, 1, 4,
29959 : 5, 4, 0, 2, 2, 2, 1, 1, 0, 5,
29960 : 2, 1, 1, 2, 2, 4, 1, 3, 1, 2,
29961 : 3, 6, 4, 0, 2, 6, 2, 1, 3, 4,
29962 : 0, 2, 0, 2, 0, 2, 4, 0, 1, 0,
29963 : 1, 3, 3, 7, 12, 1, 3, 2, 3, 3,
29964 : 1, 2, 2, 2, 2, 1, 2, 1, 3, 3,
29965 : 2, 13, 2, 0, 1, 3, 3, 6, 7, 5,
29966 : 7, 9, 1, 0, 2, 0, 2, 3, 5, 6,
29967 : 2, 3, 3, 4, 0, 1, 1, 1, 1, 1,
29968 : 2, 4, 1, 1, 1, 1, 1, 1, 2, 3,
29969 : 3, 0, 1, 1, 1, 1, 1, 2, 2, 2,
29970 : 2, 2, 1, 3, 0, 1, 1, 1, 1, 5,
29971 : 2, 1, 1, 1, 1, 4, 1, 2, 2, 1,
29972 : 3, 3, 2, 1, 0, 5, 2, 5, 2, 1,
29973 : 3, 3, 0, 1, 1, 1, 1, 1, 1, 3,
29974 : 3, 3, 3, 3, 3, 3, 0, 1, 4, 1,
29975 : 1, 3, 3, 5, 3, 2, 2, 3, 3, 3,
29976 : 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
29977 : 2, 3, 3, 2, 2, 3, 5, 4, 6, 3,
29978 : 5, 4, 6, 4, 6, 5, 7, 3, 2, 4,
29979 : 2, 3, 3, 4, 3, 4, 3, 4, 5, 6,
29980 : 6, 7, 6, 7, 3, 4, 4, 6, 3, 3,
29981 : 4, 3, 4, 4, 5, 4, 5, 1, 1, 3,
29982 : 2, 2, 3, 3, 3, 3, 3, 3, 3, 3,
29983 : 3, 3, 3, 3, 3, 2, 5, 6, 3, 4,
29984 : 1, 1, 2, 4, 1, 1, 1, 2, 2, 2,
29985 : 2, 1, 1, 4, 3, 5, 6, 8, 6, 6,
29986 : 4, 4, 3, 1, 1, 1, 1, 5, 1, 1,
29987 : 4, 1, 4, 1, 4, 1, 4, 1, 1, 1,
29988 : 1, 1, 1, 1, 6, 4, 4, 6, 4, 4,
29989 : 4, 4, 4, 6, 5, 5, 5, 4, 6, 4,
29990 : 4, 4, 4, 5, 7, 7, 9, 5, 4, 6,
29991 : 5, 7, 7, 8, 4, 7, 4, 6, 6, 4,
29992 : 5, 4, 5, 3, 11, 8, 9, 2, 3, 3,
29993 : 3, 4, 0, 4, 1, 3, 3, 1, 1, 1,
29994 : 1, 2, 0, 2, 2, 0, 2, 3, 3, 4,
29995 : 2, 2, 5, 0, 5, 0, 2, 0, 1, 3,
29996 : 3, 2, 2, 0, 6, 1, 0, 3, 0, 3,
29997 : 3, 3, 0, 1, 4, 2, 2, 2, 2, 2,
29998 : 3, 2, 2, 3, 0, 4, 3, 5, 4, 3,
29999 : 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30000 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 4,
30001 : 1, 4, 1, 4, 1, 2, 1, 2, 1, 3,
30002 : 1, 3, 1, 3, 3, 1, 0, 1, 3, 3,
30003 : 3, 2, 1, 3, 3, 1, 1, 1, 1, 1,
30004 : 1, 1, 1, 1, 1, 1, 1, 7, 5, 3,
30005 : 5, 5, 3, 3, 5, 3, 2, 1, 1, 3,
30006 : 5, 1, 2, 4, 2, 0, 1, 0, 1, 2,
30007 : 2, 2, 3, 5, 1, 0, 1, 2, 0, 2,
30008 : 1, 0, 2, 0, 1, 3, 3, 2, 3, 2,
30009 : 3, 4, 4, 3, 3, 0, 2, 1, 1, 1,
30010 : 1, 1, 1, 2, 2, 1, 3, 3, 6, 0,
30011 : 3, 0, 2, 4, 2, 1, 0, 5, 2, 5,
30012 : 2, 0, 3, 0, 1, 2, 2, 2, 2, 3,
30013 : 2, 3, 2, 0, 1, 3, 3, 3, 3, 3,
30014 : 0, 3, 3, 0, 1, 3, 7, 7, 3, 0,
30015 : 1, 0, 1, 3, 3, 2, 1, 1, 1, 3,
30016 : 1, 2, 1, 3, 1, 1, 1, 1, 2, 1,
30017 : 1, 1, 1, 1, 2, 6, 2, 3, 5, 1,
30018 : 1, 1, 1, 1, 1, 2, 2, 1, 1, 1,
30019 : 1, 1, 1, 3, 10, 4, 1, 1, 1, 1,
30020 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30021 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30022 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30023 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30024 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30025 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30026 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30027 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30028 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30029 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30030 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30031 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30032 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30033 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30034 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30035 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30036 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30037 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30038 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30039 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30040 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30041 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30042 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30043 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30044 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30045 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30046 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30047 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30048 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30049 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30050 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30051 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30052 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30053 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30054 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30055 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30056 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30057 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30058 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30059 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30060 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30061 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30062 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30063 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30064 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30065 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30066 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30067 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30068 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30069 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30070 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30071 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30072 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30073 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30074 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30075 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30076 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30077 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30078 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30079 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30080 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30081 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30082 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30083 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30084 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30085 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30086 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30087 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30088 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30089 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30090 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30091 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30092 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30093 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30094 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30095 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30096 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30097 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30098 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30099 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30100 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30101 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30102 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30103 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30104 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30105 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30106 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30107 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30108 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30109 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30110 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30111 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30112 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30113 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30114 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30115 : 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
30116 : 1, 1, 1, 1, 1, 1
30117 : };
30118 :
30119 :
30120 : enum { YYENOMEM = -2 };
30121 :
30122 : #define yyerrok (yyerrstatus = 0)
30123 : #define yyclearin (yychar = YYEMPTY)
30124 :
30125 : #define YYACCEPT goto yyacceptlab
30126 : #define YYABORT goto yyabortlab
30127 : #define YYERROR goto yyerrorlab
30128 : #define YYNOMEM goto yyexhaustedlab
30129 :
30130 :
30131 : #define YYRECOVERING() (!!yyerrstatus)
30132 :
30133 : #define YYBACKUP(Token, Value) \
30134 : do \
30135 : if (yychar == YYEMPTY) \
30136 : { \
30137 : yychar = (Token); \
30138 : yylval = (Value); \
30139 : YYPOPSTACK (yylen); \
30140 : yystate = *yyssp; \
30141 : goto yybackup; \
30142 : } \
30143 : else \
30144 : { \
30145 : yyerror (&yylloc, yyscanner, YY_("syntax error: cannot back up")); \
30146 : YYERROR; \
30147 : } \
30148 : while (0)
30149 :
30150 : /* Backward compatibility with an undocumented macro.
30151 : Use YYerror or YYUNDEF. */
30152 : #define YYERRCODE YYUNDEF
30153 :
30154 : /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
30155 : If N is 0, then set CURRENT to the empty location which ends
30156 : the previous symbol: RHS[0] (always defined). */
30157 :
30158 : #ifndef YYLLOC_DEFAULT
30159 : # define YYLLOC_DEFAULT(Current, Rhs, N) \
30160 : do \
30161 : if (N) \
30162 : { \
30163 : (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
30164 : (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
30165 : (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
30166 : (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
30167 : } \
30168 : else \
30169 : { \
30170 : (Current).first_line = (Current).last_line = \
30171 : YYRHSLOC (Rhs, 0).last_line; \
30172 : (Current).first_column = (Current).last_column = \
30173 : YYRHSLOC (Rhs, 0).last_column; \
30174 : } \
30175 : while (0)
30176 : #endif
30177 :
30178 : #define YYRHSLOC(Rhs, K) ((Rhs)[K])
30179 :
30180 :
30181 : /* Enable debugging if requested. */
30182 : #if YYDEBUG
30183 :
30184 : # ifndef YYFPRINTF
30185 : # include <stdio.h> /* INFRINGES ON USER NAME SPACE */
30186 : # define YYFPRINTF fprintf
30187 : # endif
30188 :
30189 : # define YYDPRINTF(Args) \
30190 : do { \
30191 : if (yydebug) \
30192 : YYFPRINTF Args; \
30193 : } while (0)
30194 :
30195 :
30196 : /* YYLOCATION_PRINT -- Print the location on the stream.
30197 : This macro was not mandated originally: define only if we know
30198 : we won't break user code: when these are the locations we know. */
30199 :
30200 : # ifndef YYLOCATION_PRINT
30201 :
30202 : # if defined YY_LOCATION_PRINT
30203 :
30204 : /* Temporary convenience wrapper in case some people defined the
30205 : undocumented and private YY_LOCATION_PRINT macros. */
30206 : # define YYLOCATION_PRINT(File, Loc) YY_LOCATION_PRINT(File, *(Loc))
30207 :
30208 : # elif defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
30209 :
30210 : /* Print *YYLOCP on YYO. Private, do not rely on its existence. */
30211 :
30212 : YY_ATTRIBUTE_UNUSED
30213 : static int
30214 : yy_location_print_ (FILE *yyo, YYLTYPE const * const yylocp)
30215 : {
30216 : int res = 0;
30217 : int end_col = 0 != yylocp->last_column ? yylocp->last_column - 1 : 0;
30218 : if (0 <= yylocp->first_line)
30219 : {
30220 : res += YYFPRINTF (yyo, "%d", yylocp->first_line);
30221 : if (0 <= yylocp->first_column)
30222 : res += YYFPRINTF (yyo, ".%d", yylocp->first_column);
30223 : }
30224 : if (0 <= yylocp->last_line)
30225 : {
30226 : if (yylocp->first_line < yylocp->last_line)
30227 : {
30228 : res += YYFPRINTF (yyo, "-%d", yylocp->last_line);
30229 : if (0 <= end_col)
30230 : res += YYFPRINTF (yyo, ".%d", end_col);
30231 : }
30232 : else if (0 <= end_col && yylocp->first_column < end_col)
30233 : res += YYFPRINTF (yyo, "-%d", end_col);
30234 : }
30235 : return res;
30236 : }
30237 :
30238 : # define YYLOCATION_PRINT yy_location_print_
30239 :
30240 : /* Temporary convenience wrapper in case some people defined the
30241 : undocumented and private YY_LOCATION_PRINT macros. */
30242 : # define YY_LOCATION_PRINT(File, Loc) YYLOCATION_PRINT(File, &(Loc))
30243 :
30244 : # else
30245 :
30246 : # define YYLOCATION_PRINT(File, Loc) ((void) 0)
30247 : /* Temporary convenience wrapper in case some people defined the
30248 : undocumented and private YY_LOCATION_PRINT macros. */
30249 : # define YY_LOCATION_PRINT YYLOCATION_PRINT
30250 :
30251 : # endif
30252 : # endif /* !defined YYLOCATION_PRINT */
30253 :
30254 :
30255 : # define YY_SYMBOL_PRINT(Title, Kind, Value, Location) \
30256 : do { \
30257 : if (yydebug) \
30258 : { \
30259 : YYFPRINTF (stderr, "%s ", Title); \
30260 : yy_symbol_print (stderr, \
30261 : Kind, Value, Location, yyscanner); \
30262 : YYFPRINTF (stderr, "\n"); \
30263 : } \
30264 : } while (0)
30265 :
30266 :
30267 : /*-----------------------------------.
30268 : | Print this symbol's value on YYO. |
30269 : `-----------------------------------*/
30270 :
30271 : static void
30272 : yy_symbol_value_print (FILE *yyo,
30273 : yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
30274 : {
30275 : FILE *yyoutput = yyo;
30276 : YY_USE (yyoutput);
30277 : YY_USE (yylocationp);
30278 : YY_USE (yyscanner);
30279 : if (!yyvaluep)
30280 : return;
30281 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
30282 : YY_USE (yykind);
30283 : YY_IGNORE_MAYBE_UNINITIALIZED_END
30284 : }
30285 :
30286 :
30287 : /*---------------------------.
30288 : | Print this symbol on YYO. |
30289 : `---------------------------*/
30290 :
30291 : static void
30292 : yy_symbol_print (FILE *yyo,
30293 : yysymbol_kind_t yykind, YYSTYPE const * const yyvaluep, YYLTYPE const * const yylocationp, core_yyscan_t yyscanner)
30294 : {
30295 : YYFPRINTF (yyo, "%s %s (",
30296 : yykind < YYNTOKENS ? "token" : "nterm", yysymbol_name (yykind));
30297 :
30298 : YYLOCATION_PRINT (yyo, yylocationp);
30299 : YYFPRINTF (yyo, ": ");
30300 : yy_symbol_value_print (yyo, yykind, yyvaluep, yylocationp, yyscanner);
30301 : YYFPRINTF (yyo, ")");
30302 : }
30303 :
30304 : /*------------------------------------------------------------------.
30305 : | yy_stack_print -- Print the state stack from its BOTTOM up to its |
30306 : | TOP (included). |
30307 : `------------------------------------------------------------------*/
30308 :
30309 : static void
30310 : yy_stack_print (yy_state_t *yybottom, yy_state_t *yytop)
30311 : {
30312 : YYFPRINTF (stderr, "Stack now");
30313 : for (; yybottom <= yytop; yybottom++)
30314 : {
30315 : int yybot = *yybottom;
30316 : YYFPRINTF (stderr, " %d", yybot);
30317 : }
30318 : YYFPRINTF (stderr, "\n");
30319 : }
30320 :
30321 : # define YY_STACK_PRINT(Bottom, Top) \
30322 : do { \
30323 : if (yydebug) \
30324 : yy_stack_print ((Bottom), (Top)); \
30325 : } while (0)
30326 :
30327 :
30328 : /*------------------------------------------------.
30329 : | Report that the YYRULE is going to be reduced. |
30330 : `------------------------------------------------*/
30331 :
30332 : static void
30333 : yy_reduce_print (yy_state_t *yyssp, YYSTYPE *yyvsp, YYLTYPE *yylsp,
30334 : int yyrule, core_yyscan_t yyscanner)
30335 : {
30336 : int yylno = yyrline[yyrule];
30337 : int yynrhs = yyr2[yyrule];
30338 : int yyi;
30339 : YYFPRINTF (stderr, "Reducing stack by rule %d (line %d):\n",
30340 : yyrule - 1, yylno);
30341 : /* The symbols being reduced. */
30342 : for (yyi = 0; yyi < yynrhs; yyi++)
30343 : {
30344 : YYFPRINTF (stderr, " $%d = ", yyi + 1);
30345 : yy_symbol_print (stderr,
30346 : YY_ACCESSING_SYMBOL (+yyssp[yyi + 1 - yynrhs]),
30347 : &yyvsp[(yyi + 1) - (yynrhs)],
30348 : &(yylsp[(yyi + 1) - (yynrhs)]), yyscanner);
30349 : YYFPRINTF (stderr, "\n");
30350 : }
30351 : }
30352 :
30353 : # define YY_REDUCE_PRINT(Rule) \
30354 : do { \
30355 : if (yydebug) \
30356 : yy_reduce_print (yyssp, yyvsp, yylsp, Rule, yyscanner); \
30357 : } while (0)
30358 :
30359 : /* Nonzero means print parse trace. It is left uninitialized so that
30360 : multiple parsers can coexist. */
30361 : int yydebug;
30362 : #else /* !YYDEBUG */
30363 : # define YYDPRINTF(Args) ((void) 0)
30364 : # define YY_SYMBOL_PRINT(Title, Kind, Value, Location)
30365 : # define YY_STACK_PRINT(Bottom, Top)
30366 : # define YY_REDUCE_PRINT(Rule)
30367 : #endif /* !YYDEBUG */
30368 :
30369 :
30370 : /* YYINITDEPTH -- initial size of the parser's stacks. */
30371 : #ifndef YYINITDEPTH
30372 : # define YYINITDEPTH 200
30373 : #endif
30374 :
30375 : /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only
30376 : if the built-in stack extension method is used).
30377 :
30378 : Do not make this value too large; the results are undefined if
30379 : YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH)
30380 : evaluated with infinite-precision integer arithmetic. */
30381 :
30382 : #ifndef YYMAXDEPTH
30383 : # define YYMAXDEPTH 10000
30384 : #endif
30385 :
30386 :
30387 :
30388 :
30389 :
30390 :
30391 : /*-----------------------------------------------.
30392 : | Release the memory associated to this symbol. |
30393 : `-----------------------------------------------*/
30394 :
30395 : static void
30396 1566892 : yydestruct (const char *yymsg,
30397 : yysymbol_kind_t yykind, YYSTYPE *yyvaluep, YYLTYPE *yylocationp, core_yyscan_t yyscanner)
30398 : {
30399 : YY_USE (yyvaluep);
30400 : YY_USE (yylocationp);
30401 : YY_USE (yyscanner);
30402 1566892 : if (!yymsg)
30403 0 : yymsg = "Deleting";
30404 : YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
30405 :
30406 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
30407 : YY_USE (yykind);
30408 : YY_IGNORE_MAYBE_UNINITIALIZED_END
30409 1566892 : }
30410 :
30411 :
30412 :
30413 :
30414 :
30415 :
30416 : /*----------.
30417 : | yyparse. |
30418 : `----------*/
30419 :
30420 : int
30421 784660 : yyparse (core_yyscan_t yyscanner)
30422 : {
30423 : /* Lookahead token kind. */
30424 : int yychar;
30425 :
30426 :
30427 : /* The semantic value of the lookahead symbol. */
30428 : /* Default value used for initialization, for pacifying older GCCs
30429 : or non-GCC compilers. */
30430 : YY_INITIAL_VALUE (static YYSTYPE yyval_default;)
30431 : YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default);
30432 :
30433 : /* Location data for the lookahead symbol. */
30434 : static YYLTYPE yyloc_default
30435 : # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
30436 : = { 1, 1, 1, 1 }
30437 : # endif
30438 : ;
30439 784660 : YYLTYPE yylloc = yyloc_default;
30440 :
30441 : /* Number of syntax errors so far. */
30442 784660 : int yynerrs = 0;
30443 :
30444 784660 : yy_state_fast_t yystate = 0;
30445 : /* Number of tokens to shift before error messages enabled. */
30446 784660 : int yyerrstatus = 0;
30447 :
30448 : /* Refer to the stacks through separate pointers, to allow yyoverflow
30449 : to reallocate them elsewhere. */
30450 :
30451 : /* Their size. */
30452 784660 : YYPTRDIFF_T yystacksize = YYINITDEPTH;
30453 :
30454 : /* The state stack: array, bottom, top. */
30455 : yy_state_t yyssa[YYINITDEPTH];
30456 784660 : yy_state_t *yyss = yyssa;
30457 784660 : yy_state_t *yyssp = yyss;
30458 :
30459 : /* The semantic value stack: array, bottom, top. */
30460 : YYSTYPE yyvsa[YYINITDEPTH];
30461 784660 : YYSTYPE *yyvs = yyvsa;
30462 784660 : YYSTYPE *yyvsp = yyvs;
30463 :
30464 : /* The location stack: array, bottom, top. */
30465 : YYLTYPE yylsa[YYINITDEPTH];
30466 784660 : YYLTYPE *yyls = yylsa;
30467 784660 : YYLTYPE *yylsp = yyls;
30468 :
30469 : int yyn;
30470 : /* The return value of yyparse. */
30471 : int yyresult;
30472 : /* Lookahead symbol kind. */
30473 784660 : yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
30474 : /* The variables used to return semantic value and location from the
30475 : action routines. */
30476 : YYSTYPE yyval;
30477 : YYLTYPE yyloc;
30478 :
30479 : /* The locations where the error started and ended. */
30480 : YYLTYPE yyerror_range[3];
30481 :
30482 :
30483 :
30484 : #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
30485 :
30486 : /* The number of symbols on the RHS of the reduced rule.
30487 : Keep to zero when no symbol should be popped. */
30488 784660 : int yylen = 0;
30489 :
30490 : YYDPRINTF ((stderr, "Starting parse\n"));
30491 :
30492 784660 : yychar = YYEMPTY; /* Cause a token to be read. */
30493 :
30494 784660 : yylsp[0] = yylloc;
30495 784660 : goto yysetstate;
30496 :
30497 :
30498 : /*------------------------------------------------------------.
30499 : | yynewstate -- push a new state, which is found in yystate. |
30500 : `------------------------------------------------------------*/
30501 73407840 : yynewstate:
30502 : /* In all cases, when you get here, the value and location stacks
30503 : have just been pushed. So pushing a state here evens the stacks. */
30504 73407840 : yyssp++;
30505 :
30506 :
30507 : /*--------------------------------------------------------------------.
30508 : | yysetstate -- set current state (the top of the stack) to yystate. |
30509 : `--------------------------------------------------------------------*/
30510 74192500 : yysetstate:
30511 : YYDPRINTF ((stderr, "Entering state %d\n", yystate));
30512 : YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
30513 : YY_IGNORE_USELESS_CAST_BEGIN
30514 74192500 : *yyssp = YY_CAST (yy_state_t, yystate);
30515 : YY_IGNORE_USELESS_CAST_END
30516 : YY_STACK_PRINT (yyss, yyssp);
30517 :
30518 74192500 : if (yyss + yystacksize - 1 <= yyssp)
30519 : #if !defined yyoverflow && !defined YYSTACK_RELOCATE
30520 : YYNOMEM;
30521 : #else
30522 : {
30523 : /* Get the current used size of the three stacks, in elements. */
30524 0 : YYPTRDIFF_T yysize = yyssp - yyss + 1;
30525 :
30526 : # if defined yyoverflow
30527 : {
30528 : /* Give user a chance to reallocate the stack. Use copies of
30529 : these so that the &'s don't force the real ones into
30530 : memory. */
30531 : yy_state_t *yyss1 = yyss;
30532 : YYSTYPE *yyvs1 = yyvs;
30533 : YYLTYPE *yyls1 = yyls;
30534 :
30535 : /* Each stack pointer address is followed by the size of the
30536 : data in use in that stack, in bytes. This used to be a
30537 : conditional around just the two extra args, but that might
30538 : be undefined if yyoverflow is a macro. */
30539 : yyoverflow (YY_("memory exhausted"),
30540 : &yyss1, yysize * YYSIZEOF (*yyssp),
30541 : &yyvs1, yysize * YYSIZEOF (*yyvsp),
30542 : &yyls1, yysize * YYSIZEOF (*yylsp),
30543 : &yystacksize);
30544 : yyss = yyss1;
30545 : yyvs = yyvs1;
30546 : yyls = yyls1;
30547 : }
30548 : # else /* defined YYSTACK_RELOCATE */
30549 : /* Extend the stack our own way. */
30550 0 : if (YYMAXDEPTH <= yystacksize)
30551 0 : YYNOMEM;
30552 0 : yystacksize *= 2;
30553 0 : if (YYMAXDEPTH < yystacksize)
30554 0 : yystacksize = YYMAXDEPTH;
30555 :
30556 : {
30557 0 : yy_state_t *yyss1 = yyss;
30558 : union yyalloc *yyptr =
30559 0 : YY_CAST (union yyalloc *,
30560 : YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
30561 0 : if (! yyptr)
30562 0 : YYNOMEM;
30563 0 : YYSTACK_RELOCATE (yyss_alloc, yyss);
30564 0 : YYSTACK_RELOCATE (yyvs_alloc, yyvs);
30565 0 : YYSTACK_RELOCATE (yyls_alloc, yyls);
30566 : # undef YYSTACK_RELOCATE
30567 0 : if (yyss1 != yyssa)
30568 0 : YYSTACK_FREE (yyss1);
30569 : }
30570 : # endif
30571 :
30572 0 : yyssp = yyss + yysize - 1;
30573 0 : yyvsp = yyvs + yysize - 1;
30574 0 : yylsp = yyls + yysize - 1;
30575 :
30576 : YY_IGNORE_USELESS_CAST_BEGIN
30577 : YYDPRINTF ((stderr, "Stack size increased to %ld\n",
30578 : YY_CAST (long, yystacksize)));
30579 : YY_IGNORE_USELESS_CAST_END
30580 :
30581 0 : if (yyss + yystacksize - 1 <= yyssp)
30582 0 : YYABORT;
30583 : }
30584 : #endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
30585 :
30586 :
30587 74192500 : if (yystate == YYFINAL)
30588 783448 : YYACCEPT;
30589 :
30590 73409052 : goto yybackup;
30591 :
30592 :
30593 : /*-----------.
30594 : | yybackup. |
30595 : `-----------*/
30596 73409052 : yybackup:
30597 : /* Do appropriate processing given the current state. Read a
30598 : lookahead token if we need one and don't already have one. */
30599 :
30600 : /* First try to decide what to do without reference to lookahead token. */
30601 73409052 : yyn = yypact[yystate];
30602 73409052 : if (yypact_value_is_default (yyn))
30603 31773252 : goto yydefault;
30604 :
30605 : /* Not known => get a lookahead token if don't already have one. */
30606 :
30607 : /* YYCHAR is either empty, or end-of-input, or a valid lookahead. */
30608 41635800 : if (yychar == YYEMPTY)
30609 : {
30610 : YYDPRINTF ((stderr, "Reading a token\n"));
30611 19894168 : yychar = yylex (&yylval, &yylloc, yyscanner);
30612 : }
30613 :
30614 41635494 : if (yychar <= YYEOF)
30615 : {
30616 3680656 : yychar = YYEOF;
30617 3680656 : yytoken = YYSYMBOL_YYEOF;
30618 : YYDPRINTF ((stderr, "Now at end of input.\n"));
30619 : }
30620 37954838 : else if (yychar == YYerror)
30621 : {
30622 : /* The scanner already issued an error message, process directly
30623 : to error recovery. But do not keep the error token as
30624 : lookahead, it is too special and may lead us to an endless
30625 : loop in error recovery. */
30626 0 : yychar = YYUNDEF;
30627 0 : yytoken = YYSYMBOL_YYerror;
30628 0 : yyerror_range[1] = yylloc;
30629 0 : goto yyerrlab1;
30630 : }
30631 : else
30632 : {
30633 37954838 : yytoken = YYTRANSLATE (yychar);
30634 : YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
30635 : }
30636 :
30637 : /* If the proper action on seeing token YYTOKEN is to reduce or to
30638 : detect an error, take that action. */
30639 41635494 : yyn += yytoken;
30640 41635494 : if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
30641 20532276 : goto yydefault;
30642 21103218 : yyn = yytable[yyn];
30643 21103218 : if (yyn <= 0)
30644 : {
30645 1210148 : if (yytable_value_is_error (yyn))
30646 0 : goto yyerrlab;
30647 1210148 : yyn = -yyn;
30648 1210148 : goto yyreduce;
30649 : }
30650 :
30651 : /* Count tokens shifted since error; after three, turn off error
30652 : status. */
30653 19893070 : if (yyerrstatus)
30654 0 : yyerrstatus--;
30655 :
30656 : /* Shift the lookahead token. */
30657 : YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
30658 19893070 : yystate = yyn;
30659 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
30660 19893070 : *++yyvsp = yylval;
30661 : YY_IGNORE_MAYBE_UNINITIALIZED_END
30662 19893070 : *++yylsp = yylloc;
30663 :
30664 : /* Discard the shifted token. */
30665 19893070 : yychar = YYEMPTY;
30666 19893070 : goto yynewstate;
30667 :
30668 :
30669 : /*-----------------------------------------------------------.
30670 : | yydefault -- do the default action for the current state. |
30671 : `-----------------------------------------------------------*/
30672 52305528 : yydefault:
30673 52305528 : yyn = yydefact[yystate];
30674 52305528 : if (yyn == 0)
30675 696 : goto yyerrlab;
30676 52304832 : goto yyreduce;
30677 :
30678 :
30679 : /*-----------------------------.
30680 : | yyreduce -- do a reduction. |
30681 : `-----------------------------*/
30682 53514980 : yyreduce:
30683 : /* yyn is the number of a rule to reduce with. */
30684 53514980 : yylen = yyr2[yyn];
30685 :
30686 : /* If YYLEN is nonzero, implement the default value of the action:
30687 : '$$ = $1'.
30688 :
30689 : Otherwise, the following line sets YYVAL to garbage.
30690 : This behavior is undocumented and Bison
30691 : users should not rely upon it. Assigning to YYVAL
30692 : unconditionally makes the parser a bit smaller, and it avoids a
30693 : GCC warning that YYVAL may be used uninitialized. */
30694 53514980 : yyval = yyvsp[1-yylen];
30695 :
30696 : /* Default location. */
30697 54325876 : YYLLOC_DEFAULT (yyloc, (yylsp - yylen), yylen);
30698 53514980 : yyerror_range[1] = yyloc;
30699 : YY_REDUCE_PRINT (yyn);
30700 53514980 : switch (yyn)
30701 : {
30702 733736 : case 2: /* parse_toplevel: stmtmulti */
30703 : #line 917 "gram.y"
30704 : {
30705 : pg_yyget_extra(yyscanner)->parsetree = (yyvsp[0].list);
30706 : (void) yynerrs; /* suppress compiler warning */
30707 : }
30708 : #line 30709 "gram.c"
30709 733736 : break;
30710 :
30711 9636 : case 3: /* parse_toplevel: MODE_TYPE_NAME Typename */
30712 : #line 922 "gram.y"
30713 : {
30714 : pg_yyget_extra(yyscanner)->parsetree = list_make1((yyvsp[0].typnam));
30715 : }
30716 : #line 30717 "gram.c"
30717 9636 : break;
30718 :
30719 33128 : case 4: /* parse_toplevel: MODE_PLPGSQL_EXPR PLpgSQL_Expr */
30720 : #line 926 "gram.y"
30721 : {
30722 : pg_yyget_extra(yyscanner)->parsetree =
30723 : list_make1(makeRawStmt((yyvsp[0].node), (yylsp[0])));
30724 : }
30725 : #line 30726 "gram.c"
30726 33128 : break;
30727 :
30728 6324 : case 5: /* parse_toplevel: MODE_PLPGSQL_ASSIGN1 PLAssignStmt */
30729 : #line 931 "gram.y"
30730 : {
30731 : PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
30732 :
30733 : n->nnames = 1;
30734 : pg_yyget_extra(yyscanner)->parsetree =
30735 : list_make1(makeRawStmt((Node *) n, (yylsp[0])));
30736 : }
30737 : #line 30738 "gram.c"
30738 6324 : break;
30739 :
30740 674 : case 6: /* parse_toplevel: MODE_PLPGSQL_ASSIGN2 PLAssignStmt */
30741 : #line 939 "gram.y"
30742 : {
30743 : PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
30744 :
30745 : n->nnames = 2;
30746 : pg_yyget_extra(yyscanner)->parsetree =
30747 : list_make1(makeRawStmt((Node *) n, (yylsp[0])));
30748 : }
30749 : #line 30750 "gram.c"
30750 674 : break;
30751 :
30752 28 : case 7: /* parse_toplevel: MODE_PLPGSQL_ASSIGN3 PLAssignStmt */
30753 : #line 947 "gram.y"
30754 : {
30755 : PLAssignStmt *n = (PLAssignStmt *) (yyvsp[0].node);
30756 :
30757 : n->nnames = 3;
30758 : pg_yyget_extra(yyscanner)->parsetree =
30759 : list_make1(makeRawStmt((Node *) n, (yylsp[0])));
30760 : }
30761 : #line 30762 "gram.c"
30762 28 : break;
30763 :
30764 583436 : case 8: /* stmtmulti: stmtmulti ';' toplevel_stmt */
30765 : #line 963 "gram.y"
30766 : {
30767 : if ((yyvsp[-2].list) != NIL)
30768 : {
30769 : /* update length of previous stmt */
30770 : updateRawStmtEnd(llast_node(RawStmt, (yyvsp[-2].list)), (yylsp[-1]));
30771 : }
30772 : if ((yyvsp[0].node) != NULL)
30773 : (yyval.list) = lappend((yyvsp[-2].list), makeRawStmt((yyvsp[0].node), (yylsp[0])));
30774 : else
30775 : (yyval.list) = (yyvsp[-2].list);
30776 : }
30777 : #line 30778 "gram.c"
30778 583436 : break;
30779 :
30780 733744 : case 9: /* stmtmulti: toplevel_stmt */
30781 : #line 975 "gram.y"
30782 : {
30783 : if ((yyvsp[0].node) != NULL)
30784 : (yyval.list) = list_make1(makeRawStmt((yyvsp[0].node), (yylsp[0])));
30785 : else
30786 : (yyval.list) = NIL;
30787 : }
30788 : #line 30789 "gram.c"
30789 733744 : break;
30790 :
30791 529650 : case 136: /* stmt: %empty */
30792 : #line 1118 "gram.y"
30793 : { (yyval.node) = NULL; }
30794 : #line 30795 "gram.c"
30795 529650 : break;
30796 :
30797 5580 : case 137: /* opt_single_name: ColId */
30798 : #line 1125 "gram.y"
30799 : { (yyval.str) = (yyvsp[0].str); }
30800 : #line 30801 "gram.c"
30801 5580 : break;
30802 :
30803 1516 : case 138: /* opt_single_name: %empty */
30804 : #line 1126 "gram.y"
30805 : { (yyval.str) = NULL; }
30806 : #line 30807 "gram.c"
30807 1516 : break;
30808 :
30809 1900 : case 139: /* opt_qualified_name: any_name */
30810 : #line 1130 "gram.y"
30811 : { (yyval.list) = (yyvsp[0].list); }
30812 : #line 30813 "gram.c"
30813 1900 : break;
30814 :
30815 15632 : case 140: /* opt_qualified_name: %empty */
30816 : #line 1131 "gram.y"
30817 : { (yyval.list) = NIL; }
30818 : #line 30819 "gram.c"
30819 15632 : break;
30820 :
30821 1024 : case 141: /* opt_concurrently: CONCURRENTLY */
30822 : #line 1135 "gram.y"
30823 : { (yyval.boolean) = true; }
30824 : #line 30825 "gram.c"
30825 1024 : break;
30826 :
30827 7828 : case 142: /* opt_concurrently: %empty */
30828 : #line 1136 "gram.y"
30829 : { (yyval.boolean) = false; }
30830 : #line 30831 "gram.c"
30831 7828 : break;
30832 :
30833 1958 : case 143: /* opt_drop_behavior: CASCADE */
30834 : #line 1140 "gram.y"
30835 : { (yyval.dbehavior) = DROP_CASCADE; }
30836 : #line 30837 "gram.c"
30837 1958 : break;
30838 :
30839 170 : case 144: /* opt_drop_behavior: RESTRICT */
30840 : #line 1141 "gram.y"
30841 : { (yyval.dbehavior) = DROP_RESTRICT; }
30842 : #line 30843 "gram.c"
30843 170 : break;
30844 :
30845 39564 : case 145: /* opt_drop_behavior: %empty */
30846 : #line 1142 "gram.y"
30847 : { (yyval.dbehavior) = DROP_RESTRICT; /* default */ }
30848 : #line 30849 "gram.c"
30849 39564 : break;
30850 :
30851 620 : case 146: /* CallStmt: CALL func_application */
30852 : #line 1152 "gram.y"
30853 : {
30854 : CallStmt *n = makeNode(CallStmt);
30855 :
30856 : n->funccall = castNode(FuncCall, (yyvsp[0].node));
30857 : (yyval.node) = (Node *) n;
30858 : }
30859 : #line 30860 "gram.c"
30860 620 : break;
30861 :
30862 1364 : case 147: /* CreateRoleStmt: CREATE ROLE RoleId opt_with OptRoleList */
30863 : #line 1168 "gram.y"
30864 : {
30865 : CreateRoleStmt *n = makeNode(CreateRoleStmt);
30866 :
30867 : n->stmt_type = ROLESTMT_ROLE;
30868 : n->role = (yyvsp[-2].str);
30869 : n->options = (yyvsp[0].list);
30870 : (yyval.node) = (Node *) n;
30871 : }
30872 : #line 30873 "gram.c"
30873 1364 : break;
30874 :
30875 1182 : case 151: /* OptRoleList: OptRoleList CreateOptRoleElem */
30876 : #line 1190 "gram.y"
30877 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
30878 : #line 30879 "gram.c"
30879 1182 : break;
30880 :
30881 1844 : case 152: /* OptRoleList: %empty */
30882 : #line 1191 "gram.y"
30883 : { (yyval.list) = NIL; }
30884 : #line 30885 "gram.c"
30885 1844 : break;
30886 :
30887 658 : case 153: /* AlterOptRoleList: AlterOptRoleList AlterOptRoleElem */
30888 : #line 1195 "gram.y"
30889 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
30890 : #line 30891 "gram.c"
30891 658 : break;
30892 :
30893 418 : case 154: /* AlterOptRoleList: %empty */
30894 : #line 1196 "gram.y"
30895 : { (yyval.list) = NIL; }
30896 : #line 30897 "gram.c"
30897 418 : break;
30898 :
30899 188 : case 155: /* AlterOptRoleElem: PASSWORD Sconst */
30900 : #line 1201 "gram.y"
30901 : {
30902 : (yyval.defelt) = makeDefElem("password",
30903 : (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
30904 : }
30905 : #line 30906 "gram.c"
30906 188 : break;
30907 :
30908 12 : case 156: /* AlterOptRoleElem: PASSWORD NULL_P */
30909 : #line 1206 "gram.y"
30910 : {
30911 : (yyval.defelt) = makeDefElem("password", NULL, (yylsp[-1]));
30912 : }
30913 : #line 30914 "gram.c"
30914 12 : break;
30915 :
30916 18 : case 157: /* AlterOptRoleElem: ENCRYPTED PASSWORD Sconst */
30917 : #line 1210 "gram.y"
30918 : {
30919 : /*
30920 : * These days, passwords are always stored in encrypted
30921 : * form, so there is no difference between PASSWORD and
30922 : * ENCRYPTED PASSWORD.
30923 : */
30924 : (yyval.defelt) = makeDefElem("password",
30925 : (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
30926 : }
30927 : #line 30928 "gram.c"
30928 18 : break;
30929 :
30930 0 : case 158: /* AlterOptRoleElem: UNENCRYPTED PASSWORD Sconst */
30931 : #line 1220 "gram.y"
30932 : {
30933 : ereport(ERROR,
30934 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
30935 : errmsg("UNENCRYPTED PASSWORD is no longer supported"),
30936 : errhint("Remove UNENCRYPTED to store the password in encrypted form instead."),
30937 : parser_errposition((yylsp[-2]))));
30938 : }
30939 : #line 30940 "gram.c"
30940 : break;
30941 :
30942 94 : case 159: /* AlterOptRoleElem: INHERIT */
30943 : #line 1228 "gram.y"
30944 : {
30945 : (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(true), (yylsp[0]));
30946 : }
30947 : #line 30948 "gram.c"
30948 94 : break;
30949 :
30950 26 : case 160: /* AlterOptRoleElem: CONNECTION LIMIT SignedIconst */
30951 : #line 1232 "gram.y"
30952 : {
30953 : (yyval.defelt) = makeDefElem("connectionlimit", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2]));
30954 : }
30955 : #line 30956 "gram.c"
30956 26 : break;
30957 :
30958 2 : case 161: /* AlterOptRoleElem: VALID UNTIL Sconst */
30959 : #line 1236 "gram.y"
30960 : {
30961 : (yyval.defelt) = makeDefElem("validUntil", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
30962 : }
30963 : #line 30964 "gram.c"
30964 2 : break;
30965 :
30966 6 : case 162: /* AlterOptRoleElem: USER role_list */
30967 : #line 1241 "gram.y"
30968 : {
30969 : (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
30970 : }
30971 : #line 30972 "gram.c"
30972 6 : break;
30973 :
30974 1344 : case 163: /* AlterOptRoleElem: IDENT */
30975 : #line 1245 "gram.y"
30976 : {
30977 : /*
30978 : * We handle identifiers that aren't parser keywords with
30979 : * the following special-case codes, to avoid bloating the
30980 : * size of the main parser.
30981 : */
30982 : if (strcmp((yyvsp[0].str), "superuser") == 0)
30983 : (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(true), (yylsp[0]));
30984 : else if (strcmp((yyvsp[0].str), "nosuperuser") == 0)
30985 : (yyval.defelt) = makeDefElem("superuser", (Node *) makeBoolean(false), (yylsp[0]));
30986 : else if (strcmp((yyvsp[0].str), "createrole") == 0)
30987 : (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(true), (yylsp[0]));
30988 : else if (strcmp((yyvsp[0].str), "nocreaterole") == 0)
30989 : (yyval.defelt) = makeDefElem("createrole", (Node *) makeBoolean(false), (yylsp[0]));
30990 : else if (strcmp((yyvsp[0].str), "replication") == 0)
30991 : (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(true), (yylsp[0]));
30992 : else if (strcmp((yyvsp[0].str), "noreplication") == 0)
30993 : (yyval.defelt) = makeDefElem("isreplication", (Node *) makeBoolean(false), (yylsp[0]));
30994 : else if (strcmp((yyvsp[0].str), "createdb") == 0)
30995 : (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(true), (yylsp[0]));
30996 : else if (strcmp((yyvsp[0].str), "nocreatedb") == 0)
30997 : (yyval.defelt) = makeDefElem("createdb", (Node *) makeBoolean(false), (yylsp[0]));
30998 : else if (strcmp((yyvsp[0].str), "login") == 0)
30999 : (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(true), (yylsp[0]));
31000 : else if (strcmp((yyvsp[0].str), "nologin") == 0)
31001 : (yyval.defelt) = makeDefElem("canlogin", (Node *) makeBoolean(false), (yylsp[0]));
31002 : else if (strcmp((yyvsp[0].str), "bypassrls") == 0)
31003 : (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(true), (yylsp[0]));
31004 : else if (strcmp((yyvsp[0].str), "nobypassrls") == 0)
31005 : (yyval.defelt) = makeDefElem("bypassrls", (Node *) makeBoolean(false), (yylsp[0]));
31006 : else if (strcmp((yyvsp[0].str), "noinherit") == 0)
31007 : {
31008 : /*
31009 : * Note that INHERIT is a keyword, so it's handled by main parser, but
31010 : * NOINHERIT is handled here.
31011 : */
31012 : (yyval.defelt) = makeDefElem("inherit", (Node *) makeBoolean(false), (yylsp[0]));
31013 : }
31014 : else
31015 : ereport(ERROR,
31016 : (errcode(ERRCODE_SYNTAX_ERROR),
31017 : errmsg("unrecognized role option \"%s\"", (yyvsp[0].str)),
31018 : parser_errposition((yylsp[0]))));
31019 : }
31020 : #line 31021 "gram.c"
31021 1344 : break;
31022 :
31023 1032 : case 164: /* CreateOptRoleElem: AlterOptRoleElem */
31024 : #line 1292 "gram.y"
31025 : { (yyval.defelt) = (yyvsp[0].defelt); }
31026 : #line 31027 "gram.c"
31027 1032 : break;
31028 :
31029 6 : case 165: /* CreateOptRoleElem: SYSID Iconst */
31030 : #line 1295 "gram.y"
31031 : {
31032 : (yyval.defelt) = makeDefElem("sysid", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-1]));
31033 : }
31034 : #line 31035 "gram.c"
31035 6 : break;
31036 :
31037 22 : case 166: /* CreateOptRoleElem: ADMIN role_list */
31038 : #line 1299 "gram.y"
31039 : {
31040 : (yyval.defelt) = makeDefElem("adminmembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
31041 : }
31042 : #line 31043 "gram.c"
31043 22 : break;
31044 :
31045 22 : case 167: /* CreateOptRoleElem: ROLE role_list */
31046 : #line 1303 "gram.y"
31047 : {
31048 : (yyval.defelt) = makeDefElem("rolemembers", (Node *) (yyvsp[0].list), (yylsp[-1]));
31049 : }
31050 : #line 31051 "gram.c"
31051 22 : break;
31052 :
31053 100 : case 168: /* CreateOptRoleElem: IN_P ROLE role_list */
31054 : #line 1307 "gram.y"
31055 : {
31056 : (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[0].list), (yylsp[-2]));
31057 : }
31058 : #line 31059 "gram.c"
31059 100 : break;
31060 :
31061 0 : case 169: /* CreateOptRoleElem: IN_P GROUP_P role_list */
31062 : #line 1311 "gram.y"
31063 : {
31064 : (yyval.defelt) = makeDefElem("addroleto", (Node *) (yyvsp[0].list), (yylsp[-2]));
31065 : }
31066 : #line 31067 "gram.c"
31067 0 : break;
31068 :
31069 456 : case 170: /* CreateUserStmt: CREATE USER RoleId opt_with OptRoleList */
31070 : #line 1325 "gram.y"
31071 : {
31072 : CreateRoleStmt *n = makeNode(CreateRoleStmt);
31073 :
31074 : n->stmt_type = ROLESTMT_USER;
31075 : n->role = (yyvsp[-2].str);
31076 : n->options = (yyvsp[0].list);
31077 : (yyval.node) = (Node *) n;
31078 : }
31079 : #line 31080 "gram.c"
31080 456 : break;
31081 :
31082 326 : case 171: /* AlterRoleStmt: ALTER ROLE RoleSpec opt_with AlterOptRoleList */
31083 : #line 1344 "gram.y"
31084 : {
31085 : AlterRoleStmt *n = makeNode(AlterRoleStmt);
31086 :
31087 : n->role = (yyvsp[-2].rolespec);
31088 : n->action = +1; /* add, if there are members */
31089 : n->options = (yyvsp[0].list);
31090 : (yyval.node) = (Node *) n;
31091 : }
31092 : #line 31093 "gram.c"
31093 326 : break;
31094 :
31095 92 : case 172: /* AlterRoleStmt: ALTER USER RoleSpec opt_with AlterOptRoleList */
31096 : #line 1353 "gram.y"
31097 : {
31098 : AlterRoleStmt *n = makeNode(AlterRoleStmt);
31099 :
31100 : n->role = (yyvsp[-2].rolespec);
31101 : n->action = +1; /* add, if there are members */
31102 : n->options = (yyvsp[0].list);
31103 : (yyval.node) = (Node *) n;
31104 : }
31105 : #line 31106 "gram.c"
31106 92 : break;
31107 :
31108 86 : case 173: /* opt_in_database: %empty */
31109 : #line 1364 "gram.y"
31110 : { (yyval.str) = NULL; }
31111 : #line 31112 "gram.c"
31112 86 : break;
31113 :
31114 0 : case 174: /* opt_in_database: IN_P DATABASE name */
31115 : #line 1365 "gram.y"
31116 : { (yyval.str) = (yyvsp[0].str); }
31117 : #line 31118 "gram.c"
31118 0 : break;
31119 :
31120 48 : case 175: /* AlterRoleSetStmt: ALTER ROLE RoleSpec opt_in_database SetResetClause */
31121 : #line 1370 "gram.y"
31122 : {
31123 : AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
31124 :
31125 : n->role = (yyvsp[-2].rolespec);
31126 : n->database = (yyvsp[-1].str);
31127 : n->setstmt = (yyvsp[0].vsetstmt);
31128 : (yyval.node) = (Node *) n;
31129 : }
31130 : #line 31131 "gram.c"
31131 48 : break;
31132 :
31133 4 : case 176: /* AlterRoleSetStmt: ALTER ROLE ALL opt_in_database SetResetClause */
31134 : #line 1379 "gram.y"
31135 : {
31136 : AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
31137 :
31138 : n->role = NULL;
31139 : n->database = (yyvsp[-1].str);
31140 : n->setstmt = (yyvsp[0].vsetstmt);
31141 : (yyval.node) = (Node *) n;
31142 : }
31143 : #line 31144 "gram.c"
31144 4 : break;
31145 :
31146 26 : case 177: /* AlterRoleSetStmt: ALTER USER RoleSpec opt_in_database SetResetClause */
31147 : #line 1388 "gram.y"
31148 : {
31149 : AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
31150 :
31151 : n->role = (yyvsp[-2].rolespec);
31152 : n->database = (yyvsp[-1].str);
31153 : n->setstmt = (yyvsp[0].vsetstmt);
31154 : (yyval.node) = (Node *) n;
31155 : }
31156 : #line 31157 "gram.c"
31157 26 : break;
31158 :
31159 4 : case 178: /* AlterRoleSetStmt: ALTER USER ALL opt_in_database SetResetClause */
31160 : #line 1397 "gram.y"
31161 : {
31162 : AlterRoleSetStmt *n = makeNode(AlterRoleSetStmt);
31163 :
31164 : n->role = NULL;
31165 : n->database = (yyvsp[-1].str);
31166 : n->setstmt = (yyvsp[0].vsetstmt);
31167 : (yyval.node) = (Node *) n;
31168 : }
31169 : #line 31170 "gram.c"
31170 4 : break;
31171 :
31172 1098 : case 179: /* DropRoleStmt: DROP ROLE role_list */
31173 : #line 1419 "gram.y"
31174 : {
31175 : DropRoleStmt *n = makeNode(DropRoleStmt);
31176 :
31177 : n->missing_ok = false;
31178 : n->roles = (yyvsp[0].list);
31179 : (yyval.node) = (Node *) n;
31180 : }
31181 : #line 31182 "gram.c"
31182 1098 : break;
31183 :
31184 134 : case 180: /* DropRoleStmt: DROP ROLE IF_P EXISTS role_list */
31185 : #line 1427 "gram.y"
31186 : {
31187 : DropRoleStmt *n = makeNode(DropRoleStmt);
31188 :
31189 : n->missing_ok = true;
31190 : n->roles = (yyvsp[0].list);
31191 : (yyval.node) = (Node *) n;
31192 : }
31193 : #line 31194 "gram.c"
31194 134 : break;
31195 :
31196 404 : case 181: /* DropRoleStmt: DROP USER role_list */
31197 : #line 1435 "gram.y"
31198 : {
31199 : DropRoleStmt *n = makeNode(DropRoleStmt);
31200 :
31201 : n->missing_ok = false;
31202 : n->roles = (yyvsp[0].list);
31203 : (yyval.node) = (Node *) n;
31204 : }
31205 : #line 31206 "gram.c"
31206 404 : break;
31207 :
31208 36 : case 182: /* DropRoleStmt: DROP USER IF_P EXISTS role_list */
31209 : #line 1443 "gram.y"
31210 : {
31211 : DropRoleStmt *n = makeNode(DropRoleStmt);
31212 :
31213 : n->roles = (yyvsp[0].list);
31214 : n->missing_ok = true;
31215 : (yyval.node) = (Node *) n;
31216 : }
31217 : #line 31218 "gram.c"
31218 36 : break;
31219 :
31220 36 : case 183: /* DropRoleStmt: DROP GROUP_P role_list */
31221 : #line 1451 "gram.y"
31222 : {
31223 : DropRoleStmt *n = makeNode(DropRoleStmt);
31224 :
31225 : n->missing_ok = false;
31226 : n->roles = (yyvsp[0].list);
31227 : (yyval.node) = (Node *) n;
31228 : }
31229 : #line 31230 "gram.c"
31230 36 : break;
31231 :
31232 6 : case 184: /* DropRoleStmt: DROP GROUP_P IF_P EXISTS role_list */
31233 : #line 1459 "gram.y"
31234 : {
31235 : DropRoleStmt *n = makeNode(DropRoleStmt);
31236 :
31237 : n->missing_ok = true;
31238 : n->roles = (yyvsp[0].list);
31239 : (yyval.node) = (Node *) n;
31240 : }
31241 : #line 31242 "gram.c"
31242 6 : break;
31243 :
31244 24 : case 185: /* CreateGroupStmt: CREATE GROUP_P RoleId opt_with OptRoleList */
31245 : #line 1477 "gram.y"
31246 : {
31247 : CreateRoleStmt *n = makeNode(CreateRoleStmt);
31248 :
31249 : n->stmt_type = ROLESTMT_GROUP;
31250 : n->role = (yyvsp[-2].str);
31251 : n->options = (yyvsp[0].list);
31252 : (yyval.node) = (Node *) n;
31253 : }
31254 : #line 31255 "gram.c"
31255 24 : break;
31256 :
31257 42 : case 186: /* AlterGroupStmt: ALTER GROUP_P RoleSpec add_drop USER role_list */
31258 : #line 1496 "gram.y"
31259 : {
31260 : AlterRoleStmt *n = makeNode(AlterRoleStmt);
31261 :
31262 : n->role = (yyvsp[-3].rolespec);
31263 : n->action = (yyvsp[-2].ival);
31264 : n->options = list_make1(makeDefElem("rolemembers",
31265 : (Node *) (yyvsp[0].list), (yylsp[0])));
31266 : (yyval.node) = (Node *) n;
31267 : }
31268 : #line 31269 "gram.c"
31269 42 : break;
31270 :
31271 86 : case 187: /* add_drop: ADD_P */
31272 : #line 1507 "gram.y"
31273 : { (yyval.ival) = +1; }
31274 : #line 31275 "gram.c"
31275 86 : break;
31276 :
31277 198 : case 188: /* add_drop: DROP */
31278 : #line 1508 "gram.y"
31279 : { (yyval.ival) = -1; }
31280 : #line 31281 "gram.c"
31281 198 : break;
31282 :
31283 158 : case 189: /* CreateSchemaStmt: CREATE SCHEMA opt_single_name AUTHORIZATION RoleSpec OptSchemaEltList */
31284 : #line 1520 "gram.y"
31285 : {
31286 : CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
31287 :
31288 : /* One can omit the schema name or the authorization id. */
31289 : n->schemaname = (yyvsp[-3].str);
31290 : n->authrole = (yyvsp[-1].rolespec);
31291 : n->schemaElts = (yyvsp[0].list);
31292 : n->if_not_exists = false;
31293 : (yyval.node) = (Node *) n;
31294 : }
31295 : #line 31296 "gram.c"
31296 158 : break;
31297 :
31298 864 : case 190: /* CreateSchemaStmt: CREATE SCHEMA ColId OptSchemaEltList */
31299 : #line 1531 "gram.y"
31300 : {
31301 : CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
31302 :
31303 : /* ...but not both */
31304 : n->schemaname = (yyvsp[-1].str);
31305 : n->authrole = NULL;
31306 : n->schemaElts = (yyvsp[0].list);
31307 : n->if_not_exists = false;
31308 : (yyval.node) = (Node *) n;
31309 : }
31310 : #line 31311 "gram.c"
31311 864 : break;
31312 :
31313 18 : case 191: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS opt_single_name AUTHORIZATION RoleSpec OptSchemaEltList */
31314 : #line 1542 "gram.y"
31315 : {
31316 : CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
31317 :
31318 : /* schema name can be omitted here, too */
31319 : n->schemaname = (yyvsp[-3].str);
31320 : n->authrole = (yyvsp[-1].rolespec);
31321 : if ((yyvsp[0].list) != NIL)
31322 : ereport(ERROR,
31323 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
31324 : errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"),
31325 : parser_errposition((yylsp[0]))));
31326 : n->schemaElts = (yyvsp[0].list);
31327 : n->if_not_exists = true;
31328 : (yyval.node) = (Node *) n;
31329 : }
31330 : #line 31331 "gram.c"
31331 18 : break;
31332 :
31333 34 : case 192: /* CreateSchemaStmt: CREATE SCHEMA IF_P NOT EXISTS ColId OptSchemaEltList */
31334 : #line 1558 "gram.y"
31335 : {
31336 : CreateSchemaStmt *n = makeNode(CreateSchemaStmt);
31337 :
31338 : /* ...but not here */
31339 : n->schemaname = (yyvsp[-1].str);
31340 : n->authrole = NULL;
31341 : if ((yyvsp[0].list) != NIL)
31342 : ereport(ERROR,
31343 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
31344 : errmsg("CREATE SCHEMA IF NOT EXISTS cannot include schema elements"),
31345 : parser_errposition((yylsp[0]))));
31346 : n->schemaElts = (yyvsp[0].list);
31347 : n->if_not_exists = true;
31348 : (yyval.node) = (Node *) n;
31349 : }
31350 : #line 31351 "gram.c"
31351 28 : break;
31352 :
31353 546 : case 193: /* OptSchemaEltList: OptSchemaEltList schema_stmt */
31354 : #line 1577 "gram.y"
31355 : {
31356 : (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node));
31357 : }
31358 : #line 31359 "gram.c"
31359 546 : break;
31360 :
31361 1074 : case 194: /* OptSchemaEltList: %empty */
31362 : #line 1581 "gram.y"
31363 : { (yyval.list) = NIL; }
31364 : #line 31365 "gram.c"
31365 1074 : break;
31366 :
31367 22264 : case 201: /* VariableSetStmt: SET set_rest */
31368 : #line 1609 "gram.y"
31369 : {
31370 : VariableSetStmt *n = (yyvsp[0].vsetstmt);
31371 :
31372 : n->is_local = false;
31373 : (yyval.node) = (Node *) n;
31374 : }
31375 : #line 31376 "gram.c"
31376 22264 : break;
31377 :
31378 1230 : case 202: /* VariableSetStmt: SET LOCAL set_rest */
31379 : #line 1616 "gram.y"
31380 : {
31381 : VariableSetStmt *n = (yyvsp[0].vsetstmt);
31382 :
31383 : n->is_local = true;
31384 : (yyval.node) = (Node *) n;
31385 : }
31386 : #line 31387 "gram.c"
31387 1230 : break;
31388 :
31389 84 : case 203: /* VariableSetStmt: SET SESSION set_rest */
31390 : #line 1623 "gram.y"
31391 : {
31392 : VariableSetStmt *n = (yyvsp[0].vsetstmt);
31393 :
31394 : n->is_local = false;
31395 : (yyval.node) = (Node *) n;
31396 : }
31397 : #line 31398 "gram.c"
31398 84 : break;
31399 :
31400 684 : case 204: /* set_rest: TRANSACTION transaction_mode_list */
31401 : #line 1633 "gram.y"
31402 : {
31403 : VariableSetStmt *n = makeNode(VariableSetStmt);
31404 :
31405 : n->kind = VAR_SET_MULTI;
31406 : n->name = "TRANSACTION";
31407 : n->args = (yyvsp[0].list);
31408 : n->jumble_args = true;
31409 : n->location = -1;
31410 : (yyval.vsetstmt) = n;
31411 : }
31412 : #line 31413 "gram.c"
31413 684 : break;
31414 :
31415 18 : case 205: /* set_rest: SESSION CHARACTERISTICS AS TRANSACTION transaction_mode_list */
31416 : #line 1644 "gram.y"
31417 : {
31418 : VariableSetStmt *n = makeNode(VariableSetStmt);
31419 :
31420 : n->kind = VAR_SET_MULTI;
31421 : n->name = "SESSION CHARACTERISTICS";
31422 : n->args = (yyvsp[0].list);
31423 : n->jumble_args = true;
31424 : n->location = -1;
31425 : (yyval.vsetstmt) = n;
31426 : }
31427 : #line 31428 "gram.c"
31428 18 : break;
31429 :
31430 5230 : case 207: /* generic_set: var_name TO var_list */
31431 : #line 1659 "gram.y"
31432 : {
31433 : VariableSetStmt *n = makeNode(VariableSetStmt);
31434 :
31435 : n->kind = VAR_SET_VALUE;
31436 : n->name = (yyvsp[-2].str);
31437 : n->args = (yyvsp[0].list);
31438 : n->location = (yylsp[0]);
31439 : (yyval.vsetstmt) = n;
31440 : }
31441 : #line 31442 "gram.c"
31442 5230 : break;
31443 :
31444 15314 : case 208: /* generic_set: var_name '=' var_list */
31445 : #line 1669 "gram.y"
31446 : {
31447 : VariableSetStmt *n = makeNode(VariableSetStmt);
31448 :
31449 : n->kind = VAR_SET_VALUE;
31450 : n->name = (yyvsp[-2].str);
31451 : n->args = (yyvsp[0].list);
31452 : n->location = (yylsp[0]);
31453 : (yyval.vsetstmt) = n;
31454 : }
31455 : #line 31456 "gram.c"
31456 15314 : break;
31457 :
31458 136 : case 209: /* generic_set: var_name TO DEFAULT */
31459 : #line 1679 "gram.y"
31460 : {
31461 : VariableSetStmt *n = makeNode(VariableSetStmt);
31462 :
31463 : n->kind = VAR_SET_DEFAULT;
31464 : n->name = (yyvsp[-2].str);
31465 : n->location = -1;
31466 : (yyval.vsetstmt) = n;
31467 : }
31468 : #line 31469 "gram.c"
31469 136 : break;
31470 :
31471 10 : case 210: /* generic_set: var_name '=' DEFAULT */
31472 : #line 1688 "gram.y"
31473 : {
31474 : VariableSetStmt *n = makeNode(VariableSetStmt);
31475 :
31476 : n->kind = VAR_SET_DEFAULT;
31477 : n->name = (yyvsp[-2].str);
31478 : n->location = -1;
31479 : (yyval.vsetstmt) = n;
31480 : }
31481 : #line 31482 "gram.c"
31482 10 : break;
31483 :
31484 20568 : case 211: /* set_rest_more: generic_set */
31485 : #line 1699 "gram.y"
31486 : {(yyval.vsetstmt) = (yyvsp[0].vsetstmt);}
31487 : #line 31488 "gram.c"
31488 20568 : break;
31489 :
31490 4 : case 212: /* set_rest_more: var_name FROM CURRENT_P */
31491 : #line 1701 "gram.y"
31492 : {
31493 : VariableSetStmt *n = makeNode(VariableSetStmt);
31494 :
31495 : n->kind = VAR_SET_CURRENT;
31496 : n->name = (yyvsp[-2].str);
31497 : n->location = -1;
31498 : (yyval.vsetstmt) = n;
31499 : }
31500 : #line 31501 "gram.c"
31501 4 : break;
31502 :
31503 104 : case 213: /* set_rest_more: TIME ZONE zone_value */
31504 : #line 1711 "gram.y"
31505 : {
31506 : VariableSetStmt *n = makeNode(VariableSetStmt);
31507 :
31508 : n->kind = VAR_SET_VALUE;
31509 : n->name = "timezone";
31510 : n->location = -1;
31511 : n->jumble_args = true;
31512 : if ((yyvsp[0].node) != NULL)
31513 : n->args = list_make1((yyvsp[0].node));
31514 : else
31515 : n->kind = VAR_SET_DEFAULT;
31516 : (yyval.vsetstmt) = n;
31517 : }
31518 : #line 31519 "gram.c"
31519 104 : break;
31520 :
31521 0 : case 214: /* set_rest_more: CATALOG_P Sconst */
31522 : #line 1725 "gram.y"
31523 : {
31524 : ereport(ERROR,
31525 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
31526 : errmsg("current database cannot be changed"),
31527 : parser_errposition((yylsp[0]))));
31528 : (yyval.vsetstmt) = NULL; /*not reached*/
31529 : }
31530 : #line 31531 "gram.c"
31531 : break;
31532 :
31533 4 : case 215: /* set_rest_more: SCHEMA Sconst */
31534 : #line 1733 "gram.y"
31535 : {
31536 : VariableSetStmt *n = makeNode(VariableSetStmt);
31537 :
31538 : n->kind = VAR_SET_VALUE;
31539 : n->name = "search_path";
31540 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31541 : n->location = (yylsp[0]);
31542 : (yyval.vsetstmt) = n;
31543 : }
31544 : #line 31545 "gram.c"
31545 4 : break;
31546 :
31547 0 : case 216: /* set_rest_more: NAMES opt_encoding */
31548 : #line 1743 "gram.y"
31549 : {
31550 : VariableSetStmt *n = makeNode(VariableSetStmt);
31551 :
31552 : n->kind = VAR_SET_VALUE;
31553 : n->name = "client_encoding";
31554 : n->location = (yylsp[0]);
31555 : if ((yyvsp[0].str) != NULL)
31556 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31557 : else
31558 : n->kind = VAR_SET_DEFAULT;
31559 : (yyval.vsetstmt) = n;
31560 : }
31561 : #line 31562 "gram.c"
31562 0 : break;
31563 :
31564 962 : case 217: /* set_rest_more: ROLE NonReservedWord_or_Sconst */
31565 : #line 1756 "gram.y"
31566 : {
31567 : VariableSetStmt *n = makeNode(VariableSetStmt);
31568 :
31569 : n->kind = VAR_SET_VALUE;
31570 : n->name = "role";
31571 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31572 : n->location = (yylsp[0]);
31573 : (yyval.vsetstmt) = n;
31574 : }
31575 : #line 31576 "gram.c"
31576 962 : break;
31577 :
31578 2550 : case 218: /* set_rest_more: SESSION AUTHORIZATION NonReservedWord_or_Sconst */
31579 : #line 1766 "gram.y"
31580 : {
31581 : VariableSetStmt *n = makeNode(VariableSetStmt);
31582 :
31583 : n->kind = VAR_SET_VALUE;
31584 : n->name = "session_authorization";
31585 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31586 : n->location = (yylsp[0]);
31587 : (yyval.vsetstmt) = n;
31588 : }
31589 : #line 31590 "gram.c"
31590 2550 : break;
31591 :
31592 4 : case 219: /* set_rest_more: SESSION AUTHORIZATION DEFAULT */
31593 : #line 1776 "gram.y"
31594 : {
31595 : VariableSetStmt *n = makeNode(VariableSetStmt);
31596 :
31597 : n->kind = VAR_SET_DEFAULT;
31598 : n->name = "session_authorization";
31599 : n->location = -1;
31600 : (yyval.vsetstmt) = n;
31601 : }
31602 : #line 31603 "gram.c"
31603 4 : break;
31604 :
31605 16 : case 220: /* set_rest_more: XML_P OPTION document_or_content */
31606 : #line 1785 "gram.y"
31607 : {
31608 : VariableSetStmt *n = makeNode(VariableSetStmt);
31609 :
31610 : n->kind = VAR_SET_VALUE;
31611 : n->name = "xmloption";
31612 : n->args = list_make1(makeStringConst((yyvsp[0].ival) == XMLOPTION_DOCUMENT ? "DOCUMENT" : "CONTENT", (yylsp[0])));
31613 : n->jumble_args = true;
31614 : n->location = -1;
31615 : (yyval.vsetstmt) = n;
31616 : }
31617 : #line 31618 "gram.c"
31618 16 : break;
31619 :
31620 48 : case 221: /* set_rest_more: TRANSACTION SNAPSHOT Sconst */
31621 : #line 1797 "gram.y"
31622 : {
31623 : VariableSetStmt *n = makeNode(VariableSetStmt);
31624 :
31625 : n->kind = VAR_SET_MULTI;
31626 : n->name = "TRANSACTION SNAPSHOT";
31627 : n->args = list_make1(makeStringConst((yyvsp[0].str), (yylsp[0])));
31628 : n->location = (yylsp[0]);
31629 : (yyval.vsetstmt) = n;
31630 : }
31631 : #line 31632 "gram.c"
31632 48 : break;
31633 :
31634 25308 : case 222: /* var_name: ColId */
31635 : #line 1808 "gram.y"
31636 : { (yyval.str) = (yyvsp[0].str); }
31637 : #line 31638 "gram.c"
31638 25308 : break;
31639 :
31640 470 : case 223: /* var_name: var_name '.' ColId */
31641 : #line 1810 "gram.y"
31642 : { (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str)); }
31643 : #line 31644 "gram.c"
31644 470 : break;
31645 :
31646 20544 : case 224: /* var_list: var_value */
31647 : #line 1813 "gram.y"
31648 : { (yyval.list) = list_make1((yyvsp[0].node)); }
31649 : #line 31650 "gram.c"
31650 20544 : break;
31651 :
31652 176 : case 225: /* var_list: var_list ',' var_value */
31653 : #line 1814 "gram.y"
31654 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
31655 : #line 31656 "gram.c"
31656 176 : break;
31657 :
31658 15044 : case 226: /* var_value: opt_boolean_or_string */
31659 : #line 1818 "gram.y"
31660 : { (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0])); }
31661 : #line 31662 "gram.c"
31662 15044 : break;
31663 :
31664 5676 : case 227: /* var_value: NumericOnly */
31665 : #line 1820 "gram.y"
31666 : { (yyval.node) = makeAConst((yyvsp[0].node), (yylsp[0])); }
31667 : #line 31668 "gram.c"
31668 5676 : break;
31669 :
31670 0 : case 228: /* iso_level: READ UNCOMMITTED */
31671 : #line 1823 "gram.y"
31672 : { (yyval.str) = "read uncommitted"; }
31673 : #line 31674 "gram.c"
31674 0 : break;
31675 :
31676 908 : case 229: /* iso_level: READ COMMITTED */
31677 : #line 1824 "gram.y"
31678 : { (yyval.str) = "read committed"; }
31679 : #line 31680 "gram.c"
31680 908 : break;
31681 :
31682 2686 : case 230: /* iso_level: REPEATABLE READ */
31683 : #line 1825 "gram.y"
31684 : { (yyval.str) = "repeatable read"; }
31685 : #line 31686 "gram.c"
31686 2686 : break;
31687 :
31688 3208 : case 231: /* iso_level: SERIALIZABLE */
31689 : #line 1826 "gram.y"
31690 : { (yyval.str) = "serializable"; }
31691 : #line 31692 "gram.c"
31692 3208 : break;
31693 :
31694 676 : case 232: /* opt_boolean_or_string: TRUE_P */
31695 : #line 1830 "gram.y"
31696 : { (yyval.str) = "true"; }
31697 : #line 31698 "gram.c"
31698 676 : break;
31699 :
31700 1446 : case 233: /* opt_boolean_or_string: FALSE_P */
31701 : #line 1831 "gram.y"
31702 : { (yyval.str) = "false"; }
31703 : #line 31704 "gram.c"
31704 1446 : break;
31705 :
31706 2228 : case 234: /* opt_boolean_or_string: ON */
31707 : #line 1832 "gram.y"
31708 : { (yyval.str) = "on"; }
31709 : #line 31710 "gram.c"
31710 2228 : break;
31711 :
31712 30208 : case 235: /* opt_boolean_or_string: NonReservedWord_or_Sconst */
31713 : #line 1838 "gram.y"
31714 : { (yyval.str) = (yyvsp[0].str); }
31715 : #line 31716 "gram.c"
31716 30208 : break;
31717 :
31718 60 : case 236: /* zone_value: Sconst */
31719 : #line 1851 "gram.y"
31720 : {
31721 : (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
31722 : }
31723 : #line 31724 "gram.c"
31724 60 : break;
31725 :
31726 4 : case 237: /* zone_value: IDENT */
31727 : #line 1855 "gram.y"
31728 : {
31729 : (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
31730 : }
31731 : #line 31732 "gram.c"
31732 4 : break;
31733 :
31734 0 : case 238: /* zone_value: ConstInterval Sconst opt_interval */
31735 : #line 1859 "gram.y"
31736 : {
31737 : TypeName *t = (yyvsp[-2].typnam);
31738 :
31739 : if ((yyvsp[0].list) != NIL)
31740 : {
31741 : A_Const *n = (A_Const *) linitial((yyvsp[0].list));
31742 :
31743 : if ((n->val.ival.ival & ~(INTERVAL_MASK(HOUR) | INTERVAL_MASK(MINUTE))) != 0)
31744 : ereport(ERROR,
31745 : (errcode(ERRCODE_SYNTAX_ERROR),
31746 : errmsg("time zone interval must be HOUR or HOUR TO MINUTE"),
31747 : parser_errposition((yylsp[0]))));
31748 : }
31749 : t->typmods = (yyvsp[0].list);
31750 : (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t);
31751 : }
31752 : #line 31753 "gram.c"
31753 0 : break;
31754 :
31755 0 : case 239: /* zone_value: ConstInterval '(' Iconst ')' Sconst */
31756 : #line 1876 "gram.y"
31757 : {
31758 : TypeName *t = (yyvsp[-4].typnam);
31759 :
31760 : t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
31761 : makeIntConst((yyvsp[-2].ival), (yylsp[-2])));
31762 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
31763 : }
31764 : #line 31765 "gram.c"
31765 0 : break;
31766 :
31767 24 : case 240: /* zone_value: NumericOnly */
31768 : #line 1883 "gram.y"
31769 : { (yyval.node) = makeAConst((yyvsp[0].node), (yylsp[0])); }
31770 : #line 31771 "gram.c"
31771 24 : break;
31772 :
31773 14 : case 241: /* zone_value: DEFAULT */
31774 : #line 1884 "gram.y"
31775 : { (yyval.node) = NULL; }
31776 : #line 31777 "gram.c"
31777 14 : break;
31778 :
31779 2 : case 242: /* zone_value: LOCAL */
31780 : #line 1885 "gram.y"
31781 : { (yyval.node) = NULL; }
31782 : #line 31783 "gram.c"
31783 2 : break;
31784 :
31785 0 : case 243: /* opt_encoding: Sconst */
31786 : #line 1889 "gram.y"
31787 : { (yyval.str) = (yyvsp[0].str); }
31788 : #line 31789 "gram.c"
31789 0 : break;
31790 :
31791 0 : case 244: /* opt_encoding: DEFAULT */
31792 : #line 1890 "gram.y"
31793 : { (yyval.str) = NULL; }
31794 : #line 31795 "gram.c"
31795 0 : break;
31796 :
31797 0 : case 245: /* opt_encoding: %empty */
31798 : #line 1891 "gram.y"
31799 : { (yyval.str) = NULL; }
31800 : #line 31801 "gram.c"
31801 0 : break;
31802 :
31803 52932 : case 246: /* NonReservedWord_or_Sconst: NonReservedWord */
31804 : #line 1895 "gram.y"
31805 : { (yyval.str) = (yyvsp[0].str); }
31806 : #line 31807 "gram.c"
31807 52932 : break;
31808 :
31809 5498 : case 247: /* NonReservedWord_or_Sconst: Sconst */
31810 : #line 1896 "gram.y"
31811 : { (yyval.str) = (yyvsp[0].str); }
31812 : #line 31813 "gram.c"
31813 5498 : break;
31814 :
31815 4496 : case 248: /* VariableResetStmt: RESET reset_rest */
31816 : #line 1900 "gram.y"
31817 : { (yyval.node) = (Node *) (yyvsp[0].vsetstmt); }
31818 : #line 31819 "gram.c"
31819 4496 : break;
31820 :
31821 3716 : case 249: /* reset_rest: generic_reset */
31822 : #line 1904 "gram.y"
31823 : { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
31824 : #line 31825 "gram.c"
31825 3716 : break;
31826 :
31827 14 : case 250: /* reset_rest: TIME ZONE */
31828 : #line 1906 "gram.y"
31829 : {
31830 : VariableSetStmt *n = makeNode(VariableSetStmt);
31831 :
31832 : n->kind = VAR_RESET;
31833 : n->name = "timezone";
31834 : n->location = -1;
31835 : (yyval.vsetstmt) = n;
31836 : }
31837 : #line 31838 "gram.c"
31838 14 : break;
31839 :
31840 0 : case 251: /* reset_rest: TRANSACTION ISOLATION LEVEL */
31841 : #line 1915 "gram.y"
31842 : {
31843 : VariableSetStmt *n = makeNode(VariableSetStmt);
31844 :
31845 : n->kind = VAR_RESET;
31846 : n->name = "transaction_isolation";
31847 : n->location = -1;
31848 : (yyval.vsetstmt) = n;
31849 : }
31850 : #line 31851 "gram.c"
31851 0 : break;
31852 :
31853 766 : case 252: /* reset_rest: SESSION AUTHORIZATION */
31854 : #line 1924 "gram.y"
31855 : {
31856 : VariableSetStmt *n = makeNode(VariableSetStmt);
31857 :
31858 : n->kind = VAR_RESET;
31859 : n->name = "session_authorization";
31860 : n->location = -1;
31861 : (yyval.vsetstmt) = n;
31862 : }
31863 : #line 31864 "gram.c"
31864 766 : break;
31865 :
31866 3752 : case 253: /* generic_reset: var_name */
31867 : #line 1936 "gram.y"
31868 : {
31869 : VariableSetStmt *n = makeNode(VariableSetStmt);
31870 :
31871 : n->kind = VAR_RESET;
31872 : n->name = (yyvsp[0].str);
31873 : n->location = -1;
31874 : (yyval.vsetstmt) = n;
31875 : }
31876 : #line 31877 "gram.c"
31877 3752 : break;
31878 :
31879 18 : case 254: /* generic_reset: ALL */
31880 : #line 1945 "gram.y"
31881 : {
31882 : VariableSetStmt *n = makeNode(VariableSetStmt);
31883 :
31884 : n->kind = VAR_RESET_ALL;
31885 : n->location = -1;
31886 : (yyval.vsetstmt) = n;
31887 : }
31888 : #line 31889 "gram.c"
31889 18 : break;
31890 :
31891 1236 : case 255: /* SetResetClause: SET set_rest */
31892 : #line 1956 "gram.y"
31893 : { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
31894 : #line 31895 "gram.c"
31895 1236 : break;
31896 :
31897 44 : case 256: /* SetResetClause: VariableResetStmt */
31898 : #line 1957 "gram.y"
31899 : { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); }
31900 : #line 31901 "gram.c"
31901 44 : break;
31902 :
31903 148 : case 257: /* FunctionSetResetClause: SET set_rest_more */
31904 : #line 1962 "gram.y"
31905 : { (yyval.vsetstmt) = (yyvsp[0].vsetstmt); }
31906 : #line 31907 "gram.c"
31907 148 : break;
31908 :
31909 12 : case 258: /* FunctionSetResetClause: VariableResetStmt */
31910 : #line 1963 "gram.y"
31911 : { (yyval.vsetstmt) = (VariableSetStmt *) (yyvsp[0].node); }
31912 : #line 31913 "gram.c"
31913 12 : break;
31914 :
31915 862 : case 259: /* VariableShowStmt: SHOW var_name */
31916 : #line 1969 "gram.y"
31917 : {
31918 : VariableShowStmt *n = makeNode(VariableShowStmt);
31919 :
31920 : n->name = (yyvsp[0].str);
31921 : (yyval.node) = (Node *) n;
31922 : }
31923 : #line 31924 "gram.c"
31924 862 : break;
31925 :
31926 10 : case 260: /* VariableShowStmt: SHOW TIME ZONE */
31927 : #line 1976 "gram.y"
31928 : {
31929 : VariableShowStmt *n = makeNode(VariableShowStmt);
31930 :
31931 : n->name = "timezone";
31932 : (yyval.node) = (Node *) n;
31933 : }
31934 : #line 31935 "gram.c"
31935 10 : break;
31936 :
31937 4 : case 261: /* VariableShowStmt: SHOW TRANSACTION ISOLATION LEVEL */
31938 : #line 1983 "gram.y"
31939 : {
31940 : VariableShowStmt *n = makeNode(VariableShowStmt);
31941 :
31942 : n->name = "transaction_isolation";
31943 : (yyval.node) = (Node *) n;
31944 : }
31945 : #line 31946 "gram.c"
31946 4 : break;
31947 :
31948 0 : case 262: /* VariableShowStmt: SHOW SESSION AUTHORIZATION */
31949 : #line 1990 "gram.y"
31950 : {
31951 : VariableShowStmt *n = makeNode(VariableShowStmt);
31952 :
31953 : n->name = "session_authorization";
31954 : (yyval.node) = (Node *) n;
31955 : }
31956 : #line 31957 "gram.c"
31957 0 : break;
31958 :
31959 0 : case 263: /* VariableShowStmt: SHOW ALL */
31960 : #line 1997 "gram.y"
31961 : {
31962 : VariableShowStmt *n = makeNode(VariableShowStmt);
31963 :
31964 : n->name = "all";
31965 : (yyval.node) = (Node *) n;
31966 : }
31967 : #line 31968 "gram.c"
31968 0 : break;
31969 :
31970 104 : case 264: /* ConstraintsSetStmt: SET CONSTRAINTS constraints_set_list constraints_set_mode */
31971 : #line 2008 "gram.y"
31972 : {
31973 : ConstraintsSetStmt *n = makeNode(ConstraintsSetStmt);
31974 :
31975 : n->constraints = (yyvsp[-1].list);
31976 : n->deferred = (yyvsp[0].boolean);
31977 : (yyval.node) = (Node *) n;
31978 : }
31979 : #line 31980 "gram.c"
31980 104 : break;
31981 :
31982 56 : case 265: /* constraints_set_list: ALL */
31983 : #line 2018 "gram.y"
31984 : { (yyval.list) = NIL; }
31985 : #line 31986 "gram.c"
31986 56 : break;
31987 :
31988 48 : case 266: /* constraints_set_list: qualified_name_list */
31989 : #line 2019 "gram.y"
31990 : { (yyval.list) = (yyvsp[0].list); }
31991 : #line 31992 "gram.c"
31992 48 : break;
31993 :
31994 68 : case 267: /* constraints_set_mode: DEFERRED */
31995 : #line 2023 "gram.y"
31996 : { (yyval.boolean) = true; }
31997 : #line 31998 "gram.c"
31998 68 : break;
31999 :
32000 36 : case 268: /* constraints_set_mode: IMMEDIATE */
32001 : #line 2024 "gram.y"
32002 : { (yyval.boolean) = false; }
32003 : #line 32004 "gram.c"
32004 36 : break;
32005 :
32006 222 : case 269: /* CheckPointStmt: CHECKPOINT */
32007 : #line 2033 "gram.y"
32008 : {
32009 : CheckPointStmt *n = makeNode(CheckPointStmt);
32010 :
32011 : (yyval.node) = (Node *) n;
32012 : }
32013 : #line 32014 "gram.c"
32014 222 : break;
32015 :
32016 6 : case 270: /* DiscardStmt: DISCARD ALL */
32017 : #line 2049 "gram.y"
32018 : {
32019 : DiscardStmt *n = makeNode(DiscardStmt);
32020 :
32021 : n->target = DISCARD_ALL;
32022 : (yyval.node) = (Node *) n;
32023 : }
32024 : #line 32025 "gram.c"
32025 6 : break;
32026 :
32027 8 : case 271: /* DiscardStmt: DISCARD TEMP */
32028 : #line 2056 "gram.y"
32029 : {
32030 : DiscardStmt *n = makeNode(DiscardStmt);
32031 :
32032 : n->target = DISCARD_TEMP;
32033 : (yyval.node) = (Node *) n;
32034 : }
32035 : #line 32036 "gram.c"
32036 8 : break;
32037 :
32038 0 : case 272: /* DiscardStmt: DISCARD TEMPORARY */
32039 : #line 2063 "gram.y"
32040 : {
32041 : DiscardStmt *n = makeNode(DiscardStmt);
32042 :
32043 : n->target = DISCARD_TEMP;
32044 : (yyval.node) = (Node *) n;
32045 : }
32046 : #line 32047 "gram.c"
32047 0 : break;
32048 :
32049 4 : case 273: /* DiscardStmt: DISCARD PLANS */
32050 : #line 2070 "gram.y"
32051 : {
32052 : DiscardStmt *n = makeNode(DiscardStmt);
32053 :
32054 : n->target = DISCARD_PLANS;
32055 : (yyval.node) = (Node *) n;
32056 : }
32057 : #line 32058 "gram.c"
32058 4 : break;
32059 :
32060 12 : case 274: /* DiscardStmt: DISCARD SEQUENCES */
32061 : #line 2077 "gram.y"
32062 : {
32063 : DiscardStmt *n = makeNode(DiscardStmt);
32064 :
32065 : n->target = DISCARD_SEQUENCES;
32066 : (yyval.node) = (Node *) n;
32067 : }
32068 : #line 32069 "gram.c"
32069 12 : break;
32070 :
32071 27750 : case 275: /* AlterTableStmt: ALTER TABLE relation_expr alter_table_cmds */
32072 : #line 2097 "gram.y"
32073 : {
32074 : AlterTableStmt *n = makeNode(AlterTableStmt);
32075 :
32076 : n->relation = (yyvsp[-1].range);
32077 : n->cmds = (yyvsp[0].list);
32078 : n->objtype = OBJECT_TABLE;
32079 : n->missing_ok = false;
32080 : (yyval.node) = (Node *) n;
32081 : }
32082 : #line 32083 "gram.c"
32083 27750 : break;
32084 :
32085 54 : case 276: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr alter_table_cmds */
32086 : #line 2107 "gram.y"
32087 : {
32088 : AlterTableStmt *n = makeNode(AlterTableStmt);
32089 :
32090 : n->relation = (yyvsp[-1].range);
32091 : n->cmds = (yyvsp[0].list);
32092 : n->objtype = OBJECT_TABLE;
32093 : n->missing_ok = true;
32094 : (yyval.node) = (Node *) n;
32095 : }
32096 : #line 32097 "gram.c"
32097 54 : break;
32098 :
32099 3446 : case 277: /* AlterTableStmt: ALTER TABLE relation_expr partition_cmd */
32100 : #line 2117 "gram.y"
32101 : {
32102 : AlterTableStmt *n = makeNode(AlterTableStmt);
32103 :
32104 : n->relation = (yyvsp[-1].range);
32105 : n->cmds = list_make1((yyvsp[0].node));
32106 : n->objtype = OBJECT_TABLE;
32107 : n->missing_ok = false;
32108 : (yyval.node) = (Node *) n;
32109 : }
32110 : #line 32111 "gram.c"
32111 3446 : break;
32112 :
32113 0 : case 278: /* AlterTableStmt: ALTER TABLE IF_P EXISTS relation_expr partition_cmd */
32114 : #line 2127 "gram.y"
32115 : {
32116 : AlterTableStmt *n = makeNode(AlterTableStmt);
32117 :
32118 : n->relation = (yyvsp[-1].range);
32119 : n->cmds = list_make1((yyvsp[0].node));
32120 : n->objtype = OBJECT_TABLE;
32121 : n->missing_ok = true;
32122 : (yyval.node) = (Node *) n;
32123 : }
32124 : #line 32125 "gram.c"
32125 0 : break;
32126 :
32127 12 : case 279: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
32128 : #line 2137 "gram.y"
32129 : {
32130 : AlterTableMoveAllStmt *n =
32131 : makeNode(AlterTableMoveAllStmt);
32132 :
32133 : n->orig_tablespacename = (yyvsp[-4].str);
32134 : n->objtype = OBJECT_TABLE;
32135 : n->roles = NIL;
32136 : n->new_tablespacename = (yyvsp[-1].str);
32137 : n->nowait = (yyvsp[0].boolean);
32138 : (yyval.node) = (Node *) n;
32139 : }
32140 : #line 32141 "gram.c"
32141 12 : break;
32142 :
32143 0 : case 280: /* AlterTableStmt: ALTER TABLE ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
32144 : #line 2149 "gram.y"
32145 : {
32146 : AlterTableMoveAllStmt *n =
32147 : makeNode(AlterTableMoveAllStmt);
32148 :
32149 : n->orig_tablespacename = (yyvsp[-7].str);
32150 : n->objtype = OBJECT_TABLE;
32151 : n->roles = (yyvsp[-4].list);
32152 : n->new_tablespacename = (yyvsp[-1].str);
32153 : n->nowait = (yyvsp[0].boolean);
32154 : (yyval.node) = (Node *) n;
32155 : }
32156 : #line 32157 "gram.c"
32157 0 : break;
32158 :
32159 228 : case 281: /* AlterTableStmt: ALTER INDEX qualified_name alter_table_cmds */
32160 : #line 2161 "gram.y"
32161 : {
32162 : AlterTableStmt *n = makeNode(AlterTableStmt);
32163 :
32164 : n->relation = (yyvsp[-1].range);
32165 : n->cmds = (yyvsp[0].list);
32166 : n->objtype = OBJECT_INDEX;
32167 : n->missing_ok = false;
32168 : (yyval.node) = (Node *) n;
32169 : }
32170 : #line 32171 "gram.c"
32171 228 : break;
32172 :
32173 0 : case 282: /* AlterTableStmt: ALTER INDEX IF_P EXISTS qualified_name alter_table_cmds */
32174 : #line 2171 "gram.y"
32175 : {
32176 : AlterTableStmt *n = makeNode(AlterTableStmt);
32177 :
32178 : n->relation = (yyvsp[-1].range);
32179 : n->cmds = (yyvsp[0].list);
32180 : n->objtype = OBJECT_INDEX;
32181 : n->missing_ok = true;
32182 : (yyval.node) = (Node *) n;
32183 : }
32184 : #line 32185 "gram.c"
32185 0 : break;
32186 :
32187 482 : case 283: /* AlterTableStmt: ALTER INDEX qualified_name index_partition_cmd */
32188 : #line 2181 "gram.y"
32189 : {
32190 : AlterTableStmt *n = makeNode(AlterTableStmt);
32191 :
32192 : n->relation = (yyvsp[-1].range);
32193 : n->cmds = list_make1((yyvsp[0].node));
32194 : n->objtype = OBJECT_INDEX;
32195 : n->missing_ok = false;
32196 : (yyval.node) = (Node *) n;
32197 : }
32198 : #line 32199 "gram.c"
32199 482 : break;
32200 :
32201 6 : case 284: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
32202 : #line 2191 "gram.y"
32203 : {
32204 : AlterTableMoveAllStmt *n =
32205 : makeNode(AlterTableMoveAllStmt);
32206 :
32207 : n->orig_tablespacename = (yyvsp[-4].str);
32208 : n->objtype = OBJECT_INDEX;
32209 : n->roles = NIL;
32210 : n->new_tablespacename = (yyvsp[-1].str);
32211 : n->nowait = (yyvsp[0].boolean);
32212 : (yyval.node) = (Node *) n;
32213 : }
32214 : #line 32215 "gram.c"
32215 6 : break;
32216 :
32217 0 : case 285: /* AlterTableStmt: ALTER INDEX ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
32218 : #line 2203 "gram.y"
32219 : {
32220 : AlterTableMoveAllStmt *n =
32221 : makeNode(AlterTableMoveAllStmt);
32222 :
32223 : n->orig_tablespacename = (yyvsp[-7].str);
32224 : n->objtype = OBJECT_INDEX;
32225 : n->roles = (yyvsp[-4].list);
32226 : n->new_tablespacename = (yyvsp[-1].str);
32227 : n->nowait = (yyvsp[0].boolean);
32228 : (yyval.node) = (Node *) n;
32229 : }
32230 : #line 32231 "gram.c"
32231 0 : break;
32232 :
32233 156 : case 286: /* AlterTableStmt: ALTER SEQUENCE qualified_name alter_table_cmds */
32234 : #line 2215 "gram.y"
32235 : {
32236 : AlterTableStmt *n = makeNode(AlterTableStmt);
32237 :
32238 : n->relation = (yyvsp[-1].range);
32239 : n->cmds = (yyvsp[0].list);
32240 : n->objtype = OBJECT_SEQUENCE;
32241 : n->missing_ok = false;
32242 : (yyval.node) = (Node *) n;
32243 : }
32244 : #line 32245 "gram.c"
32245 156 : break;
32246 :
32247 0 : case 287: /* AlterTableStmt: ALTER SEQUENCE IF_P EXISTS qualified_name alter_table_cmds */
32248 : #line 2225 "gram.y"
32249 : {
32250 : AlterTableStmt *n = makeNode(AlterTableStmt);
32251 :
32252 : n->relation = (yyvsp[-1].range);
32253 : n->cmds = (yyvsp[0].list);
32254 : n->objtype = OBJECT_SEQUENCE;
32255 : n->missing_ok = true;
32256 : (yyval.node) = (Node *) n;
32257 : }
32258 : #line 32259 "gram.c"
32259 0 : break;
32260 :
32261 356 : case 288: /* AlterTableStmt: ALTER VIEW qualified_name alter_table_cmds */
32262 : #line 2235 "gram.y"
32263 : {
32264 : AlterTableStmt *n = makeNode(AlterTableStmt);
32265 :
32266 : n->relation = (yyvsp[-1].range);
32267 : n->cmds = (yyvsp[0].list);
32268 : n->objtype = OBJECT_VIEW;
32269 : n->missing_ok = false;
32270 : (yyval.node) = (Node *) n;
32271 : }
32272 : #line 32273 "gram.c"
32273 356 : break;
32274 :
32275 0 : case 289: /* AlterTableStmt: ALTER VIEW IF_P EXISTS qualified_name alter_table_cmds */
32276 : #line 2245 "gram.y"
32277 : {
32278 : AlterTableStmt *n = makeNode(AlterTableStmt);
32279 :
32280 : n->relation = (yyvsp[-1].range);
32281 : n->cmds = (yyvsp[0].list);
32282 : n->objtype = OBJECT_VIEW;
32283 : n->missing_ok = true;
32284 : (yyval.node) = (Node *) n;
32285 : }
32286 : #line 32287 "gram.c"
32287 0 : break;
32288 :
32289 64 : case 290: /* AlterTableStmt: ALTER MATERIALIZED VIEW qualified_name alter_table_cmds */
32290 : #line 2255 "gram.y"
32291 : {
32292 : AlterTableStmt *n = makeNode(AlterTableStmt);
32293 :
32294 : n->relation = (yyvsp[-1].range);
32295 : n->cmds = (yyvsp[0].list);
32296 : n->objtype = OBJECT_MATVIEW;
32297 : n->missing_ok = false;
32298 : (yyval.node) = (Node *) n;
32299 : }
32300 : #line 32301 "gram.c"
32301 64 : break;
32302 :
32303 0 : case 291: /* AlterTableStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name alter_table_cmds */
32304 : #line 2265 "gram.y"
32305 : {
32306 : AlterTableStmt *n = makeNode(AlterTableStmt);
32307 :
32308 : n->relation = (yyvsp[-1].range);
32309 : n->cmds = (yyvsp[0].list);
32310 : n->objtype = OBJECT_MATVIEW;
32311 : n->missing_ok = true;
32312 : (yyval.node) = (Node *) n;
32313 : }
32314 : #line 32315 "gram.c"
32315 0 : break;
32316 :
32317 12 : case 292: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name SET TABLESPACE name opt_nowait */
32318 : #line 2275 "gram.y"
32319 : {
32320 : AlterTableMoveAllStmt *n =
32321 : makeNode(AlterTableMoveAllStmt);
32322 :
32323 : n->orig_tablespacename = (yyvsp[-4].str);
32324 : n->objtype = OBJECT_MATVIEW;
32325 : n->roles = NIL;
32326 : n->new_tablespacename = (yyvsp[-1].str);
32327 : n->nowait = (yyvsp[0].boolean);
32328 : (yyval.node) = (Node *) n;
32329 : }
32330 : #line 32331 "gram.c"
32331 12 : break;
32332 :
32333 0 : case 293: /* AlterTableStmt: ALTER MATERIALIZED VIEW ALL IN_P TABLESPACE name OWNED BY role_list SET TABLESPACE name opt_nowait */
32334 : #line 2287 "gram.y"
32335 : {
32336 : AlterTableMoveAllStmt *n =
32337 : makeNode(AlterTableMoveAllStmt);
32338 :
32339 : n->orig_tablespacename = (yyvsp[-7].str);
32340 : n->objtype = OBJECT_MATVIEW;
32341 : n->roles = (yyvsp[-4].list);
32342 : n->new_tablespacename = (yyvsp[-1].str);
32343 : n->nowait = (yyvsp[0].boolean);
32344 : (yyval.node) = (Node *) n;
32345 : }
32346 : #line 32347 "gram.c"
32347 0 : break;
32348 :
32349 374 : case 294: /* AlterTableStmt: ALTER FOREIGN TABLE relation_expr alter_table_cmds */
32350 : #line 2299 "gram.y"
32351 : {
32352 : AlterTableStmt *n = makeNode(AlterTableStmt);
32353 :
32354 : n->relation = (yyvsp[-1].range);
32355 : n->cmds = (yyvsp[0].list);
32356 : n->objtype = OBJECT_FOREIGN_TABLE;
32357 : n->missing_ok = false;
32358 : (yyval.node) = (Node *) n;
32359 : }
32360 : #line 32361 "gram.c"
32361 374 : break;
32362 :
32363 108 : case 295: /* AlterTableStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr alter_table_cmds */
32364 : #line 2309 "gram.y"
32365 : {
32366 : AlterTableStmt *n = makeNode(AlterTableStmt);
32367 :
32368 : n->relation = (yyvsp[-1].range);
32369 : n->cmds = (yyvsp[0].list);
32370 : n->objtype = OBJECT_FOREIGN_TABLE;
32371 : n->missing_ok = true;
32372 : (yyval.node) = (Node *) n;
32373 : }
32374 : #line 32375 "gram.c"
32375 108 : break;
32376 :
32377 29090 : case 296: /* alter_table_cmds: alter_table_cmd */
32378 : #line 2321 "gram.y"
32379 : { (yyval.list) = list_make1((yyvsp[0].node)); }
32380 : #line 32381 "gram.c"
32381 29090 : break;
32382 :
32383 1020 : case 297: /* alter_table_cmds: alter_table_cmds ',' alter_table_cmd */
32384 : #line 2322 "gram.y"
32385 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
32386 : #line 32387 "gram.c"
32387 1020 : break;
32388 :
32389 2832 : case 298: /* partition_cmd: ATTACH PARTITION qualified_name PartitionBoundSpec */
32390 : #line 2328 "gram.y"
32391 : {
32392 : AlterTableCmd *n = makeNode(AlterTableCmd);
32393 : PartitionCmd *cmd = makeNode(PartitionCmd);
32394 :
32395 : n->subtype = AT_AttachPartition;
32396 : cmd->name = (yyvsp[-1].range);
32397 : cmd->bound = (yyvsp[0].partboundspec);
32398 : cmd->concurrent = false;
32399 : n->def = (Node *) cmd;
32400 :
32401 : (yyval.node) = (Node *) n;
32402 : }
32403 : #line 32404 "gram.c"
32404 2832 : break;
32405 :
32406 594 : case 299: /* partition_cmd: DETACH PARTITION qualified_name opt_concurrently */
32407 : #line 2342 "gram.y"
32408 : {
32409 : AlterTableCmd *n = makeNode(AlterTableCmd);
32410 : PartitionCmd *cmd = makeNode(PartitionCmd);
32411 :
32412 : n->subtype = AT_DetachPartition;
32413 : cmd->name = (yyvsp[-1].range);
32414 : cmd->bound = NULL;
32415 : cmd->concurrent = (yyvsp[0].boolean);
32416 : n->def = (Node *) cmd;
32417 :
32418 : (yyval.node) = (Node *) n;
32419 : }
32420 : #line 32421 "gram.c"
32421 594 : break;
32422 :
32423 20 : case 300: /* partition_cmd: DETACH PARTITION qualified_name FINALIZE */
32424 : #line 2355 "gram.y"
32425 : {
32426 : AlterTableCmd *n = makeNode(AlterTableCmd);
32427 : PartitionCmd *cmd = makeNode(PartitionCmd);
32428 :
32429 : n->subtype = AT_DetachPartitionFinalize;
32430 : cmd->name = (yyvsp[-1].range);
32431 : cmd->bound = NULL;
32432 : cmd->concurrent = false;
32433 : n->def = (Node *) cmd;
32434 : (yyval.node) = (Node *) n;
32435 : }
32436 : #line 32437 "gram.c"
32437 20 : break;
32438 :
32439 482 : case 301: /* index_partition_cmd: ATTACH PARTITION qualified_name */
32440 : #line 2371 "gram.y"
32441 : {
32442 : AlterTableCmd *n = makeNode(AlterTableCmd);
32443 : PartitionCmd *cmd = makeNode(PartitionCmd);
32444 :
32445 : n->subtype = AT_AttachPartition;
32446 : cmd->name = (yyvsp[0].range);
32447 : cmd->bound = NULL;
32448 : cmd->concurrent = false;
32449 : n->def = (Node *) cmd;
32450 :
32451 : (yyval.node) = (Node *) n;
32452 : }
32453 : #line 32454 "gram.c"
32454 482 : break;
32455 :
32456 192 : case 302: /* alter_table_cmd: ADD_P columnDef */
32457 : #line 2388 "gram.y"
32458 : {
32459 : AlterTableCmd *n = makeNode(AlterTableCmd);
32460 :
32461 : n->subtype = AT_AddColumn;
32462 : n->def = (yyvsp[0].node);
32463 : n->missing_ok = false;
32464 : (yyval.node) = (Node *) n;
32465 : }
32466 : #line 32467 "gram.c"
32467 192 : break;
32468 :
32469 0 : case 303: /* alter_table_cmd: ADD_P IF_P NOT EXISTS columnDef */
32470 : #line 2398 "gram.y"
32471 : {
32472 : AlterTableCmd *n = makeNode(AlterTableCmd);
32473 :
32474 : n->subtype = AT_AddColumn;
32475 : n->def = (yyvsp[0].node);
32476 : n->missing_ok = true;
32477 : (yyval.node) = (Node *) n;
32478 : }
32479 : #line 32480 "gram.c"
32480 0 : break;
32481 :
32482 1890 : case 304: /* alter_table_cmd: ADD_P COLUMN columnDef */
32483 : #line 2408 "gram.y"
32484 : {
32485 : AlterTableCmd *n = makeNode(AlterTableCmd);
32486 :
32487 : n->subtype = AT_AddColumn;
32488 : n->def = (yyvsp[0].node);
32489 : n->missing_ok = false;
32490 : (yyval.node) = (Node *) n;
32491 : }
32492 : #line 32493 "gram.c"
32493 1890 : break;
32494 :
32495 60 : case 305: /* alter_table_cmd: ADD_P COLUMN IF_P NOT EXISTS columnDef */
32496 : #line 2418 "gram.y"
32497 : {
32498 : AlterTableCmd *n = makeNode(AlterTableCmd);
32499 :
32500 : n->subtype = AT_AddColumn;
32501 : n->def = (yyvsp[0].node);
32502 : n->missing_ok = true;
32503 : (yyval.node) = (Node *) n;
32504 : }
32505 : #line 32506 "gram.c"
32506 60 : break;
32507 :
32508 578 : case 306: /* alter_table_cmd: ALTER opt_column ColId alter_column_default */
32509 : #line 2428 "gram.y"
32510 : {
32511 : AlterTableCmd *n = makeNode(AlterTableCmd);
32512 :
32513 : n->subtype = AT_ColumnDefault;
32514 : n->name = (yyvsp[-1].str);
32515 : n->def = (yyvsp[0].node);
32516 : (yyval.node) = (Node *) n;
32517 : }
32518 : #line 32519 "gram.c"
32519 578 : break;
32520 :
32521 294 : case 307: /* alter_table_cmd: ALTER opt_column ColId DROP NOT NULL_P */
32522 : #line 2438 "gram.y"
32523 : {
32524 : AlterTableCmd *n = makeNode(AlterTableCmd);
32525 :
32526 : n->subtype = AT_DropNotNull;
32527 : n->name = (yyvsp[-3].str);
32528 : (yyval.node) = (Node *) n;
32529 : }
32530 : #line 32531 "gram.c"
32531 294 : break;
32532 :
32533 434 : case 308: /* alter_table_cmd: ALTER opt_column ColId SET NOT NULL_P */
32534 : #line 2447 "gram.y"
32535 : {
32536 : AlterTableCmd *n = makeNode(AlterTableCmd);
32537 :
32538 : n->subtype = AT_SetNotNull;
32539 : n->name = (yyvsp[-3].str);
32540 : (yyval.node) = (Node *) n;
32541 : }
32542 : #line 32543 "gram.c"
32543 434 : break;
32544 :
32545 132 : case 309: /* alter_table_cmd: ALTER opt_column ColId SET EXPRESSION AS '(' a_expr ')' */
32546 : #line 2456 "gram.y"
32547 : {
32548 : AlterTableCmd *n = makeNode(AlterTableCmd);
32549 :
32550 : n->subtype = AT_SetExpression;
32551 : n->name = (yyvsp[-6].str);
32552 : n->def = (yyvsp[-1].node);
32553 : (yyval.node) = (Node *) n;
32554 : }
32555 : #line 32556 "gram.c"
32556 132 : break;
32557 :
32558 62 : case 310: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION */
32559 : #line 2466 "gram.y"
32560 : {
32561 : AlterTableCmd *n = makeNode(AlterTableCmd);
32562 :
32563 : n->subtype = AT_DropExpression;
32564 : n->name = (yyvsp[-2].str);
32565 : (yyval.node) = (Node *) n;
32566 : }
32567 : #line 32568 "gram.c"
32568 62 : break;
32569 :
32570 12 : case 311: /* alter_table_cmd: ALTER opt_column ColId DROP EXPRESSION IF_P EXISTS */
32571 : #line 2475 "gram.y"
32572 : {
32573 : AlterTableCmd *n = makeNode(AlterTableCmd);
32574 :
32575 : n->subtype = AT_DropExpression;
32576 : n->name = (yyvsp[-4].str);
32577 : n->missing_ok = true;
32578 : (yyval.node) = (Node *) n;
32579 : }
32580 : #line 32581 "gram.c"
32581 12 : break;
32582 :
32583 62 : case 312: /* alter_table_cmd: ALTER opt_column ColId SET STATISTICS set_statistics_value */
32584 : #line 2485 "gram.y"
32585 : {
32586 : AlterTableCmd *n = makeNode(AlterTableCmd);
32587 :
32588 : n->subtype = AT_SetStatistics;
32589 : n->name = (yyvsp[-3].str);
32590 : n->def = (yyvsp[0].node);
32591 : (yyval.node) = (Node *) n;
32592 : }
32593 : #line 32594 "gram.c"
32594 62 : break;
32595 :
32596 70 : case 313: /* alter_table_cmd: ALTER opt_column Iconst SET STATISTICS set_statistics_value */
32597 : #line 2495 "gram.y"
32598 : {
32599 : AlterTableCmd *n = makeNode(AlterTableCmd);
32600 :
32601 : if ((yyvsp[-3].ival) <= 0 || (yyvsp[-3].ival) > PG_INT16_MAX)
32602 : ereport(ERROR,
32603 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
32604 : errmsg("column number must be in range from 1 to %d", PG_INT16_MAX),
32605 : parser_errposition((yylsp[-3]))));
32606 :
32607 : n->subtype = AT_SetStatistics;
32608 : n->num = (int16) (yyvsp[-3].ival);
32609 : n->def = (yyvsp[0].node);
32610 : (yyval.node) = (Node *) n;
32611 : }
32612 : #line 32613 "gram.c"
32613 64 : break;
32614 :
32615 38 : case 314: /* alter_table_cmd: ALTER opt_column ColId SET reloptions */
32616 : #line 2511 "gram.y"
32617 : {
32618 : AlterTableCmd *n = makeNode(AlterTableCmd);
32619 :
32620 : n->subtype = AT_SetOptions;
32621 : n->name = (yyvsp[-2].str);
32622 : n->def = (Node *) (yyvsp[0].list);
32623 : (yyval.node) = (Node *) n;
32624 : }
32625 : #line 32626 "gram.c"
32626 38 : break;
32627 :
32628 6 : case 315: /* alter_table_cmd: ALTER opt_column ColId RESET reloptions */
32629 : #line 2521 "gram.y"
32630 : {
32631 : AlterTableCmd *n = makeNode(AlterTableCmd);
32632 :
32633 : n->subtype = AT_ResetOptions;
32634 : n->name = (yyvsp[-2].str);
32635 : n->def = (Node *) (yyvsp[0].list);
32636 : (yyval.node) = (Node *) n;
32637 : }
32638 : #line 32639 "gram.c"
32639 6 : break;
32640 :
32641 224 : case 316: /* alter_table_cmd: ALTER opt_column ColId SET column_storage */
32642 : #line 2531 "gram.y"
32643 : {
32644 : AlterTableCmd *n = makeNode(AlterTableCmd);
32645 :
32646 : n->subtype = AT_SetStorage;
32647 : n->name = (yyvsp[-2].str);
32648 : n->def = (Node *) makeString((yyvsp[0].str));
32649 : (yyval.node) = (Node *) n;
32650 : }
32651 : #line 32652 "gram.c"
32652 224 : break;
32653 :
32654 90 : case 317: /* alter_table_cmd: ALTER opt_column ColId SET column_compression */
32655 : #line 2541 "gram.y"
32656 : {
32657 : AlterTableCmd *n = makeNode(AlterTableCmd);
32658 :
32659 : n->subtype = AT_SetCompression;
32660 : n->name = (yyvsp[-2].str);
32661 : n->def = (Node *) makeString((yyvsp[0].str));
32662 : (yyval.node) = (Node *) n;
32663 : }
32664 : #line 32665 "gram.c"
32665 90 : break;
32666 :
32667 210 : case 318: /* alter_table_cmd: ALTER opt_column ColId ADD_P GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */
32668 : #line 2551 "gram.y"
32669 : {
32670 : AlterTableCmd *n = makeNode(AlterTableCmd);
32671 : Constraint *c = makeNode(Constraint);
32672 :
32673 : c->contype = CONSTR_IDENTITY;
32674 : c->generated_when = (yyvsp[-3].ival);
32675 : c->options = (yyvsp[0].list);
32676 : c->location = (yylsp[-4]);
32677 :
32678 : n->subtype = AT_AddIdentity;
32679 : n->name = (yyvsp[-6].str);
32680 : n->def = (Node *) c;
32681 :
32682 : (yyval.node) = (Node *) n;
32683 : }
32684 : #line 32685 "gram.c"
32685 210 : break;
32686 :
32687 62 : case 319: /* alter_table_cmd: ALTER opt_column ColId alter_identity_column_option_list */
32688 : #line 2568 "gram.y"
32689 : {
32690 : AlterTableCmd *n = makeNode(AlterTableCmd);
32691 :
32692 : n->subtype = AT_SetIdentity;
32693 : n->name = (yyvsp[-1].str);
32694 : n->def = (Node *) (yyvsp[0].list);
32695 : (yyval.node) = (Node *) n;
32696 : }
32697 : #line 32698 "gram.c"
32698 62 : break;
32699 :
32700 50 : case 320: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P */
32701 : #line 2578 "gram.y"
32702 : {
32703 : AlterTableCmd *n = makeNode(AlterTableCmd);
32704 :
32705 : n->subtype = AT_DropIdentity;
32706 : n->name = (yyvsp[-2].str);
32707 : n->missing_ok = false;
32708 : (yyval.node) = (Node *) n;
32709 : }
32710 : #line 32711 "gram.c"
32711 50 : break;
32712 :
32713 6 : case 321: /* alter_table_cmd: ALTER opt_column ColId DROP IDENTITY_P IF_P EXISTS */
32714 : #line 2588 "gram.y"
32715 : {
32716 : AlterTableCmd *n = makeNode(AlterTableCmd);
32717 :
32718 : n->subtype = AT_DropIdentity;
32719 : n->name = (yyvsp[-4].str);
32720 : n->missing_ok = true;
32721 : (yyval.node) = (Node *) n;
32722 : }
32723 : #line 32724 "gram.c"
32724 6 : break;
32725 :
32726 18 : case 322: /* alter_table_cmd: DROP opt_column IF_P EXISTS ColId opt_drop_behavior */
32727 : #line 2598 "gram.y"
32728 : {
32729 : AlterTableCmd *n = makeNode(AlterTableCmd);
32730 :
32731 : n->subtype = AT_DropColumn;
32732 : n->name = (yyvsp[-1].str);
32733 : n->behavior = (yyvsp[0].dbehavior);
32734 : n->missing_ok = true;
32735 : (yyval.node) = (Node *) n;
32736 : }
32737 : #line 32738 "gram.c"
32738 18 : break;
32739 :
32740 1574 : case 323: /* alter_table_cmd: DROP opt_column ColId opt_drop_behavior */
32741 : #line 2609 "gram.y"
32742 : {
32743 : AlterTableCmd *n = makeNode(AlterTableCmd);
32744 :
32745 : n->subtype = AT_DropColumn;
32746 : n->name = (yyvsp[-1].str);
32747 : n->behavior = (yyvsp[0].dbehavior);
32748 : n->missing_ok = false;
32749 : (yyval.node) = (Node *) n;
32750 : }
32751 : #line 32752 "gram.c"
32752 1574 : break;
32753 :
32754 994 : case 324: /* alter_table_cmd: ALTER opt_column ColId opt_set_data TYPE_P Typename opt_collate_clause alter_using */
32755 : #line 2623 "gram.y"
32756 : {
32757 : AlterTableCmd *n = makeNode(AlterTableCmd);
32758 : ColumnDef *def = makeNode(ColumnDef);
32759 :
32760 : n->subtype = AT_AlterColumnType;
32761 : n->name = (yyvsp[-5].str);
32762 : n->def = (Node *) def;
32763 : /* We only use these fields of the ColumnDef node */
32764 : def->typeName = (yyvsp[-2].typnam);
32765 : def->collClause = (CollateClause *) (yyvsp[-1].node);
32766 : def->raw_default = (yyvsp[0].node);
32767 : def->location = (yylsp[-5]);
32768 : (yyval.node) = (Node *) n;
32769 : }
32770 : #line 32771 "gram.c"
32771 994 : break;
32772 :
32773 50 : case 325: /* alter_table_cmd: ALTER opt_column ColId alter_generic_options */
32774 : #line 2639 "gram.y"
32775 : {
32776 : AlterTableCmd *n = makeNode(AlterTableCmd);
32777 :
32778 : n->subtype = AT_AlterColumnGenericOptions;
32779 : n->name = (yyvsp[-1].str);
32780 : n->def = (Node *) (yyvsp[0].list);
32781 : (yyval.node) = (Node *) n;
32782 : }
32783 : #line 32784 "gram.c"
32784 50 : break;
32785 :
32786 14636 : case 326: /* alter_table_cmd: ADD_P TableConstraint */
32787 : #line 2649 "gram.y"
32788 : {
32789 : AlterTableCmd *n = makeNode(AlterTableCmd);
32790 :
32791 : n->subtype = AT_AddConstraint;
32792 : n->def = (yyvsp[0].node);
32793 : (yyval.node) = (Node *) n;
32794 : }
32795 : #line 32796 "gram.c"
32796 14636 : break;
32797 :
32798 234 : case 327: /* alter_table_cmd: ALTER CONSTRAINT name ConstraintAttributeSpec */
32799 : #line 2658 "gram.y"
32800 : {
32801 : AlterTableCmd *n = makeNode(AlterTableCmd);
32802 : ATAlterConstraint *c = makeNode(ATAlterConstraint);
32803 :
32804 : n->subtype = AT_AlterConstraint;
32805 : n->def = (Node *) c;
32806 : c->conname = (yyvsp[-1].str);
32807 : if ((yyvsp[0].ival) & (CAS_NOT_ENFORCED | CAS_ENFORCED))
32808 : c->alterEnforceability = true;
32809 : if ((yyvsp[0].ival) & (CAS_DEFERRABLE | CAS_NOT_DEFERRABLE |
32810 : CAS_INITIALLY_DEFERRED | CAS_INITIALLY_IMMEDIATE))
32811 : c->alterDeferrability = true;
32812 : if ((yyvsp[0].ival) & CAS_NO_INHERIT)
32813 : c->alterInheritability = true;
32814 : processCASbits((yyvsp[0].ival), (yylsp[0]), "FOREIGN KEY",
32815 : &c->deferrable,
32816 : &c->initdeferred,
32817 : &c->is_enforced,
32818 : NULL,
32819 : &c->noinherit,
32820 : yyscanner);
32821 : (yyval.node) = (Node *) n;
32822 : }
32823 : #line 32824 "gram.c"
32824 228 : break;
32825 :
32826 66 : case 328: /* alter_table_cmd: ALTER CONSTRAINT name INHERIT */
32827 : #line 2683 "gram.y"
32828 : {
32829 : AlterTableCmd *n = makeNode(AlterTableCmd);
32830 : ATAlterConstraint *c = makeNode(ATAlterConstraint);
32831 :
32832 : n->subtype = AT_AlterConstraint;
32833 : n->def = (Node *) c;
32834 : c->conname = (yyvsp[-1].str);
32835 : c->alterInheritability = true;
32836 : c->noinherit = false;
32837 :
32838 : (yyval.node) = (Node *) n;
32839 : }
32840 : #line 32841 "gram.c"
32841 66 : break;
32842 :
32843 476 : case 329: /* alter_table_cmd: VALIDATE CONSTRAINT name */
32844 : #line 2697 "gram.y"
32845 : {
32846 : AlterTableCmd *n = makeNode(AlterTableCmd);
32847 :
32848 : n->subtype = AT_ValidateConstraint;
32849 : n->name = (yyvsp[0].str);
32850 : (yyval.node) = (Node *) n;
32851 : }
32852 : #line 32853 "gram.c"
32853 476 : break;
32854 :
32855 18 : case 330: /* alter_table_cmd: DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */
32856 : #line 2706 "gram.y"
32857 : {
32858 : AlterTableCmd *n = makeNode(AlterTableCmd);
32859 :
32860 : n->subtype = AT_DropConstraint;
32861 : n->name = (yyvsp[-1].str);
32862 : n->behavior = (yyvsp[0].dbehavior);
32863 : n->missing_ok = true;
32864 : (yyval.node) = (Node *) n;
32865 : }
32866 : #line 32867 "gram.c"
32867 18 : break;
32868 :
32869 798 : case 331: /* alter_table_cmd: DROP CONSTRAINT name opt_drop_behavior */
32870 : #line 2717 "gram.y"
32871 : {
32872 : AlterTableCmd *n = makeNode(AlterTableCmd);
32873 :
32874 : n->subtype = AT_DropConstraint;
32875 : n->name = (yyvsp[-1].str);
32876 : n->behavior = (yyvsp[0].dbehavior);
32877 : n->missing_ok = false;
32878 : (yyval.node) = (Node *) n;
32879 : }
32880 : #line 32881 "gram.c"
32881 798 : break;
32882 :
32883 6 : case 332: /* alter_table_cmd: SET WITHOUT OIDS */
32884 : #line 2728 "gram.y"
32885 : {
32886 : AlterTableCmd *n = makeNode(AlterTableCmd);
32887 :
32888 : n->subtype = AT_DropOids;
32889 : (yyval.node) = (Node *) n;
32890 : }
32891 : #line 32892 "gram.c"
32892 6 : break;
32893 :
32894 46 : case 333: /* alter_table_cmd: CLUSTER ON name */
32895 : #line 2736 "gram.y"
32896 : {
32897 : AlterTableCmd *n = makeNode(AlterTableCmd);
32898 :
32899 : n->subtype = AT_ClusterOn;
32900 : n->name = (yyvsp[0].str);
32901 : (yyval.node) = (Node *) n;
32902 : }
32903 : #line 32904 "gram.c"
32904 46 : break;
32905 :
32906 18 : case 334: /* alter_table_cmd: SET WITHOUT CLUSTER */
32907 : #line 2745 "gram.y"
32908 : {
32909 : AlterTableCmd *n = makeNode(AlterTableCmd);
32910 :
32911 : n->subtype = AT_DropCluster;
32912 : n->name = NULL;
32913 : (yyval.node) = (Node *) n;
32914 : }
32915 : #line 32916 "gram.c"
32916 18 : break;
32917 :
32918 50 : case 335: /* alter_table_cmd: SET LOGGED */
32919 : #line 2754 "gram.y"
32920 : {
32921 : AlterTableCmd *n = makeNode(AlterTableCmd);
32922 :
32923 : n->subtype = AT_SetLogged;
32924 : (yyval.node) = (Node *) n;
32925 : }
32926 : #line 32927 "gram.c"
32927 50 : break;
32928 :
32929 62 : case 336: /* alter_table_cmd: SET UNLOGGED */
32930 : #line 2762 "gram.y"
32931 : {
32932 : AlterTableCmd *n = makeNode(AlterTableCmd);
32933 :
32934 : n->subtype = AT_SetUnLogged;
32935 : (yyval.node) = (Node *) n;
32936 : }
32937 : #line 32938 "gram.c"
32938 62 : break;
32939 :
32940 122 : case 337: /* alter_table_cmd: ENABLE_P TRIGGER name */
32941 : #line 2770 "gram.y"
32942 : {
32943 : AlterTableCmd *n = makeNode(AlterTableCmd);
32944 :
32945 : n->subtype = AT_EnableTrig;
32946 : n->name = (yyvsp[0].str);
32947 : (yyval.node) = (Node *) n;
32948 : }
32949 : #line 32950 "gram.c"
32950 122 : break;
32951 :
32952 44 : case 338: /* alter_table_cmd: ENABLE_P ALWAYS TRIGGER name */
32953 : #line 2779 "gram.y"
32954 : {
32955 : AlterTableCmd *n = makeNode(AlterTableCmd);
32956 :
32957 : n->subtype = AT_EnableAlwaysTrig;
32958 : n->name = (yyvsp[0].str);
32959 : (yyval.node) = (Node *) n;
32960 : }
32961 : #line 32962 "gram.c"
32962 44 : break;
32963 :
32964 16 : case 339: /* alter_table_cmd: ENABLE_P REPLICA TRIGGER name */
32965 : #line 2788 "gram.y"
32966 : {
32967 : AlterTableCmd *n = makeNode(AlterTableCmd);
32968 :
32969 : n->subtype = AT_EnableReplicaTrig;
32970 : n->name = (yyvsp[0].str);
32971 : (yyval.node) = (Node *) n;
32972 : }
32973 : #line 32974 "gram.c"
32974 16 : break;
32975 :
32976 0 : case 340: /* alter_table_cmd: ENABLE_P TRIGGER ALL */
32977 : #line 2797 "gram.y"
32978 : {
32979 : AlterTableCmd *n = makeNode(AlterTableCmd);
32980 :
32981 : n->subtype = AT_EnableTrigAll;
32982 : (yyval.node) = (Node *) n;
32983 : }
32984 : #line 32985 "gram.c"
32985 0 : break;
32986 :
32987 0 : case 341: /* alter_table_cmd: ENABLE_P TRIGGER USER */
32988 : #line 2805 "gram.y"
32989 : {
32990 : AlterTableCmd *n = makeNode(AlterTableCmd);
32991 :
32992 : n->subtype = AT_EnableTrigUser;
32993 : (yyval.node) = (Node *) n;
32994 : }
32995 : #line 32996 "gram.c"
32996 0 : break;
32997 :
32998 140 : case 342: /* alter_table_cmd: DISABLE_P TRIGGER name */
32999 : #line 2813 "gram.y"
33000 : {
33001 : AlterTableCmd *n = makeNode(AlterTableCmd);
33002 :
33003 : n->subtype = AT_DisableTrig;
33004 : n->name = (yyvsp[0].str);
33005 : (yyval.node) = (Node *) n;
33006 : }
33007 : #line 33008 "gram.c"
33008 140 : break;
33009 :
33010 12 : case 343: /* alter_table_cmd: DISABLE_P TRIGGER ALL */
33011 : #line 2822 "gram.y"
33012 : {
33013 : AlterTableCmd *n = makeNode(AlterTableCmd);
33014 :
33015 : n->subtype = AT_DisableTrigAll;
33016 : (yyval.node) = (Node *) n;
33017 : }
33018 : #line 33019 "gram.c"
33019 12 : break;
33020 :
33021 12 : case 344: /* alter_table_cmd: DISABLE_P TRIGGER USER */
33022 : #line 2830 "gram.y"
33023 : {
33024 : AlterTableCmd *n = makeNode(AlterTableCmd);
33025 :
33026 : n->subtype = AT_DisableTrigUser;
33027 : (yyval.node) = (Node *) n;
33028 : }
33029 : #line 33030 "gram.c"
33030 12 : break;
33031 :
33032 8 : case 345: /* alter_table_cmd: ENABLE_P RULE name */
33033 : #line 2838 "gram.y"
33034 : {
33035 : AlterTableCmd *n = makeNode(AlterTableCmd);
33036 :
33037 : n->subtype = AT_EnableRule;
33038 : n->name = (yyvsp[0].str);
33039 : (yyval.node) = (Node *) n;
33040 : }
33041 : #line 33042 "gram.c"
33042 8 : break;
33043 :
33044 0 : case 346: /* alter_table_cmd: ENABLE_P ALWAYS RULE name */
33045 : #line 2847 "gram.y"
33046 : {
33047 : AlterTableCmd *n = makeNode(AlterTableCmd);
33048 :
33049 : n->subtype = AT_EnableAlwaysRule;
33050 : n->name = (yyvsp[0].str);
33051 : (yyval.node) = (Node *) n;
33052 : }
33053 : #line 33054 "gram.c"
33054 0 : break;
33055 :
33056 6 : case 347: /* alter_table_cmd: ENABLE_P REPLICA RULE name */
33057 : #line 2856 "gram.y"
33058 : {
33059 : AlterTableCmd *n = makeNode(AlterTableCmd);
33060 :
33061 : n->subtype = AT_EnableReplicaRule;
33062 : n->name = (yyvsp[0].str);
33063 : (yyval.node) = (Node *) n;
33064 : }
33065 : #line 33066 "gram.c"
33066 6 : break;
33067 :
33068 38 : case 348: /* alter_table_cmd: DISABLE_P RULE name */
33069 : #line 2865 "gram.y"
33070 : {
33071 : AlterTableCmd *n = makeNode(AlterTableCmd);
33072 :
33073 : n->subtype = AT_DisableRule;
33074 : n->name = (yyvsp[0].str);
33075 : (yyval.node) = (Node *) n;
33076 : }
33077 : #line 33078 "gram.c"
33078 38 : break;
33079 :
33080 444 : case 349: /* alter_table_cmd: INHERIT qualified_name */
33081 : #line 2874 "gram.y"
33082 : {
33083 : AlterTableCmd *n = makeNode(AlterTableCmd);
33084 :
33085 : n->subtype = AT_AddInherit;
33086 : n->def = (Node *) (yyvsp[0].range);
33087 : (yyval.node) = (Node *) n;
33088 : }
33089 : #line 33090 "gram.c"
33090 444 : break;
33091 :
33092 86 : case 350: /* alter_table_cmd: NO INHERIT qualified_name */
33093 : #line 2883 "gram.y"
33094 : {
33095 : AlterTableCmd *n = makeNode(AlterTableCmd);
33096 :
33097 : n->subtype = AT_DropInherit;
33098 : n->def = (Node *) (yyvsp[0].range);
33099 : (yyval.node) = (Node *) n;
33100 : }
33101 : #line 33102 "gram.c"
33102 86 : break;
33103 :
33104 66 : case 351: /* alter_table_cmd: OF any_name */
33105 : #line 2892 "gram.y"
33106 : {
33107 : AlterTableCmd *n = makeNode(AlterTableCmd);
33108 : TypeName *def = makeTypeNameFromNameList((yyvsp[0].list));
33109 :
33110 : def->location = (yylsp[0]);
33111 : n->subtype = AT_AddOf;
33112 : n->def = (Node *) def;
33113 : (yyval.node) = (Node *) n;
33114 : }
33115 : #line 33116 "gram.c"
33116 66 : break;
33117 :
33118 6 : case 352: /* alter_table_cmd: NOT OF */
33119 : #line 2903 "gram.y"
33120 : {
33121 : AlterTableCmd *n = makeNode(AlterTableCmd);
33122 :
33123 : n->subtype = AT_DropOf;
33124 : (yyval.node) = (Node *) n;
33125 : }
33126 : #line 33127 "gram.c"
33127 6 : break;
33128 :
33129 3602 : case 353: /* alter_table_cmd: OWNER TO RoleSpec */
33130 : #line 2911 "gram.y"
33131 : {
33132 : AlterTableCmd *n = makeNode(AlterTableCmd);
33133 :
33134 : n->subtype = AT_ChangeOwner;
33135 : n->newowner = (yyvsp[0].rolespec);
33136 : (yyval.node) = (Node *) n;
33137 : }
33138 : #line 33139 "gram.c"
33139 3602 : break;
33140 :
33141 128 : case 354: /* alter_table_cmd: SET ACCESS METHOD set_access_method_name */
33142 : #line 2920 "gram.y"
33143 : {
33144 : AlterTableCmd *n = makeNode(AlterTableCmd);
33145 :
33146 : n->subtype = AT_SetAccessMethod;
33147 : n->name = (yyvsp[0].str);
33148 : (yyval.node) = (Node *) n;
33149 : }
33150 : #line 33151 "gram.c"
33151 128 : break;
33152 :
33153 104 : case 355: /* alter_table_cmd: SET TABLESPACE name */
33154 : #line 2929 "gram.y"
33155 : {
33156 : AlterTableCmd *n = makeNode(AlterTableCmd);
33157 :
33158 : n->subtype = AT_SetTableSpace;
33159 : n->name = (yyvsp[0].str);
33160 : (yyval.node) = (Node *) n;
33161 : }
33162 : #line 33163 "gram.c"
33163 104 : break;
33164 :
33165 594 : case 356: /* alter_table_cmd: SET reloptions */
33166 : #line 2938 "gram.y"
33167 : {
33168 : AlterTableCmd *n = makeNode(AlterTableCmd);
33169 :
33170 : n->subtype = AT_SetRelOptions;
33171 : n->def = (Node *) (yyvsp[0].list);
33172 : (yyval.node) = (Node *) n;
33173 : }
33174 : #line 33175 "gram.c"
33175 594 : break;
33176 :
33177 170 : case 357: /* alter_table_cmd: RESET reloptions */
33178 : #line 2947 "gram.y"
33179 : {
33180 : AlterTableCmd *n = makeNode(AlterTableCmd);
33181 :
33182 : n->subtype = AT_ResetRelOptions;
33183 : n->def = (Node *) (yyvsp[0].list);
33184 : (yyval.node) = (Node *) n;
33185 : }
33186 : #line 33187 "gram.c"
33187 170 : break;
33188 :
33189 490 : case 358: /* alter_table_cmd: REPLICA IDENTITY_P replica_identity */
33190 : #line 2956 "gram.y"
33191 : {
33192 : AlterTableCmd *n = makeNode(AlterTableCmd);
33193 :
33194 : n->subtype = AT_ReplicaIdentity;
33195 : n->def = (yyvsp[0].node);
33196 : (yyval.node) = (Node *) n;
33197 : }
33198 : #line 33199 "gram.c"
33199 490 : break;
33200 :
33201 308 : case 359: /* alter_table_cmd: ENABLE_P ROW LEVEL SECURITY */
33202 : #line 2965 "gram.y"
33203 : {
33204 : AlterTableCmd *n = makeNode(AlterTableCmd);
33205 :
33206 : n->subtype = AT_EnableRowSecurity;
33207 : (yyval.node) = (Node *) n;
33208 : }
33209 : #line 33210 "gram.c"
33210 308 : break;
33211 :
33212 10 : case 360: /* alter_table_cmd: DISABLE_P ROW LEVEL SECURITY */
33213 : #line 2973 "gram.y"
33214 : {
33215 : AlterTableCmd *n = makeNode(AlterTableCmd);
33216 :
33217 : n->subtype = AT_DisableRowSecurity;
33218 : (yyval.node) = (Node *) n;
33219 : }
33220 : #line 33221 "gram.c"
33221 10 : break;
33222 :
33223 102 : case 361: /* alter_table_cmd: FORCE ROW LEVEL SECURITY */
33224 : #line 2981 "gram.y"
33225 : {
33226 : AlterTableCmd *n = makeNode(AlterTableCmd);
33227 :
33228 : n->subtype = AT_ForceRowSecurity;
33229 : (yyval.node) = (Node *) n;
33230 : }
33231 : #line 33232 "gram.c"
33232 102 : break;
33233 :
33234 32 : case 362: /* alter_table_cmd: NO FORCE ROW LEVEL SECURITY */
33235 : #line 2989 "gram.y"
33236 : {
33237 : AlterTableCmd *n = makeNode(AlterTableCmd);
33238 :
33239 : n->subtype = AT_NoForceRowSecurity;
33240 : (yyval.node) = (Node *) n;
33241 : }
33242 : #line 33243 "gram.c"
33243 32 : break;
33244 :
33245 64 : case 363: /* alter_table_cmd: alter_generic_options */
33246 : #line 2996 "gram.y"
33247 : {
33248 : AlterTableCmd *n = makeNode(AlterTableCmd);
33249 :
33250 : n->subtype = AT_GenericOptions;
33251 : n->def = (Node *) (yyvsp[0].list);
33252 : (yyval.node) = (Node *) n;
33253 : }
33254 : #line 33255 "gram.c"
33255 64 : break;
33256 :
33257 406 : case 364: /* alter_column_default: SET DEFAULT a_expr */
33258 : #line 3006 "gram.y"
33259 : { (yyval.node) = (yyvsp[0].node); }
33260 : #line 33261 "gram.c"
33261 406 : break;
33262 :
33263 186 : case 365: /* alter_column_default: DROP DEFAULT */
33264 : #line 3007 "gram.y"
33265 : { (yyval.node) = NULL; }
33266 : #line 33267 "gram.c"
33267 186 : break;
33268 :
33269 18 : case 366: /* opt_collate_clause: COLLATE any_name */
33270 : #line 3012 "gram.y"
33271 : {
33272 : CollateClause *n = makeNode(CollateClause);
33273 :
33274 : n->arg = NULL;
33275 : n->collname = (yyvsp[0].list);
33276 : n->location = (yylsp[-1]);
33277 : (yyval.node) = (Node *) n;
33278 : }
33279 : #line 33280 "gram.c"
33280 18 : break;
33281 :
33282 4774 : case 367: /* opt_collate_clause: %empty */
33283 : #line 3020 "gram.y"
33284 : { (yyval.node) = NULL; }
33285 : #line 33286 "gram.c"
33286 4774 : break;
33287 :
33288 174 : case 368: /* alter_using: USING a_expr */
33289 : #line 3024 "gram.y"
33290 : { (yyval.node) = (yyvsp[0].node); }
33291 : #line 33292 "gram.c"
33292 174 : break;
33293 :
33294 820 : case 369: /* alter_using: %empty */
33295 : #line 3025 "gram.y"
33296 : { (yyval.node) = NULL; }
33297 : #line 33298 "gram.c"
33298 820 : break;
33299 :
33300 48 : case 370: /* replica_identity: NOTHING */
33301 : #line 3030 "gram.y"
33302 : {
33303 : ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
33304 :
33305 : n->identity_type = REPLICA_IDENTITY_NOTHING;
33306 : n->name = NULL;
33307 : (yyval.node) = (Node *) n;
33308 : }
33309 : #line 33310 "gram.c"
33310 48 : break;
33311 :
33312 166 : case 371: /* replica_identity: FULL */
33313 : #line 3038 "gram.y"
33314 : {
33315 : ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
33316 :
33317 : n->identity_type = REPLICA_IDENTITY_FULL;
33318 : n->name = NULL;
33319 : (yyval.node) = (Node *) n;
33320 : }
33321 : #line 33322 "gram.c"
33322 166 : break;
33323 :
33324 6 : case 372: /* replica_identity: DEFAULT */
33325 : #line 3046 "gram.y"
33326 : {
33327 : ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
33328 :
33329 : n->identity_type = REPLICA_IDENTITY_DEFAULT;
33330 : n->name = NULL;
33331 : (yyval.node) = (Node *) n;
33332 : }
33333 : #line 33334 "gram.c"
33334 6 : break;
33335 :
33336 270 : case 373: /* replica_identity: USING INDEX name */
33337 : #line 3054 "gram.y"
33338 : {
33339 : ReplicaIdentityStmt *n = makeNode(ReplicaIdentityStmt);
33340 :
33341 : n->identity_type = REPLICA_IDENTITY_INDEX;
33342 : n->name = (yyvsp[0].str);
33343 : (yyval.node) = (Node *) n;
33344 : }
33345 : #line 33346 "gram.c"
33346 270 : break;
33347 :
33348 2774 : case 374: /* reloptions: '(' reloption_list ')' */
33349 : #line 3064 "gram.y"
33350 : { (yyval.list) = (yyvsp[-1].list); }
33351 : #line 33352 "gram.c"
33352 2774 : break;
33353 :
33354 1010 : case 375: /* opt_reloptions: WITH reloptions */
33355 : #line 3067 "gram.y"
33356 : { (yyval.list) = (yyvsp[0].list); }
33357 : #line 33358 "gram.c"
33358 1010 : break;
33359 :
33360 23238 : case 376: /* opt_reloptions: %empty */
33361 : #line 3068 "gram.y"
33362 : { (yyval.list) = NIL; }
33363 : #line 33364 "gram.c"
33364 23238 : break;
33365 :
33366 2774 : case 377: /* reloption_list: reloption_elem */
33367 : #line 3072 "gram.y"
33368 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
33369 : #line 33370 "gram.c"
33370 2774 : break;
33371 :
33372 244 : case 378: /* reloption_list: reloption_list ',' reloption_elem */
33373 : #line 3073 "gram.y"
33374 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
33375 : #line 33376 "gram.c"
33376 244 : break;
33377 :
33378 2370 : case 379: /* reloption_elem: ColLabel '=' def_arg */
33379 : #line 3079 "gram.y"
33380 : {
33381 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
33382 : }
33383 : #line 33384 "gram.c"
33384 2370 : break;
33385 :
33386 578 : case 380: /* reloption_elem: ColLabel */
33387 : #line 3083 "gram.y"
33388 : {
33389 : (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0]));
33390 : }
33391 : #line 33392 "gram.c"
33392 578 : break;
33393 :
33394 64 : case 381: /* reloption_elem: ColLabel '.' ColLabel '=' def_arg */
33395 : #line 3087 "gram.y"
33396 : {
33397 : (yyval.defelt) = makeDefElemExtended((yyvsp[-4].str), (yyvsp[-2].str), (Node *) (yyvsp[0].node),
33398 : DEFELEM_UNSPEC, (yylsp[-4]));
33399 : }
33400 : #line 33401 "gram.c"
33401 64 : break;
33402 :
33403 6 : case 382: /* reloption_elem: ColLabel '.' ColLabel */
33404 : #line 3092 "gram.y"
33405 : {
33406 : (yyval.defelt) = makeDefElemExtended((yyvsp[-2].str), (yyvsp[0].str), NULL, DEFELEM_UNSPEC, (yylsp[-2]));
33407 : }
33408 : #line 33409 "gram.c"
33409 6 : break;
33410 :
33411 62 : case 383: /* alter_identity_column_option_list: alter_identity_column_option */
33412 : #line 3099 "gram.y"
33413 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
33414 : #line 33415 "gram.c"
33415 62 : break;
33416 :
33417 60 : case 384: /* alter_identity_column_option_list: alter_identity_column_option_list alter_identity_column_option */
33418 : #line 3101 "gram.y"
33419 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
33420 : #line 33421 "gram.c"
33421 60 : break;
33422 :
33423 24 : case 385: /* alter_identity_column_option: RESTART */
33424 : #line 3106 "gram.y"
33425 : {
33426 : (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0]));
33427 : }
33428 : #line 33429 "gram.c"
33429 24 : break;
33430 :
33431 0 : case 386: /* alter_identity_column_option: RESTART opt_with NumericOnly */
33432 : #line 3110 "gram.y"
33433 : {
33434 : (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[0].node), (yylsp[-2]));
33435 : }
33436 : #line 33437 "gram.c"
33437 0 : break;
33438 :
33439 54 : case 387: /* alter_identity_column_option: SET SeqOptElem */
33440 : #line 3114 "gram.y"
33441 : {
33442 : if (strcmp((yyvsp[0].defelt)->defname, "as") == 0 ||
33443 : strcmp((yyvsp[0].defelt)->defname, "restart") == 0 ||
33444 : strcmp((yyvsp[0].defelt)->defname, "owned_by") == 0)
33445 : ereport(ERROR,
33446 : (errcode(ERRCODE_SYNTAX_ERROR),
33447 : errmsg("sequence option \"%s\" not supported here", (yyvsp[0].defelt)->defname),
33448 : parser_errposition((yylsp[0]))));
33449 : (yyval.defelt) = (yyvsp[0].defelt);
33450 : }
33451 : #line 33452 "gram.c"
33452 54 : break;
33453 :
33454 44 : case 388: /* alter_identity_column_option: SET GENERATED generated_when */
33455 : #line 3125 "gram.y"
33456 : {
33457 : (yyval.defelt) = makeDefElem("generated", (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-2]));
33458 : }
33459 : #line 33460 "gram.c"
33460 44 : break;
33461 :
33462 158 : case 389: /* set_statistics_value: SignedIconst */
33463 : #line 3131 "gram.y"
33464 : { (yyval.node) = (Node *) makeInteger((yyvsp[0].ival)); }
33465 : #line 33466 "gram.c"
33466 158 : break;
33467 :
33468 0 : case 390: /* set_statistics_value: DEFAULT */
33469 : #line 3132 "gram.y"
33470 : { (yyval.node) = NULL; }
33471 : #line 33472 "gram.c"
33472 0 : break;
33473 :
33474 92 : case 391: /* set_access_method_name: ColId */
33475 : #line 3136 "gram.y"
33476 : { (yyval.str) = (yyvsp[0].str); }
33477 : #line 33478 "gram.c"
33478 92 : break;
33479 :
33480 36 : case 392: /* set_access_method_name: DEFAULT */
33481 : #line 3137 "gram.y"
33482 : { (yyval.str) = NULL; }
33483 : #line 33484 "gram.c"
33484 36 : break;
33485 :
33486 738 : case 393: /* PartitionBoundSpec: FOR VALUES WITH '(' hash_partbound ')' */
33487 : #line 3143 "gram.y"
33488 : {
33489 : ListCell *lc;
33490 : PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
33491 :
33492 : n->strategy = PARTITION_STRATEGY_HASH;
33493 : n->modulus = n->remainder = -1;
33494 :
33495 : foreach (lc, (yyvsp[-1].list))
33496 : {
33497 : DefElem *opt = lfirst_node(DefElem, lc);
33498 :
33499 : if (strcmp(opt->defname, "modulus") == 0)
33500 : {
33501 : if (n->modulus != -1)
33502 : ereport(ERROR,
33503 : (errcode(ERRCODE_DUPLICATE_OBJECT),
33504 : errmsg("modulus for hash partition provided more than once"),
33505 : parser_errposition(opt->location)));
33506 : n->modulus = defGetInt32(opt);
33507 : }
33508 : else if (strcmp(opt->defname, "remainder") == 0)
33509 : {
33510 : if (n->remainder != -1)
33511 : ereport(ERROR,
33512 : (errcode(ERRCODE_DUPLICATE_OBJECT),
33513 : errmsg("remainder for hash partition provided more than once"),
33514 : parser_errposition(opt->location)));
33515 : n->remainder = defGetInt32(opt);
33516 : }
33517 : else
33518 : ereport(ERROR,
33519 : (errcode(ERRCODE_SYNTAX_ERROR),
33520 : errmsg("unrecognized hash partition bound specification \"%s\"",
33521 : opt->defname),
33522 : parser_errposition(opt->location)));
33523 : }
33524 :
33525 : if (n->modulus == -1)
33526 : ereport(ERROR,
33527 : (errcode(ERRCODE_SYNTAX_ERROR),
33528 : errmsg("modulus for hash partition must be specified"),
33529 : parser_errposition((yylsp[-3]))));
33530 : if (n->remainder == -1)
33531 : ereport(ERROR,
33532 : (errcode(ERRCODE_SYNTAX_ERROR),
33533 : errmsg("remainder for hash partition must be specified"),
33534 : parser_errposition((yylsp[-3]))));
33535 :
33536 : n->location = (yylsp[-3]);
33537 :
33538 : (yyval.partboundspec) = n;
33539 : }
33540 : #line 33541 "gram.c"
33541 738 : break;
33542 :
33543 5068 : case 394: /* PartitionBoundSpec: FOR VALUES IN_P '(' expr_list ')' */
33544 : #line 3198 "gram.y"
33545 : {
33546 : PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
33547 :
33548 : n->strategy = PARTITION_STRATEGY_LIST;
33549 : n->is_default = false;
33550 : n->listdatums = (yyvsp[-1].list);
33551 : n->location = (yylsp[-3]);
33552 :
33553 : (yyval.partboundspec) = n;
33554 : }
33555 : #line 33556 "gram.c"
33556 5068 : break;
33557 :
33558 4380 : case 395: /* PartitionBoundSpec: FOR VALUES FROM '(' expr_list ')' TO '(' expr_list ')' */
33559 : #line 3211 "gram.y"
33560 : {
33561 : PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
33562 :
33563 : n->strategy = PARTITION_STRATEGY_RANGE;
33564 : n->is_default = false;
33565 : n->lowerdatums = (yyvsp[-5].list);
33566 : n->upperdatums = (yyvsp[-1].list);
33567 : n->location = (yylsp[-7]);
33568 :
33569 : (yyval.partboundspec) = n;
33570 : }
33571 : #line 33572 "gram.c"
33572 4380 : break;
33573 :
33574 622 : case 396: /* PartitionBoundSpec: DEFAULT */
33575 : #line 3225 "gram.y"
33576 : {
33577 : PartitionBoundSpec *n = makeNode(PartitionBoundSpec);
33578 :
33579 : n->is_default = true;
33580 : n->location = (yylsp[0]);
33581 :
33582 : (yyval.partboundspec) = n;
33583 : }
33584 : #line 33585 "gram.c"
33585 622 : break;
33586 :
33587 1476 : case 397: /* hash_partbound_elem: NonReservedWord Iconst */
33588 : #line 3237 "gram.y"
33589 : {
33590 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (Node *) makeInteger((yyvsp[0].ival)), (yylsp[-1]));
33591 : }
33592 : #line 33593 "gram.c"
33593 1476 : break;
33594 :
33595 738 : case 398: /* hash_partbound: hash_partbound_elem */
33596 : #line 3244 "gram.y"
33597 : {
33598 : (yyval.list) = list_make1((yyvsp[0].defelt));
33599 : }
33600 : #line 33601 "gram.c"
33601 738 : break;
33602 :
33603 738 : case 399: /* hash_partbound: hash_partbound ',' hash_partbound_elem */
33604 : #line 3248 "gram.y"
33605 : {
33606 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
33607 : }
33608 : #line 33609 "gram.c"
33609 738 : break;
33610 :
33611 210 : case 400: /* AlterCompositeTypeStmt: ALTER TYPE_P any_name alter_type_cmds */
33612 : #line 3262 "gram.y"
33613 : {
33614 : AlterTableStmt *n = makeNode(AlterTableStmt);
33615 :
33616 : /* can't use qualified_name, sigh */
33617 : n->relation = makeRangeVarFromAnyName((yyvsp[-1].list), (yylsp[-1]), yyscanner);
33618 : n->cmds = (yyvsp[0].list);
33619 : n->objtype = OBJECT_TYPE;
33620 : (yyval.node) = (Node *) n;
33621 : }
33622 : #line 33623 "gram.c"
33623 210 : break;
33624 :
33625 210 : case 401: /* alter_type_cmds: alter_type_cmd */
33626 : #line 3274 "gram.y"
33627 : { (yyval.list) = list_make1((yyvsp[0].node)); }
33628 : #line 33629 "gram.c"
33629 210 : break;
33630 :
33631 12 : case 402: /* alter_type_cmds: alter_type_cmds ',' alter_type_cmd */
33632 : #line 3275 "gram.y"
33633 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
33634 : #line 33635 "gram.c"
33635 12 : break;
33636 :
33637 64 : case 403: /* alter_type_cmd: ADD_P ATTRIBUTE TableFuncElement opt_drop_behavior */
33638 : #line 3281 "gram.y"
33639 : {
33640 : AlterTableCmd *n = makeNode(AlterTableCmd);
33641 :
33642 : n->subtype = AT_AddColumn;
33643 : n->def = (yyvsp[-1].node);
33644 : n->behavior = (yyvsp[0].dbehavior);
33645 : (yyval.node) = (Node *) n;
33646 : }
33647 : #line 33648 "gram.c"
33648 64 : break;
33649 :
33650 6 : case 404: /* alter_type_cmd: DROP ATTRIBUTE IF_P EXISTS ColId opt_drop_behavior */
33651 : #line 3291 "gram.y"
33652 : {
33653 : AlterTableCmd *n = makeNode(AlterTableCmd);
33654 :
33655 : n->subtype = AT_DropColumn;
33656 : n->name = (yyvsp[-1].str);
33657 : n->behavior = (yyvsp[0].dbehavior);
33658 : n->missing_ok = true;
33659 : (yyval.node) = (Node *) n;
33660 : }
33661 : #line 33662 "gram.c"
33662 6 : break;
33663 :
33664 78 : case 405: /* alter_type_cmd: DROP ATTRIBUTE ColId opt_drop_behavior */
33665 : #line 3302 "gram.y"
33666 : {
33667 : AlterTableCmd *n = makeNode(AlterTableCmd);
33668 :
33669 : n->subtype = AT_DropColumn;
33670 : n->name = (yyvsp[-1].str);
33671 : n->behavior = (yyvsp[0].dbehavior);
33672 : n->missing_ok = false;
33673 : (yyval.node) = (Node *) n;
33674 : }
33675 : #line 33676 "gram.c"
33676 78 : break;
33677 :
33678 74 : case 406: /* alter_type_cmd: ALTER ATTRIBUTE ColId opt_set_data TYPE_P Typename opt_collate_clause opt_drop_behavior */
33679 : #line 3313 "gram.y"
33680 : {
33681 : AlterTableCmd *n = makeNode(AlterTableCmd);
33682 : ColumnDef *def = makeNode(ColumnDef);
33683 :
33684 : n->subtype = AT_AlterColumnType;
33685 : n->name = (yyvsp[-5].str);
33686 : n->def = (Node *) def;
33687 : n->behavior = (yyvsp[0].dbehavior);
33688 : /* We only use these fields of the ColumnDef node */
33689 : def->typeName = (yyvsp[-2].typnam);
33690 : def->collClause = (CollateClause *) (yyvsp[-1].node);
33691 : def->raw_default = NULL;
33692 : def->location = (yylsp[-5]);
33693 : (yyval.node) = (Node *) n;
33694 : }
33695 : #line 33696 "gram.c"
33696 74 : break;
33697 :
33698 2224 : case 407: /* ClosePortalStmt: CLOSE cursor_name */
33699 : #line 3340 "gram.y"
33700 : {
33701 : ClosePortalStmt *n = makeNode(ClosePortalStmt);
33702 :
33703 : n->portalname = (yyvsp[0].str);
33704 : (yyval.node) = (Node *) n;
33705 : }
33706 : #line 33707 "gram.c"
33707 2224 : break;
33708 :
33709 12 : case 408: /* ClosePortalStmt: CLOSE ALL */
33710 : #line 3347 "gram.y"
33711 : {
33712 : ClosePortalStmt *n = makeNode(ClosePortalStmt);
33713 :
33714 : n->portalname = NULL;
33715 : (yyval.node) = (Node *) n;
33716 : }
33717 : #line 33718 "gram.c"
33718 12 : break;
33719 :
33720 15940 : case 409: /* CopyStmt: COPY opt_binary qualified_name opt_column_list copy_from opt_program copy_file_name copy_delimiter opt_with copy_options where_clause */
33721 : #line 3383 "gram.y"
33722 : {
33723 : CopyStmt *n = makeNode(CopyStmt);
33724 :
33725 : n->relation = (yyvsp[-8].range);
33726 : n->query = NULL;
33727 : n->attlist = (yyvsp[-7].list);
33728 : n->is_from = (yyvsp[-6].boolean);
33729 : n->is_program = (yyvsp[-5].boolean);
33730 : n->filename = (yyvsp[-4].str);
33731 : n->whereClause = (yyvsp[0].node);
33732 :
33733 : if (n->is_program && n->filename == NULL)
33734 : ereport(ERROR,
33735 : (errcode(ERRCODE_SYNTAX_ERROR),
33736 : errmsg("STDIN/STDOUT not allowed with PROGRAM"),
33737 : parser_errposition((yylsp[-3]))));
33738 :
33739 : if (!n->is_from && n->whereClause != NULL)
33740 : ereport(ERROR,
33741 : (errcode(ERRCODE_SYNTAX_ERROR),
33742 : errmsg("WHERE clause not allowed with COPY TO"),
33743 : parser_errposition((yylsp[0]))));
33744 :
33745 : n->options = NIL;
33746 : /* Concatenate user-supplied flags */
33747 : if ((yyvsp[-9].defelt))
33748 : n->options = lappend(n->options, (yyvsp[-9].defelt));
33749 : if ((yyvsp[-3].defelt))
33750 : n->options = lappend(n->options, (yyvsp[-3].defelt));
33751 : if ((yyvsp[-1].list))
33752 : n->options = list_concat(n->options, (yyvsp[-1].list));
33753 : (yyval.node) = (Node *) n;
33754 : }
33755 : #line 33756 "gram.c"
33756 15934 : break;
33757 :
33758 464 : case 410: /* CopyStmt: COPY '(' PreparableStmt ')' TO opt_program copy_file_name opt_with copy_options */
33759 : #line 3417 "gram.y"
33760 : {
33761 : CopyStmt *n = makeNode(CopyStmt);
33762 :
33763 : updatePreparableStmtEnd((yyvsp[-6].node), (yylsp[-5]));
33764 : n->relation = NULL;
33765 : n->query = (yyvsp[-6].node);
33766 : n->attlist = NIL;
33767 : n->is_from = false;
33768 : n->is_program = (yyvsp[-3].boolean);
33769 : n->filename = (yyvsp[-2].str);
33770 : n->options = (yyvsp[0].list);
33771 :
33772 : if (n->is_program && n->filename == NULL)
33773 : ereport(ERROR,
33774 : (errcode(ERRCODE_SYNTAX_ERROR),
33775 : errmsg("STDIN/STDOUT not allowed with PROGRAM"),
33776 : parser_errposition((yylsp[-4]))));
33777 :
33778 : (yyval.node) = (Node *) n;
33779 : }
33780 : #line 33781 "gram.c"
33781 464 : break;
33782 :
33783 3006 : case 411: /* copy_from: FROM */
33784 : #line 3440 "gram.y"
33785 : { (yyval.boolean) = true; }
33786 : #line 33787 "gram.c"
33787 3006 : break;
33788 :
33789 12934 : case 412: /* copy_from: TO */
33790 : #line 3441 "gram.y"
33791 : { (yyval.boolean) = false; }
33792 : #line 33793 "gram.c"
33793 12934 : break;
33794 :
33795 0 : case 413: /* opt_program: PROGRAM */
33796 : #line 3445 "gram.y"
33797 : { (yyval.boolean) = true; }
33798 : #line 33799 "gram.c"
33799 0 : break;
33800 :
33801 16404 : case 414: /* opt_program: %empty */
33802 : #line 3446 "gram.y"
33803 : { (yyval.boolean) = false; }
33804 : #line 33805 "gram.c"
33805 16404 : break;
33806 :
33807 450 : case 415: /* copy_file_name: Sconst */
33808 : #line 3455 "gram.y"
33809 : { (yyval.str) = (yyvsp[0].str); }
33810 : #line 33811 "gram.c"
33811 450 : break;
33812 :
33813 2620 : case 416: /* copy_file_name: STDIN */
33814 : #line 3456 "gram.y"
33815 : { (yyval.str) = NULL; }
33816 : #line 33817 "gram.c"
33817 2620 : break;
33818 :
33819 13334 : case 417: /* copy_file_name: STDOUT */
33820 : #line 3457 "gram.y"
33821 : { (yyval.str) = NULL; }
33822 : #line 33823 "gram.c"
33823 13334 : break;
33824 :
33825 15748 : case 418: /* copy_options: copy_opt_list */
33826 : #line 3460 "gram.y"
33827 : { (yyval.list) = (yyvsp[0].list); }
33828 : #line 33829 "gram.c"
33829 15748 : break;
33830 :
33831 656 : case 419: /* copy_options: '(' copy_generic_opt_list ')' */
33832 : #line 3461 "gram.y"
33833 : { (yyval.list) = (yyvsp[-1].list); }
33834 : #line 33835 "gram.c"
33835 656 : break;
33836 :
33837 504 : case 420: /* copy_opt_list: copy_opt_list copy_opt_item */
33838 : #line 3466 "gram.y"
33839 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
33840 : #line 33841 "gram.c"
33841 504 : break;
33842 :
33843 15748 : case 421: /* copy_opt_list: %empty */
33844 : #line 3467 "gram.y"
33845 : { (yyval.list) = NIL; }
33846 : #line 33847 "gram.c"
33847 15748 : break;
33848 :
33849 0 : case 422: /* copy_opt_item: BINARY */
33850 : #line 3472 "gram.y"
33851 : {
33852 : (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[0]));
33853 : }
33854 : #line 33855 "gram.c"
33855 0 : break;
33856 :
33857 50 : case 423: /* copy_opt_item: FREEZE */
33858 : #line 3476 "gram.y"
33859 : {
33860 : (yyval.defelt) = makeDefElem("freeze", (Node *) makeBoolean(true), (yylsp[0]));
33861 : }
33862 : #line 33863 "gram.c"
33863 50 : break;
33864 :
33865 172 : case 424: /* copy_opt_item: DELIMITER opt_as Sconst */
33866 : #line 3480 "gram.y"
33867 : {
33868 : (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
33869 : }
33870 : #line 33871 "gram.c"
33871 172 : break;
33872 :
33873 48 : case 425: /* copy_opt_item: NULL_P opt_as Sconst */
33874 : #line 3484 "gram.y"
33875 : {
33876 : (yyval.defelt) = makeDefElem("null", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
33877 : }
33878 : #line 33879 "gram.c"
33879 48 : break;
33880 :
33881 150 : case 426: /* copy_opt_item: CSV */
33882 : #line 3488 "gram.y"
33883 : {
33884 : (yyval.defelt) = makeDefElem("format", (Node *) makeString("csv"), (yylsp[0]));
33885 : }
33886 : #line 33887 "gram.c"
33887 150 : break;
33888 :
33889 18 : case 427: /* copy_opt_item: HEADER_P */
33890 : #line 3492 "gram.y"
33891 : {
33892 : (yyval.defelt) = makeDefElem("header", (Node *) makeBoolean(true), (yylsp[0]));
33893 : }
33894 : #line 33895 "gram.c"
33895 18 : break;
33896 :
33897 18 : case 428: /* copy_opt_item: QUOTE opt_as Sconst */
33898 : #line 3496 "gram.y"
33899 : {
33900 : (yyval.defelt) = makeDefElem("quote", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
33901 : }
33902 : #line 33903 "gram.c"
33903 18 : break;
33904 :
33905 18 : case 429: /* copy_opt_item: ESCAPE opt_as Sconst */
33906 : #line 3500 "gram.y"
33907 : {
33908 : (yyval.defelt) = makeDefElem("escape", (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
33909 : }
33910 : #line 33911 "gram.c"
33911 18 : break;
33912 :
33913 12 : case 430: /* copy_opt_item: FORCE QUOTE columnList */
33914 : #line 3504 "gram.y"
33915 : {
33916 : (yyval.defelt) = makeDefElem("force_quote", (Node *) (yyvsp[0].list), (yylsp[-2]));
33917 : }
33918 : #line 33919 "gram.c"
33919 12 : break;
33920 :
33921 6 : case 431: /* copy_opt_item: FORCE QUOTE '*' */
33922 : #line 3508 "gram.y"
33923 : {
33924 : (yyval.defelt) = makeDefElem("force_quote", (Node *) makeNode(A_Star), (yylsp[-2]));
33925 : }
33926 : #line 33927 "gram.c"
33927 6 : break;
33928 :
33929 0 : case 432: /* copy_opt_item: FORCE NOT NULL_P columnList */
33930 : #line 3512 "gram.y"
33931 : {
33932 : (yyval.defelt) = makeDefElem("force_not_null", (Node *) (yyvsp[0].list), (yylsp[-3]));
33933 : }
33934 : #line 33935 "gram.c"
33935 0 : break;
33936 :
33937 0 : case 433: /* copy_opt_item: FORCE NOT NULL_P '*' */
33938 : #line 3516 "gram.y"
33939 : {
33940 : (yyval.defelt) = makeDefElem("force_not_null", (Node *) makeNode(A_Star), (yylsp[-3]));
33941 : }
33942 : #line 33943 "gram.c"
33943 0 : break;
33944 :
33945 0 : case 434: /* copy_opt_item: FORCE NULL_P columnList */
33946 : #line 3520 "gram.y"
33947 : {
33948 : (yyval.defelt) = makeDefElem("force_null", (Node *) (yyvsp[0].list), (yylsp[-2]));
33949 : }
33950 : #line 33951 "gram.c"
33951 0 : break;
33952 :
33953 0 : case 435: /* copy_opt_item: FORCE NULL_P '*' */
33954 : #line 3524 "gram.y"
33955 : {
33956 : (yyval.defelt) = makeDefElem("force_null", (Node *) makeNode(A_Star), (yylsp[-2]));
33957 : }
33958 : #line 33959 "gram.c"
33959 0 : break;
33960 :
33961 12 : case 436: /* copy_opt_item: ENCODING Sconst */
33962 : #line 3528 "gram.y"
33963 : {
33964 : (yyval.defelt) = makeDefElem("encoding", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
33965 : }
33966 : #line 33967 "gram.c"
33967 12 : break;
33968 :
33969 12 : case 437: /* opt_binary: BINARY */
33970 : #line 3537 "gram.y"
33971 : {
33972 : (yyval.defelt) = makeDefElem("format", (Node *) makeString("binary"), (yylsp[0]));
33973 : }
33974 : #line 33975 "gram.c"
33975 12 : break;
33976 :
33977 15928 : case 438: /* opt_binary: %empty */
33978 : #line 3540 "gram.y"
33979 : { (yyval.defelt) = NULL; }
33980 : #line 33981 "gram.c"
33981 15928 : break;
33982 :
33983 0 : case 439: /* copy_delimiter: opt_using DELIMITERS Sconst */
33984 : #line 3545 "gram.y"
33985 : {
33986 : (yyval.defelt) = makeDefElem("delimiter", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
33987 : }
33988 : #line 33989 "gram.c"
33989 0 : break;
33990 :
33991 15940 : case 440: /* copy_delimiter: %empty */
33992 : #line 3548 "gram.y"
33993 : { (yyval.defelt) = NULL; }
33994 : #line 33995 "gram.c"
33995 15940 : break;
33996 :
33997 656 : case 443: /* copy_generic_opt_list: copy_generic_opt_elem */
33998 : #line 3559 "gram.y"
33999 : {
34000 : (yyval.list) = list_make1((yyvsp[0].defelt));
34001 : }
34002 : #line 34003 "gram.c"
34003 656 : break;
34004 :
34005 450 : case 444: /* copy_generic_opt_list: copy_generic_opt_list ',' copy_generic_opt_elem */
34006 : #line 3563 "gram.y"
34007 : {
34008 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
34009 : }
34010 : #line 34011 "gram.c"
34011 450 : break;
34012 :
34013 1106 : case 445: /* copy_generic_opt_elem: ColLabel copy_generic_opt_arg */
34014 : #line 3570 "gram.y"
34015 : {
34016 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
34017 : }
34018 : #line 34019 "gram.c"
34019 1106 : break;
34020 :
34021 800 : case 446: /* copy_generic_opt_arg: opt_boolean_or_string */
34022 : #line 3576 "gram.y"
34023 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
34024 : #line 34025 "gram.c"
34025 800 : break;
34026 :
34027 24 : case 447: /* copy_generic_opt_arg: NumericOnly */
34028 : #line 3577 "gram.y"
34029 : { (yyval.node) = (Node *) (yyvsp[0].node); }
34030 : #line 34031 "gram.c"
34031 24 : break;
34032 :
34033 90 : case 448: /* copy_generic_opt_arg: '*' */
34034 : #line 3578 "gram.y"
34035 : { (yyval.node) = (Node *) makeNode(A_Star); }
34036 : #line 34037 "gram.c"
34037 90 : break;
34038 :
34039 6 : case 449: /* copy_generic_opt_arg: DEFAULT */
34040 : #line 3579 "gram.y"
34041 : { (yyval.node) = (Node *) makeString("default"); }
34042 : #line 34043 "gram.c"
34043 6 : break;
34044 :
34045 150 : case 450: /* copy_generic_opt_arg: '(' copy_generic_opt_arg_list ')' */
34046 : #line 3580 "gram.y"
34047 : { (yyval.node) = (Node *) (yyvsp[-1].list); }
34048 : #line 34049 "gram.c"
34049 150 : break;
34050 :
34051 36 : case 451: /* copy_generic_opt_arg: %empty */
34052 : #line 3581 "gram.y"
34053 : { (yyval.node) = NULL; }
34054 : #line 34055 "gram.c"
34055 36 : break;
34056 :
34057 150 : case 452: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list_item */
34058 : #line 3586 "gram.y"
34059 : {
34060 : (yyval.list) = list_make1((yyvsp[0].node));
34061 : }
34062 : #line 34063 "gram.c"
34063 150 : break;
34064 :
34065 12 : case 453: /* copy_generic_opt_arg_list: copy_generic_opt_arg_list ',' copy_generic_opt_arg_list_item */
34066 : #line 3590 "gram.y"
34067 : {
34068 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
34069 : }
34070 : #line 34071 "gram.c"
34071 12 : break;
34072 :
34073 162 : case 454: /* copy_generic_opt_arg_list_item: opt_boolean_or_string */
34074 : #line 3597 "gram.y"
34075 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
34076 : #line 34077 "gram.c"
34077 162 : break;
34078 :
34079 30708 : case 455: /* CreateStmt: CREATE OptTemp TABLE qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34080 : #line 3611 "gram.y"
34081 : {
34082 : CreateStmt *n = makeNode(CreateStmt);
34083 :
34084 : (yyvsp[-9].range)->relpersistence = (yyvsp[-11].ival);
34085 : n->relation = (yyvsp[-9].range);
34086 : n->tableElts = (yyvsp[-7].list);
34087 : n->inhRelations = (yyvsp[-5].list);
34088 : n->partspec = (yyvsp[-4].partspec);
34089 : n->ofTypename = NULL;
34090 : n->constraints = NIL;
34091 : n->accessMethod = (yyvsp[-3].str);
34092 : n->options = (yyvsp[-2].list);
34093 : n->oncommit = (yyvsp[-1].oncommit);
34094 : n->tablespacename = (yyvsp[0].str);
34095 : n->if_not_exists = false;
34096 : (yyval.node) = (Node *) n;
34097 : }
34098 : #line 34099 "gram.c"
34099 30708 : break;
34100 :
34101 30 : case 456: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34102 : #line 3631 "gram.y"
34103 : {
34104 : CreateStmt *n = makeNode(CreateStmt);
34105 :
34106 : (yyvsp[-9].range)->relpersistence = (yyvsp[-14].ival);
34107 : n->relation = (yyvsp[-9].range);
34108 : n->tableElts = (yyvsp[-7].list);
34109 : n->inhRelations = (yyvsp[-5].list);
34110 : n->partspec = (yyvsp[-4].partspec);
34111 : n->ofTypename = NULL;
34112 : n->constraints = NIL;
34113 : n->accessMethod = (yyvsp[-3].str);
34114 : n->options = (yyvsp[-2].list);
34115 : n->oncommit = (yyvsp[-1].oncommit);
34116 : n->tablespacename = (yyvsp[0].str);
34117 : n->if_not_exists = true;
34118 : (yyval.node) = (Node *) n;
34119 : }
34120 : #line 34121 "gram.c"
34121 30 : break;
34122 :
34123 134 : case 457: /* CreateStmt: CREATE OptTemp TABLE qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34124 : #line 3651 "gram.y"
34125 : {
34126 : CreateStmt *n = makeNode(CreateStmt);
34127 :
34128 : (yyvsp[-8].range)->relpersistence = (yyvsp[-10].ival);
34129 : n->relation = (yyvsp[-8].range);
34130 : n->tableElts = (yyvsp[-5].list);
34131 : n->inhRelations = NIL;
34132 : n->partspec = (yyvsp[-4].partspec);
34133 : n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list));
34134 : n->ofTypename->location = (yylsp[-6]);
34135 : n->constraints = NIL;
34136 : n->accessMethod = (yyvsp[-3].str);
34137 : n->options = (yyvsp[-2].list);
34138 : n->oncommit = (yyvsp[-1].oncommit);
34139 : n->tablespacename = (yyvsp[0].str);
34140 : n->if_not_exists = false;
34141 : (yyval.node) = (Node *) n;
34142 : }
34143 : #line 34144 "gram.c"
34144 134 : break;
34145 :
34146 6 : case 458: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name OF any_name OptTypedTableElementList OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34147 : #line 3672 "gram.y"
34148 : {
34149 : CreateStmt *n = makeNode(CreateStmt);
34150 :
34151 : (yyvsp[-8].range)->relpersistence = (yyvsp[-13].ival);
34152 : n->relation = (yyvsp[-8].range);
34153 : n->tableElts = (yyvsp[-5].list);
34154 : n->inhRelations = NIL;
34155 : n->partspec = (yyvsp[-4].partspec);
34156 : n->ofTypename = makeTypeNameFromNameList((yyvsp[-6].list));
34157 : n->ofTypename->location = (yylsp[-6]);
34158 : n->constraints = NIL;
34159 : n->accessMethod = (yyvsp[-3].str);
34160 : n->options = (yyvsp[-2].list);
34161 : n->oncommit = (yyvsp[-1].oncommit);
34162 : n->tablespacename = (yyvsp[0].str);
34163 : n->if_not_exists = true;
34164 : (yyval.node) = (Node *) n;
34165 : }
34166 : #line 34167 "gram.c"
34167 6 : break;
34168 :
34169 7886 : case 459: /* CreateStmt: CREATE OptTemp TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34170 : #line 3693 "gram.y"
34171 : {
34172 : CreateStmt *n = makeNode(CreateStmt);
34173 :
34174 : (yyvsp[-10].range)->relpersistence = (yyvsp[-12].ival);
34175 : n->relation = (yyvsp[-10].range);
34176 : n->tableElts = (yyvsp[-6].list);
34177 : n->inhRelations = list_make1((yyvsp[-7].range));
34178 : n->partbound = (yyvsp[-5].partboundspec);
34179 : n->partspec = (yyvsp[-4].partspec);
34180 : n->ofTypename = NULL;
34181 : n->constraints = NIL;
34182 : n->accessMethod = (yyvsp[-3].str);
34183 : n->options = (yyvsp[-2].list);
34184 : n->oncommit = (yyvsp[-1].oncommit);
34185 : n->tablespacename = (yyvsp[0].str);
34186 : n->if_not_exists = false;
34187 : (yyval.node) = (Node *) n;
34188 : }
34189 : #line 34190 "gram.c"
34190 7886 : break;
34191 :
34192 0 : case 460: /* CreateStmt: CREATE OptTemp TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec OptPartitionSpec table_access_method_clause OptWith OnCommitOption OptTableSpace */
34193 : #line 3714 "gram.y"
34194 : {
34195 : CreateStmt *n = makeNode(CreateStmt);
34196 :
34197 : (yyvsp[-10].range)->relpersistence = (yyvsp[-15].ival);
34198 : n->relation = (yyvsp[-10].range);
34199 : n->tableElts = (yyvsp[-6].list);
34200 : n->inhRelations = list_make1((yyvsp[-7].range));
34201 : n->partbound = (yyvsp[-5].partboundspec);
34202 : n->partspec = (yyvsp[-4].partspec);
34203 : n->ofTypename = NULL;
34204 : n->constraints = NIL;
34205 : n->accessMethod = (yyvsp[-3].str);
34206 : n->options = (yyvsp[-2].list);
34207 : n->oncommit = (yyvsp[-1].oncommit);
34208 : n->tablespacename = (yyvsp[0].str);
34209 : n->if_not_exists = true;
34210 : (yyval.node) = (Node *) n;
34211 : }
34212 : #line 34213 "gram.c"
34213 0 : break;
34214 :
34215 336 : case 461: /* OptTemp: TEMPORARY */
34216 : #line 3745 "gram.y"
34217 : { (yyval.ival) = RELPERSISTENCE_TEMP; }
34218 : #line 34219 "gram.c"
34219 336 : break;
34220 :
34221 2720 : case 462: /* OptTemp: TEMP */
34222 : #line 3746 "gram.y"
34223 : { (yyval.ival) = RELPERSISTENCE_TEMP; }
34224 : #line 34225 "gram.c"
34225 2720 : break;
34226 :
34227 0 : case 463: /* OptTemp: LOCAL TEMPORARY */
34228 : #line 3747 "gram.y"
34229 : { (yyval.ival) = RELPERSISTENCE_TEMP; }
34230 : #line 34231 "gram.c"
34231 0 : break;
34232 :
34233 0 : case 464: /* OptTemp: LOCAL TEMP */
34234 : #line 3748 "gram.y"
34235 : { (yyval.ival) = RELPERSISTENCE_TEMP; }
34236 : #line 34237 "gram.c"
34237 0 : break;
34238 :
34239 0 : case 465: /* OptTemp: GLOBAL TEMPORARY */
34240 : #line 3750 "gram.y"
34241 : {
34242 : ereport(WARNING,
34243 : (errmsg("GLOBAL is deprecated in temporary table creation"),
34244 : parser_errposition((yylsp[-1]))));
34245 : (yyval.ival) = RELPERSISTENCE_TEMP;
34246 : }
34247 : #line 34248 "gram.c"
34248 0 : break;
34249 :
34250 0 : case 466: /* OptTemp: GLOBAL TEMP */
34251 : #line 3757 "gram.y"
34252 : {
34253 : ereport(WARNING,
34254 : (errmsg("GLOBAL is deprecated in temporary table creation"),
34255 : parser_errposition((yylsp[-1]))));
34256 : (yyval.ival) = RELPERSISTENCE_TEMP;
34257 : }
34258 : #line 34259 "gram.c"
34259 0 : break;
34260 :
34261 170 : case 467: /* OptTemp: UNLOGGED */
34262 : #line 3763 "gram.y"
34263 : { (yyval.ival) = RELPERSISTENCE_UNLOGGED; }
34264 : #line 34265 "gram.c"
34265 170 : break;
34266 :
34267 54406 : case 468: /* OptTemp: %empty */
34268 : #line 3764 "gram.y"
34269 : { (yyval.ival) = RELPERSISTENCE_PERMANENT; }
34270 : #line 34271 "gram.c"
34271 54406 : break;
34272 :
34273 29534 : case 469: /* OptTableElementList: TableElementList */
34274 : #line 3768 "gram.y"
34275 : { (yyval.list) = (yyvsp[0].list); }
34276 : #line 34277 "gram.c"
34277 29534 : break;
34278 :
34279 1646 : case 470: /* OptTableElementList: %empty */
34280 : #line 3769 "gram.y"
34281 : { (yyval.list) = NIL; }
34282 : #line 34283 "gram.c"
34283 1646 : break;
34284 :
34285 354 : case 471: /* OptTypedTableElementList: '(' TypedTableElementList ')' */
34286 : #line 3773 "gram.y"
34287 : { (yyval.list) = (yyvsp[-1].list); }
34288 : #line 34289 "gram.c"
34289 354 : break;
34290 :
34291 7768 : case 472: /* OptTypedTableElementList: %empty */
34292 : #line 3774 "gram.y"
34293 : { (yyval.list) = NIL; }
34294 : #line 34295 "gram.c"
34295 7768 : break;
34296 :
34297 29588 : case 473: /* TableElementList: TableElement */
34298 : #line 3779 "gram.y"
34299 : {
34300 : (yyval.list) = list_make1((yyvsp[0].node));
34301 : }
34302 : #line 34303 "gram.c"
34303 29588 : break;
34304 :
34305 44310 : case 474: /* TableElementList: TableElementList ',' TableElement */
34306 : #line 3783 "gram.y"
34307 : {
34308 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
34309 : }
34310 : #line 34311 "gram.c"
34311 44310 : break;
34312 :
34313 354 : case 475: /* TypedTableElementList: TypedTableElement */
34314 : #line 3790 "gram.y"
34315 : {
34316 : (yyval.list) = list_make1((yyvsp[0].node));
34317 : }
34318 : #line 34319 "gram.c"
34319 354 : break;
34320 :
34321 70 : case 476: /* TypedTableElementList: TypedTableElementList ',' TypedTableElement */
34322 : #line 3794 "gram.y"
34323 : {
34324 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
34325 : }
34326 : #line 34327 "gram.c"
34327 70 : break;
34328 :
34329 70368 : case 477: /* TableElement: columnDef */
34330 : #line 3800 "gram.y"
34331 : { (yyval.node) = (yyvsp[0].node); }
34332 : #line 34333 "gram.c"
34333 70368 : break;
34334 :
34335 774 : case 478: /* TableElement: TableLikeClause */
34336 : #line 3801 "gram.y"
34337 : { (yyval.node) = (yyvsp[0].node); }
34338 : #line 34339 "gram.c"
34339 774 : break;
34340 :
34341 2756 : case 479: /* TableElement: TableConstraint */
34342 : #line 3802 "gram.y"
34343 : { (yyval.node) = (yyvsp[0].node); }
34344 : #line 34345 "gram.c"
34345 2756 : break;
34346 :
34347 354 : case 480: /* TypedTableElement: columnOptions */
34348 : #line 3806 "gram.y"
34349 : { (yyval.node) = (yyvsp[0].node); }
34350 : #line 34351 "gram.c"
34351 354 : break;
34352 :
34353 70 : case 481: /* TypedTableElement: TableConstraint */
34354 : #line 3807 "gram.y"
34355 : { (yyval.node) = (yyvsp[0].node); }
34356 : #line 34357 "gram.c"
34357 70 : break;
34358 :
34359 72510 : case 482: /* columnDef: ColId Typename opt_column_storage opt_column_compression create_generic_options ColQualList */
34360 : #line 3811 "gram.y"
34361 : {
34362 : ColumnDef *n = makeNode(ColumnDef);
34363 :
34364 : n->colname = (yyvsp[-5].str);
34365 : n->typeName = (yyvsp[-4].typnam);
34366 : n->storage_name = (yyvsp[-3].str);
34367 : n->compression = (yyvsp[-2].str);
34368 : n->inhcount = 0;
34369 : n->is_local = true;
34370 : n->is_not_null = false;
34371 : n->is_from_type = false;
34372 : n->storage = 0;
34373 : n->raw_default = NULL;
34374 : n->cooked_default = NULL;
34375 : n->collOid = InvalidOid;
34376 : n->fdwoptions = (yyvsp[-1].list);
34377 : SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause,
34378 : yyscanner);
34379 : n->location = (yylsp[-5]);
34380 : (yyval.node) = (Node *) n;
34381 : }
34382 : #line 34383 "gram.c"
34383 72510 : break;
34384 :
34385 146 : case 483: /* columnOptions: ColId ColQualList */
34386 : #line 3835 "gram.y"
34387 : {
34388 : ColumnDef *n = makeNode(ColumnDef);
34389 :
34390 : n->colname = (yyvsp[-1].str);
34391 : n->typeName = NULL;
34392 : n->inhcount = 0;
34393 : n->is_local = true;
34394 : n->is_not_null = false;
34395 : n->is_from_type = false;
34396 : n->storage = 0;
34397 : n->raw_default = NULL;
34398 : n->cooked_default = NULL;
34399 : n->collOid = InvalidOid;
34400 : SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause,
34401 : yyscanner);
34402 : n->location = (yylsp[-1]);
34403 : (yyval.node) = (Node *) n;
34404 : }
34405 : #line 34406 "gram.c"
34406 146 : break;
34407 :
34408 208 : case 484: /* columnOptions: ColId WITH OPTIONS ColQualList */
34409 : #line 3854 "gram.y"
34410 : {
34411 : ColumnDef *n = makeNode(ColumnDef);
34412 :
34413 : n->colname = (yyvsp[-3].str);
34414 : n->typeName = NULL;
34415 : n->inhcount = 0;
34416 : n->is_local = true;
34417 : n->is_not_null = false;
34418 : n->is_from_type = false;
34419 : n->storage = 0;
34420 : n->raw_default = NULL;
34421 : n->cooked_default = NULL;
34422 : n->collOid = InvalidOid;
34423 : SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause,
34424 : yyscanner);
34425 : n->location = (yylsp[-3]);
34426 : (yyval.node) = (Node *) n;
34427 : }
34428 : #line 34429 "gram.c"
34429 208 : break;
34430 :
34431 166 : case 485: /* column_compression: COMPRESSION ColId */
34432 : #line 3875 "gram.y"
34433 : { (yyval.str) = (yyvsp[0].str); }
34434 : #line 34435 "gram.c"
34435 166 : break;
34436 :
34437 6 : case 486: /* column_compression: COMPRESSION DEFAULT */
34438 : #line 3876 "gram.y"
34439 : { (yyval.str) = pstrdup("default"); }
34440 : #line 34441 "gram.c"
34441 6 : break;
34442 :
34443 82 : case 487: /* opt_column_compression: column_compression */
34444 : #line 3880 "gram.y"
34445 : { (yyval.str) = (yyvsp[0].str); }
34446 : #line 34447 "gram.c"
34447 82 : break;
34448 :
34449 72494 : case 488: /* opt_column_compression: %empty */
34450 : #line 3881 "gram.y"
34451 : { (yyval.str) = NULL; }
34452 : #line 34453 "gram.c"
34453 72494 : break;
34454 :
34455 238 : case 489: /* column_storage: STORAGE ColId */
34456 : #line 3885 "gram.y"
34457 : { (yyval.str) = (yyvsp[0].str); }
34458 : #line 34459 "gram.c"
34459 238 : break;
34460 :
34461 6 : case 490: /* column_storage: STORAGE DEFAULT */
34462 : #line 3886 "gram.y"
34463 : { (yyval.str) = pstrdup("default"); }
34464 : #line 34465 "gram.c"
34465 6 : break;
34466 :
34467 20 : case 491: /* opt_column_storage: column_storage */
34468 : #line 3890 "gram.y"
34469 : { (yyval.str) = (yyvsp[0].str); }
34470 : #line 34471 "gram.c"
34471 20 : break;
34472 :
34473 72556 : case 492: /* opt_column_storage: %empty */
34474 : #line 3891 "gram.y"
34475 : { (yyval.str) = NULL; }
34476 : #line 34477 "gram.c"
34477 72556 : break;
34478 :
34479 20374 : case 493: /* ColQualList: ColQualList ColConstraint */
34480 : #line 3895 "gram.y"
34481 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
34482 : #line 34483 "gram.c"
34483 20374 : break;
34484 :
34485 74404 : case 494: /* ColQualList: %empty */
34486 : #line 3896 "gram.y"
34487 : { (yyval.list) = NIL; }
34488 : #line 34489 "gram.c"
34489 74404 : break;
34490 :
34491 938 : case 495: /* ColConstraint: CONSTRAINT name ColConstraintElem */
34492 : #line 3901 "gram.y"
34493 : {
34494 : Constraint *n = castNode(Constraint, (yyvsp[0].node));
34495 :
34496 : n->conname = (yyvsp[-1].str);
34497 : n->location = (yylsp[-2]);
34498 : (yyval.node) = (Node *) n;
34499 : }
34500 : #line 34501 "gram.c"
34501 938 : break;
34502 :
34503 18382 : case 496: /* ColConstraint: ColConstraintElem */
34504 : #line 3908 "gram.y"
34505 : { (yyval.node) = (yyvsp[0].node); }
34506 : #line 34507 "gram.c"
34507 18382 : break;
34508 :
34509 294 : case 497: /* ColConstraint: ConstraintAttr */
34510 : #line 3909 "gram.y"
34511 : { (yyval.node) = (yyvsp[0].node); }
34512 : #line 34513 "gram.c"
34513 294 : break;
34514 :
34515 760 : case 498: /* ColConstraint: COLLATE any_name */
34516 : #line 3911 "gram.y"
34517 : {
34518 : /*
34519 : * Note: the CollateClause is momentarily included in
34520 : * the list built by ColQualList, but we split it out
34521 : * again in SplitColQualList.
34522 : */
34523 : CollateClause *n = makeNode(CollateClause);
34524 :
34525 : n->arg = NULL;
34526 : n->collname = (yyvsp[0].list);
34527 : n->location = (yylsp[-1]);
34528 : (yyval.node) = (Node *) n;
34529 : }
34530 : #line 34531 "gram.c"
34531 760 : break;
34532 :
34533 7126 : case 499: /* ColConstraintElem: NOT NULL_P opt_no_inherit */
34534 : #line 3943 "gram.y"
34535 : {
34536 : Constraint *n = makeNode(Constraint);
34537 :
34538 : n->contype = CONSTR_NOTNULL;
34539 : n->location = (yylsp[-2]);
34540 : n->is_no_inherit = (yyvsp[0].boolean);
34541 : n->is_enforced = true;
34542 : n->skip_validation = false;
34543 : n->initially_valid = true;
34544 : (yyval.node) = (Node *) n;
34545 : }
34546 : #line 34547 "gram.c"
34547 7126 : break;
34548 :
34549 30 : case 500: /* ColConstraintElem: NULL_P */
34550 : #line 3955 "gram.y"
34551 : {
34552 : Constraint *n = makeNode(Constraint);
34553 :
34554 : n->contype = CONSTR_NULL;
34555 : n->location = (yylsp[0]);
34556 : (yyval.node) = (Node *) n;
34557 : }
34558 : #line 34559 "gram.c"
34559 30 : break;
34560 :
34561 446 : case 501: /* ColConstraintElem: UNIQUE opt_unique_null_treatment opt_definition OptConsTableSpace */
34562 : #line 3963 "gram.y"
34563 : {
34564 : Constraint *n = makeNode(Constraint);
34565 :
34566 : n->contype = CONSTR_UNIQUE;
34567 : n->location = (yylsp[-3]);
34568 : n->nulls_not_distinct = !(yyvsp[-2].boolean);
34569 : n->keys = NULL;
34570 : n->options = (yyvsp[-1].list);
34571 : n->indexname = NULL;
34572 : n->indexspace = (yyvsp[0].str);
34573 : (yyval.node) = (Node *) n;
34574 : }
34575 : #line 34576 "gram.c"
34576 446 : break;
34577 :
34578 5754 : case 502: /* ColConstraintElem: PRIMARY KEY opt_definition OptConsTableSpace */
34579 : #line 3976 "gram.y"
34580 : {
34581 : Constraint *n = makeNode(Constraint);
34582 :
34583 : n->contype = CONSTR_PRIMARY;
34584 : n->location = (yylsp[-3]);
34585 : n->keys = NULL;
34586 : n->options = (yyvsp[-1].list);
34587 : n->indexname = NULL;
34588 : n->indexspace = (yyvsp[0].str);
34589 : (yyval.node) = (Node *) n;
34590 : }
34591 : #line 34592 "gram.c"
34592 5754 : break;
34593 :
34594 1104 : case 503: /* ColConstraintElem: CHECK '(' a_expr ')' opt_no_inherit */
34595 : #line 3988 "gram.y"
34596 : {
34597 : Constraint *n = makeNode(Constraint);
34598 :
34599 : n->contype = CONSTR_CHECK;
34600 : n->location = (yylsp[-4]);
34601 : n->is_no_inherit = (yyvsp[0].boolean);
34602 : n->raw_expr = (yyvsp[-2].node);
34603 : n->cooked_expr = NULL;
34604 : n->is_enforced = true;
34605 : n->skip_validation = false;
34606 : n->initially_valid = true;
34607 : (yyval.node) = (Node *) n;
34608 : }
34609 : #line 34610 "gram.c"
34610 1104 : break;
34611 :
34612 1882 : case 504: /* ColConstraintElem: DEFAULT b_expr */
34613 : #line 4002 "gram.y"
34614 : {
34615 : Constraint *n = makeNode(Constraint);
34616 :
34617 : n->contype = CONSTR_DEFAULT;
34618 : n->location = (yylsp[-1]);
34619 : n->raw_expr = (yyvsp[0].node);
34620 : n->cooked_expr = NULL;
34621 : (yyval.node) = (Node *) n;
34622 : }
34623 : #line 34624 "gram.c"
34624 1882 : break;
34625 :
34626 332 : case 505: /* ColConstraintElem: GENERATED generated_when AS IDENTITY_P OptParenthesizedSeqOptList */
34627 : #line 4012 "gram.y"
34628 : {
34629 : Constraint *n = makeNode(Constraint);
34630 :
34631 : n->contype = CONSTR_IDENTITY;
34632 : n->generated_when = (yyvsp[-3].ival);
34633 : n->options = (yyvsp[0].list);
34634 : n->location = (yylsp[-4]);
34635 : (yyval.node) = (Node *) n;
34636 : }
34637 : #line 34638 "gram.c"
34638 332 : break;
34639 :
34640 1830 : case 506: /* ColConstraintElem: GENERATED generated_when AS '(' a_expr ')' opt_virtual_or_stored */
34641 : #line 4022 "gram.y"
34642 : {
34643 : Constraint *n = makeNode(Constraint);
34644 :
34645 : n->contype = CONSTR_GENERATED;
34646 : n->generated_when = (yyvsp[-5].ival);
34647 : n->raw_expr = (yyvsp[-2].node);
34648 : n->cooked_expr = NULL;
34649 : n->generated_kind = (yyvsp[0].ival);
34650 : n->location = (yylsp[-6]);
34651 :
34652 : /*
34653 : * Can't do this in the grammar because of shift/reduce
34654 : * conflicts. (IDENTITY allows both ALWAYS and BY
34655 : * DEFAULT, but generated columns only allow ALWAYS.) We
34656 : * can also give a more useful error message and location.
34657 : */
34658 : if ((yyvsp[-5].ival) != ATTRIBUTE_IDENTITY_ALWAYS)
34659 : ereport(ERROR,
34660 : (errcode(ERRCODE_SYNTAX_ERROR),
34661 : errmsg("for a generated column, GENERATED ALWAYS must be specified"),
34662 : parser_errposition((yylsp[-5]))));
34663 :
34664 : (yyval.node) = (Node *) n;
34665 : }
34666 : #line 34667 "gram.c"
34667 1818 : break;
34668 :
34669 828 : case 507: /* ColConstraintElem: REFERENCES qualified_name opt_column_list key_match key_actions */
34670 : #line 4047 "gram.y"
34671 : {
34672 : Constraint *n = makeNode(Constraint);
34673 :
34674 : n->contype = CONSTR_FOREIGN;
34675 : n->location = (yylsp[-4]);
34676 : n->pktable = (yyvsp[-3].range);
34677 : n->fk_attrs = NIL;
34678 : n->pk_attrs = (yyvsp[-2].list);
34679 : n->fk_matchtype = (yyvsp[-1].ival);
34680 : n->fk_upd_action = ((yyvsp[0].keyactions))->updateAction->action;
34681 : n->fk_del_action = ((yyvsp[0].keyactions))->deleteAction->action;
34682 : n->fk_del_set_cols = ((yyvsp[0].keyactions))->deleteAction->cols;
34683 : n->is_enforced = true;
34684 : n->skip_validation = false;
34685 : n->initially_valid = true;
34686 : (yyval.node) = (Node *) n;
34687 : }
34688 : #line 34689 "gram.c"
34689 828 : break;
34690 :
34691 12 : case 508: /* opt_unique_null_treatment: NULLS_P DISTINCT */
34692 : #line 4067 "gram.y"
34693 : { (yyval.boolean) = true; }
34694 : #line 34695 "gram.c"
34695 12 : break;
34696 :
34697 36 : case 509: /* opt_unique_null_treatment: NULLS_P NOT DISTINCT */
34698 : #line 4068 "gram.y"
34699 : { (yyval.boolean) = false; }
34700 : #line 34701 "gram.c"
34701 36 : break;
34702 :
34703 7876 : case 510: /* opt_unique_null_treatment: %empty */
34704 : #line 4069 "gram.y"
34705 : { (yyval.boolean) = true; }
34706 : #line 34707 "gram.c"
34707 7876 : break;
34708 :
34709 2218 : case 511: /* generated_when: ALWAYS */
34710 : #line 4073 "gram.y"
34711 : { (yyval.ival) = ATTRIBUTE_IDENTITY_ALWAYS; }
34712 : #line 34713 "gram.c"
34713 2218 : break;
34714 :
34715 198 : case 512: /* generated_when: BY DEFAULT */
34716 : #line 4074 "gram.y"
34717 : { (yyval.ival) = ATTRIBUTE_IDENTITY_BY_DEFAULT; }
34718 : #line 34719 "gram.c"
34719 198 : break;
34720 :
34721 1038 : case 513: /* opt_virtual_or_stored: STORED */
34722 : #line 4078 "gram.y"
34723 : { (yyval.ival) = ATTRIBUTE_GENERATED_STORED; }
34724 : #line 34725 "gram.c"
34725 1038 : break;
34726 :
34727 616 : case 514: /* opt_virtual_or_stored: VIRTUAL */
34728 : #line 4079 "gram.y"
34729 : { (yyval.ival) = ATTRIBUTE_GENERATED_VIRTUAL; }
34730 : #line 34731 "gram.c"
34731 616 : break;
34732 :
34733 176 : case 515: /* opt_virtual_or_stored: %empty */
34734 : #line 4080 "gram.y"
34735 : { (yyval.ival) = ATTRIBUTE_GENERATED_VIRTUAL; }
34736 : #line 34737 "gram.c"
34737 176 : break;
34738 :
34739 102 : case 516: /* ConstraintAttr: DEFERRABLE */
34740 : #line 4100 "gram.y"
34741 : {
34742 : Constraint *n = makeNode(Constraint);
34743 :
34744 : n->contype = CONSTR_ATTR_DEFERRABLE;
34745 : n->location = (yylsp[0]);
34746 : (yyval.node) = (Node *) n;
34747 : }
34748 : #line 34749 "gram.c"
34749 102 : break;
34750 :
34751 0 : case 517: /* ConstraintAttr: NOT DEFERRABLE */
34752 : #line 4108 "gram.y"
34753 : {
34754 : Constraint *n = makeNode(Constraint);
34755 :
34756 : n->contype = CONSTR_ATTR_NOT_DEFERRABLE;
34757 : n->location = (yylsp[-1]);
34758 : (yyval.node) = (Node *) n;
34759 : }
34760 : #line 34761 "gram.c"
34761 0 : break;
34762 :
34763 78 : case 518: /* ConstraintAttr: INITIALLY DEFERRED */
34764 : #line 4116 "gram.y"
34765 : {
34766 : Constraint *n = makeNode(Constraint);
34767 :
34768 : n->contype = CONSTR_ATTR_DEFERRED;
34769 : n->location = (yylsp[-1]);
34770 : (yyval.node) = (Node *) n;
34771 : }
34772 : #line 34773 "gram.c"
34773 78 : break;
34774 :
34775 6 : case 519: /* ConstraintAttr: INITIALLY IMMEDIATE */
34776 : #line 4124 "gram.y"
34777 : {
34778 : Constraint *n = makeNode(Constraint);
34779 :
34780 : n->contype = CONSTR_ATTR_IMMEDIATE;
34781 : n->location = (yylsp[-1]);
34782 : (yyval.node) = (Node *) n;
34783 : }
34784 : #line 34785 "gram.c"
34785 6 : break;
34786 :
34787 42 : case 520: /* ConstraintAttr: ENFORCED */
34788 : #line 4132 "gram.y"
34789 : {
34790 : Constraint *n = makeNode(Constraint);
34791 :
34792 : n->contype = CONSTR_ATTR_ENFORCED;
34793 : n->location = (yylsp[0]);
34794 : (yyval.node) = (Node *) n;
34795 : }
34796 : #line 34797 "gram.c"
34797 42 : break;
34798 :
34799 66 : case 521: /* ConstraintAttr: NOT ENFORCED */
34800 : #line 4140 "gram.y"
34801 : {
34802 : Constraint *n = makeNode(Constraint);
34803 :
34804 : n->contype = CONSTR_ATTR_NOT_ENFORCED;
34805 : n->location = (yylsp[-1]);
34806 : (yyval.node) = (Node *) n;
34807 : }
34808 : #line 34809 "gram.c"
34809 66 : break;
34810 :
34811 774 : case 522: /* TableLikeClause: LIKE qualified_name TableLikeOptionList */
34812 : #line 4152 "gram.y"
34813 : {
34814 : TableLikeClause *n = makeNode(TableLikeClause);
34815 :
34816 : n->relation = (yyvsp[-1].range);
34817 : n->options = (yyvsp[0].ival);
34818 : n->relationOid = InvalidOid;
34819 : (yyval.node) = (Node *) n;
34820 : }
34821 : #line 34822 "gram.c"
34822 774 : break;
34823 :
34824 282 : case 523: /* TableLikeOptionList: TableLikeOptionList INCLUDING TableLikeOption */
34825 : #line 4163 "gram.y"
34826 : { (yyval.ival) = (yyvsp[-2].ival) | (yyvsp[0].ival); }
34827 : #line 34828 "gram.c"
34828 282 : break;
34829 :
34830 8 : case 524: /* TableLikeOptionList: TableLikeOptionList EXCLUDING TableLikeOption */
34831 : #line 4164 "gram.y"
34832 : { (yyval.ival) = (yyvsp[-2].ival) & ~(yyvsp[0].ival); }
34833 : #line 34834 "gram.c"
34834 8 : break;
34835 :
34836 774 : case 525: /* TableLikeOptionList: %empty */
34837 : #line 4165 "gram.y"
34838 : { (yyval.ival) = 0; }
34839 : #line 34840 "gram.c"
34840 774 : break;
34841 :
34842 24 : case 526: /* TableLikeOption: COMMENTS */
34843 : #line 4169 "gram.y"
34844 : { (yyval.ival) = CREATE_TABLE_LIKE_COMMENTS; }
34845 : #line 34846 "gram.c"
34846 24 : break;
34847 :
34848 6 : case 527: /* TableLikeOption: COMPRESSION */
34849 : #line 4170 "gram.y"
34850 : { (yyval.ival) = CREATE_TABLE_LIKE_COMPRESSION; }
34851 : #line 34852 "gram.c"
34852 6 : break;
34853 :
34854 54 : case 528: /* TableLikeOption: CONSTRAINTS */
34855 : #line 4171 "gram.y"
34856 : { (yyval.ival) = CREATE_TABLE_LIKE_CONSTRAINTS; }
34857 : #line 34858 "gram.c"
34858 54 : break;
34859 :
34860 20 : case 529: /* TableLikeOption: DEFAULTS */
34861 : #line 4172 "gram.y"
34862 : { (yyval.ival) = CREATE_TABLE_LIKE_DEFAULTS; }
34863 : #line 34864 "gram.c"
34864 20 : break;
34865 :
34866 12 : case 530: /* TableLikeOption: IDENTITY_P */
34867 : #line 4173 "gram.y"
34868 : { (yyval.ival) = CREATE_TABLE_LIKE_IDENTITY; }
34869 : #line 34870 "gram.c"
34870 12 : break;
34871 :
34872 30 : case 531: /* TableLikeOption: GENERATED */
34873 : #line 4174 "gram.y"
34874 : { (yyval.ival) = CREATE_TABLE_LIKE_GENERATED; }
34875 : #line 34876 "gram.c"
34876 30 : break;
34877 :
34878 50 : case 532: /* TableLikeOption: INDEXES */
34879 : #line 4175 "gram.y"
34880 : { (yyval.ival) = CREATE_TABLE_LIKE_INDEXES; }
34881 : #line 34882 "gram.c"
34882 50 : break;
34883 :
34884 0 : case 533: /* TableLikeOption: STATISTICS */
34885 : #line 4176 "gram.y"
34886 : { (yyval.ival) = CREATE_TABLE_LIKE_STATISTICS; }
34887 : #line 34888 "gram.c"
34888 0 : break;
34889 :
34890 26 : case 534: /* TableLikeOption: STORAGE */
34891 : #line 4177 "gram.y"
34892 : { (yyval.ival) = CREATE_TABLE_LIKE_STORAGE; }
34893 : #line 34894 "gram.c"
34894 26 : break;
34895 :
34896 68 : case 535: /* TableLikeOption: ALL */
34897 : #line 4178 "gram.y"
34898 : { (yyval.ival) = CREATE_TABLE_LIKE_ALL; }
34899 : #line 34900 "gram.c"
34900 68 : break;
34901 :
34902 4474 : case 536: /* TableConstraint: CONSTRAINT name ConstraintElem */
34903 : #line 4188 "gram.y"
34904 : {
34905 : Constraint *n = castNode(Constraint, (yyvsp[0].node));
34906 :
34907 : n->conname = (yyvsp[-1].str);
34908 : n->location = (yylsp[-2]);
34909 : (yyval.node) = (Node *) n;
34910 : }
34911 : #line 34912 "gram.c"
34912 4474 : break;
34913 :
34914 12988 : case 537: /* TableConstraint: ConstraintElem */
34915 : #line 4195 "gram.y"
34916 : { (yyval.node) = (yyvsp[0].node); }
34917 : #line 34918 "gram.c"
34918 12988 : break;
34919 :
34920 1320 : case 538: /* ConstraintElem: CHECK '(' a_expr ')' ConstraintAttributeSpec */
34921 : #line 4200 "gram.y"
34922 : {
34923 : Constraint *n = makeNode(Constraint);
34924 :
34925 : n->contype = CONSTR_CHECK;
34926 : n->location = (yylsp[-4]);
34927 : n->raw_expr = (yyvsp[-2].node);
34928 : n->cooked_expr = NULL;
34929 : processCASbits((yyvsp[0].ival), (yylsp[0]), "CHECK",
34930 : NULL, NULL, &n->is_enforced, &n->skip_validation,
34931 : &n->is_no_inherit, yyscanner);
34932 : n->initially_valid = !n->skip_validation;
34933 : (yyval.node) = (Node *) n;
34934 : }
34935 : #line 34936 "gram.c"
34936 1320 : break;
34937 :
34938 622 : case 539: /* ConstraintElem: NOT NULL_P ColId ConstraintAttributeSpec */
34939 : #line 4214 "gram.y"
34940 : {
34941 : Constraint *n = makeNode(Constraint);
34942 :
34943 : n->contype = CONSTR_NOTNULL;
34944 : n->location = (yylsp[-3]);
34945 : n->keys = list_make1(makeString((yyvsp[-1].str)));
34946 : processCASbits((yyvsp[0].ival), (yylsp[0]), "NOT NULL",
34947 : NULL, NULL, NULL, &n->skip_validation,
34948 : &n->is_no_inherit, yyscanner);
34949 : n->initially_valid = !n->skip_validation;
34950 : (yyval.node) = (Node *) n;
34951 : }
34952 : #line 34953 "gram.c"
34953 622 : break;
34954 :
34955 612 : case 540: /* ConstraintElem: UNIQUE opt_unique_null_treatment '(' columnList opt_without_overlaps ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */
34956 : #line 4228 "gram.y"
34957 : {
34958 : Constraint *n = makeNode(Constraint);
34959 :
34960 : n->contype = CONSTR_UNIQUE;
34961 : n->location = (yylsp[-9]);
34962 : n->nulls_not_distinct = !(yyvsp[-8].boolean);
34963 : n->keys = (yyvsp[-6].list);
34964 : n->without_overlaps = (yyvsp[-5].boolean);
34965 : n->including = (yyvsp[-3].list);
34966 : n->options = (yyvsp[-2].list);
34967 : n->indexname = NULL;
34968 : n->indexspace = (yyvsp[-1].str);
34969 : processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE",
34970 : &n->deferrable, &n->initdeferred, NULL,
34971 : NULL, NULL, yyscanner);
34972 : (yyval.node) = (Node *) n;
34973 : }
34974 : #line 34975 "gram.c"
34975 612 : break;
34976 :
34977 4552 : case 541: /* ConstraintElem: UNIQUE ExistingIndex ConstraintAttributeSpec */
34978 : #line 4246 "gram.y"
34979 : {
34980 : Constraint *n = makeNode(Constraint);
34981 :
34982 : n->contype = CONSTR_UNIQUE;
34983 : n->location = (yylsp[-2]);
34984 : n->keys = NIL;
34985 : n->including = NIL;
34986 : n->options = NIL;
34987 : n->indexname = (yyvsp[-1].str);
34988 : n->indexspace = NULL;
34989 : processCASbits((yyvsp[0].ival), (yylsp[0]), "UNIQUE",
34990 : &n->deferrable, &n->initdeferred, NULL,
34991 : NULL, NULL, yyscanner);
34992 : (yyval.node) = (Node *) n;
34993 : }
34994 : #line 34995 "gram.c"
34995 4552 : break;
34996 :
34997 2378 : case 542: /* ConstraintElem: PRIMARY KEY '(' columnList opt_without_overlaps ')' opt_c_include opt_definition OptConsTableSpace ConstraintAttributeSpec */
34998 : #line 4263 "gram.y"
34999 : {
35000 : Constraint *n = makeNode(Constraint);
35001 :
35002 : n->contype = CONSTR_PRIMARY;
35003 : n->location = (yylsp[-9]);
35004 : n->keys = (yyvsp[-6].list);
35005 : n->without_overlaps = (yyvsp[-5].boolean);
35006 : n->including = (yyvsp[-3].list);
35007 : n->options = (yyvsp[-2].list);
35008 : n->indexname = NULL;
35009 : n->indexspace = (yyvsp[-1].str);
35010 : processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY",
35011 : &n->deferrable, &n->initdeferred, NULL,
35012 : NULL, NULL, yyscanner);
35013 : (yyval.node) = (Node *) n;
35014 : }
35015 : #line 35016 "gram.c"
35016 2378 : break;
35017 :
35018 5894 : case 543: /* ConstraintElem: PRIMARY KEY ExistingIndex ConstraintAttributeSpec */
35019 : #line 4280 "gram.y"
35020 : {
35021 : Constraint *n = makeNode(Constraint);
35022 :
35023 : n->contype = CONSTR_PRIMARY;
35024 : n->location = (yylsp[-3]);
35025 : n->keys = NIL;
35026 : n->including = NIL;
35027 : n->options = NIL;
35028 : n->indexname = (yyvsp[-1].str);
35029 : n->indexspace = NULL;
35030 : processCASbits((yyvsp[0].ival), (yylsp[0]), "PRIMARY KEY",
35031 : &n->deferrable, &n->initdeferred, NULL,
35032 : NULL, NULL, yyscanner);
35033 : (yyval.node) = (Node *) n;
35034 : }
35035 : #line 35036 "gram.c"
35036 5894 : break;
35037 :
35038 238 : case 544: /* ConstraintElem: EXCLUDE access_method_clause '(' ExclusionConstraintList ')' opt_c_include opt_definition OptConsTableSpace OptWhereClause ConstraintAttributeSpec */
35039 : #line 4298 "gram.y"
35040 : {
35041 : Constraint *n = makeNode(Constraint);
35042 :
35043 : n->contype = CONSTR_EXCLUSION;
35044 : n->location = (yylsp[-9]);
35045 : n->access_method = (yyvsp[-8].str);
35046 : n->exclusions = (yyvsp[-6].list);
35047 : n->including = (yyvsp[-4].list);
35048 : n->options = (yyvsp[-3].list);
35049 : n->indexname = NULL;
35050 : n->indexspace = (yyvsp[-2].str);
35051 : n->where_clause = (yyvsp[-1].node);
35052 : processCASbits((yyvsp[0].ival), (yylsp[0]), "EXCLUDE",
35053 : &n->deferrable, &n->initdeferred, NULL,
35054 : NULL, NULL, yyscanner);
35055 : (yyval.node) = (Node *) n;
35056 : }
35057 : #line 35058 "gram.c"
35058 238 : break;
35059 :
35060 1846 : case 545: /* ConstraintElem: FOREIGN KEY '(' columnList optionalPeriodName ')' REFERENCES qualified_name opt_column_and_period_list key_match key_actions ConstraintAttributeSpec */
35061 : #line 4317 "gram.y"
35062 : {
35063 : Constraint *n = makeNode(Constraint);
35064 :
35065 : n->contype = CONSTR_FOREIGN;
35066 : n->location = (yylsp[-11]);
35067 : n->pktable = (yyvsp[-4].range);
35068 : n->fk_attrs = (yyvsp[-8].list);
35069 : if ((yyvsp[-7].node))
35070 : {
35071 : n->fk_attrs = lappend(n->fk_attrs, (yyvsp[-7].node));
35072 : n->fk_with_period = true;
35073 : }
35074 : n->pk_attrs = linitial((yyvsp[-3].list));
35075 : if (lsecond((yyvsp[-3].list)))
35076 : {
35077 : n->pk_attrs = lappend(n->pk_attrs, lsecond((yyvsp[-3].list)));
35078 : n->pk_with_period = true;
35079 : }
35080 : n->fk_matchtype = (yyvsp[-2].ival);
35081 : n->fk_upd_action = ((yyvsp[-1].keyactions))->updateAction->action;
35082 : n->fk_del_action = ((yyvsp[-1].keyactions))->deleteAction->action;
35083 : n->fk_del_set_cols = ((yyvsp[-1].keyactions))->deleteAction->cols;
35084 : processCASbits((yyvsp[0].ival), (yylsp[0]), "FOREIGN KEY",
35085 : &n->deferrable, &n->initdeferred,
35086 : &n->is_enforced, &n->skip_validation, NULL,
35087 : yyscanner);
35088 : n->initially_valid = !n->skip_validation;
35089 : (yyval.node) = (Node *) n;
35090 : }
35091 : #line 35092 "gram.c"
35092 1846 : break;
35093 :
35094 156 : case 546: /* DomainConstraint: CONSTRAINT name DomainConstraintElem */
35095 : #line 4361 "gram.y"
35096 : {
35097 : Constraint *n = castNode(Constraint, (yyvsp[0].node));
35098 :
35099 : n->conname = (yyvsp[-1].str);
35100 : n->location = (yylsp[-2]);
35101 : (yyval.node) = (Node *) n;
35102 : }
35103 : #line 35104 "gram.c"
35104 156 : break;
35105 :
35106 18 : case 547: /* DomainConstraint: DomainConstraintElem */
35107 : #line 4368 "gram.y"
35108 : { (yyval.node) = (yyvsp[0].node); }
35109 : #line 35110 "gram.c"
35110 18 : break;
35111 :
35112 156 : case 548: /* DomainConstraintElem: CHECK '(' a_expr ')' ConstraintAttributeSpec */
35113 : #line 4373 "gram.y"
35114 : {
35115 : Constraint *n = makeNode(Constraint);
35116 :
35117 : n->contype = CONSTR_CHECK;
35118 : n->location = (yylsp[-4]);
35119 : n->raw_expr = (yyvsp[-2].node);
35120 : n->cooked_expr = NULL;
35121 : processCASbits((yyvsp[0].ival), (yylsp[0]), "CHECK",
35122 : NULL, NULL, NULL, &n->skip_validation,
35123 : &n->is_no_inherit, yyscanner);
35124 : n->is_enforced = true;
35125 : n->initially_valid = !n->skip_validation;
35126 : (yyval.node) = (Node *) n;
35127 : }
35128 : #line 35129 "gram.c"
35129 144 : break;
35130 :
35131 30 : case 549: /* DomainConstraintElem: NOT NULL_P ConstraintAttributeSpec */
35132 : #line 4388 "gram.y"
35133 : {
35134 : Constraint *n = makeNode(Constraint);
35135 :
35136 : n->contype = CONSTR_NOTNULL;
35137 : n->location = (yylsp[-2]);
35138 : n->keys = list_make1(makeString("value"));
35139 : /* no NOT VALID, NO INHERIT support */
35140 : processCASbits((yyvsp[0].ival), (yylsp[0]), "NOT NULL",
35141 : NULL, NULL, NULL,
35142 : NULL, NULL, yyscanner);
35143 : n->initially_valid = true;
35144 : (yyval.node) = (Node *) n;
35145 : }
35146 : #line 35147 "gram.c"
35147 30 : break;
35148 :
35149 138 : case 550: /* opt_no_inherit: NO INHERIT */
35150 : #line 4403 "gram.y"
35151 : { (yyval.boolean) = true; }
35152 : #line 35153 "gram.c"
35153 138 : break;
35154 :
35155 8092 : case 551: /* opt_no_inherit: %empty */
35156 : #line 4404 "gram.y"
35157 : { (yyval.boolean) = false; }
35158 : #line 35159 "gram.c"
35159 8092 : break;
35160 :
35161 570 : case 552: /* opt_without_overlaps: WITHOUT OVERLAPS */
35162 : #line 4408 "gram.y"
35163 : { (yyval.boolean) = true; }
35164 : #line 35165 "gram.c"
35165 570 : break;
35166 :
35167 2420 : case 553: /* opt_without_overlaps: %empty */
35168 : #line 4409 "gram.y"
35169 : { (yyval.boolean) = false; }
35170 : #line 35171 "gram.c"
35171 2420 : break;
35172 :
35173 15416 : case 554: /* opt_column_list: '(' columnList ')' */
35174 : #line 4413 "gram.y"
35175 : { (yyval.list) = (yyvsp[-1].list); }
35176 : #line 35177 "gram.c"
35177 15416 : break;
35178 :
35179 41996 : case 555: /* opt_column_list: %empty */
35180 : #line 4414 "gram.y"
35181 : { (yyval.list) = NIL; }
35182 : #line 35183 "gram.c"
35183 41996 : break;
35184 :
35185 22000 : case 556: /* columnList: columnElem */
35186 : #line 4418 "gram.y"
35187 : { (yyval.list) = list_make1((yyvsp[0].node)); }
35188 : #line 35189 "gram.c"
35189 22000 : break;
35190 :
35191 44130 : case 557: /* columnList: columnList ',' columnElem */
35192 : #line 4419 "gram.y"
35193 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
35194 : #line 35195 "gram.c"
35195 44130 : break;
35196 :
35197 472 : case 558: /* optionalPeriodName: ',' PERIOD columnElem */
35198 : #line 4423 "gram.y"
35199 : { (yyval.node) = (yyvsp[0].node); }
35200 : #line 35201 "gram.c"
35201 472 : break;
35202 :
35203 2542 : case 559: /* optionalPeriodName: %empty */
35204 : #line 4424 "gram.y"
35205 : { (yyval.node) = NULL; }
35206 : #line 35207 "gram.c"
35207 2542 : break;
35208 :
35209 1162 : case 560: /* opt_column_and_period_list: '(' columnList optionalPeriodName ')' */
35210 : #line 4428 "gram.y"
35211 : { (yyval.list) = list_make2((yyvsp[-2].list), (yyvsp[-1].node)); }
35212 : #line 35213 "gram.c"
35213 1162 : break;
35214 :
35215 690 : case 561: /* opt_column_and_period_list: %empty */
35216 : #line 4429 "gram.y"
35217 : { (yyval.list) = list_make2(NIL, NULL); }
35218 : #line 35219 "gram.c"
35219 690 : break;
35220 :
35221 66602 : case 562: /* columnElem: ColId */
35222 : #line 4433 "gram.y"
35223 : {
35224 : (yyval.node) = (Node *) makeString((yyvsp[0].str));
35225 : }
35226 : #line 35227 "gram.c"
35227 66602 : break;
35228 :
35229 176 : case 563: /* opt_c_include: INCLUDE '(' columnList ')' */
35230 : #line 4438 "gram.y"
35231 : { (yyval.list) = (yyvsp[-1].list); }
35232 : #line 35233 "gram.c"
35233 176 : break;
35234 :
35235 3052 : case 564: /* opt_c_include: %empty */
35236 : #line 4439 "gram.y"
35237 : { (yyval.list) = NIL; }
35238 : #line 35239 "gram.c"
35239 3052 : break;
35240 :
35241 100 : case 565: /* key_match: MATCH FULL */
35242 : #line 4443 "gram.y"
35243 : {
35244 : (yyval.ival) = FKCONSTR_MATCH_FULL;
35245 : }
35246 : #line 35247 "gram.c"
35247 100 : break;
35248 :
35249 0 : case 566: /* key_match: MATCH PARTIAL */
35250 : #line 4447 "gram.y"
35251 : {
35252 : ereport(ERROR,
35253 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
35254 : errmsg("MATCH PARTIAL not yet implemented"),
35255 : parser_errposition((yylsp[-1]))));
35256 : (yyval.ival) = FKCONSTR_MATCH_PARTIAL;
35257 : }
35258 : #line 35259 "gram.c"
35259 : break;
35260 :
35261 6 : case 567: /* key_match: MATCH SIMPLE */
35262 : #line 4455 "gram.y"
35263 : {
35264 : (yyval.ival) = FKCONSTR_MATCH_SIMPLE;
35265 : }
35266 : #line 35267 "gram.c"
35267 6 : break;
35268 :
35269 2574 : case 568: /* key_match: %empty */
35270 : #line 4459 "gram.y"
35271 : {
35272 : (yyval.ival) = FKCONSTR_MATCH_SIMPLE;
35273 : }
35274 : #line 35275 "gram.c"
35275 2574 : break;
35276 :
35277 238 : case 569: /* ExclusionConstraintList: ExclusionConstraintElem */
35278 : #line 4465 "gram.y"
35279 : { (yyval.list) = list_make1((yyvsp[0].list)); }
35280 : #line 35281 "gram.c"
35281 238 : break;
35282 :
35283 110 : case 570: /* ExclusionConstraintList: ExclusionConstraintList ',' ExclusionConstraintElem */
35284 : #line 4467 "gram.y"
35285 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
35286 : #line 35287 "gram.c"
35287 110 : break;
35288 :
35289 348 : case 571: /* ExclusionConstraintElem: index_elem WITH any_operator */
35290 : #line 4471 "gram.y"
35291 : {
35292 : (yyval.list) = list_make2((yyvsp[-2].ielem), (yyvsp[0].list));
35293 : }
35294 : #line 35295 "gram.c"
35295 348 : break;
35296 :
35297 0 : case 572: /* ExclusionConstraintElem: index_elem WITH OPERATOR '(' any_operator ')' */
35298 : #line 4476 "gram.y"
35299 : {
35300 : (yyval.list) = list_make2((yyvsp[-5].ielem), (yyvsp[-1].list));
35301 : }
35302 : #line 35303 "gram.c"
35303 0 : break;
35304 :
35305 440 : case 573: /* OptWhereClause: WHERE '(' a_expr ')' */
35306 : #line 4482 "gram.y"
35307 : { (yyval.node) = (yyvsp[-1].node); }
35308 : #line 35309 "gram.c"
35309 440 : break;
35310 :
35311 1242 : case 574: /* OptWhereClause: %empty */
35312 : #line 4483 "gram.y"
35313 : { (yyval.node) = NULL; }
35314 : #line 35315 "gram.c"
35315 1242 : break;
35316 :
35317 76 : case 575: /* key_actions: key_update */
35318 : #line 4488 "gram.y"
35319 : {
35320 : KeyActions *n = palloc(sizeof(KeyActions));
35321 :
35322 : n->updateAction = (yyvsp[0].keyaction);
35323 : n->deleteAction = palloc(sizeof(KeyAction));
35324 : n->deleteAction->action = FKCONSTR_ACTION_NOACTION;
35325 : n->deleteAction->cols = NIL;
35326 : (yyval.keyactions) = n;
35327 : }
35328 : #line 35329 "gram.c"
35329 76 : break;
35330 :
35331 150 : case 576: /* key_actions: key_delete */
35332 : #line 4498 "gram.y"
35333 : {
35334 : KeyActions *n = palloc(sizeof(KeyActions));
35335 :
35336 : n->updateAction = palloc(sizeof(KeyAction));
35337 : n->updateAction->action = FKCONSTR_ACTION_NOACTION;
35338 : n->updateAction->cols = NIL;
35339 : n->deleteAction = (yyvsp[0].keyaction);
35340 : (yyval.keyactions) = n;
35341 : }
35342 : #line 35343 "gram.c"
35343 150 : break;
35344 :
35345 162 : case 577: /* key_actions: key_update key_delete */
35346 : #line 4508 "gram.y"
35347 : {
35348 : KeyActions *n = palloc(sizeof(KeyActions));
35349 :
35350 : n->updateAction = (yyvsp[-1].keyaction);
35351 : n->deleteAction = (yyvsp[0].keyaction);
35352 : (yyval.keyactions) = n;
35353 : }
35354 : #line 35355 "gram.c"
35355 162 : break;
35356 :
35357 150 : case 578: /* key_actions: key_delete key_update */
35358 : #line 4516 "gram.y"
35359 : {
35360 : KeyActions *n = palloc(sizeof(KeyActions));
35361 :
35362 : n->updateAction = (yyvsp[0].keyaction);
35363 : n->deleteAction = (yyvsp[-1].keyaction);
35364 : (yyval.keyactions) = n;
35365 : }
35366 : #line 35367 "gram.c"
35367 150 : break;
35368 :
35369 2136 : case 579: /* key_actions: %empty */
35370 : #line 4524 "gram.y"
35371 : {
35372 : KeyActions *n = palloc(sizeof(KeyActions));
35373 :
35374 : n->updateAction = palloc(sizeof(KeyAction));
35375 : n->updateAction->action = FKCONSTR_ACTION_NOACTION;
35376 : n->updateAction->cols = NIL;
35377 : n->deleteAction = palloc(sizeof(KeyAction));
35378 : n->deleteAction->action = FKCONSTR_ACTION_NOACTION;
35379 : n->deleteAction->cols = NIL;
35380 : (yyval.keyactions) = n;
35381 : }
35382 : #line 35383 "gram.c"
35383 2136 : break;
35384 :
35385 394 : case 580: /* key_update: ON UPDATE key_action */
35386 : #line 4538 "gram.y"
35387 : {
35388 : if (((yyvsp[0].keyaction))->cols)
35389 : ereport(ERROR,
35390 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
35391 : errmsg("a column list with %s is only supported for ON DELETE actions",
35392 : ((yyvsp[0].keyaction))->action == FKCONSTR_ACTION_SETNULL ? "SET NULL" : "SET DEFAULT"),
35393 : parser_errposition((yylsp[-2]))));
35394 : (yyval.keyaction) = (yyvsp[0].keyaction);
35395 : }
35396 : #line 35397 "gram.c"
35397 388 : break;
35398 :
35399 462 : case 581: /* key_delete: ON DELETE_P key_action */
35400 : #line 4550 "gram.y"
35401 : {
35402 : (yyval.keyaction) = (yyvsp[0].keyaction);
35403 : }
35404 : #line 35405 "gram.c"
35405 462 : break;
35406 :
35407 80 : case 582: /* key_action: NO ACTION */
35408 : #line 4557 "gram.y"
35409 : {
35410 : KeyAction *n = palloc(sizeof(KeyAction));
35411 :
35412 : n->action = FKCONSTR_ACTION_NOACTION;
35413 : n->cols = NIL;
35414 : (yyval.keyaction) = n;
35415 : }
35416 : #line 35417 "gram.c"
35417 80 : break;
35418 :
35419 48 : case 583: /* key_action: RESTRICT */
35420 : #line 4565 "gram.y"
35421 : {
35422 : KeyAction *n = palloc(sizeof(KeyAction));
35423 :
35424 : n->action = FKCONSTR_ACTION_RESTRICT;
35425 : n->cols = NIL;
35426 : (yyval.keyaction) = n;
35427 : }
35428 : #line 35429 "gram.c"
35429 48 : break;
35430 :
35431 434 : case 584: /* key_action: CASCADE */
35432 : #line 4573 "gram.y"
35433 : {
35434 : KeyAction *n = palloc(sizeof(KeyAction));
35435 :
35436 : n->action = FKCONSTR_ACTION_CASCADE;
35437 : n->cols = NIL;
35438 : (yyval.keyaction) = n;
35439 : }
35440 : #line 35441 "gram.c"
35441 434 : break;
35442 :
35443 192 : case 585: /* key_action: SET NULL_P opt_column_list */
35444 : #line 4581 "gram.y"
35445 : {
35446 : KeyAction *n = palloc(sizeof(KeyAction));
35447 :
35448 : n->action = FKCONSTR_ACTION_SETNULL;
35449 : n->cols = (yyvsp[0].list);
35450 : (yyval.keyaction) = n;
35451 : }
35452 : #line 35453 "gram.c"
35453 192 : break;
35454 :
35455 102 : case 586: /* key_action: SET DEFAULT opt_column_list */
35456 : #line 4589 "gram.y"
35457 : {
35458 : KeyAction *n = palloc(sizeof(KeyAction));
35459 :
35460 : n->action = FKCONSTR_ACTION_SETDEFAULT;
35461 : n->cols = (yyvsp[0].list);
35462 : (yyval.keyaction) = n;
35463 : }
35464 : #line 35465 "gram.c"
35465 102 : break;
35466 :
35467 2190 : case 587: /* OptInherit: INHERITS '(' qualified_name_list ')' */
35468 : #line 4598 "gram.y"
35469 : { (yyval.list) = (yyvsp[-1].list); }
35470 : #line 35471 "gram.c"
35471 2190 : break;
35472 :
35473 28972 : case 588: /* OptInherit: %empty */
35474 : #line 4599 "gram.y"
35475 : { (yyval.list) = NIL; }
35476 : #line 35477 "gram.c"
35477 28972 : break;
35478 :
35479 5146 : case 589: /* OptPartitionSpec: PartitionSpec */
35480 : #line 4603 "gram.y"
35481 : { (yyval.partspec) = (yyvsp[0].partspec); }
35482 : #line 35483 "gram.c"
35483 5146 : break;
35484 :
35485 33630 : case 590: /* OptPartitionSpec: %empty */
35486 : #line 4604 "gram.y"
35487 : { (yyval.partspec) = NULL; }
35488 : #line 35489 "gram.c"
35489 33630 : break;
35490 :
35491 5152 : case 591: /* PartitionSpec: PARTITION BY ColId '(' part_params ')' */
35492 : #line 4608 "gram.y"
35493 : {
35494 : PartitionSpec *n = makeNode(PartitionSpec);
35495 :
35496 : n->strategy = parsePartitionStrategy((yyvsp[-3].str), (yylsp[-3]), yyscanner);
35497 : n->partParams = (yyvsp[-1].list);
35498 : n->location = (yylsp[-5]);
35499 :
35500 : (yyval.partspec) = n;
35501 : }
35502 : #line 35503 "gram.c"
35503 5146 : break;
35504 :
35505 5152 : case 592: /* part_params: part_elem */
35506 : #line 4619 "gram.y"
35507 : { (yyval.list) = list_make1((yyvsp[0].partelem)); }
35508 : #line 35509 "gram.c"
35509 5152 : break;
35510 :
35511 466 : case 593: /* part_params: part_params ',' part_elem */
35512 : #line 4620 "gram.y"
35513 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].partelem)); }
35514 : #line 35515 "gram.c"
35515 466 : break;
35516 :
35517 5298 : case 594: /* part_elem: ColId opt_collate opt_qualified_name */
35518 : #line 4624 "gram.y"
35519 : {
35520 : PartitionElem *n = makeNode(PartitionElem);
35521 :
35522 : n->name = (yyvsp[-2].str);
35523 : n->expr = NULL;
35524 : n->collation = (yyvsp[-1].list);
35525 : n->opclass = (yyvsp[0].list);
35526 : n->location = (yylsp[-2]);
35527 : (yyval.partelem) = n;
35528 : }
35529 : #line 35530 "gram.c"
35530 5298 : break;
35531 :
35532 134 : case 595: /* part_elem: func_expr_windowless opt_collate opt_qualified_name */
35533 : #line 4635 "gram.y"
35534 : {
35535 : PartitionElem *n = makeNode(PartitionElem);
35536 :
35537 : n->name = NULL;
35538 : n->expr = (yyvsp[-2].node);
35539 : n->collation = (yyvsp[-1].list);
35540 : n->opclass = (yyvsp[0].list);
35541 : n->location = (yylsp[-2]);
35542 : (yyval.partelem) = n;
35543 : }
35544 : #line 35545 "gram.c"
35545 134 : break;
35546 :
35547 186 : case 596: /* part_elem: '(' a_expr ')' opt_collate opt_qualified_name */
35548 : #line 4646 "gram.y"
35549 : {
35550 : PartitionElem *n = makeNode(PartitionElem);
35551 :
35552 : n->name = NULL;
35553 : n->expr = (yyvsp[-3].node);
35554 : n->collation = (yyvsp[-1].list);
35555 : n->opclass = (yyvsp[0].list);
35556 : n->location = (yylsp[-4]);
35557 : (yyval.partelem) = n;
35558 : }
35559 : #line 35560 "gram.c"
35560 186 : break;
35561 :
35562 122 : case 597: /* table_access_method_clause: USING name */
35563 : #line 4659 "gram.y"
35564 : { (yyval.str) = (yyvsp[0].str); }
35565 : #line 35566 "gram.c"
35566 122 : break;
35567 :
35568 40576 : case 598: /* table_access_method_clause: %empty */
35569 : #line 4660 "gram.y"
35570 : { (yyval.str) = NULL; }
35571 : #line 35572 "gram.c"
35572 40576 : break;
35573 :
35574 790 : case 599: /* OptWith: WITH reloptions */
35575 : #line 4665 "gram.y"
35576 : { (yyval.list) = (yyvsp[0].list); }
35577 : #line 35578 "gram.c"
35578 790 : break;
35579 :
35580 24 : case 600: /* OptWith: WITHOUT OIDS */
35581 : #line 4666 "gram.y"
35582 : { (yyval.list) = NIL; }
35583 : #line 35584 "gram.c"
35584 24 : break;
35585 :
35586 39280 : case 601: /* OptWith: %empty */
35587 : #line 4667 "gram.y"
35588 : { (yyval.list) = NIL; }
35589 : #line 35590 "gram.c"
35590 39280 : break;
35591 :
35592 60 : case 602: /* OnCommitOption: ON COMMIT DROP */
35593 : #line 4670 "gram.y"
35594 : { (yyval.oncommit) = ONCOMMIT_DROP; }
35595 : #line 35596 "gram.c"
35596 60 : break;
35597 :
35598 104 : case 603: /* OnCommitOption: ON COMMIT DELETE_P ROWS */
35599 : #line 4671 "gram.y"
35600 : { (yyval.oncommit) = ONCOMMIT_DELETE_ROWS; }
35601 : #line 35602 "gram.c"
35602 104 : break;
35603 :
35604 24 : case 604: /* OnCommitOption: ON COMMIT PRESERVE ROWS */
35605 : #line 4672 "gram.y"
35606 : { (yyval.oncommit) = ONCOMMIT_PRESERVE_ROWS; }
35607 : #line 35608 "gram.c"
35608 24 : break;
35609 :
35610 39906 : case 605: /* OnCommitOption: %empty */
35611 : #line 4673 "gram.y"
35612 : { (yyval.oncommit) = ONCOMMIT_NOOP; }
35613 : #line 35614 "gram.c"
35614 39906 : break;
35615 :
35616 206 : case 606: /* OptTableSpace: TABLESPACE name */
35617 : #line 4676 "gram.y"
35618 : { (yyval.str) = (yyvsp[0].str); }
35619 : #line 35620 "gram.c"
35620 206 : break;
35621 :
35622 47352 : case 607: /* OptTableSpace: %empty */
35623 : #line 4677 "gram.y"
35624 : { (yyval.str) = NULL; }
35625 : #line 35626 "gram.c"
35626 47352 : break;
35627 :
35628 66 : case 608: /* OptConsTableSpace: USING INDEX TABLESPACE name */
35629 : #line 4680 "gram.y"
35630 : { (yyval.str) = (yyvsp[0].str); }
35631 : #line 35632 "gram.c"
35632 66 : break;
35633 :
35634 9362 : case 609: /* OptConsTableSpace: %empty */
35635 : #line 4681 "gram.y"
35636 : { (yyval.str) = NULL; }
35637 : #line 35638 "gram.c"
35638 9362 : break;
35639 :
35640 10446 : case 610: /* ExistingIndex: USING INDEX name */
35641 : #line 4684 "gram.y"
35642 : { (yyval.str) = (yyvsp[0].str); }
35643 : #line 35644 "gram.c"
35644 10446 : break;
35645 :
35646 660 : case 611: /* CreateStatsStmt: CREATE STATISTICS opt_qualified_name opt_name_list ON stats_params FROM from_list */
35647 : #line 4706 "gram.y"
35648 : {
35649 : CreateStatsStmt *n = makeNode(CreateStatsStmt);
35650 :
35651 : n->defnames = (yyvsp[-5].list);
35652 : n->stat_types = (yyvsp[-4].list);
35653 : n->exprs = (yyvsp[-2].list);
35654 : n->relations = (yyvsp[0].list);
35655 : n->stxcomment = NULL;
35656 : n->if_not_exists = false;
35657 : (yyval.node) = (Node *) n;
35658 : }
35659 : #line 35660 "gram.c"
35660 660 : break;
35661 :
35662 12 : case 612: /* CreateStatsStmt: CREATE STATISTICS IF_P NOT EXISTS any_name opt_name_list ON stats_params FROM from_list */
35663 : #line 4719 "gram.y"
35664 : {
35665 : CreateStatsStmt *n = makeNode(CreateStatsStmt);
35666 :
35667 : n->defnames = (yyvsp[-5].list);
35668 : n->stat_types = (yyvsp[-4].list);
35669 : n->exprs = (yyvsp[-2].list);
35670 : n->relations = (yyvsp[0].list);
35671 : n->stxcomment = NULL;
35672 : n->if_not_exists = true;
35673 : (yyval.node) = (Node *) n;
35674 : }
35675 : #line 35676 "gram.c"
35676 12 : break;
35677 :
35678 684 : case 613: /* stats_params: stats_param */
35679 : #line 4739 "gram.y"
35680 : { (yyval.list) = list_make1((yyvsp[0].selem)); }
35681 : #line 35682 "gram.c"
35682 684 : break;
35683 :
35684 988 : case 614: /* stats_params: stats_params ',' stats_param */
35685 : #line 4740 "gram.y"
35686 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].selem)); }
35687 : #line 35688 "gram.c"
35688 988 : break;
35689 :
35690 1192 : case 615: /* stats_param: ColId */
35691 : #line 4744 "gram.y"
35692 : {
35693 : (yyval.selem) = makeNode(StatsElem);
35694 : (yyval.selem)->name = (yyvsp[0].str);
35695 : (yyval.selem)->expr = NULL;
35696 : }
35697 : #line 35698 "gram.c"
35698 1192 : break;
35699 :
35700 34 : case 616: /* stats_param: func_expr_windowless */
35701 : #line 4750 "gram.y"
35702 : {
35703 : (yyval.selem) = makeNode(StatsElem);
35704 : (yyval.selem)->name = NULL;
35705 : (yyval.selem)->expr = (yyvsp[0].node);
35706 : }
35707 : #line 35708 "gram.c"
35708 34 : break;
35709 :
35710 446 : case 617: /* stats_param: '(' a_expr ')' */
35711 : #line 4756 "gram.y"
35712 : {
35713 : (yyval.selem) = makeNode(StatsElem);
35714 : (yyval.selem)->name = NULL;
35715 : (yyval.selem)->expr = (yyvsp[-1].node);
35716 : }
35717 : #line 35718 "gram.c"
35718 446 : break;
35719 :
35720 20 : case 618: /* AlterStatsStmt: ALTER STATISTICS any_name SET STATISTICS set_statistics_value */
35721 : #line 4773 "gram.y"
35722 : {
35723 : AlterStatsStmt *n = makeNode(AlterStatsStmt);
35724 :
35725 : n->defnames = (yyvsp[-3].list);
35726 : n->missing_ok = false;
35727 : n->stxstattarget = (yyvsp[0].node);
35728 : (yyval.node) = (Node *) n;
35729 : }
35730 : #line 35731 "gram.c"
35731 20 : break;
35732 :
35733 6 : case 619: /* AlterStatsStmt: ALTER STATISTICS IF_P EXISTS any_name SET STATISTICS set_statistics_value */
35734 : #line 4782 "gram.y"
35735 : {
35736 : AlterStatsStmt *n = makeNode(AlterStatsStmt);
35737 :
35738 : n->defnames = (yyvsp[-3].list);
35739 : n->missing_ok = true;
35740 : n->stxstattarget = (yyvsp[0].node);
35741 : (yyval.node) = (Node *) n;
35742 : }
35743 : #line 35744 "gram.c"
35744 6 : break;
35745 :
35746 1190 : case 620: /* CreateAsStmt: CREATE OptTemp TABLE create_as_target AS SelectStmt opt_with_data */
35747 : #line 4804 "gram.y"
35748 : {
35749 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
35750 :
35751 : ctas->query = (yyvsp[-1].node);
35752 : ctas->into = (yyvsp[-3].into);
35753 : ctas->objtype = OBJECT_TABLE;
35754 : ctas->is_select_into = false;
35755 : ctas->if_not_exists = false;
35756 : /* cram additional flags into the IntoClause */
35757 : (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-5].ival);
35758 : (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean));
35759 : (yyval.node) = (Node *) ctas;
35760 : }
35761 : #line 35762 "gram.c"
35762 1190 : break;
35763 :
35764 52 : case 621: /* CreateAsStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS SelectStmt opt_with_data */
35765 : #line 4818 "gram.y"
35766 : {
35767 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
35768 :
35769 : ctas->query = (yyvsp[-1].node);
35770 : ctas->into = (yyvsp[-3].into);
35771 : ctas->objtype = OBJECT_TABLE;
35772 : ctas->is_select_into = false;
35773 : ctas->if_not_exists = true;
35774 : /* cram additional flags into the IntoClause */
35775 : (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-8].ival);
35776 : (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean));
35777 : (yyval.node) = (Node *) ctas;
35778 : }
35779 : #line 35780 "gram.c"
35780 52 : break;
35781 :
35782 1330 : case 622: /* create_as_target: qualified_name opt_column_list table_access_method_clause OptWith OnCommitOption OptTableSpace */
35783 : #line 4836 "gram.y"
35784 : {
35785 : (yyval.into) = makeNode(IntoClause);
35786 : (yyval.into)->rel = (yyvsp[-5].range);
35787 : (yyval.into)->colNames = (yyvsp[-4].list);
35788 : (yyval.into)->accessMethod = (yyvsp[-3].str);
35789 : (yyval.into)->options = (yyvsp[-2].list);
35790 : (yyval.into)->onCommit = (yyvsp[-1].oncommit);
35791 : (yyval.into)->tableSpaceName = (yyvsp[0].str);
35792 : (yyval.into)->viewQuery = NULL;
35793 : (yyval.into)->skipData = false; /* might get changed later */
35794 : }
35795 : #line 35796 "gram.c"
35796 1330 : break;
35797 :
35798 36 : case 623: /* opt_with_data: WITH DATA_P */
35799 : #line 4850 "gram.y"
35800 : { (yyval.boolean) = true; }
35801 : #line 35802 "gram.c"
35802 36 : break;
35803 :
35804 234 : case 624: /* opt_with_data: WITH NO DATA_P */
35805 : #line 4851 "gram.y"
35806 : { (yyval.boolean) = false; }
35807 : #line 35808 "gram.c"
35808 234 : break;
35809 :
35810 1942 : case 625: /* opt_with_data: %empty */
35811 : #line 4852 "gram.y"
35812 : { (yyval.boolean) = true; }
35813 : #line 35814 "gram.c"
35814 1942 : break;
35815 :
35816 550 : case 626: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt opt_with_data */
35817 : #line 4865 "gram.y"
35818 : {
35819 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
35820 :
35821 : ctas->query = (yyvsp[-1].node);
35822 : ctas->into = (yyvsp[-3].into);
35823 : ctas->objtype = OBJECT_MATVIEW;
35824 : ctas->is_select_into = false;
35825 : ctas->if_not_exists = false;
35826 : /* cram additional flags into the IntoClause */
35827 : (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-6].ival);
35828 : (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean));
35829 : (yyval.node) = (Node *) ctas;
35830 : }
35831 : #line 35832 "gram.c"
35832 550 : break;
35833 :
35834 48 : case 627: /* CreateMatViewStmt: CREATE OptNoLog MATERIALIZED VIEW IF_P NOT EXISTS create_mv_target AS SelectStmt opt_with_data */
35835 : #line 4879 "gram.y"
35836 : {
35837 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
35838 :
35839 : ctas->query = (yyvsp[-1].node);
35840 : ctas->into = (yyvsp[-3].into);
35841 : ctas->objtype = OBJECT_MATVIEW;
35842 : ctas->is_select_into = false;
35843 : ctas->if_not_exists = true;
35844 : /* cram additional flags into the IntoClause */
35845 : (yyvsp[-3].into)->rel->relpersistence = (yyvsp[-9].ival);
35846 : (yyvsp[-3].into)->skipData = !((yyvsp[0].boolean));
35847 : (yyval.node) = (Node *) ctas;
35848 : }
35849 : #line 35850 "gram.c"
35850 48 : break;
35851 :
35852 598 : case 628: /* create_mv_target: qualified_name opt_column_list table_access_method_clause opt_reloptions OptTableSpace */
35853 : #line 4896 "gram.y"
35854 : {
35855 : (yyval.into) = makeNode(IntoClause);
35856 : (yyval.into)->rel = (yyvsp[-4].range);
35857 : (yyval.into)->colNames = (yyvsp[-3].list);
35858 : (yyval.into)->accessMethod = (yyvsp[-2].str);
35859 : (yyval.into)->options = (yyvsp[-1].list);
35860 : (yyval.into)->onCommit = ONCOMMIT_NOOP;
35861 : (yyval.into)->tableSpaceName = (yyvsp[0].str);
35862 : (yyval.into)->viewQuery = NULL; /* filled at analysis time */
35863 : (yyval.into)->skipData = false; /* might get changed later */
35864 : }
35865 : #line 35866 "gram.c"
35866 598 : break;
35867 :
35868 0 : case 629: /* OptNoLog: UNLOGGED */
35869 : #line 4909 "gram.y"
35870 : { (yyval.ival) = RELPERSISTENCE_UNLOGGED; }
35871 : #line 35872 "gram.c"
35872 0 : break;
35873 :
35874 598 : case 630: /* OptNoLog: %empty */
35875 : #line 4910 "gram.y"
35876 : { (yyval.ival) = RELPERSISTENCE_PERMANENT; }
35877 : #line 35878 "gram.c"
35878 598 : break;
35879 :
35880 284 : case 631: /* RefreshMatViewStmt: REFRESH MATERIALIZED VIEW opt_concurrently qualified_name opt_with_data */
35881 : #line 4923 "gram.y"
35882 : {
35883 : RefreshMatViewStmt *n = makeNode(RefreshMatViewStmt);
35884 :
35885 : n->concurrent = (yyvsp[-2].boolean);
35886 : n->relation = (yyvsp[-1].range);
35887 : n->skipData = !((yyvsp[0].boolean));
35888 : (yyval.node) = (Node *) n;
35889 : }
35890 : #line 35891 "gram.c"
35891 284 : break;
35892 :
35893 720 : case 632: /* CreateSeqStmt: CREATE OptTemp SEQUENCE qualified_name OptSeqOptList */
35894 : #line 4944 "gram.y"
35895 : {
35896 : CreateSeqStmt *n = makeNode(CreateSeqStmt);
35897 :
35898 : (yyvsp[-1].range)->relpersistence = (yyvsp[-3].ival);
35899 : n->sequence = (yyvsp[-1].range);
35900 : n->options = (yyvsp[0].list);
35901 : n->ownerId = InvalidOid;
35902 : n->if_not_exists = false;
35903 : (yyval.node) = (Node *) n;
35904 : }
35905 : #line 35906 "gram.c"
35906 720 : break;
35907 :
35908 24 : case 633: /* CreateSeqStmt: CREATE OptTemp SEQUENCE IF_P NOT EXISTS qualified_name OptSeqOptList */
35909 : #line 4955 "gram.y"
35910 : {
35911 : CreateSeqStmt *n = makeNode(CreateSeqStmt);
35912 :
35913 : (yyvsp[-1].range)->relpersistence = (yyvsp[-6].ival);
35914 : n->sequence = (yyvsp[-1].range);
35915 : n->options = (yyvsp[0].list);
35916 : n->ownerId = InvalidOid;
35917 : n->if_not_exists = true;
35918 : (yyval.node) = (Node *) n;
35919 : }
35920 : #line 35921 "gram.c"
35921 24 : break;
35922 :
35923 212 : case 634: /* AlterSeqStmt: ALTER SEQUENCE qualified_name SeqOptList */
35924 : #line 4969 "gram.y"
35925 : {
35926 : AlterSeqStmt *n = makeNode(AlterSeqStmt);
35927 :
35928 : n->sequence = (yyvsp[-1].range);
35929 : n->options = (yyvsp[0].list);
35930 : n->missing_ok = false;
35931 : (yyval.node) = (Node *) n;
35932 : }
35933 : #line 35934 "gram.c"
35934 212 : break;
35935 :
35936 12 : case 635: /* AlterSeqStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SeqOptList */
35937 : #line 4978 "gram.y"
35938 : {
35939 : AlterSeqStmt *n = makeNode(AlterSeqStmt);
35940 :
35941 : n->sequence = (yyvsp[-1].range);
35942 : n->options = (yyvsp[0].list);
35943 : n->missing_ok = true;
35944 : (yyval.node) = (Node *) n;
35945 : }
35946 : #line 35947 "gram.c"
35947 12 : break;
35948 :
35949 326 : case 636: /* OptSeqOptList: SeqOptList */
35950 : #line 4989 "gram.y"
35951 : { (yyval.list) = (yyvsp[0].list); }
35952 : #line 35953 "gram.c"
35953 326 : break;
35954 :
35955 418 : case 637: /* OptSeqOptList: %empty */
35956 : #line 4990 "gram.y"
35957 : { (yyval.list) = NIL; }
35958 : #line 35959 "gram.c"
35959 418 : break;
35960 :
35961 118 : case 638: /* OptParenthesizedSeqOptList: '(' SeqOptList ')' */
35962 : #line 4993 "gram.y"
35963 : { (yyval.list) = (yyvsp[-1].list); }
35964 : #line 35965 "gram.c"
35965 118 : break;
35966 :
35967 424 : case 639: /* OptParenthesizedSeqOptList: %empty */
35968 : #line 4994 "gram.y"
35969 : { (yyval.list) = NIL; }
35970 : #line 35971 "gram.c"
35971 424 : break;
35972 :
35973 668 : case 640: /* SeqOptList: SeqOptElem */
35974 : #line 4997 "gram.y"
35975 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
35976 : #line 35977 "gram.c"
35977 668 : break;
35978 :
35979 1322 : case 641: /* SeqOptList: SeqOptList SeqOptElem */
35980 : #line 4998 "gram.y"
35981 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
35982 : #line 35983 "gram.c"
35983 1322 : break;
35984 :
35985 236 : case 642: /* SeqOptElem: AS SimpleTypename */
35986 : #line 5002 "gram.y"
35987 : {
35988 : (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[0].typnam), (yylsp[-1]));
35989 : }
35990 : #line 35991 "gram.c"
35991 236 : break;
35992 :
35993 236 : case 643: /* SeqOptElem: CACHE NumericOnly */
35994 : #line 5006 "gram.y"
35995 : {
35996 : (yyval.defelt) = makeDefElem("cache", (Node *) (yyvsp[0].node), (yylsp[-1]));
35997 : }
35998 : #line 35999 "gram.c"
35999 236 : break;
36000 :
36001 36 : case 644: /* SeqOptElem: CYCLE */
36002 : #line 5010 "gram.y"
36003 : {
36004 : (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(true), (yylsp[0]));
36005 : }
36006 : #line 36007 "gram.c"
36007 36 : break;
36008 :
36009 14 : case 645: /* SeqOptElem: NO CYCLE */
36010 : #line 5014 "gram.y"
36011 : {
36012 : (yyval.defelt) = makeDefElem("cycle", (Node *) makeBoolean(false), (yylsp[-1]));
36013 : }
36014 : #line 36015 "gram.c"
36015 14 : break;
36016 :
36017 352 : case 646: /* SeqOptElem: INCREMENT opt_by NumericOnly */
36018 : #line 5018 "gram.y"
36019 : {
36020 : (yyval.defelt) = makeDefElem("increment", (Node *) (yyvsp[0].node), (yylsp[-2]));
36021 : }
36022 : #line 36023 "gram.c"
36023 352 : break;
36024 :
36025 4 : case 647: /* SeqOptElem: LOGGED */
36026 : #line 5022 "gram.y"
36027 : {
36028 : (yyval.defelt) = makeDefElem("logged", NULL, (yylsp[0]));
36029 : }
36030 : #line 36031 "gram.c"
36031 4 : break;
36032 :
36033 74 : case 648: /* SeqOptElem: MAXVALUE NumericOnly */
36034 : #line 5026 "gram.y"
36035 : {
36036 : (yyval.defelt) = makeDefElem("maxvalue", (Node *) (yyvsp[0].node), (yylsp[-1]));
36037 : }
36038 : #line 36039 "gram.c"
36039 74 : break;
36040 :
36041 74 : case 649: /* SeqOptElem: MINVALUE NumericOnly */
36042 : #line 5030 "gram.y"
36043 : {
36044 : (yyval.defelt) = makeDefElem("minvalue", (Node *) (yyvsp[0].node), (yylsp[-1]));
36045 : }
36046 : #line 36047 "gram.c"
36047 74 : break;
36048 :
36049 208 : case 650: /* SeqOptElem: NO MAXVALUE */
36050 : #line 5034 "gram.y"
36051 : {
36052 : (yyval.defelt) = makeDefElem("maxvalue", NULL, (yylsp[-1]));
36053 : }
36054 : #line 36055 "gram.c"
36055 208 : break;
36056 :
36057 208 : case 651: /* SeqOptElem: NO MINVALUE */
36058 : #line 5038 "gram.y"
36059 : {
36060 : (yyval.defelt) = makeDefElem("minvalue", NULL, (yylsp[-1]));
36061 : }
36062 : #line 36063 "gram.c"
36063 208 : break;
36064 :
36065 100 : case 652: /* SeqOptElem: OWNED BY any_name */
36066 : #line 5042 "gram.y"
36067 : {
36068 : (yyval.defelt) = makeDefElem("owned_by", (Node *) (yyvsp[0].list), (yylsp[-2]));
36069 : }
36070 : #line 36071 "gram.c"
36071 100 : break;
36072 :
36073 88 : case 653: /* SeqOptElem: SEQUENCE NAME_P any_name */
36074 : #line 5046 "gram.y"
36075 : {
36076 : (yyval.defelt) = makeDefElem("sequence_name", (Node *) (yyvsp[0].list), (yylsp[-2]));
36077 : }
36078 : #line 36079 "gram.c"
36079 88 : break;
36080 :
36081 344 : case 654: /* SeqOptElem: START opt_with NumericOnly */
36082 : #line 5050 "gram.y"
36083 : {
36084 : (yyval.defelt) = makeDefElem("start", (Node *) (yyvsp[0].node), (yylsp[-2]));
36085 : }
36086 : #line 36087 "gram.c"
36087 344 : break;
36088 :
36089 6 : case 655: /* SeqOptElem: RESTART */
36090 : #line 5054 "gram.y"
36091 : {
36092 : (yyval.defelt) = makeDefElem("restart", NULL, (yylsp[0]));
36093 : }
36094 : #line 36095 "gram.c"
36095 6 : break;
36096 :
36097 60 : case 656: /* SeqOptElem: RESTART opt_with NumericOnly */
36098 : #line 5058 "gram.y"
36099 : {
36100 : (yyval.defelt) = makeDefElem("restart", (Node *) (yyvsp[0].node), (yylsp[-2]));
36101 : }
36102 : #line 36103 "gram.c"
36103 60 : break;
36104 :
36105 4 : case 657: /* SeqOptElem: UNLOGGED */
36106 : #line 5062 "gram.y"
36107 : {
36108 : (yyval.defelt) = makeDefElem("unlogged", NULL, (yylsp[0]));
36109 : }
36110 : #line 36111 "gram.c"
36111 4 : break;
36112 :
36113 322 : case 660: /* NumericOnly: FCONST */
36114 : #line 5072 "gram.y"
36115 : { (yyval.node) = (Node *) makeFloat((yyvsp[0].str)); }
36116 : #line 36117 "gram.c"
36117 322 : break;
36118 :
36119 0 : case 661: /* NumericOnly: '+' FCONST */
36120 : #line 5073 "gram.y"
36121 : { (yyval.node) = (Node *) makeFloat((yyvsp[0].str)); }
36122 : #line 36123 "gram.c"
36123 0 : break;
36124 :
36125 22 : case 662: /* NumericOnly: '-' FCONST */
36126 : #line 5075 "gram.y"
36127 : {
36128 : Float *f = makeFloat((yyvsp[0].str));
36129 :
36130 : doNegateFloat(f);
36131 : (yyval.node) = (Node *) f;
36132 : }
36133 : #line 36134 "gram.c"
36134 22 : break;
36135 :
36136 13448 : case 663: /* NumericOnly: SignedIconst */
36137 : #line 5081 "gram.y"
36138 : { (yyval.node) = (Node *) makeInteger((yyvsp[0].ival)); }
36139 : #line 36140 "gram.c"
36140 13448 : break;
36141 :
36142 80 : case 664: /* NumericOnly_list: NumericOnly */
36143 : #line 5084 "gram.y"
36144 : { (yyval.list) = list_make1((yyvsp[0].node)); }
36145 : #line 36146 "gram.c"
36146 80 : break;
36147 :
36148 6 : case 665: /* NumericOnly_list: NumericOnly_list ',' NumericOnly */
36149 : #line 5085 "gram.y"
36150 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
36151 : #line 36152 "gram.c"
36152 6 : break;
36153 :
36154 0 : case 666: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name */
36155 : #line 5098 "gram.y"
36156 : {
36157 : /*
36158 : * We now interpret parameterless CREATE LANGUAGE as
36159 : * CREATE EXTENSION. "OR REPLACE" is silently translated
36160 : * to "IF NOT EXISTS", which isn't quite the same, but
36161 : * seems more useful than throwing an error. We just
36162 : * ignore TRUSTED, as the previous code would have too.
36163 : */
36164 : CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
36165 :
36166 : n->if_not_exists = (yyvsp[-4].boolean);
36167 : n->extname = (yyvsp[0].str);
36168 : n->options = NIL;
36169 : (yyval.node) = (Node *) n;
36170 : }
36171 : #line 36172 "gram.c"
36172 0 : break;
36173 :
36174 140 : case 667: /* CreatePLangStmt: CREATE opt_or_replace opt_trusted opt_procedural LANGUAGE name HANDLER handler_name opt_inline_handler opt_validator */
36175 : #line 5115 "gram.y"
36176 : {
36177 : CreatePLangStmt *n = makeNode(CreatePLangStmt);
36178 :
36179 : n->replace = (yyvsp[-8].boolean);
36180 : n->plname = (yyvsp[-4].str);
36181 : n->plhandler = (yyvsp[-2].list);
36182 : n->plinline = (yyvsp[-1].list);
36183 : n->plvalidator = (yyvsp[0].list);
36184 : n->pltrusted = (yyvsp[-7].boolean);
36185 : (yyval.node) = (Node *) n;
36186 : }
36187 : #line 36188 "gram.c"
36188 140 : break;
36189 :
36190 110 : case 668: /* opt_trusted: TRUSTED */
36191 : #line 5129 "gram.y"
36192 : { (yyval.boolean) = true; }
36193 : #line 36194 "gram.c"
36194 110 : break;
36195 :
36196 38 : case 669: /* opt_trusted: %empty */
36197 : #line 5130 "gram.y"
36198 : { (yyval.boolean) = false; }
36199 : #line 36200 "gram.c"
36200 38 : break;
36201 :
36202 550 : case 670: /* handler_name: name */
36203 : #line 5138 "gram.y"
36204 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
36205 : #line 36206 "gram.c"
36206 550 : break;
36207 :
36208 2 : case 671: /* handler_name: name attrs */
36209 : #line 5139 "gram.y"
36210 : { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); }
36211 : #line 36212 "gram.c"
36212 2 : break;
36213 :
36214 122 : case 672: /* opt_inline_handler: INLINE_P handler_name */
36215 : #line 5143 "gram.y"
36216 : { (yyval.list) = (yyvsp[0].list); }
36217 : #line 36218 "gram.c"
36218 122 : break;
36219 :
36220 18 : case 673: /* opt_inline_handler: %empty */
36221 : #line 5144 "gram.y"
36222 : { (yyval.list) = NIL; }
36223 : #line 36224 "gram.c"
36224 18 : break;
36225 :
36226 122 : case 674: /* validator_clause: VALIDATOR handler_name */
36227 : #line 5148 "gram.y"
36228 : { (yyval.list) = (yyvsp[0].list); }
36229 : #line 36230 "gram.c"
36230 122 : break;
36231 :
36232 0 : case 675: /* validator_clause: NO VALIDATOR */
36233 : #line 5149 "gram.y"
36234 : { (yyval.list) = NIL; }
36235 : #line 36236 "gram.c"
36236 0 : break;
36237 :
36238 122 : case 676: /* opt_validator: validator_clause */
36239 : #line 5153 "gram.y"
36240 : { (yyval.list) = (yyvsp[0].list); }
36241 : #line 36242 "gram.c"
36242 122 : break;
36243 :
36244 18 : case 677: /* opt_validator: %empty */
36245 : #line 5154 "gram.y"
36246 : { (yyval.list) = NIL; }
36247 : #line 36248 "gram.c"
36248 18 : break;
36249 :
36250 116 : case 680: /* CreateTableSpaceStmt: CREATE TABLESPACE name OptTableSpaceOwner LOCATION Sconst opt_reloptions */
36251 : #line 5170 "gram.y"
36252 : {
36253 : CreateTableSpaceStmt *n = makeNode(CreateTableSpaceStmt);
36254 :
36255 : n->tablespacename = (yyvsp[-4].str);
36256 : n->owner = (yyvsp[-3].rolespec);
36257 : n->location = (yyvsp[-1].str);
36258 : n->options = (yyvsp[0].list);
36259 : (yyval.node) = (Node *) n;
36260 : }
36261 : #line 36262 "gram.c"
36262 116 : break;
36263 :
36264 6 : case 681: /* OptTableSpaceOwner: OWNER RoleSpec */
36265 : #line 5181 "gram.y"
36266 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
36267 : #line 36268 "gram.c"
36268 6 : break;
36269 :
36270 110 : case 682: /* OptTableSpaceOwner: %empty */
36271 : #line 5182 "gram.y"
36272 : { (yyval.rolespec) = NULL; }
36273 : #line 36274 "gram.c"
36274 110 : break;
36275 :
36276 64 : case 683: /* DropTableSpaceStmt: DROP TABLESPACE name */
36277 : #line 5196 "gram.y"
36278 : {
36279 : DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
36280 :
36281 : n->tablespacename = (yyvsp[0].str);
36282 : n->missing_ok = false;
36283 : (yyval.node) = (Node *) n;
36284 : }
36285 : #line 36286 "gram.c"
36286 64 : break;
36287 :
36288 0 : case 684: /* DropTableSpaceStmt: DROP TABLESPACE IF_P EXISTS name */
36289 : #line 5204 "gram.y"
36290 : {
36291 : DropTableSpaceStmt *n = makeNode(DropTableSpaceStmt);
36292 :
36293 : n->tablespacename = (yyvsp[0].str);
36294 : n->missing_ok = true;
36295 : (yyval.node) = (Node *) n;
36296 : }
36297 : #line 36298 "gram.c"
36298 0 : break;
36299 :
36300 506 : case 685: /* CreateExtensionStmt: CREATE EXTENSION name opt_with create_extension_opt_list */
36301 : #line 5222 "gram.y"
36302 : {
36303 : CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
36304 :
36305 : n->extname = (yyvsp[-2].str);
36306 : n->if_not_exists = false;
36307 : n->options = (yyvsp[0].list);
36308 : (yyval.node) = (Node *) n;
36309 : }
36310 : #line 36311 "gram.c"
36311 506 : break;
36312 :
36313 18 : case 686: /* CreateExtensionStmt: CREATE EXTENSION IF_P NOT EXISTS name opt_with create_extension_opt_list */
36314 : #line 5231 "gram.y"
36315 : {
36316 : CreateExtensionStmt *n = makeNode(CreateExtensionStmt);
36317 :
36318 : n->extname = (yyvsp[-2].str);
36319 : n->if_not_exists = true;
36320 : n->options = (yyvsp[0].list);
36321 : (yyval.node) = (Node *) n;
36322 : }
36323 : #line 36324 "gram.c"
36324 18 : break;
36325 :
36326 98 : case 687: /* create_extension_opt_list: create_extension_opt_list create_extension_opt_item */
36327 : #line 5243 "gram.y"
36328 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
36329 : #line 36330 "gram.c"
36330 98 : break;
36331 :
36332 524 : case 688: /* create_extension_opt_list: %empty */
36333 : #line 5245 "gram.y"
36334 : { (yyval.list) = NIL; }
36335 : #line 36336 "gram.c"
36336 524 : break;
36337 :
36338 46 : case 689: /* create_extension_opt_item: SCHEMA name */
36339 : #line 5250 "gram.y"
36340 : {
36341 : (yyval.defelt) = makeDefElem("schema", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
36342 : }
36343 : #line 36344 "gram.c"
36344 46 : break;
36345 :
36346 12 : case 690: /* create_extension_opt_item: VERSION_P NonReservedWord_or_Sconst */
36347 : #line 5254 "gram.y"
36348 : {
36349 : (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
36350 : }
36351 : #line 36352 "gram.c"
36352 12 : break;
36353 :
36354 0 : case 691: /* create_extension_opt_item: FROM NonReservedWord_or_Sconst */
36355 : #line 5258 "gram.y"
36356 : {
36357 : ereport(ERROR,
36358 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
36359 : errmsg("CREATE EXTENSION ... FROM is no longer supported"),
36360 : parser_errposition((yylsp[-1]))));
36361 : }
36362 : #line 36363 "gram.c"
36363 : break;
36364 :
36365 40 : case 692: /* create_extension_opt_item: CASCADE */
36366 : #line 5265 "gram.y"
36367 : {
36368 : (yyval.defelt) = makeDefElem("cascade", (Node *) makeBoolean(true), (yylsp[0]));
36369 : }
36370 : #line 36371 "gram.c"
36371 40 : break;
36372 :
36373 38 : case 693: /* AlterExtensionStmt: ALTER EXTENSION name UPDATE alter_extension_opt_list */
36374 : #line 5277 "gram.y"
36375 : {
36376 : AlterExtensionStmt *n = makeNode(AlterExtensionStmt);
36377 :
36378 : n->extname = (yyvsp[-2].str);
36379 : n->options = (yyvsp[0].list);
36380 : (yyval.node) = (Node *) n;
36381 : }
36382 : #line 36383 "gram.c"
36383 38 : break;
36384 :
36385 38 : case 694: /* alter_extension_opt_list: alter_extension_opt_list alter_extension_opt_item */
36386 : #line 5288 "gram.y"
36387 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
36388 : #line 36389 "gram.c"
36389 38 : break;
36390 :
36391 38 : case 695: /* alter_extension_opt_list: %empty */
36392 : #line 5290 "gram.y"
36393 : { (yyval.list) = NIL; }
36394 : #line 36395 "gram.c"
36395 38 : break;
36396 :
36397 38 : case 696: /* alter_extension_opt_item: TO NonReservedWord_or_Sconst */
36398 : #line 5295 "gram.y"
36399 : {
36400 : (yyval.defelt) = makeDefElem("new_version", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
36401 : }
36402 : #line 36403 "gram.c"
36403 38 : break;
36404 :
36405 18 : case 697: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop object_type_name name */
36406 : #line 5308 "gram.y"
36407 : {
36408 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36409 :
36410 : n->extname = (yyvsp[-3].str);
36411 : n->action = (yyvsp[-2].ival);
36412 : n->objtype = (yyvsp[-1].objtype);
36413 : n->object = (Node *) makeString((yyvsp[0].str));
36414 : (yyval.node) = (Node *) n;
36415 : }
36416 : #line 36417 "gram.c"
36417 18 : break;
36418 :
36419 76 : case 698: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop object_type_any_name any_name */
36420 : #line 5318 "gram.y"
36421 : {
36422 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36423 :
36424 : n->extname = (yyvsp[-3].str);
36425 : n->action = (yyvsp[-2].ival);
36426 : n->objtype = (yyvsp[-1].objtype);
36427 : n->object = (Node *) (yyvsp[0].list);
36428 : (yyval.node) = (Node *) n;
36429 : }
36430 : #line 36431 "gram.c"
36431 76 : break;
36432 :
36433 8 : case 699: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop AGGREGATE aggregate_with_argtypes */
36434 : #line 5328 "gram.y"
36435 : {
36436 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36437 :
36438 : n->extname = (yyvsp[-3].str);
36439 : n->action = (yyvsp[-2].ival);
36440 : n->objtype = OBJECT_AGGREGATE;
36441 : n->object = (Node *) (yyvsp[0].objwithargs);
36442 : (yyval.node) = (Node *) n;
36443 : }
36444 : #line 36445 "gram.c"
36445 8 : break;
36446 :
36447 4 : case 700: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop CAST '(' Typename AS Typename ')' */
36448 : #line 5338 "gram.y"
36449 : {
36450 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36451 :
36452 : n->extname = (yyvsp[-7].str);
36453 : n->action = (yyvsp[-6].ival);
36454 : n->objtype = OBJECT_CAST;
36455 : n->object = (Node *) list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam));
36456 : (yyval.node) = (Node *) n;
36457 : }
36458 : #line 36459 "gram.c"
36459 4 : break;
36460 :
36461 0 : case 701: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop DOMAIN_P Typename */
36462 : #line 5348 "gram.y"
36463 : {
36464 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36465 :
36466 : n->extname = (yyvsp[-3].str);
36467 : n->action = (yyvsp[-2].ival);
36468 : n->objtype = OBJECT_DOMAIN;
36469 : n->object = (Node *) (yyvsp[0].typnam);
36470 : (yyval.node) = (Node *) n;
36471 : }
36472 : #line 36473 "gram.c"
36473 0 : break;
36474 :
36475 98 : case 702: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop FUNCTION function_with_argtypes */
36476 : #line 5358 "gram.y"
36477 : {
36478 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36479 :
36480 : n->extname = (yyvsp[-3].str);
36481 : n->action = (yyvsp[-2].ival);
36482 : n->objtype = OBJECT_FUNCTION;
36483 : n->object = (Node *) (yyvsp[0].objwithargs);
36484 : (yyval.node) = (Node *) n;
36485 : }
36486 : #line 36487 "gram.c"
36487 98 : break;
36488 :
36489 18 : case 703: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR operator_with_argtypes */
36490 : #line 5368 "gram.y"
36491 : {
36492 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36493 :
36494 : n->extname = (yyvsp[-3].str);
36495 : n->action = (yyvsp[-2].ival);
36496 : n->objtype = OBJECT_OPERATOR;
36497 : n->object = (Node *) (yyvsp[0].objwithargs);
36498 : (yyval.node) = (Node *) n;
36499 : }
36500 : #line 36501 "gram.c"
36501 18 : break;
36502 :
36503 4 : case 704: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR CLASS any_name USING name */
36504 : #line 5378 "gram.y"
36505 : {
36506 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36507 :
36508 : n->extname = (yyvsp[-6].str);
36509 : n->action = (yyvsp[-5].ival);
36510 : n->objtype = OBJECT_OPCLASS;
36511 : n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list));
36512 : (yyval.node) = (Node *) n;
36513 : }
36514 : #line 36515 "gram.c"
36515 4 : break;
36516 :
36517 4 : case 705: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop OPERATOR FAMILY any_name USING name */
36518 : #line 5388 "gram.y"
36519 : {
36520 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36521 :
36522 : n->extname = (yyvsp[-6].str);
36523 : n->action = (yyvsp[-5].ival);
36524 : n->objtype = OBJECT_OPFAMILY;
36525 : n->object = (Node *) lcons(makeString((yyvsp[0].str)), (yyvsp[-2].list));
36526 : (yyval.node) = (Node *) n;
36527 : }
36528 : #line 36529 "gram.c"
36529 4 : break;
36530 :
36531 0 : case 706: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop PROCEDURE function_with_argtypes */
36532 : #line 5398 "gram.y"
36533 : {
36534 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36535 :
36536 : n->extname = (yyvsp[-3].str);
36537 : n->action = (yyvsp[-2].ival);
36538 : n->objtype = OBJECT_PROCEDURE;
36539 : n->object = (Node *) (yyvsp[0].objwithargs);
36540 : (yyval.node) = (Node *) n;
36541 : }
36542 : #line 36543 "gram.c"
36543 0 : break;
36544 :
36545 0 : case 707: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop ROUTINE function_with_argtypes */
36546 : #line 5408 "gram.y"
36547 : {
36548 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36549 :
36550 : n->extname = (yyvsp[-3].str);
36551 : n->action = (yyvsp[-2].ival);
36552 : n->objtype = OBJECT_ROUTINE;
36553 : n->object = (Node *) (yyvsp[0].objwithargs);
36554 : (yyval.node) = (Node *) n;
36555 : }
36556 : #line 36557 "gram.c"
36557 0 : break;
36558 :
36559 4 : case 708: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TRANSFORM FOR Typename LANGUAGE name */
36560 : #line 5418 "gram.y"
36561 : {
36562 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36563 :
36564 : n->extname = (yyvsp[-6].str);
36565 : n->action = (yyvsp[-5].ival);
36566 : n->objtype = OBJECT_TRANSFORM;
36567 : n->object = (Node *) list_make2((yyvsp[-2].typnam), makeString((yyvsp[0].str)));
36568 : (yyval.node) = (Node *) n;
36569 : }
36570 : #line 36571 "gram.c"
36571 4 : break;
36572 :
36573 8 : case 709: /* AlterExtensionContentsStmt: ALTER EXTENSION name add_drop TYPE_P Typename */
36574 : #line 5428 "gram.y"
36575 : {
36576 : AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt);
36577 :
36578 : n->extname = (yyvsp[-3].str);
36579 : n->action = (yyvsp[-2].ival);
36580 : n->objtype = OBJECT_TYPE;
36581 : n->object = (Node *) (yyvsp[0].typnam);
36582 : (yyval.node) = (Node *) n;
36583 : }
36584 : #line 36585 "gram.c"
36585 8 : break;
36586 :
36587 208 : case 710: /* CreateFdwStmt: CREATE FOREIGN DATA_P WRAPPER name opt_fdw_options create_generic_options */
36588 : #line 5447 "gram.y"
36589 : {
36590 : CreateFdwStmt *n = makeNode(CreateFdwStmt);
36591 :
36592 : n->fdwname = (yyvsp[-2].str);
36593 : n->func_options = (yyvsp[-1].list);
36594 : n->options = (yyvsp[0].list);
36595 : (yyval.node) = (Node *) n;
36596 : }
36597 : #line 36598 "gram.c"
36598 208 : break;
36599 :
36600 56 : case 711: /* fdw_option: HANDLER handler_name */
36601 : #line 5458 "gram.y"
36602 : { (yyval.defelt) = makeDefElem("handler", (Node *) (yyvsp[0].list), (yylsp[-1])); }
36603 : #line 36604 "gram.c"
36604 56 : break;
36605 :
36606 0 : case 712: /* fdw_option: NO HANDLER */
36607 : #line 5459 "gram.y"
36608 : { (yyval.defelt) = makeDefElem("handler", NULL, (yylsp[-1])); }
36609 : #line 36610 "gram.c"
36610 0 : break;
36611 :
36612 48 : case 713: /* fdw_option: VALIDATOR handler_name */
36613 : #line 5460 "gram.y"
36614 : { (yyval.defelt) = makeDefElem("validator", (Node *) (yyvsp[0].list), (yylsp[-1])); }
36615 : #line 36616 "gram.c"
36616 48 : break;
36617 :
36618 6 : case 714: /* fdw_option: NO VALIDATOR */
36619 : #line 5461 "gram.y"
36620 : { (yyval.defelt) = makeDefElem("validator", NULL, (yylsp[-1])); }
36621 : #line 36622 "gram.c"
36622 6 : break;
36623 :
36624 90 : case 715: /* fdw_options: fdw_option */
36625 : #line 5465 "gram.y"
36626 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
36627 : #line 36628 "gram.c"
36628 90 : break;
36629 :
36630 20 : case 716: /* fdw_options: fdw_options fdw_option */
36631 : #line 5466 "gram.y"
36632 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
36633 : #line 36634 "gram.c"
36634 20 : break;
36635 :
36636 54 : case 717: /* opt_fdw_options: fdw_options */
36637 : #line 5470 "gram.y"
36638 : { (yyval.list) = (yyvsp[0].list); }
36639 : #line 36640 "gram.c"
36640 54 : break;
36641 :
36642 246 : case 718: /* opt_fdw_options: %empty */
36643 : #line 5471 "gram.y"
36644 : { (yyval.list) = NIL; }
36645 : #line 36646 "gram.c"
36646 246 : break;
36647 :
36648 86 : case 719: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name opt_fdw_options alter_generic_options */
36649 : #line 5482 "gram.y"
36650 : {
36651 : AlterFdwStmt *n = makeNode(AlterFdwStmt);
36652 :
36653 : n->fdwname = (yyvsp[-2].str);
36654 : n->func_options = (yyvsp[-1].list);
36655 : n->options = (yyvsp[0].list);
36656 : (yyval.node) = (Node *) n;
36657 : }
36658 : #line 36659 "gram.c"
36659 86 : break;
36660 :
36661 36 : case 720: /* AlterFdwStmt: ALTER FOREIGN DATA_P WRAPPER name fdw_options */
36662 : #line 5491 "gram.y"
36663 : {
36664 : AlterFdwStmt *n = makeNode(AlterFdwStmt);
36665 :
36666 : n->fdwname = (yyvsp[-1].str);
36667 : n->func_options = (yyvsp[0].list);
36668 : n->options = NIL;
36669 : (yyval.node) = (Node *) n;
36670 : }
36671 : #line 36672 "gram.c"
36672 36 : break;
36673 :
36674 744 : case 721: /* create_generic_options: OPTIONS '(' generic_option_list ')' */
36675 : #line 5503 "gram.y"
36676 : { (yyval.list) = (yyvsp[-1].list); }
36677 : #line 36678 "gram.c"
36678 744 : break;
36679 :
36680 73128 : case 722: /* create_generic_options: %empty */
36681 : #line 5504 "gram.y"
36682 : { (yyval.list) = NIL; }
36683 : #line 36684 "gram.c"
36684 73128 : break;
36685 :
36686 744 : case 723: /* generic_option_list: generic_option_elem */
36687 : #line 5509 "gram.y"
36688 : {
36689 : (yyval.list) = list_make1((yyvsp[0].defelt));
36690 : }
36691 : #line 36692 "gram.c"
36692 744 : break;
36693 :
36694 480 : case 724: /* generic_option_list: generic_option_list ',' generic_option_elem */
36695 : #line 5513 "gram.y"
36696 : {
36697 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
36698 : }
36699 : #line 36700 "gram.c"
36700 480 : break;
36701 :
36702 504 : case 725: /* alter_generic_options: OPTIONS '(' alter_generic_option_list ')' */
36703 : #line 5520 "gram.y"
36704 : { (yyval.list) = (yyvsp[-1].list); }
36705 : #line 36706 "gram.c"
36706 504 : break;
36707 :
36708 504 : case 726: /* alter_generic_option_list: alter_generic_option_elem */
36709 : #line 5525 "gram.y"
36710 : {
36711 : (yyval.list) = list_make1((yyvsp[0].defelt));
36712 : }
36713 : #line 36714 "gram.c"
36714 504 : break;
36715 :
36716 168 : case 727: /* alter_generic_option_list: alter_generic_option_list ',' alter_generic_option_elem */
36717 : #line 5529 "gram.y"
36718 : {
36719 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
36720 : }
36721 : #line 36722 "gram.c"
36722 168 : break;
36723 :
36724 200 : case 728: /* alter_generic_option_elem: generic_option_elem */
36725 : #line 5536 "gram.y"
36726 : {
36727 : (yyval.defelt) = (yyvsp[0].defelt);
36728 : }
36729 : #line 36730 "gram.c"
36730 200 : break;
36731 :
36732 128 : case 729: /* alter_generic_option_elem: SET generic_option_elem */
36733 : #line 5540 "gram.y"
36734 : {
36735 : (yyval.defelt) = (yyvsp[0].defelt);
36736 : (yyval.defelt)->defaction = DEFELEM_SET;
36737 : }
36738 : #line 36739 "gram.c"
36739 128 : break;
36740 :
36741 218 : case 730: /* alter_generic_option_elem: ADD_P generic_option_elem */
36742 : #line 5545 "gram.y"
36743 : {
36744 : (yyval.defelt) = (yyvsp[0].defelt);
36745 : (yyval.defelt)->defaction = DEFELEM_ADD;
36746 : }
36747 : #line 36748 "gram.c"
36748 218 : break;
36749 :
36750 126 : case 731: /* alter_generic_option_elem: DROP generic_option_name */
36751 : #line 5550 "gram.y"
36752 : {
36753 : (yyval.defelt) = makeDefElemExtended(NULL, (yyvsp[0].str), NULL, DEFELEM_DROP, (yylsp[0]));
36754 : }
36755 : #line 36756 "gram.c"
36756 126 : break;
36757 :
36758 1770 : case 732: /* generic_option_elem: generic_option_name generic_option_arg */
36759 : #line 5557 "gram.y"
36760 : {
36761 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
36762 : }
36763 : #line 36764 "gram.c"
36764 1770 : break;
36765 :
36766 1896 : case 733: /* generic_option_name: ColLabel */
36767 : #line 5563 "gram.y"
36768 : { (yyval.str) = (yyvsp[0].str); }
36769 : #line 36770 "gram.c"
36770 1896 : break;
36771 :
36772 1770 : case 734: /* generic_option_arg: Sconst */
36773 : #line 5568 "gram.y"
36774 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
36775 : #line 36776 "gram.c"
36776 1770 : break;
36777 :
36778 274 : case 735: /* CreateForeignServerStmt: CREATE SERVER name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */
36779 : #line 5580 "gram.y"
36780 : {
36781 : CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt);
36782 :
36783 : n->servername = (yyvsp[-7].str);
36784 : n->servertype = (yyvsp[-6].str);
36785 : n->version = (yyvsp[-5].str);
36786 : n->fdwname = (yyvsp[-1].str);
36787 : n->options = (yyvsp[0].list);
36788 : n->if_not_exists = false;
36789 : (yyval.node) = (Node *) n;
36790 : }
36791 : #line 36792 "gram.c"
36792 274 : break;
36793 :
36794 24 : case 736: /* CreateForeignServerStmt: CREATE SERVER IF_P NOT EXISTS name opt_type opt_foreign_server_version FOREIGN DATA_P WRAPPER name create_generic_options */
36795 : #line 5593 "gram.y"
36796 : {
36797 : CreateForeignServerStmt *n = makeNode(CreateForeignServerStmt);
36798 :
36799 : n->servername = (yyvsp[-7].str);
36800 : n->servertype = (yyvsp[-6].str);
36801 : n->version = (yyvsp[-5].str);
36802 : n->fdwname = (yyvsp[-1].str);
36803 : n->options = (yyvsp[0].list);
36804 : n->if_not_exists = true;
36805 : (yyval.node) = (Node *) n;
36806 : }
36807 : #line 36808 "gram.c"
36808 24 : break;
36809 :
36810 18 : case 737: /* opt_type: TYPE_P Sconst */
36811 : #line 5607 "gram.y"
36812 : { (yyval.str) = (yyvsp[0].str); }
36813 : #line 36814 "gram.c"
36814 18 : break;
36815 :
36816 280 : case 738: /* opt_type: %empty */
36817 : #line 5608 "gram.y"
36818 : { (yyval.str) = NULL; }
36819 : #line 36820 "gram.c"
36820 280 : break;
36821 :
36822 66 : case 739: /* foreign_server_version: VERSION_P Sconst */
36823 : #line 5613 "gram.y"
36824 : { (yyval.str) = (yyvsp[0].str); }
36825 : #line 36826 "gram.c"
36826 66 : break;
36827 :
36828 0 : case 740: /* foreign_server_version: VERSION_P NULL_P */
36829 : #line 5614 "gram.y"
36830 : { (yyval.str) = NULL; }
36831 : #line 36832 "gram.c"
36832 0 : break;
36833 :
36834 18 : case 741: /* opt_foreign_server_version: foreign_server_version */
36835 : #line 5618 "gram.y"
36836 : { (yyval.str) = (yyvsp[0].str); }
36837 : #line 36838 "gram.c"
36838 18 : break;
36839 :
36840 280 : case 742: /* opt_foreign_server_version: %empty */
36841 : #line 5619 "gram.y"
36842 : { (yyval.str) = NULL; }
36843 : #line 36844 "gram.c"
36844 280 : break;
36845 :
36846 6 : case 743: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version alter_generic_options */
36847 : #line 5630 "gram.y"
36848 : {
36849 : AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
36850 :
36851 : n->servername = (yyvsp[-2].str);
36852 : n->version = (yyvsp[-1].str);
36853 : n->options = (yyvsp[0].list);
36854 : n->has_version = true;
36855 : (yyval.node) = (Node *) n;
36856 : }
36857 : #line 36858 "gram.c"
36858 6 : break;
36859 :
36860 42 : case 744: /* AlterForeignServerStmt: ALTER SERVER name foreign_server_version */
36861 : #line 5640 "gram.y"
36862 : {
36863 : AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
36864 :
36865 : n->servername = (yyvsp[-1].str);
36866 : n->version = (yyvsp[0].str);
36867 : n->has_version = true;
36868 : (yyval.node) = (Node *) n;
36869 : }
36870 : #line 36871 "gram.c"
36871 42 : break;
36872 :
36873 180 : case 745: /* AlterForeignServerStmt: ALTER SERVER name alter_generic_options */
36874 : #line 5649 "gram.y"
36875 : {
36876 : AlterForeignServerStmt *n = makeNode(AlterForeignServerStmt);
36877 :
36878 : n->servername = (yyvsp[-1].str);
36879 : n->options = (yyvsp[0].list);
36880 : (yyval.node) = (Node *) n;
36881 : }
36882 : #line 36883 "gram.c"
36883 180 : break;
36884 :
36885 400 : case 746: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */
36886 : #line 5669 "gram.y"
36887 : {
36888 : CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
36889 :
36890 : (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT;
36891 : n->base.relation = (yyvsp[-7].range);
36892 : n->base.tableElts = (yyvsp[-5].list);
36893 : n->base.inhRelations = (yyvsp[-3].list);
36894 : n->base.ofTypename = NULL;
36895 : n->base.constraints = NIL;
36896 : n->base.options = NIL;
36897 : n->base.oncommit = ONCOMMIT_NOOP;
36898 : n->base.tablespacename = NULL;
36899 : n->base.if_not_exists = false;
36900 : /* FDW-specific data */
36901 : n->servername = (yyvsp[-1].str);
36902 : n->options = (yyvsp[0].list);
36903 : (yyval.node) = (Node *) n;
36904 : }
36905 : #line 36906 "gram.c"
36906 400 : break;
36907 :
36908 0 : case 747: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name '(' OptTableElementList ')' OptInherit SERVER name create_generic_options */
36909 : #line 5690 "gram.y"
36910 : {
36911 : CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
36912 :
36913 : (yyvsp[-7].range)->relpersistence = RELPERSISTENCE_PERMANENT;
36914 : n->base.relation = (yyvsp[-7].range);
36915 : n->base.tableElts = (yyvsp[-5].list);
36916 : n->base.inhRelations = (yyvsp[-3].list);
36917 : n->base.ofTypename = NULL;
36918 : n->base.constraints = NIL;
36919 : n->base.options = NIL;
36920 : n->base.oncommit = ONCOMMIT_NOOP;
36921 : n->base.tablespacename = NULL;
36922 : n->base.if_not_exists = true;
36923 : /* FDW-specific data */
36924 : n->servername = (yyvsp[-1].str);
36925 : n->options = (yyvsp[0].list);
36926 : (yyval.node) = (Node *) n;
36927 : }
36928 : #line 36929 "gram.c"
36929 0 : break;
36930 :
36931 90 : case 748: /* CreateForeignTableStmt: CREATE FOREIGN TABLE qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */
36932 : #line 5711 "gram.y"
36933 : {
36934 : CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
36935 :
36936 : (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT;
36937 : n->base.relation = (yyvsp[-8].range);
36938 : n->base.inhRelations = list_make1((yyvsp[-5].range));
36939 : n->base.tableElts = (yyvsp[-4].list);
36940 : n->base.partbound = (yyvsp[-3].partboundspec);
36941 : n->base.ofTypename = NULL;
36942 : n->base.constraints = NIL;
36943 : n->base.options = NIL;
36944 : n->base.oncommit = ONCOMMIT_NOOP;
36945 : n->base.tablespacename = NULL;
36946 : n->base.if_not_exists = false;
36947 : /* FDW-specific data */
36948 : n->servername = (yyvsp[-1].str);
36949 : n->options = (yyvsp[0].list);
36950 : (yyval.node) = (Node *) n;
36951 : }
36952 : #line 36953 "gram.c"
36953 90 : break;
36954 :
36955 0 : case 749: /* CreateForeignTableStmt: CREATE FOREIGN TABLE IF_P NOT EXISTS qualified_name PARTITION OF qualified_name OptTypedTableElementList PartitionBoundSpec SERVER name create_generic_options */
36956 : #line 5733 "gram.y"
36957 : {
36958 : CreateForeignTableStmt *n = makeNode(CreateForeignTableStmt);
36959 :
36960 : (yyvsp[-8].range)->relpersistence = RELPERSISTENCE_PERMANENT;
36961 : n->base.relation = (yyvsp[-8].range);
36962 : n->base.inhRelations = list_make1((yyvsp[-5].range));
36963 : n->base.tableElts = (yyvsp[-4].list);
36964 : n->base.partbound = (yyvsp[-3].partboundspec);
36965 : n->base.ofTypename = NULL;
36966 : n->base.constraints = NIL;
36967 : n->base.options = NIL;
36968 : n->base.oncommit = ONCOMMIT_NOOP;
36969 : n->base.tablespacename = NULL;
36970 : n->base.if_not_exists = true;
36971 : /* FDW-specific data */
36972 : n->servername = (yyvsp[-1].str);
36973 : n->options = (yyvsp[0].list);
36974 : (yyval.node) = (Node *) n;
36975 : }
36976 : #line 36977 "gram.c"
36977 0 : break;
36978 :
36979 48 : case 750: /* ImportForeignSchemaStmt: IMPORT_P FOREIGN SCHEMA name import_qualification FROM SERVER name INTO name create_generic_options */
36980 : #line 5766 "gram.y"
36981 : {
36982 : ImportForeignSchemaStmt *n = makeNode(ImportForeignSchemaStmt);
36983 :
36984 : n->server_name = (yyvsp[-3].str);
36985 : n->remote_schema = (yyvsp[-7].str);
36986 : n->local_schema = (yyvsp[-1].str);
36987 : n->list_type = (yyvsp[-6].importqual)->type;
36988 : n->table_list = (yyvsp[-6].importqual)->table_names;
36989 : n->options = (yyvsp[0].list);
36990 : (yyval.node) = (Node *) n;
36991 : }
36992 : #line 36993 "gram.c"
36993 48 : break;
36994 :
36995 14 : case 751: /* import_qualification_type: LIMIT TO */
36996 : #line 5780 "gram.y"
36997 : { (yyval.ival) = FDW_IMPORT_SCHEMA_LIMIT_TO; }
36998 : #line 36999 "gram.c"
36999 14 : break;
37000 :
37001 14 : case 752: /* import_qualification_type: EXCEPT */
37002 : #line 5781 "gram.y"
37003 : { (yyval.ival) = FDW_IMPORT_SCHEMA_EXCEPT; }
37004 : #line 37005 "gram.c"
37005 14 : break;
37006 :
37007 28 : case 753: /* import_qualification: import_qualification_type '(' relation_expr_list ')' */
37008 : #line 5786 "gram.y"
37009 : {
37010 : ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual));
37011 :
37012 : n->type = (yyvsp[-3].ival);
37013 : n->table_names = (yyvsp[-1].list);
37014 : (yyval.importqual) = n;
37015 : }
37016 : #line 37017 "gram.c"
37017 28 : break;
37018 :
37019 20 : case 754: /* import_qualification: %empty */
37020 : #line 5794 "gram.y"
37021 : {
37022 : ImportQual *n = (ImportQual *) palloc(sizeof(ImportQual));
37023 : n->type = FDW_IMPORT_SCHEMA_ALL;
37024 : n->table_names = NIL;
37025 : (yyval.importqual) = n;
37026 : }
37027 : #line 37028 "gram.c"
37028 20 : break;
37029 :
37030 246 : case 755: /* CreateUserMappingStmt: CREATE USER MAPPING FOR auth_ident SERVER name create_generic_options */
37031 : #line 5810 "gram.y"
37032 : {
37033 : CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt);
37034 :
37035 : n->user = (yyvsp[-3].rolespec);
37036 : n->servername = (yyvsp[-1].str);
37037 : n->options = (yyvsp[0].list);
37038 : n->if_not_exists = false;
37039 : (yyval.node) = (Node *) n;
37040 : }
37041 : #line 37042 "gram.c"
37042 246 : break;
37043 :
37044 6 : case 756: /* CreateUserMappingStmt: CREATE USER MAPPING IF_P NOT EXISTS FOR auth_ident SERVER name create_generic_options */
37045 : #line 5820 "gram.y"
37046 : {
37047 : CreateUserMappingStmt *n = makeNode(CreateUserMappingStmt);
37048 :
37049 : n->user = (yyvsp[-3].rolespec);
37050 : n->servername = (yyvsp[-1].str);
37051 : n->options = (yyvsp[0].list);
37052 : n->if_not_exists = true;
37053 : (yyval.node) = (Node *) n;
37054 : }
37055 : #line 37056 "gram.c"
37056 6 : break;
37057 :
37058 450 : case 757: /* auth_ident: RoleSpec */
37059 : #line 5832 "gram.y"
37060 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
37061 : #line 37062 "gram.c"
37062 450 : break;
37063 :
37064 46 : case 758: /* auth_ident: USER */
37065 : #line 5833 "gram.y"
37066 : { (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0])); }
37067 : #line 37068 "gram.c"
37068 46 : break;
37069 :
37070 88 : case 759: /* DropUserMappingStmt: DROP USER MAPPING FOR auth_ident SERVER name */
37071 : #line 5846 "gram.y"
37072 : {
37073 : DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
37074 :
37075 : n->user = (yyvsp[-2].rolespec);
37076 : n->servername = (yyvsp[0].str);
37077 : n->missing_ok = false;
37078 : (yyval.node) = (Node *) n;
37079 : }
37080 : #line 37081 "gram.c"
37081 88 : break;
37082 :
37083 38 : case 760: /* DropUserMappingStmt: DROP USER MAPPING IF_P EXISTS FOR auth_ident SERVER name */
37084 : #line 5855 "gram.y"
37085 : {
37086 : DropUserMappingStmt *n = makeNode(DropUserMappingStmt);
37087 :
37088 : n->user = (yyvsp[-2].rolespec);
37089 : n->servername = (yyvsp[0].str);
37090 : n->missing_ok = true;
37091 : (yyval.node) = (Node *) n;
37092 : }
37093 : #line 37094 "gram.c"
37094 38 : break;
37095 :
37096 118 : case 761: /* AlterUserMappingStmt: ALTER USER MAPPING FOR auth_ident SERVER name alter_generic_options */
37097 : #line 5873 "gram.y"
37098 : {
37099 : AlterUserMappingStmt *n = makeNode(AlterUserMappingStmt);
37100 :
37101 : n->user = (yyvsp[-3].rolespec);
37102 : n->servername = (yyvsp[-1].str);
37103 : n->options = (yyvsp[0].list);
37104 : (yyval.node) = (Node *) n;
37105 : }
37106 : #line 37107 "gram.c"
37107 118 : break;
37108 :
37109 706 : case 762: /* CreatePolicyStmt: CREATE POLICY name ON qualified_name RowSecurityDefaultPermissive RowSecurityDefaultForCmd RowSecurityDefaultToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */
37110 : #line 5900 "gram.y"
37111 : {
37112 : CreatePolicyStmt *n = makeNode(CreatePolicyStmt);
37113 :
37114 : n->policy_name = (yyvsp[-7].str);
37115 : n->table = (yyvsp[-5].range);
37116 : n->permissive = (yyvsp[-4].boolean);
37117 : n->cmd_name = (yyvsp[-3].str);
37118 : n->roles = (yyvsp[-2].list);
37119 : n->qual = (yyvsp[-1].node);
37120 : n->with_check = (yyvsp[0].node);
37121 : (yyval.node) = (Node *) n;
37122 : }
37123 : #line 37124 "gram.c"
37124 706 : break;
37125 :
37126 84 : case 763: /* AlterPolicyStmt: ALTER POLICY name ON qualified_name RowSecurityOptionalToRole RowSecurityOptionalExpr RowSecurityOptionalWithCheck */
37127 : #line 5917 "gram.y"
37128 : {
37129 : AlterPolicyStmt *n = makeNode(AlterPolicyStmt);
37130 :
37131 : n->policy_name = (yyvsp[-5].str);
37132 : n->table = (yyvsp[-3].range);
37133 : n->roles = (yyvsp[-2].list);
37134 : n->qual = (yyvsp[-1].node);
37135 : n->with_check = (yyvsp[0].node);
37136 : (yyval.node) = (Node *) n;
37137 : }
37138 : #line 37139 "gram.c"
37139 84 : break;
37140 :
37141 732 : case 764: /* RowSecurityOptionalExpr: USING '(' a_expr ')' */
37142 : #line 5930 "gram.y"
37143 : { (yyval.node) = (yyvsp[-1].node); }
37144 : #line 37145 "gram.c"
37145 732 : break;
37146 :
37147 58 : case 765: /* RowSecurityOptionalExpr: %empty */
37148 : #line 5931 "gram.y"
37149 : { (yyval.node) = NULL; }
37150 : #line 37151 "gram.c"
37151 58 : break;
37152 :
37153 128 : case 766: /* RowSecurityOptionalWithCheck: WITH CHECK '(' a_expr ')' */
37154 : #line 5935 "gram.y"
37155 : { (yyval.node) = (yyvsp[-1].node); }
37156 : #line 37157 "gram.c"
37157 128 : break;
37158 :
37159 662 : case 767: /* RowSecurityOptionalWithCheck: %empty */
37160 : #line 5936 "gram.y"
37161 : { (yyval.node) = NULL; }
37162 : #line 37163 "gram.c"
37163 662 : break;
37164 :
37165 130 : case 768: /* RowSecurityDefaultToRole: TO role_list */
37166 : #line 5940 "gram.y"
37167 : { (yyval.list) = (yyvsp[0].list); }
37168 : #line 37169 "gram.c"
37169 130 : break;
37170 :
37171 576 : case 769: /* RowSecurityDefaultToRole: %empty */
37172 : #line 5941 "gram.y"
37173 : { (yyval.list) = list_make1(makeRoleSpec(ROLESPEC_PUBLIC, -1)); }
37174 : #line 37175 "gram.c"
37175 576 : break;
37176 :
37177 12 : case 770: /* RowSecurityOptionalToRole: TO role_list */
37178 : #line 5945 "gram.y"
37179 : { (yyval.list) = (yyvsp[0].list); }
37180 : #line 37181 "gram.c"
37181 12 : break;
37182 :
37183 72 : case 771: /* RowSecurityOptionalToRole: %empty */
37184 : #line 5946 "gram.y"
37185 : { (yyval.list) = NULL; }
37186 : #line 37187 "gram.c"
37187 72 : break;
37188 :
37189 98 : case 772: /* RowSecurityDefaultPermissive: AS IDENT */
37190 : #line 5951 "gram.y"
37191 : {
37192 : if (strcmp((yyvsp[0].str), "permissive") == 0)
37193 : (yyval.boolean) = true;
37194 : else if (strcmp((yyvsp[0].str), "restrictive") == 0)
37195 : (yyval.boolean) = false;
37196 : else
37197 : ereport(ERROR,
37198 : (errcode(ERRCODE_SYNTAX_ERROR),
37199 : errmsg("unrecognized row security option \"%s\"", (yyvsp[0].str)),
37200 : errhint("Only PERMISSIVE or RESTRICTIVE policies are supported currently."),
37201 : parser_errposition((yylsp[0]))));
37202 :
37203 : }
37204 : #line 37205 "gram.c"
37205 92 : break;
37206 :
37207 614 : case 773: /* RowSecurityDefaultPermissive: %empty */
37208 : #line 5964 "gram.y"
37209 : { (yyval.boolean) = true; }
37210 : #line 37211 "gram.c"
37211 614 : break;
37212 :
37213 332 : case 774: /* RowSecurityDefaultForCmd: FOR row_security_cmd */
37214 : #line 5968 "gram.y"
37215 : { (yyval.str) = (yyvsp[0].str); }
37216 : #line 37217 "gram.c"
37217 332 : break;
37218 :
37219 374 : case 775: /* RowSecurityDefaultForCmd: %empty */
37220 : #line 5969 "gram.y"
37221 : { (yyval.str) = "all"; }
37222 : #line 37223 "gram.c"
37223 374 : break;
37224 :
37225 44 : case 776: /* row_security_cmd: ALL */
37226 : #line 5973 "gram.y"
37227 : { (yyval.str) = "all"; }
37228 : #line 37229 "gram.c"
37229 44 : break;
37230 :
37231 116 : case 777: /* row_security_cmd: SELECT */
37232 : #line 5974 "gram.y"
37233 : { (yyval.str) = "select"; }
37234 : #line 37235 "gram.c"
37235 116 : break;
37236 :
37237 44 : case 778: /* row_security_cmd: INSERT */
37238 : #line 5975 "gram.y"
37239 : { (yyval.str) = "insert"; }
37240 : #line 37241 "gram.c"
37241 44 : break;
37242 :
37243 82 : case 779: /* row_security_cmd: UPDATE */
37244 : #line 5976 "gram.y"
37245 : { (yyval.str) = "update"; }
37246 : #line 37247 "gram.c"
37247 82 : break;
37248 :
37249 46 : case 780: /* row_security_cmd: DELETE_P */
37250 : #line 5977 "gram.y"
37251 : { (yyval.str) = "delete"; }
37252 : #line 37253 "gram.c"
37253 46 : break;
37254 :
37255 64 : case 781: /* CreateAmStmt: CREATE ACCESS METHOD name TYPE_P am_type HANDLER handler_name */
37256 : #line 5988 "gram.y"
37257 : {
37258 : CreateAmStmt *n = makeNode(CreateAmStmt);
37259 :
37260 : n->amname = (yyvsp[-4].str);
37261 : n->handler_name = (yyvsp[0].list);
37262 : n->amtype = (yyvsp[-2].chr);
37263 : (yyval.node) = (Node *) n;
37264 : }
37265 : #line 37266 "gram.c"
37266 64 : break;
37267 :
37268 34 : case 782: /* am_type: INDEX */
37269 : #line 5999 "gram.y"
37270 : { (yyval.chr) = AMTYPE_INDEX; }
37271 : #line 37272 "gram.c"
37272 34 : break;
37273 :
37274 30 : case 783: /* am_type: TABLE */
37275 : #line 6000 "gram.y"
37276 : { (yyval.chr) = AMTYPE_TABLE; }
37277 : #line 37278 "gram.c"
37278 30 : break;
37279 :
37280 3260 : case 784: /* CreateTrigStmt: CREATE opt_or_replace TRIGGER name TriggerActionTime TriggerEvents ON qualified_name TriggerReferencing TriggerForSpec TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */
37281 : #line 6014 "gram.y"
37282 : {
37283 : CreateTrigStmt *n = makeNode(CreateTrigStmt);
37284 :
37285 : n->replace = (yyvsp[-15].boolean);
37286 : n->isconstraint = false;
37287 : n->trigname = (yyvsp[-13].str);
37288 : n->relation = (yyvsp[-9].range);
37289 : n->funcname = (yyvsp[-3].list);
37290 : n->args = (yyvsp[-1].list);
37291 : n->row = (yyvsp[-7].boolean);
37292 : n->timing = (yyvsp[-12].ival);
37293 : n->events = intVal(linitial((yyvsp[-11].list)));
37294 : n->columns = (List *) lsecond((yyvsp[-11].list));
37295 : n->whenClause = (yyvsp[-6].node);
37296 : n->transitionRels = (yyvsp[-8].list);
37297 : n->deferrable = false;
37298 : n->initdeferred = false;
37299 : n->constrrel = NULL;
37300 : (yyval.node) = (Node *) n;
37301 : }
37302 : #line 37303 "gram.c"
37303 3260 : break;
37304 :
37305 62 : case 785: /* CreateTrigStmt: CREATE opt_or_replace CONSTRAINT TRIGGER name AFTER TriggerEvents ON qualified_name OptConstrFromTable ConstraintAttributeSpec FOR EACH ROW TriggerWhen EXECUTE FUNCTION_or_PROCEDURE func_name '(' TriggerFuncArgs ')' */
37306 : #line 6038 "gram.y"
37307 : {
37308 : CreateTrigStmt *n = makeNode(CreateTrigStmt);
37309 :
37310 : n->replace = (yyvsp[-19].boolean);
37311 : if (n->replace) /* not supported, see CreateTrigger */
37312 : ereport(ERROR,
37313 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
37314 : errmsg("CREATE OR REPLACE CONSTRAINT TRIGGER is not supported"),
37315 : parser_errposition((yylsp[-20]))));
37316 : n->isconstraint = true;
37317 : n->trigname = (yyvsp[-16].str);
37318 : n->relation = (yyvsp[-12].range);
37319 : n->funcname = (yyvsp[-3].list);
37320 : n->args = (yyvsp[-1].list);
37321 : n->row = true;
37322 : n->timing = TRIGGER_TYPE_AFTER;
37323 : n->events = intVal(linitial((yyvsp[-14].list)));
37324 : n->columns = (List *) lsecond((yyvsp[-14].list));
37325 : n->whenClause = (yyvsp[-6].node);
37326 : n->transitionRels = NIL;
37327 : processCASbits((yyvsp[-10].ival), (yylsp[-10]), "TRIGGER",
37328 : &n->deferrable, &n->initdeferred, NULL,
37329 : NULL, NULL, yyscanner);
37330 : n->constrrel = (yyvsp[-11].range);
37331 : (yyval.node) = (Node *) n;
37332 : }
37333 : #line 37334 "gram.c"
37334 62 : break;
37335 :
37336 1478 : case 786: /* TriggerActionTime: BEFORE */
37337 : #line 6067 "gram.y"
37338 : { (yyval.ival) = TRIGGER_TYPE_BEFORE; }
37339 : #line 37340 "gram.c"
37340 1478 : break;
37341 :
37342 1650 : case 787: /* TriggerActionTime: AFTER */
37343 : #line 6068 "gram.y"
37344 : { (yyval.ival) = TRIGGER_TYPE_AFTER; }
37345 : #line 37346 "gram.c"
37346 1650 : break;
37347 :
37348 144 : case 788: /* TriggerActionTime: INSTEAD OF */
37349 : #line 6069 "gram.y"
37350 : { (yyval.ival) = TRIGGER_TYPE_INSTEAD; }
37351 : #line 37352 "gram.c"
37352 144 : break;
37353 :
37354 3334 : case 789: /* TriggerEvents: TriggerOneEvent */
37355 : #line 6074 "gram.y"
37356 : { (yyval.list) = (yyvsp[0].list); }
37357 : #line 37358 "gram.c"
37358 3334 : break;
37359 :
37360 1212 : case 790: /* TriggerEvents: TriggerEvents OR TriggerOneEvent */
37361 : #line 6076 "gram.y"
37362 : {
37363 : int events1 = intVal(linitial((yyvsp[-2].list)));
37364 : int events2 = intVal(linitial((yyvsp[0].list)));
37365 : List *columns1 = (List *) lsecond((yyvsp[-2].list));
37366 : List *columns2 = (List *) lsecond((yyvsp[0].list));
37367 :
37368 : if (events1 & events2)
37369 : parser_yyerror("duplicate trigger events specified");
37370 : /*
37371 : * concat'ing the columns lists loses information about
37372 : * which columns went with which event, but so long as
37373 : * only UPDATE carries columns and we disallow multiple
37374 : * UPDATE items, it doesn't matter. Command execution
37375 : * should just ignore the columns for non-UPDATE events.
37376 : */
37377 : (yyval.list) = list_make2(makeInteger(events1 | events2),
37378 : list_concat(columns1, columns2));
37379 : }
37380 : #line 37381 "gram.c"
37381 1206 : break;
37382 :
37383 1710 : case 791: /* TriggerOneEvent: INSERT */
37384 : #line 6098 "gram.y"
37385 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_INSERT), NIL); }
37386 : #line 37387 "gram.c"
37387 1710 : break;
37388 :
37389 896 : case 792: /* TriggerOneEvent: DELETE_P */
37390 : #line 6100 "gram.y"
37391 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_DELETE), NIL); }
37392 : #line 37393 "gram.c"
37393 896 : break;
37394 :
37395 1794 : case 793: /* TriggerOneEvent: UPDATE */
37396 : #line 6102 "gram.y"
37397 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), NIL); }
37398 : #line 37399 "gram.c"
37399 1794 : break;
37400 :
37401 108 : case 794: /* TriggerOneEvent: UPDATE OF columnList */
37402 : #line 6104 "gram.y"
37403 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_UPDATE), (yyvsp[0].list)); }
37404 : #line 37405 "gram.c"
37405 108 : break;
37406 :
37407 38 : case 795: /* TriggerOneEvent: TRUNCATE */
37408 : #line 6106 "gram.y"
37409 : { (yyval.list) = list_make2(makeInteger(TRIGGER_TYPE_TRUNCATE), NIL); }
37410 : #line 37411 "gram.c"
37411 38 : break;
37412 :
37413 470 : case 796: /* TriggerReferencing: REFERENCING TriggerTransitions */
37414 : #line 6110 "gram.y"
37415 : { (yyval.list) = (yyvsp[0].list); }
37416 : #line 37417 "gram.c"
37417 470 : break;
37418 :
37419 2790 : case 797: /* TriggerReferencing: %empty */
37420 : #line 6111 "gram.y"
37421 : { (yyval.list) = NIL; }
37422 : #line 37423 "gram.c"
37423 2790 : break;
37424 :
37425 470 : case 798: /* TriggerTransitions: TriggerTransition */
37426 : #line 6115 "gram.y"
37427 : { (yyval.list) = list_make1((yyvsp[0].node)); }
37428 : #line 37429 "gram.c"
37429 470 : break;
37430 :
37431 144 : case 799: /* TriggerTransitions: TriggerTransitions TriggerTransition */
37432 : #line 6116 "gram.y"
37433 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
37434 : #line 37435 "gram.c"
37435 144 : break;
37436 :
37437 614 : case 800: /* TriggerTransition: TransitionOldOrNew TransitionRowOrTable opt_as TransitionRelName */
37438 : #line 6121 "gram.y"
37439 : {
37440 : TriggerTransition *n = makeNode(TriggerTransition);
37441 :
37442 : n->name = (yyvsp[0].str);
37443 : n->isNew = (yyvsp[-3].boolean);
37444 : n->isTable = (yyvsp[-2].boolean);
37445 : (yyval.node) = (Node *) n;
37446 : }
37447 : #line 37448 "gram.c"
37448 614 : break;
37449 :
37450 336 : case 801: /* TransitionOldOrNew: NEW */
37451 : #line 6132 "gram.y"
37452 : { (yyval.boolean) = true; }
37453 : #line 37454 "gram.c"
37454 336 : break;
37455 :
37456 278 : case 802: /* TransitionOldOrNew: OLD */
37457 : #line 6133 "gram.y"
37458 : { (yyval.boolean) = false; }
37459 : #line 37460 "gram.c"
37460 278 : break;
37461 :
37462 614 : case 803: /* TransitionRowOrTable: TABLE */
37463 : #line 6137 "gram.y"
37464 : { (yyval.boolean) = true; }
37465 : #line 37466 "gram.c"
37466 614 : break;
37467 :
37468 0 : case 804: /* TransitionRowOrTable: ROW */
37469 : #line 6146 "gram.y"
37470 : { (yyval.boolean) = false; }
37471 : #line 37472 "gram.c"
37472 0 : break;
37473 :
37474 614 : case 805: /* TransitionRelName: ColId */
37475 : #line 6150 "gram.y"
37476 : { (yyval.str) = (yyvsp[0].str); }
37477 : #line 37478 "gram.c"
37478 614 : break;
37479 :
37480 3032 : case 806: /* TriggerForSpec: FOR TriggerForOptEach TriggerForType */
37481 : #line 6155 "gram.y"
37482 : {
37483 : (yyval.boolean) = (yyvsp[0].boolean);
37484 : }
37485 : #line 37486 "gram.c"
37486 3032 : break;
37487 :
37488 228 : case 807: /* TriggerForSpec: %empty */
37489 : #line 6159 "gram.y"
37490 : {
37491 : /*
37492 : * If ROW/STATEMENT not specified, default to
37493 : * STATEMENT, per SQL
37494 : */
37495 : (yyval.boolean) = false;
37496 : }
37497 : #line 37498 "gram.c"
37498 228 : break;
37499 :
37500 2196 : case 810: /* TriggerForType: ROW */
37501 : #line 6174 "gram.y"
37502 : { (yyval.boolean) = true; }
37503 : #line 37504 "gram.c"
37504 2196 : break;
37505 :
37506 836 : case 811: /* TriggerForType: STATEMENT */
37507 : #line 6175 "gram.y"
37508 : { (yyval.boolean) = false; }
37509 : #line 37510 "gram.c"
37510 836 : break;
37511 :
37512 194 : case 812: /* TriggerWhen: WHEN '(' a_expr ')' */
37513 : #line 6179 "gram.y"
37514 : { (yyval.node) = (yyvsp[-1].node); }
37515 : #line 37516 "gram.c"
37516 194 : break;
37517 :
37518 3128 : case 813: /* TriggerWhen: %empty */
37519 : #line 6180 "gram.y"
37520 : { (yyval.node) = NULL; }
37521 : #line 37522 "gram.c"
37522 3128 : break;
37523 :
37524 588 : case 816: /* TriggerFuncArgs: TriggerFuncArg */
37525 : #line 6189 "gram.y"
37526 : { (yyval.list) = list_make1((yyvsp[0].node)); }
37527 : #line 37528 "gram.c"
37528 588 : break;
37529 :
37530 166 : case 817: /* TriggerFuncArgs: TriggerFuncArgs ',' TriggerFuncArg */
37531 : #line 6190 "gram.y"
37532 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
37533 : #line 37534 "gram.c"
37534 166 : break;
37535 :
37536 2734 : case 818: /* TriggerFuncArgs: %empty */
37537 : #line 6191 "gram.y"
37538 : { (yyval.list) = NIL; }
37539 : #line 37540 "gram.c"
37540 2734 : break;
37541 :
37542 94 : case 819: /* TriggerFuncArg: Iconst */
37543 : #line 6196 "gram.y"
37544 : {
37545 : (yyval.node) = (Node *) makeString(psprintf("%d", (yyvsp[0].ival)));
37546 : }
37547 : #line 37548 "gram.c"
37548 94 : break;
37549 :
37550 0 : case 820: /* TriggerFuncArg: FCONST */
37551 : #line 6199 "gram.y"
37552 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
37553 : #line 37554 "gram.c"
37554 0 : break;
37555 :
37556 638 : case 821: /* TriggerFuncArg: Sconst */
37557 : #line 6200 "gram.y"
37558 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
37559 : #line 37560 "gram.c"
37560 638 : break;
37561 :
37562 22 : case 822: /* TriggerFuncArg: ColLabel */
37563 : #line 6201 "gram.y"
37564 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
37565 : #line 37566 "gram.c"
37566 22 : break;
37567 :
37568 12 : case 823: /* OptConstrFromTable: FROM qualified_name */
37569 : #line 6205 "gram.y"
37570 : { (yyval.range) = (yyvsp[0].range); }
37571 : #line 37572 "gram.c"
37572 12 : break;
37573 :
37574 50 : case 824: /* OptConstrFromTable: %empty */
37575 : #line 6206 "gram.y"
37576 : { (yyval.range) = NULL; }
37577 : #line 37578 "gram.c"
37578 50 : break;
37579 :
37580 17956 : case 825: /* ConstraintAttributeSpec: %empty */
37581 : #line 6211 "gram.y"
37582 : { (yyval.ival) = 0; }
37583 : #line 37584 "gram.c"
37584 17956 : break;
37585 :
37586 1688 : case 826: /* ConstraintAttributeSpec: ConstraintAttributeSpec ConstraintAttributeElem */
37587 : #line 6213 "gram.y"
37588 : {
37589 : /*
37590 : * We must complain about conflicting options.
37591 : * We could, but choose not to, complain about redundant
37592 : * options (ie, where $2's bit is already set in $1).
37593 : */
37594 : int newspec = (yyvsp[-1].ival) | (yyvsp[0].ival);
37595 :
37596 : /* special message for this case */
37597 : if ((newspec & (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED)) == (CAS_NOT_DEFERRABLE | CAS_INITIALLY_DEFERRED))
37598 : ereport(ERROR,
37599 : (errcode(ERRCODE_SYNTAX_ERROR),
37600 : errmsg("constraint declared INITIALLY DEFERRED must be DEFERRABLE"),
37601 : parser_errposition((yylsp[0]))));
37602 : /* generic message for other conflicts */
37603 : if ((newspec & (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE)) == (CAS_NOT_DEFERRABLE | CAS_DEFERRABLE) ||
37604 : (newspec & (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED)) == (CAS_INITIALLY_IMMEDIATE | CAS_INITIALLY_DEFERRED) ||
37605 : (newspec & (CAS_NOT_ENFORCED | CAS_ENFORCED)) == (CAS_NOT_ENFORCED | CAS_ENFORCED))
37606 : ereport(ERROR,
37607 : (errcode(ERRCODE_SYNTAX_ERROR),
37608 : errmsg("conflicting constraint properties"),
37609 : parser_errposition((yylsp[0]))));
37610 : (yyval.ival) = newspec;
37611 : }
37612 : #line 37613 "gram.c"
37613 1676 : break;
37614 :
37615 42 : case 827: /* ConstraintAttributeElem: NOT DEFERRABLE */
37616 : #line 6240 "gram.y"
37617 : { (yyval.ival) = CAS_NOT_DEFERRABLE; }
37618 : #line 37619 "gram.c"
37619 42 : break;
37620 :
37621 212 : case 828: /* ConstraintAttributeElem: DEFERRABLE */
37622 : #line 6241 "gram.y"
37623 : { (yyval.ival) = CAS_DEFERRABLE; }
37624 : #line 37625 "gram.c"
37625 212 : break;
37626 :
37627 30 : case 829: /* ConstraintAttributeElem: INITIALLY IMMEDIATE */
37628 : #line 6242 "gram.y"
37629 : { (yyval.ival) = CAS_INITIALLY_IMMEDIATE; }
37630 : #line 37631 "gram.c"
37631 30 : break;
37632 :
37633 158 : case 830: /* ConstraintAttributeElem: INITIALLY DEFERRED */
37634 : #line 6243 "gram.y"
37635 : { (yyval.ival) = CAS_INITIALLY_DEFERRED; }
37636 : #line 37637 "gram.c"
37637 158 : break;
37638 :
37639 728 : case 831: /* ConstraintAttributeElem: NOT VALID */
37640 : #line 6244 "gram.y"
37641 : { (yyval.ival) = CAS_NOT_VALID; }
37642 : #line 37643 "gram.c"
37643 728 : break;
37644 :
37645 248 : case 832: /* ConstraintAttributeElem: NO INHERIT */
37646 : #line 6245 "gram.y"
37647 : { (yyval.ival) = CAS_NO_INHERIT; }
37648 : #line 37649 "gram.c"
37649 248 : break;
37650 :
37651 168 : case 833: /* ConstraintAttributeElem: NOT ENFORCED */
37652 : #line 6246 "gram.y"
37653 : { (yyval.ival) = CAS_NOT_ENFORCED; }
37654 : #line 37655 "gram.c"
37655 168 : break;
37656 :
37657 102 : case 834: /* ConstraintAttributeElem: ENFORCED */
37658 : #line 6247 "gram.y"
37659 : { (yyval.ival) = CAS_ENFORCED; }
37660 : #line 37661 "gram.c"
37661 102 : break;
37662 :
37663 98 : case 835: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */
37664 : #line 6262 "gram.y"
37665 : {
37666 : CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt);
37667 :
37668 : n->trigname = (yyvsp[-7].str);
37669 : n->eventname = (yyvsp[-5].str);
37670 : n->whenclause = NULL;
37671 : n->funcname = (yyvsp[-2].list);
37672 : (yyval.node) = (Node *) n;
37673 : }
37674 : #line 37675 "gram.c"
37675 98 : break;
37676 :
37677 100 : case 836: /* CreateEventTrigStmt: CREATE EVENT TRIGGER name ON ColLabel WHEN event_trigger_when_list EXECUTE FUNCTION_or_PROCEDURE func_name '(' ')' */
37678 : #line 6274 "gram.y"
37679 : {
37680 : CreateEventTrigStmt *n = makeNode(CreateEventTrigStmt);
37681 :
37682 : n->trigname = (yyvsp[-9].str);
37683 : n->eventname = (yyvsp[-7].str);
37684 : n->whenclause = (yyvsp[-5].list);
37685 : n->funcname = (yyvsp[-2].list);
37686 : (yyval.node) = (Node *) n;
37687 : }
37688 : #line 37689 "gram.c"
37689 100 : break;
37690 :
37691 100 : case 837: /* event_trigger_when_list: event_trigger_when_item */
37692 : #line 6287 "gram.y"
37693 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
37694 : #line 37695 "gram.c"
37695 100 : break;
37696 :
37697 6 : case 838: /* event_trigger_when_list: event_trigger_when_list AND event_trigger_when_item */
37698 : #line 6289 "gram.y"
37699 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
37700 : #line 37701 "gram.c"
37701 6 : break;
37702 :
37703 106 : case 839: /* event_trigger_when_item: ColId IN_P '(' event_trigger_value_list ')' */
37704 : #line 6294 "gram.y"
37705 : { (yyval.defelt) = makeDefElem((yyvsp[-4].str), (Node *) (yyvsp[-1].list), (yylsp[-4])); }
37706 : #line 37707 "gram.c"
37707 106 : break;
37708 :
37709 106 : case 840: /* event_trigger_value_list: SCONST */
37710 : #line 6299 "gram.y"
37711 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
37712 : #line 37713 "gram.c"
37713 106 : break;
37714 :
37715 66 : case 841: /* event_trigger_value_list: event_trigger_value_list ',' SCONST */
37716 : #line 6301 "gram.y"
37717 : { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
37718 : #line 37719 "gram.c"
37719 66 : break;
37720 :
37721 48 : case 842: /* AlterEventTrigStmt: ALTER EVENT TRIGGER name enable_trigger */
37722 : #line 6306 "gram.y"
37723 : {
37724 : AlterEventTrigStmt *n = makeNode(AlterEventTrigStmt);
37725 :
37726 : n->trigname = (yyvsp[-1].str);
37727 : n->tgenabled = (yyvsp[0].chr);
37728 : (yyval.node) = (Node *) n;
37729 : }
37730 : #line 37731 "gram.c"
37731 48 : break;
37732 :
37733 6 : case 843: /* enable_trigger: ENABLE_P */
37734 : #line 6316 "gram.y"
37735 : { (yyval.chr) = TRIGGER_FIRES_ON_ORIGIN; }
37736 : #line 37737 "gram.c"
37737 6 : break;
37738 :
37739 6 : case 844: /* enable_trigger: ENABLE_P REPLICA */
37740 : #line 6317 "gram.y"
37741 : { (yyval.chr) = TRIGGER_FIRES_ON_REPLICA; }
37742 : #line 37743 "gram.c"
37743 6 : break;
37744 :
37745 16 : case 845: /* enable_trigger: ENABLE_P ALWAYS */
37746 : #line 6318 "gram.y"
37747 : { (yyval.chr) = TRIGGER_FIRES_ALWAYS; }
37748 : #line 37749 "gram.c"
37749 16 : break;
37750 :
37751 20 : case 846: /* enable_trigger: DISABLE_P */
37752 : #line 6319 "gram.y"
37753 : { (yyval.chr) = TRIGGER_DISABLED; }
37754 : #line 37755 "gram.c"
37755 20 : break;
37756 :
37757 0 : case 847: /* CreateAssertionStmt: CREATE ASSERTION any_name CHECK '(' a_expr ')' ConstraintAttributeSpec */
37758 : #line 6331 "gram.y"
37759 : {
37760 : ereport(ERROR,
37761 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
37762 : errmsg("CREATE ASSERTION is not yet implemented"),
37763 : parser_errposition((yylsp[-7]))));
37764 :
37765 : (yyval.node) = NULL;
37766 : }
37767 : #line 37768 "gram.c"
37768 : break;
37769 :
37770 638 : case 848: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name aggr_args definition */
37771 : #line 6351 "gram.y"
37772 : {
37773 : DefineStmt *n = makeNode(DefineStmt);
37774 :
37775 : n->kind = OBJECT_AGGREGATE;
37776 : n->oldstyle = false;
37777 : n->replace = (yyvsp[-4].boolean);
37778 : n->defnames = (yyvsp[-2].list);
37779 : n->args = (yyvsp[-1].list);
37780 : n->definition = (yyvsp[0].list);
37781 : (yyval.node) = (Node *) n;
37782 : }
37783 : #line 37784 "gram.c"
37784 638 : break;
37785 :
37786 362 : case 849: /* DefineStmt: CREATE opt_or_replace AGGREGATE func_name old_aggr_definition */
37787 : #line 6363 "gram.y"
37788 : {
37789 : /* old-style (pre-8.2) syntax for CREATE AGGREGATE */
37790 : DefineStmt *n = makeNode(DefineStmt);
37791 :
37792 : n->kind = OBJECT_AGGREGATE;
37793 : n->oldstyle = true;
37794 : n->replace = (yyvsp[-3].boolean);
37795 : n->defnames = (yyvsp[-1].list);
37796 : n->args = NIL;
37797 : n->definition = (yyvsp[0].list);
37798 : (yyval.node) = (Node *) n;
37799 : }
37800 : #line 37801 "gram.c"
37801 362 : break;
37802 :
37803 1610 : case 850: /* DefineStmt: CREATE OPERATOR any_operator definition */
37804 : #line 6376 "gram.y"
37805 : {
37806 : DefineStmt *n = makeNode(DefineStmt);
37807 :
37808 : n->kind = OBJECT_OPERATOR;
37809 : n->oldstyle = false;
37810 : n->defnames = (yyvsp[-1].list);
37811 : n->args = NIL;
37812 : n->definition = (yyvsp[0].list);
37813 : (yyval.node) = (Node *) n;
37814 : }
37815 : #line 37816 "gram.c"
37816 1610 : break;
37817 :
37818 230 : case 851: /* DefineStmt: CREATE TYPE_P any_name definition */
37819 : #line 6387 "gram.y"
37820 : {
37821 : DefineStmt *n = makeNode(DefineStmt);
37822 :
37823 : n->kind = OBJECT_TYPE;
37824 : n->oldstyle = false;
37825 : n->defnames = (yyvsp[-1].list);
37826 : n->args = NIL;
37827 : n->definition = (yyvsp[0].list);
37828 : (yyval.node) = (Node *) n;
37829 : }
37830 : #line 37831 "gram.c"
37831 230 : break;
37832 :
37833 172 : case 852: /* DefineStmt: CREATE TYPE_P any_name */
37834 : #line 6398 "gram.y"
37835 : {
37836 : /* Shell type (identified by lack of definition) */
37837 : DefineStmt *n = makeNode(DefineStmt);
37838 :
37839 : n->kind = OBJECT_TYPE;
37840 : n->oldstyle = false;
37841 : n->defnames = (yyvsp[0].list);
37842 : n->args = NIL;
37843 : n->definition = NIL;
37844 : (yyval.node) = (Node *) n;
37845 : }
37846 : #line 37847 "gram.c"
37847 172 : break;
37848 :
37849 4534 : case 853: /* DefineStmt: CREATE TYPE_P any_name AS '(' OptTableFuncElementList ')' */
37850 : #line 6410 "gram.y"
37851 : {
37852 : CompositeTypeStmt *n = makeNode(CompositeTypeStmt);
37853 :
37854 : /* can't use qualified_name, sigh */
37855 : n->typevar = makeRangeVarFromAnyName((yyvsp[-4].list), (yylsp[-4]), yyscanner);
37856 : n->coldeflist = (yyvsp[-1].list);
37857 : (yyval.node) = (Node *) n;
37858 : }
37859 : #line 37860 "gram.c"
37860 4534 : break;
37861 :
37862 208 : case 854: /* DefineStmt: CREATE TYPE_P any_name AS ENUM_P '(' opt_enum_val_list ')' */
37863 : #line 6419 "gram.y"
37864 : {
37865 : CreateEnumStmt *n = makeNode(CreateEnumStmt);
37866 :
37867 : n->typeName = (yyvsp[-5].list);
37868 : n->vals = (yyvsp[-1].list);
37869 : (yyval.node) = (Node *) n;
37870 : }
37871 : #line 37872 "gram.c"
37872 208 : break;
37873 :
37874 196 : case 855: /* DefineStmt: CREATE TYPE_P any_name AS RANGE definition */
37875 : #line 6427 "gram.y"
37876 : {
37877 : CreateRangeStmt *n = makeNode(CreateRangeStmt);
37878 :
37879 : n->typeName = (yyvsp[-3].list);
37880 : n->params = (yyvsp[0].list);
37881 : (yyval.node) = (Node *) n;
37882 : }
37883 : #line 37884 "gram.c"
37884 196 : break;
37885 :
37886 40 : case 856: /* DefineStmt: CREATE TEXT_P SEARCH PARSER any_name definition */
37887 : #line 6435 "gram.y"
37888 : {
37889 : DefineStmt *n = makeNode(DefineStmt);
37890 :
37891 : n->kind = OBJECT_TSPARSER;
37892 : n->args = NIL;
37893 : n->defnames = (yyvsp[-1].list);
37894 : n->definition = (yyvsp[0].list);
37895 : (yyval.node) = (Node *) n;
37896 : }
37897 : #line 37898 "gram.c"
37898 40 : break;
37899 :
37900 2890 : case 857: /* DefineStmt: CREATE TEXT_P SEARCH DICTIONARY any_name definition */
37901 : #line 6445 "gram.y"
37902 : {
37903 : DefineStmt *n = makeNode(DefineStmt);
37904 :
37905 : n->kind = OBJECT_TSDICTIONARY;
37906 : n->args = NIL;
37907 : n->defnames = (yyvsp[-1].list);
37908 : n->definition = (yyvsp[0].list);
37909 : (yyval.node) = (Node *) n;
37910 : }
37911 : #line 37912 "gram.c"
37912 2890 : break;
37913 :
37914 138 : case 858: /* DefineStmt: CREATE TEXT_P SEARCH TEMPLATE any_name definition */
37915 : #line 6455 "gram.y"
37916 : {
37917 : DefineStmt *n = makeNode(DefineStmt);
37918 :
37919 : n->kind = OBJECT_TSTEMPLATE;
37920 : n->args = NIL;
37921 : n->defnames = (yyvsp[-1].list);
37922 : n->definition = (yyvsp[0].list);
37923 : (yyval.node) = (Node *) n;
37924 : }
37925 : #line 37926 "gram.c"
37926 138 : break;
37927 :
37928 2822 : case 859: /* DefineStmt: CREATE TEXT_P SEARCH CONFIGURATION any_name definition */
37929 : #line 6465 "gram.y"
37930 : {
37931 : DefineStmt *n = makeNode(DefineStmt);
37932 :
37933 : n->kind = OBJECT_TSCONFIGURATION;
37934 : n->args = NIL;
37935 : n->defnames = (yyvsp[-1].list);
37936 : n->definition = (yyvsp[0].list);
37937 : (yyval.node) = (Node *) n;
37938 : }
37939 : #line 37940 "gram.c"
37940 2822 : break;
37941 :
37942 298 : case 860: /* DefineStmt: CREATE COLLATION any_name definition */
37943 : #line 6475 "gram.y"
37944 : {
37945 : DefineStmt *n = makeNode(DefineStmt);
37946 :
37947 : n->kind = OBJECT_COLLATION;
37948 : n->args = NIL;
37949 : n->defnames = (yyvsp[-1].list);
37950 : n->definition = (yyvsp[0].list);
37951 : (yyval.node) = (Node *) n;
37952 : }
37953 : #line 37954 "gram.c"
37954 298 : break;
37955 :
37956 18 : case 861: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name definition */
37957 : #line 6485 "gram.y"
37958 : {
37959 : DefineStmt *n = makeNode(DefineStmt);
37960 :
37961 : n->kind = OBJECT_COLLATION;
37962 : n->args = NIL;
37963 : n->defnames = (yyvsp[-1].list);
37964 : n->definition = (yyvsp[0].list);
37965 : n->if_not_exists = true;
37966 : (yyval.node) = (Node *) n;
37967 : }
37968 : #line 37969 "gram.c"
37969 18 : break;
37970 :
37971 54 : case 862: /* DefineStmt: CREATE COLLATION any_name FROM any_name */
37972 : #line 6496 "gram.y"
37973 : {
37974 : DefineStmt *n = makeNode(DefineStmt);
37975 :
37976 : n->kind = OBJECT_COLLATION;
37977 : n->args = NIL;
37978 : n->defnames = (yyvsp[-2].list);
37979 : n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0])));
37980 : (yyval.node) = (Node *) n;
37981 : }
37982 : #line 37983 "gram.c"
37983 54 : break;
37984 :
37985 0 : case 863: /* DefineStmt: CREATE COLLATION IF_P NOT EXISTS any_name FROM any_name */
37986 : #line 6506 "gram.y"
37987 : {
37988 : DefineStmt *n = makeNode(DefineStmt);
37989 :
37990 : n->kind = OBJECT_COLLATION;
37991 : n->args = NIL;
37992 : n->defnames = (yyvsp[-2].list);
37993 : n->definition = list_make1(makeDefElem("from", (Node *) (yyvsp[0].list), (yylsp[0])));
37994 : n->if_not_exists = true;
37995 : (yyval.node) = (Node *) n;
37996 : }
37997 : #line 37998 "gram.c"
37998 0 : break;
37999 :
38000 9852 : case 864: /* definition: '(' def_list ')' */
38001 : #line 6518 "gram.y"
38002 : { (yyval.list) = (yyvsp[-1].list); }
38003 : #line 38004 "gram.c"
38004 9852 : break;
38005 :
38006 9852 : case 865: /* def_list: def_elem */
38007 : #line 6521 "gram.y"
38008 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
38009 : #line 38010 "gram.c"
38010 9852 : break;
38011 :
38012 14934 : case 866: /* def_list: def_list ',' def_elem */
38013 : #line 6522 "gram.y"
38014 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
38015 : #line 38016 "gram.c"
38016 14934 : break;
38017 :
38018 24428 : case 867: /* def_elem: ColLabel '=' def_arg */
38019 : #line 6526 "gram.y"
38020 : {
38021 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
38022 : }
38023 : #line 38024 "gram.c"
38024 24428 : break;
38025 :
38026 358 : case 868: /* def_elem: ColLabel */
38027 : #line 6530 "gram.y"
38028 : {
38029 : (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0]));
38030 : }
38031 : #line 38032 "gram.c"
38032 358 : break;
38033 :
38034 19826 : case 869: /* def_arg: func_type */
38035 : #line 6536 "gram.y"
38036 : { (yyval.node) = (Node *) (yyvsp[0].typnam); }
38037 : #line 38038 "gram.c"
38038 19826 : break;
38039 :
38040 3988 : case 870: /* def_arg: reserved_keyword */
38041 : #line 6537 "gram.y"
38042 : { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
38043 : #line 38044 "gram.c"
38044 3988 : break;
38045 :
38046 1186 : case 871: /* def_arg: qual_all_Op */
38047 : #line 6538 "gram.y"
38048 : { (yyval.node) = (Node *) (yyvsp[0].list); }
38049 : #line 38050 "gram.c"
38050 1186 : break;
38051 :
38052 1304 : case 872: /* def_arg: NumericOnly */
38053 : #line 6539 "gram.y"
38054 : { (yyval.node) = (Node *) (yyvsp[0].node); }
38055 : #line 38056 "gram.c"
38056 1304 : break;
38057 :
38058 2048 : case 873: /* def_arg: Sconst */
38059 : #line 6540 "gram.y"
38060 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
38061 : #line 38062 "gram.c"
38062 2048 : break;
38063 :
38064 164 : case 874: /* def_arg: NONE */
38065 : #line 6541 "gram.y"
38066 : { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
38067 : #line 38068 "gram.c"
38068 164 : break;
38069 :
38070 362 : case 875: /* old_aggr_definition: '(' old_aggr_list ')' */
38071 : #line 6544 "gram.y"
38072 : { (yyval.list) = (yyvsp[-1].list); }
38073 : #line 38074 "gram.c"
38074 362 : break;
38075 :
38076 362 : case 876: /* old_aggr_list: old_aggr_elem */
38077 : #line 6547 "gram.y"
38078 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
38079 : #line 38080 "gram.c"
38080 362 : break;
38081 :
38082 1292 : case 877: /* old_aggr_list: old_aggr_list ',' old_aggr_elem */
38083 : #line 6548 "gram.y"
38084 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
38085 : #line 38086 "gram.c"
38086 1292 : break;
38087 :
38088 1654 : case 878: /* old_aggr_elem: IDENT '=' def_arg */
38089 : #line 6557 "gram.y"
38090 : {
38091 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2]));
38092 : }
38093 : #line 38094 "gram.c"
38094 1654 : break;
38095 :
38096 200 : case 879: /* opt_enum_val_list: enum_val_list */
38097 : #line 6563 "gram.y"
38098 : { (yyval.list) = (yyvsp[0].list); }
38099 : #line 38100 "gram.c"
38100 200 : break;
38101 :
38102 8 : case 880: /* opt_enum_val_list: %empty */
38103 : #line 6564 "gram.y"
38104 : { (yyval.list) = NIL; }
38105 : #line 38106 "gram.c"
38106 8 : break;
38107 :
38108 200 : case 881: /* enum_val_list: Sconst */
38109 : #line 6568 "gram.y"
38110 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
38111 : #line 38112 "gram.c"
38112 200 : break;
38113 :
38114 10496 : case 882: /* enum_val_list: enum_val_list ',' Sconst */
38115 : #line 6570 "gram.y"
38116 : { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
38117 : #line 38118 "gram.c"
38118 10496 : break;
38119 :
38120 154 : case 883: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst */
38121 : #line 6581 "gram.y"
38122 : {
38123 : AlterEnumStmt *n = makeNode(AlterEnumStmt);
38124 :
38125 : n->typeName = (yyvsp[-4].list);
38126 : n->oldVal = NULL;
38127 : n->newVal = (yyvsp[0].str);
38128 : n->newValNeighbor = NULL;
38129 : n->newValIsAfter = true;
38130 : n->skipIfNewValExists = (yyvsp[-1].boolean);
38131 : (yyval.node) = (Node *) n;
38132 : }
38133 : #line 38134 "gram.c"
38134 154 : break;
38135 :
38136 196 : case 884: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst BEFORE Sconst */
38137 : #line 6593 "gram.y"
38138 : {
38139 : AlterEnumStmt *n = makeNode(AlterEnumStmt);
38140 :
38141 : n->typeName = (yyvsp[-6].list);
38142 : n->oldVal = NULL;
38143 : n->newVal = (yyvsp[-2].str);
38144 : n->newValNeighbor = (yyvsp[0].str);
38145 : n->newValIsAfter = false;
38146 : n->skipIfNewValExists = (yyvsp[-3].boolean);
38147 : (yyval.node) = (Node *) n;
38148 : }
38149 : #line 38150 "gram.c"
38150 196 : break;
38151 :
38152 22 : case 885: /* AlterEnumStmt: ALTER TYPE_P any_name ADD_P VALUE_P opt_if_not_exists Sconst AFTER Sconst */
38153 : #line 6605 "gram.y"
38154 : {
38155 : AlterEnumStmt *n = makeNode(AlterEnumStmt);
38156 :
38157 : n->typeName = (yyvsp[-6].list);
38158 : n->oldVal = NULL;
38159 : n->newVal = (yyvsp[-2].str);
38160 : n->newValNeighbor = (yyvsp[0].str);
38161 : n->newValIsAfter = true;
38162 : n->skipIfNewValExists = (yyvsp[-3].boolean);
38163 : (yyval.node) = (Node *) n;
38164 : }
38165 : #line 38166 "gram.c"
38166 22 : break;
38167 :
38168 24 : case 886: /* AlterEnumStmt: ALTER TYPE_P any_name RENAME VALUE_P Sconst TO Sconst */
38169 : #line 6617 "gram.y"
38170 : {
38171 : AlterEnumStmt *n = makeNode(AlterEnumStmt);
38172 :
38173 : n->typeName = (yyvsp[-5].list);
38174 : n->oldVal = (yyvsp[-2].str);
38175 : n->newVal = (yyvsp[0].str);
38176 : n->newValNeighbor = NULL;
38177 : n->newValIsAfter = false;
38178 : n->skipIfNewValExists = false;
38179 : (yyval.node) = (Node *) n;
38180 : }
38181 : #line 38182 "gram.c"
38182 24 : break;
38183 :
38184 0 : case 887: /* AlterEnumStmt: ALTER TYPE_P any_name DROP VALUE_P Sconst */
38185 : #line 6629 "gram.y"
38186 : {
38187 : /*
38188 : * The following problems must be solved before this can be
38189 : * implemented:
38190 : *
38191 : * - There must be no instance of the target value in
38192 : * any table.
38193 : *
38194 : * - The value must not appear in any catalog metadata,
38195 : * such as stored view expressions or column defaults.
38196 : *
38197 : * - The value must not appear in any non-leaf page of a
38198 : * btree (and similar issues with other index types).
38199 : * This is problematic because a value could persist
38200 : * there long after it's gone from user-visible data.
38201 : *
38202 : * - Concurrent sessions must not be able to insert the
38203 : * value while the preceding conditions are being checked.
38204 : *
38205 : * - Possibly more...
38206 : */
38207 : ereport(ERROR,
38208 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
38209 : errmsg("dropping an enum value is not implemented"),
38210 : parser_errposition((yylsp[-2]))));
38211 : }
38212 : #line 38213 "gram.c"
38213 : break;
38214 :
38215 12 : case 888: /* opt_if_not_exists: IF_P NOT EXISTS */
38216 : #line 6657 "gram.y"
38217 : { (yyval.boolean) = true; }
38218 : #line 38219 "gram.c"
38219 12 : break;
38220 :
38221 360 : case 889: /* opt_if_not_exists: %empty */
38222 : #line 6658 "gram.y"
38223 : { (yyval.boolean) = false; }
38224 : #line 38225 "gram.c"
38225 360 : break;
38226 :
38227 394 : case 890: /* CreateOpClassStmt: CREATE OPERATOR CLASS any_name opt_default FOR TYPE_P Typename USING name opt_opfamily AS opclass_item_list */
38228 : #line 6676 "gram.y"
38229 : {
38230 : CreateOpClassStmt *n = makeNode(CreateOpClassStmt);
38231 :
38232 : n->opclassname = (yyvsp[-9].list);
38233 : n->isDefault = (yyvsp[-8].boolean);
38234 : n->datatype = (yyvsp[-5].typnam);
38235 : n->amname = (yyvsp[-3].str);
38236 : n->opfamilyname = (yyvsp[-2].list);
38237 : n->items = (yyvsp[0].list);
38238 : (yyval.node) = (Node *) n;
38239 : }
38240 : #line 38241 "gram.c"
38241 394 : break;
38242 :
38243 908 : case 891: /* opclass_item_list: opclass_item */
38244 : #line 6690 "gram.y"
38245 : { (yyval.list) = list_make1((yyvsp[0].node)); }
38246 : #line 38247 "gram.c"
38247 908 : break;
38248 :
38249 3088 : case 892: /* opclass_item_list: opclass_item_list ',' opclass_item */
38250 : #line 6691 "gram.y"
38251 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
38252 : #line 38253 "gram.c"
38253 3088 : break;
38254 :
38255 1092 : case 893: /* opclass_item: OPERATOR Iconst any_operator opclass_purpose */
38256 : #line 6696 "gram.y"
38257 : {
38258 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38259 : ObjectWithArgs *owa = makeNode(ObjectWithArgs);
38260 :
38261 : owa->objname = (yyvsp[-1].list);
38262 : owa->objargs = NIL;
38263 : n->itemtype = OPCLASS_ITEM_OPERATOR;
38264 : n->name = owa;
38265 : n->number = (yyvsp[-2].ival);
38266 : n->order_family = (yyvsp[0].list);
38267 : (yyval.node) = (Node *) n;
38268 : }
38269 : #line 38270 "gram.c"
38270 1092 : break;
38271 :
38272 1066 : case 894: /* opclass_item: OPERATOR Iconst operator_with_argtypes opclass_purpose */
38273 : #line 6709 "gram.y"
38274 : {
38275 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38276 :
38277 : n->itemtype = OPCLASS_ITEM_OPERATOR;
38278 : n->name = (yyvsp[-1].objwithargs);
38279 : n->number = (yyvsp[-2].ival);
38280 : n->order_family = (yyvsp[0].list);
38281 : (yyval.node) = (Node *) n;
38282 : }
38283 : #line 38284 "gram.c"
38284 1066 : break;
38285 :
38286 1386 : case 895: /* opclass_item: FUNCTION Iconst function_with_argtypes */
38287 : #line 6719 "gram.y"
38288 : {
38289 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38290 :
38291 : n->itemtype = OPCLASS_ITEM_FUNCTION;
38292 : n->name = (yyvsp[0].objwithargs);
38293 : n->number = (yyvsp[-1].ival);
38294 : (yyval.node) = (Node *) n;
38295 : }
38296 : #line 38297 "gram.c"
38297 1386 : break;
38298 :
38299 252 : case 896: /* opclass_item: FUNCTION Iconst '(' type_list ')' function_with_argtypes */
38300 : #line 6728 "gram.y"
38301 : {
38302 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38303 :
38304 : n->itemtype = OPCLASS_ITEM_FUNCTION;
38305 : n->name = (yyvsp[0].objwithargs);
38306 : n->number = (yyvsp[-4].ival);
38307 : n->class_args = (yyvsp[-2].list);
38308 : (yyval.node) = (Node *) n;
38309 : }
38310 : #line 38311 "gram.c"
38311 252 : break;
38312 :
38313 200 : case 897: /* opclass_item: STORAGE Typename */
38314 : #line 6738 "gram.y"
38315 : {
38316 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38317 :
38318 : n->itemtype = OPCLASS_ITEM_STORAGETYPE;
38319 : n->storedtype = (yyvsp[0].typnam);
38320 : (yyval.node) = (Node *) n;
38321 : }
38322 : #line 38323 "gram.c"
38323 200 : break;
38324 :
38325 290 : case 898: /* opt_default: DEFAULT */
38326 : #line 6747 "gram.y"
38327 : { (yyval.boolean) = true; }
38328 : #line 38329 "gram.c"
38329 290 : break;
38330 :
38331 168 : case 899: /* opt_default: %empty */
38332 : #line 6748 "gram.y"
38333 : { (yyval.boolean) = false; }
38334 : #line 38335 "gram.c"
38335 168 : break;
38336 :
38337 50 : case 900: /* opt_opfamily: FAMILY any_name */
38338 : #line 6751 "gram.y"
38339 : { (yyval.list) = (yyvsp[0].list); }
38340 : #line 38341 "gram.c"
38341 50 : break;
38342 :
38343 344 : case 901: /* opt_opfamily: %empty */
38344 : #line 6752 "gram.y"
38345 : { (yyval.list) = NIL; }
38346 : #line 38347 "gram.c"
38347 344 : break;
38348 :
38349 0 : case 902: /* opclass_purpose: FOR SEARCH */
38350 : #line 6755 "gram.y"
38351 : { (yyval.list) = NIL; }
38352 : #line 38353 "gram.c"
38353 0 : break;
38354 :
38355 72 : case 903: /* opclass_purpose: FOR ORDER BY any_name */
38356 : #line 6756 "gram.y"
38357 : { (yyval.list) = (yyvsp[0].list); }
38358 : #line 38359 "gram.c"
38359 72 : break;
38360 :
38361 2086 : case 904: /* opclass_purpose: %empty */
38362 : #line 6757 "gram.y"
38363 : { (yyval.list) = NIL; }
38364 : #line 38365 "gram.c"
38365 2086 : break;
38366 :
38367 162 : case 905: /* CreateOpFamilyStmt: CREATE OPERATOR FAMILY any_name USING name */
38368 : #line 6763 "gram.y"
38369 : {
38370 : CreateOpFamilyStmt *n = makeNode(CreateOpFamilyStmt);
38371 :
38372 : n->opfamilyname = (yyvsp[-2].list);
38373 : n->amname = (yyvsp[0].str);
38374 : (yyval.node) = (Node *) n;
38375 : }
38376 : #line 38377 "gram.c"
38377 162 : break;
38378 :
38379 514 : case 906: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING name ADD_P opclass_item_list */
38380 : #line 6774 "gram.y"
38381 : {
38382 : AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt);
38383 :
38384 : n->opfamilyname = (yyvsp[-4].list);
38385 : n->amname = (yyvsp[-2].str);
38386 : n->isDrop = false;
38387 : n->items = (yyvsp[0].list);
38388 : (yyval.node) = (Node *) n;
38389 : }
38390 : #line 38391 "gram.c"
38391 514 : break;
38392 :
38393 64 : case 907: /* AlterOpFamilyStmt: ALTER OPERATOR FAMILY any_name USING name DROP opclass_drop_list */
38394 : #line 6784 "gram.y"
38395 : {
38396 : AlterOpFamilyStmt *n = makeNode(AlterOpFamilyStmt);
38397 :
38398 : n->opfamilyname = (yyvsp[-4].list);
38399 : n->amname = (yyvsp[-2].str);
38400 : n->isDrop = true;
38401 : n->items = (yyvsp[0].list);
38402 : (yyval.node) = (Node *) n;
38403 : }
38404 : #line 38405 "gram.c"
38405 64 : break;
38406 :
38407 64 : case 908: /* opclass_drop_list: opclass_drop */
38408 : #line 6796 "gram.y"
38409 : { (yyval.list) = list_make1((yyvsp[0].node)); }
38410 : #line 38411 "gram.c"
38411 64 : break;
38412 :
38413 30 : case 909: /* opclass_drop_list: opclass_drop_list ',' opclass_drop */
38414 : #line 6797 "gram.y"
38415 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
38416 : #line 38417 "gram.c"
38417 30 : break;
38418 :
38419 56 : case 910: /* opclass_drop: OPERATOR Iconst '(' type_list ')' */
38420 : #line 6802 "gram.y"
38421 : {
38422 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38423 :
38424 : n->itemtype = OPCLASS_ITEM_OPERATOR;
38425 : n->number = (yyvsp[-3].ival);
38426 : n->class_args = (yyvsp[-1].list);
38427 : (yyval.node) = (Node *) n;
38428 : }
38429 : #line 38430 "gram.c"
38430 56 : break;
38431 :
38432 38 : case 911: /* opclass_drop: FUNCTION Iconst '(' type_list ')' */
38433 : #line 6811 "gram.y"
38434 : {
38435 : CreateOpClassItem *n = makeNode(CreateOpClassItem);
38436 :
38437 : n->itemtype = OPCLASS_ITEM_FUNCTION;
38438 : n->number = (yyvsp[-3].ival);
38439 : n->class_args = (yyvsp[-1].list);
38440 : (yyval.node) = (Node *) n;
38441 : }
38442 : #line 38443 "gram.c"
38443 38 : break;
38444 :
38445 38 : case 912: /* DropOpClassStmt: DROP OPERATOR CLASS any_name USING name opt_drop_behavior */
38446 : #line 6824 "gram.y"
38447 : {
38448 : DropStmt *n = makeNode(DropStmt);
38449 :
38450 : n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list)));
38451 : n->removeType = OBJECT_OPCLASS;
38452 : n->behavior = (yyvsp[0].dbehavior);
38453 : n->missing_ok = false;
38454 : n->concurrent = false;
38455 : (yyval.node) = (Node *) n;
38456 : }
38457 : #line 38458 "gram.c"
38458 38 : break;
38459 :
38460 18 : case 913: /* DropOpClassStmt: DROP OPERATOR CLASS IF_P EXISTS any_name USING name opt_drop_behavior */
38461 : #line 6835 "gram.y"
38462 : {
38463 : DropStmt *n = makeNode(DropStmt);
38464 :
38465 : n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list)));
38466 : n->removeType = OBJECT_OPCLASS;
38467 : n->behavior = (yyvsp[0].dbehavior);
38468 : n->missing_ok = true;
38469 : n->concurrent = false;
38470 : (yyval.node) = (Node *) n;
38471 : }
38472 : #line 38473 "gram.c"
38473 18 : break;
38474 :
38475 110 : case 914: /* DropOpFamilyStmt: DROP OPERATOR FAMILY any_name USING name opt_drop_behavior */
38476 : #line 6849 "gram.y"
38477 : {
38478 : DropStmt *n = makeNode(DropStmt);
38479 :
38480 : n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list)));
38481 : n->removeType = OBJECT_OPFAMILY;
38482 : n->behavior = (yyvsp[0].dbehavior);
38483 : n->missing_ok = false;
38484 : n->concurrent = false;
38485 : (yyval.node) = (Node *) n;
38486 : }
38487 : #line 38488 "gram.c"
38488 110 : break;
38489 :
38490 18 : case 915: /* DropOpFamilyStmt: DROP OPERATOR FAMILY IF_P EXISTS any_name USING name opt_drop_behavior */
38491 : #line 6860 "gram.y"
38492 : {
38493 : DropStmt *n = makeNode(DropStmt);
38494 :
38495 : n->objects = list_make1(lcons(makeString((yyvsp[-1].str)), (yyvsp[-3].list)));
38496 : n->removeType = OBJECT_OPFAMILY;
38497 : n->behavior = (yyvsp[0].dbehavior);
38498 : n->missing_ok = true;
38499 : n->concurrent = false;
38500 : (yyval.node) = (Node *) n;
38501 : }
38502 : #line 38503 "gram.c"
38503 18 : break;
38504 :
38505 152 : case 916: /* DropOwnedStmt: DROP OWNED BY role_list opt_drop_behavior */
38506 : #line 6883 "gram.y"
38507 : {
38508 : DropOwnedStmt *n = makeNode(DropOwnedStmt);
38509 :
38510 : n->roles = (yyvsp[-1].list);
38511 : n->behavior = (yyvsp[0].dbehavior);
38512 : (yyval.node) = (Node *) n;
38513 : }
38514 : #line 38515 "gram.c"
38515 152 : break;
38516 :
38517 52 : case 917: /* ReassignOwnedStmt: REASSIGN OWNED BY role_list TO RoleSpec */
38518 : #line 6894 "gram.y"
38519 : {
38520 : ReassignOwnedStmt *n = makeNode(ReassignOwnedStmt);
38521 :
38522 : n->roles = (yyvsp[-2].list);
38523 : n->newrole = (yyvsp[0].rolespec);
38524 : (yyval.node) = (Node *) n;
38525 : }
38526 : #line 38527 "gram.c"
38527 52 : break;
38528 :
38529 1322 : case 918: /* DropStmt: DROP object_type_any_name IF_P EXISTS any_name_list opt_drop_behavior */
38530 : #line 6913 "gram.y"
38531 : {
38532 : DropStmt *n = makeNode(DropStmt);
38533 :
38534 : n->removeType = (yyvsp[-4].objtype);
38535 : n->missing_ok = true;
38536 : n->objects = (yyvsp[-1].list);
38537 : n->behavior = (yyvsp[0].dbehavior);
38538 : n->concurrent = false;
38539 : (yyval.node) = (Node *) n;
38540 : }
38541 : #line 38542 "gram.c"
38542 1322 : break;
38543 :
38544 15960 : case 919: /* DropStmt: DROP object_type_any_name any_name_list opt_drop_behavior */
38545 : #line 6924 "gram.y"
38546 : {
38547 : DropStmt *n = makeNode(DropStmt);
38548 :
38549 : n->removeType = (yyvsp[-2].objtype);
38550 : n->missing_ok = false;
38551 : n->objects = (yyvsp[-1].list);
38552 : n->behavior = (yyvsp[0].dbehavior);
38553 : n->concurrent = false;
38554 : (yyval.node) = (Node *) n;
38555 : }
38556 : #line 38557 "gram.c"
38557 15960 : break;
38558 :
38559 78 : case 920: /* DropStmt: DROP drop_type_name IF_P EXISTS name_list opt_drop_behavior */
38560 : #line 6935 "gram.y"
38561 : {
38562 : DropStmt *n = makeNode(DropStmt);
38563 :
38564 : n->removeType = (yyvsp[-4].objtype);
38565 : n->missing_ok = true;
38566 : n->objects = (yyvsp[-1].list);
38567 : n->behavior = (yyvsp[0].dbehavior);
38568 : n->concurrent = false;
38569 : (yyval.node) = (Node *) n;
38570 : }
38571 : #line 38572 "gram.c"
38572 78 : break;
38573 :
38574 1410 : case 921: /* DropStmt: DROP drop_type_name name_list opt_drop_behavior */
38575 : #line 6946 "gram.y"
38576 : {
38577 : DropStmt *n = makeNode(DropStmt);
38578 :
38579 : n->removeType = (yyvsp[-2].objtype);
38580 : n->missing_ok = false;
38581 : n->objects = (yyvsp[-1].list);
38582 : n->behavior = (yyvsp[0].dbehavior);
38583 : n->concurrent = false;
38584 : (yyval.node) = (Node *) n;
38585 : }
38586 : #line 38587 "gram.c"
38587 1410 : break;
38588 :
38589 1130 : case 922: /* DropStmt: DROP object_type_name_on_any_name name ON any_name opt_drop_behavior */
38590 : #line 6957 "gram.y"
38591 : {
38592 : DropStmt *n = makeNode(DropStmt);
38593 :
38594 : n->removeType = (yyvsp[-4].objtype);
38595 : n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str))));
38596 : n->behavior = (yyvsp[0].dbehavior);
38597 : n->missing_ok = false;
38598 : n->concurrent = false;
38599 : (yyval.node) = (Node *) n;
38600 : }
38601 : #line 38602 "gram.c"
38602 1130 : break;
38603 :
38604 48 : case 923: /* DropStmt: DROP object_type_name_on_any_name IF_P EXISTS name ON any_name opt_drop_behavior */
38605 : #line 6968 "gram.y"
38606 : {
38607 : DropStmt *n = makeNode(DropStmt);
38608 :
38609 : n->removeType = (yyvsp[-6].objtype);
38610 : n->objects = list_make1(lappend((yyvsp[-1].list), makeString((yyvsp[-3].str))));
38611 : n->behavior = (yyvsp[0].dbehavior);
38612 : n->missing_ok = true;
38613 : n->concurrent = false;
38614 : (yyval.node) = (Node *) n;
38615 : }
38616 : #line 38617 "gram.c"
38617 48 : break;
38618 :
38619 560 : case 924: /* DropStmt: DROP TYPE_P type_name_list opt_drop_behavior */
38620 : #line 6979 "gram.y"
38621 : {
38622 : DropStmt *n = makeNode(DropStmt);
38623 :
38624 : n->removeType = OBJECT_TYPE;
38625 : n->missing_ok = false;
38626 : n->objects = (yyvsp[-1].list);
38627 : n->behavior = (yyvsp[0].dbehavior);
38628 : n->concurrent = false;
38629 : (yyval.node) = (Node *) n;
38630 : }
38631 : #line 38632 "gram.c"
38632 560 : break;
38633 :
38634 26 : case 925: /* DropStmt: DROP TYPE_P IF_P EXISTS type_name_list opt_drop_behavior */
38635 : #line 6990 "gram.y"
38636 : {
38637 : DropStmt *n = makeNode(DropStmt);
38638 :
38639 : n->removeType = OBJECT_TYPE;
38640 : n->missing_ok = true;
38641 : n->objects = (yyvsp[-1].list);
38642 : n->behavior = (yyvsp[0].dbehavior);
38643 : n->concurrent = false;
38644 : (yyval.node) = (Node *) n;
38645 : }
38646 : #line 38647 "gram.c"
38647 26 : break;
38648 :
38649 464 : case 926: /* DropStmt: DROP DOMAIN_P type_name_list opt_drop_behavior */
38650 : #line 7001 "gram.y"
38651 : {
38652 : DropStmt *n = makeNode(DropStmt);
38653 :
38654 : n->removeType = OBJECT_DOMAIN;
38655 : n->missing_ok = false;
38656 : n->objects = (yyvsp[-1].list);
38657 : n->behavior = (yyvsp[0].dbehavior);
38658 : n->concurrent = false;
38659 : (yyval.node) = (Node *) n;
38660 : }
38661 : #line 38662 "gram.c"
38662 464 : break;
38663 :
38664 18 : case 927: /* DropStmt: DROP DOMAIN_P IF_P EXISTS type_name_list opt_drop_behavior */
38665 : #line 7012 "gram.y"
38666 : {
38667 : DropStmt *n = makeNode(DropStmt);
38668 :
38669 : n->removeType = OBJECT_DOMAIN;
38670 : n->missing_ok = true;
38671 : n->objects = (yyvsp[-1].list);
38672 : n->behavior = (yyvsp[0].dbehavior);
38673 : n->concurrent = false;
38674 : (yyval.node) = (Node *) n;
38675 : }
38676 : #line 38677 "gram.c"
38677 18 : break;
38678 :
38679 142 : case 928: /* DropStmt: DROP INDEX CONCURRENTLY any_name_list opt_drop_behavior */
38680 : #line 7023 "gram.y"
38681 : {
38682 : DropStmt *n = makeNode(DropStmt);
38683 :
38684 : n->removeType = OBJECT_INDEX;
38685 : n->missing_ok = false;
38686 : n->objects = (yyvsp[-1].list);
38687 : n->behavior = (yyvsp[0].dbehavior);
38688 : n->concurrent = true;
38689 : (yyval.node) = (Node *) n;
38690 : }
38691 : #line 38692 "gram.c"
38692 142 : break;
38693 :
38694 12 : case 929: /* DropStmt: DROP INDEX CONCURRENTLY IF_P EXISTS any_name_list opt_drop_behavior */
38695 : #line 7034 "gram.y"
38696 : {
38697 : DropStmt *n = makeNode(DropStmt);
38698 :
38699 : n->removeType = OBJECT_INDEX;
38700 : n->missing_ok = true;
38701 : n->objects = (yyvsp[-1].list);
38702 : n->behavior = (yyvsp[0].dbehavior);
38703 : n->concurrent = true;
38704 : (yyval.node) = (Node *) n;
38705 : }
38706 : #line 38707 "gram.c"
38707 12 : break;
38708 :
38709 14908 : case 930: /* object_type_any_name: TABLE */
38710 : #line 7048 "gram.y"
38711 : { (yyval.objtype) = OBJECT_TABLE; }
38712 : #line 38713 "gram.c"
38713 14908 : break;
38714 :
38715 192 : case 931: /* object_type_any_name: SEQUENCE */
38716 : #line 7049 "gram.y"
38717 : { (yyval.objtype) = OBJECT_SEQUENCE; }
38718 : #line 38719 "gram.c"
38719 192 : break;
38720 :
38721 1012 : case 932: /* object_type_any_name: VIEW */
38722 : #line 7050 "gram.y"
38723 : { (yyval.objtype) = OBJECT_VIEW; }
38724 : #line 38725 "gram.c"
38725 1012 : break;
38726 :
38727 130 : case 933: /* object_type_any_name: MATERIALIZED VIEW */
38728 : #line 7051 "gram.y"
38729 : { (yyval.objtype) = OBJECT_MATVIEW; }
38730 : #line 38731 "gram.c"
38731 130 : break;
38732 :
38733 784 : case 934: /* object_type_any_name: INDEX */
38734 : #line 7052 "gram.y"
38735 : { (yyval.objtype) = OBJECT_INDEX; }
38736 : #line 38737 "gram.c"
38737 784 : break;
38738 :
38739 190 : case 935: /* object_type_any_name: FOREIGN TABLE */
38740 : #line 7053 "gram.y"
38741 : { (yyval.objtype) = OBJECT_FOREIGN_TABLE; }
38742 : #line 38743 "gram.c"
38743 190 : break;
38744 :
38745 96 : case 936: /* object_type_any_name: COLLATION */
38746 : #line 7054 "gram.y"
38747 : { (yyval.objtype) = OBJECT_COLLATION; }
38748 : #line 38749 "gram.c"
38749 96 : break;
38750 :
38751 56 : case 937: /* object_type_any_name: CONVERSION_P */
38752 : #line 7055 "gram.y"
38753 : { (yyval.objtype) = OBJECT_CONVERSION; }
38754 : #line 38755 "gram.c"
38755 56 : break;
38756 :
38757 192 : case 938: /* object_type_any_name: STATISTICS */
38758 : #line 7056 "gram.y"
38759 : { (yyval.objtype) = OBJECT_STATISTIC_EXT; }
38760 : #line 38761 "gram.c"
38761 192 : break;
38762 :
38763 20 : case 939: /* object_type_any_name: TEXT_P SEARCH PARSER */
38764 : #line 7057 "gram.y"
38765 : { (yyval.objtype) = OBJECT_TSPARSER; }
38766 : #line 38767 "gram.c"
38767 20 : break;
38768 :
38769 2756 : case 940: /* object_type_any_name: TEXT_P SEARCH DICTIONARY */
38770 : #line 7058 "gram.y"
38771 : { (yyval.objtype) = OBJECT_TSDICTIONARY; }
38772 : #line 38773 "gram.c"
38773 2756 : break;
38774 :
38775 114 : case 941: /* object_type_any_name: TEXT_P SEARCH TEMPLATE */
38776 : #line 7059 "gram.y"
38777 : { (yyval.objtype) = OBJECT_TSTEMPLATE; }
38778 : #line 38779 "gram.c"
38779 114 : break;
38780 :
38781 2760 : case 942: /* object_type_any_name: TEXT_P SEARCH CONFIGURATION */
38782 : #line 7060 "gram.y"
38783 : { (yyval.objtype) = OBJECT_TSCONFIGURATION; }
38784 : #line 38785 "gram.c"
38785 2760 : break;
38786 :
38787 230 : case 943: /* object_type_name: drop_type_name */
38788 : #line 7070 "gram.y"
38789 : { (yyval.objtype) = (yyvsp[0].objtype); }
38790 : #line 38791 "gram.c"
38791 230 : break;
38792 :
38793 234 : case 944: /* object_type_name: DATABASE */
38794 : #line 7071 "gram.y"
38795 : { (yyval.objtype) = OBJECT_DATABASE; }
38796 : #line 38797 "gram.c"
38797 234 : break;
38798 :
38799 52 : case 945: /* object_type_name: ROLE */
38800 : #line 7072 "gram.y"
38801 : { (yyval.objtype) = OBJECT_ROLE; }
38802 : #line 38803 "gram.c"
38803 52 : break;
38804 :
38805 10 : case 946: /* object_type_name: SUBSCRIPTION */
38806 : #line 7073 "gram.y"
38807 : { (yyval.objtype) = OBJECT_SUBSCRIPTION; }
38808 : #line 38809 "gram.c"
38809 10 : break;
38810 :
38811 0 : case 947: /* object_type_name: TABLESPACE */
38812 : #line 7074 "gram.y"
38813 : { (yyval.objtype) = OBJECT_TABLESPACE; }
38814 : #line 38815 "gram.c"
38815 0 : break;
38816 :
38817 46 : case 948: /* drop_type_name: ACCESS METHOD */
38818 : #line 7078 "gram.y"
38819 : { (yyval.objtype) = OBJECT_ACCESS_METHOD; }
38820 : #line 38821 "gram.c"
38821 46 : break;
38822 :
38823 126 : case 949: /* drop_type_name: EVENT TRIGGER */
38824 : #line 7079 "gram.y"
38825 : { (yyval.objtype) = OBJECT_EVENT_TRIGGER; }
38826 : #line 38827 "gram.c"
38827 126 : break;
38828 :
38829 148 : case 950: /* drop_type_name: EXTENSION */
38830 : #line 7080 "gram.y"
38831 : { (yyval.objtype) = OBJECT_EXTENSION; }
38832 : #line 38833 "gram.c"
38833 148 : break;
38834 :
38835 154 : case 951: /* drop_type_name: FOREIGN DATA_P WRAPPER */
38836 : #line 7081 "gram.y"
38837 : { (yyval.objtype) = OBJECT_FDW; }
38838 : #line 38839 "gram.c"
38839 154 : break;
38840 :
38841 152 : case 952: /* drop_type_name: opt_procedural LANGUAGE */
38842 : #line 7082 "gram.y"
38843 : { (yyval.objtype) = OBJECT_LANGUAGE; }
38844 : #line 38845 "gram.c"
38845 152 : break;
38846 :
38847 380 : case 953: /* drop_type_name: PUBLICATION */
38848 : #line 7083 "gram.y"
38849 : { (yyval.objtype) = OBJECT_PUBLICATION; }
38850 : #line 38851 "gram.c"
38851 380 : break;
38852 :
38853 582 : case 954: /* drop_type_name: SCHEMA */
38854 : #line 7084 "gram.y"
38855 : { (yyval.objtype) = OBJECT_SCHEMA; }
38856 : #line 38857 "gram.c"
38857 582 : break;
38858 :
38859 130 : case 955: /* drop_type_name: SERVER */
38860 : #line 7085 "gram.y"
38861 : { (yyval.objtype) = OBJECT_FOREIGN_SERVER; }
38862 : #line 38863 "gram.c"
38863 130 : break;
38864 :
38865 164 : case 956: /* object_type_name_on_any_name: POLICY */
38866 : #line 7090 "gram.y"
38867 : { (yyval.objtype) = OBJECT_POLICY; }
38868 : #line 38869 "gram.c"
38869 164 : break;
38870 :
38871 268 : case 957: /* object_type_name_on_any_name: RULE */
38872 : #line 7091 "gram.y"
38873 : { (yyval.objtype) = OBJECT_RULE; }
38874 : #line 38875 "gram.c"
38875 268 : break;
38876 :
38877 798 : case 958: /* object_type_name_on_any_name: TRIGGER */
38878 : #line 7092 "gram.y"
38879 : { (yyval.objtype) = OBJECT_TRIGGER; }
38880 : #line 38881 "gram.c"
38881 798 : break;
38882 :
38883 26096 : case 959: /* any_name_list: any_name */
38884 : #line 7096 "gram.y"
38885 : { (yyval.list) = list_make1((yyvsp[0].list)); }
38886 : #line 38887 "gram.c"
38887 26096 : break;
38888 :
38889 4240 : case 960: /* any_name_list: any_name_list ',' any_name */
38890 : #line 7097 "gram.y"
38891 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
38892 : #line 38893 "gram.c"
38893 4240 : break;
38894 :
38895 66064 : case 961: /* any_name: ColId */
38896 : #line 7100 "gram.y"
38897 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
38898 : #line 38899 "gram.c"
38899 66064 : break;
38900 :
38901 9554 : case 962: /* any_name: ColId attrs */
38902 : #line 7101 "gram.y"
38903 : { (yyval.list) = lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)); }
38904 : #line 38905 "gram.c"
38905 9554 : break;
38906 :
38907 129874 : case 963: /* attrs: '.' attr_name */
38908 : #line 7105 "gram.y"
38909 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
38910 : #line 38911 "gram.c"
38911 129874 : break;
38912 :
38913 96 : case 964: /* attrs: attrs '.' attr_name */
38914 : #line 7107 "gram.y"
38915 : { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
38916 : #line 38917 "gram.c"
38917 96 : break;
38918 :
38919 1068 : case 965: /* type_name_list: Typename */
38920 : #line 7111 "gram.y"
38921 : { (yyval.list) = list_make1((yyvsp[0].typnam)); }
38922 : #line 38923 "gram.c"
38923 1068 : break;
38924 :
38925 96 : case 966: /* type_name_list: type_name_list ',' Typename */
38926 : #line 7112 "gram.y"
38927 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); }
38928 : #line 38929 "gram.c"
38929 96 : break;
38930 :
38931 2932 : case 967: /* TruncateStmt: TRUNCATE opt_table relation_expr_list opt_restart_seqs opt_drop_behavior */
38932 : #line 7124 "gram.y"
38933 : {
38934 : TruncateStmt *n = makeNode(TruncateStmt);
38935 :
38936 : n->relations = (yyvsp[-2].list);
38937 : n->restart_seqs = (yyvsp[-1].boolean);
38938 : n->behavior = (yyvsp[0].dbehavior);
38939 : (yyval.node) = (Node *) n;
38940 : }
38941 : #line 38942 "gram.c"
38942 2932 : break;
38943 :
38944 24 : case 968: /* opt_restart_seqs: CONTINUE_P IDENTITY_P */
38945 : #line 7135 "gram.y"
38946 : { (yyval.boolean) = false; }
38947 : #line 38948 "gram.c"
38948 24 : break;
38949 :
38950 22 : case 969: /* opt_restart_seqs: RESTART IDENTITY_P */
38951 : #line 7136 "gram.y"
38952 : { (yyval.boolean) = true; }
38953 : #line 38954 "gram.c"
38954 22 : break;
38955 :
38956 2886 : case 970: /* opt_restart_seqs: %empty */
38957 : #line 7137 "gram.y"
38958 : { (yyval.boolean) = false; }
38959 : #line 38960 "gram.c"
38960 2886 : break;
38961 :
38962 5786 : case 971: /* CommentStmt: COMMENT ON object_type_any_name any_name IS comment_text */
38963 : #line 7148 "gram.y"
38964 : {
38965 : CommentStmt *n = makeNode(CommentStmt);
38966 :
38967 : n->objtype = (yyvsp[-3].objtype);
38968 : n->object = (Node *) (yyvsp[-2].list);
38969 : n->comment = (yyvsp[0].str);
38970 : (yyval.node) = (Node *) n;
38971 : }
38972 : #line 38973 "gram.c"
38973 5786 : break;
38974 :
38975 118 : case 972: /* CommentStmt: COMMENT ON COLUMN any_name IS comment_text */
38976 : #line 7157 "gram.y"
38977 : {
38978 : CommentStmt *n = makeNode(CommentStmt);
38979 :
38980 : n->objtype = OBJECT_COLUMN;
38981 : n->object = (Node *) (yyvsp[-2].list);
38982 : n->comment = (yyvsp[0].str);
38983 : (yyval.node) = (Node *) n;
38984 : }
38985 : #line 38986 "gram.c"
38986 118 : break;
38987 :
38988 464 : case 973: /* CommentStmt: COMMENT ON object_type_name name IS comment_text */
38989 : #line 7166 "gram.y"
38990 : {
38991 : CommentStmt *n = makeNode(CommentStmt);
38992 :
38993 : n->objtype = (yyvsp[-3].objtype);
38994 : n->object = (Node *) makeString((yyvsp[-2].str));
38995 : n->comment = (yyvsp[0].str);
38996 : (yyval.node) = (Node *) n;
38997 : }
38998 : #line 38999 "gram.c"
38999 464 : break;
39000 :
39001 56 : case 974: /* CommentStmt: COMMENT ON TYPE_P Typename IS comment_text */
39002 : #line 7175 "gram.y"
39003 : {
39004 : CommentStmt *n = makeNode(CommentStmt);
39005 :
39006 : n->objtype = OBJECT_TYPE;
39007 : n->object = (Node *) (yyvsp[-2].typnam);
39008 : n->comment = (yyvsp[0].str);
39009 : (yyval.node) = (Node *) n;
39010 : }
39011 : #line 39012 "gram.c"
39012 56 : break;
39013 :
39014 8 : case 975: /* CommentStmt: COMMENT ON DOMAIN_P Typename IS comment_text */
39015 : #line 7184 "gram.y"
39016 : {
39017 : CommentStmt *n = makeNode(CommentStmt);
39018 :
39019 : n->objtype = OBJECT_DOMAIN;
39020 : n->object = (Node *) (yyvsp[-2].typnam);
39021 : n->comment = (yyvsp[0].str);
39022 : (yyval.node) = (Node *) n;
39023 : }
39024 : #line 39025 "gram.c"
39025 8 : break;
39026 :
39027 44 : case 976: /* CommentStmt: COMMENT ON AGGREGATE aggregate_with_argtypes IS comment_text */
39028 : #line 7193 "gram.y"
39029 : {
39030 : CommentStmt *n = makeNode(CommentStmt);
39031 :
39032 : n->objtype = OBJECT_AGGREGATE;
39033 : n->object = (Node *) (yyvsp[-2].objwithargs);
39034 : n->comment = (yyvsp[0].str);
39035 : (yyval.node) = (Node *) n;
39036 : }
39037 : #line 39038 "gram.c"
39038 44 : break;
39039 :
39040 170 : case 977: /* CommentStmt: COMMENT ON FUNCTION function_with_argtypes IS comment_text */
39041 : #line 7202 "gram.y"
39042 : {
39043 : CommentStmt *n = makeNode(CommentStmt);
39044 :
39045 : n->objtype = OBJECT_FUNCTION;
39046 : n->object = (Node *) (yyvsp[-2].objwithargs);
39047 : n->comment = (yyvsp[0].str);
39048 : (yyval.node) = (Node *) n;
39049 : }
39050 : #line 39051 "gram.c"
39051 170 : break;
39052 :
39053 18 : case 978: /* CommentStmt: COMMENT ON OPERATOR operator_with_argtypes IS comment_text */
39054 : #line 7211 "gram.y"
39055 : {
39056 : CommentStmt *n = makeNode(CommentStmt);
39057 :
39058 : n->objtype = OBJECT_OPERATOR;
39059 : n->object = (Node *) (yyvsp[-2].objwithargs);
39060 : n->comment = (yyvsp[0].str);
39061 : (yyval.node) = (Node *) n;
39062 : }
39063 : #line 39064 "gram.c"
39064 18 : break;
39065 :
39066 116 : case 979: /* CommentStmt: COMMENT ON CONSTRAINT name ON any_name IS comment_text */
39067 : #line 7220 "gram.y"
39068 : {
39069 : CommentStmt *n = makeNode(CommentStmt);
39070 :
39071 : n->objtype = OBJECT_TABCONSTRAINT;
39072 : n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str)));
39073 : n->comment = (yyvsp[0].str);
39074 : (yyval.node) = (Node *) n;
39075 : }
39076 : #line 39077 "gram.c"
39077 116 : break;
39078 :
39079 38 : case 980: /* CommentStmt: COMMENT ON CONSTRAINT name ON DOMAIN_P any_name IS comment_text */
39080 : #line 7229 "gram.y"
39081 : {
39082 : CommentStmt *n = makeNode(CommentStmt);
39083 :
39084 : n->objtype = OBJECT_DOMCONSTRAINT;
39085 : /*
39086 : * should use Typename not any_name in the production, but
39087 : * there's a shift/reduce conflict if we do that, so fix it
39088 : * up here.
39089 : */
39090 : n->object = (Node *) list_make2(makeTypeNameFromNameList((yyvsp[-2].list)), makeString((yyvsp[-5].str)));
39091 : n->comment = (yyvsp[0].str);
39092 : (yyval.node) = (Node *) n;
39093 : }
39094 : #line 39095 "gram.c"
39095 38 : break;
39096 :
39097 40 : case 981: /* CommentStmt: COMMENT ON object_type_name_on_any_name name ON any_name IS comment_text */
39098 : #line 7243 "gram.y"
39099 : {
39100 : CommentStmt *n = makeNode(CommentStmt);
39101 :
39102 : n->objtype = (yyvsp[-5].objtype);
39103 : n->object = (Node *) lappend((yyvsp[-2].list), makeString((yyvsp[-4].str)));
39104 : n->comment = (yyvsp[0].str);
39105 : (yyval.node) = (Node *) n;
39106 : }
39107 : #line 39108 "gram.c"
39108 40 : break;
39109 :
39110 0 : case 982: /* CommentStmt: COMMENT ON PROCEDURE function_with_argtypes IS comment_text */
39111 : #line 7252 "gram.y"
39112 : {
39113 : CommentStmt *n = makeNode(CommentStmt);
39114 :
39115 : n->objtype = OBJECT_PROCEDURE;
39116 : n->object = (Node *) (yyvsp[-2].objwithargs);
39117 : n->comment = (yyvsp[0].str);
39118 : (yyval.node) = (Node *) n;
39119 : }
39120 : #line 39121 "gram.c"
39121 0 : break;
39122 :
39123 0 : case 983: /* CommentStmt: COMMENT ON ROUTINE function_with_argtypes IS comment_text */
39124 : #line 7261 "gram.y"
39125 : {
39126 : CommentStmt *n = makeNode(CommentStmt);
39127 :
39128 : n->objtype = OBJECT_ROUTINE;
39129 : n->object = (Node *) (yyvsp[-2].objwithargs);
39130 : n->comment = (yyvsp[0].str);
39131 : (yyval.node) = (Node *) n;
39132 : }
39133 : #line 39134 "gram.c"
39134 0 : break;
39135 :
39136 14 : case 984: /* CommentStmt: COMMENT ON TRANSFORM FOR Typename LANGUAGE name IS comment_text */
39137 : #line 7270 "gram.y"
39138 : {
39139 : CommentStmt *n = makeNode(CommentStmt);
39140 :
39141 : n->objtype = OBJECT_TRANSFORM;
39142 : n->object = (Node *) list_make2((yyvsp[-4].typnam), makeString((yyvsp[-2].str)));
39143 : n->comment = (yyvsp[0].str);
39144 : (yyval.node) = (Node *) n;
39145 : }
39146 : #line 39147 "gram.c"
39147 14 : break;
39148 :
39149 0 : case 985: /* CommentStmt: COMMENT ON OPERATOR CLASS any_name USING name IS comment_text */
39150 : #line 7279 "gram.y"
39151 : {
39152 : CommentStmt *n = makeNode(CommentStmt);
39153 :
39154 : n->objtype = OBJECT_OPCLASS;
39155 : n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list));
39156 : n->comment = (yyvsp[0].str);
39157 : (yyval.node) = (Node *) n;
39158 : }
39159 : #line 39160 "gram.c"
39160 0 : break;
39161 :
39162 0 : case 986: /* CommentStmt: COMMENT ON OPERATOR FAMILY any_name USING name IS comment_text */
39163 : #line 7288 "gram.y"
39164 : {
39165 : CommentStmt *n = makeNode(CommentStmt);
39166 :
39167 : n->objtype = OBJECT_OPFAMILY;
39168 : n->object = (Node *) lcons(makeString((yyvsp[-2].str)), (yyvsp[-4].list));
39169 : n->comment = (yyvsp[0].str);
39170 : (yyval.node) = (Node *) n;
39171 : }
39172 : #line 39173 "gram.c"
39173 0 : break;
39174 :
39175 28 : case 987: /* CommentStmt: COMMENT ON LARGE_P OBJECT_P NumericOnly IS comment_text */
39176 : #line 7297 "gram.y"
39177 : {
39178 : CommentStmt *n = makeNode(CommentStmt);
39179 :
39180 : n->objtype = OBJECT_LARGEOBJECT;
39181 : n->object = (Node *) (yyvsp[-2].node);
39182 : n->comment = (yyvsp[0].str);
39183 : (yyval.node) = (Node *) n;
39184 : }
39185 : #line 39186 "gram.c"
39186 28 : break;
39187 :
39188 0 : case 988: /* CommentStmt: COMMENT ON CAST '(' Typename AS Typename ')' IS comment_text */
39189 : #line 7306 "gram.y"
39190 : {
39191 : CommentStmt *n = makeNode(CommentStmt);
39192 :
39193 : n->objtype = OBJECT_CAST;
39194 : n->object = (Node *) list_make2((yyvsp[-5].typnam), (yyvsp[-3].typnam));
39195 : n->comment = (yyvsp[0].str);
39196 : (yyval.node) = (Node *) n;
39197 : }
39198 : #line 39199 "gram.c"
39199 0 : break;
39200 :
39201 6796 : case 989: /* comment_text: Sconst */
39202 : #line 7317 "gram.y"
39203 : { (yyval.str) = (yyvsp[0].str); }
39204 : #line 39205 "gram.c"
39205 6796 : break;
39206 :
39207 104 : case 990: /* comment_text: NULL_P */
39208 : #line 7318 "gram.y"
39209 : { (yyval.str) = NULL; }
39210 : #line 39211 "gram.c"
39211 104 : break;
39212 :
39213 48 : case 991: /* SecLabelStmt: SECURITY LABEL opt_provider ON object_type_any_name any_name IS security_label */
39214 : #line 7334 "gram.y"
39215 : {
39216 : SecLabelStmt *n = makeNode(SecLabelStmt);
39217 :
39218 : n->provider = (yyvsp[-5].str);
39219 : n->objtype = (yyvsp[-3].objtype);
39220 : n->object = (Node *) (yyvsp[-2].list);
39221 : n->label = (yyvsp[0].str);
39222 : (yyval.node) = (Node *) n;
39223 : }
39224 : #line 39225 "gram.c"
39225 48 : break;
39226 :
39227 4 : case 992: /* SecLabelStmt: SECURITY LABEL opt_provider ON COLUMN any_name IS security_label */
39228 : #line 7345 "gram.y"
39229 : {
39230 : SecLabelStmt *n = makeNode(SecLabelStmt);
39231 :
39232 : n->provider = (yyvsp[-5].str);
39233 : n->objtype = OBJECT_COLUMN;
39234 : n->object = (Node *) (yyvsp[-2].list);
39235 : n->label = (yyvsp[0].str);
39236 : (yyval.node) = (Node *) n;
39237 : }
39238 : #line 39239 "gram.c"
39239 4 : break;
39240 :
39241 44 : case 993: /* SecLabelStmt: SECURITY LABEL opt_provider ON object_type_name name IS security_label */
39242 : #line 7356 "gram.y"
39243 : {
39244 : SecLabelStmt *n = makeNode(SecLabelStmt);
39245 :
39246 : n->provider = (yyvsp[-5].str);
39247 : n->objtype = (yyvsp[-3].objtype);
39248 : n->object = (Node *) makeString((yyvsp[-2].str));
39249 : n->label = (yyvsp[0].str);
39250 : (yyval.node) = (Node *) n;
39251 : }
39252 : #line 39253 "gram.c"
39253 44 : break;
39254 :
39255 0 : case 994: /* SecLabelStmt: SECURITY LABEL opt_provider ON TYPE_P Typename IS security_label */
39256 : #line 7367 "gram.y"
39257 : {
39258 : SecLabelStmt *n = makeNode(SecLabelStmt);
39259 :
39260 : n->provider = (yyvsp[-5].str);
39261 : n->objtype = OBJECT_TYPE;
39262 : n->object = (Node *) (yyvsp[-2].typnam);
39263 : n->label = (yyvsp[0].str);
39264 : (yyval.node) = (Node *) n;
39265 : }
39266 : #line 39267 "gram.c"
39267 0 : break;
39268 :
39269 2 : case 995: /* SecLabelStmt: SECURITY LABEL opt_provider ON DOMAIN_P Typename IS security_label */
39270 : #line 7378 "gram.y"
39271 : {
39272 : SecLabelStmt *n = makeNode(SecLabelStmt);
39273 :
39274 : n->provider = (yyvsp[-5].str);
39275 : n->objtype = OBJECT_DOMAIN;
39276 : n->object = (Node *) (yyvsp[-2].typnam);
39277 : n->label = (yyvsp[0].str);
39278 : (yyval.node) = (Node *) n;
39279 : }
39280 : #line 39281 "gram.c"
39281 2 : break;
39282 :
39283 0 : case 996: /* SecLabelStmt: SECURITY LABEL opt_provider ON AGGREGATE aggregate_with_argtypes IS security_label */
39284 : #line 7389 "gram.y"
39285 : {
39286 : SecLabelStmt *n = makeNode(SecLabelStmt);
39287 :
39288 : n->provider = (yyvsp[-5].str);
39289 : n->objtype = OBJECT_AGGREGATE;
39290 : n->object = (Node *) (yyvsp[-2].objwithargs);
39291 : n->label = (yyvsp[0].str);
39292 : (yyval.node) = (Node *) n;
39293 : }
39294 : #line 39295 "gram.c"
39295 0 : break;
39296 :
39297 2 : case 997: /* SecLabelStmt: SECURITY LABEL opt_provider ON FUNCTION function_with_argtypes IS security_label */
39298 : #line 7400 "gram.y"
39299 : {
39300 : SecLabelStmt *n = makeNode(SecLabelStmt);
39301 :
39302 : n->provider = (yyvsp[-5].str);
39303 : n->objtype = OBJECT_FUNCTION;
39304 : n->object = (Node *) (yyvsp[-2].objwithargs);
39305 : n->label = (yyvsp[0].str);
39306 : (yyval.node) = (Node *) n;
39307 : }
39308 : #line 39309 "gram.c"
39309 2 : break;
39310 :
39311 0 : case 998: /* SecLabelStmt: SECURITY LABEL opt_provider ON LARGE_P OBJECT_P NumericOnly IS security_label */
39312 : #line 7411 "gram.y"
39313 : {
39314 : SecLabelStmt *n = makeNode(SecLabelStmt);
39315 :
39316 : n->provider = (yyvsp[-6].str);
39317 : n->objtype = OBJECT_LARGEOBJECT;
39318 : n->object = (Node *) (yyvsp[-2].node);
39319 : n->label = (yyvsp[0].str);
39320 : (yyval.node) = (Node *) n;
39321 : }
39322 : #line 39323 "gram.c"
39323 0 : break;
39324 :
39325 0 : case 999: /* SecLabelStmt: SECURITY LABEL opt_provider ON PROCEDURE function_with_argtypes IS security_label */
39326 : #line 7422 "gram.y"
39327 : {
39328 : SecLabelStmt *n = makeNode(SecLabelStmt);
39329 :
39330 : n->provider = (yyvsp[-5].str);
39331 : n->objtype = OBJECT_PROCEDURE;
39332 : n->object = (Node *) (yyvsp[-2].objwithargs);
39333 : n->label = (yyvsp[0].str);
39334 : (yyval.node) = (Node *) n;
39335 : }
39336 : #line 39337 "gram.c"
39337 0 : break;
39338 :
39339 0 : case 1000: /* SecLabelStmt: SECURITY LABEL opt_provider ON ROUTINE function_with_argtypes IS security_label */
39340 : #line 7433 "gram.y"
39341 : {
39342 : SecLabelStmt *n = makeNode(SecLabelStmt);
39343 :
39344 : n->provider = (yyvsp[-5].str);
39345 : n->objtype = OBJECT_ROUTINE;
39346 : n->object = (Node *) (yyvsp[-2].objwithargs);
39347 : n->label = (yyvsp[0].str);
39348 : (yyval.node) = (Node *) n;
39349 : }
39350 : #line 39351 "gram.c"
39351 0 : break;
39352 :
39353 20 : case 1001: /* opt_provider: FOR NonReservedWord_or_Sconst */
39354 : #line 7444 "gram.y"
39355 : { (yyval.str) = (yyvsp[0].str); }
39356 : #line 39357 "gram.c"
39357 20 : break;
39358 :
39359 80 : case 1002: /* opt_provider: %empty */
39360 : #line 7445 "gram.y"
39361 : { (yyval.str) = NULL; }
39362 : #line 39363 "gram.c"
39363 80 : break;
39364 :
39365 100 : case 1003: /* security_label: Sconst */
39366 : #line 7448 "gram.y"
39367 : { (yyval.str) = (yyvsp[0].str); }
39368 : #line 39369 "gram.c"
39369 100 : break;
39370 :
39371 0 : case 1004: /* security_label: NULL_P */
39372 : #line 7449 "gram.y"
39373 : { (yyval.str) = NULL; }
39374 : #line 39375 "gram.c"
39375 0 : break;
39376 :
39377 7492 : case 1005: /* FetchStmt: FETCH fetch_args */
39378 : #line 7460 "gram.y"
39379 : {
39380 : FetchStmt *n = (FetchStmt *) (yyvsp[0].node);
39381 :
39382 : n->ismove = false;
39383 : (yyval.node) = (Node *) n;
39384 : }
39385 : #line 39386 "gram.c"
39386 7492 : break;
39387 :
39388 68 : case 1006: /* FetchStmt: MOVE fetch_args */
39389 : #line 7467 "gram.y"
39390 : {
39391 : FetchStmt *n = (FetchStmt *) (yyvsp[0].node);
39392 :
39393 : n->ismove = true;
39394 : (yyval.node) = (Node *) n;
39395 : }
39396 : #line 39397 "gram.c"
39397 68 : break;
39398 :
39399 266 : case 1007: /* fetch_args: cursor_name */
39400 : #line 7476 "gram.y"
39401 : {
39402 : FetchStmt *n = makeNode(FetchStmt);
39403 :
39404 : n->portalname = (yyvsp[0].str);
39405 : n->direction = FETCH_FORWARD;
39406 : n->howMany = 1;
39407 : (yyval.node) = (Node *) n;
39408 : }
39409 : #line 39410 "gram.c"
39410 266 : break;
39411 :
39412 218 : case 1008: /* fetch_args: from_in cursor_name */
39413 : #line 7485 "gram.y"
39414 : {
39415 : FetchStmt *n = makeNode(FetchStmt);
39416 :
39417 : n->portalname = (yyvsp[0].str);
39418 : n->direction = FETCH_FORWARD;
39419 : n->howMany = 1;
39420 : (yyval.node) = (Node *) n;
39421 : }
39422 : #line 39423 "gram.c"
39423 218 : break;
39424 :
39425 2008 : case 1009: /* fetch_args: NEXT opt_from_in cursor_name */
39426 : #line 7494 "gram.y"
39427 : {
39428 : FetchStmt *n = makeNode(FetchStmt);
39429 :
39430 : n->portalname = (yyvsp[0].str);
39431 : n->direction = FETCH_FORWARD;
39432 : n->howMany = 1;
39433 : (yyval.node) = (Node *) n;
39434 : }
39435 : #line 39436 "gram.c"
39436 2008 : break;
39437 :
39438 30 : case 1010: /* fetch_args: PRIOR opt_from_in cursor_name */
39439 : #line 7503 "gram.y"
39440 : {
39441 : FetchStmt *n = makeNode(FetchStmt);
39442 :
39443 : n->portalname = (yyvsp[0].str);
39444 : n->direction = FETCH_BACKWARD;
39445 : n->howMany = 1;
39446 : (yyval.node) = (Node *) n;
39447 : }
39448 : #line 39449 "gram.c"
39449 30 : break;
39450 :
39451 24 : case 1011: /* fetch_args: FIRST_P opt_from_in cursor_name */
39452 : #line 7512 "gram.y"
39453 : {
39454 : FetchStmt *n = makeNode(FetchStmt);
39455 :
39456 : n->portalname = (yyvsp[0].str);
39457 : n->direction = FETCH_ABSOLUTE;
39458 : n->howMany = 1;
39459 : (yyval.node) = (Node *) n;
39460 : }
39461 : #line 39462 "gram.c"
39462 24 : break;
39463 :
39464 18 : case 1012: /* fetch_args: LAST_P opt_from_in cursor_name */
39465 : #line 7521 "gram.y"
39466 : {
39467 : FetchStmt *n = makeNode(FetchStmt);
39468 :
39469 : n->portalname = (yyvsp[0].str);
39470 : n->direction = FETCH_ABSOLUTE;
39471 : n->howMany = -1;
39472 : (yyval.node) = (Node *) n;
39473 : }
39474 : #line 39475 "gram.c"
39475 18 : break;
39476 :
39477 88 : case 1013: /* fetch_args: ABSOLUTE_P SignedIconst opt_from_in cursor_name */
39478 : #line 7530 "gram.y"
39479 : {
39480 : FetchStmt *n = makeNode(FetchStmt);
39481 :
39482 : n->portalname = (yyvsp[0].str);
39483 : n->direction = FETCH_ABSOLUTE;
39484 : n->howMany = (yyvsp[-2].ival);
39485 : (yyval.node) = (Node *) n;
39486 : }
39487 : #line 39488 "gram.c"
39488 88 : break;
39489 :
39490 30 : case 1014: /* fetch_args: RELATIVE_P SignedIconst opt_from_in cursor_name */
39491 : #line 7539 "gram.y"
39492 : {
39493 : FetchStmt *n = makeNode(FetchStmt);
39494 :
39495 : n->portalname = (yyvsp[0].str);
39496 : n->direction = FETCH_RELATIVE;
39497 : n->howMany = (yyvsp[-2].ival);
39498 : (yyval.node) = (Node *) n;
39499 : }
39500 : #line 39501 "gram.c"
39501 30 : break;
39502 :
39503 4174 : case 1015: /* fetch_args: SignedIconst opt_from_in cursor_name */
39504 : #line 7548 "gram.y"
39505 : {
39506 : FetchStmt *n = makeNode(FetchStmt);
39507 :
39508 : n->portalname = (yyvsp[0].str);
39509 : n->direction = FETCH_FORWARD;
39510 : n->howMany = (yyvsp[-2].ival);
39511 : (yyval.node) = (Node *) n;
39512 : }
39513 : #line 39514 "gram.c"
39514 4174 : break;
39515 :
39516 268 : case 1016: /* fetch_args: ALL opt_from_in cursor_name */
39517 : #line 7557 "gram.y"
39518 : {
39519 : FetchStmt *n = makeNode(FetchStmt);
39520 :
39521 : n->portalname = (yyvsp[0].str);
39522 : n->direction = FETCH_FORWARD;
39523 : n->howMany = FETCH_ALL;
39524 : (yyval.node) = (Node *) n;
39525 : }
39526 : #line 39527 "gram.c"
39527 268 : break;
39528 :
39529 28 : case 1017: /* fetch_args: FORWARD opt_from_in cursor_name */
39530 : #line 7566 "gram.y"
39531 : {
39532 : FetchStmt *n = makeNode(FetchStmt);
39533 :
39534 : n->portalname = (yyvsp[0].str);
39535 : n->direction = FETCH_FORWARD;
39536 : n->howMany = 1;
39537 : (yyval.node) = (Node *) n;
39538 : }
39539 : #line 39540 "gram.c"
39540 28 : break;
39541 :
39542 6 : case 1018: /* fetch_args: FORWARD SignedIconst opt_from_in cursor_name */
39543 : #line 7575 "gram.y"
39544 : {
39545 : FetchStmt *n = makeNode(FetchStmt);
39546 :
39547 : n->portalname = (yyvsp[0].str);
39548 : n->direction = FETCH_FORWARD;
39549 : n->howMany = (yyvsp[-2].ival);
39550 : (yyval.node) = (Node *) n;
39551 : }
39552 : #line 39553 "gram.c"
39553 6 : break;
39554 :
39555 14 : case 1019: /* fetch_args: FORWARD ALL opt_from_in cursor_name */
39556 : #line 7584 "gram.y"
39557 : {
39558 : FetchStmt *n = makeNode(FetchStmt);
39559 :
39560 : n->portalname = (yyvsp[0].str);
39561 : n->direction = FETCH_FORWARD;
39562 : n->howMany = FETCH_ALL;
39563 : (yyval.node) = (Node *) n;
39564 : }
39565 : #line 39566 "gram.c"
39566 14 : break;
39567 :
39568 78 : case 1020: /* fetch_args: BACKWARD opt_from_in cursor_name */
39569 : #line 7593 "gram.y"
39570 : {
39571 : FetchStmt *n = makeNode(FetchStmt);
39572 :
39573 : n->portalname = (yyvsp[0].str);
39574 : n->direction = FETCH_BACKWARD;
39575 : n->howMany = 1;
39576 : (yyval.node) = (Node *) n;
39577 : }
39578 : #line 39579 "gram.c"
39579 78 : break;
39580 :
39581 220 : case 1021: /* fetch_args: BACKWARD SignedIconst opt_from_in cursor_name */
39582 : #line 7602 "gram.y"
39583 : {
39584 : FetchStmt *n = makeNode(FetchStmt);
39585 :
39586 : n->portalname = (yyvsp[0].str);
39587 : n->direction = FETCH_BACKWARD;
39588 : n->howMany = (yyvsp[-2].ival);
39589 : (yyval.node) = (Node *) n;
39590 : }
39591 : #line 39592 "gram.c"
39592 220 : break;
39593 :
39594 90 : case 1022: /* fetch_args: BACKWARD ALL opt_from_in cursor_name */
39595 : #line 7611 "gram.y"
39596 : {
39597 : FetchStmt *n = makeNode(FetchStmt);
39598 :
39599 : n->portalname = (yyvsp[0].str);
39600 : n->direction = FETCH_BACKWARD;
39601 : n->howMany = FETCH_ALL;
39602 : (yyval.node) = (Node *) n;
39603 : }
39604 : #line 39605 "gram.c"
39605 90 : break;
39606 :
39607 11348 : case 1027: /* GrantStmt: GRANT privileges ON privilege_target TO grantee_list opt_grant_grant_option opt_granted_by */
39608 : #line 7638 "gram.y"
39609 : {
39610 : GrantStmt *n = makeNode(GrantStmt);
39611 :
39612 : n->is_grant = true;
39613 : n->privileges = (yyvsp[-6].list);
39614 : n->targtype = ((yyvsp[-4].privtarget))->targtype;
39615 : n->objtype = ((yyvsp[-4].privtarget))->objtype;
39616 : n->objects = ((yyvsp[-4].privtarget))->objs;
39617 : n->grantees = (yyvsp[-2].list);
39618 : n->grant_option = (yyvsp[-1].boolean);
39619 : n->grantor = (yyvsp[0].rolespec);
39620 : (yyval.node) = (Node *) n;
39621 : }
39622 : #line 39623 "gram.c"
39623 11348 : break;
39624 :
39625 9986 : case 1028: /* RevokeStmt: REVOKE privileges ON privilege_target FROM grantee_list opt_granted_by opt_drop_behavior */
39626 : #line 7656 "gram.y"
39627 : {
39628 : GrantStmt *n = makeNode(GrantStmt);
39629 :
39630 : n->is_grant = false;
39631 : n->grant_option = false;
39632 : n->privileges = (yyvsp[-6].list);
39633 : n->targtype = ((yyvsp[-4].privtarget))->targtype;
39634 : n->objtype = ((yyvsp[-4].privtarget))->objtype;
39635 : n->objects = ((yyvsp[-4].privtarget))->objs;
39636 : n->grantees = (yyvsp[-2].list);
39637 : n->grantor = (yyvsp[-1].rolespec);
39638 : n->behavior = (yyvsp[0].dbehavior);
39639 : (yyval.node) = (Node *) n;
39640 : }
39641 : #line 39642 "gram.c"
39642 9986 : break;
39643 :
39644 16 : case 1029: /* RevokeStmt: REVOKE GRANT OPTION FOR privileges ON privilege_target FROM grantee_list opt_granted_by opt_drop_behavior */
39645 : #line 7672 "gram.y"
39646 : {
39647 : GrantStmt *n = makeNode(GrantStmt);
39648 :
39649 : n->is_grant = false;
39650 : n->grant_option = true;
39651 : n->privileges = (yyvsp[-6].list);
39652 : n->targtype = ((yyvsp[-4].privtarget))->targtype;
39653 : n->objtype = ((yyvsp[-4].privtarget))->objtype;
39654 : n->objects = ((yyvsp[-4].privtarget))->objs;
39655 : n->grantees = (yyvsp[-2].list);
39656 : n->grantor = (yyvsp[-1].rolespec);
39657 : n->behavior = (yyvsp[0].dbehavior);
39658 : (yyval.node) = (Node *) n;
39659 : }
39660 : #line 39661 "gram.c"
39661 16 : break;
39662 :
39663 18864 : case 1030: /* privileges: privilege_list */
39664 : #line 7699 "gram.y"
39665 : { (yyval.list) = (yyvsp[0].list); }
39666 : #line 39667 "gram.c"
39667 18864 : break;
39668 :
39669 2548 : case 1031: /* privileges: ALL */
39670 : #line 7701 "gram.y"
39671 : { (yyval.list) = NIL; }
39672 : #line 39673 "gram.c"
39673 2548 : break;
39674 :
39675 122 : case 1032: /* privileges: ALL PRIVILEGES */
39676 : #line 7703 "gram.y"
39677 : { (yyval.list) = NIL; }
39678 : #line 39679 "gram.c"
39679 122 : break;
39680 :
39681 18 : case 1033: /* privileges: ALL '(' columnList ')' */
39682 : #line 7705 "gram.y"
39683 : {
39684 : AccessPriv *n = makeNode(AccessPriv);
39685 :
39686 : n->priv_name = NULL;
39687 : n->cols = (yyvsp[-1].list);
39688 : (yyval.list) = list_make1(n);
39689 : }
39690 : #line 39691 "gram.c"
39691 18 : break;
39692 :
39693 0 : case 1034: /* privileges: ALL PRIVILEGES '(' columnList ')' */
39694 : #line 7713 "gram.y"
39695 : {
39696 : AccessPriv *n = makeNode(AccessPriv);
39697 :
39698 : n->priv_name = NULL;
39699 : n->cols = (yyvsp[-1].list);
39700 : (yyval.list) = list_make1(n);
39701 : }
39702 : #line 39703 "gram.c"
39703 0 : break;
39704 :
39705 19784 : case 1035: /* privilege_list: privilege */
39706 : #line 7722 "gram.y"
39707 : { (yyval.list) = list_make1((yyvsp[0].accesspriv)); }
39708 : #line 39709 "gram.c"
39709 19784 : break;
39710 :
39711 564 : case 1036: /* privilege_list: privilege_list ',' privilege */
39712 : #line 7723 "gram.y"
39713 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].accesspriv)); }
39714 : #line 39715 "gram.c"
39715 564 : break;
39716 :
39717 9168 : case 1037: /* privilege: SELECT opt_column_list */
39718 : #line 7727 "gram.y"
39719 : {
39720 : AccessPriv *n = makeNode(AccessPriv);
39721 :
39722 : n->priv_name = pstrdup((yyvsp[-1].keyword));
39723 : n->cols = (yyvsp[0].list);
39724 : (yyval.accesspriv) = n;
39725 : }
39726 : #line 39727 "gram.c"
39727 9168 : break;
39728 :
39729 16 : case 1038: /* privilege: REFERENCES opt_column_list */
39730 : #line 7735 "gram.y"
39731 : {
39732 : AccessPriv *n = makeNode(AccessPriv);
39733 :
39734 : n->priv_name = pstrdup((yyvsp[-1].keyword));
39735 : n->cols = (yyvsp[0].list);
39736 : (yyval.accesspriv) = n;
39737 : }
39738 : #line 39739 "gram.c"
39739 16 : break;
39740 :
39741 290 : case 1039: /* privilege: CREATE opt_column_list */
39742 : #line 7743 "gram.y"
39743 : {
39744 : AccessPriv *n = makeNode(AccessPriv);
39745 :
39746 : n->priv_name = pstrdup((yyvsp[-1].keyword));
39747 : n->cols = (yyvsp[0].list);
39748 : (yyval.accesspriv) = n;
39749 : }
39750 : #line 39751 "gram.c"
39751 290 : break;
39752 :
39753 24 : case 1040: /* privilege: ALTER SYSTEM_P */
39754 : #line 7751 "gram.y"
39755 : {
39756 : AccessPriv *n = makeNode(AccessPriv);
39757 : n->priv_name = pstrdup("alter system");
39758 : n->cols = NIL;
39759 : (yyval.accesspriv) = n;
39760 : }
39761 : #line 39762 "gram.c"
39762 24 : break;
39763 :
39764 10850 : case 1041: /* privilege: ColId opt_column_list */
39765 : #line 7758 "gram.y"
39766 : {
39767 : AccessPriv *n = makeNode(AccessPriv);
39768 :
39769 : n->priv_name = (yyvsp[-1].str);
39770 : n->cols = (yyvsp[0].list);
39771 : (yyval.accesspriv) = n;
39772 : }
39773 : #line 39774 "gram.c"
39774 10850 : break;
39775 :
39776 74 : case 1042: /* parameter_name_list: parameter_name */
39777 : #line 7769 "gram.y"
39778 : {
39779 : (yyval.list) = list_make1(makeString((yyvsp[0].str)));
39780 : }
39781 : #line 39782 "gram.c"
39782 74 : break;
39783 :
39784 50 : case 1043: /* parameter_name_list: parameter_name_list ',' parameter_name */
39785 : #line 7773 "gram.y"
39786 : {
39787 : (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str)));
39788 : }
39789 : #line 39790 "gram.c"
39790 50 : break;
39791 :
39792 124 : case 1044: /* parameter_name: ColId */
39793 : #line 7780 "gram.y"
39794 : {
39795 : (yyval.str) = (yyvsp[0].str);
39796 : }
39797 : #line 39798 "gram.c"
39798 124 : break;
39799 :
39800 30 : case 1045: /* parameter_name: parameter_name '.' ColId */
39801 : #line 7784 "gram.y"
39802 : {
39803 : (yyval.str) = psprintf("%s.%s", (yyvsp[-2].str), (yyvsp[0].str));
39804 : }
39805 : #line 39806 "gram.c"
39806 30 : break;
39807 :
39808 11060 : case 1046: /* privilege_target: qualified_name_list */
39809 : #line 7795 "gram.y"
39810 : {
39811 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39812 :
39813 : n->targtype = ACL_TARGET_OBJECT;
39814 : n->objtype = OBJECT_TABLE;
39815 : n->objs = (yyvsp[0].list);
39816 : (yyval.privtarget) = n;
39817 : }
39818 : #line 39819 "gram.c"
39819 11060 : break;
39820 :
39821 412 : case 1047: /* privilege_target: TABLE qualified_name_list */
39822 : #line 7804 "gram.y"
39823 : {
39824 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39825 :
39826 : n->targtype = ACL_TARGET_OBJECT;
39827 : n->objtype = OBJECT_TABLE;
39828 : n->objs = (yyvsp[0].list);
39829 : (yyval.privtarget) = n;
39830 : }
39831 : #line 39832 "gram.c"
39832 412 : break;
39833 :
39834 24 : case 1048: /* privilege_target: SEQUENCE qualified_name_list */
39835 : #line 7813 "gram.y"
39836 : {
39837 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39838 :
39839 : n->targtype = ACL_TARGET_OBJECT;
39840 : n->objtype = OBJECT_SEQUENCE;
39841 : n->objs = (yyvsp[0].list);
39842 : (yyval.privtarget) = n;
39843 : }
39844 : #line 39845 "gram.c"
39845 24 : break;
39846 :
39847 92 : case 1049: /* privilege_target: FOREIGN DATA_P WRAPPER name_list */
39848 : #line 7822 "gram.y"
39849 : {
39850 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39851 :
39852 : n->targtype = ACL_TARGET_OBJECT;
39853 : n->objtype = OBJECT_FDW;
39854 : n->objs = (yyvsp[0].list);
39855 : (yyval.privtarget) = n;
39856 : }
39857 : #line 39858 "gram.c"
39858 92 : break;
39859 :
39860 88 : case 1050: /* privilege_target: FOREIGN SERVER name_list */
39861 : #line 7831 "gram.y"
39862 : {
39863 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39864 :
39865 : n->targtype = ACL_TARGET_OBJECT;
39866 : n->objtype = OBJECT_FOREIGN_SERVER;
39867 : n->objs = (yyvsp[0].list);
39868 : (yyval.privtarget) = n;
39869 : }
39870 : #line 39871 "gram.c"
39871 88 : break;
39872 :
39873 8562 : case 1051: /* privilege_target: FUNCTION function_with_argtypes_list */
39874 : #line 7840 "gram.y"
39875 : {
39876 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39877 :
39878 : n->targtype = ACL_TARGET_OBJECT;
39879 : n->objtype = OBJECT_FUNCTION;
39880 : n->objs = (yyvsp[0].list);
39881 : (yyval.privtarget) = n;
39882 : }
39883 : #line 39884 "gram.c"
39884 8562 : break;
39885 :
39886 42 : case 1052: /* privilege_target: PROCEDURE function_with_argtypes_list */
39887 : #line 7849 "gram.y"
39888 : {
39889 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39890 :
39891 : n->targtype = ACL_TARGET_OBJECT;
39892 : n->objtype = OBJECT_PROCEDURE;
39893 : n->objs = (yyvsp[0].list);
39894 : (yyval.privtarget) = n;
39895 : }
39896 : #line 39897 "gram.c"
39897 42 : break;
39898 :
39899 0 : case 1053: /* privilege_target: ROUTINE function_with_argtypes_list */
39900 : #line 7858 "gram.y"
39901 : {
39902 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39903 :
39904 : n->targtype = ACL_TARGET_OBJECT;
39905 : n->objtype = OBJECT_ROUTINE;
39906 : n->objs = (yyvsp[0].list);
39907 : (yyval.privtarget) = n;
39908 : }
39909 : #line 39910 "gram.c"
39910 0 : break;
39911 :
39912 344 : case 1054: /* privilege_target: DATABASE name_list */
39913 : #line 7867 "gram.y"
39914 : {
39915 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39916 :
39917 : n->targtype = ACL_TARGET_OBJECT;
39918 : n->objtype = OBJECT_DATABASE;
39919 : n->objs = (yyvsp[0].list);
39920 : (yyval.privtarget) = n;
39921 : }
39922 : #line 39923 "gram.c"
39923 344 : break;
39924 :
39925 26 : case 1055: /* privilege_target: DOMAIN_P any_name_list */
39926 : #line 7876 "gram.y"
39927 : {
39928 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39929 :
39930 : n->targtype = ACL_TARGET_OBJECT;
39931 : n->objtype = OBJECT_DOMAIN;
39932 : n->objs = (yyvsp[0].list);
39933 : (yyval.privtarget) = n;
39934 : }
39935 : #line 39936 "gram.c"
39936 26 : break;
39937 :
39938 42 : case 1056: /* privilege_target: LANGUAGE name_list */
39939 : #line 7885 "gram.y"
39940 : {
39941 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39942 :
39943 : n->targtype = ACL_TARGET_OBJECT;
39944 : n->objtype = OBJECT_LANGUAGE;
39945 : n->objs = (yyvsp[0].list);
39946 : (yyval.privtarget) = n;
39947 : }
39948 : #line 39949 "gram.c"
39949 42 : break;
39950 :
39951 80 : case 1057: /* privilege_target: LARGE_P OBJECT_P NumericOnly_list */
39952 : #line 7894 "gram.y"
39953 : {
39954 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39955 :
39956 : n->targtype = ACL_TARGET_OBJECT;
39957 : n->objtype = OBJECT_LARGEOBJECT;
39958 : n->objs = (yyvsp[0].list);
39959 : (yyval.privtarget) = n;
39960 : }
39961 : #line 39962 "gram.c"
39962 80 : break;
39963 :
39964 74 : case 1058: /* privilege_target: PARAMETER parameter_name_list */
39965 : #line 7903 "gram.y"
39966 : {
39967 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39968 : n->targtype = ACL_TARGET_OBJECT;
39969 : n->objtype = OBJECT_PARAMETER_ACL;
39970 : n->objs = (yyvsp[0].list);
39971 : (yyval.privtarget) = n;
39972 : }
39973 : #line 39974 "gram.c"
39974 74 : break;
39975 :
39976 368 : case 1059: /* privilege_target: SCHEMA name_list */
39977 : #line 7911 "gram.y"
39978 : {
39979 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39980 :
39981 : n->targtype = ACL_TARGET_OBJECT;
39982 : n->objtype = OBJECT_SCHEMA;
39983 : n->objs = (yyvsp[0].list);
39984 : (yyval.privtarget) = n;
39985 : }
39986 : #line 39987 "gram.c"
39987 368 : break;
39988 :
39989 6 : case 1060: /* privilege_target: TABLESPACE name_list */
39990 : #line 7920 "gram.y"
39991 : {
39992 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
39993 :
39994 : n->targtype = ACL_TARGET_OBJECT;
39995 : n->objtype = OBJECT_TABLESPACE;
39996 : n->objs = (yyvsp[0].list);
39997 : (yyval.privtarget) = n;
39998 : }
39999 : #line 40000 "gram.c"
40000 6 : break;
40001 :
40002 112 : case 1061: /* privilege_target: TYPE_P any_name_list */
40003 : #line 7929 "gram.y"
40004 : {
40005 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40006 :
40007 : n->targtype = ACL_TARGET_OBJECT;
40008 : n->objtype = OBJECT_TYPE;
40009 : n->objs = (yyvsp[0].list);
40010 : (yyval.privtarget) = n;
40011 : }
40012 : #line 40013 "gram.c"
40013 112 : break;
40014 :
40015 12 : case 1062: /* privilege_target: ALL TABLES IN_P SCHEMA name_list */
40016 : #line 7938 "gram.y"
40017 : {
40018 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40019 :
40020 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40021 : n->objtype = OBJECT_TABLE;
40022 : n->objs = (yyvsp[0].list);
40023 : (yyval.privtarget) = n;
40024 : }
40025 : #line 40026 "gram.c"
40026 12 : break;
40027 :
40028 0 : case 1063: /* privilege_target: ALL SEQUENCES IN_P SCHEMA name_list */
40029 : #line 7947 "gram.y"
40030 : {
40031 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40032 :
40033 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40034 : n->objtype = OBJECT_SEQUENCE;
40035 : n->objs = (yyvsp[0].list);
40036 : (yyval.privtarget) = n;
40037 : }
40038 : #line 40039 "gram.c"
40039 0 : break;
40040 :
40041 6 : case 1064: /* privilege_target: ALL FUNCTIONS IN_P SCHEMA name_list */
40042 : #line 7956 "gram.y"
40043 : {
40044 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40045 :
40046 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40047 : n->objtype = OBJECT_FUNCTION;
40048 : n->objs = (yyvsp[0].list);
40049 : (yyval.privtarget) = n;
40050 : }
40051 : #line 40052 "gram.c"
40052 6 : break;
40053 :
40054 6 : case 1065: /* privilege_target: ALL PROCEDURES IN_P SCHEMA name_list */
40055 : #line 7965 "gram.y"
40056 : {
40057 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40058 :
40059 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40060 : n->objtype = OBJECT_PROCEDURE;
40061 : n->objs = (yyvsp[0].list);
40062 : (yyval.privtarget) = n;
40063 : }
40064 : #line 40065 "gram.c"
40065 6 : break;
40066 :
40067 6 : case 1066: /* privilege_target: ALL ROUTINES IN_P SCHEMA name_list */
40068 : #line 7974 "gram.y"
40069 : {
40070 : PrivTarget *n = (PrivTarget *) palloc(sizeof(PrivTarget));
40071 :
40072 : n->targtype = ACL_TARGET_ALL_IN_SCHEMA;
40073 : n->objtype = OBJECT_ROUTINE;
40074 : n->objs = (yyvsp[0].list);
40075 : (yyval.privtarget) = n;
40076 : }
40077 : #line 40078 "gram.c"
40078 6 : break;
40079 :
40080 21540 : case 1067: /* grantee_list: grantee */
40081 : #line 7986 "gram.y"
40082 : { (yyval.list) = list_make1((yyvsp[0].rolespec)); }
40083 : #line 40084 "gram.c"
40084 21540 : break;
40085 :
40086 108 : case 1068: /* grantee_list: grantee_list ',' grantee */
40087 : #line 7987 "gram.y"
40088 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); }
40089 : #line 40090 "gram.c"
40090 108 : break;
40091 :
40092 21624 : case 1069: /* grantee: RoleSpec */
40093 : #line 7991 "gram.y"
40094 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
40095 : #line 40096 "gram.c"
40096 21624 : break;
40097 :
40098 24 : case 1070: /* grantee: GROUP_P RoleSpec */
40099 : #line 7992 "gram.y"
40100 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
40101 : #line 40102 "gram.c"
40102 24 : break;
40103 :
40104 102 : case 1071: /* opt_grant_grant_option: WITH GRANT OPTION */
40105 : #line 7997 "gram.y"
40106 : { (yyval.boolean) = true; }
40107 : #line 40108 "gram.c"
40108 102 : break;
40109 :
40110 11370 : case 1072: /* opt_grant_grant_option: %empty */
40111 : #line 7998 "gram.y"
40112 : { (yyval.boolean) = false; }
40113 : #line 40114 "gram.c"
40114 11370 : break;
40115 :
40116 586 : case 1073: /* GrantRoleStmt: GRANT privilege_list TO role_list opt_granted_by */
40117 : #line 8009 "gram.y"
40118 : {
40119 : GrantRoleStmt *n = makeNode(GrantRoleStmt);
40120 :
40121 : n->is_grant = true;
40122 : n->granted_roles = (yyvsp[-3].list);
40123 : n->grantee_roles = (yyvsp[-1].list);
40124 : n->opt = NIL;
40125 : n->grantor = (yyvsp[0].rolespec);
40126 : (yyval.node) = (Node *) n;
40127 : }
40128 : #line 40129 "gram.c"
40129 586 : break;
40130 :
40131 178 : case 1074: /* GrantRoleStmt: GRANT privilege_list TO role_list WITH grant_role_opt_list opt_granted_by */
40132 : #line 8020 "gram.y"
40133 : {
40134 : GrantRoleStmt *n = makeNode(GrantRoleStmt);
40135 :
40136 : n->is_grant = true;
40137 : n->granted_roles = (yyvsp[-5].list);
40138 : n->grantee_roles = (yyvsp[-3].list);
40139 : n->opt = (yyvsp[-1].list);
40140 : n->grantor = (yyvsp[0].rolespec);
40141 : (yyval.node) = (Node *) n;
40142 : }
40143 : #line 40144 "gram.c"
40144 178 : break;
40145 :
40146 90 : case 1075: /* RevokeRoleStmt: REVOKE privilege_list FROM role_list opt_granted_by opt_drop_behavior */
40147 : #line 8034 "gram.y"
40148 : {
40149 : GrantRoleStmt *n = makeNode(GrantRoleStmt);
40150 :
40151 : n->is_grant = false;
40152 : n->opt = NIL;
40153 : n->granted_roles = (yyvsp[-4].list);
40154 : n->grantee_roles = (yyvsp[-2].list);
40155 : n->grantor = (yyvsp[-1].rolespec);
40156 : n->behavior = (yyvsp[0].dbehavior);
40157 : (yyval.node) = (Node *) n;
40158 : }
40159 : #line 40160 "gram.c"
40160 90 : break;
40161 :
40162 66 : case 1076: /* RevokeRoleStmt: REVOKE ColId OPTION FOR privilege_list FROM role_list opt_granted_by opt_drop_behavior */
40163 : #line 8046 "gram.y"
40164 : {
40165 : GrantRoleStmt *n = makeNode(GrantRoleStmt);
40166 : DefElem *opt;
40167 :
40168 : opt = makeDefElem(pstrdup((yyvsp[-7].str)),
40169 : (Node *) makeBoolean(false), (yylsp[-7]));
40170 : n->is_grant = false;
40171 : n->opt = list_make1(opt);
40172 : n->granted_roles = (yyvsp[-4].list);
40173 : n->grantee_roles = (yyvsp[-2].list);
40174 : n->grantor = (yyvsp[-1].rolespec);
40175 : n->behavior = (yyvsp[0].dbehavior);
40176 : (yyval.node) = (Node *) n;
40177 : }
40178 : #line 40179 "gram.c"
40179 66 : break;
40180 :
40181 120 : case 1077: /* grant_role_opt_list: grant_role_opt_list ',' grant_role_opt */
40182 : #line 8063 "gram.y"
40183 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
40184 : #line 40185 "gram.c"
40185 120 : break;
40186 :
40187 178 : case 1078: /* grant_role_opt_list: grant_role_opt */
40188 : #line 8064 "gram.y"
40189 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
40190 : #line 40191 "gram.c"
40191 178 : break;
40192 :
40193 298 : case 1079: /* grant_role_opt: ColLabel grant_role_opt_value */
40194 : #line 8069 "gram.y"
40195 : {
40196 : (yyval.defelt) = makeDefElem(pstrdup((yyvsp[-1].str)), (yyvsp[0].node), (yylsp[-1]));
40197 : }
40198 : #line 40199 "gram.c"
40199 298 : break;
40200 :
40201 72 : case 1080: /* grant_role_opt_value: OPTION */
40202 : #line 8075 "gram.y"
40203 : { (yyval.node) = (Node *) makeBoolean(true); }
40204 : #line 40205 "gram.c"
40205 72 : break;
40206 :
40207 112 : case 1081: /* grant_role_opt_value: TRUE_P */
40208 : #line 8076 "gram.y"
40209 : { (yyval.node) = (Node *) makeBoolean(true); }
40210 : #line 40211 "gram.c"
40211 112 : break;
40212 :
40213 114 : case 1082: /* grant_role_opt_value: FALSE_P */
40214 : #line 8077 "gram.y"
40215 : { (yyval.node) = (Node *) makeBoolean(false); }
40216 : #line 40217 "gram.c"
40217 114 : break;
40218 :
40219 138 : case 1083: /* opt_granted_by: GRANTED BY RoleSpec */
40220 : #line 8080 "gram.y"
40221 : { (yyval.rolespec) = (yyvsp[0].rolespec); }
40222 : #line 40223 "gram.c"
40223 138 : break;
40224 :
40225 22132 : case 1084: /* opt_granted_by: %empty */
40226 : #line 8081 "gram.y"
40227 : { (yyval.rolespec) = NULL; }
40228 : #line 40229 "gram.c"
40229 22132 : break;
40230 :
40231 190 : case 1085: /* AlterDefaultPrivilegesStmt: ALTER DEFAULT PRIVILEGES DefACLOptionList DefACLAction */
40232 : #line 8092 "gram.y"
40233 : {
40234 : AlterDefaultPrivilegesStmt *n = makeNode(AlterDefaultPrivilegesStmt);
40235 :
40236 : n->options = (yyvsp[-1].list);
40237 : n->action = (GrantStmt *) (yyvsp[0].node);
40238 : (yyval.node) = (Node *) n;
40239 : }
40240 : #line 40241 "gram.c"
40241 190 : break;
40242 :
40243 128 : case 1086: /* DefACLOptionList: DefACLOptionList DefACLOption */
40244 : #line 8102 "gram.y"
40245 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
40246 : #line 40247 "gram.c"
40247 128 : break;
40248 :
40249 190 : case 1087: /* DefACLOptionList: %empty */
40250 : #line 8103 "gram.y"
40251 : { (yyval.list) = NIL; }
40252 : #line 40253 "gram.c"
40253 190 : break;
40254 :
40255 60 : case 1088: /* DefACLOption: IN_P SCHEMA name_list */
40256 : #line 8108 "gram.y"
40257 : {
40258 : (yyval.defelt) = makeDefElem("schemas", (Node *) (yyvsp[0].list), (yylsp[-2]));
40259 : }
40260 : #line 40261 "gram.c"
40261 60 : break;
40262 :
40263 68 : case 1089: /* DefACLOption: FOR ROLE role_list */
40264 : #line 8112 "gram.y"
40265 : {
40266 : (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[0].list), (yylsp[-2]));
40267 : }
40268 : #line 40269 "gram.c"
40269 68 : break;
40270 :
40271 0 : case 1090: /* DefACLOption: FOR USER role_list */
40272 : #line 8116 "gram.y"
40273 : {
40274 : (yyval.defelt) = makeDefElem("roles", (Node *) (yyvsp[0].list), (yylsp[-2]));
40275 : }
40276 : #line 40277 "gram.c"
40277 0 : break;
40278 :
40279 124 : case 1091: /* DefACLAction: GRANT privileges ON defacl_privilege_target TO grantee_list opt_grant_grant_option */
40280 : #line 8128 "gram.y"
40281 : {
40282 : GrantStmt *n = makeNode(GrantStmt);
40283 :
40284 : n->is_grant = true;
40285 : n->privileges = (yyvsp[-5].list);
40286 : n->targtype = ACL_TARGET_DEFAULTS;
40287 : n->objtype = (yyvsp[-3].ival);
40288 : n->objects = NIL;
40289 : n->grantees = (yyvsp[-1].list);
40290 : n->grant_option = (yyvsp[0].boolean);
40291 : (yyval.node) = (Node *) n;
40292 : }
40293 : #line 40294 "gram.c"
40294 124 : break;
40295 :
40296 66 : case 1092: /* DefACLAction: REVOKE privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */
40297 : #line 8142 "gram.y"
40298 : {
40299 : GrantStmt *n = makeNode(GrantStmt);
40300 :
40301 : n->is_grant = false;
40302 : n->grant_option = false;
40303 : n->privileges = (yyvsp[-5].list);
40304 : n->targtype = ACL_TARGET_DEFAULTS;
40305 : n->objtype = (yyvsp[-3].ival);
40306 : n->objects = NIL;
40307 : n->grantees = (yyvsp[-1].list);
40308 : n->behavior = (yyvsp[0].dbehavior);
40309 : (yyval.node) = (Node *) n;
40310 : }
40311 : #line 40312 "gram.c"
40312 66 : break;
40313 :
40314 0 : case 1093: /* DefACLAction: REVOKE GRANT OPTION FOR privileges ON defacl_privilege_target FROM grantee_list opt_drop_behavior */
40315 : #line 8157 "gram.y"
40316 : {
40317 : GrantStmt *n = makeNode(GrantStmt);
40318 :
40319 : n->is_grant = false;
40320 : n->grant_option = true;
40321 : n->privileges = (yyvsp[-5].list);
40322 : n->targtype = ACL_TARGET_DEFAULTS;
40323 : n->objtype = (yyvsp[-3].ival);
40324 : n->objects = NIL;
40325 : n->grantees = (yyvsp[-1].list);
40326 : n->behavior = (yyvsp[0].dbehavior);
40327 : (yyval.node) = (Node *) n;
40328 : }
40329 : #line 40330 "gram.c"
40330 0 : break;
40331 :
40332 78 : case 1094: /* defacl_privilege_target: TABLES */
40333 : #line 8173 "gram.y"
40334 : { (yyval.ival) = OBJECT_TABLE; }
40335 : #line 40336 "gram.c"
40336 78 : break;
40337 :
40338 16 : case 1095: /* defacl_privilege_target: FUNCTIONS */
40339 : #line 8174 "gram.y"
40340 : { (yyval.ival) = OBJECT_FUNCTION; }
40341 : #line 40342 "gram.c"
40342 16 : break;
40343 :
40344 6 : case 1096: /* defacl_privilege_target: ROUTINES */
40345 : #line 8175 "gram.y"
40346 : { (yyval.ival) = OBJECT_FUNCTION; }
40347 : #line 40348 "gram.c"
40348 6 : break;
40349 :
40350 6 : case 1097: /* defacl_privilege_target: SEQUENCES */
40351 : #line 8176 "gram.y"
40352 : { (yyval.ival) = OBJECT_SEQUENCE; }
40353 : #line 40354 "gram.c"
40354 6 : break;
40355 :
40356 18 : case 1098: /* defacl_privilege_target: TYPES_P */
40357 : #line 8177 "gram.y"
40358 : { (yyval.ival) = OBJECT_TYPE; }
40359 : #line 40360 "gram.c"
40360 18 : break;
40361 :
40362 36 : case 1099: /* defacl_privilege_target: SCHEMAS */
40363 : #line 8178 "gram.y"
40364 : { (yyval.ival) = OBJECT_SCHEMA; }
40365 : #line 40366 "gram.c"
40366 36 : break;
40367 :
40368 30 : case 1100: /* defacl_privilege_target: LARGE_P OBJECTS_P */
40369 : #line 8179 "gram.y"
40370 : { (yyval.ival) = OBJECT_LARGEOBJECT; }
40371 : #line 40372 "gram.c"
40372 30 : break;
40373 :
40374 6848 : case 1101: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently opt_single_name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_unique_null_treatment opt_reloptions OptTableSpace where_clause */
40375 : #line 8194 "gram.y"
40376 : {
40377 : IndexStmt *n = makeNode(IndexStmt);
40378 :
40379 : n->unique = (yyvsp[-14].boolean);
40380 : n->concurrent = (yyvsp[-12].boolean);
40381 : n->idxname = (yyvsp[-11].str);
40382 : n->relation = (yyvsp[-9].range);
40383 : n->accessMethod = (yyvsp[-8].str);
40384 : n->indexParams = (yyvsp[-6].list);
40385 : n->indexIncludingParams = (yyvsp[-4].list);
40386 : n->nulls_not_distinct = !(yyvsp[-3].boolean);
40387 : n->options = (yyvsp[-2].list);
40388 : n->tableSpace = (yyvsp[-1].str);
40389 : n->whereClause = (yyvsp[0].node);
40390 : n->excludeOpNames = NIL;
40391 : n->idxcomment = NULL;
40392 : n->indexOid = InvalidOid;
40393 : n->oldNumber = InvalidRelFileNumber;
40394 : n->oldCreateSubid = InvalidSubTransactionId;
40395 : n->oldFirstRelfilelocatorSubid = InvalidSubTransactionId;
40396 : n->primary = false;
40397 : n->isconstraint = false;
40398 : n->deferrable = false;
40399 : n->initdeferred = false;
40400 : n->transformed = false;
40401 : n->if_not_exists = false;
40402 : n->reset_default_tblspc = false;
40403 : (yyval.node) = (Node *) n;
40404 : }
40405 : #line 40406 "gram.c"
40406 6848 : break;
40407 :
40408 18 : case 1102: /* IndexStmt: CREATE opt_unique INDEX opt_concurrently IF_P NOT EXISTS name ON relation_expr access_method_clause '(' index_params ')' opt_include opt_unique_null_treatment opt_reloptions OptTableSpace where_clause */
40409 : #line 8226 "gram.y"
40410 : {
40411 : IndexStmt *n = makeNode(IndexStmt);
40412 :
40413 : n->unique = (yyvsp[-17].boolean);
40414 : n->concurrent = (yyvsp[-15].boolean);
40415 : n->idxname = (yyvsp[-11].str);
40416 : n->relation = (yyvsp[-9].range);
40417 : n->accessMethod = (yyvsp[-8].str);
40418 : n->indexParams = (yyvsp[-6].list);
40419 : n->indexIncludingParams = (yyvsp[-4].list);
40420 : n->nulls_not_distinct = !(yyvsp[-3].boolean);
40421 : n->options = (yyvsp[-2].list);
40422 : n->tableSpace = (yyvsp[-1].str);
40423 : n->whereClause = (yyvsp[0].node);
40424 : n->excludeOpNames = NIL;
40425 : n->idxcomment = NULL;
40426 : n->indexOid = InvalidOid;
40427 : n->oldNumber = InvalidRelFileNumber;
40428 : n->oldCreateSubid = InvalidSubTransactionId;
40429 : n->oldFirstRelfilelocatorSubid = InvalidSubTransactionId;
40430 : n->primary = false;
40431 : n->isconstraint = false;
40432 : n->deferrable = false;
40433 : n->initdeferred = false;
40434 : n->transformed = false;
40435 : n->if_not_exists = true;
40436 : n->reset_default_tblspc = false;
40437 : (yyval.node) = (Node *) n;
40438 : }
40439 : #line 40440 "gram.c"
40440 18 : break;
40441 :
40442 1378 : case 1103: /* opt_unique: UNIQUE */
40443 : #line 8258 "gram.y"
40444 : { (yyval.boolean) = true; }
40445 : #line 40446 "gram.c"
40446 1378 : break;
40447 :
40448 5494 : case 1104: /* opt_unique: %empty */
40449 : #line 8259 "gram.y"
40450 : { (yyval.boolean) = false; }
40451 : #line 40452 "gram.c"
40452 5494 : break;
40453 :
40454 3268 : case 1105: /* access_method_clause: USING name */
40455 : #line 8263 "gram.y"
40456 : { (yyval.str) = (yyvsp[0].str); }
40457 : #line 40458 "gram.c"
40458 3268 : break;
40459 :
40460 3836 : case 1106: /* access_method_clause: %empty */
40461 : #line 8264 "gram.y"
40462 : { (yyval.str) = DEFAULT_INDEX_TYPE; }
40463 : #line 40464 "gram.c"
40464 3836 : break;
40465 :
40466 8294 : case 1107: /* index_params: index_elem */
40467 : #line 8267 "gram.y"
40468 : { (yyval.list) = list_make1((yyvsp[0].ielem)); }
40469 : #line 40470 "gram.c"
40470 8294 : break;
40471 :
40472 2322 : case 1108: /* index_params: index_params ',' index_elem */
40473 : #line 8268 "gram.y"
40474 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); }
40475 : #line 40476 "gram.c"
40476 2322 : break;
40477 :
40478 11224 : case 1109: /* index_elem_options: opt_collate opt_qualified_name opt_asc_desc opt_nulls_order */
40479 : #line 8274 "gram.y"
40480 : {
40481 : (yyval.ielem) = makeNode(IndexElem);
40482 : (yyval.ielem)->name = NULL;
40483 : (yyval.ielem)->expr = NULL;
40484 : (yyval.ielem)->indexcolname = NULL;
40485 : (yyval.ielem)->collation = (yyvsp[-3].list);
40486 : (yyval.ielem)->opclass = (yyvsp[-2].list);
40487 : (yyval.ielem)->opclassopts = NIL;
40488 : (yyval.ielem)->ordering = (yyvsp[-1].ival);
40489 : (yyval.ielem)->nulls_ordering = (yyvsp[0].ival);
40490 : }
40491 : #line 40492 "gram.c"
40492 11224 : break;
40493 :
40494 142 : case 1110: /* index_elem_options: opt_collate any_name reloptions opt_asc_desc opt_nulls_order */
40495 : #line 8286 "gram.y"
40496 : {
40497 : (yyval.ielem) = makeNode(IndexElem);
40498 : (yyval.ielem)->name = NULL;
40499 : (yyval.ielem)->expr = NULL;
40500 : (yyval.ielem)->indexcolname = NULL;
40501 : (yyval.ielem)->collation = (yyvsp[-4].list);
40502 : (yyval.ielem)->opclass = (yyvsp[-3].list);
40503 : (yyval.ielem)->opclassopts = (yyvsp[-2].list);
40504 : (yyval.ielem)->ordering = (yyvsp[-1].ival);
40505 : (yyval.ielem)->nulls_ordering = (yyvsp[0].ival);
40506 : }
40507 : #line 40508 "gram.c"
40508 142 : break;
40509 :
40510 10242 : case 1111: /* index_elem: ColId index_elem_options */
40511 : #line 8305 "gram.y"
40512 : {
40513 : (yyval.ielem) = (yyvsp[0].ielem);
40514 : (yyval.ielem)->name = (yyvsp[-1].str);
40515 : }
40516 : #line 40517 "gram.c"
40517 10242 : break;
40518 :
40519 612 : case 1112: /* index_elem: func_expr_windowless index_elem_options */
40520 : #line 8310 "gram.y"
40521 : {
40522 : (yyval.ielem) = (yyvsp[0].ielem);
40523 : (yyval.ielem)->expr = (yyvsp[-1].node);
40524 : }
40525 : #line 40526 "gram.c"
40526 612 : break;
40527 :
40528 512 : case 1113: /* index_elem: '(' a_expr ')' index_elem_options */
40529 : #line 8315 "gram.y"
40530 : {
40531 : (yyval.ielem) = (yyvsp[0].ielem);
40532 : (yyval.ielem)->expr = (yyvsp[-2].node);
40533 : }
40534 : #line 40535 "gram.c"
40535 512 : break;
40536 :
40537 232 : case 1114: /* opt_include: INCLUDE '(' index_including_params ')' */
40538 : #line 8321 "gram.y"
40539 : { (yyval.list) = (yyvsp[-1].list); }
40540 : #line 40541 "gram.c"
40541 232 : break;
40542 :
40543 6634 : case 1115: /* opt_include: %empty */
40544 : #line 8322 "gram.y"
40545 : { (yyval.list) = NIL; }
40546 : #line 40547 "gram.c"
40547 6634 : break;
40548 :
40549 232 : case 1116: /* index_including_params: index_elem */
40550 : #line 8325 "gram.y"
40551 : { (yyval.list) = list_make1((yyvsp[0].ielem)); }
40552 : #line 40553 "gram.c"
40553 232 : break;
40554 :
40555 170 : case 1117: /* index_including_params: index_including_params ',' index_elem */
40556 : #line 8326 "gram.y"
40557 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].ielem)); }
40558 : #line 40559 "gram.c"
40559 170 : break;
40560 :
40561 192 : case 1118: /* opt_collate: COLLATE any_name */
40562 : #line 8329 "gram.y"
40563 : { (yyval.list) = (yyvsp[0].list); }
40564 : #line 40565 "gram.c"
40565 192 : break;
40566 :
40567 16792 : case 1119: /* opt_collate: %empty */
40568 : #line 8330 "gram.y"
40569 : { (yyval.list) = NIL; }
40570 : #line 40571 "gram.c"
40571 16792 : break;
40572 :
40573 1818 : case 1120: /* opt_asc_desc: ASC */
40574 : #line 8334 "gram.y"
40575 : { (yyval.ival) = SORTBY_ASC; }
40576 : #line 40577 "gram.c"
40577 1818 : break;
40578 :
40579 3516 : case 1121: /* opt_asc_desc: DESC */
40580 : #line 8335 "gram.y"
40581 : { (yyval.ival) = SORTBY_DESC; }
40582 : #line 40583 "gram.c"
40583 3516 : break;
40584 :
40585 116742 : case 1122: /* opt_asc_desc: %empty */
40586 : #line 8336 "gram.y"
40587 : { (yyval.ival) = SORTBY_DEFAULT; }
40588 : #line 40589 "gram.c"
40589 116742 : break;
40590 :
40591 342 : case 1123: /* opt_nulls_order: NULLS_LA FIRST_P */
40592 : #line 8339 "gram.y"
40593 : { (yyval.ival) = SORTBY_NULLS_FIRST; }
40594 : #line 40595 "gram.c"
40595 342 : break;
40596 :
40597 1732 : case 1124: /* opt_nulls_order: NULLS_LA LAST_P */
40598 : #line 8340 "gram.y"
40599 : { (yyval.ival) = SORTBY_NULLS_LAST; }
40600 : #line 40601 "gram.c"
40601 1732 : break;
40602 :
40603 120222 : case 1125: /* opt_nulls_order: %empty */
40604 : #line 8341 "gram.y"
40605 : { (yyval.ival) = SORTBY_NULLS_DEFAULT; }
40606 : #line 40607 "gram.c"
40607 120222 : break;
40608 :
40609 23434 : case 1126: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS func_return opt_createfunc_opt_list opt_routine_body */
40610 : #line 8359 "gram.y"
40611 : {
40612 : CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
40613 :
40614 : n->is_procedure = false;
40615 : n->replace = (yyvsp[-7].boolean);
40616 : n->funcname = (yyvsp[-5].list);
40617 : n->parameters = (yyvsp[-4].list);
40618 : n->returnType = (yyvsp[-2].typnam);
40619 : n->options = (yyvsp[-1].list);
40620 : n->sql_body = (yyvsp[0].node);
40621 : (yyval.node) = (Node *) n;
40622 : }
40623 : #line 40624 "gram.c"
40624 23434 : break;
40625 :
40626 202 : case 1127: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults RETURNS TABLE '(' table_func_column_list ')' opt_createfunc_opt_list opt_routine_body */
40627 : #line 8373 "gram.y"
40628 : {
40629 : CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
40630 :
40631 : n->is_procedure = false;
40632 : n->replace = (yyvsp[-10].boolean);
40633 : n->funcname = (yyvsp[-8].list);
40634 : n->parameters = mergeTableFuncParameters((yyvsp[-7].list), (yyvsp[-3].list), yyscanner);
40635 : n->returnType = TableFuncTypeName((yyvsp[-3].list));
40636 : n->returnType->location = (yylsp[-5]);
40637 : n->options = (yyvsp[-1].list);
40638 : n->sql_body = (yyvsp[0].node);
40639 : (yyval.node) = (Node *) n;
40640 : }
40641 : #line 40642 "gram.c"
40642 202 : break;
40643 :
40644 488 : case 1128: /* CreateFunctionStmt: CREATE opt_or_replace FUNCTION func_name func_args_with_defaults opt_createfunc_opt_list opt_routine_body */
40645 : #line 8388 "gram.y"
40646 : {
40647 : CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
40648 :
40649 : n->is_procedure = false;
40650 : n->replace = (yyvsp[-5].boolean);
40651 : n->funcname = (yyvsp[-3].list);
40652 : n->parameters = (yyvsp[-2].list);
40653 : n->returnType = NULL;
40654 : n->options = (yyvsp[-1].list);
40655 : n->sql_body = (yyvsp[0].node);
40656 : (yyval.node) = (Node *) n;
40657 : }
40658 : #line 40659 "gram.c"
40659 488 : break;
40660 :
40661 392 : case 1129: /* CreateFunctionStmt: CREATE opt_or_replace PROCEDURE func_name func_args_with_defaults opt_createfunc_opt_list opt_routine_body */
40662 : #line 8402 "gram.y"
40663 : {
40664 : CreateFunctionStmt *n = makeNode(CreateFunctionStmt);
40665 :
40666 : n->is_procedure = true;
40667 : n->replace = (yyvsp[-5].boolean);
40668 : n->funcname = (yyvsp[-3].list);
40669 : n->parameters = (yyvsp[-2].list);
40670 : n->returnType = NULL;
40671 : n->options = (yyvsp[-1].list);
40672 : n->sql_body = (yyvsp[0].node);
40673 : (yyval.node) = (Node *) n;
40674 : }
40675 : #line 40676 "gram.c"
40676 392 : break;
40677 :
40678 9814 : case 1130: /* opt_or_replace: OR REPLACE */
40679 : #line 8417 "gram.y"
40680 : { (yyval.boolean) = true; }
40681 : #line 40682 "gram.c"
40682 9814 : break;
40683 :
40684 20402 : case 1131: /* opt_or_replace: %empty */
40685 : #line 8418 "gram.y"
40686 : { (yyval.boolean) = false; }
40687 : #line 40688 "gram.c"
40688 20402 : break;
40689 :
40690 10236 : case 1132: /* func_args: '(' func_args_list ')' */
40691 : #line 8421 "gram.y"
40692 : { (yyval.list) = (yyvsp[-1].list); }
40693 : #line 40694 "gram.c"
40694 10236 : break;
40695 :
40696 5816 : case 1133: /* func_args: '(' ')' */
40697 : #line 8422 "gram.y"
40698 : { (yyval.list) = NIL; }
40699 : #line 40700 "gram.c"
40700 5816 : break;
40701 :
40702 10236 : case 1134: /* func_args_list: func_arg */
40703 : #line 8426 "gram.y"
40704 : { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
40705 : #line 40706 "gram.c"
40706 10236 : break;
40707 :
40708 8262 : case 1135: /* func_args_list: func_args_list ',' func_arg */
40709 : #line 8427 "gram.y"
40710 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
40711 : #line 40712 "gram.c"
40712 8262 : break;
40713 :
40714 12290 : case 1136: /* function_with_argtypes_list: function_with_argtypes */
40715 : #line 8431 "gram.y"
40716 : { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
40717 : #line 40718 "gram.c"
40718 12290 : break;
40719 :
40720 84 : case 1137: /* function_with_argtypes_list: function_with_argtypes_list ',' function_with_argtypes */
40721 : #line 8433 "gram.y"
40722 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
40723 : #line 40724 "gram.c"
40724 84 : break;
40725 :
40726 16052 : case 1138: /* function_with_argtypes: func_name func_args */
40727 : #line 8438 "gram.y"
40728 : {
40729 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
40730 :
40731 : n->objname = (yyvsp[-1].list);
40732 : n->objargs = extractArgTypes((yyvsp[0].list));
40733 : n->objfuncargs = (yyvsp[0].list);
40734 : (yyval.objwithargs) = n;
40735 : }
40736 : #line 40737 "gram.c"
40737 16052 : break;
40738 :
40739 0 : case 1139: /* function_with_argtypes: type_func_name_keyword */
40740 : #line 8452 "gram.y"
40741 : {
40742 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
40743 :
40744 : n->objname = list_make1(makeString(pstrdup((yyvsp[0].keyword))));
40745 : n->args_unspecified = true;
40746 : (yyval.objwithargs) = n;
40747 : }
40748 : #line 40749 "gram.c"
40749 0 : break;
40750 :
40751 346 : case 1140: /* function_with_argtypes: ColId */
40752 : #line 8460 "gram.y"
40753 : {
40754 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
40755 :
40756 : n->objname = list_make1(makeString((yyvsp[0].str)));
40757 : n->args_unspecified = true;
40758 : (yyval.objwithargs) = n;
40759 : }
40760 : #line 40761 "gram.c"
40761 346 : break;
40762 :
40763 28 : case 1141: /* function_with_argtypes: ColId indirection */
40764 : #line 8468 "gram.y"
40765 : {
40766 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
40767 :
40768 : n->objname = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)),
40769 : yyscanner);
40770 : n->args_unspecified = true;
40771 : (yyval.objwithargs) = n;
40772 : }
40773 : #line 40774 "gram.c"
40774 28 : break;
40775 :
40776 19826 : case 1142: /* func_args_with_defaults: '(' func_args_with_defaults_list ')' */
40777 : #line 8483 "gram.y"
40778 : { (yyval.list) = (yyvsp[-1].list); }
40779 : #line 40780 "gram.c"
40780 19826 : break;
40781 :
40782 4690 : case 1143: /* func_args_with_defaults: '(' ')' */
40783 : #line 8484 "gram.y"
40784 : { (yyval.list) = NIL; }
40785 : #line 40786 "gram.c"
40786 4690 : break;
40787 :
40788 19826 : case 1144: /* func_args_with_defaults_list: func_arg_with_default */
40789 : #line 8488 "gram.y"
40790 : { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
40791 : #line 40792 "gram.c"
40792 19826 : break;
40793 :
40794 33152 : case 1145: /* func_args_with_defaults_list: func_args_with_defaults_list ',' func_arg_with_default */
40795 : #line 8490 "gram.y"
40796 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
40797 : #line 40798 "gram.c"
40798 33152 : break;
40799 :
40800 16096 : case 1146: /* func_arg: arg_class param_name func_type */
40801 : #line 8505 "gram.y"
40802 : {
40803 : FunctionParameter *n = makeNode(FunctionParameter);
40804 :
40805 : n->name = (yyvsp[-1].str);
40806 : n->argType = (yyvsp[0].typnam);
40807 : n->mode = (yyvsp[-2].fun_param_mode);
40808 : n->defexpr = NULL;
40809 : n->location = (yylsp[-2]);
40810 : (yyval.fun_param) = n;
40811 : }
40812 : #line 40813 "gram.c"
40813 16096 : break;
40814 :
40815 412 : case 1147: /* func_arg: param_name arg_class func_type */
40816 : #line 8516 "gram.y"
40817 : {
40818 : FunctionParameter *n = makeNode(FunctionParameter);
40819 :
40820 : n->name = (yyvsp[-2].str);
40821 : n->argType = (yyvsp[0].typnam);
40822 : n->mode = (yyvsp[-1].fun_param_mode);
40823 : n->defexpr = NULL;
40824 : n->location = (yylsp[-2]);
40825 : (yyval.fun_param) = n;
40826 : }
40827 : #line 40828 "gram.c"
40828 412 : break;
40829 :
40830 15630 : case 1148: /* func_arg: param_name func_type */
40831 : #line 8527 "gram.y"
40832 : {
40833 : FunctionParameter *n = makeNode(FunctionParameter);
40834 :
40835 : n->name = (yyvsp[-1].str);
40836 : n->argType = (yyvsp[0].typnam);
40837 : n->mode = FUNC_PARAM_DEFAULT;
40838 : n->defexpr = NULL;
40839 : n->location = (yylsp[-1]);
40840 : (yyval.fun_param) = n;
40841 : }
40842 : #line 40843 "gram.c"
40843 15630 : break;
40844 :
40845 354 : case 1149: /* func_arg: arg_class func_type */
40846 : #line 8538 "gram.y"
40847 : {
40848 : FunctionParameter *n = makeNode(FunctionParameter);
40849 :
40850 : n->name = NULL;
40851 : n->argType = (yyvsp[0].typnam);
40852 : n->mode = (yyvsp[-1].fun_param_mode);
40853 : n->defexpr = NULL;
40854 : n->location = (yylsp[-1]);
40855 : (yyval.fun_param) = n;
40856 : }
40857 : #line 40858 "gram.c"
40858 354 : break;
40859 :
40860 40082 : case 1150: /* func_arg: func_type */
40861 : #line 8549 "gram.y"
40862 : {
40863 : FunctionParameter *n = makeNode(FunctionParameter);
40864 :
40865 : n->name = NULL;
40866 : n->argType = (yyvsp[0].typnam);
40867 : n->mode = FUNC_PARAM_DEFAULT;
40868 : n->defexpr = NULL;
40869 : n->location = (yylsp[0]);
40870 : (yyval.fun_param) = n;
40871 : }
40872 : #line 40873 "gram.c"
40873 40082 : break;
40874 :
40875 3964 : case 1151: /* arg_class: IN_P */
40876 : #line 8562 "gram.y"
40877 : { (yyval.fun_param_mode) = FUNC_PARAM_IN; }
40878 : #line 40879 "gram.c"
40879 3964 : break;
40880 :
40881 12090 : case 1152: /* arg_class: OUT_P */
40882 : #line 8563 "gram.y"
40883 : { (yyval.fun_param_mode) = FUNC_PARAM_OUT; }
40884 : #line 40885 "gram.c"
40885 12090 : break;
40886 :
40887 218 : case 1153: /* arg_class: INOUT */
40888 : #line 8564 "gram.y"
40889 : { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; }
40890 : #line 40891 "gram.c"
40891 218 : break;
40892 :
40893 0 : case 1154: /* arg_class: IN_P OUT_P */
40894 : #line 8565 "gram.y"
40895 : { (yyval.fun_param_mode) = FUNC_PARAM_INOUT; }
40896 : #line 40897 "gram.c"
40897 0 : break;
40898 :
40899 590 : case 1155: /* arg_class: VARIADIC */
40900 : #line 8566 "gram.y"
40901 : { (yyval.fun_param_mode) = FUNC_PARAM_VARIADIC; }
40902 : #line 40903 "gram.c"
40903 590 : break;
40904 :
40905 23434 : case 1157: /* func_return: func_type */
40906 : #line 8577 "gram.y"
40907 : {
40908 : /* We can catch over-specified results here if we want to,
40909 : * but for now better to silently swallow typmod, etc.
40910 : * - thomas 2000-03-22
40911 : */
40912 : (yyval.typnam) = (yyvsp[0].typnam);
40913 : }
40914 : #line 40915 "gram.c"
40915 23434 : break;
40916 :
40917 117304 : case 1158: /* func_type: Typename */
40918 : #line 8591 "gram.y"
40919 : { (yyval.typnam) = (yyvsp[0].typnam); }
40920 : #line 40921 "gram.c"
40921 117304 : break;
40922 :
40923 18 : case 1159: /* func_type: type_function_name attrs '%' TYPE_P */
40924 : #line 8593 "gram.y"
40925 : {
40926 : (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list)));
40927 : (yyval.typnam)->pct_type = true;
40928 : (yyval.typnam)->location = (yylsp[-3]);
40929 : }
40930 : #line 40931 "gram.c"
40931 18 : break;
40932 :
40933 6 : case 1160: /* func_type: SETOF type_function_name attrs '%' TYPE_P */
40934 : #line 8599 "gram.y"
40935 : {
40936 : (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-3].str)), (yyvsp[-2].list)));
40937 : (yyval.typnam)->pct_type = true;
40938 : (yyval.typnam)->setof = true;
40939 : (yyval.typnam)->location = (yylsp[-3]);
40940 : }
40941 : #line 40942 "gram.c"
40942 6 : break;
40943 :
40944 46678 : case 1161: /* func_arg_with_default: func_arg */
40945 : #line 8609 "gram.y"
40946 : {
40947 : (yyval.fun_param) = (yyvsp[0].fun_param);
40948 : }
40949 : #line 40950 "gram.c"
40950 46678 : break;
40951 :
40952 6104 : case 1162: /* func_arg_with_default: func_arg DEFAULT a_expr */
40953 : #line 8613 "gram.y"
40954 : {
40955 : (yyval.fun_param) = (yyvsp[-2].fun_param);
40956 : (yyval.fun_param)->defexpr = (yyvsp[0].node);
40957 : }
40958 : #line 40959 "gram.c"
40959 6104 : break;
40960 :
40961 196 : case 1163: /* func_arg_with_default: func_arg '=' a_expr */
40962 : #line 8618 "gram.y"
40963 : {
40964 : (yyval.fun_param) = (yyvsp[-2].fun_param);
40965 : (yyval.fun_param)->defexpr = (yyvsp[0].node);
40966 : }
40967 : #line 40968 "gram.c"
40968 196 : break;
40969 :
40970 1098 : case 1164: /* aggr_arg: func_arg */
40971 : #line 8626 "gram.y"
40972 : {
40973 : if (!((yyvsp[0].fun_param)->mode == FUNC_PARAM_DEFAULT ||
40974 : (yyvsp[0].fun_param)->mode == FUNC_PARAM_IN ||
40975 : (yyvsp[0].fun_param)->mode == FUNC_PARAM_VARIADIC))
40976 : ereport(ERROR,
40977 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
40978 : errmsg("aggregates cannot have output arguments"),
40979 : parser_errposition((yylsp[0]))));
40980 : (yyval.fun_param) = (yyvsp[0].fun_param);
40981 : }
40982 : #line 40983 "gram.c"
40983 1098 : break;
40984 :
40985 170 : case 1165: /* aggr_args: '(' '*' ')' */
40986 : #line 8668 "gram.y"
40987 : {
40988 : (yyval.list) = list_make2(NIL, makeInteger(-1));
40989 : }
40990 : #line 40991 "gram.c"
40991 170 : break;
40992 :
40993 882 : case 1166: /* aggr_args: '(' aggr_args_list ')' */
40994 : #line 8672 "gram.y"
40995 : {
40996 : (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(-1));
40997 : }
40998 : #line 40999 "gram.c"
40999 882 : break;
41000 :
41001 6 : case 1167: /* aggr_args: '(' ORDER BY aggr_args_list ')' */
41002 : #line 8676 "gram.y"
41003 : {
41004 : (yyval.list) = list_make2((yyvsp[-1].list), makeInteger(0));
41005 : }
41006 : #line 41007 "gram.c"
41007 6 : break;
41008 :
41009 40 : case 1168: /* aggr_args: '(' aggr_args_list ORDER BY aggr_args_list ')' */
41010 : #line 8680 "gram.y"
41011 : {
41012 : /* this is the only case requiring consistency checking */
41013 : (yyval.list) = makeOrderedSetArgs((yyvsp[-4].list), (yyvsp[-1].list), yyscanner);
41014 : }
41015 : #line 41016 "gram.c"
41016 40 : break;
41017 :
41018 968 : case 1169: /* aggr_args_list: aggr_arg */
41019 : #line 8687 "gram.y"
41020 : { (yyval.list) = list_make1((yyvsp[0].fun_param)); }
41021 : #line 41022 "gram.c"
41022 968 : break;
41023 :
41024 130 : case 1170: /* aggr_args_list: aggr_args_list ',' aggr_arg */
41025 : #line 8688 "gram.y"
41026 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param)); }
41027 : #line 41028 "gram.c"
41028 130 : break;
41029 :
41030 460 : case 1171: /* aggregate_with_argtypes: func_name aggr_args */
41031 : #line 8693 "gram.y"
41032 : {
41033 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
41034 :
41035 : n->objname = (yyvsp[-1].list);
41036 : n->objargs = extractAggrArgTypes((yyvsp[0].list));
41037 : n->objfuncargs = (List *) linitial((yyvsp[0].list));
41038 : (yyval.objwithargs) = n;
41039 : }
41040 : #line 41041 "gram.c"
41041 460 : break;
41042 :
41043 104 : case 1172: /* aggregate_with_argtypes_list: aggregate_with_argtypes */
41044 : #line 8704 "gram.y"
41045 : { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
41046 : #line 41047 "gram.c"
41047 104 : break;
41048 :
41049 0 : case 1173: /* aggregate_with_argtypes_list: aggregate_with_argtypes_list ',' aggregate_with_argtypes */
41050 : #line 8706 "gram.y"
41051 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
41052 : #line 41053 "gram.c"
41053 0 : break;
41054 :
41055 54 : case 1175: /* opt_createfunc_opt_list: %empty */
41056 : #line 8711 "gram.y"
41057 : { (yyval.list) = NIL; }
41058 : #line 41059 "gram.c"
41059 54 : break;
41060 :
41061 24462 : case 1176: /* createfunc_opt_list: createfunc_opt_item */
41062 : #line 8716 "gram.y"
41063 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
41064 : #line 41065 "gram.c"
41065 24462 : break;
41066 :
41067 63770 : case 1177: /* createfunc_opt_list: createfunc_opt_list createfunc_opt_item */
41068 : #line 8717 "gram.y"
41069 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
41070 : #line 41071 "gram.c"
41071 63770 : break;
41072 :
41073 368 : case 1178: /* common_func_opt_item: CALLED ON NULL_P INPUT_P */
41074 : #line 8725 "gram.y"
41075 : {
41076 : (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(false), (yylsp[-3]));
41077 : }
41078 : #line 41079 "gram.c"
41079 368 : break;
41080 :
41081 864 : case 1179: /* common_func_opt_item: RETURNS NULL_P ON NULL_P INPUT_P */
41082 : #line 8729 "gram.y"
41083 : {
41084 : (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[-4]));
41085 : }
41086 : #line 41087 "gram.c"
41087 864 : break;
41088 :
41089 12560 : case 1180: /* common_func_opt_item: STRICT_P */
41090 : #line 8733 "gram.y"
41091 : {
41092 : (yyval.defelt) = makeDefElem("strict", (Node *) makeBoolean(true), (yylsp[0]));
41093 : }
41094 : #line 41095 "gram.c"
41095 12560 : break;
41096 :
41097 9166 : case 1181: /* common_func_opt_item: IMMUTABLE */
41098 : #line 8737 "gram.y"
41099 : {
41100 : (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("immutable"), (yylsp[0]));
41101 : }
41102 : #line 41103 "gram.c"
41103 9166 : break;
41104 :
41105 2486 : case 1182: /* common_func_opt_item: STABLE */
41106 : #line 8741 "gram.y"
41107 : {
41108 : (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("stable"), (yylsp[0]));
41109 : }
41110 : #line 41111 "gram.c"
41111 2486 : break;
41112 :
41113 1644 : case 1183: /* common_func_opt_item: VOLATILE */
41114 : #line 8745 "gram.y"
41115 : {
41116 : (yyval.defelt) = makeDefElem("volatility", (Node *) makeString("volatile"), (yylsp[0]));
41117 : }
41118 : #line 41119 "gram.c"
41119 1644 : break;
41120 :
41121 0 : case 1184: /* common_func_opt_item: EXTERNAL SECURITY DEFINER */
41122 : #line 8749 "gram.y"
41123 : {
41124 : (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[-2]));
41125 : }
41126 : #line 41127 "gram.c"
41127 0 : break;
41128 :
41129 0 : case 1185: /* common_func_opt_item: EXTERNAL SECURITY INVOKER */
41130 : #line 8753 "gram.y"
41131 : {
41132 : (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[-2]));
41133 : }
41134 : #line 41135 "gram.c"
41135 0 : break;
41136 :
41137 58 : case 1186: /* common_func_opt_item: SECURITY DEFINER */
41138 : #line 8757 "gram.y"
41139 : {
41140 : (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(true), (yylsp[-1]));
41141 : }
41142 : #line 41143 "gram.c"
41143 58 : break;
41144 :
41145 18 : case 1187: /* common_func_opt_item: SECURITY INVOKER */
41146 : #line 8761 "gram.y"
41147 : {
41148 : (yyval.defelt) = makeDefElem("security", (Node *) makeBoolean(false), (yylsp[-1]));
41149 : }
41150 : #line 41151 "gram.c"
41151 18 : break;
41152 :
41153 50 : case 1188: /* common_func_opt_item: LEAKPROOF */
41154 : #line 8765 "gram.y"
41155 : {
41156 : (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(true), (yylsp[0]));
41157 : }
41158 : #line 41159 "gram.c"
41159 50 : break;
41160 :
41161 12 : case 1189: /* common_func_opt_item: NOT LEAKPROOF */
41162 : #line 8769 "gram.y"
41163 : {
41164 : (yyval.defelt) = makeDefElem("leakproof", (Node *) makeBoolean(false), (yylsp[-1]));
41165 : }
41166 : #line 41167 "gram.c"
41167 12 : break;
41168 :
41169 4270 : case 1190: /* common_func_opt_item: COST NumericOnly */
41170 : #line 8773 "gram.y"
41171 : {
41172 : (yyval.defelt) = makeDefElem("cost", (Node *) (yyvsp[0].node), (yylsp[-1]));
41173 : }
41174 : #line 41175 "gram.c"
41175 4270 : break;
41176 :
41177 588 : case 1191: /* common_func_opt_item: ROWS NumericOnly */
41178 : #line 8777 "gram.y"
41179 : {
41180 : (yyval.defelt) = makeDefElem("rows", (Node *) (yyvsp[0].node), (yylsp[-1]));
41181 : }
41182 : #line 41183 "gram.c"
41183 588 : break;
41184 :
41185 116 : case 1192: /* common_func_opt_item: SUPPORT any_name */
41186 : #line 8781 "gram.y"
41187 : {
41188 : (yyval.defelt) = makeDefElem("support", (Node *) (yyvsp[0].list), (yylsp[-1]));
41189 : }
41190 : #line 41191 "gram.c"
41191 116 : break;
41192 :
41193 160 : case 1193: /* common_func_opt_item: FunctionSetResetClause */
41194 : #line 8785 "gram.y"
41195 : {
41196 : /* we abuse the normal content of a DefElem here */
41197 : (yyval.defelt) = makeDefElem("set", (Node *) (yyvsp[0].vsetstmt), (yylsp[0]));
41198 : }
41199 : #line 41200 "gram.c"
41200 160 : break;
41201 :
41202 13018 : case 1194: /* common_func_opt_item: PARALLEL ColId */
41203 : #line 8790 "gram.y"
41204 : {
41205 : (yyval.defelt) = makeDefElem("parallel", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
41206 : }
41207 : #line 41208 "gram.c"
41208 13018 : break;
41209 :
41210 18948 : case 1195: /* createfunc_opt_item: AS func_as */
41211 : #line 8797 "gram.y"
41212 : {
41213 : (yyval.defelt) = makeDefElem("as", (Node *) (yyvsp[0].list), (yylsp[-1]));
41214 : }
41215 : #line 41216 "gram.c"
41216 18948 : break;
41217 :
41218 24442 : case 1196: /* createfunc_opt_item: LANGUAGE NonReservedWord_or_Sconst */
41219 : #line 8801 "gram.y"
41220 : {
41221 : (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
41222 : }
41223 : #line 41224 "gram.c"
41224 24442 : break;
41225 :
41226 118 : case 1197: /* createfunc_opt_item: TRANSFORM transform_type_list */
41227 : #line 8805 "gram.y"
41228 : {
41229 : (yyval.defelt) = makeDefElem("transform", (Node *) (yyvsp[0].list), (yylsp[-1]));
41230 : }
41231 : #line 41232 "gram.c"
41232 118 : break;
41233 :
41234 22 : case 1198: /* createfunc_opt_item: WINDOW */
41235 : #line 8809 "gram.y"
41236 : {
41237 : (yyval.defelt) = makeDefElem("window", (Node *) makeBoolean(true), (yylsp[0]));
41238 : }
41239 : #line 41240 "gram.c"
41240 22 : break;
41241 :
41242 44702 : case 1199: /* createfunc_opt_item: common_func_opt_item */
41243 : #line 8813 "gram.y"
41244 : {
41245 : (yyval.defelt) = (yyvsp[0].defelt);
41246 : }
41247 : #line 41248 "gram.c"
41248 44702 : break;
41249 :
41250 15822 : case 1200: /* func_as: Sconst */
41251 : #line 8818 "gram.y"
41252 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
41253 : #line 41254 "gram.c"
41254 15822 : break;
41255 :
41256 3126 : case 1201: /* func_as: Sconst ',' Sconst */
41257 : #line 8820 "gram.y"
41258 : {
41259 : (yyval.list) = list_make2(makeString((yyvsp[-2].str)), makeString((yyvsp[0].str)));
41260 : }
41261 : #line 41262 "gram.c"
41262 3126 : break;
41263 :
41264 4784 : case 1202: /* ReturnStmt: RETURN a_expr */
41265 : #line 8826 "gram.y"
41266 : {
41267 : ReturnStmt *r = makeNode(ReturnStmt);
41268 :
41269 : r->returnval = (Node *) (yyvsp[0].node);
41270 : (yyval.node) = (Node *) r;
41271 : }
41272 : #line 41273 "gram.c"
41273 4784 : break;
41274 :
41275 4778 : case 1203: /* opt_routine_body: ReturnStmt */
41276 : #line 8836 "gram.y"
41277 : {
41278 : (yyval.node) = (yyvsp[0].node);
41279 : }
41280 : #line 41281 "gram.c"
41281 4778 : break;
41282 :
41283 796 : case 1204: /* opt_routine_body: BEGIN_P ATOMIC routine_body_stmt_list END_P */
41284 : #line 8840 "gram.y"
41285 : {
41286 : /*
41287 : * A compound statement is stored as a single-item list
41288 : * containing the list of statements as its member. That
41289 : * way, the parse analysis code can tell apart an empty
41290 : * body from no body at all.
41291 : */
41292 : (yyval.node) = (Node *) list_make1((yyvsp[-1].list));
41293 : }
41294 : #line 41295 "gram.c"
41295 796 : break;
41296 :
41297 18942 : case 1205: /* opt_routine_body: %empty */
41298 : #line 8850 "gram.y"
41299 : {
41300 : (yyval.node) = NULL;
41301 : }
41302 : #line 41303 "gram.c"
41303 18942 : break;
41304 :
41305 810 : case 1206: /* routine_body_stmt_list: routine_body_stmt_list routine_body_stmt ';' */
41306 : #line 8857 "gram.y"
41307 : {
41308 : /* As in stmtmulti, discard empty statements */
41309 : if ((yyvsp[-1].node) != NULL)
41310 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[-1].node));
41311 : else
41312 : (yyval.list) = (yyvsp[-2].list);
41313 : }
41314 : #line 41315 "gram.c"
41315 810 : break;
41316 :
41317 796 : case 1207: /* routine_body_stmt_list: %empty */
41318 : #line 8865 "gram.y"
41319 : {
41320 : (yyval.list) = NIL;
41321 : }
41322 : #line 41323 "gram.c"
41323 796 : break;
41324 :
41325 118 : case 1210: /* transform_type_list: FOR TYPE_P Typename */
41326 : #line 8876 "gram.y"
41327 : { (yyval.list) = list_make1((yyvsp[0].typnam)); }
41328 : #line 41329 "gram.c"
41329 118 : break;
41330 :
41331 4 : case 1211: /* transform_type_list: transform_type_list ',' FOR TYPE_P Typename */
41332 : #line 8877 "gram.y"
41333 : { (yyval.list) = lappend((yyvsp[-4].list), (yyvsp[0].typnam)); }
41334 : #line 41335 "gram.c"
41335 4 : break;
41336 :
41337 606 : case 1212: /* opt_definition: WITH definition */
41338 : #line 8881 "gram.y"
41339 : { (yyval.list) = (yyvsp[0].list); }
41340 : #line 41341 "gram.c"
41341 606 : break;
41342 :
41343 10270 : case 1213: /* opt_definition: %empty */
41344 : #line 8882 "gram.y"
41345 : { (yyval.list) = NIL; }
41346 : #line 41347 "gram.c"
41347 10270 : break;
41348 :
41349 462 : case 1214: /* table_func_column: param_name func_type */
41350 : #line 8886 "gram.y"
41351 : {
41352 : FunctionParameter *n = makeNode(FunctionParameter);
41353 :
41354 : n->name = (yyvsp[-1].str);
41355 : n->argType = (yyvsp[0].typnam);
41356 : n->mode = FUNC_PARAM_TABLE;
41357 : n->defexpr = NULL;
41358 : n->location = (yylsp[-1]);
41359 : (yyval.fun_param) = n;
41360 : }
41361 : #line 41362 "gram.c"
41362 462 : break;
41363 :
41364 202 : case 1215: /* table_func_column_list: table_func_column */
41365 : #line 8900 "gram.y"
41366 : {
41367 : (yyval.list) = list_make1((yyvsp[0].fun_param));
41368 : }
41369 : #line 41370 "gram.c"
41370 202 : break;
41371 :
41372 260 : case 1216: /* table_func_column_list: table_func_column_list ',' table_func_column */
41373 : #line 8904 "gram.y"
41374 : {
41375 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].fun_param));
41376 : }
41377 : #line 41378 "gram.c"
41378 260 : break;
41379 :
41380 654 : case 1217: /* AlterFunctionStmt: ALTER FUNCTION function_with_argtypes alterfunc_opt_list opt_restrict */
41381 : #line 8919 "gram.y"
41382 : {
41383 : AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
41384 :
41385 : n->objtype = OBJECT_FUNCTION;
41386 : n->func = (yyvsp[-2].objwithargs);
41387 : n->actions = (yyvsp[-1].list);
41388 : (yyval.node) = (Node *) n;
41389 : }
41390 : #line 41391 "gram.c"
41391 654 : break;
41392 :
41393 18 : case 1218: /* AlterFunctionStmt: ALTER PROCEDURE function_with_argtypes alterfunc_opt_list opt_restrict */
41394 : #line 8928 "gram.y"
41395 : {
41396 : AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
41397 :
41398 : n->objtype = OBJECT_PROCEDURE;
41399 : n->func = (yyvsp[-2].objwithargs);
41400 : n->actions = (yyvsp[-1].list);
41401 : (yyval.node) = (Node *) n;
41402 : }
41403 : #line 41404 "gram.c"
41404 18 : break;
41405 :
41406 0 : case 1219: /* AlterFunctionStmt: ALTER ROUTINE function_with_argtypes alterfunc_opt_list opt_restrict */
41407 : #line 8937 "gram.y"
41408 : {
41409 : AlterFunctionStmt *n = makeNode(AlterFunctionStmt);
41410 :
41411 : n->objtype = OBJECT_ROUTINE;
41412 : n->func = (yyvsp[-2].objwithargs);
41413 : n->actions = (yyvsp[-1].list);
41414 : (yyval.node) = (Node *) n;
41415 : }
41416 : #line 41417 "gram.c"
41417 0 : break;
41418 :
41419 672 : case 1220: /* alterfunc_opt_list: common_func_opt_item */
41420 : #line 8949 "gram.y"
41421 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
41422 : #line 41423 "gram.c"
41423 672 : break;
41424 :
41425 4 : case 1221: /* alterfunc_opt_list: alterfunc_opt_list common_func_opt_item */
41426 : #line 8950 "gram.y"
41427 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
41428 : #line 41429 "gram.c"
41429 4 : break;
41430 :
41431 3264 : case 1224: /* RemoveFuncStmt: DROP FUNCTION function_with_argtypes_list opt_drop_behavior */
41432 : #line 8974 "gram.y"
41433 : {
41434 : DropStmt *n = makeNode(DropStmt);
41435 :
41436 : n->removeType = OBJECT_FUNCTION;
41437 : n->objects = (yyvsp[-1].list);
41438 : n->behavior = (yyvsp[0].dbehavior);
41439 : n->missing_ok = false;
41440 : n->concurrent = false;
41441 : (yyval.node) = (Node *) n;
41442 : }
41443 : #line 41444 "gram.c"
41444 3264 : break;
41445 :
41446 260 : case 1225: /* RemoveFuncStmt: DROP FUNCTION IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
41447 : #line 8985 "gram.y"
41448 : {
41449 : DropStmt *n = makeNode(DropStmt);
41450 :
41451 : n->removeType = OBJECT_FUNCTION;
41452 : n->objects = (yyvsp[-1].list);
41453 : n->behavior = (yyvsp[0].dbehavior);
41454 : n->missing_ok = true;
41455 : n->concurrent = false;
41456 : (yyval.node) = (Node *) n;
41457 : }
41458 : #line 41459 "gram.c"
41459 260 : break;
41460 :
41461 138 : case 1226: /* RemoveFuncStmt: DROP PROCEDURE function_with_argtypes_list opt_drop_behavior */
41462 : #line 8996 "gram.y"
41463 : {
41464 : DropStmt *n = makeNode(DropStmt);
41465 :
41466 : n->removeType = OBJECT_PROCEDURE;
41467 : n->objects = (yyvsp[-1].list);
41468 : n->behavior = (yyvsp[0].dbehavior);
41469 : n->missing_ok = false;
41470 : n->concurrent = false;
41471 : (yyval.node) = (Node *) n;
41472 : }
41473 : #line 41474 "gram.c"
41474 138 : break;
41475 :
41476 6 : case 1227: /* RemoveFuncStmt: DROP PROCEDURE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
41477 : #line 9007 "gram.y"
41478 : {
41479 : DropStmt *n = makeNode(DropStmt);
41480 :
41481 : n->removeType = OBJECT_PROCEDURE;
41482 : n->objects = (yyvsp[-1].list);
41483 : n->behavior = (yyvsp[0].dbehavior);
41484 : n->missing_ok = true;
41485 : n->concurrent = false;
41486 : (yyval.node) = (Node *) n;
41487 : }
41488 : #line 41489 "gram.c"
41489 6 : break;
41490 :
41491 12 : case 1228: /* RemoveFuncStmt: DROP ROUTINE function_with_argtypes_list opt_drop_behavior */
41492 : #line 9018 "gram.y"
41493 : {
41494 : DropStmt *n = makeNode(DropStmt);
41495 :
41496 : n->removeType = OBJECT_ROUTINE;
41497 : n->objects = (yyvsp[-1].list);
41498 : n->behavior = (yyvsp[0].dbehavior);
41499 : n->missing_ok = false;
41500 : n->concurrent = false;
41501 : (yyval.node) = (Node *) n;
41502 : }
41503 : #line 41504 "gram.c"
41504 12 : break;
41505 :
41506 6 : case 1229: /* RemoveFuncStmt: DROP ROUTINE IF_P EXISTS function_with_argtypes_list opt_drop_behavior */
41507 : #line 9029 "gram.y"
41508 : {
41509 : DropStmt *n = makeNode(DropStmt);
41510 :
41511 : n->removeType = OBJECT_ROUTINE;
41512 : n->objects = (yyvsp[-1].list);
41513 : n->behavior = (yyvsp[0].dbehavior);
41514 : n->missing_ok = true;
41515 : n->concurrent = false;
41516 : (yyval.node) = (Node *) n;
41517 : }
41518 : #line 41519 "gram.c"
41519 6 : break;
41520 :
41521 74 : case 1230: /* RemoveAggrStmt: DROP AGGREGATE aggregate_with_argtypes_list opt_drop_behavior */
41522 : #line 9043 "gram.y"
41523 : {
41524 : DropStmt *n = makeNode(DropStmt);
41525 :
41526 : n->removeType = OBJECT_AGGREGATE;
41527 : n->objects = (yyvsp[-1].list);
41528 : n->behavior = (yyvsp[0].dbehavior);
41529 : n->missing_ok = false;
41530 : n->concurrent = false;
41531 : (yyval.node) = (Node *) n;
41532 : }
41533 : #line 41534 "gram.c"
41534 74 : break;
41535 :
41536 30 : case 1231: /* RemoveAggrStmt: DROP AGGREGATE IF_P EXISTS aggregate_with_argtypes_list opt_drop_behavior */
41537 : #line 9054 "gram.y"
41538 : {
41539 : DropStmt *n = makeNode(DropStmt);
41540 :
41541 : n->removeType = OBJECT_AGGREGATE;
41542 : n->objects = (yyvsp[-1].list);
41543 : n->behavior = (yyvsp[0].dbehavior);
41544 : n->missing_ok = true;
41545 : n->concurrent = false;
41546 : (yyval.node) = (Node *) n;
41547 : }
41548 : #line 41549 "gram.c"
41549 30 : break;
41550 :
41551 194 : case 1232: /* RemoveOperStmt: DROP OPERATOR operator_with_argtypes_list opt_drop_behavior */
41552 : #line 9068 "gram.y"
41553 : {
41554 : DropStmt *n = makeNode(DropStmt);
41555 :
41556 : n->removeType = OBJECT_OPERATOR;
41557 : n->objects = (yyvsp[-1].list);
41558 : n->behavior = (yyvsp[0].dbehavior);
41559 : n->missing_ok = false;
41560 : n->concurrent = false;
41561 : (yyval.node) = (Node *) n;
41562 : }
41563 : #line 41564 "gram.c"
41564 194 : break;
41565 :
41566 30 : case 1233: /* RemoveOperStmt: DROP OPERATOR IF_P EXISTS operator_with_argtypes_list opt_drop_behavior */
41567 : #line 9079 "gram.y"
41568 : {
41569 : DropStmt *n = makeNode(DropStmt);
41570 :
41571 : n->removeType = OBJECT_OPERATOR;
41572 : n->objects = (yyvsp[-1].list);
41573 : n->behavior = (yyvsp[0].dbehavior);
41574 : n->missing_ok = true;
41575 : n->concurrent = false;
41576 : (yyval.node) = (Node *) n;
41577 : }
41578 : #line 41579 "gram.c"
41579 30 : break;
41580 :
41581 12 : case 1234: /* oper_argtypes: '(' Typename ')' */
41582 : #line 9093 "gram.y"
41583 : {
41584 : ereport(ERROR,
41585 : (errcode(ERRCODE_SYNTAX_ERROR),
41586 : errmsg("missing argument"),
41587 : errhint("Use NONE to denote the missing argument of a unary operator."),
41588 : parser_errposition((yylsp[0]))));
41589 : }
41590 : #line 41591 "gram.c"
41591 : break;
41592 :
41593 1968 : case 1235: /* oper_argtypes: '(' Typename ',' Typename ')' */
41594 : #line 9101 "gram.y"
41595 : { (yyval.list) = list_make2((yyvsp[-3].typnam), (yyvsp[-1].typnam)); }
41596 : #line 41597 "gram.c"
41597 1968 : break;
41598 :
41599 40 : case 1236: /* oper_argtypes: '(' NONE ',' Typename ')' */
41600 : #line 9103 "gram.y"
41601 : { (yyval.list) = list_make2(NULL, (yyvsp[-1].typnam)); }
41602 : #line 41603 "gram.c"
41603 40 : break;
41604 :
41605 12 : case 1237: /* oper_argtypes: '(' Typename ',' NONE ')' */
41606 : #line 9105 "gram.y"
41607 : { (yyval.list) = list_make2((yyvsp[-3].typnam), NULL); }
41608 : #line 41609 "gram.c"
41609 12 : break;
41610 :
41611 20934 : case 1238: /* any_operator: all_Op */
41612 : #line 9110 "gram.y"
41613 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
41614 : #line 41615 "gram.c"
41615 20934 : break;
41616 :
41617 16014 : case 1239: /* any_operator: ColId '.' any_operator */
41618 : #line 9112 "gram.y"
41619 : { (yyval.list) = lcons(makeString((yyvsp[-2].str)), (yyvsp[0].list)); }
41620 : #line 41621 "gram.c"
41621 16014 : break;
41622 :
41623 224 : case 1240: /* operator_with_argtypes_list: operator_with_argtypes */
41624 : #line 9116 "gram.y"
41625 : { (yyval.list) = list_make1((yyvsp[0].objwithargs)); }
41626 : #line 41627 "gram.c"
41627 224 : break;
41628 :
41629 0 : case 1241: /* operator_with_argtypes_list: operator_with_argtypes_list ',' operator_with_argtypes */
41630 : #line 9118 "gram.y"
41631 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].objwithargs)); }
41632 : #line 41633 "gram.c"
41633 0 : break;
41634 :
41635 2020 : case 1242: /* operator_with_argtypes: any_operator oper_argtypes */
41636 : #line 9123 "gram.y"
41637 : {
41638 : ObjectWithArgs *n = makeNode(ObjectWithArgs);
41639 :
41640 : n->objname = (yyvsp[-1].list);
41641 : n->objargs = (yyvsp[0].list);
41642 : (yyval.objwithargs) = n;
41643 : }
41644 : #line 41645 "gram.c"
41645 2020 : break;
41646 :
41647 1138 : case 1243: /* DoStmt: DO dostmt_opt_list */
41648 : #line 9142 "gram.y"
41649 : {
41650 : DoStmt *n = makeNode(DoStmt);
41651 :
41652 : n->args = (yyvsp[0].list);
41653 : (yyval.node) = (Node *) n;
41654 : }
41655 : #line 41656 "gram.c"
41656 1138 : break;
41657 :
41658 1138 : case 1244: /* dostmt_opt_list: dostmt_opt_item */
41659 : #line 9151 "gram.y"
41660 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
41661 : #line 41662 "gram.c"
41662 1138 : break;
41663 :
41664 198 : case 1245: /* dostmt_opt_list: dostmt_opt_list dostmt_opt_item */
41665 : #line 9152 "gram.y"
41666 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
41667 : #line 41668 "gram.c"
41668 198 : break;
41669 :
41670 1138 : case 1246: /* dostmt_opt_item: Sconst */
41671 : #line 9157 "gram.y"
41672 : {
41673 : (yyval.defelt) = makeDefElem("as", (Node *) makeString((yyvsp[0].str)), (yylsp[0]));
41674 : }
41675 : #line 41676 "gram.c"
41676 1138 : break;
41677 :
41678 198 : case 1247: /* dostmt_opt_item: LANGUAGE NonReservedWord_or_Sconst */
41679 : #line 9161 "gram.y"
41680 : {
41681 : (yyval.defelt) = makeDefElem("language", (Node *) makeString((yyvsp[0].str)), (yylsp[-1]));
41682 : }
41683 : #line 41684 "gram.c"
41684 198 : break;
41685 :
41686 110 : case 1248: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH FUNCTION function_with_argtypes cast_context */
41687 : #line 9174 "gram.y"
41688 : {
41689 : CreateCastStmt *n = makeNode(CreateCastStmt);
41690 :
41691 : n->sourcetype = (yyvsp[-7].typnam);
41692 : n->targettype = (yyvsp[-5].typnam);
41693 : n->func = (yyvsp[-1].objwithargs);
41694 : n->context = (CoercionContext) (yyvsp[0].ival);
41695 : n->inout = false;
41696 : (yyval.node) = (Node *) n;
41697 : }
41698 : #line 41699 "gram.c"
41699 110 : break;
41700 :
41701 172 : case 1249: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITHOUT FUNCTION cast_context */
41702 : #line 9186 "gram.y"
41703 : {
41704 : CreateCastStmt *n = makeNode(CreateCastStmt);
41705 :
41706 : n->sourcetype = (yyvsp[-6].typnam);
41707 : n->targettype = (yyvsp[-4].typnam);
41708 : n->func = NULL;
41709 : n->context = (CoercionContext) (yyvsp[0].ival);
41710 : n->inout = false;
41711 : (yyval.node) = (Node *) n;
41712 : }
41713 : #line 41714 "gram.c"
41714 172 : break;
41715 :
41716 8 : case 1250: /* CreateCastStmt: CREATE CAST '(' Typename AS Typename ')' WITH INOUT cast_context */
41717 : #line 9198 "gram.y"
41718 : {
41719 : CreateCastStmt *n = makeNode(CreateCastStmt);
41720 :
41721 : n->sourcetype = (yyvsp[-6].typnam);
41722 : n->targettype = (yyvsp[-4].typnam);
41723 : n->func = NULL;
41724 : n->context = (CoercionContext) (yyvsp[0].ival);
41725 : n->inout = true;
41726 : (yyval.node) = (Node *) n;
41727 : }
41728 : #line 41729 "gram.c"
41729 8 : break;
41730 :
41731 40 : case 1251: /* cast_context: AS IMPLICIT_P */
41732 : #line 9210 "gram.y"
41733 : { (yyval.ival) = COERCION_IMPLICIT; }
41734 : #line 41735 "gram.c"
41735 40 : break;
41736 :
41737 58 : case 1252: /* cast_context: AS ASSIGNMENT */
41738 : #line 9211 "gram.y"
41739 : { (yyval.ival) = COERCION_ASSIGNMENT; }
41740 : #line 41741 "gram.c"
41741 58 : break;
41742 :
41743 192 : case 1253: /* cast_context: %empty */
41744 : #line 9212 "gram.y"
41745 : { (yyval.ival) = COERCION_EXPLICIT; }
41746 : #line 41747 "gram.c"
41747 192 : break;
41748 :
41749 60 : case 1254: /* DropCastStmt: DROP CAST opt_if_exists '(' Typename AS Typename ')' opt_drop_behavior */
41750 : #line 9217 "gram.y"
41751 : {
41752 : DropStmt *n = makeNode(DropStmt);
41753 :
41754 : n->removeType = OBJECT_CAST;
41755 : n->objects = list_make1(list_make2((yyvsp[-4].typnam), (yyvsp[-2].typnam)));
41756 : n->behavior = (yyvsp[0].dbehavior);
41757 : n->missing_ok = (yyvsp[-6].boolean);
41758 : n->concurrent = false;
41759 : (yyval.node) = (Node *) n;
41760 : }
41761 : #line 41762 "gram.c"
41762 60 : break;
41763 :
41764 36 : case 1255: /* opt_if_exists: IF_P EXISTS */
41765 : #line 9229 "gram.y"
41766 : { (yyval.boolean) = true; }
41767 : #line 41768 "gram.c"
41768 36 : break;
41769 :
41770 38 : case 1256: /* opt_if_exists: %empty */
41771 : #line 9230 "gram.y"
41772 : { (yyval.boolean) = false; }
41773 : #line 41774 "gram.c"
41774 38 : break;
41775 :
41776 52 : case 1257: /* CreateTransformStmt: CREATE opt_or_replace TRANSFORM FOR Typename LANGUAGE name '(' transform_element_list ')' */
41777 : #line 9241 "gram.y"
41778 : {
41779 : CreateTransformStmt *n = makeNode(CreateTransformStmt);
41780 :
41781 : n->replace = (yyvsp[-8].boolean);
41782 : n->type_name = (yyvsp[-5].typnam);
41783 : n->lang = (yyvsp[-3].str);
41784 : n->fromsql = linitial((yyvsp[-1].list));
41785 : n->tosql = lsecond((yyvsp[-1].list));
41786 : (yyval.node) = (Node *) n;
41787 : }
41788 : #line 41789 "gram.c"
41789 52 : break;
41790 :
41791 46 : case 1258: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes ',' TO SQL_P WITH FUNCTION function_with_argtypes */
41792 : #line 9254 "gram.y"
41793 : {
41794 : (yyval.list) = list_make2((yyvsp[-6].objwithargs), (yyvsp[0].objwithargs));
41795 : }
41796 : #line 41797 "gram.c"
41797 46 : break;
41798 :
41799 0 : case 1259: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes ',' FROM SQL_P WITH FUNCTION function_with_argtypes */
41800 : #line 9258 "gram.y"
41801 : {
41802 : (yyval.list) = list_make2((yyvsp[0].objwithargs), (yyvsp[-6].objwithargs));
41803 : }
41804 : #line 41805 "gram.c"
41805 0 : break;
41806 :
41807 4 : case 1260: /* transform_element_list: FROM SQL_P WITH FUNCTION function_with_argtypes */
41808 : #line 9262 "gram.y"
41809 : {
41810 : (yyval.list) = list_make2((yyvsp[0].objwithargs), NULL);
41811 : }
41812 : #line 41813 "gram.c"
41813 4 : break;
41814 :
41815 2 : case 1261: /* transform_element_list: TO SQL_P WITH FUNCTION function_with_argtypes */
41816 : #line 9266 "gram.y"
41817 : {
41818 : (yyval.list) = list_make2(NULL, (yyvsp[0].objwithargs));
41819 : }
41820 : #line 41821 "gram.c"
41821 2 : break;
41822 :
41823 14 : case 1262: /* DropTransformStmt: DROP TRANSFORM opt_if_exists FOR Typename LANGUAGE name opt_drop_behavior */
41824 : #line 9273 "gram.y"
41825 : {
41826 : DropStmt *n = makeNode(DropStmt);
41827 :
41828 : n->removeType = OBJECT_TRANSFORM;
41829 : n->objects = list_make1(list_make2((yyvsp[-3].typnam), makeString((yyvsp[-1].str))));
41830 : n->behavior = (yyvsp[0].dbehavior);
41831 : n->missing_ok = (yyvsp[-5].boolean);
41832 : (yyval.node) = (Node *) n;
41833 : }
41834 : #line 41835 "gram.c"
41835 14 : break;
41836 :
41837 924 : case 1263: /* ReindexStmt: REINDEX opt_reindex_option_list reindex_target_relation opt_concurrently qualified_name */
41838 : #line 9295 "gram.y"
41839 : {
41840 : ReindexStmt *n = makeNode(ReindexStmt);
41841 :
41842 : n->kind = (yyvsp[-2].ival);
41843 : n->relation = (yyvsp[0].range);
41844 : n->name = NULL;
41845 : n->params = (yyvsp[-3].list);
41846 : if ((yyvsp[-1].boolean))
41847 : n->params = lappend(n->params,
41848 : makeDefElem("concurrently", NULL, (yylsp[-1])));
41849 : (yyval.node) = (Node *) n;
41850 : }
41851 : #line 41852 "gram.c"
41852 924 : break;
41853 :
41854 114 : case 1264: /* ReindexStmt: REINDEX opt_reindex_option_list SCHEMA opt_concurrently name */
41855 : #line 9308 "gram.y"
41856 : {
41857 : ReindexStmt *n = makeNode(ReindexStmt);
41858 :
41859 : n->kind = REINDEX_OBJECT_SCHEMA;
41860 : n->relation = NULL;
41861 : n->name = (yyvsp[0].str);
41862 : n->params = (yyvsp[-3].list);
41863 : if ((yyvsp[-1].boolean))
41864 : n->params = lappend(n->params,
41865 : makeDefElem("concurrently", NULL, (yylsp[-1])));
41866 : (yyval.node) = (Node *) n;
41867 : }
41868 : #line 41869 "gram.c"
41869 114 : break;
41870 :
41871 64 : case 1265: /* ReindexStmt: REINDEX opt_reindex_option_list reindex_target_all opt_concurrently opt_single_name */
41872 : #line 9321 "gram.y"
41873 : {
41874 : ReindexStmt *n = makeNode(ReindexStmt);
41875 :
41876 : n->kind = (yyvsp[-2].ival);
41877 : n->relation = NULL;
41878 : n->name = (yyvsp[0].str);
41879 : n->params = (yyvsp[-3].list);
41880 : if ((yyvsp[-1].boolean))
41881 : n->params = lappend(n->params,
41882 : makeDefElem("concurrently", NULL, (yylsp[-1])));
41883 : (yyval.node) = (Node *) n;
41884 : }
41885 : #line 41886 "gram.c"
41886 64 : break;
41887 :
41888 396 : case 1266: /* reindex_target_relation: INDEX */
41889 : #line 9335 "gram.y"
41890 : { (yyval.ival) = REINDEX_OBJECT_INDEX; }
41891 : #line 41892 "gram.c"
41892 396 : break;
41893 :
41894 528 : case 1267: /* reindex_target_relation: TABLE */
41895 : #line 9336 "gram.y"
41896 : { (yyval.ival) = REINDEX_OBJECT_TABLE; }
41897 : #line 41898 "gram.c"
41898 528 : break;
41899 :
41900 34 : case 1268: /* reindex_target_all: SYSTEM_P */
41901 : #line 9339 "gram.y"
41902 : { (yyval.ival) = REINDEX_OBJECT_SYSTEM; }
41903 : #line 41904 "gram.c"
41904 34 : break;
41905 :
41906 30 : case 1269: /* reindex_target_all: DATABASE */
41907 : #line 9340 "gram.y"
41908 : { (yyval.ival) = REINDEX_OBJECT_DATABASE; }
41909 : #line 41910 "gram.c"
41910 30 : break;
41911 :
41912 156 : case 1270: /* opt_reindex_option_list: '(' utility_option_list ')' */
41913 : #line 9343 "gram.y"
41914 : { (yyval.list) = (yyvsp[-1].list); }
41915 : #line 41916 "gram.c"
41916 156 : break;
41917 :
41918 946 : case 1271: /* opt_reindex_option_list: %empty */
41919 : #line 9344 "gram.y"
41920 : { (yyval.list) = NULL; }
41921 : #line 41922 "gram.c"
41922 946 : break;
41923 :
41924 12 : case 1272: /* AlterTblSpcStmt: ALTER TABLESPACE name SET reloptions */
41925 : #line 9355 "gram.y"
41926 : {
41927 : AlterTableSpaceOptionsStmt *n =
41928 : makeNode(AlterTableSpaceOptionsStmt);
41929 :
41930 : n->tablespacename = (yyvsp[-2].str);
41931 : n->options = (yyvsp[0].list);
41932 : n->isReset = false;
41933 : (yyval.node) = (Node *) n;
41934 : }
41935 : #line 41936 "gram.c"
41936 12 : break;
41937 :
41938 12 : case 1273: /* AlterTblSpcStmt: ALTER TABLESPACE name RESET reloptions */
41939 : #line 9365 "gram.y"
41940 : {
41941 : AlterTableSpaceOptionsStmt *n =
41942 : makeNode(AlterTableSpaceOptionsStmt);
41943 :
41944 : n->tablespacename = (yyvsp[-2].str);
41945 : n->options = (yyvsp[0].list);
41946 : n->isReset = true;
41947 : (yyval.node) = (Node *) n;
41948 : }
41949 : #line 41950 "gram.c"
41950 12 : break;
41951 :
41952 42 : case 1274: /* RenameStmt: ALTER AGGREGATE aggregate_with_argtypes RENAME TO name */
41953 : #line 9383 "gram.y"
41954 : {
41955 : RenameStmt *n = makeNode(RenameStmt);
41956 :
41957 : n->renameType = OBJECT_AGGREGATE;
41958 : n->object = (Node *) (yyvsp[-3].objwithargs);
41959 : n->newname = (yyvsp[0].str);
41960 : n->missing_ok = false;
41961 : (yyval.node) = (Node *) n;
41962 : }
41963 : #line 41964 "gram.c"
41964 42 : break;
41965 :
41966 18 : case 1275: /* RenameStmt: ALTER COLLATION any_name RENAME TO name */
41967 : #line 9393 "gram.y"
41968 : {
41969 : RenameStmt *n = makeNode(RenameStmt);
41970 :
41971 : n->renameType = OBJECT_COLLATION;
41972 : n->object = (Node *) (yyvsp[-3].list);
41973 : n->newname = (yyvsp[0].str);
41974 : n->missing_ok = false;
41975 : (yyval.node) = (Node *) n;
41976 : }
41977 : #line 41978 "gram.c"
41978 18 : break;
41979 :
41980 24 : case 1276: /* RenameStmt: ALTER CONVERSION_P any_name RENAME TO name */
41981 : #line 9403 "gram.y"
41982 : {
41983 : RenameStmt *n = makeNode(RenameStmt);
41984 :
41985 : n->renameType = OBJECT_CONVERSION;
41986 : n->object = (Node *) (yyvsp[-3].list);
41987 : n->newname = (yyvsp[0].str);
41988 : n->missing_ok = false;
41989 : (yyval.node) = (Node *) n;
41990 : }
41991 : #line 41992 "gram.c"
41992 24 : break;
41993 :
41994 6 : case 1277: /* RenameStmt: ALTER DATABASE name RENAME TO name */
41995 : #line 9413 "gram.y"
41996 : {
41997 : RenameStmt *n = makeNode(RenameStmt);
41998 :
41999 : n->renameType = OBJECT_DATABASE;
42000 : n->subname = (yyvsp[-3].str);
42001 : n->newname = (yyvsp[0].str);
42002 : n->missing_ok = false;
42003 : (yyval.node) = (Node *) n;
42004 : }
42005 : #line 42006 "gram.c"
42006 6 : break;
42007 :
42008 6 : case 1278: /* RenameStmt: ALTER DOMAIN_P any_name RENAME TO name */
42009 : #line 9423 "gram.y"
42010 : {
42011 : RenameStmt *n = makeNode(RenameStmt);
42012 :
42013 : n->renameType = OBJECT_DOMAIN;
42014 : n->object = (Node *) (yyvsp[-3].list);
42015 : n->newname = (yyvsp[0].str);
42016 : n->missing_ok = false;
42017 : (yyval.node) = (Node *) n;
42018 : }
42019 : #line 42020 "gram.c"
42020 6 : break;
42021 :
42022 6 : case 1279: /* RenameStmt: ALTER DOMAIN_P any_name RENAME CONSTRAINT name TO name */
42023 : #line 9433 "gram.y"
42024 : {
42025 : RenameStmt *n = makeNode(RenameStmt);
42026 :
42027 : n->renameType = OBJECT_DOMCONSTRAINT;
42028 : n->object = (Node *) (yyvsp[-5].list);
42029 : n->subname = (yyvsp[-2].str);
42030 : n->newname = (yyvsp[0].str);
42031 : (yyval.node) = (Node *) n;
42032 : }
42033 : #line 42034 "gram.c"
42034 6 : break;
42035 :
42036 24 : case 1280: /* RenameStmt: ALTER FOREIGN DATA_P WRAPPER name RENAME TO name */
42037 : #line 9443 "gram.y"
42038 : {
42039 : RenameStmt *n = makeNode(RenameStmt);
42040 :
42041 : n->renameType = OBJECT_FDW;
42042 : n->object = (Node *) makeString((yyvsp[-3].str));
42043 : n->newname = (yyvsp[0].str);
42044 : n->missing_ok = false;
42045 : (yyval.node) = (Node *) n;
42046 : }
42047 : #line 42048 "gram.c"
42048 24 : break;
42049 :
42050 24 : case 1281: /* RenameStmt: ALTER FUNCTION function_with_argtypes RENAME TO name */
42051 : #line 9453 "gram.y"
42052 : {
42053 : RenameStmt *n = makeNode(RenameStmt);
42054 :
42055 : n->renameType = OBJECT_FUNCTION;
42056 : n->object = (Node *) (yyvsp[-3].objwithargs);
42057 : n->newname = (yyvsp[0].str);
42058 : n->missing_ok = false;
42059 : (yyval.node) = (Node *) n;
42060 : }
42061 : #line 42062 "gram.c"
42062 24 : break;
42063 :
42064 0 : case 1282: /* RenameStmt: ALTER GROUP_P RoleId RENAME TO RoleId */
42065 : #line 9463 "gram.y"
42066 : {
42067 : RenameStmt *n = makeNode(RenameStmt);
42068 :
42069 : n->renameType = OBJECT_ROLE;
42070 : n->subname = (yyvsp[-3].str);
42071 : n->newname = (yyvsp[0].str);
42072 : n->missing_ok = false;
42073 : (yyval.node) = (Node *) n;
42074 : }
42075 : #line 42076 "gram.c"
42076 0 : break;
42077 :
42078 18 : case 1283: /* RenameStmt: ALTER opt_procedural LANGUAGE name RENAME TO name */
42079 : #line 9473 "gram.y"
42080 : {
42081 : RenameStmt *n = makeNode(RenameStmt);
42082 :
42083 : n->renameType = OBJECT_LANGUAGE;
42084 : n->object = (Node *) makeString((yyvsp[-3].str));
42085 : n->newname = (yyvsp[0].str);
42086 : n->missing_ok = false;
42087 : (yyval.node) = (Node *) n;
42088 : }
42089 : #line 42090 "gram.c"
42090 18 : break;
42091 :
42092 24 : case 1284: /* RenameStmt: ALTER OPERATOR CLASS any_name USING name RENAME TO name */
42093 : #line 9483 "gram.y"
42094 : {
42095 : RenameStmt *n = makeNode(RenameStmt);
42096 :
42097 : n->renameType = OBJECT_OPCLASS;
42098 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
42099 : n->newname = (yyvsp[0].str);
42100 : n->missing_ok = false;
42101 : (yyval.node) = (Node *) n;
42102 : }
42103 : #line 42104 "gram.c"
42104 24 : break;
42105 :
42106 24 : case 1285: /* RenameStmt: ALTER OPERATOR FAMILY any_name USING name RENAME TO name */
42107 : #line 9493 "gram.y"
42108 : {
42109 : RenameStmt *n = makeNode(RenameStmt);
42110 :
42111 : n->renameType = OBJECT_OPFAMILY;
42112 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
42113 : n->newname = (yyvsp[0].str);
42114 : n->missing_ok = false;
42115 : (yyval.node) = (Node *) n;
42116 : }
42117 : #line 42118 "gram.c"
42118 24 : break;
42119 :
42120 18 : case 1286: /* RenameStmt: ALTER POLICY name ON qualified_name RENAME TO name */
42121 : #line 9503 "gram.y"
42122 : {
42123 : RenameStmt *n = makeNode(RenameStmt);
42124 :
42125 : n->renameType = OBJECT_POLICY;
42126 : n->relation = (yyvsp[-3].range);
42127 : n->subname = (yyvsp[-5].str);
42128 : n->newname = (yyvsp[0].str);
42129 : n->missing_ok = false;
42130 : (yyval.node) = (Node *) n;
42131 : }
42132 : #line 42133 "gram.c"
42133 18 : break;
42134 :
42135 0 : case 1287: /* RenameStmt: ALTER POLICY IF_P EXISTS name ON qualified_name RENAME TO name */
42136 : #line 9514 "gram.y"
42137 : {
42138 : RenameStmt *n = makeNode(RenameStmt);
42139 :
42140 : n->renameType = OBJECT_POLICY;
42141 : n->relation = (yyvsp[-3].range);
42142 : n->subname = (yyvsp[-5].str);
42143 : n->newname = (yyvsp[0].str);
42144 : n->missing_ok = true;
42145 : (yyval.node) = (Node *) n;
42146 : }
42147 : #line 42148 "gram.c"
42148 0 : break;
42149 :
42150 0 : case 1288: /* RenameStmt: ALTER PROCEDURE function_with_argtypes RENAME TO name */
42151 : #line 9525 "gram.y"
42152 : {
42153 : RenameStmt *n = makeNode(RenameStmt);
42154 :
42155 : n->renameType = OBJECT_PROCEDURE;
42156 : n->object = (Node *) (yyvsp[-3].objwithargs);
42157 : n->newname = (yyvsp[0].str);
42158 : n->missing_ok = false;
42159 : (yyval.node) = (Node *) n;
42160 : }
42161 : #line 42162 "gram.c"
42162 0 : break;
42163 :
42164 42 : case 1289: /* RenameStmt: ALTER PUBLICATION name RENAME TO name */
42165 : #line 9535 "gram.y"
42166 : {
42167 : RenameStmt *n = makeNode(RenameStmt);
42168 :
42169 : n->renameType = OBJECT_PUBLICATION;
42170 : n->object = (Node *) makeString((yyvsp[-3].str));
42171 : n->newname = (yyvsp[0].str);
42172 : n->missing_ok = false;
42173 : (yyval.node) = (Node *) n;
42174 : }
42175 : #line 42176 "gram.c"
42176 42 : break;
42177 :
42178 24 : case 1290: /* RenameStmt: ALTER ROUTINE function_with_argtypes RENAME TO name */
42179 : #line 9545 "gram.y"
42180 : {
42181 : RenameStmt *n = makeNode(RenameStmt);
42182 :
42183 : n->renameType = OBJECT_ROUTINE;
42184 : n->object = (Node *) (yyvsp[-3].objwithargs);
42185 : n->newname = (yyvsp[0].str);
42186 : n->missing_ok = false;
42187 : (yyval.node) = (Node *) n;
42188 : }
42189 : #line 42190 "gram.c"
42190 24 : break;
42191 :
42192 20 : case 1291: /* RenameStmt: ALTER SCHEMA name RENAME TO name */
42193 : #line 9555 "gram.y"
42194 : {
42195 : RenameStmt *n = makeNode(RenameStmt);
42196 :
42197 : n->renameType = OBJECT_SCHEMA;
42198 : n->subname = (yyvsp[-3].str);
42199 : n->newname = (yyvsp[0].str);
42200 : n->missing_ok = false;
42201 : (yyval.node) = (Node *) n;
42202 : }
42203 : #line 42204 "gram.c"
42204 20 : break;
42205 :
42206 24 : case 1292: /* RenameStmt: ALTER SERVER name RENAME TO name */
42207 : #line 9565 "gram.y"
42208 : {
42209 : RenameStmt *n = makeNode(RenameStmt);
42210 :
42211 : n->renameType = OBJECT_FOREIGN_SERVER;
42212 : n->object = (Node *) makeString((yyvsp[-3].str));
42213 : n->newname = (yyvsp[0].str);
42214 : n->missing_ok = false;
42215 : (yyval.node) = (Node *) n;
42216 : }
42217 : #line 42218 "gram.c"
42218 24 : break;
42219 :
42220 38 : case 1293: /* RenameStmt: ALTER SUBSCRIPTION name RENAME TO name */
42221 : #line 9575 "gram.y"
42222 : {
42223 : RenameStmt *n = makeNode(RenameStmt);
42224 :
42225 : n->renameType = OBJECT_SUBSCRIPTION;
42226 : n->object = (Node *) makeString((yyvsp[-3].str));
42227 : n->newname = (yyvsp[0].str);
42228 : n->missing_ok = false;
42229 : (yyval.node) = (Node *) n;
42230 : }
42231 : #line 42232 "gram.c"
42232 38 : break;
42233 :
42234 286 : case 1294: /* RenameStmt: ALTER TABLE relation_expr RENAME TO name */
42235 : #line 9585 "gram.y"
42236 : {
42237 : RenameStmt *n = makeNode(RenameStmt);
42238 :
42239 : n->renameType = OBJECT_TABLE;
42240 : n->relation = (yyvsp[-3].range);
42241 : n->subname = NULL;
42242 : n->newname = (yyvsp[0].str);
42243 : n->missing_ok = false;
42244 : (yyval.node) = (Node *) n;
42245 : }
42246 : #line 42247 "gram.c"
42247 286 : break;
42248 :
42249 0 : case 1295: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME TO name */
42250 : #line 9596 "gram.y"
42251 : {
42252 : RenameStmt *n = makeNode(RenameStmt);
42253 :
42254 : n->renameType = OBJECT_TABLE;
42255 : n->relation = (yyvsp[-3].range);
42256 : n->subname = NULL;
42257 : n->newname = (yyvsp[0].str);
42258 : n->missing_ok = true;
42259 : (yyval.node) = (Node *) n;
42260 : }
42261 : #line 42262 "gram.c"
42262 0 : break;
42263 :
42264 2 : case 1296: /* RenameStmt: ALTER SEQUENCE qualified_name RENAME TO name */
42265 : #line 9607 "gram.y"
42266 : {
42267 : RenameStmt *n = makeNode(RenameStmt);
42268 :
42269 : n->renameType = OBJECT_SEQUENCE;
42270 : n->relation = (yyvsp[-3].range);
42271 : n->subname = NULL;
42272 : n->newname = (yyvsp[0].str);
42273 : n->missing_ok = false;
42274 : (yyval.node) = (Node *) n;
42275 : }
42276 : #line 42277 "gram.c"
42277 2 : break;
42278 :
42279 0 : case 1297: /* RenameStmt: ALTER SEQUENCE IF_P EXISTS qualified_name RENAME TO name */
42280 : #line 9618 "gram.y"
42281 : {
42282 : RenameStmt *n = makeNode(RenameStmt);
42283 :
42284 : n->renameType = OBJECT_SEQUENCE;
42285 : n->relation = (yyvsp[-3].range);
42286 : n->subname = NULL;
42287 : n->newname = (yyvsp[0].str);
42288 : n->missing_ok = true;
42289 : (yyval.node) = (Node *) n;
42290 : }
42291 : #line 42292 "gram.c"
42292 0 : break;
42293 :
42294 6 : case 1298: /* RenameStmt: ALTER VIEW qualified_name RENAME TO name */
42295 : #line 9629 "gram.y"
42296 : {
42297 : RenameStmt *n = makeNode(RenameStmt);
42298 :
42299 : n->renameType = OBJECT_VIEW;
42300 : n->relation = (yyvsp[-3].range);
42301 : n->subname = NULL;
42302 : n->newname = (yyvsp[0].str);
42303 : n->missing_ok = false;
42304 : (yyval.node) = (Node *) n;
42305 : }
42306 : #line 42307 "gram.c"
42307 6 : break;
42308 :
42309 0 : case 1299: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME TO name */
42310 : #line 9640 "gram.y"
42311 : {
42312 : RenameStmt *n = makeNode(RenameStmt);
42313 :
42314 : n->renameType = OBJECT_VIEW;
42315 : n->relation = (yyvsp[-3].range);
42316 : n->subname = NULL;
42317 : n->newname = (yyvsp[0].str);
42318 : n->missing_ok = true;
42319 : (yyval.node) = (Node *) n;
42320 : }
42321 : #line 42322 "gram.c"
42322 0 : break;
42323 :
42324 0 : case 1300: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME TO name */
42325 : #line 9651 "gram.y"
42326 : {
42327 : RenameStmt *n = makeNode(RenameStmt);
42328 :
42329 : n->renameType = OBJECT_MATVIEW;
42330 : n->relation = (yyvsp[-3].range);
42331 : n->subname = NULL;
42332 : n->newname = (yyvsp[0].str);
42333 : n->missing_ok = false;
42334 : (yyval.node) = (Node *) n;
42335 : }
42336 : #line 42337 "gram.c"
42337 0 : break;
42338 :
42339 0 : case 1301: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME TO name */
42340 : #line 9662 "gram.y"
42341 : {
42342 : RenameStmt *n = makeNode(RenameStmt);
42343 :
42344 : n->renameType = OBJECT_MATVIEW;
42345 : n->relation = (yyvsp[-3].range);
42346 : n->subname = NULL;
42347 : n->newname = (yyvsp[0].str);
42348 : n->missing_ok = true;
42349 : (yyval.node) = (Node *) n;
42350 : }
42351 : #line 42352 "gram.c"
42352 0 : break;
42353 :
42354 192 : case 1302: /* RenameStmt: ALTER INDEX qualified_name RENAME TO name */
42355 : #line 9673 "gram.y"
42356 : {
42357 : RenameStmt *n = makeNode(RenameStmt);
42358 :
42359 : n->renameType = OBJECT_INDEX;
42360 : n->relation = (yyvsp[-3].range);
42361 : n->subname = NULL;
42362 : n->newname = (yyvsp[0].str);
42363 : n->missing_ok = false;
42364 : (yyval.node) = (Node *) n;
42365 : }
42366 : #line 42367 "gram.c"
42367 192 : break;
42368 :
42369 12 : case 1303: /* RenameStmt: ALTER INDEX IF_P EXISTS qualified_name RENAME TO name */
42370 : #line 9684 "gram.y"
42371 : {
42372 : RenameStmt *n = makeNode(RenameStmt);
42373 :
42374 : n->renameType = OBJECT_INDEX;
42375 : n->relation = (yyvsp[-3].range);
42376 : n->subname = NULL;
42377 : n->newname = (yyvsp[0].str);
42378 : n->missing_ok = true;
42379 : (yyval.node) = (Node *) n;
42380 : }
42381 : #line 42382 "gram.c"
42382 12 : break;
42383 :
42384 6 : case 1304: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME TO name */
42385 : #line 9695 "gram.y"
42386 : {
42387 : RenameStmt *n = makeNode(RenameStmt);
42388 :
42389 : n->renameType = OBJECT_FOREIGN_TABLE;
42390 : n->relation = (yyvsp[-3].range);
42391 : n->subname = NULL;
42392 : n->newname = (yyvsp[0].str);
42393 : n->missing_ok = false;
42394 : (yyval.node) = (Node *) n;
42395 : }
42396 : #line 42397 "gram.c"
42397 6 : break;
42398 :
42399 6 : case 1305: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME TO name */
42400 : #line 9706 "gram.y"
42401 : {
42402 : RenameStmt *n = makeNode(RenameStmt);
42403 :
42404 : n->renameType = OBJECT_FOREIGN_TABLE;
42405 : n->relation = (yyvsp[-3].range);
42406 : n->subname = NULL;
42407 : n->newname = (yyvsp[0].str);
42408 : n->missing_ok = true;
42409 : (yyval.node) = (Node *) n;
42410 : }
42411 : #line 42412 "gram.c"
42412 6 : break;
42413 :
42414 238 : case 1306: /* RenameStmt: ALTER TABLE relation_expr RENAME opt_column name TO name */
42415 : #line 9717 "gram.y"
42416 : {
42417 : RenameStmt *n = makeNode(RenameStmt);
42418 :
42419 : n->renameType = OBJECT_COLUMN;
42420 : n->relationType = OBJECT_TABLE;
42421 : n->relation = (yyvsp[-5].range);
42422 : n->subname = (yyvsp[-2].str);
42423 : n->newname = (yyvsp[0].str);
42424 : n->missing_ok = false;
42425 : (yyval.node) = (Node *) n;
42426 : }
42427 : #line 42428 "gram.c"
42428 238 : break;
42429 :
42430 24 : case 1307: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */
42431 : #line 9729 "gram.y"
42432 : {
42433 : RenameStmt *n = makeNode(RenameStmt);
42434 :
42435 : n->renameType = OBJECT_COLUMN;
42436 : n->relationType = OBJECT_TABLE;
42437 : n->relation = (yyvsp[-5].range);
42438 : n->subname = (yyvsp[-2].str);
42439 : n->newname = (yyvsp[0].str);
42440 : n->missing_ok = true;
42441 : (yyval.node) = (Node *) n;
42442 : }
42443 : #line 42444 "gram.c"
42444 24 : break;
42445 :
42446 18 : case 1308: /* RenameStmt: ALTER VIEW qualified_name RENAME opt_column name TO name */
42447 : #line 9741 "gram.y"
42448 : {
42449 : RenameStmt *n = makeNode(RenameStmt);
42450 :
42451 : n->renameType = OBJECT_COLUMN;
42452 : n->relationType = OBJECT_VIEW;
42453 : n->relation = (yyvsp[-5].range);
42454 : n->subname = (yyvsp[-2].str);
42455 : n->newname = (yyvsp[0].str);
42456 : n->missing_ok = false;
42457 : (yyval.node) = (Node *) n;
42458 : }
42459 : #line 42460 "gram.c"
42460 18 : break;
42461 :
42462 0 : case 1309: /* RenameStmt: ALTER VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */
42463 : #line 9753 "gram.y"
42464 : {
42465 : RenameStmt *n = makeNode(RenameStmt);
42466 :
42467 : n->renameType = OBJECT_COLUMN;
42468 : n->relationType = OBJECT_VIEW;
42469 : n->relation = (yyvsp[-5].range);
42470 : n->subname = (yyvsp[-2].str);
42471 : n->newname = (yyvsp[0].str);
42472 : n->missing_ok = true;
42473 : (yyval.node) = (Node *) n;
42474 : }
42475 : #line 42476 "gram.c"
42476 0 : break;
42477 :
42478 0 : case 1310: /* RenameStmt: ALTER MATERIALIZED VIEW qualified_name RENAME opt_column name TO name */
42479 : #line 9765 "gram.y"
42480 : {
42481 : RenameStmt *n = makeNode(RenameStmt);
42482 :
42483 : n->renameType = OBJECT_COLUMN;
42484 : n->relationType = OBJECT_MATVIEW;
42485 : n->relation = (yyvsp[-5].range);
42486 : n->subname = (yyvsp[-2].str);
42487 : n->newname = (yyvsp[0].str);
42488 : n->missing_ok = false;
42489 : (yyval.node) = (Node *) n;
42490 : }
42491 : #line 42492 "gram.c"
42492 0 : break;
42493 :
42494 0 : case 1311: /* RenameStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name RENAME opt_column name TO name */
42495 : #line 9777 "gram.y"
42496 : {
42497 : RenameStmt *n = makeNode(RenameStmt);
42498 :
42499 : n->renameType = OBJECT_COLUMN;
42500 : n->relationType = OBJECT_MATVIEW;
42501 : n->relation = (yyvsp[-5].range);
42502 : n->subname = (yyvsp[-2].str);
42503 : n->newname = (yyvsp[0].str);
42504 : n->missing_ok = true;
42505 : (yyval.node) = (Node *) n;
42506 : }
42507 : #line 42508 "gram.c"
42508 0 : break;
42509 :
42510 72 : case 1312: /* RenameStmt: ALTER TABLE relation_expr RENAME CONSTRAINT name TO name */
42511 : #line 9789 "gram.y"
42512 : {
42513 : RenameStmt *n = makeNode(RenameStmt);
42514 :
42515 : n->renameType = OBJECT_TABCONSTRAINT;
42516 : n->relation = (yyvsp[-5].range);
42517 : n->subname = (yyvsp[-2].str);
42518 : n->newname = (yyvsp[0].str);
42519 : n->missing_ok = false;
42520 : (yyval.node) = (Node *) n;
42521 : }
42522 : #line 42523 "gram.c"
42523 72 : break;
42524 :
42525 6 : case 1313: /* RenameStmt: ALTER TABLE IF_P EXISTS relation_expr RENAME CONSTRAINT name TO name */
42526 : #line 9800 "gram.y"
42527 : {
42528 : RenameStmt *n = makeNode(RenameStmt);
42529 :
42530 : n->renameType = OBJECT_TABCONSTRAINT;
42531 : n->relation = (yyvsp[-5].range);
42532 : n->subname = (yyvsp[-2].str);
42533 : n->newname = (yyvsp[0].str);
42534 : n->missing_ok = true;
42535 : (yyval.node) = (Node *) n;
42536 : }
42537 : #line 42538 "gram.c"
42538 6 : break;
42539 :
42540 6 : case 1314: /* RenameStmt: ALTER FOREIGN TABLE relation_expr RENAME opt_column name TO name */
42541 : #line 9811 "gram.y"
42542 : {
42543 : RenameStmt *n = makeNode(RenameStmt);
42544 :
42545 : n->renameType = OBJECT_COLUMN;
42546 : n->relationType = OBJECT_FOREIGN_TABLE;
42547 : n->relation = (yyvsp[-5].range);
42548 : n->subname = (yyvsp[-2].str);
42549 : n->newname = (yyvsp[0].str);
42550 : n->missing_ok = false;
42551 : (yyval.node) = (Node *) n;
42552 : }
42553 : #line 42554 "gram.c"
42554 6 : break;
42555 :
42556 6 : case 1315: /* RenameStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr RENAME opt_column name TO name */
42557 : #line 9823 "gram.y"
42558 : {
42559 : RenameStmt *n = makeNode(RenameStmt);
42560 :
42561 : n->renameType = OBJECT_COLUMN;
42562 : n->relationType = OBJECT_FOREIGN_TABLE;
42563 : n->relation = (yyvsp[-5].range);
42564 : n->subname = (yyvsp[-2].str);
42565 : n->newname = (yyvsp[0].str);
42566 : n->missing_ok = true;
42567 : (yyval.node) = (Node *) n;
42568 : }
42569 : #line 42570 "gram.c"
42570 6 : break;
42571 :
42572 34 : case 1316: /* RenameStmt: ALTER RULE name ON qualified_name RENAME TO name */
42573 : #line 9835 "gram.y"
42574 : {
42575 : RenameStmt *n = makeNode(RenameStmt);
42576 :
42577 : n->renameType = OBJECT_RULE;
42578 : n->relation = (yyvsp[-3].range);
42579 : n->subname = (yyvsp[-5].str);
42580 : n->newname = (yyvsp[0].str);
42581 : n->missing_ok = false;
42582 : (yyval.node) = (Node *) n;
42583 : }
42584 : #line 42585 "gram.c"
42585 34 : break;
42586 :
42587 40 : case 1317: /* RenameStmt: ALTER TRIGGER name ON qualified_name RENAME TO name */
42588 : #line 9846 "gram.y"
42589 : {
42590 : RenameStmt *n = makeNode(RenameStmt);
42591 :
42592 : n->renameType = OBJECT_TRIGGER;
42593 : n->relation = (yyvsp[-3].range);
42594 : n->subname = (yyvsp[-5].str);
42595 : n->newname = (yyvsp[0].str);
42596 : n->missing_ok = false;
42597 : (yyval.node) = (Node *) n;
42598 : }
42599 : #line 42600 "gram.c"
42600 40 : break;
42601 :
42602 12 : case 1318: /* RenameStmt: ALTER EVENT TRIGGER name RENAME TO name */
42603 : #line 9857 "gram.y"
42604 : {
42605 : RenameStmt *n = makeNode(RenameStmt);
42606 :
42607 : n->renameType = OBJECT_EVENT_TRIGGER;
42608 : n->object = (Node *) makeString((yyvsp[-3].str));
42609 : n->newname = (yyvsp[0].str);
42610 : (yyval.node) = (Node *) n;
42611 : }
42612 : #line 42613 "gram.c"
42613 12 : break;
42614 :
42615 30 : case 1319: /* RenameStmt: ALTER ROLE RoleId RENAME TO RoleId */
42616 : #line 9866 "gram.y"
42617 : {
42618 : RenameStmt *n = makeNode(RenameStmt);
42619 :
42620 : n->renameType = OBJECT_ROLE;
42621 : n->subname = (yyvsp[-3].str);
42622 : n->newname = (yyvsp[0].str);
42623 : n->missing_ok = false;
42624 : (yyval.node) = (Node *) n;
42625 : }
42626 : #line 42627 "gram.c"
42627 30 : break;
42628 :
42629 0 : case 1320: /* RenameStmt: ALTER USER RoleId RENAME TO RoleId */
42630 : #line 9876 "gram.y"
42631 : {
42632 : RenameStmt *n = makeNode(RenameStmt);
42633 :
42634 : n->renameType = OBJECT_ROLE;
42635 : n->subname = (yyvsp[-3].str);
42636 : n->newname = (yyvsp[0].str);
42637 : n->missing_ok = false;
42638 : (yyval.node) = (Node *) n;
42639 : }
42640 : #line 42641 "gram.c"
42641 0 : break;
42642 :
42643 6 : case 1321: /* RenameStmt: ALTER TABLESPACE name RENAME TO name */
42644 : #line 9886 "gram.y"
42645 : {
42646 : RenameStmt *n = makeNode(RenameStmt);
42647 :
42648 : n->renameType = OBJECT_TABLESPACE;
42649 : n->subname = (yyvsp[-3].str);
42650 : n->newname = (yyvsp[0].str);
42651 : n->missing_ok = false;
42652 : (yyval.node) = (Node *) n;
42653 : }
42654 : #line 42655 "gram.c"
42655 6 : break;
42656 :
42657 30 : case 1322: /* RenameStmt: ALTER STATISTICS any_name RENAME TO name */
42658 : #line 9896 "gram.y"
42659 : {
42660 : RenameStmt *n = makeNode(RenameStmt);
42661 :
42662 : n->renameType = OBJECT_STATISTIC_EXT;
42663 : n->object = (Node *) (yyvsp[-3].list);
42664 : n->newname = (yyvsp[0].str);
42665 : n->missing_ok = false;
42666 : (yyval.node) = (Node *) n;
42667 : }
42668 : #line 42669 "gram.c"
42669 30 : break;
42670 :
42671 12 : case 1323: /* RenameStmt: ALTER TEXT_P SEARCH PARSER any_name RENAME TO name */
42672 : #line 9906 "gram.y"
42673 : {
42674 : RenameStmt *n = makeNode(RenameStmt);
42675 :
42676 : n->renameType = OBJECT_TSPARSER;
42677 : n->object = (Node *) (yyvsp[-3].list);
42678 : n->newname = (yyvsp[0].str);
42679 : n->missing_ok = false;
42680 : (yyval.node) = (Node *) n;
42681 : }
42682 : #line 42683 "gram.c"
42683 12 : break;
42684 :
42685 24 : case 1324: /* RenameStmt: ALTER TEXT_P SEARCH DICTIONARY any_name RENAME TO name */
42686 : #line 9916 "gram.y"
42687 : {
42688 : RenameStmt *n = makeNode(RenameStmt);
42689 :
42690 : n->renameType = OBJECT_TSDICTIONARY;
42691 : n->object = (Node *) (yyvsp[-3].list);
42692 : n->newname = (yyvsp[0].str);
42693 : n->missing_ok = false;
42694 : (yyval.node) = (Node *) n;
42695 : }
42696 : #line 42697 "gram.c"
42697 24 : break;
42698 :
42699 12 : case 1325: /* RenameStmt: ALTER TEXT_P SEARCH TEMPLATE any_name RENAME TO name */
42700 : #line 9926 "gram.y"
42701 : {
42702 : RenameStmt *n = makeNode(RenameStmt);
42703 :
42704 : n->renameType = OBJECT_TSTEMPLATE;
42705 : n->object = (Node *) (yyvsp[-3].list);
42706 : n->newname = (yyvsp[0].str);
42707 : n->missing_ok = false;
42708 : (yyval.node) = (Node *) n;
42709 : }
42710 : #line 42711 "gram.c"
42711 12 : break;
42712 :
42713 24 : case 1326: /* RenameStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name RENAME TO name */
42714 : #line 9936 "gram.y"
42715 : {
42716 : RenameStmt *n = makeNode(RenameStmt);
42717 :
42718 : n->renameType = OBJECT_TSCONFIGURATION;
42719 : n->object = (Node *) (yyvsp[-3].list);
42720 : n->newname = (yyvsp[0].str);
42721 : n->missing_ok = false;
42722 : (yyval.node) = (Node *) n;
42723 : }
42724 : #line 42725 "gram.c"
42725 24 : break;
42726 :
42727 26 : case 1327: /* RenameStmt: ALTER TYPE_P any_name RENAME TO name */
42728 : #line 9946 "gram.y"
42729 : {
42730 : RenameStmt *n = makeNode(RenameStmt);
42731 :
42732 : n->renameType = OBJECT_TYPE;
42733 : n->object = (Node *) (yyvsp[-3].list);
42734 : n->newname = (yyvsp[0].str);
42735 : n->missing_ok = false;
42736 : (yyval.node) = (Node *) n;
42737 : }
42738 : #line 42739 "gram.c"
42739 26 : break;
42740 :
42741 24 : case 1328: /* RenameStmt: ALTER TYPE_P any_name RENAME ATTRIBUTE name TO name opt_drop_behavior */
42742 : #line 9956 "gram.y"
42743 : {
42744 : RenameStmt *n = makeNode(RenameStmt);
42745 :
42746 : n->renameType = OBJECT_ATTRIBUTE;
42747 : n->relationType = OBJECT_TYPE;
42748 : n->relation = makeRangeVarFromAnyName((yyvsp[-6].list), (yylsp[-6]), yyscanner);
42749 : n->subname = (yyvsp[-3].str);
42750 : n->newname = (yyvsp[-1].str);
42751 : n->behavior = (yyvsp[0].dbehavior);
42752 : n->missing_ok = false;
42753 : (yyval.node) = (Node *) n;
42754 : }
42755 : #line 42756 "gram.c"
42756 24 : break;
42757 :
42758 184 : case 1331: /* opt_set_data: SET DATA_P */
42759 : #line 9974 "gram.y"
42760 : { (yyval.ival) = 1; }
42761 : #line 42762 "gram.c"
42762 184 : break;
42763 :
42764 884 : case 1332: /* opt_set_data: %empty */
42765 : #line 9975 "gram.y"
42766 : { (yyval.ival) = 0; }
42767 : #line 42768 "gram.c"
42768 884 : break;
42769 :
42770 12 : case 1333: /* AlterObjectDependsStmt: ALTER FUNCTION function_with_argtypes opt_no DEPENDS ON EXTENSION name */
42771 : #line 9986 "gram.y"
42772 : {
42773 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42774 :
42775 : n->objectType = OBJECT_FUNCTION;
42776 : n->object = (Node *) (yyvsp[-5].objwithargs);
42777 : n->extname = makeString((yyvsp[0].str));
42778 : n->remove = (yyvsp[-4].boolean);
42779 : (yyval.node) = (Node *) n;
42780 : }
42781 : #line 42782 "gram.c"
42782 12 : break;
42783 :
42784 0 : case 1334: /* AlterObjectDependsStmt: ALTER PROCEDURE function_with_argtypes opt_no DEPENDS ON EXTENSION name */
42785 : #line 9996 "gram.y"
42786 : {
42787 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42788 :
42789 : n->objectType = OBJECT_PROCEDURE;
42790 : n->object = (Node *) (yyvsp[-5].objwithargs);
42791 : n->extname = makeString((yyvsp[0].str));
42792 : n->remove = (yyvsp[-4].boolean);
42793 : (yyval.node) = (Node *) n;
42794 : }
42795 : #line 42796 "gram.c"
42796 0 : break;
42797 :
42798 0 : case 1335: /* AlterObjectDependsStmt: ALTER ROUTINE function_with_argtypes opt_no DEPENDS ON EXTENSION name */
42799 : #line 10006 "gram.y"
42800 : {
42801 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42802 :
42803 : n->objectType = OBJECT_ROUTINE;
42804 : n->object = (Node *) (yyvsp[-5].objwithargs);
42805 : n->extname = makeString((yyvsp[0].str));
42806 : n->remove = (yyvsp[-4].boolean);
42807 : (yyval.node) = (Node *) n;
42808 : }
42809 : #line 42810 "gram.c"
42810 0 : break;
42811 :
42812 10 : case 1336: /* AlterObjectDependsStmt: ALTER TRIGGER name ON qualified_name opt_no DEPENDS ON EXTENSION name */
42813 : #line 10016 "gram.y"
42814 : {
42815 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42816 :
42817 : n->objectType = OBJECT_TRIGGER;
42818 : n->relation = (yyvsp[-5].range);
42819 : n->object = (Node *) list_make1(makeString((yyvsp[-7].str)));
42820 : n->extname = makeString((yyvsp[0].str));
42821 : n->remove = (yyvsp[-4].boolean);
42822 : (yyval.node) = (Node *) n;
42823 : }
42824 : #line 42825 "gram.c"
42825 10 : break;
42826 :
42827 10 : case 1337: /* AlterObjectDependsStmt: ALTER MATERIALIZED VIEW qualified_name opt_no DEPENDS ON EXTENSION name */
42828 : #line 10027 "gram.y"
42829 : {
42830 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42831 :
42832 : n->objectType = OBJECT_MATVIEW;
42833 : n->relation = (yyvsp[-5].range);
42834 : n->extname = makeString((yyvsp[0].str));
42835 : n->remove = (yyvsp[-4].boolean);
42836 : (yyval.node) = (Node *) n;
42837 : }
42838 : #line 42839 "gram.c"
42839 10 : break;
42840 :
42841 14 : case 1338: /* AlterObjectDependsStmt: ALTER INDEX qualified_name opt_no DEPENDS ON EXTENSION name */
42842 : #line 10037 "gram.y"
42843 : {
42844 : AlterObjectDependsStmt *n = makeNode(AlterObjectDependsStmt);
42845 :
42846 : n->objectType = OBJECT_INDEX;
42847 : n->relation = (yyvsp[-5].range);
42848 : n->extname = makeString((yyvsp[0].str));
42849 : n->remove = (yyvsp[-4].boolean);
42850 : (yyval.node) = (Node *) n;
42851 : }
42852 : #line 42853 "gram.c"
42853 14 : break;
42854 :
42855 8 : case 1339: /* opt_no: NO */
42856 : #line 10048 "gram.y"
42857 : { (yyval.boolean) = true; }
42858 : #line 42859 "gram.c"
42859 8 : break;
42860 :
42861 38 : case 1340: /* opt_no: %empty */
42862 : #line 10049 "gram.y"
42863 : { (yyval.boolean) = false; }
42864 : #line 42865 "gram.c"
42865 38 : break;
42866 :
42867 24 : case 1341: /* AlterObjectSchemaStmt: ALTER AGGREGATE aggregate_with_argtypes SET SCHEMA name */
42868 : #line 10060 "gram.y"
42869 : {
42870 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42871 :
42872 : n->objectType = OBJECT_AGGREGATE;
42873 : n->object = (Node *) (yyvsp[-3].objwithargs);
42874 : n->newschema = (yyvsp[0].str);
42875 : n->missing_ok = false;
42876 : (yyval.node) = (Node *) n;
42877 : }
42878 : #line 42879 "gram.c"
42879 24 : break;
42880 :
42881 6 : case 1342: /* AlterObjectSchemaStmt: ALTER COLLATION any_name SET SCHEMA name */
42882 : #line 10070 "gram.y"
42883 : {
42884 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42885 :
42886 : n->objectType = OBJECT_COLLATION;
42887 : n->object = (Node *) (yyvsp[-3].list);
42888 : n->newschema = (yyvsp[0].str);
42889 : n->missing_ok = false;
42890 : (yyval.node) = (Node *) n;
42891 : }
42892 : #line 42893 "gram.c"
42893 6 : break;
42894 :
42895 24 : case 1343: /* AlterObjectSchemaStmt: ALTER CONVERSION_P any_name SET SCHEMA name */
42896 : #line 10080 "gram.y"
42897 : {
42898 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42899 :
42900 : n->objectType = OBJECT_CONVERSION;
42901 : n->object = (Node *) (yyvsp[-3].list);
42902 : n->newschema = (yyvsp[0].str);
42903 : n->missing_ok = false;
42904 : (yyval.node) = (Node *) n;
42905 : }
42906 : #line 42907 "gram.c"
42907 24 : break;
42908 :
42909 6 : case 1344: /* AlterObjectSchemaStmt: ALTER DOMAIN_P any_name SET SCHEMA name */
42910 : #line 10090 "gram.y"
42911 : {
42912 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42913 :
42914 : n->objectType = OBJECT_DOMAIN;
42915 : n->object = (Node *) (yyvsp[-3].list);
42916 : n->newschema = (yyvsp[0].str);
42917 : n->missing_ok = false;
42918 : (yyval.node) = (Node *) n;
42919 : }
42920 : #line 42921 "gram.c"
42921 6 : break;
42922 :
42923 12 : case 1345: /* AlterObjectSchemaStmt: ALTER EXTENSION name SET SCHEMA name */
42924 : #line 10100 "gram.y"
42925 : {
42926 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42927 :
42928 : n->objectType = OBJECT_EXTENSION;
42929 : n->object = (Node *) makeString((yyvsp[-3].str));
42930 : n->newschema = (yyvsp[0].str);
42931 : n->missing_ok = false;
42932 : (yyval.node) = (Node *) n;
42933 : }
42934 : #line 42935 "gram.c"
42935 12 : break;
42936 :
42937 42 : case 1346: /* AlterObjectSchemaStmt: ALTER FUNCTION function_with_argtypes SET SCHEMA name */
42938 : #line 10110 "gram.y"
42939 : {
42940 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42941 :
42942 : n->objectType = OBJECT_FUNCTION;
42943 : n->object = (Node *) (yyvsp[-3].objwithargs);
42944 : n->newschema = (yyvsp[0].str);
42945 : n->missing_ok = false;
42946 : (yyval.node) = (Node *) n;
42947 : }
42948 : #line 42949 "gram.c"
42949 42 : break;
42950 :
42951 18 : case 1347: /* AlterObjectSchemaStmt: ALTER OPERATOR operator_with_argtypes SET SCHEMA name */
42952 : #line 10120 "gram.y"
42953 : {
42954 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42955 :
42956 : n->objectType = OBJECT_OPERATOR;
42957 : n->object = (Node *) (yyvsp[-3].objwithargs);
42958 : n->newschema = (yyvsp[0].str);
42959 : n->missing_ok = false;
42960 : (yyval.node) = (Node *) n;
42961 : }
42962 : #line 42963 "gram.c"
42963 18 : break;
42964 :
42965 24 : case 1348: /* AlterObjectSchemaStmt: ALTER OPERATOR CLASS any_name USING name SET SCHEMA name */
42966 : #line 10130 "gram.y"
42967 : {
42968 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42969 :
42970 : n->objectType = OBJECT_OPCLASS;
42971 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
42972 : n->newschema = (yyvsp[0].str);
42973 : n->missing_ok = false;
42974 : (yyval.node) = (Node *) n;
42975 : }
42976 : #line 42977 "gram.c"
42977 24 : break;
42978 :
42979 24 : case 1349: /* AlterObjectSchemaStmt: ALTER OPERATOR FAMILY any_name USING name SET SCHEMA name */
42980 : #line 10140 "gram.y"
42981 : {
42982 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42983 :
42984 : n->objectType = OBJECT_OPFAMILY;
42985 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
42986 : n->newschema = (yyvsp[0].str);
42987 : n->missing_ok = false;
42988 : (yyval.node) = (Node *) n;
42989 : }
42990 : #line 42991 "gram.c"
42991 24 : break;
42992 :
42993 0 : case 1350: /* AlterObjectSchemaStmt: ALTER PROCEDURE function_with_argtypes SET SCHEMA name */
42994 : #line 10150 "gram.y"
42995 : {
42996 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
42997 :
42998 : n->objectType = OBJECT_PROCEDURE;
42999 : n->object = (Node *) (yyvsp[-3].objwithargs);
43000 : n->newschema = (yyvsp[0].str);
43001 : n->missing_ok = false;
43002 : (yyval.node) = (Node *) n;
43003 : }
43004 : #line 43005 "gram.c"
43005 0 : break;
43006 :
43007 0 : case 1351: /* AlterObjectSchemaStmt: ALTER ROUTINE function_with_argtypes SET SCHEMA name */
43008 : #line 10160 "gram.y"
43009 : {
43010 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43011 :
43012 : n->objectType = OBJECT_ROUTINE;
43013 : n->object = (Node *) (yyvsp[-3].objwithargs);
43014 : n->newschema = (yyvsp[0].str);
43015 : n->missing_ok = false;
43016 : (yyval.node) = (Node *) n;
43017 : }
43018 : #line 43019 "gram.c"
43019 0 : break;
43020 :
43021 66 : case 1352: /* AlterObjectSchemaStmt: ALTER TABLE relation_expr SET SCHEMA name */
43022 : #line 10170 "gram.y"
43023 : {
43024 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43025 :
43026 : n->objectType = OBJECT_TABLE;
43027 : n->relation = (yyvsp[-3].range);
43028 : n->newschema = (yyvsp[0].str);
43029 : n->missing_ok = false;
43030 : (yyval.node) = (Node *) n;
43031 : }
43032 : #line 43033 "gram.c"
43033 66 : break;
43034 :
43035 12 : case 1353: /* AlterObjectSchemaStmt: ALTER TABLE IF_P EXISTS relation_expr SET SCHEMA name */
43036 : #line 10180 "gram.y"
43037 : {
43038 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43039 :
43040 : n->objectType = OBJECT_TABLE;
43041 : n->relation = (yyvsp[-3].range);
43042 : n->newschema = (yyvsp[0].str);
43043 : n->missing_ok = true;
43044 : (yyval.node) = (Node *) n;
43045 : }
43046 : #line 43047 "gram.c"
43047 12 : break;
43048 :
43049 18 : case 1354: /* AlterObjectSchemaStmt: ALTER STATISTICS any_name SET SCHEMA name */
43050 : #line 10190 "gram.y"
43051 : {
43052 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43053 :
43054 : n->objectType = OBJECT_STATISTIC_EXT;
43055 : n->object = (Node *) (yyvsp[-3].list);
43056 : n->newschema = (yyvsp[0].str);
43057 : n->missing_ok = false;
43058 : (yyval.node) = (Node *) n;
43059 : }
43060 : #line 43061 "gram.c"
43061 18 : break;
43062 :
43063 18 : case 1355: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH PARSER any_name SET SCHEMA name */
43064 : #line 10200 "gram.y"
43065 : {
43066 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43067 :
43068 : n->objectType = OBJECT_TSPARSER;
43069 : n->object = (Node *) (yyvsp[-3].list);
43070 : n->newschema = (yyvsp[0].str);
43071 : n->missing_ok = false;
43072 : (yyval.node) = (Node *) n;
43073 : }
43074 : #line 43075 "gram.c"
43075 18 : break;
43076 :
43077 24 : case 1356: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH DICTIONARY any_name SET SCHEMA name */
43078 : #line 10210 "gram.y"
43079 : {
43080 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43081 :
43082 : n->objectType = OBJECT_TSDICTIONARY;
43083 : n->object = (Node *) (yyvsp[-3].list);
43084 : n->newschema = (yyvsp[0].str);
43085 : n->missing_ok = false;
43086 : (yyval.node) = (Node *) n;
43087 : }
43088 : #line 43089 "gram.c"
43089 24 : break;
43090 :
43091 18 : case 1357: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH TEMPLATE any_name SET SCHEMA name */
43092 : #line 10220 "gram.y"
43093 : {
43094 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43095 :
43096 : n->objectType = OBJECT_TSTEMPLATE;
43097 : n->object = (Node *) (yyvsp[-3].list);
43098 : n->newschema = (yyvsp[0].str);
43099 : n->missing_ok = false;
43100 : (yyval.node) = (Node *) n;
43101 : }
43102 : #line 43103 "gram.c"
43103 18 : break;
43104 :
43105 24 : case 1358: /* AlterObjectSchemaStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name SET SCHEMA name */
43106 : #line 10230 "gram.y"
43107 : {
43108 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43109 :
43110 : n->objectType = OBJECT_TSCONFIGURATION;
43111 : n->object = (Node *) (yyvsp[-3].list);
43112 : n->newschema = (yyvsp[0].str);
43113 : n->missing_ok = false;
43114 : (yyval.node) = (Node *) n;
43115 : }
43116 : #line 43117 "gram.c"
43117 24 : break;
43118 :
43119 8 : case 1359: /* AlterObjectSchemaStmt: ALTER SEQUENCE qualified_name SET SCHEMA name */
43120 : #line 10240 "gram.y"
43121 : {
43122 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43123 :
43124 : n->objectType = OBJECT_SEQUENCE;
43125 : n->relation = (yyvsp[-3].range);
43126 : n->newschema = (yyvsp[0].str);
43127 : n->missing_ok = false;
43128 : (yyval.node) = (Node *) n;
43129 : }
43130 : #line 43131 "gram.c"
43131 8 : break;
43132 :
43133 0 : case 1360: /* AlterObjectSchemaStmt: ALTER SEQUENCE IF_P EXISTS qualified_name SET SCHEMA name */
43134 : #line 10250 "gram.y"
43135 : {
43136 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43137 :
43138 : n->objectType = OBJECT_SEQUENCE;
43139 : n->relation = (yyvsp[-3].range);
43140 : n->newschema = (yyvsp[0].str);
43141 : n->missing_ok = true;
43142 : (yyval.node) = (Node *) n;
43143 : }
43144 : #line 43145 "gram.c"
43145 0 : break;
43146 :
43147 0 : case 1361: /* AlterObjectSchemaStmt: ALTER VIEW qualified_name SET SCHEMA name */
43148 : #line 10260 "gram.y"
43149 : {
43150 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43151 :
43152 : n->objectType = OBJECT_VIEW;
43153 : n->relation = (yyvsp[-3].range);
43154 : n->newschema = (yyvsp[0].str);
43155 : n->missing_ok = false;
43156 : (yyval.node) = (Node *) n;
43157 : }
43158 : #line 43159 "gram.c"
43159 0 : break;
43160 :
43161 0 : case 1362: /* AlterObjectSchemaStmt: ALTER VIEW IF_P EXISTS qualified_name SET SCHEMA name */
43162 : #line 10270 "gram.y"
43163 : {
43164 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43165 :
43166 : n->objectType = OBJECT_VIEW;
43167 : n->relation = (yyvsp[-3].range);
43168 : n->newschema = (yyvsp[0].str);
43169 : n->missing_ok = true;
43170 : (yyval.node) = (Node *) n;
43171 : }
43172 : #line 43173 "gram.c"
43173 0 : break;
43174 :
43175 6 : case 1363: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW qualified_name SET SCHEMA name */
43176 : #line 10280 "gram.y"
43177 : {
43178 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43179 :
43180 : n->objectType = OBJECT_MATVIEW;
43181 : n->relation = (yyvsp[-3].range);
43182 : n->newschema = (yyvsp[0].str);
43183 : n->missing_ok = false;
43184 : (yyval.node) = (Node *) n;
43185 : }
43186 : #line 43187 "gram.c"
43187 6 : break;
43188 :
43189 0 : case 1364: /* AlterObjectSchemaStmt: ALTER MATERIALIZED VIEW IF_P EXISTS qualified_name SET SCHEMA name */
43190 : #line 10290 "gram.y"
43191 : {
43192 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43193 :
43194 : n->objectType = OBJECT_MATVIEW;
43195 : n->relation = (yyvsp[-3].range);
43196 : n->newschema = (yyvsp[0].str);
43197 : n->missing_ok = true;
43198 : (yyval.node) = (Node *) n;
43199 : }
43200 : #line 43201 "gram.c"
43201 0 : break;
43202 :
43203 6 : case 1365: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE relation_expr SET SCHEMA name */
43204 : #line 10300 "gram.y"
43205 : {
43206 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43207 :
43208 : n->objectType = OBJECT_FOREIGN_TABLE;
43209 : n->relation = (yyvsp[-3].range);
43210 : n->newschema = (yyvsp[0].str);
43211 : n->missing_ok = false;
43212 : (yyval.node) = (Node *) n;
43213 : }
43214 : #line 43215 "gram.c"
43215 6 : break;
43216 :
43217 6 : case 1366: /* AlterObjectSchemaStmt: ALTER FOREIGN TABLE IF_P EXISTS relation_expr SET SCHEMA name */
43218 : #line 10310 "gram.y"
43219 : {
43220 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43221 :
43222 : n->objectType = OBJECT_FOREIGN_TABLE;
43223 : n->relation = (yyvsp[-3].range);
43224 : n->newschema = (yyvsp[0].str);
43225 : n->missing_ok = true;
43226 : (yyval.node) = (Node *) n;
43227 : }
43228 : #line 43229 "gram.c"
43229 6 : break;
43230 :
43231 12 : case 1367: /* AlterObjectSchemaStmt: ALTER TYPE_P any_name SET SCHEMA name */
43232 : #line 10320 "gram.y"
43233 : {
43234 : AlterObjectSchemaStmt *n = makeNode(AlterObjectSchemaStmt);
43235 :
43236 : n->objectType = OBJECT_TYPE;
43237 : n->object = (Node *) (yyvsp[-3].list);
43238 : n->newschema = (yyvsp[0].str);
43239 : n->missing_ok = false;
43240 : (yyval.node) = (Node *) n;
43241 : }
43242 : #line 43243 "gram.c"
43243 12 : break;
43244 :
43245 608 : case 1368: /* AlterOperatorStmt: ALTER OPERATOR operator_with_argtypes SET '(' operator_def_list ')' */
43246 : #line 10339 "gram.y"
43247 : {
43248 : AlterOperatorStmt *n = makeNode(AlterOperatorStmt);
43249 :
43250 : n->opername = (yyvsp[-4].objwithargs);
43251 : n->options = (yyvsp[-1].list);
43252 : (yyval.node) = (Node *) n;
43253 : }
43254 : #line 43255 "gram.c"
43255 608 : break;
43256 :
43257 668 : case 1369: /* operator_def_list: operator_def_elem */
43258 : #line 10348 "gram.y"
43259 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
43260 : #line 43261 "gram.c"
43261 668 : break;
43262 :
43263 506 : case 1370: /* operator_def_list: operator_def_list ',' operator_def_elem */
43264 : #line 10349 "gram.y"
43265 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
43266 : #line 43267 "gram.c"
43267 506 : break;
43268 :
43269 30 : case 1371: /* operator_def_elem: ColLabel '=' NONE */
43270 : #line 10353 "gram.y"
43271 : { (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2])); }
43272 : #line 43273 "gram.c"
43273 30 : break;
43274 :
43275 1110 : case 1372: /* operator_def_elem: ColLabel '=' operator_def_arg */
43276 : #line 10355 "gram.y"
43277 : { (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) (yyvsp[0].node), (yylsp[-2])); }
43278 : #line 43279 "gram.c"
43279 1110 : break;
43280 :
43281 34 : case 1373: /* operator_def_elem: ColLabel */
43282 : #line 10357 "gram.y"
43283 : { (yyval.defelt) = makeDefElem((yyvsp[0].str), NULL, (yylsp[0])); }
43284 : #line 43285 "gram.c"
43285 34 : break;
43286 :
43287 1032 : case 1374: /* operator_def_arg: func_type */
43288 : #line 10362 "gram.y"
43289 : { (yyval.node) = (Node *) (yyvsp[0].typnam); }
43290 : #line 43291 "gram.c"
43291 1032 : break;
43292 :
43293 24 : case 1375: /* operator_def_arg: reserved_keyword */
43294 : #line 10363 "gram.y"
43295 : { (yyval.node) = (Node *) makeString(pstrdup((yyvsp[0].keyword))); }
43296 : #line 43297 "gram.c"
43297 24 : break;
43298 :
43299 54 : case 1376: /* operator_def_arg: qual_all_Op */
43300 : #line 10364 "gram.y"
43301 : { (yyval.node) = (Node *) (yyvsp[0].list); }
43302 : #line 43303 "gram.c"
43303 54 : break;
43304 :
43305 0 : case 1377: /* operator_def_arg: NumericOnly */
43306 : #line 10365 "gram.y"
43307 : { (yyval.node) = (Node *) (yyvsp[0].node); }
43308 : #line 43309 "gram.c"
43309 0 : break;
43310 :
43311 0 : case 1378: /* operator_def_arg: Sconst */
43312 : #line 10366 "gram.y"
43313 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
43314 : #line 43315 "gram.c"
43315 0 : break;
43316 :
43317 60 : case 1379: /* AlterTypeStmt: ALTER TYPE_P any_name SET '(' operator_def_list ')' */
43318 : #line 10379 "gram.y"
43319 : {
43320 : AlterTypeStmt *n = makeNode(AlterTypeStmt);
43321 :
43322 : n->typeName = (yyvsp[-4].list);
43323 : n->options = (yyvsp[-1].list);
43324 : (yyval.node) = (Node *) n;
43325 : }
43326 : #line 43327 "gram.c"
43327 60 : break;
43328 :
43329 236 : case 1380: /* AlterOwnerStmt: ALTER AGGREGATE aggregate_with_argtypes OWNER TO RoleSpec */
43330 : #line 10395 "gram.y"
43331 : {
43332 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43333 :
43334 : n->objectType = OBJECT_AGGREGATE;
43335 : n->object = (Node *) (yyvsp[-3].objwithargs);
43336 : n->newowner = (yyvsp[0].rolespec);
43337 : (yyval.node) = (Node *) n;
43338 : }
43339 : #line 43340 "gram.c"
43340 236 : break;
43341 :
43342 24 : case 1381: /* AlterOwnerStmt: ALTER COLLATION any_name OWNER TO RoleSpec */
43343 : #line 10404 "gram.y"
43344 : {
43345 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43346 :
43347 : n->objectType = OBJECT_COLLATION;
43348 : n->object = (Node *) (yyvsp[-3].list);
43349 : n->newowner = (yyvsp[0].rolespec);
43350 : (yyval.node) = (Node *) n;
43351 : }
43352 : #line 43353 "gram.c"
43353 24 : break;
43354 :
43355 24 : case 1382: /* AlterOwnerStmt: ALTER CONVERSION_P any_name OWNER TO RoleSpec */
43356 : #line 10413 "gram.y"
43357 : {
43358 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43359 :
43360 : n->objectType = OBJECT_CONVERSION;
43361 : n->object = (Node *) (yyvsp[-3].list);
43362 : n->newowner = (yyvsp[0].rolespec);
43363 : (yyval.node) = (Node *) n;
43364 : }
43365 : #line 43366 "gram.c"
43366 24 : break;
43367 :
43368 80 : case 1383: /* AlterOwnerStmt: ALTER DATABASE name OWNER TO RoleSpec */
43369 : #line 10422 "gram.y"
43370 : {
43371 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43372 :
43373 : n->objectType = OBJECT_DATABASE;
43374 : n->object = (Node *) makeString((yyvsp[-3].str));
43375 : n->newowner = (yyvsp[0].rolespec);
43376 : (yyval.node) = (Node *) n;
43377 : }
43378 : #line 43379 "gram.c"
43379 80 : break;
43380 :
43381 92 : case 1384: /* AlterOwnerStmt: ALTER DOMAIN_P any_name OWNER TO RoleSpec */
43382 : #line 10431 "gram.y"
43383 : {
43384 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43385 :
43386 : n->objectType = OBJECT_DOMAIN;
43387 : n->object = (Node *) (yyvsp[-3].list);
43388 : n->newowner = (yyvsp[0].rolespec);
43389 : (yyval.node) = (Node *) n;
43390 : }
43391 : #line 43392 "gram.c"
43392 92 : break;
43393 :
43394 1114 : case 1385: /* AlterOwnerStmt: ALTER FUNCTION function_with_argtypes OWNER TO RoleSpec */
43395 : #line 10440 "gram.y"
43396 : {
43397 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43398 :
43399 : n->objectType = OBJECT_FUNCTION;
43400 : n->object = (Node *) (yyvsp[-3].objwithargs);
43401 : n->newowner = (yyvsp[0].rolespec);
43402 : (yyval.node) = (Node *) n;
43403 : }
43404 : #line 43405 "gram.c"
43405 1114 : break;
43406 :
43407 140 : case 1386: /* AlterOwnerStmt: ALTER opt_procedural LANGUAGE name OWNER TO RoleSpec */
43408 : #line 10449 "gram.y"
43409 : {
43410 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43411 :
43412 : n->objectType = OBJECT_LANGUAGE;
43413 : n->object = (Node *) makeString((yyvsp[-3].str));
43414 : n->newowner = (yyvsp[0].rolespec);
43415 : (yyval.node) = (Node *) n;
43416 : }
43417 : #line 43418 "gram.c"
43418 140 : break;
43419 :
43420 18 : case 1387: /* AlterOwnerStmt: ALTER LARGE_P OBJECT_P NumericOnly OWNER TO RoleSpec */
43421 : #line 10458 "gram.y"
43422 : {
43423 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43424 :
43425 : n->objectType = OBJECT_LARGEOBJECT;
43426 : n->object = (Node *) (yyvsp[-3].node);
43427 : n->newowner = (yyvsp[0].rolespec);
43428 : (yyval.node) = (Node *) n;
43429 : }
43430 : #line 43431 "gram.c"
43431 18 : break;
43432 :
43433 68 : case 1388: /* AlterOwnerStmt: ALTER OPERATOR operator_with_argtypes OWNER TO RoleSpec */
43434 : #line 10467 "gram.y"
43435 : {
43436 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43437 :
43438 : n->objectType = OBJECT_OPERATOR;
43439 : n->object = (Node *) (yyvsp[-3].objwithargs);
43440 : n->newowner = (yyvsp[0].rolespec);
43441 : (yyval.node) = (Node *) n;
43442 : }
43443 : #line 43444 "gram.c"
43444 68 : break;
43445 :
43446 60 : case 1389: /* AlterOwnerStmt: ALTER OPERATOR CLASS any_name USING name OWNER TO RoleSpec */
43447 : #line 10476 "gram.y"
43448 : {
43449 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43450 :
43451 : n->objectType = OBJECT_OPCLASS;
43452 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
43453 : n->newowner = (yyvsp[0].rolespec);
43454 : (yyval.node) = (Node *) n;
43455 : }
43456 : #line 43457 "gram.c"
43457 60 : break;
43458 :
43459 76 : case 1390: /* AlterOwnerStmt: ALTER OPERATOR FAMILY any_name USING name OWNER TO RoleSpec */
43460 : #line 10485 "gram.y"
43461 : {
43462 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43463 :
43464 : n->objectType = OBJECT_OPFAMILY;
43465 : n->object = (Node *) lcons(makeString((yyvsp[-3].str)), (yyvsp[-5].list));
43466 : n->newowner = (yyvsp[0].rolespec);
43467 : (yyval.node) = (Node *) n;
43468 : }
43469 : #line 43470 "gram.c"
43470 76 : break;
43471 :
43472 48 : case 1391: /* AlterOwnerStmt: ALTER PROCEDURE function_with_argtypes OWNER TO RoleSpec */
43473 : #line 10494 "gram.y"
43474 : {
43475 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43476 :
43477 : n->objectType = OBJECT_PROCEDURE;
43478 : n->object = (Node *) (yyvsp[-3].objwithargs);
43479 : n->newowner = (yyvsp[0].rolespec);
43480 : (yyval.node) = (Node *) n;
43481 : }
43482 : #line 43483 "gram.c"
43483 48 : break;
43484 :
43485 0 : case 1392: /* AlterOwnerStmt: ALTER ROUTINE function_with_argtypes OWNER TO RoleSpec */
43486 : #line 10503 "gram.y"
43487 : {
43488 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43489 :
43490 : n->objectType = OBJECT_ROUTINE;
43491 : n->object = (Node *) (yyvsp[-3].objwithargs);
43492 : n->newowner = (yyvsp[0].rolespec);
43493 : (yyval.node) = (Node *) n;
43494 : }
43495 : #line 43496 "gram.c"
43496 0 : break;
43497 :
43498 78 : case 1393: /* AlterOwnerStmt: ALTER SCHEMA name OWNER TO RoleSpec */
43499 : #line 10512 "gram.y"
43500 : {
43501 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43502 :
43503 : n->objectType = OBJECT_SCHEMA;
43504 : n->object = (Node *) makeString((yyvsp[-3].str));
43505 : n->newowner = (yyvsp[0].rolespec);
43506 : (yyval.node) = (Node *) n;
43507 : }
43508 : #line 43509 "gram.c"
43509 78 : break;
43510 :
43511 152 : case 1394: /* AlterOwnerStmt: ALTER TYPE_P any_name OWNER TO RoleSpec */
43512 : #line 10521 "gram.y"
43513 : {
43514 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43515 :
43516 : n->objectType = OBJECT_TYPE;
43517 : n->object = (Node *) (yyvsp[-3].list);
43518 : n->newowner = (yyvsp[0].rolespec);
43519 : (yyval.node) = (Node *) n;
43520 : }
43521 : #line 43522 "gram.c"
43522 152 : break;
43523 :
43524 6 : case 1395: /* AlterOwnerStmt: ALTER TABLESPACE name OWNER TO RoleSpec */
43525 : #line 10530 "gram.y"
43526 : {
43527 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43528 :
43529 : n->objectType = OBJECT_TABLESPACE;
43530 : n->object = (Node *) makeString((yyvsp[-3].str));
43531 : n->newowner = (yyvsp[0].rolespec);
43532 : (yyval.node) = (Node *) n;
43533 : }
43534 : #line 43535 "gram.c"
43535 6 : break;
43536 :
43537 40 : case 1396: /* AlterOwnerStmt: ALTER STATISTICS any_name OWNER TO RoleSpec */
43538 : #line 10539 "gram.y"
43539 : {
43540 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43541 :
43542 : n->objectType = OBJECT_STATISTIC_EXT;
43543 : n->object = (Node *) (yyvsp[-3].list);
43544 : n->newowner = (yyvsp[0].rolespec);
43545 : (yyval.node) = (Node *) n;
43546 : }
43547 : #line 43548 "gram.c"
43548 40 : break;
43549 :
43550 60 : case 1397: /* AlterOwnerStmt: ALTER TEXT_P SEARCH DICTIONARY any_name OWNER TO RoleSpec */
43551 : #line 10548 "gram.y"
43552 : {
43553 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43554 :
43555 : n->objectType = OBJECT_TSDICTIONARY;
43556 : n->object = (Node *) (yyvsp[-3].list);
43557 : n->newowner = (yyvsp[0].rolespec);
43558 : (yyval.node) = (Node *) n;
43559 : }
43560 : #line 43561 "gram.c"
43561 60 : break;
43562 :
43563 40 : case 1398: /* AlterOwnerStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name OWNER TO RoleSpec */
43564 : #line 10557 "gram.y"
43565 : {
43566 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43567 :
43568 : n->objectType = OBJECT_TSCONFIGURATION;
43569 : n->object = (Node *) (yyvsp[-3].list);
43570 : n->newowner = (yyvsp[0].rolespec);
43571 : (yyval.node) = (Node *) n;
43572 : }
43573 : #line 43574 "gram.c"
43574 40 : break;
43575 :
43576 22 : case 1399: /* AlterOwnerStmt: ALTER FOREIGN DATA_P WRAPPER name OWNER TO RoleSpec */
43577 : #line 10566 "gram.y"
43578 : {
43579 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43580 :
43581 : n->objectType = OBJECT_FDW;
43582 : n->object = (Node *) makeString((yyvsp[-3].str));
43583 : n->newowner = (yyvsp[0].rolespec);
43584 : (yyval.node) = (Node *) n;
43585 : }
43586 : #line 43587 "gram.c"
43587 22 : break;
43588 :
43589 70 : case 1400: /* AlterOwnerStmt: ALTER SERVER name OWNER TO RoleSpec */
43590 : #line 10575 "gram.y"
43591 : {
43592 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43593 :
43594 : n->objectType = OBJECT_FOREIGN_SERVER;
43595 : n->object = (Node *) makeString((yyvsp[-3].str));
43596 : n->newowner = (yyvsp[0].rolespec);
43597 : (yyval.node) = (Node *) n;
43598 : }
43599 : #line 43600 "gram.c"
43600 70 : break;
43601 :
43602 16 : case 1401: /* AlterOwnerStmt: ALTER EVENT TRIGGER name OWNER TO RoleSpec */
43603 : #line 10584 "gram.y"
43604 : {
43605 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43606 :
43607 : n->objectType = OBJECT_EVENT_TRIGGER;
43608 : n->object = (Node *) makeString((yyvsp[-3].str));
43609 : n->newowner = (yyvsp[0].rolespec);
43610 : (yyval.node) = (Node *) n;
43611 : }
43612 : #line 43613 "gram.c"
43613 16 : break;
43614 :
43615 26 : case 1402: /* AlterOwnerStmt: ALTER PUBLICATION name OWNER TO RoleSpec */
43616 : #line 10593 "gram.y"
43617 : {
43618 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43619 :
43620 : n->objectType = OBJECT_PUBLICATION;
43621 : n->object = (Node *) makeString((yyvsp[-3].str));
43622 : n->newowner = (yyvsp[0].rolespec);
43623 : (yyval.node) = (Node *) n;
43624 : }
43625 : #line 43626 "gram.c"
43626 26 : break;
43627 :
43628 18 : case 1403: /* AlterOwnerStmt: ALTER SUBSCRIPTION name OWNER TO RoleSpec */
43629 : #line 10602 "gram.y"
43630 : {
43631 : AlterOwnerStmt *n = makeNode(AlterOwnerStmt);
43632 :
43633 : n->objectType = OBJECT_SUBSCRIPTION;
43634 : n->object = (Node *) makeString((yyvsp[-3].str));
43635 : n->newowner = (yyvsp[0].rolespec);
43636 : (yyval.node) = (Node *) n;
43637 : }
43638 : #line 43639 "gram.c"
43639 18 : break;
43640 :
43641 126 : case 1404: /* CreatePublicationStmt: CREATE PUBLICATION name opt_definition */
43642 : #line 10630 "gram.y"
43643 : {
43644 : CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
43645 :
43646 : n->pubname = (yyvsp[-1].str);
43647 : n->options = (yyvsp[0].list);
43648 : (yyval.node) = (Node *) n;
43649 : }
43650 : #line 43651 "gram.c"
43651 126 : break;
43652 :
43653 94 : case 1405: /* CreatePublicationStmt: CREATE PUBLICATION name FOR ALL TABLES opt_definition */
43654 : #line 10638 "gram.y"
43655 : {
43656 : CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
43657 :
43658 : n->pubname = (yyvsp[-4].str);
43659 : n->options = (yyvsp[0].list);
43660 : n->for_all_tables = true;
43661 : (yyval.node) = (Node *) n;
43662 : }
43663 : #line 43664 "gram.c"
43664 94 : break;
43665 :
43666 624 : case 1406: /* CreatePublicationStmt: CREATE PUBLICATION name FOR pub_obj_list opt_definition */
43667 : #line 10647 "gram.y"
43668 : {
43669 : CreatePublicationStmt *n = makeNode(CreatePublicationStmt);
43670 :
43671 : n->pubname = (yyvsp[-3].str);
43672 : n->options = (yyvsp[0].list);
43673 : n->pubobjects = (List *) (yyvsp[-1].list);
43674 : preprocess_pubobj_list(n->pubobjects, yyscanner);
43675 : (yyval.node) = (Node *) n;
43676 : }
43677 : #line 43678 "gram.c"
43678 594 : break;
43679 :
43680 1276 : case 1407: /* PublicationObjSpec: TABLE relation_expr opt_column_list OptWhereClause */
43681 : #line 10673 "gram.y"
43682 : {
43683 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43684 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLE;
43685 : (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
43686 : (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[-2].range);
43687 : (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
43688 : (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
43689 : }
43690 : #line 43691 "gram.c"
43691 1276 : break;
43692 :
43693 332 : case 1408: /* PublicationObjSpec: TABLES IN_P SCHEMA ColId */
43694 : #line 10682 "gram.y"
43695 : {
43696 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43697 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA;
43698 : (yyval.publicationobjectspec)->name = (yyvsp[0].str);
43699 : (yyval.publicationobjectspec)->location = (yylsp[0]);
43700 : }
43701 : #line 43702 "gram.c"
43702 332 : break;
43703 :
43704 18 : case 1409: /* PublicationObjSpec: TABLES IN_P SCHEMA CURRENT_SCHEMA */
43705 : #line 10689 "gram.y"
43706 : {
43707 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43708 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA;
43709 : (yyval.publicationobjectspec)->location = (yylsp[0]);
43710 : }
43711 : #line 43712 "gram.c"
43712 18 : break;
43713 :
43714 130 : case 1410: /* PublicationObjSpec: ColId opt_column_list OptWhereClause */
43715 : #line 10695 "gram.y"
43716 : {
43717 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43718 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
43719 : /*
43720 : * If either a row filter or column list is specified, create
43721 : * a PublicationTable object.
43722 : */
43723 : if ((yyvsp[-1].list) || (yyvsp[0].node))
43724 : {
43725 : /*
43726 : * The OptWhereClause must be stored here but it is
43727 : * valid only for tables. For non-table objects, an
43728 : * error will be thrown later via
43729 : * preprocess_pubobj_list().
43730 : */
43731 : (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
43732 : (yyval.publicationobjectspec)->pubtable->relation = makeRangeVar(NULL, (yyvsp[-2].str), (yylsp[-2]));
43733 : (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
43734 : (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
43735 : }
43736 : else
43737 : {
43738 : (yyval.publicationobjectspec)->name = (yyvsp[-2].str);
43739 : }
43740 : (yyval.publicationobjectspec)->location = (yylsp[-2]);
43741 : }
43742 : #line 43743 "gram.c"
43743 130 : break;
43744 :
43745 32 : case 1411: /* PublicationObjSpec: ColId indirection opt_column_list OptWhereClause */
43746 : #line 10722 "gram.y"
43747 : {
43748 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43749 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
43750 : (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
43751 : (yyval.publicationobjectspec)->pubtable->relation = makeRangeVarFromQualifiedName((yyvsp[-3].str), (yyvsp[-2].list), (yylsp[-3]), yyscanner);
43752 : (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
43753 : (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
43754 : (yyval.publicationobjectspec)->location = (yylsp[-3]);
43755 : }
43756 : #line 43757 "gram.c"
43757 32 : break;
43758 :
43759 6 : case 1412: /* PublicationObjSpec: extended_relation_expr opt_column_list OptWhereClause */
43760 : #line 10733 "gram.y"
43761 : {
43762 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43763 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
43764 : (yyval.publicationobjectspec)->pubtable = makeNode(PublicationTable);
43765 : (yyval.publicationobjectspec)->pubtable->relation = (yyvsp[-2].range);
43766 : (yyval.publicationobjectspec)->pubtable->columns = (yyvsp[-1].list);
43767 : (yyval.publicationobjectspec)->pubtable->whereClause = (yyvsp[0].node);
43768 : }
43769 : #line 43770 "gram.c"
43770 6 : break;
43771 :
43772 18 : case 1413: /* PublicationObjSpec: CURRENT_SCHEMA */
43773 : #line 10742 "gram.y"
43774 : {
43775 : (yyval.publicationobjectspec) = makeNode(PublicationObjSpec);
43776 : (yyval.publicationobjectspec)->pubobjtype = PUBLICATIONOBJ_CONTINUATION;
43777 : (yyval.publicationobjectspec)->location = (yylsp[0]);
43778 : }
43779 : #line 43780 "gram.c"
43780 18 : break;
43781 :
43782 1588 : case 1414: /* pub_obj_list: PublicationObjSpec */
43783 : #line 10750 "gram.y"
43784 : { (yyval.list) = list_make1((yyvsp[0].publicationobjectspec)); }
43785 : #line 43786 "gram.c"
43786 1588 : break;
43787 :
43788 224 : case 1415: /* pub_obj_list: pub_obj_list ',' PublicationObjSpec */
43789 : #line 10752 "gram.y"
43790 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].publicationobjectspec)); }
43791 : #line 43792 "gram.c"
43792 224 : break;
43793 :
43794 116 : case 1416: /* AlterPublicationStmt: ALTER PUBLICATION name SET definition */
43795 : #line 10774 "gram.y"
43796 : {
43797 : AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
43798 :
43799 : n->pubname = (yyvsp[-2].str);
43800 : n->options = (yyvsp[0].list);
43801 : (yyval.node) = (Node *) n;
43802 : }
43803 : #line 43804 "gram.c"
43804 116 : break;
43805 :
43806 346 : case 1417: /* AlterPublicationStmt: ALTER PUBLICATION name ADD_P pub_obj_list */
43807 : #line 10782 "gram.y"
43808 : {
43809 : AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
43810 :
43811 : n->pubname = (yyvsp[-2].str);
43812 : n->pubobjects = (yyvsp[0].list);
43813 : preprocess_pubobj_list(n->pubobjects, yyscanner);
43814 : n->action = AP_AddObjects;
43815 : (yyval.node) = (Node *) n;
43816 : }
43817 : #line 43818 "gram.c"
43818 340 : break;
43819 :
43820 464 : case 1418: /* AlterPublicationStmt: ALTER PUBLICATION name SET pub_obj_list */
43821 : #line 10792 "gram.y"
43822 : {
43823 : AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
43824 :
43825 : n->pubname = (yyvsp[-2].str);
43826 : n->pubobjects = (yyvsp[0].list);
43827 : preprocess_pubobj_list(n->pubobjects, yyscanner);
43828 : n->action = AP_SetObjects;
43829 : (yyval.node) = (Node *) n;
43830 : }
43831 : #line 43832 "gram.c"
43832 464 : break;
43833 :
43834 154 : case 1419: /* AlterPublicationStmt: ALTER PUBLICATION name DROP pub_obj_list */
43835 : #line 10802 "gram.y"
43836 : {
43837 : AlterPublicationStmt *n = makeNode(AlterPublicationStmt);
43838 :
43839 : n->pubname = (yyvsp[-2].str);
43840 : n->pubobjects = (yyvsp[0].list);
43841 : preprocess_pubobj_list(n->pubobjects, yyscanner);
43842 : n->action = AP_DropObjects;
43843 : (yyval.node) = (Node *) n;
43844 : }
43845 : #line 43846 "gram.c"
43846 154 : break;
43847 :
43848 448 : case 1420: /* CreateSubscriptionStmt: CREATE SUBSCRIPTION name CONNECTION Sconst PUBLICATION name_list opt_definition */
43849 : #line 10821 "gram.y"
43850 : {
43851 : CreateSubscriptionStmt *n =
43852 : makeNode(CreateSubscriptionStmt);
43853 : n->subname = (yyvsp[-5].str);
43854 : n->conninfo = (yyvsp[-3].str);
43855 : n->publication = (yyvsp[-1].list);
43856 : n->options = (yyvsp[0].list);
43857 : (yyval.node) = (Node *) n;
43858 : }
43859 : #line 43860 "gram.c"
43860 448 : break;
43861 :
43862 186 : case 1421: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET definition */
43863 : #line 10840 "gram.y"
43864 : {
43865 : AlterSubscriptionStmt *n =
43866 : makeNode(AlterSubscriptionStmt);
43867 :
43868 : n->kind = ALTER_SUBSCRIPTION_OPTIONS;
43869 : n->subname = (yyvsp[-2].str);
43870 : n->options = (yyvsp[0].list);
43871 : (yyval.node) = (Node *) n;
43872 : }
43873 : #line 43874 "gram.c"
43874 186 : break;
43875 :
43876 26 : case 1422: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name CONNECTION Sconst */
43877 : #line 10850 "gram.y"
43878 : {
43879 : AlterSubscriptionStmt *n =
43880 : makeNode(AlterSubscriptionStmt);
43881 :
43882 : n->kind = ALTER_SUBSCRIPTION_CONNECTION;
43883 : n->subname = (yyvsp[-2].str);
43884 : n->conninfo = (yyvsp[0].str);
43885 : (yyval.node) = (Node *) n;
43886 : }
43887 : #line 43888 "gram.c"
43888 26 : break;
43889 :
43890 58 : case 1423: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name REFRESH PUBLICATION opt_definition */
43891 : #line 10860 "gram.y"
43892 : {
43893 : AlterSubscriptionStmt *n =
43894 : makeNode(AlterSubscriptionStmt);
43895 :
43896 : n->kind = ALTER_SUBSCRIPTION_REFRESH;
43897 : n->subname = (yyvsp[-3].str);
43898 : n->options = (yyvsp[0].list);
43899 : (yyval.node) = (Node *) n;
43900 : }
43901 : #line 43902 "gram.c"
43902 58 : break;
43903 :
43904 28 : case 1424: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ADD_P PUBLICATION name_list opt_definition */
43905 : #line 10870 "gram.y"
43906 : {
43907 : AlterSubscriptionStmt *n =
43908 : makeNode(AlterSubscriptionStmt);
43909 :
43910 : n->kind = ALTER_SUBSCRIPTION_ADD_PUBLICATION;
43911 : n->subname = (yyvsp[-4].str);
43912 : n->publication = (yyvsp[-1].list);
43913 : n->options = (yyvsp[0].list);
43914 : (yyval.node) = (Node *) n;
43915 : }
43916 : #line 43917 "gram.c"
43917 28 : break;
43918 :
43919 26 : case 1425: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DROP PUBLICATION name_list opt_definition */
43920 : #line 10881 "gram.y"
43921 : {
43922 : AlterSubscriptionStmt *n =
43923 : makeNode(AlterSubscriptionStmt);
43924 :
43925 : n->kind = ALTER_SUBSCRIPTION_DROP_PUBLICATION;
43926 : n->subname = (yyvsp[-4].str);
43927 : n->publication = (yyvsp[-1].list);
43928 : n->options = (yyvsp[0].list);
43929 : (yyval.node) = (Node *) n;
43930 : }
43931 : #line 43932 "gram.c"
43932 26 : break;
43933 :
43934 44 : case 1426: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SET PUBLICATION name_list opt_definition */
43935 : #line 10892 "gram.y"
43936 : {
43937 : AlterSubscriptionStmt *n =
43938 : makeNode(AlterSubscriptionStmt);
43939 :
43940 : n->kind = ALTER_SUBSCRIPTION_SET_PUBLICATION;
43941 : n->subname = (yyvsp[-4].str);
43942 : n->publication = (yyvsp[-1].list);
43943 : n->options = (yyvsp[0].list);
43944 : (yyval.node) = (Node *) n;
43945 : }
43946 : #line 43947 "gram.c"
43947 44 : break;
43948 :
43949 50 : case 1427: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name ENABLE_P */
43950 : #line 10903 "gram.y"
43951 : {
43952 : AlterSubscriptionStmt *n =
43953 : makeNode(AlterSubscriptionStmt);
43954 :
43955 : n->kind = ALTER_SUBSCRIPTION_ENABLED;
43956 : n->subname = (yyvsp[-1].str);
43957 : n->options = list_make1(makeDefElem("enabled",
43958 : (Node *) makeBoolean(true), (yylsp[-3])));
43959 : (yyval.node) = (Node *) n;
43960 : }
43961 : #line 43962 "gram.c"
43962 50 : break;
43963 :
43964 34 : case 1428: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name DISABLE_P */
43965 : #line 10914 "gram.y"
43966 : {
43967 : AlterSubscriptionStmt *n =
43968 : makeNode(AlterSubscriptionStmt);
43969 :
43970 : n->kind = ALTER_SUBSCRIPTION_ENABLED;
43971 : n->subname = (yyvsp[-1].str);
43972 : n->options = list_make1(makeDefElem("enabled",
43973 : (Node *) makeBoolean(false), (yylsp[-3])));
43974 : (yyval.node) = (Node *) n;
43975 : }
43976 : #line 43977 "gram.c"
43977 34 : break;
43978 :
43979 24 : case 1429: /* AlterSubscriptionStmt: ALTER SUBSCRIPTION name SKIP definition */
43980 : #line 10925 "gram.y"
43981 : {
43982 : AlterSubscriptionStmt *n =
43983 : makeNode(AlterSubscriptionStmt);
43984 :
43985 : n->kind = ALTER_SUBSCRIPTION_SKIP;
43986 : n->subname = (yyvsp[-2].str);
43987 : n->options = (yyvsp[0].list);
43988 : (yyval.node) = (Node *) n;
43989 : }
43990 : #line 43991 "gram.c"
43991 24 : break;
43992 :
43993 222 : case 1430: /* DropSubscriptionStmt: DROP SUBSCRIPTION name opt_drop_behavior */
43994 : #line 10943 "gram.y"
43995 : {
43996 : DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt);
43997 :
43998 : n->subname = (yyvsp[-1].str);
43999 : n->missing_ok = false;
44000 : n->behavior = (yyvsp[0].dbehavior);
44001 : (yyval.node) = (Node *) n;
44002 : }
44003 : #line 44004 "gram.c"
44004 222 : break;
44005 :
44006 6 : case 1431: /* DropSubscriptionStmt: DROP SUBSCRIPTION IF_P EXISTS name opt_drop_behavior */
44007 : #line 10952 "gram.y"
44008 : {
44009 : DropSubscriptionStmt *n = makeNode(DropSubscriptionStmt);
44010 :
44011 : n->subname = (yyvsp[-1].str);
44012 : n->missing_ok = true;
44013 : n->behavior = (yyvsp[0].dbehavior);
44014 : (yyval.node) = (Node *) n;
44015 : }
44016 : #line 44017 "gram.c"
44017 6 : break;
44018 :
44019 1166 : case 1432: /* RuleStmt: CREATE opt_or_replace RULE name AS ON event TO qualified_name where_clause DO opt_instead RuleActionList */
44020 : #line 10971 "gram.y"
44021 : {
44022 : RuleStmt *n = makeNode(RuleStmt);
44023 :
44024 : n->replace = (yyvsp[-11].boolean);
44025 : n->relation = (yyvsp[-4].range);
44026 : n->rulename = (yyvsp[-9].str);
44027 : n->whereClause = (yyvsp[-3].node);
44028 : n->event = (yyvsp[-6].ival);
44029 : n->instead = (yyvsp[-1].boolean);
44030 : n->actions = (yyvsp[0].list);
44031 : (yyval.node) = (Node *) n;
44032 : }
44033 : #line 44034 "gram.c"
44034 1166 : break;
44035 :
44036 166 : case 1433: /* RuleActionList: NOTHING */
44037 : #line 10986 "gram.y"
44038 : { (yyval.list) = NIL; }
44039 : #line 44040 "gram.c"
44040 166 : break;
44041 :
44042 950 : case 1434: /* RuleActionList: RuleActionStmt */
44043 : #line 10987 "gram.y"
44044 : { (yyval.list) = list_make1((yyvsp[0].node)); }
44045 : #line 44046 "gram.c"
44046 950 : break;
44047 :
44048 50 : case 1435: /* RuleActionList: '(' RuleActionMulti ')' */
44049 : #line 10988 "gram.y"
44050 : { (yyval.list) = (yyvsp[-1].list); }
44051 : #line 44052 "gram.c"
44052 50 : break;
44053 :
44054 70 : case 1436: /* RuleActionMulti: RuleActionMulti ';' RuleActionStmtOrEmpty */
44055 : #line 10994 "gram.y"
44056 : { if ((yyvsp[0].node) != NULL)
44057 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
44058 : else
44059 : (yyval.list) = (yyvsp[-2].list);
44060 : }
44061 : #line 44062 "gram.c"
44062 70 : break;
44063 :
44064 50 : case 1437: /* RuleActionMulti: RuleActionStmtOrEmpty */
44065 : #line 11000 "gram.y"
44066 : { if ((yyvsp[0].node) != NULL)
44067 : (yyval.list) = list_make1((yyvsp[0].node));
44068 : else
44069 : (yyval.list) = NIL;
44070 : }
44071 : #line 44072 "gram.c"
44072 50 : break;
44073 :
44074 100 : case 1443: /* RuleActionStmtOrEmpty: RuleActionStmt */
44075 : #line 11016 "gram.y"
44076 : { (yyval.node) = (yyvsp[0].node); }
44077 : #line 44078 "gram.c"
44078 100 : break;
44079 :
44080 20 : case 1444: /* RuleActionStmtOrEmpty: %empty */
44081 : #line 11017 "gram.y"
44082 : { (yyval.node) = NULL; }
44083 : #line 44084 "gram.c"
44084 20 : break;
44085 :
44086 18 : case 1445: /* event: SELECT */
44087 : #line 11020 "gram.y"
44088 : { (yyval.ival) = CMD_SELECT; }
44089 : #line 44090 "gram.c"
44090 18 : break;
44091 :
44092 448 : case 1446: /* event: UPDATE */
44093 : #line 11021 "gram.y"
44094 : { (yyval.ival) = CMD_UPDATE; }
44095 : #line 44096 "gram.c"
44096 448 : break;
44097 :
44098 180 : case 1447: /* event: DELETE_P */
44099 : #line 11022 "gram.y"
44100 : { (yyval.ival) = CMD_DELETE; }
44101 : #line 44102 "gram.c"
44102 180 : break;
44103 :
44104 520 : case 1448: /* event: INSERT */
44105 : #line 11023 "gram.y"
44106 : { (yyval.ival) = CMD_INSERT; }
44107 : #line 44108 "gram.c"
44108 520 : break;
44109 :
44110 798 : case 1449: /* opt_instead: INSTEAD */
44111 : #line 11027 "gram.y"
44112 : { (yyval.boolean) = true; }
44113 : #line 44114 "gram.c"
44114 798 : break;
44115 :
44116 156 : case 1450: /* opt_instead: ALSO */
44117 : #line 11028 "gram.y"
44118 : { (yyval.boolean) = false; }
44119 : #line 44120 "gram.c"
44120 156 : break;
44121 :
44122 212 : case 1451: /* opt_instead: %empty */
44123 : #line 11029 "gram.y"
44124 : { (yyval.boolean) = false; }
44125 : #line 44126 "gram.c"
44126 212 : break;
44127 :
44128 130 : case 1452: /* NotifyStmt: NOTIFY ColId notify_payload */
44129 : #line 11042 "gram.y"
44130 : {
44131 : NotifyStmt *n = makeNode(NotifyStmt);
44132 :
44133 : n->conditionname = (yyvsp[-1].str);
44134 : n->payload = (yyvsp[0].str);
44135 : (yyval.node) = (Node *) n;
44136 : }
44137 : #line 44138 "gram.c"
44138 130 : break;
44139 :
44140 62 : case 1453: /* notify_payload: ',' Sconst */
44141 : #line 11052 "gram.y"
44142 : { (yyval.str) = (yyvsp[0].str); }
44143 : #line 44144 "gram.c"
44144 62 : break;
44145 :
44146 68 : case 1454: /* notify_payload: %empty */
44147 : #line 11053 "gram.y"
44148 : { (yyval.str) = NULL; }
44149 : #line 44150 "gram.c"
44150 68 : break;
44151 :
44152 74 : case 1455: /* ListenStmt: LISTEN ColId */
44153 : #line 11057 "gram.y"
44154 : {
44155 : ListenStmt *n = makeNode(ListenStmt);
44156 :
44157 : n->conditionname = (yyvsp[0].str);
44158 : (yyval.node) = (Node *) n;
44159 : }
44160 : #line 44161 "gram.c"
44161 74 : break;
44162 :
44163 6 : case 1456: /* UnlistenStmt: UNLISTEN ColId */
44164 : #line 11067 "gram.y"
44165 : {
44166 : UnlistenStmt *n = makeNode(UnlistenStmt);
44167 :
44168 : n->conditionname = (yyvsp[0].str);
44169 : (yyval.node) = (Node *) n;
44170 : }
44171 : #line 44172 "gram.c"
44172 6 : break;
44173 :
44174 32 : case 1457: /* UnlistenStmt: UNLISTEN '*' */
44175 : #line 11074 "gram.y"
44176 : {
44177 : UnlistenStmt *n = makeNode(UnlistenStmt);
44178 :
44179 : n->conditionname = NULL;
44180 : (yyval.node) = (Node *) n;
44181 : }
44182 : #line 44183 "gram.c"
44183 32 : break;
44184 :
44185 226 : case 1458: /* TransactionStmt: ABORT_P opt_transaction opt_transaction_chain */
44186 : #line 11094 "gram.y"
44187 : {
44188 : TransactionStmt *n = makeNode(TransactionStmt);
44189 :
44190 : n->kind = TRANS_STMT_ROLLBACK;
44191 : n->options = NIL;
44192 : n->chain = (yyvsp[0].boolean);
44193 : n->location = -1;
44194 : (yyval.node) = (Node *) n;
44195 : }
44196 : #line 44197 "gram.c"
44197 226 : break;
44198 :
44199 1636 : case 1459: /* TransactionStmt: START TRANSACTION transaction_mode_list_or_empty */
44200 : #line 11104 "gram.y"
44201 : {
44202 : TransactionStmt *n = makeNode(TransactionStmt);
44203 :
44204 : n->kind = TRANS_STMT_START;
44205 : n->options = (yyvsp[0].list);
44206 : n->location = -1;
44207 : (yyval.node) = (Node *) n;
44208 : }
44209 : #line 44210 "gram.c"
44210 1636 : break;
44211 :
44212 13092 : case 1460: /* TransactionStmt: COMMIT opt_transaction opt_transaction_chain */
44213 : #line 11113 "gram.y"
44214 : {
44215 : TransactionStmt *n = makeNode(TransactionStmt);
44216 :
44217 : n->kind = TRANS_STMT_COMMIT;
44218 : n->options = NIL;
44219 : n->chain = (yyvsp[0].boolean);
44220 : n->location = -1;
44221 : (yyval.node) = (Node *) n;
44222 : }
44223 : #line 44224 "gram.c"
44224 13092 : break;
44225 :
44226 2644 : case 1461: /* TransactionStmt: ROLLBACK opt_transaction opt_transaction_chain */
44227 : #line 11123 "gram.y"
44228 : {
44229 : TransactionStmt *n = makeNode(TransactionStmt);
44230 :
44231 : n->kind = TRANS_STMT_ROLLBACK;
44232 : n->options = NIL;
44233 : n->chain = (yyvsp[0].boolean);
44234 : n->location = -1;
44235 : (yyval.node) = (Node *) n;
44236 : }
44237 : #line 44238 "gram.c"
44238 2644 : break;
44239 :
44240 1938 : case 1462: /* TransactionStmt: SAVEPOINT ColId */
44241 : #line 11133 "gram.y"
44242 : {
44243 : TransactionStmt *n = makeNode(TransactionStmt);
44244 :
44245 : n->kind = TRANS_STMT_SAVEPOINT;
44246 : n->savepoint_name = (yyvsp[0].str);
44247 : n->location = (yylsp[0]);
44248 : (yyval.node) = (Node *) n;
44249 : }
44250 : #line 44251 "gram.c"
44251 1938 : break;
44252 :
44253 226 : case 1463: /* TransactionStmt: RELEASE SAVEPOINT ColId */
44254 : #line 11142 "gram.y"
44255 : {
44256 : TransactionStmt *n = makeNode(TransactionStmt);
44257 :
44258 : n->kind = TRANS_STMT_RELEASE;
44259 : n->savepoint_name = (yyvsp[0].str);
44260 : n->location = (yylsp[0]);
44261 : (yyval.node) = (Node *) n;
44262 : }
44263 : #line 44264 "gram.c"
44264 226 : break;
44265 :
44266 86 : case 1464: /* TransactionStmt: RELEASE ColId */
44267 : #line 11151 "gram.y"
44268 : {
44269 : TransactionStmt *n = makeNode(TransactionStmt);
44270 :
44271 : n->kind = TRANS_STMT_RELEASE;
44272 : n->savepoint_name = (yyvsp[0].str);
44273 : n->location = (yylsp[0]);
44274 : (yyval.node) = (Node *) n;
44275 : }
44276 : #line 44277 "gram.c"
44277 86 : break;
44278 :
44279 238 : case 1465: /* TransactionStmt: ROLLBACK opt_transaction TO SAVEPOINT ColId */
44280 : #line 11160 "gram.y"
44281 : {
44282 : TransactionStmt *n = makeNode(TransactionStmt);
44283 :
44284 : n->kind = TRANS_STMT_ROLLBACK_TO;
44285 : n->savepoint_name = (yyvsp[0].str);
44286 : n->location = (yylsp[0]);
44287 : (yyval.node) = (Node *) n;
44288 : }
44289 : #line 44290 "gram.c"
44290 238 : break;
44291 :
44292 504 : case 1466: /* TransactionStmt: ROLLBACK opt_transaction TO ColId */
44293 : #line 11169 "gram.y"
44294 : {
44295 : TransactionStmt *n = makeNode(TransactionStmt);
44296 :
44297 : n->kind = TRANS_STMT_ROLLBACK_TO;
44298 : n->savepoint_name = (yyvsp[0].str);
44299 : n->location = (yylsp[0]);
44300 : (yyval.node) = (Node *) n;
44301 : }
44302 : #line 44303 "gram.c"
44303 504 : break;
44304 :
44305 620 : case 1467: /* TransactionStmt: PREPARE TRANSACTION Sconst */
44306 : #line 11178 "gram.y"
44307 : {
44308 : TransactionStmt *n = makeNode(TransactionStmt);
44309 :
44310 : n->kind = TRANS_STMT_PREPARE;
44311 : n->gid = (yyvsp[0].str);
44312 : n->location = (yylsp[0]);
44313 : (yyval.node) = (Node *) n;
44314 : }
44315 : #line 44316 "gram.c"
44316 620 : break;
44317 :
44318 468 : case 1468: /* TransactionStmt: COMMIT PREPARED Sconst */
44319 : #line 11187 "gram.y"
44320 : {
44321 : TransactionStmt *n = makeNode(TransactionStmt);
44322 :
44323 : n->kind = TRANS_STMT_COMMIT_PREPARED;
44324 : n->gid = (yyvsp[0].str);
44325 : n->location = (yylsp[0]);
44326 : (yyval.node) = (Node *) n;
44327 : }
44328 : #line 44329 "gram.c"
44329 468 : break;
44330 :
44331 72 : case 1469: /* TransactionStmt: ROLLBACK PREPARED Sconst */
44332 : #line 11196 "gram.y"
44333 : {
44334 : TransactionStmt *n = makeNode(TransactionStmt);
44335 :
44336 : n->kind = TRANS_STMT_ROLLBACK_PREPARED;
44337 : n->gid = (yyvsp[0].str);
44338 : n->location = (yylsp[0]);
44339 : (yyval.node) = (Node *) n;
44340 : }
44341 : #line 44342 "gram.c"
44342 72 : break;
44343 :
44344 15764 : case 1470: /* TransactionStmtLegacy: BEGIN_P opt_transaction transaction_mode_list_or_empty */
44345 : #line 11208 "gram.y"
44346 : {
44347 : TransactionStmt *n = makeNode(TransactionStmt);
44348 :
44349 : n->kind = TRANS_STMT_BEGIN;
44350 : n->options = (yyvsp[0].list);
44351 : n->location = -1;
44352 : (yyval.node) = (Node *) n;
44353 : }
44354 : #line 44355 "gram.c"
44355 15764 : break;
44356 :
44357 360 : case 1471: /* TransactionStmtLegacy: END_P opt_transaction opt_transaction_chain */
44358 : #line 11217 "gram.y"
44359 : {
44360 : TransactionStmt *n = makeNode(TransactionStmt);
44361 :
44362 : n->kind = TRANS_STMT_COMMIT;
44363 : n->options = NIL;
44364 : n->chain = (yyvsp[0].boolean);
44365 : n->location = -1;
44366 : (yyval.node) = (Node *) n;
44367 : }
44368 : #line 44369 "gram.c"
44369 360 : break;
44370 :
44371 6802 : case 1475: /* transaction_mode_item: ISOLATION LEVEL iso_level */
44372 : #line 11235 "gram.y"
44373 : { (yyval.defelt) = makeDefElem("transaction_isolation",
44374 : makeStringConst((yyvsp[0].str), (yylsp[0])), (yylsp[-2])); }
44375 : #line 44376 "gram.c"
44376 6802 : break;
44377 :
44378 1522 : case 1476: /* transaction_mode_item: READ ONLY */
44379 : #line 11238 "gram.y"
44380 : { (yyval.defelt) = makeDefElem("transaction_read_only",
44381 : makeIntConst(true, (yylsp[-1])), (yylsp[-1])); }
44382 : #line 44383 "gram.c"
44383 1522 : break;
44384 :
44385 90 : case 1477: /* transaction_mode_item: READ WRITE */
44386 : #line 11241 "gram.y"
44387 : { (yyval.defelt) = makeDefElem("transaction_read_only",
44388 : makeIntConst(false, (yylsp[-1])), (yylsp[-1])); }
44389 : #line 44390 "gram.c"
44390 90 : break;
44391 :
44392 52 : case 1478: /* transaction_mode_item: DEFERRABLE */
44393 : #line 11244 "gram.y"
44394 : { (yyval.defelt) = makeDefElem("transaction_deferrable",
44395 : makeIntConst(true, (yylsp[0])), (yylsp[0])); }
44396 : #line 44397 "gram.c"
44397 52 : break;
44398 :
44399 10 : case 1479: /* transaction_mode_item: NOT DEFERRABLE */
44400 : #line 11247 "gram.y"
44401 : { (yyval.defelt) = makeDefElem("transaction_deferrable",
44402 : makeIntConst(false, (yylsp[-1])), (yylsp[-1])); }
44403 : #line 44404 "gram.c"
44404 10 : break;
44405 :
44406 7020 : case 1480: /* transaction_mode_list: transaction_mode_item */
44407 : #line 11254 "gram.y"
44408 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
44409 : #line 44410 "gram.c"
44410 7020 : break;
44411 :
44412 1042 : case 1481: /* transaction_mode_list: transaction_mode_list ',' transaction_mode_item */
44413 : #line 11256 "gram.y"
44414 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt)); }
44415 : #line 44416 "gram.c"
44416 1042 : break;
44417 :
44418 414 : case 1482: /* transaction_mode_list: transaction_mode_list transaction_mode_item */
44419 : #line 11258 "gram.y"
44420 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
44421 : #line 44422 "gram.c"
44422 414 : break;
44423 :
44424 11082 : case 1484: /* transaction_mode_list_or_empty: %empty */
44425 : #line 11264 "gram.y"
44426 : { (yyval.list) = NIL; }
44427 : #line 44428 "gram.c"
44428 11082 : break;
44429 :
44430 120 : case 1485: /* opt_transaction_chain: AND CHAIN */
44431 : #line 11268 "gram.y"
44432 : { (yyval.boolean) = true; }
44433 : #line 44434 "gram.c"
44434 120 : break;
44435 :
44436 2 : case 1486: /* opt_transaction_chain: AND NO CHAIN */
44437 : #line 11269 "gram.y"
44438 : { (yyval.boolean) = false; }
44439 : #line 44440 "gram.c"
44440 2 : break;
44441 :
44442 16200 : case 1487: /* opt_transaction_chain: %empty */
44443 : #line 11270 "gram.y"
44444 : { (yyval.boolean) = false; }
44445 : #line 44446 "gram.c"
44446 16200 : break;
44447 :
44448 16400 : case 1488: /* ViewStmt: CREATE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */
44449 : #line 11284 "gram.y"
44450 : {
44451 : ViewStmt *n = makeNode(ViewStmt);
44452 :
44453 : n->view = (yyvsp[-5].range);
44454 : n->view->relpersistence = (yyvsp[-7].ival);
44455 : n->aliases = (yyvsp[-4].list);
44456 : n->query = (yyvsp[-1].node);
44457 : n->replace = false;
44458 : n->options = (yyvsp[-3].list);
44459 : n->withCheckOption = (yyvsp[0].ival);
44460 : (yyval.node) = (Node *) n;
44461 : }
44462 : #line 44463 "gram.c"
44463 16400 : break;
44464 :
44465 248 : case 1489: /* ViewStmt: CREATE OR REPLACE OptTemp VIEW qualified_name opt_column_list opt_reloptions AS SelectStmt opt_check_option */
44466 : #line 11298 "gram.y"
44467 : {
44468 : ViewStmt *n = makeNode(ViewStmt);
44469 :
44470 : n->view = (yyvsp[-5].range);
44471 : n->view->relpersistence = (yyvsp[-7].ival);
44472 : n->aliases = (yyvsp[-4].list);
44473 : n->query = (yyvsp[-1].node);
44474 : n->replace = true;
44475 : n->options = (yyvsp[-3].list);
44476 : n->withCheckOption = (yyvsp[0].ival);
44477 : (yyval.node) = (Node *) n;
44478 : }
44479 : #line 44480 "gram.c"
44480 248 : break;
44481 :
44482 8 : case 1490: /* ViewStmt: CREATE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */
44483 : #line 11312 "gram.y"
44484 : {
44485 : ViewStmt *n = makeNode(ViewStmt);
44486 :
44487 : n->view = (yyvsp[-7].range);
44488 : n->view->relpersistence = (yyvsp[-10].ival);
44489 : n->aliases = (yyvsp[-5].list);
44490 : n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node));
44491 : n->replace = false;
44492 : n->options = (yyvsp[-3].list);
44493 : n->withCheckOption = (yyvsp[0].ival);
44494 : if (n->withCheckOption != NO_CHECK_OPTION)
44495 : ereport(ERROR,
44496 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
44497 : errmsg("WITH CHECK OPTION not supported on recursive views"),
44498 : parser_errposition((yylsp[0]))));
44499 : (yyval.node) = (Node *) n;
44500 : }
44501 : #line 44502 "gram.c"
44502 8 : break;
44503 :
44504 6 : case 1491: /* ViewStmt: CREATE OR REPLACE OptTemp RECURSIVE VIEW qualified_name '(' columnList ')' opt_reloptions AS SelectStmt opt_check_option */
44505 : #line 11331 "gram.y"
44506 : {
44507 : ViewStmt *n = makeNode(ViewStmt);
44508 :
44509 : n->view = (yyvsp[-7].range);
44510 : n->view->relpersistence = (yyvsp[-10].ival);
44511 : n->aliases = (yyvsp[-5].list);
44512 : n->query = makeRecursiveViewSelect(n->view->relname, n->aliases, (yyvsp[-1].node));
44513 : n->replace = true;
44514 : n->options = (yyvsp[-3].list);
44515 : n->withCheckOption = (yyvsp[0].ival);
44516 : if (n->withCheckOption != NO_CHECK_OPTION)
44517 : ereport(ERROR,
44518 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
44519 : errmsg("WITH CHECK OPTION not supported on recursive views"),
44520 : parser_errposition((yylsp[0]))));
44521 : (yyval.node) = (Node *) n;
44522 : }
44523 : #line 44524 "gram.c"
44524 6 : break;
44525 :
44526 96 : case 1492: /* opt_check_option: WITH CHECK OPTION */
44527 : #line 11351 "gram.y"
44528 : { (yyval.ival) = CASCADED_CHECK_OPTION; }
44529 : #line 44530 "gram.c"
44530 96 : break;
44531 :
44532 6 : case 1493: /* opt_check_option: WITH CASCADED CHECK OPTION */
44533 : #line 11352 "gram.y"
44534 : { (yyval.ival) = CASCADED_CHECK_OPTION; }
44535 : #line 44536 "gram.c"
44536 6 : break;
44537 :
44538 24 : case 1494: /* opt_check_option: WITH LOCAL CHECK OPTION */
44539 : #line 11353 "gram.y"
44540 : { (yyval.ival) = LOCAL_CHECK_OPTION; }
44541 : #line 44542 "gram.c"
44542 24 : break;
44543 :
44544 16536 : case 1495: /* opt_check_option: %empty */
44545 : #line 11354 "gram.y"
44546 : { (yyval.ival) = NO_CHECK_OPTION; }
44547 : #line 44548 "gram.c"
44548 16536 : break;
44549 :
44550 52 : case 1496: /* LoadStmt: LOAD file_name */
44551 : #line 11365 "gram.y"
44552 : {
44553 : LoadStmt *n = makeNode(LoadStmt);
44554 :
44555 : n->filename = (yyvsp[0].str);
44556 : (yyval.node) = (Node *) n;
44557 : }
44558 : #line 44559 "gram.c"
44559 52 : break;
44560 :
44561 778 : case 1497: /* CreatedbStmt: CREATE DATABASE name opt_with createdb_opt_list */
44562 : #line 11382 "gram.y"
44563 : {
44564 : CreatedbStmt *n = makeNode(CreatedbStmt);
44565 :
44566 : n->dbname = (yyvsp[-2].str);
44567 : n->options = (yyvsp[0].list);
44568 : (yyval.node) = (Node *) n;
44569 : }
44570 : #line 44571 "gram.c"
44571 778 : break;
44572 :
44573 624 : case 1498: /* createdb_opt_list: createdb_opt_items */
44574 : #line 11392 "gram.y"
44575 : { (yyval.list) = (yyvsp[0].list); }
44576 : #line 44577 "gram.c"
44577 624 : break;
44578 :
44579 214 : case 1499: /* createdb_opt_list: %empty */
44580 : #line 11393 "gram.y"
44581 : { (yyval.list) = NIL; }
44582 : #line 44583 "gram.c"
44583 214 : break;
44584 :
44585 624 : case 1500: /* createdb_opt_items: createdb_opt_item */
44586 : #line 11397 "gram.y"
44587 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
44588 : #line 44589 "gram.c"
44589 624 : break;
44590 :
44591 924 : case 1501: /* createdb_opt_items: createdb_opt_items createdb_opt_item */
44592 : #line 11398 "gram.y"
44593 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
44594 : #line 44595 "gram.c"
44595 924 : break;
44596 :
44597 254 : case 1502: /* createdb_opt_item: createdb_opt_name opt_equal NumericOnly */
44598 : #line 11403 "gram.y"
44599 : {
44600 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (yyvsp[0].node), (yylsp[-2]));
44601 : }
44602 : #line 44603 "gram.c"
44603 254 : break;
44604 :
44605 1294 : case 1503: /* createdb_opt_item: createdb_opt_name opt_equal opt_boolean_or_string */
44606 : #line 11407 "gram.y"
44607 : {
44608 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), (Node *) makeString((yyvsp[0].str)), (yylsp[-2]));
44609 : }
44610 : #line 44611 "gram.c"
44611 1294 : break;
44612 :
44613 0 : case 1504: /* createdb_opt_item: createdb_opt_name opt_equal DEFAULT */
44614 : #line 11411 "gram.y"
44615 : {
44616 : (yyval.defelt) = makeDefElem((yyvsp[-2].str), NULL, (yylsp[-2]));
44617 : }
44618 : #line 44619 "gram.c"
44619 0 : break;
44620 :
44621 1090 : case 1505: /* createdb_opt_name: IDENT */
44622 : #line 11428 "gram.y"
44623 : { (yyval.str) = (yyvsp[0].str); }
44624 : #line 44625 "gram.c"
44625 1090 : break;
44626 :
44627 2 : case 1506: /* createdb_opt_name: CONNECTION LIMIT */
44628 : #line 11429 "gram.y"
44629 : { (yyval.str) = pstrdup("connection_limit"); }
44630 : #line 44631 "gram.c"
44631 2 : break;
44632 :
44633 96 : case 1507: /* createdb_opt_name: ENCODING */
44634 : #line 11430 "gram.y"
44635 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44636 : #line 44637 "gram.c"
44637 96 : break;
44638 :
44639 0 : case 1508: /* createdb_opt_name: LOCATION */
44640 : #line 11431 "gram.y"
44641 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44642 : #line 44643 "gram.c"
44643 0 : break;
44644 :
44645 2 : case 1509: /* createdb_opt_name: OWNER */
44646 : #line 11432 "gram.y"
44647 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44648 : #line 44649 "gram.c"
44649 2 : break;
44650 :
44651 16 : case 1510: /* createdb_opt_name: TABLESPACE */
44652 : #line 11433 "gram.y"
44653 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44654 : #line 44655 "gram.c"
44655 16 : break;
44656 :
44657 342 : case 1511: /* createdb_opt_name: TEMPLATE */
44658 : #line 11434 "gram.y"
44659 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
44660 : #line 44661 "gram.c"
44661 342 : break;
44662 :
44663 0 : case 1514: /* AlterDatabaseStmt: ALTER DATABASE name WITH createdb_opt_list */
44664 : #line 11454 "gram.y"
44665 : {
44666 : AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
44667 :
44668 : n->dbname = (yyvsp[-2].str);
44669 : n->options = (yyvsp[0].list);
44670 : (yyval.node) = (Node *) n;
44671 : }
44672 : #line 44673 "gram.c"
44673 0 : break;
44674 :
44675 60 : case 1515: /* AlterDatabaseStmt: ALTER DATABASE name createdb_opt_list */
44676 : #line 11462 "gram.y"
44677 : {
44678 : AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
44679 :
44680 : n->dbname = (yyvsp[-1].str);
44681 : n->options = (yyvsp[0].list);
44682 : (yyval.node) = (Node *) n;
44683 : }
44684 : #line 44685 "gram.c"
44685 60 : break;
44686 :
44687 16 : case 1516: /* AlterDatabaseStmt: ALTER DATABASE name SET TABLESPACE name */
44688 : #line 11470 "gram.y"
44689 : {
44690 : AlterDatabaseStmt *n = makeNode(AlterDatabaseStmt);
44691 :
44692 : n->dbname = (yyvsp[-3].str);
44693 : n->options = list_make1(makeDefElem("tablespace",
44694 : (Node *) makeString((yyvsp[0].str)), (yylsp[0])));
44695 : (yyval.node) = (Node *) n;
44696 : }
44697 : #line 44698 "gram.c"
44698 16 : break;
44699 :
44700 6 : case 1517: /* AlterDatabaseStmt: ALTER DATABASE name REFRESH COLLATION VERSION_P */
44701 : #line 11479 "gram.y"
44702 : {
44703 : AlterDatabaseRefreshCollStmt *n = makeNode(AlterDatabaseRefreshCollStmt);
44704 :
44705 : n->dbname = (yyvsp[-3].str);
44706 : (yyval.node) = (Node *) n;
44707 : }
44708 : #line 44709 "gram.c"
44709 6 : break;
44710 :
44711 1198 : case 1518: /* AlterDatabaseSetStmt: ALTER DATABASE name SetResetClause */
44712 : #line 11489 "gram.y"
44713 : {
44714 : AlterDatabaseSetStmt *n = makeNode(AlterDatabaseSetStmt);
44715 :
44716 : n->dbname = (yyvsp[-1].str);
44717 : n->setstmt = (yyvsp[0].vsetstmt);
44718 : (yyval.node) = (Node *) n;
44719 : }
44720 : #line 44721 "gram.c"
44721 1198 : break;
44722 :
44723 92 : case 1519: /* DropdbStmt: DROP DATABASE name */
44724 : #line 11507 "gram.y"
44725 : {
44726 : DropdbStmt *n = makeNode(DropdbStmt);
44727 :
44728 : n->dbname = (yyvsp[0].str);
44729 : n->missing_ok = false;
44730 : n->options = NULL;
44731 : (yyval.node) = (Node *) n;
44732 : }
44733 : #line 44734 "gram.c"
44734 92 : break;
44735 :
44736 4 : case 1520: /* DropdbStmt: DROP DATABASE IF_P EXISTS name */
44737 : #line 11516 "gram.y"
44738 : {
44739 : DropdbStmt *n = makeNode(DropdbStmt);
44740 :
44741 : n->dbname = (yyvsp[0].str);
44742 : n->missing_ok = true;
44743 : n->options = NULL;
44744 : (yyval.node) = (Node *) n;
44745 : }
44746 : #line 44747 "gram.c"
44747 4 : break;
44748 :
44749 14 : case 1521: /* DropdbStmt: DROP DATABASE name opt_with '(' drop_option_list ')' */
44750 : #line 11525 "gram.y"
44751 : {
44752 : DropdbStmt *n = makeNode(DropdbStmt);
44753 :
44754 : n->dbname = (yyvsp[-4].str);
44755 : n->missing_ok = false;
44756 : n->options = (yyvsp[-1].list);
44757 : (yyval.node) = (Node *) n;
44758 : }
44759 : #line 44760 "gram.c"
44760 14 : break;
44761 :
44762 12 : case 1522: /* DropdbStmt: DROP DATABASE IF_P EXISTS name opt_with '(' drop_option_list ')' */
44763 : #line 11534 "gram.y"
44764 : {
44765 : DropdbStmt *n = makeNode(DropdbStmt);
44766 :
44767 : n->dbname = (yyvsp[-4].str);
44768 : n->missing_ok = true;
44769 : n->options = (yyvsp[-1].list);
44770 : (yyval.node) = (Node *) n;
44771 : }
44772 : #line 44773 "gram.c"
44773 12 : break;
44774 :
44775 26 : case 1523: /* drop_option_list: drop_option */
44776 : #line 11546 "gram.y"
44777 : {
44778 : (yyval.list) = list_make1((Node *) (yyvsp[0].defelt));
44779 : }
44780 : #line 44781 "gram.c"
44781 26 : break;
44782 :
44783 0 : case 1524: /* drop_option_list: drop_option_list ',' drop_option */
44784 : #line 11550 "gram.y"
44785 : {
44786 : (yyval.list) = lappend((yyvsp[-2].list), (Node *) (yyvsp[0].defelt));
44787 : }
44788 : #line 44789 "gram.c"
44789 0 : break;
44790 :
44791 26 : case 1525: /* drop_option: FORCE */
44792 : #line 11561 "gram.y"
44793 : {
44794 : (yyval.defelt) = makeDefElem("force", NULL, (yylsp[0]));
44795 : }
44796 : #line 44797 "gram.c"
44797 26 : break;
44798 :
44799 6 : case 1526: /* AlterCollationStmt: ALTER COLLATION any_name REFRESH VERSION_P */
44800 : #line 11573 "gram.y"
44801 : {
44802 : AlterCollationStmt *n = makeNode(AlterCollationStmt);
44803 :
44804 : n->collname = (yyvsp[-2].list);
44805 : (yyval.node) = (Node *) n;
44806 : }
44807 : #line 44808 "gram.c"
44808 6 : break;
44809 :
44810 122 : case 1527: /* AlterSystemStmt: ALTER SYSTEM_P SET generic_set */
44811 : #line 11591 "gram.y"
44812 : {
44813 : AlterSystemStmt *n = makeNode(AlterSystemStmt);
44814 :
44815 : n->setstmt = (yyvsp[0].vsetstmt);
44816 : (yyval.node) = (Node *) n;
44817 : }
44818 : #line 44819 "gram.c"
44819 122 : break;
44820 :
44821 54 : case 1528: /* AlterSystemStmt: ALTER SYSTEM_P RESET generic_reset */
44822 : #line 11598 "gram.y"
44823 : {
44824 : AlterSystemStmt *n = makeNode(AlterSystemStmt);
44825 :
44826 : n->setstmt = (yyvsp[0].vsetstmt);
44827 : (yyval.node) = (Node *) n;
44828 : }
44829 : #line 44830 "gram.c"
44830 54 : break;
44831 :
44832 1474 : case 1529: /* CreateDomainStmt: CREATE DOMAIN_P any_name opt_as Typename ColQualList */
44833 : #line 11615 "gram.y"
44834 : {
44835 : CreateDomainStmt *n = makeNode(CreateDomainStmt);
44836 :
44837 : n->domainname = (yyvsp[-3].list);
44838 : n->typeName = (yyvsp[-1].typnam);
44839 : SplitColQualList((yyvsp[0].list), &n->constraints, &n->collClause,
44840 : yyscanner);
44841 : (yyval.node) = (Node *) n;
44842 : }
44843 : #line 44844 "gram.c"
44844 1474 : break;
44845 :
44846 14 : case 1530: /* AlterDomainStmt: ALTER DOMAIN_P any_name alter_column_default */
44847 : #line 11629 "gram.y"
44848 : {
44849 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44850 :
44851 : n->subtype = 'T';
44852 : n->typeName = (yyvsp[-1].list);
44853 : n->def = (yyvsp[0].node);
44854 : (yyval.node) = (Node *) n;
44855 : }
44856 : #line 44857 "gram.c"
44857 14 : break;
44858 :
44859 12 : case 1531: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP NOT NULL_P */
44860 : #line 11639 "gram.y"
44861 : {
44862 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44863 :
44864 : n->subtype = 'N';
44865 : n->typeName = (yyvsp[-3].list);
44866 : (yyval.node) = (Node *) n;
44867 : }
44868 : #line 44869 "gram.c"
44869 12 : break;
44870 :
44871 24 : case 1532: /* AlterDomainStmt: ALTER DOMAIN_P any_name SET NOT NULL_P */
44872 : #line 11648 "gram.y"
44873 : {
44874 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44875 :
44876 : n->subtype = 'O';
44877 : n->typeName = (yyvsp[-3].list);
44878 : (yyval.node) = (Node *) n;
44879 : }
44880 : #line 44881 "gram.c"
44881 24 : break;
44882 :
44883 174 : case 1533: /* AlterDomainStmt: ALTER DOMAIN_P any_name ADD_P DomainConstraint */
44884 : #line 11657 "gram.y"
44885 : {
44886 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44887 :
44888 : n->subtype = 'C';
44889 : n->typeName = (yyvsp[-2].list);
44890 : n->def = (yyvsp[0].node);
44891 : (yyval.node) = (Node *) n;
44892 : }
44893 : #line 44894 "gram.c"
44894 174 : break;
44895 :
44896 54 : case 1534: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT name opt_drop_behavior */
44897 : #line 11667 "gram.y"
44898 : {
44899 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44900 :
44901 : n->subtype = 'X';
44902 : n->typeName = (yyvsp[-4].list);
44903 : n->name = (yyvsp[-1].str);
44904 : n->behavior = (yyvsp[0].dbehavior);
44905 : n->missing_ok = false;
44906 : (yyval.node) = (Node *) n;
44907 : }
44908 : #line 44909 "gram.c"
44909 54 : break;
44910 :
44911 6 : case 1535: /* AlterDomainStmt: ALTER DOMAIN_P any_name DROP CONSTRAINT IF_P EXISTS name opt_drop_behavior */
44912 : #line 11679 "gram.y"
44913 : {
44914 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44915 :
44916 : n->subtype = 'X';
44917 : n->typeName = (yyvsp[-6].list);
44918 : n->name = (yyvsp[-1].str);
44919 : n->behavior = (yyvsp[0].dbehavior);
44920 : n->missing_ok = true;
44921 : (yyval.node) = (Node *) n;
44922 : }
44923 : #line 44924 "gram.c"
44924 6 : break;
44925 :
44926 12 : case 1536: /* AlterDomainStmt: ALTER DOMAIN_P any_name VALIDATE CONSTRAINT name */
44927 : #line 11691 "gram.y"
44928 : {
44929 : AlterDomainStmt *n = makeNode(AlterDomainStmt);
44930 :
44931 : n->subtype = 'V';
44932 : n->typeName = (yyvsp[-3].list);
44933 : n->name = (yyvsp[0].str);
44934 : (yyval.node) = (Node *) n;
44935 : }
44936 : #line 44937 "gram.c"
44937 12 : break;
44938 :
44939 40 : case 1539: /* AlterTSDictionaryStmt: ALTER TEXT_P SEARCH DICTIONARY any_name definition */
44940 : #line 11714 "gram.y"
44941 : {
44942 : AlterTSDictionaryStmt *n = makeNode(AlterTSDictionaryStmt);
44943 :
44944 : n->dictname = (yyvsp[-1].list);
44945 : n->options = (yyvsp[0].list);
44946 : (yyval.node) = (Node *) n;
44947 : }
44948 : #line 44949 "gram.c"
44949 40 : break;
44950 :
44951 8496 : case 1540: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ADD_P MAPPING FOR name_list any_with any_name_list */
44952 : #line 11725 "gram.y"
44953 : {
44954 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
44955 :
44956 : n->kind = ALTER_TSCONFIG_ADD_MAPPING;
44957 : n->cfgname = (yyvsp[-6].list);
44958 : n->tokentype = (yyvsp[-2].list);
44959 : n->dicts = (yyvsp[0].list);
44960 : n->override = false;
44961 : n->replace = false;
44962 : (yyval.node) = (Node *) n;
44963 : }
44964 : #line 44965 "gram.c"
44965 8496 : break;
44966 :
44967 26 : case 1541: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list any_with any_name_list */
44968 : #line 11737 "gram.y"
44969 : {
44970 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
44971 :
44972 : n->kind = ALTER_TSCONFIG_ALTER_MAPPING_FOR_TOKEN;
44973 : n->cfgname = (yyvsp[-6].list);
44974 : n->tokentype = (yyvsp[-2].list);
44975 : n->dicts = (yyvsp[0].list);
44976 : n->override = true;
44977 : n->replace = false;
44978 : (yyval.node) = (Node *) n;
44979 : }
44980 : #line 44981 "gram.c"
44981 26 : break;
44982 :
44983 18 : case 1542: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING REPLACE any_name any_with any_name */
44984 : #line 11749 "gram.y"
44985 : {
44986 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
44987 :
44988 : n->kind = ALTER_TSCONFIG_REPLACE_DICT;
44989 : n->cfgname = (yyvsp[-6].list);
44990 : n->tokentype = NIL;
44991 : n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list));
44992 : n->override = false;
44993 : n->replace = true;
44994 : (yyval.node) = (Node *) n;
44995 : }
44996 : #line 44997 "gram.c"
44997 18 : break;
44998 :
44999 0 : case 1543: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name ALTER MAPPING FOR name_list REPLACE any_name any_with any_name */
45000 : #line 11761 "gram.y"
45001 : {
45002 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
45003 :
45004 : n->kind = ALTER_TSCONFIG_REPLACE_DICT_FOR_TOKEN;
45005 : n->cfgname = (yyvsp[-8].list);
45006 : n->tokentype = (yyvsp[-4].list);
45007 : n->dicts = list_make2((yyvsp[-2].list),(yyvsp[0].list));
45008 : n->override = false;
45009 : n->replace = true;
45010 : (yyval.node) = (Node *) n;
45011 : }
45012 : #line 45013 "gram.c"
45013 0 : break;
45014 :
45015 18 : case 1544: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING FOR name_list */
45016 : #line 11773 "gram.y"
45017 : {
45018 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
45019 :
45020 : n->kind = ALTER_TSCONFIG_DROP_MAPPING;
45021 : n->cfgname = (yyvsp[-4].list);
45022 : n->tokentype = (yyvsp[0].list);
45023 : n->missing_ok = false;
45024 : (yyval.node) = (Node *) n;
45025 : }
45026 : #line 45027 "gram.c"
45027 18 : break;
45028 :
45029 12 : case 1545: /* AlterTSConfigurationStmt: ALTER TEXT_P SEARCH CONFIGURATION any_name DROP MAPPING IF_P EXISTS FOR name_list */
45030 : #line 11783 "gram.y"
45031 : {
45032 : AlterTSConfigurationStmt *n = makeNode(AlterTSConfigurationStmt);
45033 :
45034 : n->kind = ALTER_TSCONFIG_DROP_MAPPING;
45035 : n->cfgname = (yyvsp[-6].list);
45036 : n->tokentype = (yyvsp[0].list);
45037 : n->missing_ok = true;
45038 : (yyval.node) = (Node *) n;
45039 : }
45040 : #line 45041 "gram.c"
45041 12 : break;
45042 :
45043 64 : case 1548: /* CreateConversionStmt: CREATE opt_default CONVERSION_P any_name FOR Sconst TO Sconst FROM any_name */
45044 : #line 11812 "gram.y"
45045 : {
45046 : CreateConversionStmt *n = makeNode(CreateConversionStmt);
45047 :
45048 : n->conversion_name = (yyvsp[-6].list);
45049 : n->for_encoding_name = (yyvsp[-4].str);
45050 : n->to_encoding_name = (yyvsp[-2].str);
45051 : n->func_name = (yyvsp[0].list);
45052 : n->def = (yyvsp[-8].boolean);
45053 : (yyval.node) = (Node *) n;
45054 : }
45055 : #line 45056 "gram.c"
45056 64 : break;
45057 :
45058 0 : case 1549: /* ClusterStmt: CLUSTER '(' utility_option_list ')' qualified_name cluster_index_specification */
45059 : #line 11835 "gram.y"
45060 : {
45061 : ClusterStmt *n = makeNode(ClusterStmt);
45062 :
45063 : n->relation = (yyvsp[-1].range);
45064 : n->indexname = (yyvsp[0].str);
45065 : n->params = (yyvsp[-3].list);
45066 : (yyval.node) = (Node *) n;
45067 : }
45068 : #line 45069 "gram.c"
45069 0 : break;
45070 :
45071 0 : case 1550: /* ClusterStmt: CLUSTER '(' utility_option_list ')' */
45072 : #line 11844 "gram.y"
45073 : {
45074 : ClusterStmt *n = makeNode(ClusterStmt);
45075 :
45076 : n->relation = NULL;
45077 : n->indexname = NULL;
45078 : n->params = (yyvsp[-1].list);
45079 : (yyval.node) = (Node *) n;
45080 : }
45081 : #line 45082 "gram.c"
45082 0 : break;
45083 :
45084 186 : case 1551: /* ClusterStmt: CLUSTER opt_verbose qualified_name cluster_index_specification */
45085 : #line 11854 "gram.y"
45086 : {
45087 : ClusterStmt *n = makeNode(ClusterStmt);
45088 :
45089 : n->relation = (yyvsp[-1].range);
45090 : n->indexname = (yyvsp[0].str);
45091 : n->params = NIL;
45092 : if ((yyvsp[-2].boolean))
45093 : n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[-2])));
45094 : (yyval.node) = (Node *) n;
45095 : }
45096 : #line 45097 "gram.c"
45097 186 : break;
45098 :
45099 26 : case 1552: /* ClusterStmt: CLUSTER opt_verbose */
45100 : #line 11866 "gram.y"
45101 : {
45102 : ClusterStmt *n = makeNode(ClusterStmt);
45103 :
45104 : n->relation = NULL;
45105 : n->indexname = NULL;
45106 : n->params = NIL;
45107 : if ((yyvsp[0].boolean))
45108 : n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[0])));
45109 : (yyval.node) = (Node *) n;
45110 : }
45111 : #line 45112 "gram.c"
45112 26 : break;
45113 :
45114 18 : case 1553: /* ClusterStmt: CLUSTER opt_verbose name ON qualified_name */
45115 : #line 11878 "gram.y"
45116 : {
45117 : ClusterStmt *n = makeNode(ClusterStmt);
45118 :
45119 : n->relation = (yyvsp[0].range);
45120 : n->indexname = (yyvsp[-2].str);
45121 : n->params = NIL;
45122 : if ((yyvsp[-3].boolean))
45123 : n->params = lappend(n->params, makeDefElem("verbose", NULL, (yylsp[-3])));
45124 : (yyval.node) = (Node *) n;
45125 : }
45126 : #line 45127 "gram.c"
45127 18 : break;
45128 :
45129 156 : case 1554: /* cluster_index_specification: USING name */
45130 : #line 11891 "gram.y"
45131 : { (yyval.str) = (yyvsp[0].str); }
45132 : #line 45133 "gram.c"
45133 156 : break;
45134 :
45135 30 : case 1555: /* cluster_index_specification: %empty */
45136 : #line 11892 "gram.y"
45137 : { (yyval.str) = NULL; }
45138 : #line 45139 "gram.c"
45139 30 : break;
45140 :
45141 1216 : case 1556: /* VacuumStmt: VACUUM opt_full opt_freeze opt_verbose opt_analyze opt_vacuum_relation_list */
45142 : #line 11905 "gram.y"
45143 : {
45144 : VacuumStmt *n = makeNode(VacuumStmt);
45145 :
45146 : n->options = NIL;
45147 : if ((yyvsp[-4].boolean))
45148 : n->options = lappend(n->options,
45149 : makeDefElem("full", NULL, (yylsp[-4])));
45150 : if ((yyvsp[-3].boolean))
45151 : n->options = lappend(n->options,
45152 : makeDefElem("freeze", NULL, (yylsp[-3])));
45153 : if ((yyvsp[-2].boolean))
45154 : n->options = lappend(n->options,
45155 : makeDefElem("verbose", NULL, (yylsp[-2])));
45156 : if ((yyvsp[-1].boolean))
45157 : n->options = lappend(n->options,
45158 : makeDefElem("analyze", NULL, (yylsp[-1])));
45159 : n->rels = (yyvsp[0].list);
45160 : n->is_vacuumcmd = true;
45161 : (yyval.node) = (Node *) n;
45162 : }
45163 : #line 45164 "gram.c"
45164 1216 : break;
45165 :
45166 7644 : case 1557: /* VacuumStmt: VACUUM '(' utility_option_list ')' opt_vacuum_relation_list */
45167 : #line 11926 "gram.y"
45168 : {
45169 : VacuumStmt *n = makeNode(VacuumStmt);
45170 :
45171 : n->options = (yyvsp[-2].list);
45172 : n->rels = (yyvsp[0].list);
45173 : n->is_vacuumcmd = true;
45174 : (yyval.node) = (Node *) n;
45175 : }
45176 : #line 45177 "gram.c"
45177 7644 : break;
45178 :
45179 4488 : case 1558: /* AnalyzeStmt: analyze_keyword opt_verbose opt_vacuum_relation_list */
45180 : #line 11937 "gram.y"
45181 : {
45182 : VacuumStmt *n = makeNode(VacuumStmt);
45183 :
45184 : n->options = NIL;
45185 : if ((yyvsp[-1].boolean))
45186 : n->options = lappend(n->options,
45187 : makeDefElem("verbose", NULL, (yylsp[-1])));
45188 : n->rels = (yyvsp[0].list);
45189 : n->is_vacuumcmd = false;
45190 : (yyval.node) = (Node *) n;
45191 : }
45192 : #line 45193 "gram.c"
45193 4488 : break;
45194 :
45195 186 : case 1559: /* AnalyzeStmt: analyze_keyword '(' utility_option_list ')' opt_vacuum_relation_list */
45196 : #line 11949 "gram.y"
45197 : {
45198 : VacuumStmt *n = makeNode(VacuumStmt);
45199 :
45200 : n->options = (yyvsp[-2].list);
45201 : n->rels = (yyvsp[0].list);
45202 : n->is_vacuumcmd = false;
45203 : (yyval.node) = (Node *) n;
45204 : }
45205 : #line 45206 "gram.c"
45206 186 : break;
45207 :
45208 21774 : case 1560: /* utility_option_list: utility_option_elem */
45209 : #line 11961 "gram.y"
45210 : {
45211 : (yyval.list) = list_make1((yyvsp[0].defelt));
45212 : }
45213 : #line 45214 "gram.c"
45214 21774 : break;
45215 :
45216 12302 : case 1561: /* utility_option_list: utility_option_list ',' utility_option_elem */
45217 : #line 11965 "gram.y"
45218 : {
45219 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].defelt));
45220 : }
45221 : #line 45222 "gram.c"
45222 12302 : break;
45223 :
45224 34076 : case 1564: /* utility_option_elem: utility_option_name utility_option_arg */
45225 : #line 11977 "gram.y"
45226 : {
45227 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
45228 : }
45229 : #line 45230 "gram.c"
45230 34076 : break;
45231 :
45232 30332 : case 1565: /* utility_option_name: NonReservedWord */
45233 : #line 11983 "gram.y"
45234 : { (yyval.str) = (yyvsp[0].str); }
45235 : #line 45236 "gram.c"
45236 30332 : break;
45237 :
45238 3602 : case 1566: /* utility_option_name: analyze_keyword */
45239 : #line 11984 "gram.y"
45240 : { (yyval.str) = "analyze"; }
45241 : #line 45242 "gram.c"
45242 3602 : break;
45243 :
45244 148 : case 1567: /* utility_option_name: FORMAT_LA */
45245 : #line 11985 "gram.y"
45246 : { (yyval.str) = "format"; }
45247 : #line 45248 "gram.c"
45248 148 : break;
45249 :
45250 17258 : case 1568: /* utility_option_arg: opt_boolean_or_string */
45251 : #line 11989 "gram.y"
45252 : { (yyval.node) = (Node *) makeString((yyvsp[0].str)); }
45253 : #line 45254 "gram.c"
45254 17258 : break;
45255 :
45256 380 : case 1569: /* utility_option_arg: NumericOnly */
45257 : #line 11990 "gram.y"
45258 : { (yyval.node) = (Node *) (yyvsp[0].node); }
45259 : #line 45260 "gram.c"
45260 380 : break;
45261 :
45262 16438 : case 1570: /* utility_option_arg: %empty */
45263 : #line 11991 "gram.y"
45264 : { (yyval.node) = NULL; }
45265 : #line 45266 "gram.c"
45266 16438 : break;
45267 :
45268 292 : case 1571: /* opt_analyze: analyze_keyword */
45269 : #line 11995 "gram.y"
45270 : { (yyval.boolean) = true; }
45271 : #line 45272 "gram.c"
45272 292 : break;
45273 :
45274 924 : case 1572: /* opt_analyze: %empty */
45275 : #line 11996 "gram.y"
45276 : { (yyval.boolean) = false; }
45277 : #line 45278 "gram.c"
45278 924 : break;
45279 :
45280 26 : case 1573: /* opt_verbose: VERBOSE */
45281 : #line 12000 "gram.y"
45282 : { (yyval.boolean) = true; }
45283 : #line 45284 "gram.c"
45284 26 : break;
45285 :
45286 8212 : case 1574: /* opt_verbose: %empty */
45287 : #line 12001 "gram.y"
45288 : { (yyval.boolean) = false; }
45289 : #line 45290 "gram.c"
45290 8212 : break;
45291 :
45292 146 : case 1575: /* opt_full: FULL */
45293 : #line 12004 "gram.y"
45294 : { (yyval.boolean) = true; }
45295 : #line 45296 "gram.c"
45296 146 : break;
45297 :
45298 1070 : case 1576: /* opt_full: %empty */
45299 : #line 12005 "gram.y"
45300 : { (yyval.boolean) = false; }
45301 : #line 45302 "gram.c"
45302 1070 : break;
45303 :
45304 160 : case 1577: /* opt_freeze: FREEZE */
45305 : #line 12008 "gram.y"
45306 : { (yyval.boolean) = true; }
45307 : #line 45308 "gram.c"
45308 160 : break;
45309 :
45310 1056 : case 1578: /* opt_freeze: %empty */
45311 : #line 12009 "gram.y"
45312 : { (yyval.boolean) = false; }
45313 : #line 45314 "gram.c"
45314 1056 : break;
45315 :
45316 2784 : case 1579: /* opt_name_list: '(' name_list ')' */
45317 : #line 12013 "gram.y"
45318 : { (yyval.list) = (yyvsp[-1].list); }
45319 : #line 45320 "gram.c"
45320 2784 : break;
45321 :
45322 15770 : case 1580: /* opt_name_list: %empty */
45323 : #line 12014 "gram.y"
45324 : { (yyval.list) = NIL; }
45325 : #line 45326 "gram.c"
45326 15770 : break;
45327 :
45328 13308 : case 1581: /* vacuum_relation: relation_expr opt_name_list */
45329 : #line 12019 "gram.y"
45330 : {
45331 : (yyval.node) = (Node *) makeVacuumRelation((yyvsp[-1].range), InvalidOid, (yyvsp[0].list));
45332 : }
45333 : #line 45334 "gram.c"
45334 13308 : break;
45335 :
45336 13152 : case 1582: /* vacuum_relation_list: vacuum_relation */
45337 : #line 12026 "gram.y"
45338 : { (yyval.list) = list_make1((yyvsp[0].node)); }
45339 : #line 45340 "gram.c"
45340 13152 : break;
45341 :
45342 156 : case 1583: /* vacuum_relation_list: vacuum_relation_list ',' vacuum_relation */
45343 : #line 12028 "gram.y"
45344 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
45345 : #line 45346 "gram.c"
45346 156 : break;
45347 :
45348 13152 : case 1584: /* opt_vacuum_relation_list: vacuum_relation_list */
45349 : #line 12032 "gram.y"
45350 : { (yyval.list) = (yyvsp[0].list); }
45351 : #line 45352 "gram.c"
45352 13152 : break;
45353 :
45354 382 : case 1585: /* opt_vacuum_relation_list: %empty */
45355 : #line 12033 "gram.y"
45356 : { (yyval.list) = NIL; }
45357 : #line 45358 "gram.c"
45358 382 : break;
45359 :
45360 7714 : case 1586: /* ExplainStmt: EXPLAIN ExplainableStmt */
45361 : #line 12047 "gram.y"
45362 : {
45363 : ExplainStmt *n = makeNode(ExplainStmt);
45364 :
45365 : n->query = (yyvsp[0].node);
45366 : n->options = NIL;
45367 : (yyval.node) = (Node *) n;
45368 : }
45369 : #line 45370 "gram.c"
45370 7714 : break;
45371 :
45372 2304 : case 1587: /* ExplainStmt: EXPLAIN analyze_keyword opt_verbose ExplainableStmt */
45373 : #line 12055 "gram.y"
45374 : {
45375 : ExplainStmt *n = makeNode(ExplainStmt);
45376 :
45377 : n->query = (yyvsp[0].node);
45378 : n->options = list_make1(makeDefElem("analyze", NULL, (yylsp[-2])));
45379 : if ((yyvsp[-1].boolean))
45380 : n->options = lappend(n->options,
45381 : makeDefElem("verbose", NULL, (yylsp[-1])));
45382 : (yyval.node) = (Node *) n;
45383 : }
45384 : #line 45385 "gram.c"
45385 2304 : break;
45386 :
45387 12 : case 1588: /* ExplainStmt: EXPLAIN VERBOSE ExplainableStmt */
45388 : #line 12066 "gram.y"
45389 : {
45390 : ExplainStmt *n = makeNode(ExplainStmt);
45391 :
45392 : n->query = (yyvsp[0].node);
45393 : n->options = list_make1(makeDefElem("verbose", NULL, (yylsp[-1])));
45394 : (yyval.node) = (Node *) n;
45395 : }
45396 : #line 45397 "gram.c"
45397 12 : break;
45398 :
45399 13788 : case 1589: /* ExplainStmt: EXPLAIN '(' utility_option_list ')' ExplainableStmt */
45400 : #line 12074 "gram.y"
45401 : {
45402 : ExplainStmt *n = makeNode(ExplainStmt);
45403 :
45404 : n->query = (yyvsp[0].node);
45405 : n->options = (yyvsp[-2].list);
45406 : (yyval.node) = (Node *) n;
45407 : }
45408 : #line 45409 "gram.c"
45409 13788 : break;
45410 :
45411 2138 : case 1600: /* PrepareStmt: PREPARE name prep_type_clause AS PreparableStmt */
45412 : #line 12104 "gram.y"
45413 : {
45414 : PrepareStmt *n = makeNode(PrepareStmt);
45415 :
45416 : n->name = (yyvsp[-3].str);
45417 : n->argtypes = (yyvsp[-2].list);
45418 : n->query = (yyvsp[0].node);
45419 : (yyval.node) = (Node *) n;
45420 : }
45421 : #line 45422 "gram.c"
45422 2138 : break;
45423 :
45424 1830 : case 1601: /* prep_type_clause: '(' type_list ')' */
45425 : #line 12114 "gram.y"
45426 : { (yyval.list) = (yyvsp[-1].list); }
45427 : #line 45428 "gram.c"
45428 1830 : break;
45429 :
45430 326 : case 1602: /* prep_type_clause: %empty */
45431 : #line 12115 "gram.y"
45432 : { (yyval.list) = NIL; }
45433 : #line 45434 "gram.c"
45434 326 : break;
45435 :
45436 19944 : case 1608: /* ExecuteStmt: EXECUTE name execute_param_clause */
45437 : #line 12134 "gram.y"
45438 : {
45439 : ExecuteStmt *n = makeNode(ExecuteStmt);
45440 :
45441 : n->name = (yyvsp[-1].str);
45442 : n->params = (yyvsp[0].list);
45443 : (yyval.node) = (Node *) n;
45444 : }
45445 : #line 45446 "gram.c"
45446 19944 : break;
45447 :
45448 76 : case 1609: /* ExecuteStmt: CREATE OptTemp TABLE create_as_target AS EXECUTE name execute_param_clause opt_with_data */
45449 : #line 12143 "gram.y"
45450 : {
45451 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
45452 : ExecuteStmt *n = makeNode(ExecuteStmt);
45453 :
45454 : n->name = (yyvsp[-2].str);
45455 : n->params = (yyvsp[-1].list);
45456 : ctas->query = (Node *) n;
45457 : ctas->into = (yyvsp[-5].into);
45458 : ctas->objtype = OBJECT_TABLE;
45459 : ctas->is_select_into = false;
45460 : ctas->if_not_exists = false;
45461 : /* cram additional flags into the IntoClause */
45462 : (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-7].ival);
45463 : (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean));
45464 : (yyval.node) = (Node *) ctas;
45465 : }
45466 : #line 45467 "gram.c"
45467 76 : break;
45468 :
45469 12 : case 1610: /* ExecuteStmt: CREATE OptTemp TABLE IF_P NOT EXISTS create_as_target AS EXECUTE name execute_param_clause opt_with_data */
45470 : #line 12161 "gram.y"
45471 : {
45472 : CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
45473 : ExecuteStmt *n = makeNode(ExecuteStmt);
45474 :
45475 : n->name = (yyvsp[-2].str);
45476 : n->params = (yyvsp[-1].list);
45477 : ctas->query = (Node *) n;
45478 : ctas->into = (yyvsp[-5].into);
45479 : ctas->objtype = OBJECT_TABLE;
45480 : ctas->is_select_into = false;
45481 : ctas->if_not_exists = true;
45482 : /* cram additional flags into the IntoClause */
45483 : (yyvsp[-5].into)->rel->relpersistence = (yyvsp[-10].ival);
45484 : (yyvsp[-5].into)->skipData = !((yyvsp[0].boolean));
45485 : (yyval.node) = (Node *) ctas;
45486 : }
45487 : #line 45488 "gram.c"
45488 12 : break;
45489 :
45490 18890 : case 1611: /* execute_param_clause: '(' expr_list ')' */
45491 : #line 12179 "gram.y"
45492 : { (yyval.list) = (yyvsp[-1].list); }
45493 : #line 45494 "gram.c"
45494 18890 : break;
45495 :
45496 1142 : case 1612: /* execute_param_clause: %empty */
45497 : #line 12180 "gram.y"
45498 : { (yyval.list) = NIL; }
45499 : #line 45500 "gram.c"
45500 1142 : break;
45501 :
45502 3984 : case 1613: /* DeallocateStmt: DEALLOCATE name */
45503 : #line 12191 "gram.y"
45504 : {
45505 : DeallocateStmt *n = makeNode(DeallocateStmt);
45506 :
45507 : n->name = (yyvsp[0].str);
45508 : n->isall = false;
45509 : n->location = (yylsp[0]);
45510 : (yyval.node) = (Node *) n;
45511 : }
45512 : #line 45513 "gram.c"
45513 3984 : break;
45514 :
45515 20 : case 1614: /* DeallocateStmt: DEALLOCATE PREPARE name */
45516 : #line 12200 "gram.y"
45517 : {
45518 : DeallocateStmt *n = makeNode(DeallocateStmt);
45519 :
45520 : n->name = (yyvsp[0].str);
45521 : n->isall = false;
45522 : n->location = (yylsp[0]);
45523 : (yyval.node) = (Node *) n;
45524 : }
45525 : #line 45526 "gram.c"
45526 20 : break;
45527 :
45528 54 : case 1615: /* DeallocateStmt: DEALLOCATE ALL */
45529 : #line 12209 "gram.y"
45530 : {
45531 : DeallocateStmt *n = makeNode(DeallocateStmt);
45532 :
45533 : n->name = NULL;
45534 : n->isall = true;
45535 : n->location = -1;
45536 : (yyval.node) = (Node *) n;
45537 : }
45538 : #line 45539 "gram.c"
45539 54 : break;
45540 :
45541 2 : case 1616: /* DeallocateStmt: DEALLOCATE PREPARE ALL */
45542 : #line 12218 "gram.y"
45543 : {
45544 : DeallocateStmt *n = makeNode(DeallocateStmt);
45545 :
45546 : n->name = NULL;
45547 : n->isall = true;
45548 : n->location = -1;
45549 : (yyval.node) = (Node *) n;
45550 : }
45551 : #line 45552 "gram.c"
45552 2 : break;
45553 :
45554 68220 : case 1617: /* InsertStmt: opt_with_clause INSERT INTO insert_target insert_rest opt_on_conflict returning_clause */
45555 : #line 12238 "gram.y"
45556 : {
45557 : (yyvsp[-2].istmt)->relation = (yyvsp[-3].range);
45558 : (yyvsp[-2].istmt)->onConflictClause = (yyvsp[-1].onconflict);
45559 : (yyvsp[-2].istmt)->returningClause = (yyvsp[0].retclause);
45560 : (yyvsp[-2].istmt)->withClause = (yyvsp[-6].with);
45561 : (yyvsp[-2].istmt)->stmt_location = (yyloc);
45562 : (yyval.node) = (Node *) (yyvsp[-2].istmt);
45563 : }
45564 : #line 45565 "gram.c"
45565 68220 : break;
45566 :
45567 68088 : case 1618: /* insert_target: qualified_name */
45568 : #line 12256 "gram.y"
45569 : {
45570 : (yyval.range) = (yyvsp[0].range);
45571 : }
45572 : #line 45573 "gram.c"
45573 68088 : break;
45574 :
45575 138 : case 1619: /* insert_target: qualified_name AS ColId */
45576 : #line 12260 "gram.y"
45577 : {
45578 : (yyvsp[-2].range)->alias = makeAlias((yyvsp[0].str), NIL);
45579 : (yyval.range) = (yyvsp[-2].range);
45580 : }
45581 : #line 45582 "gram.c"
45582 138 : break;
45583 :
45584 43088 : case 1620: /* insert_rest: SelectStmt */
45585 : #line 12268 "gram.y"
45586 : {
45587 : (yyval.istmt) = makeNode(InsertStmt);
45588 : (yyval.istmt)->cols = NIL;
45589 : (yyval.istmt)->selectStmt = (yyvsp[0].node);
45590 : }
45591 : #line 45592 "gram.c"
45592 43088 : break;
45593 :
45594 96 : case 1621: /* insert_rest: OVERRIDING override_kind VALUE_P SelectStmt */
45595 : #line 12274 "gram.y"
45596 : {
45597 : (yyval.istmt) = makeNode(InsertStmt);
45598 : (yyval.istmt)->cols = NIL;
45599 : (yyval.istmt)->override = (yyvsp[-2].ival);
45600 : (yyval.istmt)->selectStmt = (yyvsp[0].node);
45601 : }
45602 : #line 45603 "gram.c"
45603 96 : break;
45604 :
45605 14234 : case 1622: /* insert_rest: '(' insert_column_list ')' SelectStmt */
45606 : #line 12281 "gram.y"
45607 : {
45608 : (yyval.istmt) = makeNode(InsertStmt);
45609 : (yyval.istmt)->cols = (yyvsp[-2].list);
45610 : (yyval.istmt)->selectStmt = (yyvsp[0].node);
45611 : }
45612 : #line 45613 "gram.c"
45613 14234 : break;
45614 :
45615 0 : case 1623: /* insert_rest: '(' insert_column_list ')' OVERRIDING override_kind VALUE_P SelectStmt */
45616 : #line 12287 "gram.y"
45617 : {
45618 : (yyval.istmt) = makeNode(InsertStmt);
45619 : (yyval.istmt)->cols = (yyvsp[-5].list);
45620 : (yyval.istmt)->override = (yyvsp[-2].ival);
45621 : (yyval.istmt)->selectStmt = (yyvsp[0].node);
45622 : }
45623 : #line 45624 "gram.c"
45624 0 : break;
45625 :
45626 10808 : case 1624: /* insert_rest: DEFAULT VALUES */
45627 : #line 12294 "gram.y"
45628 : {
45629 : (yyval.istmt) = makeNode(InsertStmt);
45630 : (yyval.istmt)->cols = NIL;
45631 : (yyval.istmt)->selectStmt = NULL;
45632 : }
45633 : #line 45634 "gram.c"
45634 10808 : break;
45635 :
45636 66 : case 1625: /* override_kind: USER */
45637 : #line 12302 "gram.y"
45638 : { (yyval.ival) = OVERRIDING_USER_VALUE; }
45639 : #line 45640 "gram.c"
45640 66 : break;
45641 :
45642 60 : case 1626: /* override_kind: SYSTEM_P */
45643 : #line 12303 "gram.y"
45644 : { (yyval.ival) = OVERRIDING_SYSTEM_VALUE; }
45645 : #line 45646 "gram.c"
45646 60 : break;
45647 :
45648 14562 : case 1627: /* insert_column_list: insert_column_item */
45649 : #line 12308 "gram.y"
45650 : { (yyval.list) = list_make1((yyvsp[0].target)); }
45651 : #line 45652 "gram.c"
45652 14562 : break;
45653 :
45654 16124 : case 1628: /* insert_column_list: insert_column_list ',' insert_column_item */
45655 : #line 12310 "gram.y"
45656 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
45657 : #line 45658 "gram.c"
45658 16124 : break;
45659 :
45660 30686 : case 1629: /* insert_column_item: ColId opt_indirection */
45661 : #line 12315 "gram.y"
45662 : {
45663 : (yyval.target) = makeNode(ResTarget);
45664 : (yyval.target)->name = (yyvsp[-1].str);
45665 : (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner);
45666 : (yyval.target)->val = NULL;
45667 : (yyval.target)->location = (yylsp[-1]);
45668 : }
45669 : #line 45670 "gram.c"
45670 30686 : break;
45671 :
45672 1304 : case 1630: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO UPDATE SET set_clause_list where_clause */
45673 : #line 12326 "gram.y"
45674 : {
45675 : (yyval.onconflict) = makeNode(OnConflictClause);
45676 : (yyval.onconflict)->action = ONCONFLICT_UPDATE;
45677 : (yyval.onconflict)->infer = (yyvsp[-5].infer);
45678 : (yyval.onconflict)->targetList = (yyvsp[-1].list);
45679 : (yyval.onconflict)->whereClause = (yyvsp[0].node);
45680 : (yyval.onconflict)->location = (yylsp[-7]);
45681 : }
45682 : #line 45683 "gram.c"
45683 1304 : break;
45684 :
45685 550 : case 1631: /* opt_on_conflict: ON CONFLICT opt_conf_expr DO NOTHING */
45686 : #line 12336 "gram.y"
45687 : {
45688 : (yyval.onconflict) = makeNode(OnConflictClause);
45689 : (yyval.onconflict)->action = ONCONFLICT_NOTHING;
45690 : (yyval.onconflict)->infer = (yyvsp[-2].infer);
45691 : (yyval.onconflict)->targetList = NIL;
45692 : (yyval.onconflict)->whereClause = NULL;
45693 : (yyval.onconflict)->location = (yylsp[-4]);
45694 : }
45695 : #line 45696 "gram.c"
45696 550 : break;
45697 :
45698 66372 : case 1632: /* opt_on_conflict: %empty */
45699 : #line 12345 "gram.y"
45700 : {
45701 : (yyval.onconflict) = NULL;
45702 : }
45703 : #line 45704 "gram.c"
45704 66372 : break;
45705 :
45706 1428 : case 1633: /* opt_conf_expr: '(' index_params ')' where_clause */
45707 : #line 12352 "gram.y"
45708 : {
45709 : (yyval.infer) = makeNode(InferClause);
45710 : (yyval.infer)->indexElems = (yyvsp[-2].list);
45711 : (yyval.infer)->whereClause = (yyvsp[0].node);
45712 : (yyval.infer)->conname = NULL;
45713 : (yyval.infer)->location = (yylsp[-3]);
45714 : }
45715 : #line 45716 "gram.c"
45716 1428 : break;
45717 :
45718 192 : case 1634: /* opt_conf_expr: ON CONSTRAINT name */
45719 : #line 12361 "gram.y"
45720 : {
45721 : (yyval.infer) = makeNode(InferClause);
45722 : (yyval.infer)->indexElems = NIL;
45723 : (yyval.infer)->whereClause = NULL;
45724 : (yyval.infer)->conname = (yyvsp[0].str);
45725 : (yyval.infer)->location = (yylsp[-2]);
45726 : }
45727 : #line 45728 "gram.c"
45728 192 : break;
45729 :
45730 234 : case 1635: /* opt_conf_expr: %empty */
45731 : #line 12369 "gram.y"
45732 : {
45733 : (yyval.infer) = NULL;
45734 : }
45735 : #line 45736 "gram.c"
45736 234 : break;
45737 :
45738 3164 : case 1636: /* returning_clause: RETURNING returning_with_clause target_list */
45739 : #line 12376 "gram.y"
45740 : {
45741 : ReturningClause *n = makeNode(ReturningClause);
45742 :
45743 : n->options = (yyvsp[-1].list);
45744 : n->exprs = (yyvsp[0].list);
45745 : (yyval.retclause) = n;
45746 : }
45747 : #line 45748 "gram.c"
45748 3164 : break;
45749 :
45750 85754 : case 1637: /* returning_clause: %empty */
45751 : #line 12384 "gram.y"
45752 : {
45753 : (yyval.retclause) = NULL;
45754 : }
45755 : #line 45756 "gram.c"
45756 85754 : break;
45757 :
45758 72 : case 1638: /* returning_with_clause: WITH '(' returning_options ')' */
45759 : #line 12390 "gram.y"
45760 : { (yyval.list) = (yyvsp[-1].list); }
45761 : #line 45762 "gram.c"
45762 72 : break;
45763 :
45764 3092 : case 1639: /* returning_with_clause: %empty */
45765 : #line 12391 "gram.y"
45766 : { (yyval.list) = NIL; }
45767 : #line 45768 "gram.c"
45768 3092 : break;
45769 :
45770 72 : case 1640: /* returning_options: returning_option */
45771 : #line 12395 "gram.y"
45772 : { (yyval.list) = list_make1((yyvsp[0].node)); }
45773 : #line 45774 "gram.c"
45774 72 : break;
45775 :
45776 54 : case 1641: /* returning_options: returning_options ',' returning_option */
45777 : #line 12396 "gram.y"
45778 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
45779 : #line 45780 "gram.c"
45780 54 : break;
45781 :
45782 126 : case 1642: /* returning_option: returning_option_kind AS ColId */
45783 : #line 12401 "gram.y"
45784 : {
45785 : ReturningOption *n = makeNode(ReturningOption);
45786 :
45787 : n->option = (yyvsp[-2].retoptionkind);
45788 : n->value = (yyvsp[0].str);
45789 : n->location = (yylsp[-2]);
45790 : (yyval.node) = (Node *) n;
45791 : }
45792 : #line 45793 "gram.c"
45793 126 : break;
45794 :
45795 54 : case 1643: /* returning_option_kind: OLD */
45796 : #line 12412 "gram.y"
45797 : { (yyval.retoptionkind) = RETURNING_OPTION_OLD; }
45798 : #line 45799 "gram.c"
45799 54 : break;
45800 :
45801 72 : case 1644: /* returning_option_kind: NEW */
45802 : #line 12413 "gram.y"
45803 : { (yyval.retoptionkind) = RETURNING_OPTION_NEW; }
45804 : #line 45805 "gram.c"
45805 72 : break;
45806 :
45807 4622 : case 1645: /* DeleteStmt: opt_with_clause DELETE_P FROM relation_expr_opt_alias using_clause where_or_current_clause returning_clause */
45808 : #line 12426 "gram.y"
45809 : {
45810 : DeleteStmt *n = makeNode(DeleteStmt);
45811 :
45812 : n->relation = (yyvsp[-3].range);
45813 : n->usingClause = (yyvsp[-2].list);
45814 : n->whereClause = (yyvsp[-1].node);
45815 : n->returningClause = (yyvsp[0].retclause);
45816 : n->withClause = (yyvsp[-6].with);
45817 : n->stmt_location = (yyloc);
45818 : (yyval.node) = (Node *) n;
45819 : }
45820 : #line 45821 "gram.c"
45821 4622 : break;
45822 :
45823 108 : case 1646: /* using_clause: USING from_list */
45824 : #line 12440 "gram.y"
45825 : { (yyval.list) = (yyvsp[0].list); }
45826 : #line 45827 "gram.c"
45827 108 : break;
45828 :
45829 4514 : case 1647: /* using_clause: %empty */
45830 : #line 12441 "gram.y"
45831 : { (yyval.list) = NIL; }
45832 : #line 45833 "gram.c"
45833 4514 : break;
45834 :
45835 2514 : case 1648: /* LockStmt: LOCK_P opt_table relation_expr_list opt_lock opt_nowait */
45836 : #line 12453 "gram.y"
45837 : {
45838 : LockStmt *n = makeNode(LockStmt);
45839 :
45840 : n->relations = (yyvsp[-2].list);
45841 : n->mode = (yyvsp[-1].ival);
45842 : n->nowait = (yyvsp[0].boolean);
45843 : (yyval.node) = (Node *) n;
45844 : }
45845 : #line 45846 "gram.c"
45846 2514 : break;
45847 :
45848 2406 : case 1649: /* opt_lock: IN_P lock_type MODE */
45849 : #line 12463 "gram.y"
45850 : { (yyval.ival) = (yyvsp[-1].ival); }
45851 : #line 45852 "gram.c"
45852 2406 : break;
45853 :
45854 108 : case 1650: /* opt_lock: %empty */
45855 : #line 12464 "gram.y"
45856 : { (yyval.ival) = AccessExclusiveLock; }
45857 : #line 45858 "gram.c"
45858 108 : break;
45859 :
45860 1916 : case 1651: /* lock_type: ACCESS SHARE */
45861 : #line 12467 "gram.y"
45862 : { (yyval.ival) = AccessShareLock; }
45863 : #line 45864 "gram.c"
45864 1916 : break;
45865 :
45866 14 : case 1652: /* lock_type: ROW SHARE */
45867 : #line 12468 "gram.y"
45868 : { (yyval.ival) = RowShareLock; }
45869 : #line 45870 "gram.c"
45870 14 : break;
45871 :
45872 88 : case 1653: /* lock_type: ROW EXCLUSIVE */
45873 : #line 12469 "gram.y"
45874 : { (yyval.ival) = RowExclusiveLock; }
45875 : #line 45876 "gram.c"
45876 88 : break;
45877 :
45878 66 : case 1654: /* lock_type: SHARE UPDATE EXCLUSIVE */
45879 : #line 12470 "gram.y"
45880 : { (yyval.ival) = ShareUpdateExclusiveLock; }
45881 : #line 45882 "gram.c"
45882 66 : break;
45883 :
45884 80 : case 1655: /* lock_type: SHARE */
45885 : #line 12471 "gram.y"
45886 : { (yyval.ival) = ShareLock; }
45887 : #line 45888 "gram.c"
45888 80 : break;
45889 :
45890 14 : case 1656: /* lock_type: SHARE ROW EXCLUSIVE */
45891 : #line 12472 "gram.y"
45892 : { (yyval.ival) = ShareRowExclusiveLock; }
45893 : #line 45894 "gram.c"
45894 14 : break;
45895 :
45896 102 : case 1657: /* lock_type: EXCLUSIVE */
45897 : #line 12473 "gram.y"
45898 : { (yyval.ival) = ExclusiveLock; }
45899 : #line 45900 "gram.c"
45900 102 : break;
45901 :
45902 126 : case 1658: /* lock_type: ACCESS EXCLUSIVE */
45903 : #line 12474 "gram.y"
45904 : { (yyval.ival) = AccessExclusiveLock; }
45905 : #line 45906 "gram.c"
45906 126 : break;
45907 :
45908 1582 : case 1659: /* opt_nowait: NOWAIT */
45909 : #line 12477 "gram.y"
45910 : { (yyval.boolean) = true; }
45911 : #line 45912 "gram.c"
45912 1582 : break;
45913 :
45914 962 : case 1660: /* opt_nowait: %empty */
45915 : #line 12478 "gram.y"
45916 : { (yyval.boolean) = false; }
45917 : #line 45918 "gram.c"
45918 962 : break;
45919 :
45920 50 : case 1661: /* opt_nowait_or_skip: NOWAIT */
45921 : #line 12482 "gram.y"
45922 : { (yyval.ival) = LockWaitError; }
45923 : #line 45924 "gram.c"
45924 50 : break;
45925 :
45926 190 : case 1662: /* opt_nowait_or_skip: SKIP LOCKED */
45927 : #line 12483 "gram.y"
45928 : { (yyval.ival) = LockWaitSkip; }
45929 : #line 45930 "gram.c"
45930 190 : break;
45931 :
45932 5016 : case 1663: /* opt_nowait_or_skip: %empty */
45933 : #line 12484 "gram.y"
45934 : { (yyval.ival) = LockWaitBlock; }
45935 : #line 45936 "gram.c"
45936 5016 : break;
45937 :
45938 13994 : case 1664: /* UpdateStmt: opt_with_clause UPDATE relation_expr_opt_alias SET set_clause_list from_clause where_or_current_clause returning_clause */
45939 : #line 12500 "gram.y"
45940 : {
45941 : UpdateStmt *n = makeNode(UpdateStmt);
45942 :
45943 : n->relation = (yyvsp[-5].range);
45944 : n->targetList = (yyvsp[-3].list);
45945 : n->fromClause = (yyvsp[-2].list);
45946 : n->whereClause = (yyvsp[-1].node);
45947 : n->returningClause = (yyvsp[0].retclause);
45948 : n->withClause = (yyvsp[-7].with);
45949 : n->stmt_location = (yyloc);
45950 : (yyval.node) = (Node *) n;
45951 : }
45952 : #line 45953 "gram.c"
45953 13994 : break;
45954 :
45955 16848 : case 1665: /* set_clause_list: set_clause */
45956 : #line 12515 "gram.y"
45957 : { (yyval.list) = (yyvsp[0].list); }
45958 : #line 45959 "gram.c"
45959 16848 : break;
45960 :
45961 4094 : case 1666: /* set_clause_list: set_clause_list ',' set_clause */
45962 : #line 12516 "gram.y"
45963 : { (yyval.list) = list_concat((yyvsp[-2].list),(yyvsp[0].list)); }
45964 : #line 45965 "gram.c"
45965 4094 : break;
45966 :
45967 20758 : case 1667: /* set_clause: set_target '=' a_expr */
45968 : #line 12521 "gram.y"
45969 : {
45970 : (yyvsp[-2].target)->val = (Node *) (yyvsp[0].node);
45971 : (yyval.list) = list_make1((yyvsp[-2].target));
45972 : }
45973 : #line 45974 "gram.c"
45974 20758 : break;
45975 :
45976 184 : case 1668: /* set_clause: '(' set_target_list ')' '=' a_expr */
45977 : #line 12526 "gram.y"
45978 : {
45979 : int ncolumns = list_length((yyvsp[-3].list));
45980 : int i = 1;
45981 : ListCell *col_cell;
45982 :
45983 : /* Create a MultiAssignRef source for each target */
45984 : foreach(col_cell, (yyvsp[-3].list))
45985 : {
45986 : ResTarget *res_col = (ResTarget *) lfirst(col_cell);
45987 : MultiAssignRef *r = makeNode(MultiAssignRef);
45988 :
45989 : r->source = (Node *) (yyvsp[0].node);
45990 : r->colno = i;
45991 : r->ncolumns = ncolumns;
45992 : res_col->val = (Node *) r;
45993 : i++;
45994 : }
45995 :
45996 : (yyval.list) = (yyvsp[-3].list);
45997 : }
45998 : #line 45999 "gram.c"
45999 184 : break;
46000 :
46001 21148 : case 1669: /* set_target: ColId opt_indirection */
46002 : #line 12550 "gram.y"
46003 : {
46004 : (yyval.target) = makeNode(ResTarget);
46005 : (yyval.target)->name = (yyvsp[-1].str);
46006 : (yyval.target)->indirection = check_indirection((yyvsp[0].list), yyscanner);
46007 : (yyval.target)->val = NULL; /* upper production sets this */
46008 : (yyval.target)->location = (yylsp[-1]);
46009 : }
46010 : #line 46011 "gram.c"
46011 21148 : break;
46012 :
46013 190 : case 1670: /* set_target_list: set_target */
46014 : #line 12560 "gram.y"
46015 : { (yyval.list) = list_make1((yyvsp[0].target)); }
46016 : #line 46017 "gram.c"
46017 190 : break;
46018 :
46019 200 : case 1671: /* set_target_list: set_target_list ',' set_target */
46020 : #line 12561 "gram.y"
46021 : { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].target)); }
46022 : #line 46023 "gram.c"
46023 200 : break;
46024 :
46025 2082 : case 1672: /* MergeStmt: opt_with_clause MERGE INTO relation_expr_opt_alias USING table_ref ON a_expr merge_when_list returning_clause */
46026 : #line 12578 "gram.y"
46027 : {
46028 : MergeStmt *m = makeNode(MergeStmt);
46029 :
46030 : m->withClause = (yyvsp[-9].with);
46031 : m->relation = (yyvsp[-6].range);
46032 : m->sourceRelation = (yyvsp[-4].node);
46033 : m->joinCondition = (yyvsp[-2].node);
46034 : m->mergeWhenClauses = (yyvsp[-1].list);
46035 : m->returningClause = (yyvsp[0].retclause);
46036 : m->stmt_location = (yyloc);
46037 :
46038 : (yyval.node) = (Node *) m;
46039 : }
46040 : #line 46041 "gram.c"
46041 2082 : break;
46042 :
46043 2082 : case 1673: /* merge_when_list: merge_when_clause */
46044 : #line 12594 "gram.y"
46045 : { (yyval.list) = list_make1((yyvsp[0].node)); }
46046 : #line 46047 "gram.c"
46047 2082 : break;
46048 :
46049 1164 : case 1674: /* merge_when_list: merge_when_list merge_when_clause */
46050 : #line 12595 "gram.y"
46051 : { (yyval.list) = lappend((yyvsp[-1].list),(yyvsp[0].node)); }
46052 : #line 46053 "gram.c"
46053 1164 : break;
46054 :
46055 1550 : case 1675: /* merge_when_clause: merge_when_tgt_matched opt_merge_when_condition THEN merge_update */
46056 : #line 12606 "gram.y"
46057 : {
46058 : (yyvsp[0].mergewhen)->matchKind = (yyvsp[-3].mergematch);
46059 : (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
46060 :
46061 : (yyval.node) = (Node *) (yyvsp[0].mergewhen);
46062 : }
46063 : #line 46064 "gram.c"
46064 1550 : break;
46065 :
46066 518 : case 1676: /* merge_when_clause: merge_when_tgt_matched opt_merge_when_condition THEN merge_delete */
46067 : #line 12613 "gram.y"
46068 : {
46069 : (yyvsp[0].mergewhen)->matchKind = (yyvsp[-3].mergematch);
46070 : (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
46071 :
46072 : (yyval.node) = (Node *) (yyvsp[0].mergewhen);
46073 : }
46074 : #line 46075 "gram.c"
46075 518 : break;
46076 :
46077 1094 : case 1677: /* merge_when_clause: merge_when_tgt_not_matched opt_merge_when_condition THEN merge_insert */
46078 : #line 12620 "gram.y"
46079 : {
46080 : (yyvsp[0].mergewhen)->matchKind = (yyvsp[-3].mergematch);
46081 : (yyvsp[0].mergewhen)->condition = (yyvsp[-2].node);
46082 :
46083 : (yyval.node) = (Node *) (yyvsp[0].mergewhen);
46084 : }
46085 : #line 46086 "gram.c"
46086 1094 : break;
46087 :
46088 64 : case 1678: /* merge_when_clause: merge_when_tgt_matched opt_merge_when_condition THEN DO NOTHING */
46089 : #line 12627 "gram.y"
46090 : {
46091 : MergeWhenClause *m = makeNode(MergeWhenClause);
46092 :
46093 : m->matchKind = (yyvsp[-4].mergematch);
46094 : m->commandType = CMD_NOTHING;
46095 : m->condition = (yyvsp[-3].node);
46096 :
46097 : (yyval.node) = (Node *) m;
46098 : }
46099 : #line 46100 "gram.c"
46100 64 : break;
46101 :
46102 20 : case 1679: /* merge_when_clause: merge_when_tgt_not_matched opt_merge_when_condition THEN DO NOTHING */
46103 : #line 12637 "gram.y"
46104 : {
46105 : MergeWhenClause *m = makeNode(MergeWhenClause);
46106 :
46107 : m->matchKind = (yyvsp[-4].mergematch);
46108 : m->commandType = CMD_NOTHING;
46109 : m->condition = (yyvsp[-3].node);
46110 :
46111 : (yyval.node) = (Node *) m;
46112 : }
46113 : #line 46114 "gram.c"
46114 20 : break;
46115 :
46116 1970 : case 1680: /* merge_when_tgt_matched: WHEN MATCHED */
46117 : #line 12649 "gram.y"
46118 : { (yyval.mergematch) = MERGE_WHEN_MATCHED; }
46119 : #line 46120 "gram.c"
46120 1970 : break;
46121 :
46122 180 : case 1681: /* merge_when_tgt_matched: WHEN NOT MATCHED BY SOURCE */
46123 : #line 12650 "gram.y"
46124 : { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_SOURCE; }
46125 : #line 46126 "gram.c"
46126 180 : break;
46127 :
46128 1120 : case 1682: /* merge_when_tgt_not_matched: WHEN NOT MATCHED */
46129 : #line 12654 "gram.y"
46130 : { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_TARGET; }
46131 : #line 46132 "gram.c"
46132 1120 : break;
46133 :
46134 18 : case 1683: /* merge_when_tgt_not_matched: WHEN NOT MATCHED BY TARGET */
46135 : #line 12655 "gram.y"
46136 : { (yyval.mergematch) = MERGE_WHEN_NOT_MATCHED_BY_TARGET; }
46137 : #line 46138 "gram.c"
46138 18 : break;
46139 :
46140 808 : case 1684: /* opt_merge_when_condition: AND a_expr */
46141 : #line 12659 "gram.y"
46142 : { (yyval.node) = (yyvsp[0].node); }
46143 : #line 46144 "gram.c"
46144 808 : break;
46145 :
46146 2480 : case 1685: /* opt_merge_when_condition: %empty */
46147 : #line 12660 "gram.y"
46148 : { (yyval.node) = NULL; }
46149 : #line 46150 "gram.c"
46150 2480 : break;
46151 :
46152 1550 : case 1686: /* merge_update: UPDATE SET set_clause_list */
46153 : #line 12665 "gram.y"
46154 : {
46155 : MergeWhenClause *n = makeNode(MergeWhenClause);
46156 : n->commandType = CMD_UPDATE;
46157 : n->override = OVERRIDING_NOT_SET;
46158 : n->targetList = (yyvsp[0].list);
46159 : n->values = NIL;
46160 :
46161 : (yyval.mergewhen) = n;
46162 : }
46163 : #line 46164 "gram.c"
46164 1550 : break;
46165 :
46166 518 : case 1687: /* merge_delete: DELETE_P */
46167 : #line 12678 "gram.y"
46168 : {
46169 : MergeWhenClause *n = makeNode(MergeWhenClause);
46170 : n->commandType = CMD_DELETE;
46171 : n->override = OVERRIDING_NOT_SET;
46172 : n->targetList = NIL;
46173 : n->values = NIL;
46174 :
46175 : (yyval.mergewhen) = n;
46176 : }
46177 : #line 46178 "gram.c"
46178 518 : break;
46179 :
46180 730 : case 1688: /* merge_insert: INSERT merge_values_clause */
46181 : #line 12691 "gram.y"
46182 : {
46183 : MergeWhenClause *n = makeNode(MergeWhenClause);
46184 : n->commandType = CMD_INSERT;
46185 : n->override = OVERRIDING_NOT_SET;
46186 : n->targetList = NIL;
46187 : n->values = (yyvsp[0].list);
46188 : (yyval.mergewhen) = n;
46189 : }
46190 : #line 46191 "gram.c"
46191 730 : break;
46192 :
46193 0 : case 1689: /* merge_insert: INSERT OVERRIDING override_kind VALUE_P merge_values_clause */
46194 : #line 12700 "gram.y"
46195 : {
46196 : MergeWhenClause *n = makeNode(MergeWhenClause);
46197 : n->commandType = CMD_INSERT;
46198 : n->override = (yyvsp[-2].ival);
46199 : n->targetList = NIL;
46200 : n->values = (yyvsp[0].list);
46201 : (yyval.mergewhen) = n;
46202 : }
46203 : #line 46204 "gram.c"
46204 0 : break;
46205 :
46206 298 : case 1690: /* merge_insert: INSERT '(' insert_column_list ')' merge_values_clause */
46207 : #line 12709 "gram.y"
46208 : {
46209 : MergeWhenClause *n = makeNode(MergeWhenClause);
46210 : n->commandType = CMD_INSERT;
46211 : n->override = OVERRIDING_NOT_SET;
46212 : n->targetList = (yyvsp[-2].list);
46213 : n->values = (yyvsp[0].list);
46214 : (yyval.mergewhen) = n;
46215 : }
46216 : #line 46217 "gram.c"
46217 298 : break;
46218 :
46219 30 : case 1691: /* merge_insert: INSERT '(' insert_column_list ')' OVERRIDING override_kind VALUE_P merge_values_clause */
46220 : #line 12718 "gram.y"
46221 : {
46222 : MergeWhenClause *n = makeNode(MergeWhenClause);
46223 : n->commandType = CMD_INSERT;
46224 : n->override = (yyvsp[-2].ival);
46225 : n->targetList = (yyvsp[-5].list);
46226 : n->values = (yyvsp[0].list);
46227 : (yyval.mergewhen) = n;
46228 : }
46229 : #line 46230 "gram.c"
46230 30 : break;
46231 :
46232 36 : case 1692: /* merge_insert: INSERT DEFAULT VALUES */
46233 : #line 12727 "gram.y"
46234 : {
46235 : MergeWhenClause *n = makeNode(MergeWhenClause);
46236 : n->commandType = CMD_INSERT;
46237 : n->override = OVERRIDING_NOT_SET;
46238 : n->targetList = NIL;
46239 : n->values = NIL;
46240 : (yyval.mergewhen) = n;
46241 : }
46242 : #line 46243 "gram.c"
46243 36 : break;
46244 :
46245 1058 : case 1693: /* merge_values_clause: VALUES '(' expr_list ')' */
46246 : #line 12739 "gram.y"
46247 : {
46248 : (yyval.list) = (yyvsp[-1].list);
46249 : }
46250 : #line 46251 "gram.c"
46251 1058 : break;
46252 :
46253 4606 : case 1694: /* DeclareCursorStmt: DECLARE cursor_name cursor_options CURSOR opt_hold FOR SelectStmt */
46254 : #line 12751 "gram.y"
46255 : {
46256 : DeclareCursorStmt *n = makeNode(DeclareCursorStmt);
46257 :
46258 : n->portalname = (yyvsp[-5].str);
46259 : /* currently we always set FAST_PLAN option */
46260 : n->options = (yyvsp[-4].ival) | (yyvsp[-2].ival) | CURSOR_OPT_FAST_PLAN;
46261 : n->query = (yyvsp[0].node);
46262 : (yyval.node) = (Node *) n;
46263 : }
46264 : #line 46265 "gram.c"
46265 4606 : break;
46266 :
46267 14656 : case 1695: /* cursor_name: name */
46268 : #line 12762 "gram.y"
46269 : { (yyval.str) = (yyvsp[0].str); }
46270 : #line 46271 "gram.c"
46271 14656 : break;
46272 :
46273 4606 : case 1696: /* cursor_options: %empty */
46274 : #line 12765 "gram.y"
46275 : { (yyval.ival) = 0; }
46276 : #line 46277 "gram.c"
46277 4606 : break;
46278 :
46279 28 : case 1697: /* cursor_options: cursor_options NO SCROLL */
46280 : #line 12766 "gram.y"
46281 : { (yyval.ival) = (yyvsp[-2].ival) | CURSOR_OPT_NO_SCROLL; }
46282 : #line 46283 "gram.c"
46283 28 : break;
46284 :
46285 240 : case 1698: /* cursor_options: cursor_options SCROLL */
46286 : #line 12767 "gram.y"
46287 : { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_SCROLL; }
46288 : #line 46289 "gram.c"
46289 240 : break;
46290 :
46291 14 : case 1699: /* cursor_options: cursor_options BINARY */
46292 : #line 12768 "gram.y"
46293 : { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_BINARY; }
46294 : #line 46295 "gram.c"
46295 14 : break;
46296 :
46297 0 : case 1700: /* cursor_options: cursor_options ASENSITIVE */
46298 : #line 12769 "gram.y"
46299 : { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_ASENSITIVE; }
46300 : #line 46301 "gram.c"
46301 0 : break;
46302 :
46303 6 : case 1701: /* cursor_options: cursor_options INSENSITIVE */
46304 : #line 12770 "gram.y"
46305 : { (yyval.ival) = (yyvsp[-1].ival) | CURSOR_OPT_INSENSITIVE; }
46306 : #line 46307 "gram.c"
46307 6 : break;
46308 :
46309 4508 : case 1702: /* opt_hold: %empty */
46310 : #line 12773 "gram.y"
46311 : { (yyval.ival) = 0; }
46312 : #line 46313 "gram.c"
46313 4508 : break;
46314 :
46315 92 : case 1703: /* opt_hold: WITH HOLD */
46316 : #line 12774 "gram.y"
46317 : { (yyval.ival) = CURSOR_OPT_HOLD; }
46318 : #line 46319 "gram.c"
46319 92 : break;
46320 :
46321 6 : case 1704: /* opt_hold: WITHOUT HOLD */
46322 : #line 12775 "gram.y"
46323 : { (yyval.ival) = 0; }
46324 : #line 46325 "gram.c"
46325 6 : break;
46326 :
46327 66558 : case 1707: /* select_with_parens: '(' select_no_parens ')' */
46328 : #line 12829 "gram.y"
46329 : {
46330 : SelectStmt *n = (SelectStmt *) (yyvsp[-1].node);
46331 :
46332 : /*
46333 : * As SelectStmt's location starts at the SELECT keyword,
46334 : * we need to track the length of the SelectStmt within
46335 : * parentheses to be able to extract the relevant part
46336 : * of the query. Without this, the RawStmt's length would
46337 : * be used and would include the closing parenthesis.
46338 : */
46339 : n->stmt_len = (yylsp[0]) - (yylsp[-1]);
46340 : (yyval.node) = (yyvsp[-1].node);
46341 : }
46342 : #line 46343 "gram.c"
46343 66558 : break;
46344 :
46345 156 : case 1708: /* select_with_parens: '(' select_with_parens ')' */
46346 : #line 12842 "gram.y"
46347 : { (yyval.node) = (yyvsp[-1].node); }
46348 : #line 46349 "gram.c"
46349 156 : break;
46350 :
46351 393020 : case 1709: /* select_no_parens: simple_select */
46352 : #line 12857 "gram.y"
46353 : { (yyval.node) = (yyvsp[0].node); }
46354 : #line 46355 "gram.c"
46355 393020 : break;
46356 :
46357 72338 : case 1710: /* select_no_parens: select_clause sort_clause */
46358 : #line 12859 "gram.y"
46359 : {
46360 : insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL,
46361 : NULL, NULL,
46362 : yyscanner);
46363 : (yyval.node) = (yyvsp[-1].node);
46364 : }
46365 : #line 46366 "gram.c"
46366 72338 : break;
46367 :
46368 4808 : case 1711: /* select_no_parens: select_clause opt_sort_clause for_locking_clause opt_select_limit */
46369 : #line 12866 "gram.y"
46370 : {
46371 : insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list),
46372 : (yyvsp[0].selectlimit),
46373 : NULL,
46374 : yyscanner);
46375 : (yyval.node) = (yyvsp[-3].node);
46376 : }
46377 : #line 46378 "gram.c"
46378 4808 : break;
46379 :
46380 4856 : case 1712: /* select_no_parens: select_clause opt_sort_clause select_limit opt_for_locking_clause */
46381 : #line 12874 "gram.y"
46382 : {
46383 : insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list),
46384 : (yyvsp[-1].selectlimit),
46385 : NULL,
46386 : yyscanner);
46387 : (yyval.node) = (yyvsp[-3].node);
46388 : }
46389 : #line 46390 "gram.c"
46390 4844 : break;
46391 :
46392 2244 : case 1713: /* select_no_parens: with_clause select_clause */
46393 : #line 12882 "gram.y"
46394 : {
46395 : insertSelectOptions((SelectStmt *) (yyvsp[0].node), NULL, NIL,
46396 : NULL,
46397 : (yyvsp[-1].with),
46398 : yyscanner);
46399 : (yyval.node) = (yyvsp[0].node);
46400 : }
46401 : #line 46402 "gram.c"
46402 2244 : break;
46403 :
46404 578 : case 1714: /* select_no_parens: with_clause select_clause sort_clause */
46405 : #line 12890 "gram.y"
46406 : {
46407 : insertSelectOptions((SelectStmt *) (yyvsp[-1].node), (yyvsp[0].list), NIL,
46408 : NULL,
46409 : (yyvsp[-2].with),
46410 : yyscanner);
46411 : (yyval.node) = (yyvsp[-1].node);
46412 : }
46413 : #line 46414 "gram.c"
46414 578 : break;
46415 :
46416 6 : case 1715: /* select_no_parens: with_clause select_clause opt_sort_clause for_locking_clause opt_select_limit */
46417 : #line 12898 "gram.y"
46418 : {
46419 : insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[-1].list),
46420 : (yyvsp[0].selectlimit),
46421 : (yyvsp[-4].with),
46422 : yyscanner);
46423 : (yyval.node) = (yyvsp[-3].node);
46424 : }
46425 : #line 46426 "gram.c"
46426 6 : break;
46427 :
46428 64 : case 1716: /* select_no_parens: with_clause select_clause opt_sort_clause select_limit opt_for_locking_clause */
46429 : #line 12906 "gram.y"
46430 : {
46431 : insertSelectOptions((SelectStmt *) (yyvsp[-3].node), (yyvsp[-2].list), (yyvsp[0].list),
46432 : (yyvsp[-1].selectlimit),
46433 : (yyvsp[-4].with),
46434 : yyscanner);
46435 : (yyval.node) = (yyvsp[-3].node);
46436 : }
46437 : #line 46438 "gram.c"
46438 64 : break;
46439 :
46440 122964 : case 1717: /* select_clause: simple_select */
46441 : #line 12916 "gram.y"
46442 : { (yyval.node) = (yyvsp[0].node); }
46443 : #line 46444 "gram.c"
46444 122964 : break;
46445 :
46446 586 : case 1718: /* select_clause: select_with_parens */
46447 : #line 12917 "gram.y"
46448 : { (yyval.node) = (yyvsp[0].node); }
46449 : #line 46450 "gram.c"
46450 586 : break;
46451 :
46452 433930 : case 1719: /* simple_select: SELECT opt_all_clause opt_target_list into_clause from_clause where_clause group_clause having_clause window_clause */
46453 : #line 12952 "gram.y"
46454 : {
46455 : SelectStmt *n = makeNode(SelectStmt);
46456 :
46457 : n->targetList = (yyvsp[-6].list);
46458 : n->intoClause = (yyvsp[-5].into);
46459 : n->fromClause = (yyvsp[-4].list);
46460 : n->whereClause = (yyvsp[-3].node);
46461 : n->groupClause = ((yyvsp[-2].groupclause))->list;
46462 : n->groupDistinct = ((yyvsp[-2].groupclause))->distinct;
46463 : n->havingClause = (yyvsp[-1].node);
46464 : n->windowClause = (yyvsp[0].list);
46465 : n->stmt_location = (yylsp[-8]);
46466 : (yyval.node) = (Node *) n;
46467 : }
46468 : #line 46469 "gram.c"
46469 433930 : break;
46470 :
46471 3696 : case 1720: /* simple_select: SELECT distinct_clause target_list into_clause from_clause where_clause group_clause having_clause window_clause */
46472 : #line 12969 "gram.y"
46473 : {
46474 : SelectStmt *n = makeNode(SelectStmt);
46475 :
46476 : n->distinctClause = (yyvsp[-7].list);
46477 : n->targetList = (yyvsp[-6].list);
46478 : n->intoClause = (yyvsp[-5].into);
46479 : n->fromClause = (yyvsp[-4].list);
46480 : n->whereClause = (yyvsp[-3].node);
46481 : n->groupClause = ((yyvsp[-2].groupclause))->list;
46482 : n->groupDistinct = ((yyvsp[-2].groupclause))->distinct;
46483 : n->havingClause = (yyvsp[-1].node);
46484 : n->windowClause = (yyvsp[0].list);
46485 : n->stmt_location = (yylsp[-8]);
46486 : (yyval.node) = (Node *) n;
46487 : }
46488 : #line 46489 "gram.c"
46489 3696 : break;
46490 :
46491 58728 : case 1721: /* simple_select: values_clause */
46492 : #line 12984 "gram.y"
46493 : { (yyval.node) = (yyvsp[0].node); }
46494 : #line 46495 "gram.c"
46495 58728 : break;
46496 :
46497 308 : case 1722: /* simple_select: TABLE relation_expr */
46498 : #line 12986 "gram.y"
46499 : {
46500 : /* same as SELECT * FROM relation_expr */
46501 : ColumnRef *cr = makeNode(ColumnRef);
46502 : ResTarget *rt = makeNode(ResTarget);
46503 : SelectStmt *n = makeNode(SelectStmt);
46504 :
46505 : cr->fields = list_make1(makeNode(A_Star));
46506 : cr->location = -1;
46507 :
46508 : rt->name = NULL;
46509 : rt->indirection = NIL;
46510 : rt->val = (Node *) cr;
46511 : rt->location = -1;
46512 :
46513 : n->targetList = list_make1(rt);
46514 : n->fromClause = list_make1((yyvsp[0].range));
46515 : n->stmt_location = (yylsp[-1]);
46516 : (yyval.node) = (Node *) n;
46517 : }
46518 : #line 46519 "gram.c"
46519 308 : break;
46520 :
46521 18588 : case 1723: /* simple_select: select_clause UNION set_quantifier select_clause */
46522 : #line 13006 "gram.y"
46523 : {
46524 : (yyval.node) = makeSetOp(SETOP_UNION, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-3]));
46525 : }
46526 : #line 46527 "gram.c"
46527 18588 : break;
46528 :
46529 258 : case 1724: /* simple_select: select_clause INTERSECT set_quantifier select_clause */
46530 : #line 13010 "gram.y"
46531 : {
46532 : (yyval.node) = makeSetOp(SETOP_INTERSECT, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-3]));
46533 : }
46534 : #line 46535 "gram.c"
46535 258 : break;
46536 :
46537 476 : case 1725: /* simple_select: select_clause EXCEPT set_quantifier select_clause */
46538 : #line 13014 "gram.y"
46539 : {
46540 : (yyval.node) = makeSetOp(SETOP_EXCEPT, (yyvsp[-1].setquantifier) == SET_QUANTIFIER_ALL, (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-3]));
46541 : }
46542 : #line 46543 "gram.c"
46543 476 : break;
46544 :
46545 2006 : case 1726: /* with_clause: WITH cte_list */
46546 : #line 13029 "gram.y"
46547 : {
46548 : (yyval.with) = makeNode(WithClause);
46549 : (yyval.with)->ctes = (yyvsp[0].list);
46550 : (yyval.with)->recursive = false;
46551 : (yyval.with)->location = (yylsp[-1]);
46552 : }
46553 : #line 46554 "gram.c"
46554 2006 : break;
46555 :
46556 6 : case 1727: /* with_clause: WITH_LA cte_list */
46557 : #line 13036 "gram.y"
46558 : {
46559 : (yyval.with) = makeNode(WithClause);
46560 : (yyval.with)->ctes = (yyvsp[0].list);
46561 : (yyval.with)->recursive = false;
46562 : (yyval.with)->location = (yylsp[-1]);
46563 : }
46564 : #line 46565 "gram.c"
46565 6 : break;
46566 :
46567 1330 : case 1728: /* with_clause: WITH RECURSIVE cte_list */
46568 : #line 13043 "gram.y"
46569 : {
46570 : (yyval.with) = makeNode(WithClause);
46571 : (yyval.with)->ctes = (yyvsp[0].list);
46572 : (yyval.with)->recursive = true;
46573 : (yyval.with)->location = (yylsp[-2]);
46574 : }
46575 : #line 46576 "gram.c"
46576 1330 : break;
46577 :
46578 3342 : case 1729: /* cte_list: common_table_expr */
46579 : #line 13052 "gram.y"
46580 : { (yyval.list) = list_make1((yyvsp[0].node)); }
46581 : #line 46582 "gram.c"
46582 3342 : break;
46583 :
46584 1202 : case 1730: /* cte_list: cte_list ',' common_table_expr */
46585 : #line 13053 "gram.y"
46586 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
46587 : #line 46588 "gram.c"
46588 1202 : break;
46589 :
46590 4544 : case 1731: /* common_table_expr: name opt_name_list AS opt_materialized '(' PreparableStmt ')' opt_search_clause opt_cycle_clause */
46591 : #line 13057 "gram.y"
46592 : {
46593 : CommonTableExpr *n = makeNode(CommonTableExpr);
46594 :
46595 : n->ctename = (yyvsp[-8].str);
46596 : n->aliascolnames = (yyvsp[-7].list);
46597 : n->ctematerialized = (yyvsp[-5].ival);
46598 : n->ctequery = (yyvsp[-3].node);
46599 : n->search_clause = castNode(CTESearchClause, (yyvsp[-1].node));
46600 : n->cycle_clause = castNode(CTECycleClause, (yyvsp[0].node));
46601 : n->location = (yylsp[-8]);
46602 : (yyval.node) = (Node *) n;
46603 : }
46604 : #line 46605 "gram.c"
46605 4544 : break;
46606 :
46607 178 : case 1732: /* opt_materialized: MATERIALIZED */
46608 : #line 13072 "gram.y"
46609 : { (yyval.ival) = CTEMaterializeAlways; }
46610 : #line 46611 "gram.c"
46611 178 : break;
46612 :
46613 48 : case 1733: /* opt_materialized: NOT MATERIALIZED */
46614 : #line 13073 "gram.y"
46615 : { (yyval.ival) = CTEMaterializeNever; }
46616 : #line 46617 "gram.c"
46617 48 : break;
46618 :
46619 4318 : case 1734: /* opt_materialized: %empty */
46620 : #line 13074 "gram.y"
46621 : { (yyval.ival) = CTEMaterializeDefault; }
46622 : #line 46623 "gram.c"
46623 4318 : break;
46624 :
46625 90 : case 1735: /* opt_search_clause: SEARCH DEPTH FIRST_P BY columnList SET ColId */
46626 : #line 13079 "gram.y"
46627 : {
46628 : CTESearchClause *n = makeNode(CTESearchClause);
46629 :
46630 : n->search_col_list = (yyvsp[-2].list);
46631 : n->search_breadth_first = false;
46632 : n->search_seq_column = (yyvsp[0].str);
46633 : n->location = (yylsp[-6]);
46634 : (yyval.node) = (Node *) n;
46635 : }
46636 : #line 46637 "gram.c"
46637 90 : break;
46638 :
46639 36 : case 1736: /* opt_search_clause: SEARCH BREADTH FIRST_P BY columnList SET ColId */
46640 : #line 13089 "gram.y"
46641 : {
46642 : CTESearchClause *n = makeNode(CTESearchClause);
46643 :
46644 : n->search_col_list = (yyvsp[-2].list);
46645 : n->search_breadth_first = true;
46646 : n->search_seq_column = (yyvsp[0].str);
46647 : n->location = (yylsp[-6]);
46648 : (yyval.node) = (Node *) n;
46649 : }
46650 : #line 46651 "gram.c"
46651 36 : break;
46652 :
46653 4418 : case 1737: /* opt_search_clause: %empty */
46654 : #line 13099 "gram.y"
46655 : {
46656 : (yyval.node) = NULL;
46657 : }
46658 : #line 46659 "gram.c"
46659 4418 : break;
46660 :
46661 66 : case 1738: /* opt_cycle_clause: CYCLE columnList SET ColId TO AexprConst DEFAULT AexprConst USING ColId */
46662 : #line 13106 "gram.y"
46663 : {
46664 : CTECycleClause *n = makeNode(CTECycleClause);
46665 :
46666 : n->cycle_col_list = (yyvsp[-8].list);
46667 : n->cycle_mark_column = (yyvsp[-6].str);
46668 : n->cycle_mark_value = (yyvsp[-4].node);
46669 : n->cycle_mark_default = (yyvsp[-2].node);
46670 : n->cycle_path_column = (yyvsp[0].str);
46671 : n->location = (yylsp[-9]);
46672 : (yyval.node) = (Node *) n;
46673 : }
46674 : #line 46675 "gram.c"
46675 66 : break;
46676 :
46677 60 : case 1739: /* opt_cycle_clause: CYCLE columnList SET ColId USING ColId */
46678 : #line 13118 "gram.y"
46679 : {
46680 : CTECycleClause *n = makeNode(CTECycleClause);
46681 :
46682 : n->cycle_col_list = (yyvsp[-4].list);
46683 : n->cycle_mark_column = (yyvsp[-2].str);
46684 : n->cycle_mark_value = makeBoolAConst(true, -1);
46685 : n->cycle_mark_default = makeBoolAConst(false, -1);
46686 : n->cycle_path_column = (yyvsp[0].str);
46687 : n->location = (yylsp[-5]);
46688 : (yyval.node) = (Node *) n;
46689 : }
46690 : #line 46691 "gram.c"
46691 60 : break;
46692 :
46693 4418 : case 1740: /* opt_cycle_clause: %empty */
46694 : #line 13130 "gram.y"
46695 : {
46696 : (yyval.node) = NULL;
46697 : }
46698 : #line 46699 "gram.c"
46699 4418 : break;
46700 :
46701 450 : case 1741: /* opt_with_clause: with_clause */
46702 : #line 13136 "gram.y"
46703 : { (yyval.with) = (yyvsp[0].with); }
46704 : #line 46705 "gram.c"
46705 450 : break;
46706 :
46707 88584 : case 1742: /* opt_with_clause: %empty */
46708 : #line 13137 "gram.y"
46709 : { (yyval.with) = NULL; }
46710 : #line 46711 "gram.c"
46711 88584 : break;
46712 :
46713 132 : case 1743: /* into_clause: INTO OptTempTableName */
46714 : #line 13142 "gram.y"
46715 : {
46716 : (yyval.into) = makeNode(IntoClause);
46717 : (yyval.into)->rel = (yyvsp[0].range);
46718 : (yyval.into)->colNames = NIL;
46719 : (yyval.into)->options = NIL;
46720 : (yyval.into)->onCommit = ONCOMMIT_NOOP;
46721 : (yyval.into)->tableSpaceName = NULL;
46722 : (yyval.into)->viewQuery = NULL;
46723 : (yyval.into)->skipData = false;
46724 : }
46725 : #line 46726 "gram.c"
46726 132 : break;
46727 :
46728 437524 : case 1744: /* into_clause: %empty */
46729 : #line 13153 "gram.y"
46730 : { (yyval.into) = NULL; }
46731 : #line 46732 "gram.c"
46732 437524 : break;
46733 :
46734 0 : case 1745: /* OptTempTableName: TEMPORARY opt_table qualified_name */
46735 : #line 13162 "gram.y"
46736 : {
46737 : (yyval.range) = (yyvsp[0].range);
46738 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46739 : }
46740 : #line 46741 "gram.c"
46741 0 : break;
46742 :
46743 6 : case 1746: /* OptTempTableName: TEMP opt_table qualified_name */
46744 : #line 13167 "gram.y"
46745 : {
46746 : (yyval.range) = (yyvsp[0].range);
46747 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46748 : }
46749 : #line 46750 "gram.c"
46750 6 : break;
46751 :
46752 0 : case 1747: /* OptTempTableName: LOCAL TEMPORARY opt_table qualified_name */
46753 : #line 13172 "gram.y"
46754 : {
46755 : (yyval.range) = (yyvsp[0].range);
46756 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46757 : }
46758 : #line 46759 "gram.c"
46759 0 : break;
46760 :
46761 0 : case 1748: /* OptTempTableName: LOCAL TEMP opt_table qualified_name */
46762 : #line 13177 "gram.y"
46763 : {
46764 : (yyval.range) = (yyvsp[0].range);
46765 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46766 : }
46767 : #line 46768 "gram.c"
46768 0 : break;
46769 :
46770 0 : case 1749: /* OptTempTableName: GLOBAL TEMPORARY opt_table qualified_name */
46771 : #line 13182 "gram.y"
46772 : {
46773 : ereport(WARNING,
46774 : (errmsg("GLOBAL is deprecated in temporary table creation"),
46775 : parser_errposition((yylsp[-3]))));
46776 : (yyval.range) = (yyvsp[0].range);
46777 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46778 : }
46779 : #line 46780 "gram.c"
46780 0 : break;
46781 :
46782 0 : case 1750: /* OptTempTableName: GLOBAL TEMP opt_table qualified_name */
46783 : #line 13190 "gram.y"
46784 : {
46785 : ereport(WARNING,
46786 : (errmsg("GLOBAL is deprecated in temporary table creation"),
46787 : parser_errposition((yylsp[-3]))));
46788 : (yyval.range) = (yyvsp[0].range);
46789 : (yyval.range)->relpersistence = RELPERSISTENCE_TEMP;
46790 : }
46791 : #line 46792 "gram.c"
46792 0 : break;
46793 :
46794 0 : case 1751: /* OptTempTableName: UNLOGGED opt_table qualified_name */
46795 : #line 13198 "gram.y"
46796 : {
46797 : (yyval.range) = (yyvsp[0].range);
46798 : (yyval.range)->relpersistence = RELPERSISTENCE_UNLOGGED;
46799 : }
46800 : #line 46801 "gram.c"
46801 0 : break;
46802 :
46803 30 : case 1752: /* OptTempTableName: TABLE qualified_name */
46804 : #line 13203 "gram.y"
46805 : {
46806 : (yyval.range) = (yyvsp[0].range);
46807 : (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
46808 : }
46809 : #line 46810 "gram.c"
46810 30 : break;
46811 :
46812 96 : case 1753: /* OptTempTableName: qualified_name */
46813 : #line 13208 "gram.y"
46814 : {
46815 : (yyval.range) = (yyvsp[0].range);
46816 : (yyval.range)->relpersistence = RELPERSISTENCE_PERMANENT;
46817 : }
46818 : #line 46819 "gram.c"
46819 96 : break;
46820 :
46821 10676 : case 1756: /* set_quantifier: ALL */
46822 : #line 13219 "gram.y"
46823 : { (yyval.setquantifier) = SET_QUANTIFIER_ALL; }
46824 : #line 46825 "gram.c"
46825 10676 : break;
46826 :
46827 32 : case 1757: /* set_quantifier: DISTINCT */
46828 : #line 13220 "gram.y"
46829 : { (yyval.setquantifier) = SET_QUANTIFIER_DISTINCT; }
46830 : #line 46831 "gram.c"
46831 32 : break;
46832 :
46833 13256 : case 1758: /* set_quantifier: %empty */
46834 : #line 13221 "gram.y"
46835 : { (yyval.setquantifier) = SET_QUANTIFIER_DEFAULT; }
46836 : #line 46837 "gram.c"
46837 13256 : break;
46838 :
46839 3456 : case 1759: /* distinct_clause: DISTINCT */
46840 : #line 13228 "gram.y"
46841 : { (yyval.list) = list_make1(NIL); }
46842 : #line 46843 "gram.c"
46843 3456 : break;
46844 :
46845 246 : case 1760: /* distinct_clause: DISTINCT ON '(' expr_list ')' */
46846 : #line 13229 "gram.y"
46847 : { (yyval.list) = (yyvsp[-1].list); }
46848 : #line 46849 "gram.c"
46849 246 : break;
46850 :
46851 0 : case 1763: /* opt_distinct_clause: distinct_clause */
46852 : #line 13238 "gram.y"
46853 : { (yyval.list) = (yyvsp[0].list); }
46854 : #line 46855 "gram.c"
46855 0 : break;
46856 :
46857 40154 : case 1764: /* opt_distinct_clause: opt_all_clause */
46858 : #line 13239 "gram.y"
46859 : { (yyval.list) = NIL; }
46860 : #line 46861 "gram.c"
46861 40154 : break;
46862 :
46863 7688 : case 1765: /* opt_sort_clause: sort_clause */
46864 : #line 13243 "gram.y"
46865 : { (yyval.list) = (yyvsp[0].list); }
46866 : #line 46867 "gram.c"
46867 7688 : break;
46868 :
46869 367018 : case 1766: /* opt_sort_clause: %empty */
46870 : #line 13244 "gram.y"
46871 : { (yyval.list) = NIL; }
46872 : #line 46873 "gram.c"
46873 367018 : break;
46874 :
46875 80952 : case 1767: /* sort_clause: ORDER BY sortby_list */
46876 : #line 13248 "gram.y"
46877 : { (yyval.list) = (yyvsp[0].list); }
46878 : #line 46879 "gram.c"
46879 80952 : break;
46880 :
46881 80970 : case 1768: /* sortby_list: sortby */
46882 : #line 13252 "gram.y"
46883 : { (yyval.list) = list_make1((yyvsp[0].sortby)); }
46884 : #line 46885 "gram.c"
46885 80970 : break;
46886 :
46887 29960 : case 1769: /* sortby_list: sortby_list ',' sortby */
46888 : #line 13253 "gram.y"
46889 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].sortby)); }
46890 : #line 46891 "gram.c"
46891 29960 : break;
46892 :
46893 220 : case 1770: /* sortby: a_expr USING qual_all_Op opt_nulls_order */
46894 : #line 13257 "gram.y"
46895 : {
46896 : (yyval.sortby) = makeNode(SortBy);
46897 : (yyval.sortby)->node = (yyvsp[-3].node);
46898 : (yyval.sortby)->sortby_dir = SORTBY_USING;
46899 : (yyval.sortby)->sortby_nulls = (yyvsp[0].ival);
46900 : (yyval.sortby)->useOp = (yyvsp[-1].list);
46901 : (yyval.sortby)->location = (yylsp[-1]);
46902 : }
46903 : #line 46904 "gram.c"
46904 220 : break;
46905 :
46906 110710 : case 1771: /* sortby: a_expr opt_asc_desc opt_nulls_order */
46907 : #line 13266 "gram.y"
46908 : {
46909 : (yyval.sortby) = makeNode(SortBy);
46910 : (yyval.sortby)->node = (yyvsp[-2].node);
46911 : (yyval.sortby)->sortby_dir = (yyvsp[-1].ival);
46912 : (yyval.sortby)->sortby_nulls = (yyvsp[0].ival);
46913 : (yyval.sortby)->useOp = NIL;
46914 : (yyval.sortby)->location = -1; /* no operator */
46915 : }
46916 : #line 46917 "gram.c"
46917 110710 : break;
46918 :
46919 172 : case 1772: /* select_limit: limit_clause offset_clause */
46920 : #line 13279 "gram.y"
46921 : {
46922 : (yyval.selectlimit) = (yyvsp[-1].selectlimit);
46923 : ((yyval.selectlimit))->limitOffset = (yyvsp[0].node);
46924 : ((yyval.selectlimit))->offsetLoc = (yylsp[0]);
46925 : }
46926 : #line 46927 "gram.c"
46927 172 : break;
46928 :
46929 226 : case 1773: /* select_limit: offset_clause limit_clause */
46930 : #line 13285 "gram.y"
46931 : {
46932 : (yyval.selectlimit) = (yyvsp[0].selectlimit);
46933 : ((yyval.selectlimit))->limitOffset = (yyvsp[-1].node);
46934 : ((yyval.selectlimit))->offsetLoc = (yylsp[-1]);
46935 : }
46936 : #line 46937 "gram.c"
46937 226 : break;
46938 :
46939 4274 : case 1774: /* select_limit: limit_clause */
46940 : #line 13291 "gram.y"
46941 : {
46942 : (yyval.selectlimit) = (yyvsp[0].selectlimit);
46943 : }
46944 : #line 46945 "gram.c"
46945 4274 : break;
46946 :
46947 438 : case 1775: /* select_limit: offset_clause */
46948 : #line 13295 "gram.y"
46949 : {
46950 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
46951 :
46952 : n->limitOffset = (yyvsp[0].node);
46953 : n->limitCount = NULL;
46954 : n->limitOption = LIMIT_OPTION_COUNT;
46955 : n->offsetLoc = (yylsp[0]);
46956 : n->countLoc = -1;
46957 : n->optionLoc = -1;
46958 : (yyval.selectlimit) = n;
46959 : }
46960 : #line 46961 "gram.c"
46961 438 : break;
46962 :
46963 190 : case 1776: /* opt_select_limit: select_limit */
46964 : #line 13309 "gram.y"
46965 : { (yyval.selectlimit) = (yyvsp[0].selectlimit); }
46966 : #line 46967 "gram.c"
46967 190 : break;
46968 :
46969 44778 : case 1777: /* opt_select_limit: %empty */
46970 : #line 13310 "gram.y"
46971 : { (yyval.selectlimit) = NULL; }
46972 : #line 46973 "gram.c"
46973 44778 : break;
46974 :
46975 4570 : case 1778: /* limit_clause: LIMIT select_limit_value */
46976 : #line 13315 "gram.y"
46977 : {
46978 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
46979 :
46980 : n->limitOffset = NULL;
46981 : n->limitCount = (yyvsp[0].node);
46982 : n->limitOption = LIMIT_OPTION_COUNT;
46983 : n->offsetLoc = -1;
46984 : n->countLoc = (yylsp[-1]);
46985 : n->optionLoc = -1;
46986 : (yyval.selectlimit) = n;
46987 : }
46988 : #line 46989 "gram.c"
46989 4570 : break;
46990 :
46991 0 : case 1779: /* limit_clause: LIMIT select_limit_value ',' select_offset_value */
46992 : #line 13327 "gram.y"
46993 : {
46994 : /* Disabled because it was too confusing, bjm 2002-02-18 */
46995 : ereport(ERROR,
46996 : (errcode(ERRCODE_SYNTAX_ERROR),
46997 : errmsg("LIMIT #,# syntax is not supported"),
46998 : errhint("Use separate LIMIT and OFFSET clauses."),
46999 : parser_errposition((yylsp[-3]))));
47000 : }
47001 : #line 47002 "gram.c"
47002 : break;
47003 :
47004 24 : case 1780: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows ONLY */
47005 : #line 13343 "gram.y"
47006 : {
47007 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47008 :
47009 : n->limitOffset = NULL;
47010 : n->limitCount = (yyvsp[-2].node);
47011 : n->limitOption = LIMIT_OPTION_COUNT;
47012 : n->offsetLoc = -1;
47013 : n->countLoc = (yylsp[-4]);
47014 : n->optionLoc = -1;
47015 : (yyval.selectlimit) = n;
47016 : }
47017 : #line 47018 "gram.c"
47018 24 : break;
47019 :
47020 72 : case 1781: /* limit_clause: FETCH first_or_next select_fetch_first_value row_or_rows WITH TIES */
47021 : #line 13355 "gram.y"
47022 : {
47023 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47024 :
47025 : n->limitOffset = NULL;
47026 : n->limitCount = (yyvsp[-3].node);
47027 : n->limitOption = LIMIT_OPTION_WITH_TIES;
47028 : n->offsetLoc = -1;
47029 : n->countLoc = (yylsp[-5]);
47030 : n->optionLoc = (yylsp[-1]);
47031 : (yyval.selectlimit) = n;
47032 : }
47033 : #line 47034 "gram.c"
47034 72 : break;
47035 :
47036 0 : case 1782: /* limit_clause: FETCH first_or_next row_or_rows ONLY */
47037 : #line 13367 "gram.y"
47038 : {
47039 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47040 :
47041 : n->limitOffset = NULL;
47042 : n->limitCount = makeIntConst(1, -1);
47043 : n->limitOption = LIMIT_OPTION_COUNT;
47044 : n->offsetLoc = -1;
47045 : n->countLoc = (yylsp[-3]);
47046 : n->optionLoc = -1;
47047 : (yyval.selectlimit) = n;
47048 : }
47049 : #line 47050 "gram.c"
47050 0 : break;
47051 :
47052 6 : case 1783: /* limit_clause: FETCH first_or_next row_or_rows WITH TIES */
47053 : #line 13379 "gram.y"
47054 : {
47055 : SelectLimit *n = (SelectLimit *) palloc(sizeof(SelectLimit));
47056 :
47057 : n->limitOffset = NULL;
47058 : n->limitCount = makeIntConst(1, -1);
47059 : n->limitOption = LIMIT_OPTION_WITH_TIES;
47060 : n->offsetLoc = -1;
47061 : n->countLoc = (yylsp[-4]);
47062 : n->optionLoc = (yylsp[-1]);
47063 : (yyval.selectlimit) = n;
47064 : }
47065 : #line 47066 "gram.c"
47066 6 : break;
47067 :
47068 836 : case 1784: /* offset_clause: OFFSET select_offset_value */
47069 : #line 13394 "gram.y"
47070 : { (yyval.node) = (yyvsp[0].node); }
47071 : #line 47072 "gram.c"
47072 836 : break;
47073 :
47074 0 : case 1785: /* offset_clause: OFFSET select_fetch_first_value row_or_rows */
47075 : #line 13397 "gram.y"
47076 : { (yyval.node) = (yyvsp[-1].node); }
47077 : #line 47078 "gram.c"
47078 0 : break;
47079 :
47080 4566 : case 1786: /* select_limit_value: a_expr */
47081 : #line 13401 "gram.y"
47082 : { (yyval.node) = (yyvsp[0].node); }
47083 : #line 47084 "gram.c"
47084 4566 : break;
47085 :
47086 4 : case 1787: /* select_limit_value: ALL */
47087 : #line 13403 "gram.y"
47088 : {
47089 : /* LIMIT ALL is represented as a NULL constant */
47090 : (yyval.node) = makeNullAConst((yylsp[0]));
47091 : }
47092 : #line 47093 "gram.c"
47093 4 : break;
47094 :
47095 836 : case 1788: /* select_offset_value: a_expr */
47096 : #line 13410 "gram.y"
47097 : { (yyval.node) = (yyvsp[0].node); }
47098 : #line 47099 "gram.c"
47099 836 : break;
47100 :
47101 96 : case 1789: /* select_fetch_first_value: c_expr */
47102 : #line 13430 "gram.y"
47103 : { (yyval.node) = (yyvsp[0].node); }
47104 : #line 47105 "gram.c"
47105 96 : break;
47106 :
47107 0 : case 1790: /* select_fetch_first_value: '+' I_or_F_const */
47108 : #line 13432 "gram.y"
47109 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
47110 : #line 47111 "gram.c"
47111 0 : break;
47112 :
47113 0 : case 1791: /* select_fetch_first_value: '-' I_or_F_const */
47114 : #line 13434 "gram.y"
47115 : { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
47116 : #line 47117 "gram.c"
47117 0 : break;
47118 :
47119 0 : case 1792: /* I_or_F_const: Iconst */
47120 : #line 13438 "gram.y"
47121 : { (yyval.node) = makeIntConst((yyvsp[0].ival),(yylsp[0])); }
47122 : #line 47123 "gram.c"
47123 0 : break;
47124 :
47125 0 : case 1793: /* I_or_F_const: FCONST */
47126 : #line 13439 "gram.y"
47127 : { (yyval.node) = makeFloatConst((yyvsp[0].str),(yylsp[0])); }
47128 : #line 47129 "gram.c"
47129 0 : break;
47130 :
47131 36 : case 1794: /* row_or_rows: ROW */
47132 : #line 13443 "gram.y"
47133 : { (yyval.ival) = 0; }
47134 : #line 47135 "gram.c"
47135 36 : break;
47136 :
47137 66 : case 1795: /* row_or_rows: ROWS */
47138 : #line 13444 "gram.y"
47139 : { (yyval.ival) = 0; }
47140 : #line 47141 "gram.c"
47141 66 : break;
47142 :
47143 102 : case 1796: /* first_or_next: FIRST_P */
47144 : #line 13447 "gram.y"
47145 : { (yyval.ival) = 0; }
47146 : #line 47147 "gram.c"
47147 102 : break;
47148 :
47149 0 : case 1797: /* first_or_next: NEXT */
47150 : #line 13448 "gram.y"
47151 : { (yyval.ival) = 0; }
47152 : #line 47153 "gram.c"
47153 0 : break;
47154 :
47155 4630 : case 1798: /* group_clause: GROUP_P BY set_quantifier group_by_list */
47156 : #line 13474 "gram.y"
47157 : {
47158 : GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause));
47159 :
47160 : n->distinct = (yyvsp[-1].setquantifier) == SET_QUANTIFIER_DISTINCT;
47161 : n->list = (yyvsp[0].list);
47162 : (yyval.groupclause) = n;
47163 : }
47164 : #line 47165 "gram.c"
47165 4630 : break;
47166 :
47167 473150 : case 1799: /* group_clause: %empty */
47168 : #line 13482 "gram.y"
47169 : {
47170 : GroupClause *n = (GroupClause *) palloc(sizeof(GroupClause));
47171 :
47172 : n->distinct = false;
47173 : n->list = NIL;
47174 : (yyval.groupclause) = n;
47175 : }
47176 : #line 47177 "gram.c"
47177 473148 : break;
47178 :
47179 5228 : case 1800: /* group_by_list: group_by_item */
47180 : #line 13492 "gram.y"
47181 : { (yyval.list) = list_make1((yyvsp[0].node)); }
47182 : #line 47183 "gram.c"
47183 5228 : break;
47184 :
47185 3008 : case 1801: /* group_by_list: group_by_list ',' group_by_item */
47186 : #line 13493 "gram.y"
47187 : { (yyval.list) = lappend((yyvsp[-2].list),(yyvsp[0].node)); }
47188 : #line 47189 "gram.c"
47189 3008 : break;
47190 :
47191 6946 : case 1802: /* group_by_item: a_expr */
47192 : #line 13497 "gram.y"
47193 : { (yyval.node) = (yyvsp[0].node); }
47194 : #line 47195 "gram.c"
47195 6946 : break;
47196 :
47197 222 : case 1803: /* group_by_item: empty_grouping_set */
47198 : #line 13498 "gram.y"
47199 : { (yyval.node) = (yyvsp[0].node); }
47200 : #line 47201 "gram.c"
47201 222 : break;
47202 :
47203 184 : case 1804: /* group_by_item: cube_clause */
47204 : #line 13499 "gram.y"
47205 : { (yyval.node) = (yyvsp[0].node); }
47206 : #line 47207 "gram.c"
47207 184 : break;
47208 :
47209 286 : case 1805: /* group_by_item: rollup_clause */
47210 : #line 13500 "gram.y"
47211 : { (yyval.node) = (yyvsp[0].node); }
47212 : #line 47213 "gram.c"
47213 286 : break;
47214 :
47215 598 : case 1806: /* group_by_item: grouping_sets_clause */
47216 : #line 13501 "gram.y"
47217 : { (yyval.node) = (yyvsp[0].node); }
47218 : #line 47219 "gram.c"
47219 598 : break;
47220 :
47221 222 : case 1807: /* empty_grouping_set: '(' ')' */
47222 : #line 13506 "gram.y"
47223 : {
47224 : (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_EMPTY, NIL, (yylsp[-1]));
47225 : }
47226 : #line 47227 "gram.c"
47227 222 : break;
47228 :
47229 286 : case 1808: /* rollup_clause: ROLLUP '(' expr_list ')' */
47230 : #line 13519 "gram.y"
47231 : {
47232 : (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_ROLLUP, (yyvsp[-1].list), (yylsp[-3]));
47233 : }
47234 : #line 47235 "gram.c"
47235 286 : break;
47236 :
47237 184 : case 1809: /* cube_clause: CUBE '(' expr_list ')' */
47238 : #line 13526 "gram.y"
47239 : {
47240 : (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_CUBE, (yyvsp[-1].list), (yylsp[-3]));
47241 : }
47242 : #line 47243 "gram.c"
47243 184 : break;
47244 :
47245 598 : case 1810: /* grouping_sets_clause: GROUPING SETS '(' group_by_list ')' */
47246 : #line 13533 "gram.y"
47247 : {
47248 : (yyval.node) = (Node *) makeGroupingSet(GROUPING_SET_SETS, (yyvsp[-1].list), (yylsp[-4]));
47249 : }
47250 : #line 47251 "gram.c"
47251 598 : break;
47252 :
47253 686 : case 1811: /* having_clause: HAVING a_expr */
47254 : #line 13539 "gram.y"
47255 : { (yyval.node) = (yyvsp[0].node); }
47256 : #line 47257 "gram.c"
47257 686 : break;
47258 :
47259 477094 : case 1812: /* having_clause: %empty */
47260 : #line 13540 "gram.y"
47261 : { (yyval.node) = NULL; }
47262 : #line 47263 "gram.c"
47263 477094 : break;
47264 :
47265 5154 : case 1813: /* for_locking_clause: for_locking_items */
47266 : #line 13544 "gram.y"
47267 : { (yyval.list) = (yyvsp[0].list); }
47268 : #line 47269 "gram.c"
47269 5154 : break;
47270 :
47271 0 : case 1814: /* for_locking_clause: FOR READ ONLY */
47272 : #line 13545 "gram.y"
47273 : { (yyval.list) = NIL; }
47274 : #line 47275 "gram.c"
47275 0 : break;
47276 :
47277 340 : case 1815: /* opt_for_locking_clause: for_locking_clause */
47278 : #line 13549 "gram.y"
47279 : { (yyval.list) = (yyvsp[0].list); }
47280 : #line 47281 "gram.c"
47281 340 : break;
47282 :
47283 44734 : case 1816: /* opt_for_locking_clause: %empty */
47284 : #line 13550 "gram.y"
47285 : { (yyval.list) = NIL; }
47286 : #line 47287 "gram.c"
47287 44734 : break;
47288 :
47289 5154 : case 1817: /* for_locking_items: for_locking_item */
47290 : #line 13554 "gram.y"
47291 : { (yyval.list) = list_make1((yyvsp[0].node)); }
47292 : #line 47293 "gram.c"
47293 5154 : break;
47294 :
47295 102 : case 1818: /* for_locking_items: for_locking_items for_locking_item */
47296 : #line 13555 "gram.y"
47297 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
47298 : #line 47299 "gram.c"
47299 102 : break;
47300 :
47301 5256 : case 1819: /* for_locking_item: for_locking_strength locked_rels_list opt_nowait_or_skip */
47302 : #line 13560 "gram.y"
47303 : {
47304 : LockingClause *n = makeNode(LockingClause);
47305 :
47306 : n->lockedRels = (yyvsp[-1].list);
47307 : n->strength = (yyvsp[-2].ival);
47308 : n->waitPolicy = (yyvsp[0].ival);
47309 : (yyval.node) = (Node *) n;
47310 : }
47311 : #line 47312 "gram.c"
47312 5256 : break;
47313 :
47314 1526 : case 1820: /* for_locking_strength: FOR UPDATE */
47315 : #line 13571 "gram.y"
47316 : { (yyval.ival) = LCS_FORUPDATE; }
47317 : #line 47318 "gram.c"
47318 1526 : break;
47319 :
47320 76 : case 1821: /* for_locking_strength: FOR NO KEY UPDATE */
47321 : #line 13572 "gram.y"
47322 : { (yyval.ival) = LCS_FORNOKEYUPDATE; }
47323 : #line 47324 "gram.c"
47324 76 : break;
47325 :
47326 214 : case 1822: /* for_locking_strength: FOR SHARE */
47327 : #line 13573 "gram.y"
47328 : { (yyval.ival) = LCS_FORSHARE; }
47329 : #line 47330 "gram.c"
47330 214 : break;
47331 :
47332 3440 : case 1823: /* for_locking_strength: FOR KEY SHARE */
47333 : #line 13574 "gram.y"
47334 : { (yyval.ival) = LCS_FORKEYSHARE; }
47335 : #line 47336 "gram.c"
47336 3440 : break;
47337 :
47338 3466 : case 1824: /* locked_rels_list: OF qualified_name_list */
47339 : #line 13578 "gram.y"
47340 : { (yyval.list) = (yyvsp[0].list); }
47341 : #line 47342 "gram.c"
47342 3466 : break;
47343 :
47344 1790 : case 1825: /* locked_rels_list: %empty */
47345 : #line 13579 "gram.y"
47346 : { (yyval.list) = NIL; }
47347 : #line 47348 "gram.c"
47348 1790 : break;
47349 :
47350 58728 : case 1826: /* values_clause: VALUES '(' expr_list ')' */
47351 : #line 13590 "gram.y"
47352 : {
47353 : SelectStmt *n = makeNode(SelectStmt);
47354 :
47355 : n->stmt_location = (yylsp[-3]);
47356 : n->valuesLists = list_make1((yyvsp[-1].list));
47357 : (yyval.node) = (Node *) n;
47358 : }
47359 : #line 47360 "gram.c"
47360 58728 : break;
47361 :
47362 25200 : case 1827: /* values_clause: values_clause ',' '(' expr_list ')' */
47363 : #line 13598 "gram.y"
47364 : {
47365 : SelectStmt *n = (SelectStmt *) (yyvsp[-4].node);
47366 :
47367 : n->valuesLists = lappend(n->valuesLists, (yyvsp[-1].list));
47368 : (yyval.node) = (Node *) n;
47369 : }
47370 : #line 47371 "gram.c"
47371 25200 : break;
47372 :
47373 319438 : case 1828: /* from_clause: FROM from_list */
47374 : #line 13616 "gram.y"
47375 : { (yyval.list) = (yyvsp[0].list); }
47376 : #line 47377 "gram.c"
47377 319438 : break;
47378 :
47379 172336 : case 1829: /* from_clause: %empty */
47380 : #line 13617 "gram.y"
47381 : { (yyval.list) = NIL; }
47382 : #line 47383 "gram.c"
47383 172336 : break;
47384 :
47385 320218 : case 1830: /* from_list: table_ref */
47386 : #line 13621 "gram.y"
47387 : { (yyval.list) = list_make1((yyvsp[0].node)); }
47388 : #line 47389 "gram.c"
47389 320218 : break;
47390 :
47391 60956 : case 1831: /* from_list: from_list ',' table_ref */
47392 : #line 13622 "gram.y"
47393 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
47394 : #line 47395 "gram.c"
47395 60956 : break;
47396 :
47397 403944 : case 1832: /* table_ref: relation_expr opt_alias_clause */
47398 : #line 13629 "gram.y"
47399 : {
47400 : (yyvsp[-1].range)->alias = (yyvsp[0].alias);
47401 : (yyval.node) = (Node *) (yyvsp[-1].range);
47402 : }
47403 : #line 47404 "gram.c"
47404 403944 : break;
47405 :
47406 264 : case 1833: /* table_ref: relation_expr opt_alias_clause tablesample_clause */
47407 : #line 13634 "gram.y"
47408 : {
47409 : RangeTableSample *n = (RangeTableSample *) (yyvsp[0].node);
47410 :
47411 : (yyvsp[-2].range)->alias = (yyvsp[-1].alias);
47412 : /* relation_expr goes inside the RangeTableSample node */
47413 : n->relation = (Node *) (yyvsp[-2].range);
47414 : (yyval.node) = (Node *) n;
47415 : }
47416 : #line 47417 "gram.c"
47417 264 : break;
47418 :
47419 47046 : case 1834: /* table_ref: func_table func_alias_clause */
47420 : #line 13643 "gram.y"
47421 : {
47422 : RangeFunction *n = (RangeFunction *) (yyvsp[-1].node);
47423 :
47424 : n->alias = linitial((yyvsp[0].list));
47425 : n->coldeflist = lsecond((yyvsp[0].list));
47426 : (yyval.node) = (Node *) n;
47427 : }
47428 : #line 47429 "gram.c"
47429 47046 : break;
47430 :
47431 1146 : case 1835: /* table_ref: LATERAL_P func_table func_alias_clause */
47432 : #line 13651 "gram.y"
47433 : {
47434 : RangeFunction *n = (RangeFunction *) (yyvsp[-1].node);
47435 :
47436 : n->lateral = true;
47437 : n->alias = linitial((yyvsp[0].list));
47438 : n->coldeflist = lsecond((yyvsp[0].list));
47439 : (yyval.node) = (Node *) n;
47440 : }
47441 : #line 47442 "gram.c"
47442 1146 : break;
47443 :
47444 82 : case 1836: /* table_ref: xmltable opt_alias_clause */
47445 : #line 13660 "gram.y"
47446 : {
47447 : RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node);
47448 :
47449 : n->alias = (yyvsp[0].alias);
47450 : (yyval.node) = (Node *) n;
47451 : }
47452 : #line 47453 "gram.c"
47453 82 : break;
47454 :
47455 142 : case 1837: /* table_ref: LATERAL_P xmltable opt_alias_clause */
47456 : #line 13667 "gram.y"
47457 : {
47458 : RangeTableFunc *n = (RangeTableFunc *) (yyvsp[-1].node);
47459 :
47460 : n->lateral = true;
47461 : n->alias = (yyvsp[0].alias);
47462 : (yyval.node) = (Node *) n;
47463 : }
47464 : #line 47465 "gram.c"
47465 142 : break;
47466 :
47467 13842 : case 1838: /* table_ref: select_with_parens opt_alias_clause */
47468 : #line 13675 "gram.y"
47469 : {
47470 : RangeSubselect *n = makeNode(RangeSubselect);
47471 :
47472 : n->lateral = false;
47473 : n->subquery = (yyvsp[-1].node);
47474 : n->alias = (yyvsp[0].alias);
47475 : (yyval.node) = (Node *) n;
47476 : }
47477 : #line 47478 "gram.c"
47478 13842 : break;
47479 :
47480 1828 : case 1839: /* table_ref: LATERAL_P select_with_parens opt_alias_clause */
47481 : #line 13684 "gram.y"
47482 : {
47483 : RangeSubselect *n = makeNode(RangeSubselect);
47484 :
47485 : n->lateral = true;
47486 : n->subquery = (yyvsp[-1].node);
47487 : n->alias = (yyvsp[0].alias);
47488 : (yyval.node) = (Node *) n;
47489 : }
47490 : #line 47491 "gram.c"
47491 1828 : break;
47492 :
47493 85346 : case 1840: /* table_ref: joined_table */
47494 : #line 13693 "gram.y"
47495 : {
47496 : (yyval.node) = (Node *) (yyvsp[0].jexpr);
47497 : }
47498 : #line 47499 "gram.c"
47499 85346 : break;
47500 :
47501 174 : case 1841: /* table_ref: '(' joined_table ')' alias_clause */
47502 : #line 13697 "gram.y"
47503 : {
47504 : (yyvsp[-2].jexpr)->alias = (yyvsp[0].alias);
47505 : (yyval.node) = (Node *) (yyvsp[-2].jexpr);
47506 : }
47507 : #line 47508 "gram.c"
47508 174 : break;
47509 :
47510 524 : case 1842: /* table_ref: json_table opt_alias_clause */
47511 : #line 13702 "gram.y"
47512 : {
47513 : JsonTable *jt = castNode(JsonTable, (yyvsp[-1].node));
47514 :
47515 : jt->alias = (yyvsp[0].alias);
47516 : (yyval.node) = (Node *) jt;
47517 : }
47518 : #line 47519 "gram.c"
47519 524 : break;
47520 :
47521 0 : case 1843: /* table_ref: LATERAL_P json_table opt_alias_clause */
47522 : #line 13709 "gram.y"
47523 : {
47524 : JsonTable *jt = castNode(JsonTable, (yyvsp[-1].node));
47525 :
47526 : jt->alias = (yyvsp[0].alias);
47527 : jt->lateral = true;
47528 : (yyval.node) = (Node *) jt;
47529 : }
47530 : #line 47531 "gram.c"
47531 0 : break;
47532 :
47533 3926 : case 1844: /* joined_table: '(' joined_table ')' */
47534 : #line 13738 "gram.y"
47535 : {
47536 : (yyval.jexpr) = (yyvsp[-1].jexpr);
47537 : }
47538 : #line 47539 "gram.c"
47539 3926 : break;
47540 :
47541 504 : case 1845: /* joined_table: table_ref CROSS JOIN table_ref */
47542 : #line 13742 "gram.y"
47543 : {
47544 : /* CROSS JOIN is same as unqualified inner join */
47545 : JoinExpr *n = makeNode(JoinExpr);
47546 :
47547 : n->jointype = JOIN_INNER;
47548 : n->isNatural = false;
47549 : n->larg = (yyvsp[-3].node);
47550 : n->rarg = (yyvsp[0].node);
47551 : n->usingClause = NIL;
47552 : n->join_using_alias = NULL;
47553 : n->quals = NULL;
47554 : (yyval.jexpr) = n;
47555 : }
47556 : #line 47557 "gram.c"
47557 504 : break;
47558 :
47559 47866 : case 1846: /* joined_table: table_ref join_type JOIN table_ref join_qual */
47560 : #line 13756 "gram.y"
47561 : {
47562 : JoinExpr *n = makeNode(JoinExpr);
47563 :
47564 : n->jointype = (yyvsp[-3].jtype);
47565 : n->isNatural = false;
47566 : n->larg = (yyvsp[-4].node);
47567 : n->rarg = (yyvsp[-1].node);
47568 : if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List))
47569 : {
47570 : /* USING clause */
47571 : n->usingClause = linitial_node(List, castNode(List, (yyvsp[0].node)));
47572 : n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[0].node)));
47573 : }
47574 : else
47575 : {
47576 : /* ON clause */
47577 : n->quals = (yyvsp[0].node);
47578 : }
47579 : (yyval.jexpr) = n;
47580 : }
47581 : #line 47582 "gram.c"
47582 47866 : break;
47583 :
47584 36892 : case 1847: /* joined_table: table_ref JOIN table_ref join_qual */
47585 : #line 13777 "gram.y"
47586 : {
47587 : /* letting join_type reduce to empty doesn't work */
47588 : JoinExpr *n = makeNode(JoinExpr);
47589 :
47590 : n->jointype = JOIN_INNER;
47591 : n->isNatural = false;
47592 : n->larg = (yyvsp[-3].node);
47593 : n->rarg = (yyvsp[-1].node);
47594 : if ((yyvsp[0].node) != NULL && IsA((yyvsp[0].node), List))
47595 : {
47596 : /* USING clause */
47597 : n->usingClause = linitial_node(List, castNode(List, (yyvsp[0].node)));
47598 : n->join_using_alias = lsecond_node(Alias, castNode(List, (yyvsp[0].node)));
47599 : }
47600 : else
47601 : {
47602 : /* ON clause */
47603 : n->quals = (yyvsp[0].node);
47604 : }
47605 : (yyval.jexpr) = n;
47606 : }
47607 : #line 47608 "gram.c"
47608 36892 : break;
47609 :
47610 78 : case 1848: /* joined_table: table_ref NATURAL join_type JOIN table_ref */
47611 : #line 13799 "gram.y"
47612 : {
47613 : JoinExpr *n = makeNode(JoinExpr);
47614 :
47615 : n->jointype = (yyvsp[-2].jtype);
47616 : n->isNatural = true;
47617 : n->larg = (yyvsp[-4].node);
47618 : n->rarg = (yyvsp[0].node);
47619 : n->usingClause = NIL; /* figure out which columns later... */
47620 : n->join_using_alias = NULL;
47621 : n->quals = NULL; /* fill later */
47622 : (yyval.jexpr) = n;
47623 : }
47624 : #line 47625 "gram.c"
47625 78 : break;
47626 :
47627 180 : case 1849: /* joined_table: table_ref NATURAL JOIN table_ref */
47628 : #line 13812 "gram.y"
47629 : {
47630 : /* letting join_type reduce to empty doesn't work */
47631 : JoinExpr *n = makeNode(JoinExpr);
47632 :
47633 : n->jointype = JOIN_INNER;
47634 : n->isNatural = true;
47635 : n->larg = (yyvsp[-3].node);
47636 : n->rarg = (yyvsp[0].node);
47637 : n->usingClause = NIL; /* figure out which columns later... */
47638 : n->join_using_alias = NULL;
47639 : n->quals = NULL; /* fill later */
47640 : (yyval.jexpr) = n;
47641 : }
47642 : #line 47643 "gram.c"
47643 180 : break;
47644 :
47645 7232 : case 1850: /* alias_clause: AS ColId '(' name_list ')' */
47646 : #line 13829 "gram.y"
47647 : {
47648 : (yyval.alias) = makeNode(Alias);
47649 : (yyval.alias)->aliasname = (yyvsp[-3].str);
47650 : (yyval.alias)->colnames = (yyvsp[-1].list);
47651 : }
47652 : #line 47653 "gram.c"
47653 7232 : break;
47654 :
47655 10804 : case 1851: /* alias_clause: AS ColId */
47656 : #line 13835 "gram.y"
47657 : {
47658 : (yyval.alias) = makeNode(Alias);
47659 : (yyval.alias)->aliasname = (yyvsp[0].str);
47660 : }
47661 : #line 47662 "gram.c"
47662 10804 : break;
47663 :
47664 5782 : case 1852: /* alias_clause: ColId '(' name_list ')' */
47665 : #line 13840 "gram.y"
47666 : {
47667 : (yyval.alias) = makeNode(Alias);
47668 : (yyval.alias)->aliasname = (yyvsp[-3].str);
47669 : (yyval.alias)->colnames = (yyvsp[-1].list);
47670 : }
47671 : #line 47672 "gram.c"
47672 5782 : break;
47673 :
47674 265708 : case 1853: /* alias_clause: ColId */
47675 : #line 13846 "gram.y"
47676 : {
47677 : (yyval.alias) = makeNode(Alias);
47678 : (yyval.alias)->aliasname = (yyvsp[0].str);
47679 : }
47680 : #line 47681 "gram.c"
47681 265708 : break;
47682 :
47683 260380 : case 1854: /* opt_alias_clause: alias_clause */
47684 : #line 13852 "gram.y"
47685 : { (yyval.alias) = (yyvsp[0].alias); }
47686 : #line 47687 "gram.c"
47687 260380 : break;
47688 :
47689 160246 : case 1855: /* opt_alias_clause: %empty */
47690 : #line 13853 "gram.y"
47691 : { (yyval.alias) = NULL; }
47692 : #line 47693 "gram.c"
47693 160246 : break;
47694 :
47695 84 : case 1856: /* opt_alias_clause_for_join_using: AS ColId */
47696 : #line 13864 "gram.y"
47697 : {
47698 : (yyval.alias) = makeNode(Alias);
47699 : (yyval.alias)->aliasname = (yyvsp[0].str);
47700 : /* the column name list will be inserted later */
47701 : }
47702 : #line 47703 "gram.c"
47703 84 : break;
47704 :
47705 1166 : case 1857: /* opt_alias_clause_for_join_using: %empty */
47706 : #line 13869 "gram.y"
47707 : { (yyval.alias) = NULL; }
47708 : #line 47709 "gram.c"
47709 1166 : break;
47710 :
47711 28972 : case 1858: /* func_alias_clause: alias_clause */
47712 : #line 13878 "gram.y"
47713 : {
47714 : (yyval.list) = list_make2((yyvsp[0].alias), NIL);
47715 : }
47716 : #line 47717 "gram.c"
47717 28972 : break;
47718 :
47719 114 : case 1859: /* func_alias_clause: AS '(' TableFuncElementList ')' */
47720 : #line 13882 "gram.y"
47721 : {
47722 : (yyval.list) = list_make2(NULL, (yyvsp[-1].list));
47723 : }
47724 : #line 47725 "gram.c"
47725 114 : break;
47726 :
47727 594 : case 1860: /* func_alias_clause: AS ColId '(' TableFuncElementList ')' */
47728 : #line 13886 "gram.y"
47729 : {
47730 : Alias *a = makeNode(Alias);
47731 :
47732 : a->aliasname = (yyvsp[-3].str);
47733 : (yyval.list) = list_make2(a, (yyvsp[-1].list));
47734 : }
47735 : #line 47736 "gram.c"
47736 594 : break;
47737 :
47738 50 : case 1861: /* func_alias_clause: ColId '(' TableFuncElementList ')' */
47739 : #line 13893 "gram.y"
47740 : {
47741 : Alias *a = makeNode(Alias);
47742 :
47743 : a->aliasname = (yyvsp[-3].str);
47744 : (yyval.list) = list_make2(a, (yyvsp[-1].list));
47745 : }
47746 : #line 47747 "gram.c"
47747 50 : break;
47748 :
47749 18462 : case 1862: /* func_alias_clause: %empty */
47750 : #line 13900 "gram.y"
47751 : {
47752 : (yyval.list) = list_make2(NULL, NIL);
47753 : }
47754 : #line 47755 "gram.c"
47755 18462 : break;
47756 :
47757 1042 : case 1863: /* join_type: FULL opt_outer */
47758 : #line 13905 "gram.y"
47759 : { (yyval.jtype) = JOIN_FULL; }
47760 : #line 47761 "gram.c"
47761 1042 : break;
47762 :
47763 42622 : case 1864: /* join_type: LEFT opt_outer */
47764 : #line 13906 "gram.y"
47765 : { (yyval.jtype) = JOIN_LEFT; }
47766 : #line 47767 "gram.c"
47767 42622 : break;
47768 :
47769 360 : case 1865: /* join_type: RIGHT opt_outer */
47770 : #line 13907 "gram.y"
47771 : { (yyval.jtype) = JOIN_RIGHT; }
47772 : #line 47773 "gram.c"
47773 360 : break;
47774 :
47775 3920 : case 1866: /* join_type: INNER_P */
47776 : #line 13908 "gram.y"
47777 : { (yyval.jtype) = JOIN_INNER; }
47778 : #line 47779 "gram.c"
47779 3920 : break;
47780 :
47781 1250 : case 1869: /* join_qual: USING '(' name_list ')' opt_alias_clause_for_join_using */
47782 : #line 13929 "gram.y"
47783 : {
47784 : (yyval.node) = (Node *) list_make2((yyvsp[-2].list), (yyvsp[0].alias));
47785 : }
47786 : #line 47787 "gram.c"
47787 1250 : break;
47788 :
47789 83508 : case 1870: /* join_qual: ON a_expr */
47790 : #line 13933 "gram.y"
47791 : {
47792 : (yyval.node) = (yyvsp[0].node);
47793 : }
47794 : #line 47795 "gram.c"
47795 83508 : break;
47796 :
47797 491174 : case 1871: /* relation_expr: qualified_name */
47798 : #line 13941 "gram.y"
47799 : {
47800 : /* inheritance query, implicitly */
47801 : (yyval.range) = (yyvsp[0].range);
47802 : (yyval.range)->inh = true;
47803 : (yyval.range)->alias = NULL;
47804 : }
47805 : #line 47806 "gram.c"
47806 491174 : break;
47807 :
47808 9260 : case 1872: /* relation_expr: extended_relation_expr */
47809 : #line 13948 "gram.y"
47810 : {
47811 : (yyval.range) = (yyvsp[0].range);
47812 : }
47813 : #line 47814 "gram.c"
47814 9260 : break;
47815 :
47816 204 : case 1873: /* extended_relation_expr: qualified_name '*' */
47817 : #line 13955 "gram.y"
47818 : {
47819 : /* inheritance query, explicitly */
47820 : (yyval.range) = (yyvsp[-1].range);
47821 : (yyval.range)->inh = true;
47822 : (yyval.range)->alias = NULL;
47823 : }
47824 : #line 47825 "gram.c"
47825 204 : break;
47826 :
47827 9062 : case 1874: /* extended_relation_expr: ONLY qualified_name */
47828 : #line 13962 "gram.y"
47829 : {
47830 : /* no inheritance */
47831 : (yyval.range) = (yyvsp[0].range);
47832 : (yyval.range)->inh = false;
47833 : (yyval.range)->alias = NULL;
47834 : }
47835 : #line 47836 "gram.c"
47836 9062 : break;
47837 :
47838 0 : case 1875: /* extended_relation_expr: ONLY '(' qualified_name ')' */
47839 : #line 13969 "gram.y"
47840 : {
47841 : /* no inheritance, SQL99-style syntax */
47842 : (yyval.range) = (yyvsp[-1].range);
47843 : (yyval.range)->inh = false;
47844 : (yyval.range)->alias = NULL;
47845 : }
47846 : #line 47847 "gram.c"
47847 0 : break;
47848 :
47849 5474 : case 1876: /* relation_expr_list: relation_expr */
47850 : #line 13979 "gram.y"
47851 : { (yyval.list) = list_make1((yyvsp[0].range)); }
47852 : #line 47853 "gram.c"
47853 5474 : break;
47854 :
47855 15738 : case 1877: /* relation_expr_list: relation_expr_list ',' relation_expr */
47856 : #line 13980 "gram.y"
47857 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); }
47858 : #line 47859 "gram.c"
47859 15738 : break;
47860 :
47861 18440 : case 1878: /* relation_expr_opt_alias: relation_expr */
47862 : #line 13994 "gram.y"
47863 : {
47864 : (yyval.range) = (yyvsp[0].range);
47865 : }
47866 : #line 47867 "gram.c"
47867 18440 : break;
47868 :
47869 2222 : case 1879: /* relation_expr_opt_alias: relation_expr ColId */
47870 : #line 13998 "gram.y"
47871 : {
47872 : Alias *alias = makeNode(Alias);
47873 :
47874 : alias->aliasname = (yyvsp[0].str);
47875 : (yyvsp[-1].range)->alias = alias;
47876 : (yyval.range) = (yyvsp[-1].range);
47877 : }
47878 : #line 47879 "gram.c"
47879 2222 : break;
47880 :
47881 90 : case 1880: /* relation_expr_opt_alias: relation_expr AS ColId */
47882 : #line 14006 "gram.y"
47883 : {
47884 : Alias *alias = makeNode(Alias);
47885 :
47886 : alias->aliasname = (yyvsp[0].str);
47887 : (yyvsp[-2].range)->alias = alias;
47888 : (yyval.range) = (yyvsp[-2].range);
47889 : }
47890 : #line 47891 "gram.c"
47891 90 : break;
47892 :
47893 264 : case 1881: /* tablesample_clause: TABLESAMPLE func_name '(' expr_list ')' opt_repeatable_clause */
47894 : #line 14020 "gram.y"
47895 : {
47896 : RangeTableSample *n = makeNode(RangeTableSample);
47897 :
47898 : /* n->relation will be filled in later */
47899 : n->method = (yyvsp[-4].list);
47900 : n->args = (yyvsp[-2].list);
47901 : n->repeatable = (yyvsp[0].node);
47902 : n->location = (yylsp[-4]);
47903 : (yyval.node) = (Node *) n;
47904 : }
47905 : #line 47906 "gram.c"
47906 264 : break;
47907 :
47908 110 : case 1882: /* opt_repeatable_clause: REPEATABLE '(' a_expr ')' */
47909 : #line 14033 "gram.y"
47910 : { (yyval.node) = (Node *) (yyvsp[-1].node); }
47911 : #line 47912 "gram.c"
47912 110 : break;
47913 :
47914 154 : case 1883: /* opt_repeatable_clause: %empty */
47915 : #line 14034 "gram.y"
47916 : { (yyval.node) = NULL; }
47917 : #line 47918 "gram.c"
47918 154 : break;
47919 :
47920 48066 : case 1884: /* func_table: func_expr_windowless opt_ordinality */
47921 : #line 14050 "gram.y"
47922 : {
47923 : RangeFunction *n = makeNode(RangeFunction);
47924 :
47925 : n->lateral = false;
47926 : n->ordinality = (yyvsp[0].boolean);
47927 : n->is_rowsfrom = false;
47928 : n->functions = list_make1(list_make2((yyvsp[-1].node), NIL));
47929 : /* alias and coldeflist are set by table_ref production */
47930 : (yyval.node) = (Node *) n;
47931 : }
47932 : #line 47933 "gram.c"
47933 48066 : break;
47934 :
47935 132 : case 1885: /* func_table: ROWS FROM '(' rowsfrom_list ')' opt_ordinality */
47936 : #line 14061 "gram.y"
47937 : {
47938 : RangeFunction *n = makeNode(RangeFunction);
47939 :
47940 : n->lateral = false;
47941 : n->ordinality = (yyvsp[0].boolean);
47942 : n->is_rowsfrom = true;
47943 : n->functions = (yyvsp[-2].list);
47944 : /* alias and coldeflist are set by table_ref production */
47945 : (yyval.node) = (Node *) n;
47946 : }
47947 : #line 47948 "gram.c"
47948 132 : break;
47949 :
47950 318 : case 1886: /* rowsfrom_item: func_expr_windowless opt_col_def_list */
47951 : #line 14074 "gram.y"
47952 : { (yyval.list) = list_make2((yyvsp[-1].node), (yyvsp[0].list)); }
47953 : #line 47954 "gram.c"
47954 318 : break;
47955 :
47956 132 : case 1887: /* rowsfrom_list: rowsfrom_item */
47957 : #line 14078 "gram.y"
47958 : { (yyval.list) = list_make1((yyvsp[0].list)); }
47959 : #line 47960 "gram.c"
47960 132 : break;
47961 :
47962 186 : case 1888: /* rowsfrom_list: rowsfrom_list ',' rowsfrom_item */
47963 : #line 14079 "gram.y"
47964 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].list)); }
47965 : #line 47966 "gram.c"
47966 186 : break;
47967 :
47968 54 : case 1889: /* opt_col_def_list: AS '(' TableFuncElementList ')' */
47969 : #line 14082 "gram.y"
47970 : { (yyval.list) = (yyvsp[-1].list); }
47971 : #line 47972 "gram.c"
47972 54 : break;
47973 :
47974 264 : case 1890: /* opt_col_def_list: %empty */
47975 : #line 14083 "gram.y"
47976 : { (yyval.list) = NIL; }
47977 : #line 47978 "gram.c"
47978 264 : break;
47979 :
47980 904 : case 1891: /* opt_ordinality: WITH_LA ORDINALITY */
47981 : #line 14086 "gram.y"
47982 : { (yyval.boolean) = true; }
47983 : #line 47984 "gram.c"
47984 904 : break;
47985 :
47986 47294 : case 1892: /* opt_ordinality: %empty */
47987 : #line 14087 "gram.y"
47988 : { (yyval.boolean) = false; }
47989 : #line 47990 "gram.c"
47990 47294 : break;
47991 :
47992 214590 : case 1893: /* where_clause: WHERE a_expr */
47993 : #line 14092 "gram.y"
47994 : { (yyval.node) = (yyvsp[0].node); }
47995 : #line 47996 "gram.c"
47996 214590 : break;
47997 :
47998 289894 : case 1894: /* where_clause: %empty */
47999 : #line 14093 "gram.y"
48000 : { (yyval.node) = NULL; }
48001 : #line 48002 "gram.c"
48002 289894 : break;
48003 :
48004 13338 : case 1895: /* where_or_current_clause: WHERE a_expr */
48005 : #line 14098 "gram.y"
48006 : { (yyval.node) = (yyvsp[0].node); }
48007 : #line 48008 "gram.c"
48008 13338 : break;
48009 :
48010 266 : case 1896: /* where_or_current_clause: WHERE CURRENT_P OF cursor_name */
48011 : #line 14100 "gram.y"
48012 : {
48013 : CurrentOfExpr *n = makeNode(CurrentOfExpr);
48014 :
48015 : /* cvarno is filled in by parse analysis */
48016 : n->cursor_name = (yyvsp[0].str);
48017 : n->cursor_param = 0;
48018 : (yyval.node) = (Node *) n;
48019 : }
48020 : #line 48021 "gram.c"
48021 266 : break;
48022 :
48023 5012 : case 1897: /* where_or_current_clause: %empty */
48024 : #line 14108 "gram.y"
48025 : { (yyval.node) = NULL; }
48026 : #line 48027 "gram.c"
48027 5012 : break;
48028 :
48029 748 : case 1898: /* OptTableFuncElementList: TableFuncElementList */
48030 : #line 14113 "gram.y"
48031 : { (yyval.list) = (yyvsp[0].list); }
48032 : #line 48033 "gram.c"
48033 748 : break;
48034 :
48035 3786 : case 1899: /* OptTableFuncElementList: %empty */
48036 : #line 14114 "gram.y"
48037 : { (yyval.list) = NIL; }
48038 : #line 48039 "gram.c"
48039 3786 : break;
48040 :
48041 1560 : case 1900: /* TableFuncElementList: TableFuncElement */
48042 : #line 14119 "gram.y"
48043 : {
48044 : (yyval.list) = list_make1((yyvsp[0].node));
48045 : }
48046 : #line 48047 "gram.c"
48047 1560 : break;
48048 :
48049 2100 : case 1901: /* TableFuncElementList: TableFuncElementList ',' TableFuncElement */
48050 : #line 14123 "gram.y"
48051 : {
48052 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
48053 : }
48054 : #line 48055 "gram.c"
48055 2100 : break;
48056 :
48057 3724 : case 1902: /* TableFuncElement: ColId Typename opt_collate_clause */
48058 : #line 14129 "gram.y"
48059 : {
48060 : ColumnDef *n = makeNode(ColumnDef);
48061 :
48062 : n->colname = (yyvsp[-2].str);
48063 : n->typeName = (yyvsp[-1].typnam);
48064 : n->inhcount = 0;
48065 : n->is_local = true;
48066 : n->is_not_null = false;
48067 : n->is_from_type = false;
48068 : n->storage = 0;
48069 : n->raw_default = NULL;
48070 : n->cooked_default = NULL;
48071 : n->collClause = (CollateClause *) (yyvsp[0].node);
48072 : n->collOid = InvalidOid;
48073 : n->constraints = NIL;
48074 : n->location = (yylsp[-2]);
48075 : (yyval.node) = (Node *) n;
48076 : }
48077 : #line 48078 "gram.c"
48078 3724 : break;
48079 :
48080 202 : case 1903: /* xmltable: XMLTABLE '(' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */
48081 : #line 14154 "gram.y"
48082 : {
48083 : RangeTableFunc *n = makeNode(RangeTableFunc);
48084 :
48085 : n->rowexpr = (yyvsp[-4].node);
48086 : n->docexpr = (yyvsp[-3].node);
48087 : n->columns = (yyvsp[-1].list);
48088 : n->namespaces = NIL;
48089 : n->location = (yylsp[-6]);
48090 : (yyval.node) = (Node *) n;
48091 : }
48092 : #line 48093 "gram.c"
48093 202 : break;
48094 :
48095 22 : case 1904: /* xmltable: XMLTABLE '(' XMLNAMESPACES '(' xml_namespace_list ')' ',' c_expr xmlexists_argument COLUMNS xmltable_column_list ')' */
48096 : #line 14166 "gram.y"
48097 : {
48098 : RangeTableFunc *n = makeNode(RangeTableFunc);
48099 :
48100 : n->rowexpr = (yyvsp[-4].node);
48101 : n->docexpr = (yyvsp[-3].node);
48102 : n->columns = (yyvsp[-1].list);
48103 : n->namespaces = (yyvsp[-7].list);
48104 : n->location = (yylsp[-11]);
48105 : (yyval.node) = (Node *) n;
48106 : }
48107 : #line 48108 "gram.c"
48108 22 : break;
48109 :
48110 224 : case 1905: /* xmltable_column_list: xmltable_column_el */
48111 : #line 14178 "gram.y"
48112 : { (yyval.list) = list_make1((yyvsp[0].node)); }
48113 : #line 48114 "gram.c"
48114 224 : break;
48115 :
48116 544 : case 1906: /* xmltable_column_list: xmltable_column_list ',' xmltable_column_el */
48117 : #line 14179 "gram.y"
48118 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
48119 : #line 48120 "gram.c"
48120 544 : break;
48121 :
48122 198 : case 1907: /* xmltable_column_el: ColId Typename */
48123 : #line 14184 "gram.y"
48124 : {
48125 : RangeTableFuncCol *fc = makeNode(RangeTableFuncCol);
48126 :
48127 : fc->colname = (yyvsp[-1].str);
48128 : fc->for_ordinality = false;
48129 : fc->typeName = (yyvsp[0].typnam);
48130 : fc->is_not_null = false;
48131 : fc->colexpr = NULL;
48132 : fc->coldefexpr = NULL;
48133 : fc->location = (yylsp[-1]);
48134 :
48135 : (yyval.node) = (Node *) fc;
48136 : }
48137 : #line 48138 "gram.c"
48138 198 : break;
48139 :
48140 506 : case 1908: /* xmltable_column_el: ColId Typename xmltable_column_option_list */
48141 : #line 14198 "gram.y"
48142 : {
48143 : RangeTableFuncCol *fc = makeNode(RangeTableFuncCol);
48144 : ListCell *option;
48145 : bool nullability_seen = false;
48146 :
48147 : fc->colname = (yyvsp[-2].str);
48148 : fc->typeName = (yyvsp[-1].typnam);
48149 : fc->for_ordinality = false;
48150 : fc->is_not_null = false;
48151 : fc->colexpr = NULL;
48152 : fc->coldefexpr = NULL;
48153 : fc->location = (yylsp[-2]);
48154 :
48155 : foreach(option, (yyvsp[0].list))
48156 : {
48157 : DefElem *defel = (DefElem *) lfirst(option);
48158 :
48159 : if (strcmp(defel->defname, "default") == 0)
48160 : {
48161 : if (fc->coldefexpr != NULL)
48162 : ereport(ERROR,
48163 : (errcode(ERRCODE_SYNTAX_ERROR),
48164 : errmsg("only one DEFAULT value is allowed"),
48165 : parser_errposition(defel->location)));
48166 : fc->coldefexpr = defel->arg;
48167 : }
48168 : else if (strcmp(defel->defname, "path") == 0)
48169 : {
48170 : if (fc->colexpr != NULL)
48171 : ereport(ERROR,
48172 : (errcode(ERRCODE_SYNTAX_ERROR),
48173 : errmsg("only one PATH value per column is allowed"),
48174 : parser_errposition(defel->location)));
48175 : fc->colexpr = defel->arg;
48176 : }
48177 : else if (strcmp(defel->defname, "__pg__is_not_null") == 0)
48178 : {
48179 : if (nullability_seen)
48180 : ereport(ERROR,
48181 : (errcode(ERRCODE_SYNTAX_ERROR),
48182 : errmsg("conflicting or redundant NULL / NOT NULL declarations for column \"%s\"", fc->colname),
48183 : parser_errposition(defel->location)));
48184 : fc->is_not_null = boolVal(defel->arg);
48185 : nullability_seen = true;
48186 : }
48187 : else
48188 : {
48189 : ereport(ERROR,
48190 : (errcode(ERRCODE_SYNTAX_ERROR),
48191 : errmsg("unrecognized column option \"%s\"",
48192 : defel->defname),
48193 : parser_errposition(defel->location)));
48194 : }
48195 : }
48196 : (yyval.node) = (Node *) fc;
48197 : }
48198 : #line 48199 "gram.c"
48199 506 : break;
48200 :
48201 64 : case 1909: /* xmltable_column_el: ColId FOR ORDINALITY */
48202 : #line 14255 "gram.y"
48203 : {
48204 : RangeTableFuncCol *fc = makeNode(RangeTableFuncCol);
48205 :
48206 : fc->colname = (yyvsp[-2].str);
48207 : fc->for_ordinality = true;
48208 : /* other fields are ignored, initialized by makeNode */
48209 : fc->location = (yylsp[-2]);
48210 :
48211 : (yyval.node) = (Node *) fc;
48212 : }
48213 : #line 48214 "gram.c"
48214 64 : break;
48215 :
48216 506 : case 1910: /* xmltable_column_option_list: xmltable_column_option_el */
48217 : #line 14269 "gram.y"
48218 : { (yyval.list) = list_make1((yyvsp[0].defelt)); }
48219 : #line 48220 "gram.c"
48220 506 : break;
48221 :
48222 116 : case 1911: /* xmltable_column_option_list: xmltable_column_option_list xmltable_column_option_el */
48223 : #line 14271 "gram.y"
48224 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].defelt)); }
48225 : #line 48226 "gram.c"
48226 116 : break;
48227 :
48228 6 : case 1912: /* xmltable_column_option_el: IDENT b_expr */
48229 : #line 14276 "gram.y"
48230 : {
48231 : if (strcmp((yyvsp[-1].str), "__pg__is_not_null") == 0)
48232 : ereport(ERROR,
48233 : (errcode(ERRCODE_SYNTAX_ERROR),
48234 : errmsg("option name \"%s\" cannot be used in XMLTABLE", (yyvsp[-1].str)),
48235 : parser_errposition((yylsp[-1]))));
48236 : (yyval.defelt) = makeDefElem((yyvsp[-1].str), (yyvsp[0].node), (yylsp[-1]));
48237 : }
48238 : #line 48239 "gram.c"
48239 0 : break;
48240 :
48241 58 : case 1913: /* xmltable_column_option_el: DEFAULT b_expr */
48242 : #line 14285 "gram.y"
48243 : { (yyval.defelt) = makeDefElem("default", (yyvsp[0].node), (yylsp[-1])); }
48244 : #line 48245 "gram.c"
48245 58 : break;
48246 :
48247 58 : case 1914: /* xmltable_column_option_el: NOT NULL_P */
48248 : #line 14287 "gram.y"
48249 : { (yyval.defelt) = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(true), (yylsp[-1])); }
48250 : #line 48251 "gram.c"
48251 58 : break;
48252 :
48253 0 : case 1915: /* xmltable_column_option_el: NULL_P */
48254 : #line 14289 "gram.y"
48255 : { (yyval.defelt) = makeDefElem("__pg__is_not_null", (Node *) makeBoolean(false), (yylsp[0])); }
48256 : #line 48257 "gram.c"
48257 0 : break;
48258 :
48259 506 : case 1916: /* xmltable_column_option_el: PATH b_expr */
48260 : #line 14291 "gram.y"
48261 : { (yyval.defelt) = makeDefElem("path", (yyvsp[0].node), (yylsp[-1])); }
48262 : #line 48263 "gram.c"
48263 506 : break;
48264 :
48265 22 : case 1917: /* xml_namespace_list: xml_namespace_el */
48266 : #line 14296 "gram.y"
48267 : { (yyval.list) = list_make1((yyvsp[0].target)); }
48268 : #line 48269 "gram.c"
48269 22 : break;
48270 :
48271 0 : case 1918: /* xml_namespace_list: xml_namespace_list ',' xml_namespace_el */
48272 : #line 14298 "gram.y"
48273 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
48274 : #line 48275 "gram.c"
48275 0 : break;
48276 :
48277 16 : case 1919: /* xml_namespace_el: b_expr AS ColLabel */
48278 : #line 14303 "gram.y"
48279 : {
48280 : (yyval.target) = makeNode(ResTarget);
48281 : (yyval.target)->name = (yyvsp[0].str);
48282 : (yyval.target)->indirection = NIL;
48283 : (yyval.target)->val = (yyvsp[-2].node);
48284 : (yyval.target)->location = (yylsp[-2]);
48285 : }
48286 : #line 48287 "gram.c"
48287 16 : break;
48288 :
48289 6 : case 1920: /* xml_namespace_el: DEFAULT b_expr */
48290 : #line 14311 "gram.y"
48291 : {
48292 : (yyval.target) = makeNode(ResTarget);
48293 : (yyval.target)->name = NULL;
48294 : (yyval.target)->indirection = NIL;
48295 : (yyval.target)->val = (yyvsp[0].node);
48296 : (yyval.target)->location = (yylsp[-1]);
48297 : }
48298 : #line 48299 "gram.c"
48299 6 : break;
48300 :
48301 530 : case 1921: /* json_table: JSON_TABLE '(' json_value_expr ',' a_expr json_table_path_name_opt json_passing_clause_opt COLUMNS '(' json_table_column_definition_list ')' json_on_error_clause_opt ')' */
48302 : #line 14327 "gram.y"
48303 : {
48304 : JsonTable *n = makeNode(JsonTable);
48305 : char *pathstring;
48306 :
48307 : n->context_item = (JsonValueExpr *) (yyvsp[-10].node);
48308 : if (!IsA((yyvsp[-8].node), A_Const) ||
48309 : castNode(A_Const, (yyvsp[-8].node))->val.node.type != T_String)
48310 : ereport(ERROR,
48311 : errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
48312 : errmsg("only string constants are supported in JSON_TABLE path specification"),
48313 : parser_errposition((yylsp[-8])));
48314 : pathstring = castNode(A_Const, (yyvsp[-8].node))->val.sval.sval;
48315 : n->pathspec = makeJsonTablePathSpec(pathstring, (yyvsp[-7].str), (yylsp[-8]), (yylsp[-7]));
48316 : n->passing = (yyvsp[-6].list);
48317 : n->columns = (yyvsp[-3].list);
48318 : n->on_error = (JsonBehavior *) (yyvsp[-1].node);
48319 : n->location = (yylsp[-12]);
48320 : (yyval.node) = (Node *) n;
48321 : }
48322 : #line 48323 "gram.c"
48323 524 : break;
48324 :
48325 62 : case 1922: /* json_table_path_name_opt: AS name */
48326 : #line 14349 "gram.y"
48327 : { (yyval.str) = (yyvsp[0].str); }
48328 : #line 48329 "gram.c"
48329 62 : break;
48330 :
48331 480 : case 1923: /* json_table_path_name_opt: %empty */
48332 : #line 14350 "gram.y"
48333 : { (yyval.str) = NULL; }
48334 : #line 48335 "gram.c"
48335 480 : break;
48336 :
48337 820 : case 1924: /* json_table_column_definition_list: json_table_column_definition */
48338 : #line 14355 "gram.y"
48339 : { (yyval.list) = list_make1((yyvsp[0].node)); }
48340 : #line 48341 "gram.c"
48341 820 : break;
48342 :
48343 528 : case 1925: /* json_table_column_definition_list: json_table_column_definition_list ',' json_table_column_definition */
48344 : #line 14357 "gram.y"
48345 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
48346 : #line 48347 "gram.c"
48347 528 : break;
48348 :
48349 84 : case 1926: /* json_table_column_definition: ColId FOR ORDINALITY */
48350 : #line 14362 "gram.y"
48351 : {
48352 : JsonTableColumn *n = makeNode(JsonTableColumn);
48353 :
48354 : n->coltype = JTC_FOR_ORDINALITY;
48355 : n->name = (yyvsp[-2].str);
48356 : n->location = (yylsp[-2]);
48357 : (yyval.node) = (Node *) n;
48358 : }
48359 : #line 48360 "gram.c"
48360 84 : break;
48361 :
48362 728 : case 1927: /* json_table_column_definition: ColId Typename json_table_column_path_clause_opt json_wrapper_behavior json_quotes_clause_opt json_behavior_clause_opt */
48363 : #line 14375 "gram.y"
48364 : {
48365 : JsonTableColumn *n = makeNode(JsonTableColumn);
48366 :
48367 : n->coltype = JTC_REGULAR;
48368 : n->name = (yyvsp[-5].str);
48369 : n->typeName = (yyvsp[-4].typnam);
48370 : n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
48371 : n->pathspec = (JsonTablePathSpec *) (yyvsp[-3].node);
48372 : n->wrapper = (yyvsp[-2].ival);
48373 : n->quotes = (yyvsp[-1].ival);
48374 : n->on_empty = (JsonBehavior *) linitial((yyvsp[0].list));
48375 : n->on_error = (JsonBehavior *) lsecond((yyvsp[0].list));
48376 : n->location = (yylsp[-5]);
48377 : (yyval.node) = (Node *) n;
48378 : }
48379 : #line 48380 "gram.c"
48380 728 : break;
48381 :
48382 108 : case 1928: /* json_table_column_definition: ColId Typename json_format_clause json_table_column_path_clause_opt json_wrapper_behavior json_quotes_clause_opt json_behavior_clause_opt */
48383 : #line 14395 "gram.y"
48384 : {
48385 : JsonTableColumn *n = makeNode(JsonTableColumn);
48386 :
48387 : n->coltype = JTC_FORMATTED;
48388 : n->name = (yyvsp[-6].str);
48389 : n->typeName = (yyvsp[-5].typnam);
48390 : n->format = (JsonFormat *) (yyvsp[-4].node);
48391 : n->pathspec = (JsonTablePathSpec *) (yyvsp[-3].node);
48392 : n->wrapper = (yyvsp[-2].ival);
48393 : n->quotes = (yyvsp[-1].ival);
48394 : n->on_empty = (JsonBehavior *) linitial((yyvsp[0].list));
48395 : n->on_error = (JsonBehavior *) lsecond((yyvsp[0].list));
48396 : n->location = (yylsp[-6]);
48397 : (yyval.node) = (Node *) n;
48398 : }
48399 : #line 48400 "gram.c"
48400 108 : break;
48401 :
48402 138 : case 1929: /* json_table_column_definition: ColId Typename EXISTS json_table_column_path_clause_opt json_on_error_clause_opt */
48403 : #line 14413 "gram.y"
48404 : {
48405 : JsonTableColumn *n = makeNode(JsonTableColumn);
48406 :
48407 : n->coltype = JTC_EXISTS;
48408 : n->name = (yyvsp[-4].str);
48409 : n->typeName = (yyvsp[-3].typnam);
48410 : n->format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
48411 : n->wrapper = JSW_NONE;
48412 : n->quotes = JS_QUOTES_UNSPEC;
48413 : n->pathspec = (JsonTablePathSpec *) (yyvsp[-1].node);
48414 : n->on_empty = NULL;
48415 : n->on_error = (JsonBehavior *) (yyvsp[0].node);
48416 : n->location = (yylsp[-4]);
48417 : (yyval.node) = (Node *) n;
48418 : }
48419 : #line 48420 "gram.c"
48420 138 : break;
48421 :
48422 144 : case 1930: /* json_table_column_definition: NESTED path_opt Sconst COLUMNS '(' json_table_column_definition_list ')' */
48423 : #line 14430 "gram.y"
48424 : {
48425 : JsonTableColumn *n = makeNode(JsonTableColumn);
48426 :
48427 : n->coltype = JTC_NESTED;
48428 : n->pathspec = (JsonTablePathSpec *)
48429 : makeJsonTablePathSpec((yyvsp[-4].str), NULL, (yylsp[-4]), -1);
48430 : n->columns = (yyvsp[-1].list);
48431 : n->location = (yylsp[-6]);
48432 : (yyval.node) = (Node *) n;
48433 : }
48434 : #line 48435 "gram.c"
48435 144 : break;
48436 :
48437 146 : case 1931: /* json_table_column_definition: NESTED path_opt Sconst AS name COLUMNS '(' json_table_column_definition_list ')' */
48438 : #line 14442 "gram.y"
48439 : {
48440 : JsonTableColumn *n = makeNode(JsonTableColumn);
48441 :
48442 : n->coltype = JTC_NESTED;
48443 : n->pathspec = (JsonTablePathSpec *)
48444 : makeJsonTablePathSpec((yyvsp[-6].str), (yyvsp[-4].str), (yylsp[-6]), (yylsp[-4]));
48445 : n->columns = (yyvsp[-1].list);
48446 : n->location = (yylsp[-8]);
48447 : (yyval.node) = (Node *) n;
48448 : }
48449 : #line 48450 "gram.c"
48450 146 : break;
48451 :
48452 828 : case 1934: /* json_table_column_path_clause_opt: PATH Sconst */
48453 : #line 14461 "gram.y"
48454 : { (yyval.node) = (Node *) makeJsonTablePathSpec((yyvsp[0].str), NULL, (yylsp[0]), -1); }
48455 : #line 48456 "gram.c"
48456 828 : break;
48457 :
48458 152 : case 1935: /* json_table_column_path_clause_opt: %empty */
48459 : #line 14463 "gram.y"
48460 : { (yyval.node) = NULL; }
48461 : #line 48462 "gram.c"
48462 152 : break;
48463 :
48464 518798 : case 1936: /* Typename: SimpleTypename opt_array_bounds */
48465 : #line 14477 "gram.y"
48466 : {
48467 : (yyval.typnam) = (yyvsp[-1].typnam);
48468 : (yyval.typnam)->arrayBounds = (yyvsp[0].list);
48469 : }
48470 : #line 48471 "gram.c"
48471 518798 : break;
48472 :
48473 2310 : case 1937: /* Typename: SETOF SimpleTypename opt_array_bounds */
48474 : #line 14482 "gram.y"
48475 : {
48476 : (yyval.typnam) = (yyvsp[-1].typnam);
48477 : (yyval.typnam)->arrayBounds = (yyvsp[0].list);
48478 : (yyval.typnam)->setof = true;
48479 : }
48480 : #line 48481 "gram.c"
48481 2310 : break;
48482 :
48483 6 : case 1938: /* Typename: SimpleTypename ARRAY '[' Iconst ']' */
48484 : #line 14489 "gram.y"
48485 : {
48486 : (yyval.typnam) = (yyvsp[-4].typnam);
48487 : (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival)));
48488 : }
48489 : #line 48490 "gram.c"
48490 6 : break;
48491 :
48492 0 : case 1939: /* Typename: SETOF SimpleTypename ARRAY '[' Iconst ']' */
48493 : #line 14494 "gram.y"
48494 : {
48495 : (yyval.typnam) = (yyvsp[-4].typnam);
48496 : (yyval.typnam)->arrayBounds = list_make1(makeInteger((yyvsp[-1].ival)));
48497 : (yyval.typnam)->setof = true;
48498 : }
48499 : #line 48500 "gram.c"
48500 0 : break;
48501 :
48502 0 : case 1940: /* Typename: SimpleTypename ARRAY */
48503 : #line 14500 "gram.y"
48504 : {
48505 : (yyval.typnam) = (yyvsp[-1].typnam);
48506 : (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
48507 : }
48508 : #line 48509 "gram.c"
48509 0 : break;
48510 :
48511 0 : case 1941: /* Typename: SETOF SimpleTypename ARRAY */
48512 : #line 14505 "gram.y"
48513 : {
48514 : (yyval.typnam) = (yyvsp[-1].typnam);
48515 : (yyval.typnam)->arrayBounds = list_make1(makeInteger(-1));
48516 : (yyval.typnam)->setof = true;
48517 : }
48518 : #line 48519 "gram.c"
48519 0 : break;
48520 :
48521 15292 : case 1942: /* opt_array_bounds: opt_array_bounds '[' ']' */
48522 : #line 14514 "gram.y"
48523 : { (yyval.list) = lappend((yyvsp[-2].list), makeInteger(-1)); }
48524 : #line 48525 "gram.c"
48525 15292 : break;
48526 :
48527 62 : case 1943: /* opt_array_bounds: opt_array_bounds '[' Iconst ']' */
48528 : #line 14516 "gram.y"
48529 : { (yyval.list) = lappend((yyvsp[-3].list), makeInteger((yyvsp[-1].ival))); }
48530 : #line 48531 "gram.c"
48531 62 : break;
48532 :
48533 521108 : case 1944: /* opt_array_bounds: %empty */
48534 : #line 14518 "gram.y"
48535 : { (yyval.list) = NIL; }
48536 : #line 48537 "gram.c"
48537 521108 : break;
48538 :
48539 403934 : case 1945: /* SimpleTypename: GenericType */
48540 : #line 14522 "gram.y"
48541 : { (yyval.typnam) = (yyvsp[0].typnam); }
48542 : #line 48543 "gram.c"
48543 403934 : break;
48544 :
48545 101992 : case 1946: /* SimpleTypename: Numeric */
48546 : #line 14523 "gram.y"
48547 : { (yyval.typnam) = (yyvsp[0].typnam); }
48548 : #line 48549 "gram.c"
48549 101992 : break;
48550 :
48551 1922 : case 1947: /* SimpleTypename: Bit */
48552 : #line 14524 "gram.y"
48553 : { (yyval.typnam) = (yyvsp[0].typnam); }
48554 : #line 48555 "gram.c"
48555 1922 : break;
48556 :
48557 3222 : case 1948: /* SimpleTypename: Character */
48558 : #line 14525 "gram.y"
48559 : { (yyval.typnam) = (yyvsp[0].typnam); }
48560 : #line 48561 "gram.c"
48561 3222 : break;
48562 :
48563 4910 : case 1949: /* SimpleTypename: ConstDatetime */
48564 : #line 14526 "gram.y"
48565 : { (yyval.typnam) = (yyvsp[0].typnam); }
48566 : #line 48567 "gram.c"
48567 4910 : break;
48568 :
48569 3704 : case 1950: /* SimpleTypename: ConstInterval opt_interval */
48570 : #line 14528 "gram.y"
48571 : {
48572 : (yyval.typnam) = (yyvsp[-1].typnam);
48573 : (yyval.typnam)->typmods = (yyvsp[0].list);
48574 : }
48575 : #line 48576 "gram.c"
48576 3704 : break;
48577 :
48578 0 : case 1951: /* SimpleTypename: ConstInterval '(' Iconst ')' */
48579 : #line 14533 "gram.y"
48580 : {
48581 : (yyval.typnam) = (yyvsp[-3].typnam);
48582 : (yyval.typnam)->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
48583 : makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
48584 : }
48585 : #line 48586 "gram.c"
48586 0 : break;
48587 :
48588 1892 : case 1952: /* SimpleTypename: JsonType */
48589 : #line 14538 "gram.y"
48590 : { (yyval.typnam) = (yyvsp[0].typnam); }
48591 : #line 48592 "gram.c"
48592 1892 : break;
48593 :
48594 78 : case 1953: /* ConstTypename: Numeric */
48595 : #line 14553 "gram.y"
48596 : { (yyval.typnam) = (yyvsp[0].typnam); }
48597 : #line 48598 "gram.c"
48598 78 : break;
48599 :
48600 0 : case 1954: /* ConstTypename: ConstBit */
48601 : #line 14554 "gram.y"
48602 : { (yyval.typnam) = (yyvsp[0].typnam); }
48603 : #line 48604 "gram.c"
48604 0 : break;
48605 :
48606 34 : case 1955: /* ConstTypename: ConstCharacter */
48607 : #line 14555 "gram.y"
48608 : { (yyval.typnam) = (yyvsp[0].typnam); }
48609 : #line 48610 "gram.c"
48610 34 : break;
48611 :
48612 2750 : case 1956: /* ConstTypename: ConstDatetime */
48613 : #line 14556 "gram.y"
48614 : { (yyval.typnam) = (yyvsp[0].typnam); }
48615 : #line 48616 "gram.c"
48616 2750 : break;
48617 :
48618 264 : case 1957: /* ConstTypename: JsonType */
48619 : #line 14557 "gram.y"
48620 : { (yyval.typnam) = (yyvsp[0].typnam); }
48621 : #line 48622 "gram.c"
48622 264 : break;
48623 :
48624 283640 : case 1958: /* GenericType: type_function_name opt_type_modifiers */
48625 : #line 14569 "gram.y"
48626 : {
48627 : (yyval.typnam) = makeTypeName((yyvsp[-1].str));
48628 : (yyval.typnam)->typmods = (yyvsp[0].list);
48629 : (yyval.typnam)->location = (yylsp[-1]);
48630 : }
48631 : #line 48632 "gram.c"
48632 283640 : break;
48633 :
48634 120294 : case 1959: /* GenericType: type_function_name attrs opt_type_modifiers */
48635 : #line 14575 "gram.y"
48636 : {
48637 : (yyval.typnam) = makeTypeNameFromNameList(lcons(makeString((yyvsp[-2].str)), (yyvsp[-1].list)));
48638 : (yyval.typnam)->typmods = (yyvsp[0].list);
48639 : (yyval.typnam)->location = (yylsp[-2]);
48640 : }
48641 : #line 48642 "gram.c"
48642 120294 : break;
48643 :
48644 1396 : case 1960: /* opt_type_modifiers: '(' expr_list ')' */
48645 : #line 14582 "gram.y"
48646 : { (yyval.list) = (yyvsp[-1].list); }
48647 : #line 48648 "gram.c"
48648 1396 : break;
48649 :
48650 408706 : case 1961: /* opt_type_modifiers: %empty */
48651 : #line 14583 "gram.y"
48652 : { (yyval.list) = NIL; }
48653 : #line 48654 "gram.c"
48654 408706 : break;
48655 :
48656 38086 : case 1962: /* Numeric: INT_P */
48657 : #line 14590 "gram.y"
48658 : {
48659 : (yyval.typnam) = SystemTypeName("int4");
48660 : (yyval.typnam)->location = (yylsp[0]);
48661 : }
48662 : #line 48663 "gram.c"
48663 38086 : break;
48664 :
48665 27440 : case 1963: /* Numeric: INTEGER */
48666 : #line 14595 "gram.y"
48667 : {
48668 : (yyval.typnam) = SystemTypeName("int4");
48669 : (yyval.typnam)->location = (yylsp[0]);
48670 : }
48671 : #line 48672 "gram.c"
48672 27440 : break;
48673 :
48674 1306 : case 1964: /* Numeric: SMALLINT */
48675 : #line 14600 "gram.y"
48676 : {
48677 : (yyval.typnam) = SystemTypeName("int2");
48678 : (yyval.typnam)->location = (yylsp[0]);
48679 : }
48680 : #line 48681 "gram.c"
48681 1306 : break;
48682 :
48683 5238 : case 1965: /* Numeric: BIGINT */
48684 : #line 14605 "gram.y"
48685 : {
48686 : (yyval.typnam) = SystemTypeName("int8");
48687 : (yyval.typnam)->location = (yylsp[0]);
48688 : }
48689 : #line 48690 "gram.c"
48690 5238 : break;
48691 :
48692 7472 : case 1966: /* Numeric: REAL */
48693 : #line 14610 "gram.y"
48694 : {
48695 : (yyval.typnam) = SystemTypeName("float4");
48696 : (yyval.typnam)->location = (yylsp[0]);
48697 : }
48698 : #line 48699 "gram.c"
48699 7472 : break;
48700 :
48701 538 : case 1967: /* Numeric: FLOAT_P opt_float */
48702 : #line 14615 "gram.y"
48703 : {
48704 : (yyval.typnam) = (yyvsp[0].typnam);
48705 : (yyval.typnam)->location = (yylsp[-1]);
48706 : }
48707 : #line 48708 "gram.c"
48708 538 : break;
48709 :
48710 906 : case 1968: /* Numeric: DOUBLE_P PRECISION */
48711 : #line 14620 "gram.y"
48712 : {
48713 : (yyval.typnam) = SystemTypeName("float8");
48714 : (yyval.typnam)->location = (yylsp[-1]);
48715 : }
48716 : #line 48717 "gram.c"
48717 906 : break;
48718 :
48719 36 : case 1969: /* Numeric: DECIMAL_P opt_type_modifiers */
48720 : #line 14625 "gram.y"
48721 : {
48722 : (yyval.typnam) = SystemTypeName("numeric");
48723 : (yyval.typnam)->typmods = (yyvsp[0].list);
48724 : (yyval.typnam)->location = (yylsp[-1]);
48725 : }
48726 : #line 48727 "gram.c"
48727 36 : break;
48728 :
48729 0 : case 1970: /* Numeric: DEC opt_type_modifiers */
48730 : #line 14631 "gram.y"
48731 : {
48732 : (yyval.typnam) = SystemTypeName("numeric");
48733 : (yyval.typnam)->typmods = (yyvsp[0].list);
48734 : (yyval.typnam)->location = (yylsp[-1]);
48735 : }
48736 : #line 48737 "gram.c"
48737 0 : break;
48738 :
48739 6132 : case 1971: /* Numeric: NUMERIC opt_type_modifiers */
48740 : #line 14637 "gram.y"
48741 : {
48742 : (yyval.typnam) = SystemTypeName("numeric");
48743 : (yyval.typnam)->typmods = (yyvsp[0].list);
48744 : (yyval.typnam)->location = (yylsp[-1]);
48745 : }
48746 : #line 48747 "gram.c"
48747 6132 : break;
48748 :
48749 14916 : case 1972: /* Numeric: BOOLEAN_P */
48750 : #line 14643 "gram.y"
48751 : {
48752 : (yyval.typnam) = SystemTypeName("bool");
48753 : (yyval.typnam)->location = (yylsp[0]);
48754 : }
48755 : #line 48756 "gram.c"
48756 14916 : break;
48757 :
48758 2 : case 1973: /* opt_float: '(' Iconst ')' */
48759 : #line 14650 "gram.y"
48760 : {
48761 : /*
48762 : * Check FLOAT() precision limits assuming IEEE floating
48763 : * types - thomas 1997-09-18
48764 : */
48765 : if ((yyvsp[-1].ival) < 1)
48766 : ereport(ERROR,
48767 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
48768 : errmsg("precision for type float must be at least 1 bit"),
48769 : parser_errposition((yylsp[-1]))));
48770 : else if ((yyvsp[-1].ival) <= 24)
48771 : (yyval.typnam) = SystemTypeName("float4");
48772 : else if ((yyvsp[-1].ival) <= 53)
48773 : (yyval.typnam) = SystemTypeName("float8");
48774 : else
48775 : ereport(ERROR,
48776 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
48777 : errmsg("precision for type float must be less than 54 bits"),
48778 : parser_errposition((yylsp[-1]))));
48779 : }
48780 : #line 48781 "gram.c"
48781 2 : break;
48782 :
48783 536 : case 1974: /* opt_float: %empty */
48784 : #line 14671 "gram.y"
48785 : {
48786 : (yyval.typnam) = SystemTypeName("float8");
48787 : }
48788 : #line 48789 "gram.c"
48789 536 : break;
48790 :
48791 1710 : case 1975: /* Bit: BitWithLength */
48792 : #line 14681 "gram.y"
48793 : {
48794 : (yyval.typnam) = (yyvsp[0].typnam);
48795 : }
48796 : #line 48797 "gram.c"
48797 1710 : break;
48798 :
48799 212 : case 1976: /* Bit: BitWithoutLength */
48800 : #line 14685 "gram.y"
48801 : {
48802 : (yyval.typnam) = (yyvsp[0].typnam);
48803 : }
48804 : #line 48805 "gram.c"
48805 212 : break;
48806 :
48807 0 : case 1977: /* ConstBit: BitWithLength */
48808 : #line 14693 "gram.y"
48809 : {
48810 : (yyval.typnam) = (yyvsp[0].typnam);
48811 : }
48812 : #line 48813 "gram.c"
48813 0 : break;
48814 :
48815 0 : case 1978: /* ConstBit: BitWithoutLength */
48816 : #line 14697 "gram.y"
48817 : {
48818 : (yyval.typnam) = (yyvsp[0].typnam);
48819 : (yyval.typnam)->typmods = NIL;
48820 : }
48821 : #line 48822 "gram.c"
48822 0 : break;
48823 :
48824 1710 : case 1979: /* BitWithLength: BIT opt_varying '(' expr_list ')' */
48825 : #line 14705 "gram.y"
48826 : {
48827 : char *typname;
48828 :
48829 : typname = (yyvsp[-3].boolean) ? "varbit" : "bit";
48830 : (yyval.typnam) = SystemTypeName(typname);
48831 : (yyval.typnam)->typmods = (yyvsp[-1].list);
48832 : (yyval.typnam)->location = (yylsp[-4]);
48833 : }
48834 : #line 48835 "gram.c"
48835 1710 : break;
48836 :
48837 212 : case 1980: /* BitWithoutLength: BIT opt_varying */
48838 : #line 14717 "gram.y"
48839 : {
48840 : /* bit defaults to bit(1), varbit to no limit */
48841 : if ((yyvsp[0].boolean))
48842 : {
48843 : (yyval.typnam) = SystemTypeName("varbit");
48844 : }
48845 : else
48846 : {
48847 : (yyval.typnam) = SystemTypeName("bit");
48848 : (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
48849 : }
48850 : (yyval.typnam)->location = (yylsp[-1]);
48851 : }
48852 : #line 48853 "gram.c"
48853 212 : break;
48854 :
48855 1834 : case 1981: /* Character: CharacterWithLength */
48856 : #line 14738 "gram.y"
48857 : {
48858 : (yyval.typnam) = (yyvsp[0].typnam);
48859 : }
48860 : #line 48861 "gram.c"
48861 1834 : break;
48862 :
48863 1388 : case 1982: /* Character: CharacterWithoutLength */
48864 : #line 14742 "gram.y"
48865 : {
48866 : (yyval.typnam) = (yyvsp[0].typnam);
48867 : }
48868 : #line 48869 "gram.c"
48869 1388 : break;
48870 :
48871 12 : case 1983: /* ConstCharacter: CharacterWithLength */
48872 : #line 14748 "gram.y"
48873 : {
48874 : (yyval.typnam) = (yyvsp[0].typnam);
48875 : }
48876 : #line 48877 "gram.c"
48877 12 : break;
48878 :
48879 22 : case 1984: /* ConstCharacter: CharacterWithoutLength */
48880 : #line 14752 "gram.y"
48881 : {
48882 : /* Length was not specified so allow to be unrestricted.
48883 : * This handles problems with fixed-length (bpchar) strings
48884 : * which in column definitions must default to a length
48885 : * of one, but should not be constrained if the length
48886 : * was not specified.
48887 : */
48888 : (yyval.typnam) = (yyvsp[0].typnam);
48889 : (yyval.typnam)->typmods = NIL;
48890 : }
48891 : #line 48892 "gram.c"
48892 22 : break;
48893 :
48894 1846 : case 1985: /* CharacterWithLength: character '(' Iconst ')' */
48895 : #line 14765 "gram.y"
48896 : {
48897 : (yyval.typnam) = SystemTypeName((yyvsp[-3].str));
48898 : (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
48899 : (yyval.typnam)->location = (yylsp[-3]);
48900 : }
48901 : #line 48902 "gram.c"
48902 1846 : break;
48903 :
48904 1410 : case 1986: /* CharacterWithoutLength: character */
48905 : #line 14773 "gram.y"
48906 : {
48907 : (yyval.typnam) = SystemTypeName((yyvsp[0].str));
48908 : /* char defaults to char(1), varchar to no limit */
48909 : if (strcmp((yyvsp[0].str), "bpchar") == 0)
48910 : (yyval.typnam)->typmods = list_make1(makeIntConst(1, -1));
48911 : (yyval.typnam)->location = (yylsp[0]);
48912 : }
48913 : #line 48914 "gram.c"
48914 1410 : break;
48915 :
48916 780 : case 1987: /* character: CHARACTER opt_varying */
48917 : #line 14783 "gram.y"
48918 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48919 : #line 48920 "gram.c"
48920 780 : break;
48921 :
48922 1172 : case 1988: /* character: CHAR_P opt_varying */
48923 : #line 14785 "gram.y"
48924 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48925 : #line 48926 "gram.c"
48926 1172 : break;
48927 :
48928 1300 : case 1989: /* character: VARCHAR */
48929 : #line 14787 "gram.y"
48930 : { (yyval.str) = "varchar"; }
48931 : #line 48932 "gram.c"
48932 1300 : break;
48933 :
48934 0 : case 1990: /* character: NATIONAL CHARACTER opt_varying */
48935 : #line 14789 "gram.y"
48936 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48937 : #line 48938 "gram.c"
48938 0 : break;
48939 :
48940 0 : case 1991: /* character: NATIONAL CHAR_P opt_varying */
48941 : #line 14791 "gram.y"
48942 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48943 : #line 48944 "gram.c"
48944 0 : break;
48945 :
48946 4 : case 1992: /* character: NCHAR opt_varying */
48947 : #line 14793 "gram.y"
48948 : { (yyval.str) = (yyvsp[0].boolean) ? "varchar": "bpchar"; }
48949 : #line 48950 "gram.c"
48950 4 : break;
48951 :
48952 546 : case 1993: /* opt_varying: VARYING */
48953 : #line 14797 "gram.y"
48954 : { (yyval.boolean) = true; }
48955 : #line 48956 "gram.c"
48956 546 : break;
48957 :
48958 3332 : case 1994: /* opt_varying: %empty */
48959 : #line 14798 "gram.y"
48960 : { (yyval.boolean) = false; }
48961 : #line 48962 "gram.c"
48962 3332 : break;
48963 :
48964 136 : case 1995: /* ConstDatetime: TIMESTAMP '(' Iconst ')' opt_timezone */
48965 : #line 14806 "gram.y"
48966 : {
48967 : if ((yyvsp[0].boolean))
48968 : (yyval.typnam) = SystemTypeName("timestamptz");
48969 : else
48970 : (yyval.typnam) = SystemTypeName("timestamp");
48971 : (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2])));
48972 : (yyval.typnam)->location = (yylsp[-4]);
48973 : }
48974 : #line 48975 "gram.c"
48975 136 : break;
48976 :
48977 5030 : case 1996: /* ConstDatetime: TIMESTAMP opt_timezone */
48978 : #line 14815 "gram.y"
48979 : {
48980 : if ((yyvsp[0].boolean))
48981 : (yyval.typnam) = SystemTypeName("timestamptz");
48982 : else
48983 : (yyval.typnam) = SystemTypeName("timestamp");
48984 : (yyval.typnam)->location = (yylsp[-1]);
48985 : }
48986 : #line 48987 "gram.c"
48987 5030 : break;
48988 :
48989 26 : case 1997: /* ConstDatetime: TIME '(' Iconst ')' opt_timezone */
48990 : #line 14823 "gram.y"
48991 : {
48992 : if ((yyvsp[0].boolean))
48993 : (yyval.typnam) = SystemTypeName("timetz");
48994 : else
48995 : (yyval.typnam) = SystemTypeName("time");
48996 : (yyval.typnam)->typmods = list_make1(makeIntConst((yyvsp[-2].ival), (yylsp[-2])));
48997 : (yyval.typnam)->location = (yylsp[-4]);
48998 : }
48999 : #line 49000 "gram.c"
49000 26 : break;
49001 :
49002 2468 : case 1998: /* ConstDatetime: TIME opt_timezone */
49003 : #line 14832 "gram.y"
49004 : {
49005 : if ((yyvsp[0].boolean))
49006 : (yyval.typnam) = SystemTypeName("timetz");
49007 : else
49008 : (yyval.typnam) = SystemTypeName("time");
49009 : (yyval.typnam)->location = (yylsp[-1]);
49010 : }
49011 : #line 49012 "gram.c"
49012 2468 : break;
49013 :
49014 7014 : case 1999: /* ConstInterval: INTERVAL */
49015 : #line 14843 "gram.y"
49016 : {
49017 : (yyval.typnam) = SystemTypeName("interval");
49018 : (yyval.typnam)->location = (yylsp[0]);
49019 : }
49020 : #line 49021 "gram.c"
49021 7014 : break;
49022 :
49023 1868 : case 2000: /* opt_timezone: WITH_LA TIME ZONE */
49024 : #line 14850 "gram.y"
49025 : { (yyval.boolean) = true; }
49026 : #line 49027 "gram.c"
49027 1868 : break;
49028 :
49029 628 : case 2001: /* opt_timezone: WITHOUT_LA TIME ZONE */
49030 : #line 14851 "gram.y"
49031 : { (yyval.boolean) = false; }
49032 : #line 49033 "gram.c"
49033 628 : break;
49034 :
49035 5164 : case 2002: /* opt_timezone: %empty */
49036 : #line 14852 "gram.y"
49037 : { (yyval.boolean) = false; }
49038 : #line 49039 "gram.c"
49039 5164 : break;
49040 :
49041 12 : case 2003: /* opt_interval: YEAR_P */
49042 : #line 14857 "gram.y"
49043 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR), (yylsp[0]))); }
49044 : #line 49045 "gram.c"
49045 12 : break;
49046 :
49047 18 : case 2004: /* opt_interval: MONTH_P */
49048 : #line 14859 "gram.y"
49049 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MONTH), (yylsp[0]))); }
49050 : #line 49051 "gram.c"
49051 18 : break;
49052 :
49053 18 : case 2005: /* opt_interval: DAY_P */
49054 : #line 14861 "gram.y"
49055 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY), (yylsp[0]))); }
49056 : #line 49057 "gram.c"
49057 18 : break;
49058 :
49059 12 : case 2006: /* opt_interval: HOUR_P */
49060 : #line 14863 "gram.y"
49061 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR), (yylsp[0]))); }
49062 : #line 49063 "gram.c"
49063 12 : break;
49064 :
49065 12 : case 2007: /* opt_interval: MINUTE_P */
49066 : #line 14865 "gram.y"
49067 : { (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(MINUTE), (yylsp[0]))); }
49068 : #line 49069 "gram.c"
49069 12 : break;
49070 :
49071 36 : case 2008: /* opt_interval: interval_second */
49072 : #line 14867 "gram.y"
49073 : { (yyval.list) = (yyvsp[0].list); }
49074 : #line 49075 "gram.c"
49075 36 : break;
49076 :
49077 18 : case 2009: /* opt_interval: YEAR_P TO MONTH_P */
49078 : #line 14869 "gram.y"
49079 : {
49080 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(YEAR) |
49081 : INTERVAL_MASK(MONTH), (yylsp[-2])));
49082 : }
49083 : #line 49084 "gram.c"
49084 18 : break;
49085 :
49086 24 : case 2010: /* opt_interval: DAY_P TO HOUR_P */
49087 : #line 14874 "gram.y"
49088 : {
49089 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
49090 : INTERVAL_MASK(HOUR), (yylsp[-2])));
49091 : }
49092 : #line 49093 "gram.c"
49093 24 : break;
49094 :
49095 24 : case 2011: /* opt_interval: DAY_P TO MINUTE_P */
49096 : #line 14879 "gram.y"
49097 : {
49098 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(DAY) |
49099 : INTERVAL_MASK(HOUR) |
49100 : INTERVAL_MASK(MINUTE), (yylsp[-2])));
49101 : }
49102 : #line 49103 "gram.c"
49103 24 : break;
49104 :
49105 48 : case 2012: /* opt_interval: DAY_P TO interval_second */
49106 : #line 14885 "gram.y"
49107 : {
49108 : (yyval.list) = (yyvsp[0].list);
49109 : linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(DAY) |
49110 : INTERVAL_MASK(HOUR) |
49111 : INTERVAL_MASK(MINUTE) |
49112 : INTERVAL_MASK(SECOND), (yylsp[-2]));
49113 : }
49114 : #line 49115 "gram.c"
49115 48 : break;
49116 :
49117 18 : case 2013: /* opt_interval: HOUR_P TO MINUTE_P */
49118 : #line 14893 "gram.y"
49119 : {
49120 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(HOUR) |
49121 : INTERVAL_MASK(MINUTE), (yylsp[-2])));
49122 : }
49123 : #line 49124 "gram.c"
49124 18 : break;
49125 :
49126 36 : case 2014: /* opt_interval: HOUR_P TO interval_second */
49127 : #line 14898 "gram.y"
49128 : {
49129 : (yyval.list) = (yyvsp[0].list);
49130 : linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(HOUR) |
49131 : INTERVAL_MASK(MINUTE) |
49132 : INTERVAL_MASK(SECOND), (yylsp[-2]));
49133 : }
49134 : #line 49135 "gram.c"
49135 36 : break;
49136 :
49137 66 : case 2015: /* opt_interval: MINUTE_P TO interval_second */
49138 : #line 14905 "gram.y"
49139 : {
49140 : (yyval.list) = (yyvsp[0].list);
49141 : linitial((yyval.list)) = makeIntConst(INTERVAL_MASK(MINUTE) |
49142 : INTERVAL_MASK(SECOND), (yylsp[-2]));
49143 : }
49144 : #line 49145 "gram.c"
49145 66 : break;
49146 :
49147 6660 : case 2016: /* opt_interval: %empty */
49148 : #line 14911 "gram.y"
49149 : { (yyval.list) = NIL; }
49150 : #line 49151 "gram.c"
49151 6660 : break;
49152 :
49153 102 : case 2017: /* interval_second: SECOND_P */
49154 : #line 14916 "gram.y"
49155 : {
49156 : (yyval.list) = list_make1(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[0])));
49157 : }
49158 : #line 49159 "gram.c"
49159 102 : break;
49160 :
49161 84 : case 2018: /* interval_second: SECOND_P '(' Iconst ')' */
49162 : #line 14920 "gram.y"
49163 : {
49164 : (yyval.list) = list_make2(makeIntConst(INTERVAL_MASK(SECOND), (yylsp[-3])),
49165 : makeIntConst((yyvsp[-1].ival), (yylsp[-1])));
49166 : }
49167 : #line 49168 "gram.c"
49168 84 : break;
49169 :
49170 2156 : case 2019: /* JsonType: JSON */
49171 : #line 14928 "gram.y"
49172 : {
49173 : (yyval.typnam) = SystemTypeName("json");
49174 : (yyval.typnam)->location = (yylsp[0]);
49175 : }
49176 : #line 49177 "gram.c"
49177 2156 : break;
49178 :
49179 3729524 : case 2020: /* a_expr: c_expr */
49180 : #line 14962 "gram.y"
49181 : { (yyval.node) = (yyvsp[0].node); }
49182 : #line 49183 "gram.c"
49183 3729524 : break;
49184 :
49185 241258 : case 2021: /* a_expr: a_expr TYPECAST Typename */
49186 : #line 14964 "gram.y"
49187 : { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); }
49188 : #line 49189 "gram.c"
49189 241258 : break;
49190 :
49191 8968 : case 2022: /* a_expr: a_expr COLLATE any_name */
49192 : #line 14966 "gram.y"
49193 : {
49194 : CollateClause *n = makeNode(CollateClause);
49195 :
49196 : n->arg = (yyvsp[-2].node);
49197 : n->collname = (yyvsp[0].list);
49198 : n->location = (yylsp[-1]);
49199 : (yyval.node) = (Node *) n;
49200 : }
49201 : #line 49202 "gram.c"
49202 8968 : break;
49203 :
49204 408 : case 2023: /* a_expr: a_expr AT TIME ZONE a_expr */
49205 : #line 14975 "gram.y"
49206 : {
49207 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"),
49208 : list_make2((yyvsp[0].node), (yyvsp[-4].node)),
49209 : COERCE_SQL_SYNTAX,
49210 : (yylsp[-3]));
49211 : }
49212 : #line 49213 "gram.c"
49213 408 : break;
49214 :
49215 42 : case 2024: /* a_expr: a_expr AT LOCAL */
49216 : #line 14982 "gram.y"
49217 : {
49218 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("timezone"),
49219 : list_make1((yyvsp[-2].node)),
49220 : COERCE_SQL_SYNTAX,
49221 : -1);
49222 : }
49223 : #line 49224 "gram.c"
49224 42 : break;
49225 :
49226 12 : case 2025: /* a_expr: '+' a_expr */
49227 : #line 14998 "gram.y"
49228 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
49229 : #line 49230 "gram.c"
49230 12 : break;
49231 :
49232 9106 : case 2026: /* a_expr: '-' a_expr */
49233 : #line 15000 "gram.y"
49234 : { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
49235 : #line 49236 "gram.c"
49236 9106 : break;
49237 :
49238 14014 : case 2027: /* a_expr: a_expr '+' a_expr */
49239 : #line 15002 "gram.y"
49240 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49241 : #line 49242 "gram.c"
49242 14014 : break;
49243 :
49244 4436 : case 2028: /* a_expr: a_expr '-' a_expr */
49245 : #line 15004 "gram.y"
49246 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49247 : #line 49248 "gram.c"
49248 4434 : break;
49249 :
49250 6314 : case 2029: /* a_expr: a_expr '*' a_expr */
49251 : #line 15006 "gram.y"
49252 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49253 : #line 49254 "gram.c"
49254 6314 : break;
49255 :
49256 3424 : case 2030: /* a_expr: a_expr '/' a_expr */
49257 : #line 15008 "gram.y"
49258 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49259 : #line 49260 "gram.c"
49260 3424 : break;
49261 :
49262 2830 : case 2031: /* a_expr: a_expr '%' a_expr */
49263 : #line 15010 "gram.y"
49264 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49265 : #line 49266 "gram.c"
49266 2830 : break;
49267 :
49268 474 : case 2032: /* a_expr: a_expr '^' a_expr */
49269 : #line 15012 "gram.y"
49270 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49271 : #line 49272 "gram.c"
49272 474 : break;
49273 :
49274 10450 : case 2033: /* a_expr: a_expr '<' a_expr */
49275 : #line 15014 "gram.y"
49276 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49277 : #line 49278 "gram.c"
49278 10450 : break;
49279 :
49280 16724 : case 2034: /* a_expr: a_expr '>' a_expr */
49281 : #line 15016 "gram.y"
49282 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49283 : #line 49284 "gram.c"
49284 16724 : break;
49285 :
49286 398448 : case 2035: /* a_expr: a_expr '=' a_expr */
49287 : #line 15018 "gram.y"
49288 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49289 : #line 49290 "gram.c"
49290 398448 : break;
49291 :
49292 5248 : case 2036: /* a_expr: a_expr LESS_EQUALS a_expr */
49293 : #line 15020 "gram.y"
49294 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49295 : #line 49296 "gram.c"
49296 5248 : break;
49297 :
49298 7208 : case 2037: /* a_expr: a_expr GREATER_EQUALS a_expr */
49299 : #line 15022 "gram.y"
49300 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49301 : #line 49302 "gram.c"
49302 7208 : break;
49303 :
49304 40690 : case 2038: /* a_expr: a_expr NOT_EQUALS a_expr */
49305 : #line 15024 "gram.y"
49306 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49307 : #line 49308 "gram.c"
49308 40690 : break;
49309 :
49310 58954 : case 2039: /* a_expr: a_expr qual_Op a_expr */
49311 : #line 15027 "gram.y"
49312 : { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49313 : #line 49314 "gram.c"
49314 58954 : break;
49315 :
49316 210 : case 2040: /* a_expr: qual_Op a_expr */
49317 : #line 15029 "gram.y"
49318 : { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); }
49319 : #line 49320 "gram.c"
49320 210 : break;
49321 :
49322 237178 : case 2041: /* a_expr: a_expr AND a_expr */
49323 : #line 15032 "gram.y"
49324 : { (yyval.node) = makeAndExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49325 : #line 49326 "gram.c"
49326 237178 : break;
49327 :
49328 16558 : case 2042: /* a_expr: a_expr OR a_expr */
49329 : #line 15034 "gram.y"
49330 : { (yyval.node) = makeOrExpr((yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49331 : #line 49332 "gram.c"
49332 16558 : break;
49333 :
49334 16746 : case 2043: /* a_expr: NOT a_expr */
49335 : #line 15036 "gram.y"
49336 : { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); }
49337 : #line 49338 "gram.c"
49338 16746 : break;
49339 :
49340 0 : case 2044: /* a_expr: NOT_LA a_expr */
49341 : #line 15038 "gram.y"
49342 : { (yyval.node) = makeNotExpr((yyvsp[0].node), (yylsp[-1])); }
49343 : #line 49344 "gram.c"
49344 0 : break;
49345 :
49346 1960 : case 2045: /* a_expr: a_expr LIKE a_expr */
49347 : #line 15041 "gram.y"
49348 : {
49349 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~",
49350 : (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1]));
49351 : }
49352 : #line 49353 "gram.c"
49353 1960 : break;
49354 :
49355 96 : case 2046: /* a_expr: a_expr LIKE a_expr ESCAPE a_expr */
49356 : #line 15046 "gram.y"
49357 : {
49358 : FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49359 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49360 : COERCE_EXPLICIT_CALL,
49361 : (yylsp[-3]));
49362 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "~~",
49363 : (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
49364 : }
49365 : #line 49366 "gram.c"
49366 96 : break;
49367 :
49368 198 : case 2047: /* a_expr: a_expr NOT_LA LIKE a_expr */
49369 : #line 15055 "gram.y"
49370 : {
49371 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~",
49372 : (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2]));
49373 : }
49374 : #line 49375 "gram.c"
49375 198 : break;
49376 :
49377 96 : case 2048: /* a_expr: a_expr NOT_LA LIKE a_expr ESCAPE a_expr */
49378 : #line 15060 "gram.y"
49379 : {
49380 : FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49381 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49382 : COERCE_EXPLICIT_CALL,
49383 : (yylsp[-4]));
49384 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_LIKE, "!~~",
49385 : (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
49386 : }
49387 : #line 49388 "gram.c"
49388 96 : break;
49389 :
49390 172 : case 2049: /* a_expr: a_expr ILIKE a_expr */
49391 : #line 15069 "gram.y"
49392 : {
49393 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*",
49394 : (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1]));
49395 : }
49396 : #line 49397 "gram.c"
49397 172 : break;
49398 :
49399 0 : case 2050: /* a_expr: a_expr ILIKE a_expr ESCAPE a_expr */
49400 : #line 15074 "gram.y"
49401 : {
49402 : FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49403 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49404 : COERCE_EXPLICIT_CALL,
49405 : (yylsp[-3]));
49406 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "~~*",
49407 : (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
49408 : }
49409 : #line 49410 "gram.c"
49410 0 : break;
49411 :
49412 30 : case 2051: /* a_expr: a_expr NOT_LA ILIKE a_expr */
49413 : #line 15083 "gram.y"
49414 : {
49415 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*",
49416 : (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2]));
49417 : }
49418 : #line 49419 "gram.c"
49419 30 : break;
49420 :
49421 0 : case 2052: /* a_expr: a_expr NOT_LA ILIKE a_expr ESCAPE a_expr */
49422 : #line 15088 "gram.y"
49423 : {
49424 : FuncCall *n = makeFuncCall(SystemFuncName("like_escape"),
49425 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49426 : COERCE_EXPLICIT_CALL,
49427 : (yylsp[-4]));
49428 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_ILIKE, "!~~*",
49429 : (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
49430 : }
49431 : #line 49432 "gram.c"
49432 0 : break;
49433 :
49434 88 : case 2053: /* a_expr: a_expr SIMILAR TO a_expr */
49435 : #line 15098 "gram.y"
49436 : {
49437 : FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49438 : list_make1((yyvsp[0].node)),
49439 : COERCE_EXPLICIT_CALL,
49440 : (yylsp[-2]));
49441 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~",
49442 : (yyvsp[-3].node), (Node *) n, (yylsp[-2]));
49443 : }
49444 : #line 49445 "gram.c"
49445 88 : break;
49446 :
49447 30 : case 2054: /* a_expr: a_expr SIMILAR TO a_expr ESCAPE a_expr */
49448 : #line 15107 "gram.y"
49449 : {
49450 : FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49451 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49452 : COERCE_EXPLICIT_CALL,
49453 : (yylsp[-4]));
49454 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "~",
49455 : (yyvsp[-5].node), (Node *) n, (yylsp[-4]));
49456 : }
49457 : #line 49458 "gram.c"
49458 30 : break;
49459 :
49460 0 : case 2055: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr */
49461 : #line 15116 "gram.y"
49462 : {
49463 : FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49464 : list_make1((yyvsp[0].node)),
49465 : COERCE_EXPLICIT_CALL,
49466 : (yylsp[-3]));
49467 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~",
49468 : (yyvsp[-4].node), (Node *) n, (yylsp[-3]));
49469 : }
49470 : #line 49471 "gram.c"
49471 0 : break;
49472 :
49473 0 : case 2056: /* a_expr: a_expr NOT_LA SIMILAR TO a_expr ESCAPE a_expr */
49474 : #line 15125 "gram.y"
49475 : {
49476 : FuncCall *n = makeFuncCall(SystemFuncName("similar_to_escape"),
49477 : list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49478 : COERCE_EXPLICIT_CALL,
49479 : (yylsp[-5]));
49480 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_SIMILAR, "!~",
49481 : (yyvsp[-6].node), (Node *) n, (yylsp[-5]));
49482 : }
49483 : #line 49484 "gram.c"
49484 0 : break;
49485 :
49486 5258 : case 2057: /* a_expr: a_expr IS NULL_P */
49487 : #line 15144 "gram.y"
49488 : {
49489 : NullTest *n = makeNode(NullTest);
49490 :
49491 : n->arg = (Expr *) (yyvsp[-2].node);
49492 : n->nulltesttype = IS_NULL;
49493 : n->location = (yylsp[-1]);
49494 : (yyval.node) = (Node *) n;
49495 : }
49496 : #line 49497 "gram.c"
49497 5258 : break;
49498 :
49499 96 : case 2058: /* a_expr: a_expr ISNULL */
49500 : #line 15153 "gram.y"
49501 : {
49502 : NullTest *n = makeNode(NullTest);
49503 :
49504 : n->arg = (Expr *) (yyvsp[-1].node);
49505 : n->nulltesttype = IS_NULL;
49506 : n->location = (yylsp[0]);
49507 : (yyval.node) = (Node *) n;
49508 : }
49509 : #line 49510 "gram.c"
49510 96 : break;
49511 :
49512 13270 : case 2059: /* a_expr: a_expr IS NOT NULL_P */
49513 : #line 15162 "gram.y"
49514 : {
49515 : NullTest *n = makeNode(NullTest);
49516 :
49517 : n->arg = (Expr *) (yyvsp[-3].node);
49518 : n->nulltesttype = IS_NOT_NULL;
49519 : n->location = (yylsp[-2]);
49520 : (yyval.node) = (Node *) n;
49521 : }
49522 : #line 49523 "gram.c"
49523 13270 : break;
49524 :
49525 6 : case 2060: /* a_expr: a_expr NOTNULL */
49526 : #line 15171 "gram.y"
49527 : {
49528 : NullTest *n = makeNode(NullTest);
49529 :
49530 : n->arg = (Expr *) (yyvsp[-1].node);
49531 : n->nulltesttype = IS_NOT_NULL;
49532 : n->location = (yylsp[0]);
49533 : (yyval.node) = (Node *) n;
49534 : }
49535 : #line 49536 "gram.c"
49536 6 : break;
49537 :
49538 948 : case 2061: /* a_expr: row OVERLAPS row */
49539 : #line 15180 "gram.y"
49540 : {
49541 : if (list_length((yyvsp[-2].list)) != 2)
49542 : ereport(ERROR,
49543 : (errcode(ERRCODE_SYNTAX_ERROR),
49544 : errmsg("wrong number of parameters on left side of OVERLAPS expression"),
49545 : parser_errposition((yylsp[-2]))));
49546 : if (list_length((yyvsp[0].list)) != 2)
49547 : ereport(ERROR,
49548 : (errcode(ERRCODE_SYNTAX_ERROR),
49549 : errmsg("wrong number of parameters on right side of OVERLAPS expression"),
49550 : parser_errposition((yylsp[0]))));
49551 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlaps"),
49552 : list_concat((yyvsp[-2].list), (yyvsp[0].list)),
49553 : COERCE_SQL_SYNTAX,
49554 : (yylsp[-1]));
49555 : }
49556 : #line 49557 "gram.c"
49557 948 : break;
49558 :
49559 532 : case 2062: /* a_expr: a_expr IS TRUE_P */
49560 : #line 15197 "gram.y"
49561 : {
49562 : BooleanTest *b = makeNode(BooleanTest);
49563 :
49564 : b->arg = (Expr *) (yyvsp[-2].node);
49565 : b->booltesttype = IS_TRUE;
49566 : b->location = (yylsp[-1]);
49567 : (yyval.node) = (Node *) b;
49568 : }
49569 : #line 49570 "gram.c"
49570 532 : break;
49571 :
49572 140 : case 2063: /* a_expr: a_expr IS NOT TRUE_P */
49573 : #line 15206 "gram.y"
49574 : {
49575 : BooleanTest *b = makeNode(BooleanTest);
49576 :
49577 : b->arg = (Expr *) (yyvsp[-3].node);
49578 : b->booltesttype = IS_NOT_TRUE;
49579 : b->location = (yylsp[-2]);
49580 : (yyval.node) = (Node *) b;
49581 : }
49582 : #line 49583 "gram.c"
49583 140 : break;
49584 :
49585 140 : case 2064: /* a_expr: a_expr IS FALSE_P */
49586 : #line 15215 "gram.y"
49587 : {
49588 : BooleanTest *b = makeNode(BooleanTest);
49589 :
49590 : b->arg = (Expr *) (yyvsp[-2].node);
49591 : b->booltesttype = IS_FALSE;
49592 : b->location = (yylsp[-1]);
49593 : (yyval.node) = (Node *) b;
49594 : }
49595 : #line 49596 "gram.c"
49596 140 : break;
49597 :
49598 92 : case 2065: /* a_expr: a_expr IS NOT FALSE_P */
49599 : #line 15224 "gram.y"
49600 : {
49601 : BooleanTest *b = makeNode(BooleanTest);
49602 :
49603 : b->arg = (Expr *) (yyvsp[-3].node);
49604 : b->booltesttype = IS_NOT_FALSE;
49605 : b->location = (yylsp[-2]);
49606 : (yyval.node) = (Node *) b;
49607 : }
49608 : #line 49609 "gram.c"
49609 92 : break;
49610 :
49611 52 : case 2066: /* a_expr: a_expr IS UNKNOWN */
49612 : #line 15233 "gram.y"
49613 : {
49614 : BooleanTest *b = makeNode(BooleanTest);
49615 :
49616 : b->arg = (Expr *) (yyvsp[-2].node);
49617 : b->booltesttype = IS_UNKNOWN;
49618 : b->location = (yylsp[-1]);
49619 : (yyval.node) = (Node *) b;
49620 : }
49621 : #line 49622 "gram.c"
49622 52 : break;
49623 :
49624 48 : case 2067: /* a_expr: a_expr IS NOT UNKNOWN */
49625 : #line 15242 "gram.y"
49626 : {
49627 : BooleanTest *b = makeNode(BooleanTest);
49628 :
49629 : b->arg = (Expr *) (yyvsp[-3].node);
49630 : b->booltesttype = IS_NOT_UNKNOWN;
49631 : b->location = (yylsp[-2]);
49632 : (yyval.node) = (Node *) b;
49633 : }
49634 : #line 49635 "gram.c"
49635 48 : break;
49636 :
49637 1264 : case 2068: /* a_expr: a_expr IS DISTINCT FROM a_expr */
49638 : #line 15251 "gram.y"
49639 : {
49640 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3]));
49641 : }
49642 : #line 49643 "gram.c"
49643 1264 : break;
49644 :
49645 68 : case 2069: /* a_expr: a_expr IS NOT DISTINCT FROM a_expr */
49646 : #line 15255 "gram.y"
49647 : {
49648 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4]));
49649 : }
49650 : #line 49651 "gram.c"
49651 68 : break;
49652 :
49653 466 : case 2070: /* a_expr: a_expr BETWEEN opt_asymmetric b_expr AND a_expr */
49654 : #line 15259 "gram.y"
49655 : {
49656 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN,
49657 : "BETWEEN",
49658 : (yyvsp[-5].node),
49659 : (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49660 : (yylsp[-4]));
49661 : }
49662 : #line 49663 "gram.c"
49663 466 : break;
49664 :
49665 12 : case 2071: /* a_expr: a_expr NOT_LA BETWEEN opt_asymmetric b_expr AND a_expr */
49666 : #line 15267 "gram.y"
49667 : {
49668 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN,
49669 : "NOT BETWEEN",
49670 : (yyvsp[-6].node),
49671 : (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49672 : (yylsp[-5]));
49673 : }
49674 : #line 49675 "gram.c"
49675 12 : break;
49676 :
49677 12 : case 2072: /* a_expr: a_expr BETWEEN SYMMETRIC b_expr AND a_expr */
49678 : #line 15275 "gram.y"
49679 : {
49680 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_BETWEEN_SYM,
49681 : "BETWEEN SYMMETRIC",
49682 : (yyvsp[-5].node),
49683 : (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49684 : (yylsp[-4]));
49685 : }
49686 : #line 49687 "gram.c"
49687 12 : break;
49688 :
49689 12 : case 2073: /* a_expr: a_expr NOT_LA BETWEEN SYMMETRIC b_expr AND a_expr */
49690 : #line 15283 "gram.y"
49691 : {
49692 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_BETWEEN_SYM,
49693 : "NOT BETWEEN SYMMETRIC",
49694 : (yyvsp[-6].node),
49695 : (Node *) list_make2((yyvsp[-2].node), (yyvsp[0].node)),
49696 : (yylsp[-5]));
49697 : }
49698 : #line 49699 "gram.c"
49699 12 : break;
49700 :
49701 24252 : case 2074: /* a_expr: a_expr IN_P in_expr */
49702 : #line 15291 "gram.y"
49703 : {
49704 : /* in_expr returns a SubLink or a list of a_exprs */
49705 : if (IsA((yyvsp[0].node), SubLink))
49706 : {
49707 : /* generate foo = ANY (subquery) */
49708 : SubLink *n = (SubLink *) (yyvsp[0].node);
49709 :
49710 : n->subLinkType = ANY_SUBLINK;
49711 : n->subLinkId = 0;
49712 : n->testexpr = (yyvsp[-2].node);
49713 : n->operName = NIL; /* show it's IN not = ANY */
49714 : n->location = (yylsp[-1]);
49715 : (yyval.node) = (Node *) n;
49716 : }
49717 : else
49718 : {
49719 : /* generate scalar IN expression */
49720 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1]));
49721 : }
49722 : }
49723 : #line 49724 "gram.c"
49724 24252 : break;
49725 :
49726 2936 : case 2075: /* a_expr: a_expr NOT_LA IN_P in_expr */
49727 : #line 15312 "gram.y"
49728 : {
49729 : /* in_expr returns a SubLink or a list of a_exprs */
49730 : if (IsA((yyvsp[0].node), SubLink))
49731 : {
49732 : /* generate NOT (foo = ANY (subquery)) */
49733 : /* Make an = ANY node */
49734 : SubLink *n = (SubLink *) (yyvsp[0].node);
49735 :
49736 : n->subLinkType = ANY_SUBLINK;
49737 : n->subLinkId = 0;
49738 : n->testexpr = (yyvsp[-3].node);
49739 : n->operName = NIL; /* show it's IN not = ANY */
49740 : n->location = (yylsp[-2]);
49741 : /* Stick a NOT on top; must have same parse location */
49742 : (yyval.node) = makeNotExpr((Node *) n, (yylsp[-2]));
49743 : }
49744 : else
49745 : {
49746 : /* generate scalar NOT IN expression */
49747 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_IN, "<>", (yyvsp[-3].node), (yyvsp[0].node), (yylsp[-2]));
49748 : }
49749 : }
49750 : #line 49751 "gram.c"
49751 2936 : break;
49752 :
49753 168 : case 2076: /* a_expr: a_expr subquery_Op sub_type select_with_parens */
49754 : #line 15335 "gram.y"
49755 : {
49756 : SubLink *n = makeNode(SubLink);
49757 :
49758 : n->subLinkType = (yyvsp[-1].ival);
49759 : n->subLinkId = 0;
49760 : n->testexpr = (yyvsp[-3].node);
49761 : n->operName = (yyvsp[-2].list);
49762 : n->subselect = (yyvsp[0].node);
49763 : n->location = (yylsp[-2]);
49764 : (yyval.node) = (Node *) n;
49765 : }
49766 : #line 49767 "gram.c"
49767 168 : break;
49768 :
49769 17186 : case 2077: /* a_expr: a_expr subquery_Op sub_type '(' a_expr ')' */
49770 : #line 15347 "gram.y"
49771 : {
49772 : if ((yyvsp[-3].ival) == ANY_SUBLINK)
49773 : (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ANY, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4]));
49774 : else
49775 : (yyval.node) = (Node *) makeA_Expr(AEXPR_OP_ALL, (yyvsp[-4].list), (yyvsp[-5].node), (yyvsp[-1].node), (yylsp[-4]));
49776 : }
49777 : #line 49778 "gram.c"
49778 17186 : break;
49779 :
49780 0 : case 2078: /* a_expr: UNIQUE opt_unique_null_treatment select_with_parens */
49781 : #line 15354 "gram.y"
49782 : {
49783 : /* Not sure how to get rid of the parentheses
49784 : * but there are lots of shift/reduce errors without them.
49785 : *
49786 : * Should be able to implement this by plopping the entire
49787 : * select into a node, then transforming the target expressions
49788 : * from whatever they are into count(*), and testing the
49789 : * entire result equal to one.
49790 : * But, will probably implement a separate node in the executor.
49791 : */
49792 : ereport(ERROR,
49793 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
49794 : errmsg("UNIQUE predicate is not yet implemented"),
49795 : parser_errposition((yylsp[-2]))));
49796 : }
49797 : #line 49798 "gram.c"
49798 : break;
49799 :
49800 18 : case 2079: /* a_expr: a_expr IS DOCUMENT_P */
49801 : #line 15370 "gram.y"
49802 : {
49803 : (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
49804 : list_make1((yyvsp[-2].node)), (yylsp[-1]));
49805 : }
49806 : #line 49807 "gram.c"
49807 18 : break;
49808 :
49809 18 : case 2080: /* a_expr: a_expr IS NOT DOCUMENT_P */
49810 : #line 15375 "gram.y"
49811 : {
49812 : (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL,
49813 : list_make1((yyvsp[-3].node)), (yylsp[-2])),
49814 : (yylsp[-2]));
49815 : }
49816 : #line 49817 "gram.c"
49817 18 : break;
49818 :
49819 12 : case 2081: /* a_expr: a_expr IS NORMALIZED */
49820 : #line 15381 "gram.y"
49821 : {
49822 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"),
49823 : list_make1((yyvsp[-2].node)),
49824 : COERCE_SQL_SYNTAX,
49825 : (yylsp[-1]));
49826 : }
49827 : #line 49828 "gram.c"
49828 12 : break;
49829 :
49830 36 : case 2082: /* a_expr: a_expr IS unicode_normal_form NORMALIZED */
49831 : #line 15388 "gram.y"
49832 : {
49833 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("is_normalized"),
49834 : list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
49835 : COERCE_SQL_SYNTAX,
49836 : (yylsp[-2]));
49837 : }
49838 : #line 49839 "gram.c"
49839 36 : break;
49840 :
49841 0 : case 2083: /* a_expr: a_expr IS NOT NORMALIZED */
49842 : #line 15395 "gram.y"
49843 : {
49844 : (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"),
49845 : list_make1((yyvsp[-3].node)),
49846 : COERCE_SQL_SYNTAX,
49847 : (yylsp[-2])),
49848 : (yylsp[-2]));
49849 : }
49850 : #line 49851 "gram.c"
49851 0 : break;
49852 :
49853 0 : case 2084: /* a_expr: a_expr IS NOT unicode_normal_form NORMALIZED */
49854 : #line 15403 "gram.y"
49855 : {
49856 : (yyval.node) = makeNotExpr((Node *) makeFuncCall(SystemFuncName("is_normalized"),
49857 : list_make2((yyvsp[-4].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
49858 : COERCE_SQL_SYNTAX,
49859 : (yylsp[-3])),
49860 : (yylsp[-3]));
49861 : }
49862 : #line 49863 "gram.c"
49863 0 : break;
49864 :
49865 304 : case 2085: /* a_expr: a_expr IS json_predicate_type_constraint json_key_uniqueness_constraint_opt */
49866 : #line 15412 "gram.y"
49867 : {
49868 : JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
49869 :
49870 : (yyval.node) = makeJsonIsPredicate((yyvsp[-3].node), format, (yyvsp[-1].ival), (yyvsp[0].boolean), (yylsp[-3]));
49871 : }
49872 : #line 49873 "gram.c"
49873 304 : break;
49874 :
49875 46 : case 2086: /* a_expr: a_expr IS NOT json_predicate_type_constraint json_key_uniqueness_constraint_opt */
49876 : #line 15430 "gram.y"
49877 : {
49878 : JsonFormat *format = makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
49879 :
49880 : (yyval.node) = makeNotExpr(makeJsonIsPredicate((yyvsp[-4].node), format, (yyvsp[-1].ival), (yyvsp[0].boolean), (yylsp[-4])), (yylsp[-4]));
49881 : }
49882 : #line 49883 "gram.c"
49883 46 : break;
49884 :
49885 1532 : case 2087: /* a_expr: DEFAULT */
49886 : #line 15447 "gram.y"
49887 : {
49888 : /*
49889 : * The SQL spec only allows DEFAULT in "contextually typed
49890 : * expressions", but for us, it's easier to allow it in
49891 : * any a_expr and then throw error during parse analysis
49892 : * if it's in an inappropriate context. This way also
49893 : * lets us say something smarter than "syntax error".
49894 : */
49895 : SetToDefault *n = makeNode(SetToDefault);
49896 :
49897 : /* parse analysis will fill in the rest */
49898 : n->location = (yylsp[0]);
49899 : (yyval.node) = (Node *) n;
49900 : }
49901 : #line 49902 "gram.c"
49902 1532 : break;
49903 :
49904 3850 : case 2088: /* b_expr: c_expr */
49905 : #line 15473 "gram.y"
49906 : { (yyval.node) = (yyvsp[0].node); }
49907 : #line 49908 "gram.c"
49908 3850 : break;
49909 :
49910 228 : case 2089: /* b_expr: b_expr TYPECAST Typename */
49911 : #line 15475 "gram.y"
49912 : { (yyval.node) = makeTypeCast((yyvsp[-2].node), (yyvsp[0].typnam), (yylsp[-1])); }
49913 : #line 49914 "gram.c"
49914 228 : break;
49915 :
49916 0 : case 2090: /* b_expr: '+' b_expr */
49917 : #line 15477 "gram.y"
49918 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", NULL, (yyvsp[0].node), (yylsp[-1])); }
49919 : #line 49920 "gram.c"
49920 0 : break;
49921 :
49922 66 : case 2091: /* b_expr: '-' b_expr */
49923 : #line 15479 "gram.y"
49924 : { (yyval.node) = doNegate((yyvsp[0].node), (yylsp[-1])); }
49925 : #line 49926 "gram.c"
49926 66 : break;
49927 :
49928 36 : case 2092: /* b_expr: b_expr '+' b_expr */
49929 : #line 15481 "gram.y"
49930 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "+", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49931 : #line 49932 "gram.c"
49932 36 : break;
49933 :
49934 12 : case 2093: /* b_expr: b_expr '-' b_expr */
49935 : #line 15483 "gram.y"
49936 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "-", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49937 : #line 49938 "gram.c"
49938 12 : break;
49939 :
49940 12 : case 2094: /* b_expr: b_expr '*' b_expr */
49941 : #line 15485 "gram.y"
49942 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "*", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49943 : #line 49944 "gram.c"
49944 12 : break;
49945 :
49946 0 : case 2095: /* b_expr: b_expr '/' b_expr */
49947 : #line 15487 "gram.y"
49948 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "/", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49949 : #line 49950 "gram.c"
49950 0 : break;
49951 :
49952 0 : case 2096: /* b_expr: b_expr '%' b_expr */
49953 : #line 15489 "gram.y"
49954 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "%", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49955 : #line 49956 "gram.c"
49956 0 : break;
49957 :
49958 6 : case 2097: /* b_expr: b_expr '^' b_expr */
49959 : #line 15491 "gram.y"
49960 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "^", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49961 : #line 49962 "gram.c"
49962 6 : break;
49963 :
49964 0 : case 2098: /* b_expr: b_expr '<' b_expr */
49965 : #line 15493 "gram.y"
49966 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49967 : #line 49968 "gram.c"
49968 0 : break;
49969 :
49970 0 : case 2099: /* b_expr: b_expr '>' b_expr */
49971 : #line 15495 "gram.y"
49972 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49973 : #line 49974 "gram.c"
49974 0 : break;
49975 :
49976 0 : case 2100: /* b_expr: b_expr '=' b_expr */
49977 : #line 15497 "gram.y"
49978 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49979 : #line 49980 "gram.c"
49980 0 : break;
49981 :
49982 0 : case 2101: /* b_expr: b_expr LESS_EQUALS b_expr */
49983 : #line 15499 "gram.y"
49984 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49985 : #line 49986 "gram.c"
49986 0 : break;
49987 :
49988 0 : case 2102: /* b_expr: b_expr GREATER_EQUALS b_expr */
49989 : #line 15501 "gram.y"
49990 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, ">=", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49991 : #line 49992 "gram.c"
49992 0 : break;
49993 :
49994 0 : case 2103: /* b_expr: b_expr NOT_EQUALS b_expr */
49995 : #line 15503 "gram.y"
49996 : { (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_OP, "<>", (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
49997 : #line 49998 "gram.c"
49998 0 : break;
49999 :
50000 12 : case 2104: /* b_expr: b_expr qual_Op b_expr */
50001 : #line 15505 "gram.y"
50002 : { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), (yyvsp[-2].node), (yyvsp[0].node), (yylsp[-1])); }
50003 : #line 50004 "gram.c"
50004 12 : break;
50005 :
50006 0 : case 2105: /* b_expr: qual_Op b_expr */
50007 : #line 15507 "gram.y"
50008 : { (yyval.node) = (Node *) makeA_Expr(AEXPR_OP, (yyvsp[-1].list), NULL, (yyvsp[0].node), (yylsp[-1])); }
50009 : #line 50010 "gram.c"
50010 0 : break;
50011 :
50012 0 : case 2106: /* b_expr: b_expr IS DISTINCT FROM b_expr */
50013 : #line 15509 "gram.y"
50014 : {
50015 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_DISTINCT, "=", (yyvsp[-4].node), (yyvsp[0].node), (yylsp[-3]));
50016 : }
50017 : #line 50018 "gram.c"
50018 0 : break;
50019 :
50020 0 : case 2107: /* b_expr: b_expr IS NOT DISTINCT FROM b_expr */
50021 : #line 15513 "gram.y"
50022 : {
50023 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NOT_DISTINCT, "=", (yyvsp[-5].node), (yyvsp[0].node), (yylsp[-4]));
50024 : }
50025 : #line 50026 "gram.c"
50026 0 : break;
50027 :
50028 0 : case 2108: /* b_expr: b_expr IS DOCUMENT_P */
50029 : #line 15517 "gram.y"
50030 : {
50031 : (yyval.node) = makeXmlExpr(IS_DOCUMENT, NULL, NIL,
50032 : list_make1((yyvsp[-2].node)), (yylsp[-1]));
50033 : }
50034 : #line 50035 "gram.c"
50035 0 : break;
50036 :
50037 0 : case 2109: /* b_expr: b_expr IS NOT DOCUMENT_P */
50038 : #line 15522 "gram.y"
50039 : {
50040 : (yyval.node) = makeNotExpr(makeXmlExpr(IS_DOCUMENT, NULL, NIL,
50041 : list_make1((yyvsp[-3].node)), (yylsp[-2])),
50042 : (yylsp[-2]));
50043 : }
50044 : #line 50045 "gram.c"
50045 0 : break;
50046 :
50047 1857252 : case 2110: /* c_expr: columnref */
50048 : #line 15537 "gram.y"
50049 : { (yyval.node) = (yyvsp[0].node); }
50050 : #line 50051 "gram.c"
50051 1857252 : break;
50052 :
50053 1248620 : case 2111: /* c_expr: AexprConst */
50054 : #line 15538 "gram.y"
50055 : { (yyval.node) = (yyvsp[0].node); }
50056 : #line 50057 "gram.c"
50057 1248620 : break;
50058 :
50059 45732 : case 2112: /* c_expr: PARAM opt_indirection */
50060 : #line 15540 "gram.y"
50061 : {
50062 : ParamRef *p = makeNode(ParamRef);
50063 :
50064 : p->number = (yyvsp[-1].ival);
50065 : p->location = (yylsp[-1]);
50066 : if ((yyvsp[0].list))
50067 : {
50068 : A_Indirection *n = makeNode(A_Indirection);
50069 :
50070 : n->arg = (Node *) p;
50071 : n->indirection = check_indirection((yyvsp[0].list), yyscanner);
50072 : (yyval.node) = (Node *) n;
50073 : }
50074 : else
50075 : (yyval.node) = (Node *) p;
50076 : }
50077 : #line 50078 "gram.c"
50078 45732 : break;
50079 :
50080 92348 : case 2113: /* c_expr: '(' a_expr ')' opt_indirection */
50081 : #line 15557 "gram.y"
50082 : {
50083 : if ((yyvsp[0].list))
50084 : {
50085 : A_Indirection *n = makeNode(A_Indirection);
50086 :
50087 : n->arg = (yyvsp[-2].node);
50088 : n->indirection = check_indirection((yyvsp[0].list), yyscanner);
50089 : (yyval.node) = (Node *) n;
50090 : }
50091 : else
50092 : (yyval.node) = (yyvsp[-2].node);
50093 : }
50094 : #line 50095 "gram.c"
50095 92348 : break;
50096 :
50097 39572 : case 2114: /* c_expr: case_expr */
50098 : #line 15570 "gram.y"
50099 : { (yyval.node) = (yyvsp[0].node); }
50100 : #line 50101 "gram.c"
50101 39572 : break;
50102 :
50103 392168 : case 2115: /* c_expr: func_expr */
50104 : #line 15572 "gram.y"
50105 : { (yyval.node) = (yyvsp[0].node); }
50106 : #line 50107 "gram.c"
50107 392168 : break;
50108 :
50109 28830 : case 2116: /* c_expr: select_with_parens */
50110 : #line 15574 "gram.y"
50111 : {
50112 : SubLink *n = makeNode(SubLink);
50113 :
50114 : n->subLinkType = EXPR_SUBLINK;
50115 : n->subLinkId = 0;
50116 : n->testexpr = NULL;
50117 : n->operName = NIL;
50118 : n->subselect = (yyvsp[0].node);
50119 : n->location = (yylsp[0]);
50120 : (yyval.node) = (Node *) n;
50121 : }
50122 : #line 50123 "gram.c"
50123 28830 : break;
50124 :
50125 18 : case 2117: /* c_expr: select_with_parens indirection */
50126 : #line 15586 "gram.y"
50127 : {
50128 : /*
50129 : * Because the select_with_parens nonterminal is designed
50130 : * to "eat" as many levels of parens as possible, the
50131 : * '(' a_expr ')' opt_indirection production above will
50132 : * fail to match a sub-SELECT with indirection decoration;
50133 : * the sub-SELECT won't be regarded as an a_expr as long
50134 : * as there are parens around it. To support applying
50135 : * subscripting or field selection to a sub-SELECT result,
50136 : * we need this redundant-looking production.
50137 : */
50138 : SubLink *n = makeNode(SubLink);
50139 : A_Indirection *a = makeNode(A_Indirection);
50140 :
50141 : n->subLinkType = EXPR_SUBLINK;
50142 : n->subLinkId = 0;
50143 : n->testexpr = NULL;
50144 : n->operName = NIL;
50145 : n->subselect = (yyvsp[-1].node);
50146 : n->location = (yylsp[-1]);
50147 : a->arg = (Node *) n;
50148 : a->indirection = check_indirection((yyvsp[0].list), yyscanner);
50149 : (yyval.node) = (Node *) a;
50150 : }
50151 : #line 50152 "gram.c"
50152 18 : break;
50153 :
50154 6446 : case 2118: /* c_expr: EXISTS select_with_parens */
50155 : #line 15611 "gram.y"
50156 : {
50157 : SubLink *n = makeNode(SubLink);
50158 :
50159 : n->subLinkType = EXISTS_SUBLINK;
50160 : n->subLinkId = 0;
50161 : n->testexpr = NULL;
50162 : n->operName = NIL;
50163 : n->subselect = (yyvsp[0].node);
50164 : n->location = (yylsp[-1]);
50165 : (yyval.node) = (Node *) n;
50166 : }
50167 : #line 50168 "gram.c"
50168 6446 : break;
50169 :
50170 8944 : case 2119: /* c_expr: ARRAY select_with_parens */
50171 : #line 15623 "gram.y"
50172 : {
50173 : SubLink *n = makeNode(SubLink);
50174 :
50175 : n->subLinkType = ARRAY_SUBLINK;
50176 : n->subLinkId = 0;
50177 : n->testexpr = NULL;
50178 : n->operName = NIL;
50179 : n->subselect = (yyvsp[0].node);
50180 : n->location = (yylsp[-1]);
50181 : (yyval.node) = (Node *) n;
50182 : }
50183 : #line 50184 "gram.c"
50184 8944 : break;
50185 :
50186 7396 : case 2120: /* c_expr: ARRAY array_expr */
50187 : #line 15635 "gram.y"
50188 : {
50189 : A_ArrayExpr *n = castNode(A_ArrayExpr, (yyvsp[0].node));
50190 :
50191 : /* point outermost A_ArrayExpr to the ARRAY keyword */
50192 : n->location = (yylsp[-1]);
50193 : (yyval.node) = (Node *) n;
50194 : }
50195 : #line 50196 "gram.c"
50196 7396 : break;
50197 :
50198 3816 : case 2121: /* c_expr: explicit_row */
50199 : #line 15643 "gram.y"
50200 : {
50201 : RowExpr *r = makeNode(RowExpr);
50202 :
50203 : r->args = (yyvsp[0].list);
50204 : r->row_typeid = InvalidOid; /* not analyzed yet */
50205 : r->colnames = NIL; /* to be filled in during analysis */
50206 : r->row_format = COERCE_EXPLICIT_CALL; /* abuse */
50207 : r->location = (yylsp[0]);
50208 : (yyval.node) = (Node *) r;
50209 : }
50210 : #line 50211 "gram.c"
50211 3816 : break;
50212 :
50213 2558 : case 2122: /* c_expr: implicit_row */
50214 : #line 15654 "gram.y"
50215 : {
50216 : RowExpr *r = makeNode(RowExpr);
50217 :
50218 : r->args = (yyvsp[0].list);
50219 : r->row_typeid = InvalidOid; /* not analyzed yet */
50220 : r->colnames = NIL; /* to be filled in during analysis */
50221 : r->row_format = COERCE_IMPLICIT_CAST; /* abuse */
50222 : r->location = (yylsp[0]);
50223 : (yyval.node) = (Node *) r;
50224 : }
50225 : #line 50226 "gram.c"
50226 2558 : break;
50227 :
50228 362 : case 2123: /* c_expr: GROUPING '(' expr_list ')' */
50229 : #line 15665 "gram.y"
50230 : {
50231 : GroupingFunc *g = makeNode(GroupingFunc);
50232 :
50233 : g->args = (yyvsp[-1].list);
50234 : g->location = (yylsp[-3]);
50235 : (yyval.node) = (Node *) g;
50236 : }
50237 : #line 50238 "gram.c"
50238 362 : break;
50239 :
50240 32082 : case 2124: /* func_application: func_name '(' ')' */
50241 : #line 15675 "gram.y"
50242 : {
50243 : (yyval.node) = (Node *) makeFuncCall((yyvsp[-2].list), NIL,
50244 : COERCE_EXPLICIT_CALL,
50245 : (yylsp[-2]));
50246 : }
50247 : #line 50248 "gram.c"
50248 32082 : break;
50249 :
50250 320368 : case 2125: /* func_application: func_name '(' func_arg_list opt_sort_clause ')' */
50251 : #line 15681 "gram.y"
50252 : {
50253 : FuncCall *n = makeFuncCall((yyvsp[-4].list), (yyvsp[-2].list),
50254 : COERCE_EXPLICIT_CALL,
50255 : (yylsp[-4]));
50256 :
50257 : n->agg_order = (yyvsp[-1].list);
50258 : (yyval.node) = (Node *) n;
50259 : }
50260 : #line 50261 "gram.c"
50261 320364 : break;
50262 :
50263 614 : case 2126: /* func_application: func_name '(' VARIADIC func_arg_expr opt_sort_clause ')' */
50264 : #line 15690 "gram.y"
50265 : {
50266 : FuncCall *n = makeFuncCall((yyvsp[-5].list), list_make1((yyvsp[-2].node)),
50267 : COERCE_EXPLICIT_CALL,
50268 : (yylsp[-5]));
50269 :
50270 : n->func_variadic = true;
50271 : n->agg_order = (yyvsp[-1].list);
50272 : (yyval.node) = (Node *) n;
50273 : }
50274 : #line 50275 "gram.c"
50275 614 : break;
50276 :
50277 120 : case 2127: /* func_application: func_name '(' func_arg_list ',' VARIADIC func_arg_expr opt_sort_clause ')' */
50278 : #line 15700 "gram.y"
50279 : {
50280 : FuncCall *n = makeFuncCall((yyvsp[-7].list), lappend((yyvsp[-5].list), (yyvsp[-2].node)),
50281 : COERCE_EXPLICIT_CALL,
50282 : (yylsp[-7]));
50283 :
50284 : n->func_variadic = true;
50285 : n->agg_order = (yyvsp[-1].list);
50286 : (yyval.node) = (Node *) n;
50287 : }
50288 : #line 50289 "gram.c"
50289 120 : break;
50290 :
50291 0 : case 2128: /* func_application: func_name '(' ALL func_arg_list opt_sort_clause ')' */
50292 : #line 15710 "gram.y"
50293 : {
50294 : FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list),
50295 : COERCE_EXPLICIT_CALL,
50296 : (yylsp[-5]));
50297 :
50298 : n->agg_order = (yyvsp[-1].list);
50299 : /* Ideally we'd mark the FuncCall node to indicate
50300 : * "must be an aggregate", but there's no provision
50301 : * for that in FuncCall at the moment.
50302 : */
50303 : (yyval.node) = (Node *) n;
50304 : }
50305 : #line 50306 "gram.c"
50306 0 : break;
50307 :
50308 550 : case 2129: /* func_application: func_name '(' DISTINCT func_arg_list opt_sort_clause ')' */
50309 : #line 15723 "gram.y"
50310 : {
50311 : FuncCall *n = makeFuncCall((yyvsp[-5].list), (yyvsp[-2].list),
50312 : COERCE_EXPLICIT_CALL,
50313 : (yylsp[-5]));
50314 :
50315 : n->agg_order = (yyvsp[-1].list);
50316 : n->agg_distinct = true;
50317 : (yyval.node) = (Node *) n;
50318 : }
50319 : #line 50320 "gram.c"
50320 550 : break;
50321 :
50322 12560 : case 2130: /* func_application: func_name '(' '*' ')' */
50323 : #line 15733 "gram.y"
50324 : {
50325 : /*
50326 : * We consider AGGREGATE(*) to invoke a parameterless
50327 : * aggregate. This does the right thing for COUNT(*),
50328 : * and there are no other aggregates in SQL that accept
50329 : * '*' as parameter.
50330 : *
50331 : * The FuncCall node is also marked agg_star = true,
50332 : * so that later processing can detect what the argument
50333 : * really was.
50334 : */
50335 : FuncCall *n = makeFuncCall((yyvsp[-3].list), NIL,
50336 : COERCE_EXPLICIT_CALL,
50337 : (yylsp[-3]));
50338 :
50339 : n->agg_star = true;
50340 : (yyval.node) = (Node *) n;
50341 : }
50342 : #line 50343 "gram.c"
50343 12560 : break;
50344 :
50345 316906 : case 2131: /* func_expr: func_application within_group_clause filter_clause over_clause */
50346 : #line 15764 "gram.y"
50347 : {
50348 : FuncCall *n = (FuncCall *) (yyvsp[-3].node);
50349 :
50350 : /*
50351 : * The order clause for WITHIN GROUP and the one for
50352 : * plain-aggregate ORDER BY share a field, so we have to
50353 : * check here that at most one is present. We also check
50354 : * for DISTINCT and VARIADIC here to give a better error
50355 : * location. Other consistency checks are deferred to
50356 : * parse analysis.
50357 : */
50358 : if ((yyvsp[-2].list) != NIL)
50359 : {
50360 : if (n->agg_order != NIL)
50361 : ereport(ERROR,
50362 : (errcode(ERRCODE_SYNTAX_ERROR),
50363 : errmsg("cannot use multiple ORDER BY clauses with WITHIN GROUP"),
50364 : parser_errposition((yylsp[-2]))));
50365 : if (n->agg_distinct)
50366 : ereport(ERROR,
50367 : (errcode(ERRCODE_SYNTAX_ERROR),
50368 : errmsg("cannot use DISTINCT with WITHIN GROUP"),
50369 : parser_errposition((yylsp[-2]))));
50370 : if (n->func_variadic)
50371 : ereport(ERROR,
50372 : (errcode(ERRCODE_SYNTAX_ERROR),
50373 : errmsg("cannot use VARIADIC with WITHIN GROUP"),
50374 : parser_errposition((yylsp[-2]))));
50375 : n->agg_order = (yyvsp[-2].list);
50376 : n->agg_within_group = true;
50377 : }
50378 : n->agg_filter = (yyvsp[-1].node);
50379 : n->over = (yyvsp[0].windef);
50380 : (yyval.node) = (Node *) n;
50381 : }
50382 : #line 50383 "gram.c"
50383 316900 : break;
50384 :
50385 360 : case 2132: /* func_expr: json_aggregate_func filter_clause over_clause */
50386 : #line 15800 "gram.y"
50387 : {
50388 : JsonAggConstructor *n = IsA((yyvsp[-2].node), JsonObjectAgg) ?
50389 : ((JsonObjectAgg *) (yyvsp[-2].node))->constructor :
50390 : ((JsonArrayAgg *) (yyvsp[-2].node))->constructor;
50391 :
50392 : n->agg_filter = (yyvsp[-1].node);
50393 : n->over = (yyvsp[0].windef);
50394 : (yyval.node) = (Node *) (yyvsp[-2].node);
50395 : }
50396 : #line 50397 "gram.c"
50397 360 : break;
50398 :
50399 74908 : case 2133: /* func_expr: func_expr_common_subexpr */
50400 : #line 15810 "gram.y"
50401 : { (yyval.node) = (yyvsp[0].node); }
50402 : #line 50403 "gram.c"
50403 74908 : break;
50404 :
50405 48762 : case 2134: /* func_expr_windowless: func_application */
50406 : #line 15820 "gram.y"
50407 : { (yyval.node) = (yyvsp[0].node); }
50408 : #line 50409 "gram.c"
50409 48762 : break;
50410 :
50411 402 : case 2135: /* func_expr_windowless: func_expr_common_subexpr */
50412 : #line 15821 "gram.y"
50413 : { (yyval.node) = (yyvsp[0].node); }
50414 : #line 50415 "gram.c"
50415 402 : break;
50416 :
50417 0 : case 2136: /* func_expr_windowless: json_aggregate_func */
50418 : #line 15822 "gram.y"
50419 : { (yyval.node) = (yyvsp[0].node); }
50420 : #line 50421 "gram.c"
50421 0 : break;
50422 :
50423 30 : case 2137: /* func_expr_common_subexpr: COLLATION FOR '(' a_expr ')' */
50424 : #line 15830 "gram.y"
50425 : {
50426 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("pg_collation_for"),
50427 : list_make1((yyvsp[-1].node)),
50428 : COERCE_SQL_SYNTAX,
50429 : (yylsp[-4]));
50430 : }
50431 : #line 50432 "gram.c"
50432 30 : break;
50433 :
50434 304 : case 2138: /* func_expr_common_subexpr: CURRENT_DATE */
50435 : #line 15837 "gram.y"
50436 : {
50437 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_DATE, -1, (yylsp[0]));
50438 : }
50439 : #line 50440 "gram.c"
50440 304 : break;
50441 :
50442 24 : case 2139: /* func_expr_common_subexpr: CURRENT_TIME */
50443 : #line 15841 "gram.y"
50444 : {
50445 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME, -1, (yylsp[0]));
50446 : }
50447 : #line 50448 "gram.c"
50448 24 : break;
50449 :
50450 24 : case 2140: /* func_expr_common_subexpr: CURRENT_TIME '(' Iconst ')' */
50451 : #line 15845 "gram.y"
50452 : {
50453 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIME_N, (yyvsp[-1].ival), (yylsp[-3]));
50454 : }
50455 : #line 50456 "gram.c"
50456 24 : break;
50457 :
50458 284 : case 2141: /* func_expr_common_subexpr: CURRENT_TIMESTAMP */
50459 : #line 15849 "gram.y"
50460 : {
50461 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP, -1, (yylsp[0]));
50462 : }
50463 : #line 50464 "gram.c"
50464 284 : break;
50465 :
50466 172 : case 2142: /* func_expr_common_subexpr: CURRENT_TIMESTAMP '(' Iconst ')' */
50467 : #line 15853 "gram.y"
50468 : {
50469 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_TIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3]));
50470 : }
50471 : #line 50472 "gram.c"
50472 172 : break;
50473 :
50474 24 : case 2143: /* func_expr_common_subexpr: LOCALTIME */
50475 : #line 15857 "gram.y"
50476 : {
50477 : (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME, -1, (yylsp[0]));
50478 : }
50479 : #line 50480 "gram.c"
50480 24 : break;
50481 :
50482 24 : case 2144: /* func_expr_common_subexpr: LOCALTIME '(' Iconst ')' */
50483 : #line 15861 "gram.y"
50484 : {
50485 : (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIME_N, (yyvsp[-1].ival), (yylsp[-3]));
50486 : }
50487 : #line 50488 "gram.c"
50488 24 : break;
50489 :
50490 36 : case 2145: /* func_expr_common_subexpr: LOCALTIMESTAMP */
50491 : #line 15865 "gram.y"
50492 : {
50493 : (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP, -1, (yylsp[0]));
50494 : }
50495 : #line 50496 "gram.c"
50496 36 : break;
50497 :
50498 24 : case 2146: /* func_expr_common_subexpr: LOCALTIMESTAMP '(' Iconst ')' */
50499 : #line 15869 "gram.y"
50500 : {
50501 : (yyval.node) = makeSQLValueFunction(SVFOP_LOCALTIMESTAMP_N, (yyvsp[-1].ival), (yylsp[-3]));
50502 : }
50503 : #line 50504 "gram.c"
50504 24 : break;
50505 :
50506 68 : case 2147: /* func_expr_common_subexpr: CURRENT_ROLE */
50507 : #line 15873 "gram.y"
50508 : {
50509 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_ROLE, -1, (yylsp[0]));
50510 : }
50511 : #line 50512 "gram.c"
50512 68 : break;
50513 :
50514 1076 : case 2148: /* func_expr_common_subexpr: CURRENT_USER */
50515 : #line 15877 "gram.y"
50516 : {
50517 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_USER, -1, (yylsp[0]));
50518 : }
50519 : #line 50520 "gram.c"
50520 1076 : break;
50521 :
50522 584 : case 2149: /* func_expr_common_subexpr: SESSION_USER */
50523 : #line 15881 "gram.y"
50524 : {
50525 : (yyval.node) = makeSQLValueFunction(SVFOP_SESSION_USER, -1, (yylsp[0]));
50526 : }
50527 : #line 50528 "gram.c"
50528 584 : break;
50529 :
50530 20 : case 2150: /* func_expr_common_subexpr: SYSTEM_USER */
50531 : #line 15885 "gram.y"
50532 : {
50533 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("system_user"),
50534 : NIL,
50535 : COERCE_SQL_SYNTAX,
50536 : (yylsp[0]));
50537 : }
50538 : #line 50539 "gram.c"
50539 20 : break;
50540 :
50541 24 : case 2151: /* func_expr_common_subexpr: USER */
50542 : #line 15892 "gram.y"
50543 : {
50544 : (yyval.node) = makeSQLValueFunction(SVFOP_USER, -1, (yylsp[0]));
50545 : }
50546 : #line 50547 "gram.c"
50547 24 : break;
50548 :
50549 52 : case 2152: /* func_expr_common_subexpr: CURRENT_CATALOG */
50550 : #line 15896 "gram.y"
50551 : {
50552 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_CATALOG, -1, (yylsp[0]));
50553 : }
50554 : #line 50555 "gram.c"
50555 52 : break;
50556 :
50557 30 : case 2153: /* func_expr_common_subexpr: CURRENT_SCHEMA */
50558 : #line 15900 "gram.y"
50559 : {
50560 : (yyval.node) = makeSQLValueFunction(SVFOP_CURRENT_SCHEMA, -1, (yylsp[0]));
50561 : }
50562 : #line 50563 "gram.c"
50563 30 : break;
50564 :
50565 61186 : case 2154: /* func_expr_common_subexpr: CAST '(' a_expr AS Typename ')' */
50566 : #line 15904 "gram.y"
50567 : { (yyval.node) = makeTypeCast((yyvsp[-3].node), (yyvsp[-1].typnam), (yylsp[-5])); }
50568 : #line 50569 "gram.c"
50569 61186 : break;
50570 :
50571 1374 : case 2155: /* func_expr_common_subexpr: EXTRACT '(' extract_list ')' */
50572 : #line 15906 "gram.y"
50573 : {
50574 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("extract"),
50575 : (yyvsp[-1].list),
50576 : COERCE_SQL_SYNTAX,
50577 : (yylsp[-3]));
50578 : }
50579 : #line 50580 "gram.c"
50580 1374 : break;
50581 :
50582 18 : case 2156: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ')' */
50583 : #line 15913 "gram.y"
50584 : {
50585 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"),
50586 : list_make1((yyvsp[-1].node)),
50587 : COERCE_SQL_SYNTAX,
50588 : (yylsp[-3]));
50589 : }
50590 : #line 50591 "gram.c"
50591 18 : break;
50592 :
50593 42 : case 2157: /* func_expr_common_subexpr: NORMALIZE '(' a_expr ',' unicode_normal_form ')' */
50594 : #line 15920 "gram.y"
50595 : {
50596 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("normalize"),
50597 : list_make2((yyvsp[-3].node), makeStringConst((yyvsp[-1].str), (yylsp[-1]))),
50598 : COERCE_SQL_SYNTAX,
50599 : (yylsp[-5]));
50600 : }
50601 : #line 50602 "gram.c"
50602 42 : break;
50603 :
50604 82 : case 2158: /* func_expr_common_subexpr: OVERLAY '(' overlay_list ')' */
50605 : #line 15927 "gram.y"
50606 : {
50607 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("overlay"),
50608 : (yyvsp[-1].list),
50609 : COERCE_SQL_SYNTAX,
50610 : (yylsp[-3]));
50611 : }
50612 : #line 50613 "gram.c"
50613 82 : break;
50614 :
50615 0 : case 2159: /* func_expr_common_subexpr: OVERLAY '(' func_arg_list_opt ')' */
50616 : #line 15934 "gram.y"
50617 : {
50618 : /*
50619 : * allow functions named overlay() to be called without
50620 : * special syntax
50621 : */
50622 : (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("overlay")),
50623 : (yyvsp[-1].list),
50624 : COERCE_EXPLICIT_CALL,
50625 : (yylsp[-3]));
50626 : }
50627 : #line 50628 "gram.c"
50628 0 : break;
50629 :
50630 398 : case 2160: /* func_expr_common_subexpr: POSITION '(' position_list ')' */
50631 : #line 15945 "gram.y"
50632 : {
50633 : /*
50634 : * position(A in B) is converted to position(B, A)
50635 : *
50636 : * We deliberately don't offer a "plain syntax" option
50637 : * for position(), because the reversal of the arguments
50638 : * creates too much risk of confusion.
50639 : */
50640 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("position"),
50641 : (yyvsp[-1].list),
50642 : COERCE_SQL_SYNTAX,
50643 : (yylsp[-3]));
50644 : }
50645 : #line 50646 "gram.c"
50646 398 : break;
50647 :
50648 702 : case 2161: /* func_expr_common_subexpr: SUBSTRING '(' substr_list ')' */
50649 : #line 15959 "gram.y"
50650 : {
50651 : /* substring(A from B for C) is converted to
50652 : * substring(A, B, C) - thomas 2000-11-28
50653 : */
50654 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("substring"),
50655 : (yyvsp[-1].list),
50656 : COERCE_SQL_SYNTAX,
50657 : (yylsp[-3]));
50658 : }
50659 : #line 50660 "gram.c"
50660 702 : break;
50661 :
50662 206 : case 2162: /* func_expr_common_subexpr: SUBSTRING '(' func_arg_list_opt ')' */
50663 : #line 15969 "gram.y"
50664 : {
50665 : /*
50666 : * allow functions named substring() to be called without
50667 : * special syntax
50668 : */
50669 : (yyval.node) = (Node *) makeFuncCall(list_make1(makeString("substring")),
50670 : (yyvsp[-1].list),
50671 : COERCE_EXPLICIT_CALL,
50672 : (yylsp[-3]));
50673 : }
50674 : #line 50675 "gram.c"
50675 206 : break;
50676 :
50677 0 : case 2163: /* func_expr_common_subexpr: TREAT '(' a_expr AS Typename ')' */
50678 : #line 15980 "gram.y"
50679 : {
50680 : /* TREAT(expr AS target) converts expr of a particular type to target,
50681 : * which is defined to be a subtype of the original expression.
50682 : * In SQL99, this is intended for use with structured UDTs,
50683 : * but let's make this a generally useful form allowing stronger
50684 : * coercions than are handled by implicit casting.
50685 : *
50686 : * Convert SystemTypeName() to SystemFuncName() even though
50687 : * at the moment they result in the same thing.
50688 : */
50689 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName(strVal(llast((yyvsp[-1].typnam)->names))),
50690 : list_make1((yyvsp[-3].node)),
50691 : COERCE_EXPLICIT_CALL,
50692 : (yylsp[-5]));
50693 : }
50694 : #line 50695 "gram.c"
50695 0 : break;
50696 :
50697 12 : case 2164: /* func_expr_common_subexpr: TRIM '(' BOTH trim_list ')' */
50698 : #line 15996 "gram.y"
50699 : {
50700 : /* various trim expressions are defined in SQL
50701 : * - thomas 1997-07-19
50702 : */
50703 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"),
50704 : (yyvsp[-1].list),
50705 : COERCE_SQL_SYNTAX,
50706 : (yylsp[-4]));
50707 : }
50708 : #line 50709 "gram.c"
50709 12 : break;
50710 :
50711 24 : case 2165: /* func_expr_common_subexpr: TRIM '(' LEADING trim_list ')' */
50712 : #line 16006 "gram.y"
50713 : {
50714 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("ltrim"),
50715 : (yyvsp[-1].list),
50716 : COERCE_SQL_SYNTAX,
50717 : (yylsp[-4]));
50718 : }
50719 : #line 50720 "gram.c"
50720 24 : break;
50721 :
50722 578 : case 2166: /* func_expr_common_subexpr: TRIM '(' TRAILING trim_list ')' */
50723 : #line 16013 "gram.y"
50724 : {
50725 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("rtrim"),
50726 : (yyvsp[-1].list),
50727 : COERCE_SQL_SYNTAX,
50728 : (yylsp[-4]));
50729 : }
50730 : #line 50731 "gram.c"
50731 578 : break;
50732 :
50733 98 : case 2167: /* func_expr_common_subexpr: TRIM '(' trim_list ')' */
50734 : #line 16020 "gram.y"
50735 : {
50736 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("btrim"),
50737 : (yyvsp[-1].list),
50738 : COERCE_SQL_SYNTAX,
50739 : (yylsp[-3]));
50740 : }
50741 : #line 50742 "gram.c"
50742 98 : break;
50743 :
50744 416 : case 2168: /* func_expr_common_subexpr: NULLIF '(' a_expr ',' a_expr ')' */
50745 : #line 16027 "gram.y"
50746 : {
50747 : (yyval.node) = (Node *) makeSimpleA_Expr(AEXPR_NULLIF, "=", (yyvsp[-3].node), (yyvsp[-1].node), (yylsp[-5]));
50748 : }
50749 : #line 50750 "gram.c"
50750 416 : break;
50751 :
50752 3150 : case 2169: /* func_expr_common_subexpr: COALESCE '(' expr_list ')' */
50753 : #line 16031 "gram.y"
50754 : {
50755 : CoalesceExpr *c = makeNode(CoalesceExpr);
50756 :
50757 : c->args = (yyvsp[-1].list);
50758 : c->location = (yylsp[-3]);
50759 : (yyval.node) = (Node *) c;
50760 : }
50761 : #line 50762 "gram.c"
50762 3150 : break;
50763 :
50764 140 : case 2170: /* func_expr_common_subexpr: GREATEST '(' expr_list ')' */
50765 : #line 16039 "gram.y"
50766 : {
50767 : MinMaxExpr *v = makeNode(MinMaxExpr);
50768 :
50769 : v->args = (yyvsp[-1].list);
50770 : v->op = IS_GREATEST;
50771 : v->location = (yylsp[-3]);
50772 : (yyval.node) = (Node *) v;
50773 : }
50774 : #line 50775 "gram.c"
50775 140 : break;
50776 :
50777 124 : case 2171: /* func_expr_common_subexpr: LEAST '(' expr_list ')' */
50778 : #line 16048 "gram.y"
50779 : {
50780 : MinMaxExpr *v = makeNode(MinMaxExpr);
50781 :
50782 : v->args = (yyvsp[-1].list);
50783 : v->op = IS_LEAST;
50784 : v->location = (yylsp[-3]);
50785 : (yyval.node) = (Node *) v;
50786 : }
50787 : #line 50788 "gram.c"
50788 124 : break;
50789 :
50790 64 : case 2172: /* func_expr_common_subexpr: XMLCONCAT '(' expr_list ')' */
50791 : #line 16057 "gram.y"
50792 : {
50793 : (yyval.node) = makeXmlExpr(IS_XMLCONCAT, NULL, NIL, (yyvsp[-1].list), (yylsp[-3]));
50794 : }
50795 : #line 50796 "gram.c"
50796 64 : break;
50797 :
50798 6 : case 2173: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ')' */
50799 : #line 16061 "gram.y"
50800 : {
50801 : (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-1].str), NIL, NIL, (yylsp[-4]));
50802 : }
50803 : #line 50804 "gram.c"
50804 6 : break;
50805 :
50806 36 : case 2174: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ')' */
50807 : #line 16065 "gram.y"
50808 : {
50809 : (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), (yyvsp[-1].list), NIL, (yylsp[-6]));
50810 : }
50811 : #line 50812 "gram.c"
50812 36 : break;
50813 :
50814 118 : case 2175: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' expr_list ')' */
50815 : #line 16069 "gram.y"
50816 : {
50817 : (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-3].str), NIL, (yyvsp[-1].list), (yylsp[-6]));
50818 : }
50819 : #line 50820 "gram.c"
50820 118 : break;
50821 :
50822 22 : case 2176: /* func_expr_common_subexpr: XMLELEMENT '(' NAME_P ColLabel ',' xml_attributes ',' expr_list ')' */
50823 : #line 16073 "gram.y"
50824 : {
50825 : (yyval.node) = makeXmlExpr(IS_XMLELEMENT, (yyvsp[-5].str), (yyvsp[-3].list), (yyvsp[-1].list), (yylsp[-8]));
50826 : }
50827 : #line 50828 "gram.c"
50828 22 : break;
50829 :
50830 54 : case 2177: /* func_expr_common_subexpr: XMLEXISTS '(' c_expr xmlexists_argument ')' */
50831 : #line 16077 "gram.y"
50832 : {
50833 : /* xmlexists(A PASSING [BY REF] B [BY REF]) is
50834 : * converted to xmlexists(A, B)*/
50835 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("xmlexists"),
50836 : list_make2((yyvsp[-2].node), (yyvsp[-1].node)),
50837 : COERCE_SQL_SYNTAX,
50838 : (yylsp[-4]));
50839 : }
50840 : #line 50841 "gram.c"
50841 54 : break;
50842 :
50843 34 : case 2178: /* func_expr_common_subexpr: XMLFOREST '(' xml_attribute_list ')' */
50844 : #line 16086 "gram.y"
50845 : {
50846 : (yyval.node) = makeXmlExpr(IS_XMLFOREST, NULL, (yyvsp[-1].list), NIL, (yylsp[-3]));
50847 : }
50848 : #line 50849 "gram.c"
50849 34 : break;
50850 :
50851 142 : case 2179: /* func_expr_common_subexpr: XMLPARSE '(' document_or_content a_expr xml_whitespace_option ')' */
50852 : #line 16090 "gram.y"
50853 : {
50854 : XmlExpr *x = (XmlExpr *)
50855 : makeXmlExpr(IS_XMLPARSE, NULL, NIL,
50856 : list_make2((yyvsp[-2].node), makeBoolAConst((yyvsp[-1].boolean), -1)),
50857 : (yylsp[-5]));
50858 :
50859 : x->xmloption = (yyvsp[-3].ival);
50860 : (yyval.node) = (Node *) x;
50861 : }
50862 : #line 50863 "gram.c"
50863 142 : break;
50864 :
50865 30 : case 2180: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ')' */
50866 : #line 16100 "gram.y"
50867 : {
50868 : (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-1].str), NULL, NIL, (yylsp[-4]));
50869 : }
50870 : #line 50871 "gram.c"
50871 30 : break;
50872 :
50873 52 : case 2181: /* func_expr_common_subexpr: XMLPI '(' NAME_P ColLabel ',' a_expr ')' */
50874 : #line 16104 "gram.y"
50875 : {
50876 : (yyval.node) = makeXmlExpr(IS_XMLPI, (yyvsp[-3].str), NULL, list_make1((yyvsp[-1].node)), (yylsp[-6]));
50877 : }
50878 : #line 50879 "gram.c"
50879 52 : break;
50880 :
50881 70 : case 2182: /* func_expr_common_subexpr: XMLROOT '(' a_expr ',' xml_root_version opt_xml_root_standalone ')' */
50882 : #line 16108 "gram.y"
50883 : {
50884 : (yyval.node) = makeXmlExpr(IS_XMLROOT, NULL, NIL,
50885 : list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[-1].node)), (yylsp[-6]));
50886 : }
50887 : #line 50888 "gram.c"
50888 70 : break;
50889 :
50890 226 : case 2183: /* func_expr_common_subexpr: XMLSERIALIZE '(' document_or_content a_expr AS SimpleTypename xml_indent_option ')' */
50891 : #line 16113 "gram.y"
50892 : {
50893 : XmlSerialize *n = makeNode(XmlSerialize);
50894 :
50895 : n->xmloption = (yyvsp[-5].ival);
50896 : n->expr = (yyvsp[-4].node);
50897 : n->typeName = (yyvsp[-2].typnam);
50898 : n->indent = (yyvsp[-1].boolean);
50899 : n->location = (yylsp[-7]);
50900 : (yyval.node) = (Node *) n;
50901 : }
50902 : #line 50903 "gram.c"
50903 226 : break;
50904 :
50905 90 : case 2184: /* func_expr_common_subexpr: JSON_OBJECT '(' func_arg_list ')' */
50906 : #line 16124 "gram.y"
50907 : {
50908 : /* Support for legacy (non-standard) json_object() */
50909 : (yyval.node) = (Node *) makeFuncCall(SystemFuncName("json_object"),
50910 : (yyvsp[-1].list), COERCE_EXPLICIT_CALL, (yylsp[-3]));
50911 : }
50912 : #line 50913 "gram.c"
50913 90 : break;
50914 :
50915 348 : case 2185: /* func_expr_common_subexpr: JSON_OBJECT '(' json_name_and_value_list json_object_constructor_null_clause_opt json_key_uniqueness_constraint_opt json_returning_clause_opt ')' */
50916 : #line 16133 "gram.y"
50917 : {
50918 : JsonObjectConstructor *n = makeNode(JsonObjectConstructor);
50919 :
50920 : n->exprs = (yyvsp[-4].list);
50921 : n->absent_on_null = (yyvsp[-3].boolean);
50922 : n->unique = (yyvsp[-2].boolean);
50923 : n->output = (JsonOutput *) (yyvsp[-1].node);
50924 : n->location = (yylsp[-6]);
50925 : (yyval.node) = (Node *) n;
50926 : }
50927 : #line 50928 "gram.c"
50928 348 : break;
50929 :
50930 92 : case 2186: /* func_expr_common_subexpr: JSON_OBJECT '(' json_returning_clause_opt ')' */
50931 : #line 16144 "gram.y"
50932 : {
50933 : JsonObjectConstructor *n = makeNode(JsonObjectConstructor);
50934 :
50935 : n->exprs = NULL;
50936 : n->absent_on_null = false;
50937 : n->unique = false;
50938 : n->output = (JsonOutput *) (yyvsp[-1].node);
50939 : n->location = (yylsp[-3]);
50940 : (yyval.node) = (Node *) n;
50941 : }
50942 : #line 50943 "gram.c"
50943 92 : break;
50944 :
50945 108 : case 2187: /* func_expr_common_subexpr: JSON_ARRAY '(' json_value_expr_list json_array_constructor_null_clause_opt json_returning_clause_opt ')' */
50946 : #line 16159 "gram.y"
50947 : {
50948 : JsonArrayConstructor *n = makeNode(JsonArrayConstructor);
50949 :
50950 : n->exprs = (yyvsp[-3].list);
50951 : n->absent_on_null = (yyvsp[-2].boolean);
50952 : n->output = (JsonOutput *) (yyvsp[-1].node);
50953 : n->location = (yylsp[-5]);
50954 : (yyval.node) = (Node *) n;
50955 : }
50956 : #line 50957 "gram.c"
50957 108 : break;
50958 :
50959 60 : case 2188: /* func_expr_common_subexpr: JSON_ARRAY '(' select_no_parens json_format_clause_opt json_returning_clause_opt ')' */
50960 : #line 16174 "gram.y"
50961 : {
50962 : JsonArrayQueryConstructor *n = makeNode(JsonArrayQueryConstructor);
50963 :
50964 : n->query = (yyvsp[-3].node);
50965 : n->format = (JsonFormat *) (yyvsp[-2].node);
50966 : n->absent_on_null = true; /* XXX */
50967 : n->output = (JsonOutput *) (yyvsp[-1].node);
50968 : n->location = (yylsp[-5]);
50969 : (yyval.node) = (Node *) n;
50970 : }
50971 : #line 50972 "gram.c"
50972 60 : break;
50973 :
50974 86 : case 2189: /* func_expr_common_subexpr: JSON_ARRAY '(' json_returning_clause_opt ')' */
50975 : #line 16187 "gram.y"
50976 : {
50977 : JsonArrayConstructor *n = makeNode(JsonArrayConstructor);
50978 :
50979 : n->exprs = NIL;
50980 : n->absent_on_null = true;
50981 : n->output = (JsonOutput *) (yyvsp[-1].node);
50982 : n->location = (yylsp[-3]);
50983 : (yyval.node) = (Node *) n;
50984 : }
50985 : #line 50986 "gram.c"
50986 86 : break;
50987 :
50988 164 : case 2190: /* func_expr_common_subexpr: JSON '(' json_value_expr json_key_uniqueness_constraint_opt ')' */
50989 : #line 16197 "gram.y"
50990 : {
50991 : JsonParseExpr *n = makeNode(JsonParseExpr);
50992 :
50993 : n->expr = (JsonValueExpr *) (yyvsp[-2].node);
50994 : n->unique_keys = (yyvsp[-1].boolean);
50995 : n->output = NULL;
50996 : n->location = (yylsp[-4]);
50997 : (yyval.node) = (Node *) n;
50998 : }
50999 : #line 51000 "gram.c"
51000 164 : break;
51001 :
51002 112 : case 2191: /* func_expr_common_subexpr: JSON_SCALAR '(' a_expr ')' */
51003 : #line 16207 "gram.y"
51004 : {
51005 : JsonScalarExpr *n = makeNode(JsonScalarExpr);
51006 :
51007 : n->expr = (Expr *) (yyvsp[-1].node);
51008 : n->output = NULL;
51009 : n->location = (yylsp[-3]);
51010 : (yyval.node) = (Node *) n;
51011 : }
51012 : #line 51013 "gram.c"
51013 112 : break;
51014 :
51015 108 : case 2192: /* func_expr_common_subexpr: JSON_SERIALIZE '(' json_value_expr json_returning_clause_opt ')' */
51016 : #line 16216 "gram.y"
51017 : {
51018 : JsonSerializeExpr *n = makeNode(JsonSerializeExpr);
51019 :
51020 : n->expr = (JsonValueExpr *) (yyvsp[-2].node);
51021 : n->output = (JsonOutput *) (yyvsp[-1].node);
51022 : n->location = (yylsp[-4]);
51023 : (yyval.node) = (Node *) n;
51024 : }
51025 : #line 51026 "gram.c"
51026 108 : break;
51027 :
51028 210 : case 2193: /* func_expr_common_subexpr: MERGE_ACTION '(' ')' */
51029 : #line 16225 "gram.y"
51030 : {
51031 : MergeSupportFunc *m = makeNode(MergeSupportFunc);
51032 :
51033 : m->msftype = TEXTOID;
51034 : m->location = (yylsp[-2]);
51035 : (yyval.node) = (Node *) m;
51036 : }
51037 : #line 51038 "gram.c"
51038 210 : break;
51039 :
51040 984 : case 2194: /* func_expr_common_subexpr: JSON_QUERY '(' json_value_expr ',' a_expr json_passing_clause_opt json_returning_clause_opt json_wrapper_behavior json_quotes_clause_opt json_behavior_clause_opt ')' */
51041 : #line 16239 "gram.y"
51042 : {
51043 : JsonFuncExpr *n = makeNode(JsonFuncExpr);
51044 :
51045 : n->op = JSON_QUERY_OP;
51046 : n->context_item = (JsonValueExpr *) (yyvsp[-8].node);
51047 : n->pathspec = (yyvsp[-6].node);
51048 : n->passing = (yyvsp[-5].list);
51049 : n->output = (JsonOutput *) (yyvsp[-4].node);
51050 : n->wrapper = (yyvsp[-3].ival);
51051 : n->quotes = (yyvsp[-2].ival);
51052 : n->on_empty = (JsonBehavior *) linitial((yyvsp[-1].list));
51053 : n->on_error = (JsonBehavior *) lsecond((yyvsp[-1].list));
51054 : n->location = (yylsp[-10]);
51055 : (yyval.node) = (Node *) n;
51056 : }
51057 : #line 51058 "gram.c"
51058 984 : break;
51059 :
51060 168 : case 2195: /* func_expr_common_subexpr: JSON_EXISTS '(' json_value_expr ',' a_expr json_passing_clause_opt json_on_error_clause_opt ')' */
51061 : #line 16258 "gram.y"
51062 : {
51063 : JsonFuncExpr *n = makeNode(JsonFuncExpr);
51064 :
51065 : n->op = JSON_EXISTS_OP;
51066 : n->context_item = (JsonValueExpr *) (yyvsp[-5].node);
51067 : n->pathspec = (yyvsp[-3].node);
51068 : n->passing = (yyvsp[-2].list);
51069 : n->output = NULL;
51070 : n->on_error = (JsonBehavior *) (yyvsp[-1].node);
51071 : n->location = (yylsp[-7]);
51072 : (yyval.node) = (Node *) n;
51073 : }
51074 : #line 51075 "gram.c"
51075 168 : break;
51076 :
51077 576 : case 2196: /* func_expr_common_subexpr: JSON_VALUE '(' json_value_expr ',' a_expr json_passing_clause_opt json_returning_clause_opt json_behavior_clause_opt ')' */
51078 : #line 16275 "gram.y"
51079 : {
51080 : JsonFuncExpr *n = makeNode(JsonFuncExpr);
51081 :
51082 : n->op = JSON_VALUE_OP;
51083 : n->context_item = (JsonValueExpr *) (yyvsp[-6].node);
51084 : n->pathspec = (yyvsp[-4].node);
51085 : n->passing = (yyvsp[-3].list);
51086 : n->output = (JsonOutput *) (yyvsp[-2].node);
51087 : n->on_empty = (JsonBehavior *) linitial((yyvsp[-1].list));
51088 : n->on_error = (JsonBehavior *) lsecond((yyvsp[-1].list));
51089 : n->location = (yylsp[-8]);
51090 : (yyval.node) = (Node *) n;
51091 : }
51092 : #line 51093 "gram.c"
51093 576 : break;
51094 :
51095 24 : case 2197: /* xml_root_version: VERSION_P a_expr */
51096 : #line 16295 "gram.y"
51097 : { (yyval.node) = (yyvsp[0].node); }
51098 : #line 51099 "gram.c"
51099 24 : break;
51100 :
51101 46 : case 2198: /* xml_root_version: VERSION_P NO VALUE_P */
51102 : #line 16297 "gram.y"
51103 : { (yyval.node) = makeNullAConst(-1); }
51104 : #line 51105 "gram.c"
51105 46 : break;
51106 :
51107 28 : case 2199: /* opt_xml_root_standalone: ',' STANDALONE_P YES_P */
51108 : #line 16301 "gram.y"
51109 : { (yyval.node) = makeIntConst(XML_STANDALONE_YES, -1); }
51110 : #line 51111 "gram.c"
51111 28 : break;
51112 :
51113 12 : case 2200: /* opt_xml_root_standalone: ',' STANDALONE_P NO */
51114 : #line 16303 "gram.y"
51115 : { (yyval.node) = makeIntConst(XML_STANDALONE_NO, -1); }
51116 : #line 51117 "gram.c"
51117 12 : break;
51118 :
51119 12 : case 2201: /* opt_xml_root_standalone: ',' STANDALONE_P NO VALUE_P */
51120 : #line 16305 "gram.y"
51121 : { (yyval.node) = makeIntConst(XML_STANDALONE_NO_VALUE, -1); }
51122 : #line 51123 "gram.c"
51123 12 : break;
51124 :
51125 18 : case 2202: /* opt_xml_root_standalone: %empty */
51126 : #line 16307 "gram.y"
51127 : { (yyval.node) = makeIntConst(XML_STANDALONE_OMITTED, -1); }
51128 : #line 51129 "gram.c"
51129 18 : break;
51130 :
51131 58 : case 2203: /* xml_attributes: XMLATTRIBUTES '(' xml_attribute_list ')' */
51132 : #line 16310 "gram.y"
51133 : { (yyval.list) = (yyvsp[-1].list); }
51134 : #line 51135 "gram.c"
51135 58 : break;
51136 :
51137 92 : case 2204: /* xml_attribute_list: xml_attribute_el */
51138 : #line 16313 "gram.y"
51139 : { (yyval.list) = list_make1((yyvsp[0].target)); }
51140 : #line 51141 "gram.c"
51141 92 : break;
51142 :
51143 150 : case 2205: /* xml_attribute_list: xml_attribute_list ',' xml_attribute_el */
51144 : #line 16314 "gram.y"
51145 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
51146 : #line 51147 "gram.c"
51147 150 : break;
51148 :
51149 116 : case 2206: /* xml_attribute_el: a_expr AS ColLabel */
51150 : #line 16318 "gram.y"
51151 : {
51152 : (yyval.target) = makeNode(ResTarget);
51153 : (yyval.target)->name = (yyvsp[0].str);
51154 : (yyval.target)->indirection = NIL;
51155 : (yyval.target)->val = (Node *) (yyvsp[-2].node);
51156 : (yyval.target)->location = (yylsp[-2]);
51157 : }
51158 : #line 51159 "gram.c"
51159 116 : break;
51160 :
51161 126 : case 2207: /* xml_attribute_el: a_expr */
51162 : #line 16326 "gram.y"
51163 : {
51164 : (yyval.target) = makeNode(ResTarget);
51165 : (yyval.target)->name = NULL;
51166 : (yyval.target)->indirection = NIL;
51167 : (yyval.target)->val = (Node *) (yyvsp[0].node);
51168 : (yyval.target)->location = (yylsp[0]);
51169 : }
51170 : #line 51171 "gram.c"
51171 126 : break;
51172 :
51173 190 : case 2208: /* document_or_content: DOCUMENT_P */
51174 : #line 16335 "gram.y"
51175 : { (yyval.ival) = XMLOPTION_DOCUMENT; }
51176 : #line 51177 "gram.c"
51177 190 : break;
51178 :
51179 194 : case 2209: /* document_or_content: CONTENT_P */
51180 : #line 16336 "gram.y"
51181 : { (yyval.ival) = XMLOPTION_CONTENT; }
51182 : #line 51183 "gram.c"
51183 194 : break;
51184 :
51185 142 : case 2210: /* xml_indent_option: INDENT */
51186 : #line 16339 "gram.y"
51187 : { (yyval.boolean) = true; }
51188 : #line 51189 "gram.c"
51189 142 : break;
51190 :
51191 42 : case 2211: /* xml_indent_option: NO INDENT */
51192 : #line 16340 "gram.y"
51193 : { (yyval.boolean) = false; }
51194 : #line 51195 "gram.c"
51195 42 : break;
51196 :
51197 42 : case 2212: /* xml_indent_option: %empty */
51198 : #line 16341 "gram.y"
51199 : { (yyval.boolean) = false; }
51200 : #line 51201 "gram.c"
51201 42 : break;
51202 :
51203 0 : case 2213: /* xml_whitespace_option: PRESERVE WHITESPACE_P */
51204 : #line 16344 "gram.y"
51205 : { (yyval.boolean) = true; }
51206 : #line 51207 "gram.c"
51207 0 : break;
51208 :
51209 4 : case 2214: /* xml_whitespace_option: STRIP_P WHITESPACE_P */
51210 : #line 16345 "gram.y"
51211 : { (yyval.boolean) = false; }
51212 : #line 51213 "gram.c"
51213 4 : break;
51214 :
51215 138 : case 2215: /* xml_whitespace_option: %empty */
51216 : #line 16346 "gram.y"
51217 : { (yyval.boolean) = false; }
51218 : #line 51219 "gram.c"
51219 138 : break;
51220 :
51221 236 : case 2216: /* xmlexists_argument: PASSING c_expr */
51222 : #line 16352 "gram.y"
51223 : {
51224 : (yyval.node) = (yyvsp[0].node);
51225 : }
51226 : #line 51227 "gram.c"
51227 236 : break;
51228 :
51229 0 : case 2217: /* xmlexists_argument: PASSING c_expr xml_passing_mech */
51230 : #line 16356 "gram.y"
51231 : {
51232 : (yyval.node) = (yyvsp[-1].node);
51233 : }
51234 : #line 51235 "gram.c"
51235 0 : break;
51236 :
51237 42 : case 2218: /* xmlexists_argument: PASSING xml_passing_mech c_expr */
51238 : #line 16360 "gram.y"
51239 : {
51240 : (yyval.node) = (yyvsp[0].node);
51241 : }
51242 : #line 51243 "gram.c"
51243 42 : break;
51244 :
51245 6 : case 2219: /* xmlexists_argument: PASSING xml_passing_mech c_expr xml_passing_mech */
51246 : #line 16364 "gram.y"
51247 : {
51248 : (yyval.node) = (yyvsp[-1].node);
51249 : }
51250 : #line 51251 "gram.c"
51251 6 : break;
51252 :
51253 348 : case 2222: /* within_group_clause: WITHIN GROUP_P '(' sort_clause ')' */
51254 : #line 16379 "gram.y"
51255 : { (yyval.list) = (yyvsp[-1].list); }
51256 : #line 51257 "gram.c"
51257 348 : break;
51258 :
51259 316564 : case 2223: /* within_group_clause: %empty */
51260 : #line 16380 "gram.y"
51261 : { (yyval.list) = NIL; }
51262 : #line 51263 "gram.c"
51263 316564 : break;
51264 :
51265 854 : case 2224: /* filter_clause: FILTER '(' WHERE a_expr ')' */
51266 : #line 16384 "gram.y"
51267 : { (yyval.node) = (yyvsp[-1].node); }
51268 : #line 51269 "gram.c"
51269 854 : break;
51270 :
51271 316418 : case 2225: /* filter_clause: %empty */
51272 : #line 16385 "gram.y"
51273 : { (yyval.node) = NULL; }
51274 : #line 51275 "gram.c"
51275 316418 : break;
51276 :
51277 540 : case 2226: /* window_clause: WINDOW window_definition_list */
51278 : #line 16393 "gram.y"
51279 : { (yyval.list) = (yyvsp[0].list); }
51280 : #line 51281 "gram.c"
51281 540 : break;
51282 :
51283 477240 : case 2227: /* window_clause: %empty */
51284 : #line 16394 "gram.y"
51285 : { (yyval.list) = NIL; }
51286 : #line 51287 "gram.c"
51287 477240 : break;
51288 :
51289 540 : case 2228: /* window_definition_list: window_definition */
51290 : #line 16398 "gram.y"
51291 : { (yyval.list) = list_make1((yyvsp[0].windef)); }
51292 : #line 51293 "gram.c"
51293 540 : break;
51294 :
51295 12 : case 2229: /* window_definition_list: window_definition_list ',' window_definition */
51296 : #line 16400 "gram.y"
51297 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].windef)); }
51298 : #line 51299 "gram.c"
51299 12 : break;
51300 :
51301 552 : case 2230: /* window_definition: ColId AS window_specification */
51302 : #line 16405 "gram.y"
51303 : {
51304 : WindowDef *n = (yyvsp[0].windef);
51305 :
51306 : n->name = (yyvsp[-2].str);
51307 : (yyval.windef) = n;
51308 : }
51309 : #line 51310 "gram.c"
51310 552 : break;
51311 :
51312 2614 : case 2231: /* over_clause: OVER window_specification */
51313 : #line 16414 "gram.y"
51314 : { (yyval.windef) = (yyvsp[0].windef); }
51315 : #line 51316 "gram.c"
51316 2614 : break;
51317 :
51318 954 : case 2232: /* over_clause: OVER ColId */
51319 : #line 16416 "gram.y"
51320 : {
51321 : WindowDef *n = makeNode(WindowDef);
51322 :
51323 : n->name = (yyvsp[0].str);
51324 : n->refname = NULL;
51325 : n->partitionClause = NIL;
51326 : n->orderClause = NIL;
51327 : n->frameOptions = FRAMEOPTION_DEFAULTS;
51328 : n->startOffset = NULL;
51329 : n->endOffset = NULL;
51330 : n->location = (yylsp[0]);
51331 : (yyval.windef) = n;
51332 : }
51333 : #line 51334 "gram.c"
51334 954 : break;
51335 :
51336 313698 : case 2233: /* over_clause: %empty */
51337 : #line 16430 "gram.y"
51338 : { (yyval.windef) = NULL; }
51339 : #line 51340 "gram.c"
51340 313698 : break;
51341 :
51342 3166 : case 2234: /* window_specification: '(' opt_existing_window_name opt_partition_clause opt_sort_clause opt_frame_clause ')' */
51343 : #line 16435 "gram.y"
51344 : {
51345 : WindowDef *n = makeNode(WindowDef);
51346 :
51347 : n->name = NULL;
51348 : n->refname = (yyvsp[-4].str);
51349 : n->partitionClause = (yyvsp[-3].list);
51350 : n->orderClause = (yyvsp[-2].list);
51351 : /* copy relevant fields of opt_frame_clause */
51352 : n->frameOptions = (yyvsp[-1].windef)->frameOptions;
51353 : n->startOffset = (yyvsp[-1].windef)->startOffset;
51354 : n->endOffset = (yyvsp[-1].windef)->endOffset;
51355 : n->location = (yylsp[-5]);
51356 : (yyval.windef) = n;
51357 : }
51358 : #line 51359 "gram.c"
51359 3166 : break;
51360 :
51361 54 : case 2235: /* opt_existing_window_name: ColId */
51362 : #line 16461 "gram.y"
51363 : { (yyval.str) = (yyvsp[0].str); }
51364 : #line 51365 "gram.c"
51365 54 : break;
51366 :
51367 3118 : case 2236: /* opt_existing_window_name: %empty */
51368 : #line 16462 "gram.y"
51369 : { (yyval.str) = NULL; }
51370 : #line 51371 "gram.c"
51371 3118 : break;
51372 :
51373 918 : case 2237: /* opt_partition_clause: PARTITION BY expr_list */
51374 : #line 16465 "gram.y"
51375 : { (yyval.list) = (yyvsp[0].list); }
51376 : #line 51377 "gram.c"
51377 918 : break;
51378 :
51379 2248 : case 2238: /* opt_partition_clause: %empty */
51380 : #line 16466 "gram.y"
51381 : { (yyval.list) = NIL; }
51382 : #line 51383 "gram.c"
51383 2248 : break;
51384 :
51385 796 : case 2239: /* opt_frame_clause: RANGE frame_extent opt_window_exclusion_clause */
51386 : #line 16475 "gram.y"
51387 : {
51388 : WindowDef *n = (yyvsp[-1].windef);
51389 :
51390 : n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_RANGE;
51391 : n->frameOptions |= (yyvsp[0].ival);
51392 : (yyval.windef) = n;
51393 : }
51394 : #line 51395 "gram.c"
51395 796 : break;
51396 :
51397 624 : case 2240: /* opt_frame_clause: ROWS frame_extent opt_window_exclusion_clause */
51398 : #line 16483 "gram.y"
51399 : {
51400 : WindowDef *n = (yyvsp[-1].windef);
51401 :
51402 : n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_ROWS;
51403 : n->frameOptions |= (yyvsp[0].ival);
51404 : (yyval.windef) = n;
51405 : }
51406 : #line 51407 "gram.c"
51407 624 : break;
51408 :
51409 204 : case 2241: /* opt_frame_clause: GROUPS frame_extent opt_window_exclusion_clause */
51410 : #line 16491 "gram.y"
51411 : {
51412 : WindowDef *n = (yyvsp[-1].windef);
51413 :
51414 : n->frameOptions |= FRAMEOPTION_NONDEFAULT | FRAMEOPTION_GROUPS;
51415 : n->frameOptions |= (yyvsp[0].ival);
51416 : (yyval.windef) = n;
51417 : }
51418 : #line 51419 "gram.c"
51419 204 : break;
51420 :
51421 1542 : case 2242: /* opt_frame_clause: %empty */
51422 : #line 16499 "gram.y"
51423 : {
51424 : WindowDef *n = makeNode(WindowDef);
51425 :
51426 : n->frameOptions = FRAMEOPTION_DEFAULTS;
51427 : n->startOffset = NULL;
51428 : n->endOffset = NULL;
51429 : (yyval.windef) = n;
51430 : }
51431 : #line 51432 "gram.c"
51432 1542 : break;
51433 :
51434 12 : case 2243: /* frame_extent: frame_bound */
51435 : #line 16510 "gram.y"
51436 : {
51437 : WindowDef *n = (yyvsp[0].windef);
51438 :
51439 : /* reject invalid cases */
51440 : if (n->frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
51441 : ereport(ERROR,
51442 : (errcode(ERRCODE_WINDOWING_ERROR),
51443 : errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
51444 : parser_errposition((yylsp[0]))));
51445 : if (n->frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING)
51446 : ereport(ERROR,
51447 : (errcode(ERRCODE_WINDOWING_ERROR),
51448 : errmsg("frame starting from following row cannot end with current row"),
51449 : parser_errposition((yylsp[0]))));
51450 : n->frameOptions |= FRAMEOPTION_END_CURRENT_ROW;
51451 : (yyval.windef) = n;
51452 : }
51453 : #line 51454 "gram.c"
51454 12 : break;
51455 :
51456 1612 : case 2244: /* frame_extent: BETWEEN frame_bound AND frame_bound */
51457 : #line 16528 "gram.y"
51458 : {
51459 : WindowDef *n1 = (yyvsp[-2].windef);
51460 : WindowDef *n2 = (yyvsp[0].windef);
51461 :
51462 : /* form merged options */
51463 : int frameOptions = n1->frameOptions;
51464 : /* shift converts START_ options to END_ options */
51465 : frameOptions |= n2->frameOptions << 1;
51466 : frameOptions |= FRAMEOPTION_BETWEEN;
51467 : /* reject invalid cases */
51468 : if (frameOptions & FRAMEOPTION_START_UNBOUNDED_FOLLOWING)
51469 : ereport(ERROR,
51470 : (errcode(ERRCODE_WINDOWING_ERROR),
51471 : errmsg("frame start cannot be UNBOUNDED FOLLOWING"),
51472 : parser_errposition((yylsp[-2]))));
51473 : if (frameOptions & FRAMEOPTION_END_UNBOUNDED_PRECEDING)
51474 : ereport(ERROR,
51475 : (errcode(ERRCODE_WINDOWING_ERROR),
51476 : errmsg("frame end cannot be UNBOUNDED PRECEDING"),
51477 : parser_errposition((yylsp[0]))));
51478 : if ((frameOptions & FRAMEOPTION_START_CURRENT_ROW) &&
51479 : (frameOptions & FRAMEOPTION_END_OFFSET_PRECEDING))
51480 : ereport(ERROR,
51481 : (errcode(ERRCODE_WINDOWING_ERROR),
51482 : errmsg("frame starting from current row cannot have preceding rows"),
51483 : parser_errposition((yylsp[0]))));
51484 : if ((frameOptions & FRAMEOPTION_START_OFFSET_FOLLOWING) &&
51485 : (frameOptions & (FRAMEOPTION_END_OFFSET_PRECEDING |
51486 : FRAMEOPTION_END_CURRENT_ROW)))
51487 : ereport(ERROR,
51488 : (errcode(ERRCODE_WINDOWING_ERROR),
51489 : errmsg("frame starting from following row cannot have preceding rows"),
51490 : parser_errposition((yylsp[0]))));
51491 : n1->frameOptions = frameOptions;
51492 : n1->endOffset = n2->startOffset;
51493 : (yyval.windef) = n1;
51494 : }
51495 : #line 51496 "gram.c"
51496 1612 : break;
51497 :
51498 198 : case 2245: /* frame_bound: UNBOUNDED PRECEDING */
51499 : #line 16574 "gram.y"
51500 : {
51501 : WindowDef *n = makeNode(WindowDef);
51502 :
51503 : n->frameOptions = FRAMEOPTION_START_UNBOUNDED_PRECEDING;
51504 : n->startOffset = NULL;
51505 : n->endOffset = NULL;
51506 : (yyval.windef) = n;
51507 : }
51508 : #line 51509 "gram.c"
51509 198 : break;
51510 :
51511 376 : case 2246: /* frame_bound: UNBOUNDED FOLLOWING */
51512 : #line 16583 "gram.y"
51513 : {
51514 : WindowDef *n = makeNode(WindowDef);
51515 :
51516 : n->frameOptions = FRAMEOPTION_START_UNBOUNDED_FOLLOWING;
51517 : n->startOffset = NULL;
51518 : n->endOffset = NULL;
51519 : (yyval.windef) = n;
51520 : }
51521 : #line 51522 "gram.c"
51522 376 : break;
51523 :
51524 604 : case 2247: /* frame_bound: CURRENT_P ROW */
51525 : #line 16592 "gram.y"
51526 : {
51527 : WindowDef *n = makeNode(WindowDef);
51528 :
51529 : n->frameOptions = FRAMEOPTION_START_CURRENT_ROW;
51530 : n->startOffset = NULL;
51531 : n->endOffset = NULL;
51532 : (yyval.windef) = n;
51533 : }
51534 : #line 51535 "gram.c"
51535 604 : break;
51536 :
51537 906 : case 2248: /* frame_bound: a_expr PRECEDING */
51538 : #line 16601 "gram.y"
51539 : {
51540 : WindowDef *n = makeNode(WindowDef);
51541 :
51542 : n->frameOptions = FRAMEOPTION_START_OFFSET_PRECEDING;
51543 : n->startOffset = (yyvsp[-1].node);
51544 : n->endOffset = NULL;
51545 : (yyval.windef) = n;
51546 : }
51547 : #line 51548 "gram.c"
51548 906 : break;
51549 :
51550 1152 : case 2249: /* frame_bound: a_expr FOLLOWING */
51551 : #line 16610 "gram.y"
51552 : {
51553 : WindowDef *n = makeNode(WindowDef);
51554 :
51555 : n->frameOptions = FRAMEOPTION_START_OFFSET_FOLLOWING;
51556 : n->startOffset = (yyvsp[-1].node);
51557 : n->endOffset = NULL;
51558 : (yyval.windef) = n;
51559 : }
51560 : #line 51561 "gram.c"
51561 1152 : break;
51562 :
51563 84 : case 2250: /* opt_window_exclusion_clause: EXCLUDE CURRENT_P ROW */
51564 : #line 16621 "gram.y"
51565 : { (yyval.ival) = FRAMEOPTION_EXCLUDE_CURRENT_ROW; }
51566 : #line 51567 "gram.c"
51567 84 : break;
51568 :
51569 96 : case 2251: /* opt_window_exclusion_clause: EXCLUDE GROUP_P */
51570 : #line 16622 "gram.y"
51571 : { (yyval.ival) = FRAMEOPTION_EXCLUDE_GROUP; }
51572 : #line 51573 "gram.c"
51573 96 : break;
51574 :
51575 150 : case 2252: /* opt_window_exclusion_clause: EXCLUDE TIES */
51576 : #line 16623 "gram.y"
51577 : { (yyval.ival) = FRAMEOPTION_EXCLUDE_TIES; }
51578 : #line 51579 "gram.c"
51579 150 : break;
51580 :
51581 18 : case 2253: /* opt_window_exclusion_clause: EXCLUDE NO OTHERS */
51582 : #line 16624 "gram.y"
51583 : { (yyval.ival) = 0; }
51584 : #line 51585 "gram.c"
51585 18 : break;
51586 :
51587 1276 : case 2254: /* opt_window_exclusion_clause: %empty */
51588 : #line 16625 "gram.y"
51589 : { (yyval.ival) = 0; }
51590 : #line 51591 "gram.c"
51591 1276 : break;
51592 :
51593 0 : case 2255: /* row: ROW '(' expr_list ')' */
51594 : #line 16639 "gram.y"
51595 : { (yyval.list) = (yyvsp[-1].list); }
51596 : #line 51597 "gram.c"
51597 0 : break;
51598 :
51599 0 : case 2256: /* row: ROW '(' ')' */
51600 : #line 16640 "gram.y"
51601 : { (yyval.list) = NIL; }
51602 : #line 51603 "gram.c"
51603 0 : break;
51604 :
51605 1896 : case 2257: /* row: '(' expr_list ',' a_expr ')' */
51606 : #line 16641 "gram.y"
51607 : { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); }
51608 : #line 51609 "gram.c"
51609 1896 : break;
51610 :
51611 3780 : case 2258: /* explicit_row: ROW '(' expr_list ')' */
51612 : #line 16644 "gram.y"
51613 : { (yyval.list) = (yyvsp[-1].list); }
51614 : #line 51615 "gram.c"
51615 3780 : break;
51616 :
51617 36 : case 2259: /* explicit_row: ROW '(' ')' */
51618 : #line 16645 "gram.y"
51619 : { (yyval.list) = NIL; }
51620 : #line 51621 "gram.c"
51621 36 : break;
51622 :
51623 2558 : case 2260: /* implicit_row: '(' expr_list ',' a_expr ')' */
51624 : #line 16648 "gram.y"
51625 : { (yyval.list) = lappend((yyvsp[-3].list), (yyvsp[-1].node)); }
51626 : #line 51627 "gram.c"
51627 2558 : break;
51628 :
51629 17030 : case 2261: /* sub_type: ANY */
51630 : #line 16651 "gram.y"
51631 : { (yyval.ival) = ANY_SUBLINK; }
51632 : #line 51633 "gram.c"
51633 17030 : break;
51634 :
51635 0 : case 2262: /* sub_type: SOME */
51636 : #line 16652 "gram.y"
51637 : { (yyval.ival) = ANY_SUBLINK; }
51638 : #line 51639 "gram.c"
51639 0 : break;
51640 :
51641 324 : case 2263: /* sub_type: ALL */
51642 : #line 16653 "gram.y"
51643 : { (yyval.ival) = ALL_SUBLINK; }
51644 : #line 51645 "gram.c"
51645 324 : break;
51646 :
51647 11150 : case 2264: /* all_Op: Op */
51648 : #line 16656 "gram.y"
51649 : { (yyval.str) = (yyvsp[0].str); }
51650 : #line 51651 "gram.c"
51651 11150 : break;
51652 :
51653 28250 : case 2265: /* all_Op: MathOp */
51654 : #line 16657 "gram.y"
51655 : { (yyval.str) = (yyvsp[0].str); }
51656 : #line 51657 "gram.c"
51657 28250 : break;
51658 :
51659 40 : case 2266: /* MathOp: '+' */
51660 : #line 16660 "gram.y"
51661 : { (yyval.str) = "+"; }
51662 : #line 51663 "gram.c"
51663 40 : break;
51664 :
51665 64 : case 2267: /* MathOp: '-' */
51666 : #line 16661 "gram.y"
51667 : { (yyval.str) = "-"; }
51668 : #line 51669 "gram.c"
51669 64 : break;
51670 :
51671 116 : case 2268: /* MathOp: '*' */
51672 : #line 16662 "gram.y"
51673 : { (yyval.str) = "*"; }
51674 : #line 51675 "gram.c"
51675 116 : break;
51676 :
51677 0 : case 2269: /* MathOp: '/' */
51678 : #line 16663 "gram.y"
51679 : { (yyval.str) = "/"; }
51680 : #line 51681 "gram.c"
51681 0 : break;
51682 :
51683 8 : case 2270: /* MathOp: '%' */
51684 : #line 16664 "gram.y"
51685 : { (yyval.str) = "%"; }
51686 : #line 51687 "gram.c"
51687 8 : break;
51688 :
51689 0 : case 2271: /* MathOp: '^' */
51690 : #line 16665 "gram.y"
51691 : { (yyval.str) = "^"; }
51692 : #line 51693 "gram.c"
51693 0 : break;
51694 :
51695 758 : case 2272: /* MathOp: '<' */
51696 : #line 16666 "gram.y"
51697 : { (yyval.str) = "<"; }
51698 : #line 51699 "gram.c"
51699 758 : break;
51700 :
51701 648 : case 2273: /* MathOp: '>' */
51702 : #line 16667 "gram.y"
51703 : { (yyval.str) = ">"; }
51704 : #line 51705 "gram.c"
51705 648 : break;
51706 :
51707 24752 : case 2274: /* MathOp: '=' */
51708 : #line 16668 "gram.y"
51709 : { (yyval.str) = "="; }
51710 : #line 51711 "gram.c"
51711 24752 : break;
51712 :
51713 618 : case 2275: /* MathOp: LESS_EQUALS */
51714 : #line 16669 "gram.y"
51715 : { (yyval.str) = "<="; }
51716 : #line 51717 "gram.c"
51717 618 : break;
51718 :
51719 610 : case 2276: /* MathOp: GREATER_EQUALS */
51720 : #line 16670 "gram.y"
51721 : { (yyval.str) = ">="; }
51722 : #line 51723 "gram.c"
51723 610 : break;
51724 :
51725 636 : case 2277: /* MathOp: NOT_EQUALS */
51726 : #line 16671 "gram.y"
51727 : { (yyval.str) = "<>"; }
51728 : #line 51729 "gram.c"
51729 636 : break;
51730 :
51731 43670 : case 2278: /* qual_Op: Op */
51732 : #line 16675 "gram.y"
51733 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
51734 : #line 51735 "gram.c"
51735 43670 : break;
51736 :
51737 15512 : case 2279: /* qual_Op: OPERATOR '(' any_operator ')' */
51738 : #line 16677 "gram.y"
51739 : { (yyval.list) = (yyvsp[-1].list); }
51740 : #line 51741 "gram.c"
51741 15512 : break;
51742 :
51743 1416 : case 2280: /* qual_all_Op: all_Op */
51744 : #line 16682 "gram.y"
51745 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
51746 : #line 51747 "gram.c"
51747 1416 : break;
51748 :
51749 44 : case 2281: /* qual_all_Op: OPERATOR '(' any_operator ')' */
51750 : #line 16684 "gram.y"
51751 : { (yyval.list) = (yyvsp[-1].list); }
51752 : #line 51753 "gram.c"
51753 44 : break;
51754 :
51755 17050 : case 2282: /* subquery_Op: all_Op */
51756 : #line 16689 "gram.y"
51757 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
51758 : #line 51759 "gram.c"
51759 17050 : break;
51760 :
51761 272 : case 2283: /* subquery_Op: OPERATOR '(' any_operator ')' */
51762 : #line 16691 "gram.y"
51763 : { (yyval.list) = (yyvsp[-1].list); }
51764 : #line 51765 "gram.c"
51765 272 : break;
51766 :
51767 24 : case 2284: /* subquery_Op: LIKE */
51768 : #line 16693 "gram.y"
51769 : { (yyval.list) = list_make1(makeString("~~")); }
51770 : #line 51771 "gram.c"
51771 24 : break;
51772 :
51773 12 : case 2285: /* subquery_Op: NOT_LA LIKE */
51774 : #line 16695 "gram.y"
51775 : { (yyval.list) = list_make1(makeString("!~~")); }
51776 : #line 51777 "gram.c"
51777 12 : break;
51778 :
51779 12 : case 2286: /* subquery_Op: ILIKE */
51780 : #line 16697 "gram.y"
51781 : { (yyval.list) = list_make1(makeString("~~*")); }
51782 : #line 51783 "gram.c"
51783 12 : break;
51784 :
51785 0 : case 2287: /* subquery_Op: NOT_LA ILIKE */
51786 : #line 16699 "gram.y"
51787 : { (yyval.list) = list_make1(makeString("!~~*")); }
51788 : #line 51789 "gram.c"
51789 0 : break;
51790 :
51791 164970 : case 2288: /* expr_list: a_expr */
51792 : #line 16711 "gram.y"
51793 : {
51794 : (yyval.list) = list_make1((yyvsp[0].node));
51795 : }
51796 : #line 51797 "gram.c"
51797 164970 : break;
51798 :
51799 145556 : case 2289: /* expr_list: expr_list ',' a_expr */
51800 : #line 16715 "gram.y"
51801 : {
51802 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
51803 : }
51804 : #line 51805 "gram.c"
51805 145556 : break;
51806 :
51807 321334 : case 2290: /* func_arg_list: func_arg_expr */
51808 : #line 16722 "gram.y"
51809 : {
51810 : (yyval.list) = list_make1((yyvsp[0].node));
51811 : }
51812 : #line 51813 "gram.c"
51813 321330 : break;
51814 :
51815 284410 : case 2291: /* func_arg_list: func_arg_list ',' func_arg_expr */
51816 : #line 16726 "gram.y"
51817 : {
51818 : (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));
51819 : }
51820 : #line 51821 "gram.c"
51821 284404 : break;
51822 :
51823 560240 : case 2292: /* func_arg_expr: a_expr */
51824 : #line 16732 "gram.y"
51825 : {
51826 : (yyval.node) = (yyvsp[0].node);
51827 : }
51828 : #line 51829 "gram.c"
51829 560240 : break;
51830 :
51831 44626 : case 2293: /* func_arg_expr: param_name COLON_EQUALS a_expr */
51832 : #line 16736 "gram.y"
51833 : {
51834 : NamedArgExpr *na = makeNode(NamedArgExpr);
51835 :
51836 : na->name = (yyvsp[-2].str);
51837 : na->arg = (Expr *) (yyvsp[0].node);
51838 : na->argnumber = -1; /* until determined */
51839 : na->location = (yylsp[-2]);
51840 : (yyval.node) = (Node *) na;
51841 : }
51842 : #line 51843 "gram.c"
51843 44626 : break;
51844 :
51845 1612 : case 2294: /* func_arg_expr: param_name EQUALS_GREATER a_expr */
51846 : #line 16746 "gram.y"
51847 : {
51848 : NamedArgExpr *na = makeNode(NamedArgExpr);
51849 :
51850 : na->name = (yyvsp[-2].str);
51851 : na->arg = (Expr *) (yyvsp[0].node);
51852 : na->argnumber = -1; /* until determined */
51853 : na->location = (yylsp[-2]);
51854 : (yyval.node) = (Node *) na;
51855 : }
51856 : #line 51857 "gram.c"
51857 1612 : break;
51858 :
51859 206 : case 2295: /* func_arg_list_opt: func_arg_list */
51860 : #line 16757 "gram.y"
51861 : { (yyval.list) = (yyvsp[0].list); }
51862 : #line 51863 "gram.c"
51863 206 : break;
51864 :
51865 0 : case 2296: /* func_arg_list_opt: %empty */
51866 : #line 16758 "gram.y"
51867 : { (yyval.list) = NIL; }
51868 : #line 51869 "gram.c"
51869 0 : break;
51870 :
51871 2176 : case 2297: /* type_list: Typename */
51872 : #line 16761 "gram.y"
51873 : { (yyval.list) = list_make1((yyvsp[0].typnam)); }
51874 : #line 51875 "gram.c"
51875 2176 : break;
51876 :
51877 574 : case 2298: /* type_list: type_list ',' Typename */
51878 : #line 16762 "gram.y"
51879 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].typnam)); }
51880 : #line 51881 "gram.c"
51881 574 : break;
51882 :
51883 7650 : case 2299: /* array_expr: '[' expr_list ']' */
51884 : #line 16766 "gram.y"
51885 : {
51886 : (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2]));
51887 : }
51888 : #line 51889 "gram.c"
51889 7650 : break;
51890 :
51891 412 : case 2300: /* array_expr: '[' array_expr_list ']' */
51892 : #line 16770 "gram.y"
51893 : {
51894 : (yyval.node) = makeAArrayExpr((yyvsp[-1].list), (yylsp[-2]));
51895 : }
51896 : #line 51897 "gram.c"
51897 412 : break;
51898 :
51899 88 : case 2301: /* array_expr: '[' ']' */
51900 : #line 16774 "gram.y"
51901 : {
51902 : (yyval.node) = makeAArrayExpr(NIL, (yylsp[-1]));
51903 : }
51904 : #line 51905 "gram.c"
51905 88 : break;
51906 :
51907 412 : case 2302: /* array_expr_list: array_expr */
51908 : #line 16779 "gram.y"
51909 : { (yyval.list) = list_make1((yyvsp[0].node)); }
51910 : #line 51911 "gram.c"
51911 412 : break;
51912 :
51913 342 : case 2303: /* array_expr_list: array_expr_list ',' array_expr */
51914 : #line 16780 "gram.y"
51915 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
51916 : #line 51917 "gram.c"
51917 342 : break;
51918 :
51919 1374 : case 2304: /* extract_list: extract_arg FROM a_expr */
51920 : #line 16786 "gram.y"
51921 : {
51922 : (yyval.list) = list_make2(makeStringConst((yyvsp[-2].str), (yylsp[-2])), (yyvsp[0].node));
51923 : }
51924 : #line 51925 "gram.c"
51925 1374 : break;
51926 :
51927 1116 : case 2305: /* extract_arg: IDENT */
51928 : #line 16795 "gram.y"
51929 : { (yyval.str) = (yyvsp[0].str); }
51930 : #line 51931 "gram.c"
51931 1116 : break;
51932 :
51933 72 : case 2306: /* extract_arg: YEAR_P */
51934 : #line 16796 "gram.y"
51935 : { (yyval.str) = "year"; }
51936 : #line 51937 "gram.c"
51937 72 : break;
51938 :
51939 42 : case 2307: /* extract_arg: MONTH_P */
51940 : #line 16797 "gram.y"
51941 : { (yyval.str) = "month"; }
51942 : #line 51943 "gram.c"
51943 42 : break;
51944 :
51945 54 : case 2308: /* extract_arg: DAY_P */
51946 : #line 16798 "gram.y"
51947 : { (yyval.str) = "day"; }
51948 : #line 51949 "gram.c"
51949 54 : break;
51950 :
51951 30 : case 2309: /* extract_arg: HOUR_P */
51952 : #line 16799 "gram.y"
51953 : { (yyval.str) = "hour"; }
51954 : #line 51955 "gram.c"
51955 30 : break;
51956 :
51957 30 : case 2310: /* extract_arg: MINUTE_P */
51958 : #line 16800 "gram.y"
51959 : { (yyval.str) = "minute"; }
51960 : #line 51961 "gram.c"
51961 30 : break;
51962 :
51963 30 : case 2311: /* extract_arg: SECOND_P */
51964 : #line 16801 "gram.y"
51965 : { (yyval.str) = "second"; }
51966 : #line 51967 "gram.c"
51967 30 : break;
51968 :
51969 0 : case 2312: /* extract_arg: Sconst */
51970 : #line 16802 "gram.y"
51971 : { (yyval.str) = (yyvsp[0].str); }
51972 : #line 51973 "gram.c"
51973 0 : break;
51974 :
51975 24 : case 2313: /* unicode_normal_form: NFC */
51976 : #line 16806 "gram.y"
51977 : { (yyval.str) = "NFC"; }
51978 : #line 51979 "gram.c"
51979 24 : break;
51980 :
51981 18 : case 2314: /* unicode_normal_form: NFD */
51982 : #line 16807 "gram.y"
51983 : { (yyval.str) = "NFD"; }
51984 : #line 51985 "gram.c"
51985 18 : break;
51986 :
51987 18 : case 2315: /* unicode_normal_form: NFKC */
51988 : #line 16808 "gram.y"
51989 : { (yyval.str) = "NFKC"; }
51990 : #line 51991 "gram.c"
51991 18 : break;
51992 :
51993 18 : case 2316: /* unicode_normal_form: NFKD */
51994 : #line 16809 "gram.y"
51995 : { (yyval.str) = "NFKD"; }
51996 : #line 51997 "gram.c"
51997 18 : break;
51998 :
51999 34 : case 2317: /* overlay_list: a_expr PLACING a_expr FROM a_expr FOR a_expr */
52000 : #line 16815 "gram.y"
52001 : {
52002 : /* overlay(A PLACING B FROM C FOR D) is converted to overlay(A, B, C, D) */
52003 : (yyval.list) = list_make4((yyvsp[-6].node), (yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
52004 : }
52005 : #line 52006 "gram.c"
52006 34 : break;
52007 :
52008 48 : case 2318: /* overlay_list: a_expr PLACING a_expr FROM a_expr */
52009 : #line 16820 "gram.y"
52010 : {
52011 : /* overlay(A PLACING B FROM C) is converted to overlay(A, B, C) */
52012 : (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
52013 : }
52014 : #line 52015 "gram.c"
52015 48 : break;
52016 :
52017 398 : case 2319: /* position_list: b_expr IN_P b_expr */
52018 : #line 16828 "gram.y"
52019 : { (yyval.list) = list_make2((yyvsp[0].node), (yyvsp[-2].node)); }
52020 : #line 52021 "gram.c"
52021 398 : break;
52022 :
52023 122 : case 2320: /* substr_list: a_expr FROM a_expr FOR a_expr */
52024 : #line 16850 "gram.y"
52025 : {
52026 : (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
52027 : }
52028 : #line 52029 "gram.c"
52029 122 : break;
52030 :
52031 0 : case 2321: /* substr_list: a_expr FOR a_expr FROM a_expr */
52032 : #line 16854 "gram.y"
52033 : {
52034 : /* not legal per SQL, but might as well allow it */
52035 : (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[0].node), (yyvsp[-2].node));
52036 : }
52037 : #line 52038 "gram.c"
52038 0 : break;
52039 :
52040 364 : case 2322: /* substr_list: a_expr FROM a_expr */
52041 : #line 16859 "gram.y"
52042 : {
52043 : /*
52044 : * Because we aren't restricting data types here, this
52045 : * syntax can end up resolving to textregexsubstr().
52046 : * We've historically allowed that to happen, so continue
52047 : * to accept it. However, ruleutils.c will reverse-list
52048 : * such a call in regular function call syntax.
52049 : */
52050 : (yyval.list) = list_make2((yyvsp[-2].node), (yyvsp[0].node));
52051 : }
52052 : #line 52053 "gram.c"
52053 364 : break;
52054 :
52055 36 : case 2323: /* substr_list: a_expr FOR a_expr */
52056 : #line 16870 "gram.y"
52057 : {
52058 : /* not legal per SQL */
52059 :
52060 : /*
52061 : * Since there are no cases where this syntax allows
52062 : * a textual FOR value, we forcibly cast the argument
52063 : * to int4. The possible matches in pg_proc are
52064 : * substring(text,int4) and substring(text,text),
52065 : * and we don't want the parser to choose the latter,
52066 : * which it is likely to do if the second argument
52067 : * is unknown or doesn't have an implicit cast to int4.
52068 : */
52069 : (yyval.list) = list_make3((yyvsp[-2].node), makeIntConst(1, -1),
52070 : makeTypeCast((yyvsp[0].node),
52071 : SystemTypeName("int4"), -1));
52072 : }
52073 : #line 52074 "gram.c"
52074 36 : break;
52075 :
52076 180 : case 2324: /* substr_list: a_expr SIMILAR a_expr ESCAPE a_expr */
52077 : #line 16887 "gram.y"
52078 : {
52079 : (yyval.list) = list_make3((yyvsp[-4].node), (yyvsp[-2].node), (yyvsp[0].node));
52080 : }
52081 : #line 52082 "gram.c"
52082 180 : break;
52083 :
52084 602 : case 2325: /* trim_list: a_expr FROM expr_list */
52085 : #line 16892 "gram.y"
52086 : { (yyval.list) = lappend((yyvsp[0].list), (yyvsp[-2].node)); }
52087 : #line 52088 "gram.c"
52088 602 : break;
52089 :
52090 24 : case 2326: /* trim_list: FROM expr_list */
52091 : #line 16893 "gram.y"
52092 : { (yyval.list) = (yyvsp[0].list); }
52093 : #line 52094 "gram.c"
52094 24 : break;
52095 :
52096 86 : case 2327: /* trim_list: expr_list */
52097 : #line 16894 "gram.y"
52098 : { (yyval.list) = (yyvsp[0].list); }
52099 : #line 52100 "gram.c"
52100 86 : break;
52101 :
52102 5514 : case 2328: /* in_expr: select_with_parens */
52103 : #line 16898 "gram.y"
52104 : {
52105 : SubLink *n = makeNode(SubLink);
52106 :
52107 : n->subselect = (yyvsp[0].node);
52108 : /* other fields will be filled later */
52109 : (yyval.node) = (Node *) n;
52110 : }
52111 : #line 52112 "gram.c"
52112 5514 : break;
52113 :
52114 21674 : case 2329: /* in_expr: '(' expr_list ')' */
52115 : #line 16905 "gram.y"
52116 : { (yyval.node) = (Node *) (yyvsp[-1].list); }
52117 : #line 52118 "gram.c"
52118 21674 : break;
52119 :
52120 39572 : case 2330: /* case_expr: CASE case_arg when_clause_list case_default END_P */
52121 : #line 16916 "gram.y"
52122 : {
52123 : CaseExpr *c = makeNode(CaseExpr);
52124 :
52125 : c->casetype = InvalidOid; /* not analyzed yet */
52126 : c->arg = (Expr *) (yyvsp[-3].node);
52127 : c->args = (yyvsp[-2].list);
52128 : c->defresult = (Expr *) (yyvsp[-1].node);
52129 : c->location = (yylsp[-4]);
52130 : (yyval.node) = (Node *) c;
52131 : }
52132 : #line 52133 "gram.c"
52133 39572 : break;
52134 :
52135 39572 : case 2331: /* when_clause_list: when_clause */
52136 : #line 16930 "gram.y"
52137 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52138 : #line 52139 "gram.c"
52139 39572 : break;
52140 :
52141 28722 : case 2332: /* when_clause_list: when_clause_list when_clause */
52142 : #line 16931 "gram.y"
52143 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
52144 : #line 52145 "gram.c"
52145 28722 : break;
52146 :
52147 68294 : case 2333: /* when_clause: WHEN a_expr THEN a_expr */
52148 : #line 16936 "gram.y"
52149 : {
52150 : CaseWhen *w = makeNode(CaseWhen);
52151 :
52152 : w->expr = (Expr *) (yyvsp[-2].node);
52153 : w->result = (Expr *) (yyvsp[0].node);
52154 : w->location = (yylsp[-3]);
52155 : (yyval.node) = (Node *) w;
52156 : }
52157 : #line 52158 "gram.c"
52158 68294 : break;
52159 :
52160 30066 : case 2334: /* case_default: ELSE a_expr */
52161 : #line 16947 "gram.y"
52162 : { (yyval.node) = (yyvsp[0].node); }
52163 : #line 52164 "gram.c"
52164 30066 : break;
52165 :
52166 9506 : case 2335: /* case_default: %empty */
52167 : #line 16948 "gram.y"
52168 : { (yyval.node) = NULL; }
52169 : #line 52170 "gram.c"
52170 9506 : break;
52171 :
52172 6610 : case 2336: /* case_arg: a_expr */
52173 : #line 16951 "gram.y"
52174 : { (yyval.node) = (yyvsp[0].node); }
52175 : #line 52176 "gram.c"
52176 6610 : break;
52177 :
52178 32962 : case 2337: /* case_arg: %empty */
52179 : #line 16952 "gram.y"
52180 : { (yyval.node) = NULL; }
52181 : #line 52182 "gram.c"
52182 32962 : break;
52183 :
52184 777326 : case 2338: /* columnref: ColId */
52185 : #line 16956 "gram.y"
52186 : {
52187 : (yyval.node) = makeColumnRef((yyvsp[0].str), NIL, (yylsp[0]), yyscanner);
52188 : }
52189 : #line 52190 "gram.c"
52190 777326 : break;
52191 :
52192 1079926 : case 2339: /* columnref: ColId indirection */
52193 : #line 16960 "gram.y"
52194 : {
52195 : (yyval.node) = makeColumnRef((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner);
52196 : }
52197 : #line 52198 "gram.c"
52198 1079926 : break;
52199 :
52200 1473880 : case 2340: /* indirection_el: '.' attr_name */
52201 : #line 16967 "gram.y"
52202 : {
52203 : (yyval.node) = (Node *) makeString((yyvsp[0].str));
52204 : }
52205 : #line 52206 "gram.c"
52206 1473880 : break;
52207 :
52208 6896 : case 2341: /* indirection_el: '.' '*' */
52209 : #line 16971 "gram.y"
52210 : {
52211 : (yyval.node) = (Node *) makeNode(A_Star);
52212 : }
52213 : #line 52214 "gram.c"
52214 6896 : break;
52215 :
52216 13050 : case 2342: /* indirection_el: '[' a_expr ']' */
52217 : #line 16975 "gram.y"
52218 : {
52219 : A_Indices *ai = makeNode(A_Indices);
52220 :
52221 : ai->is_slice = false;
52222 : ai->lidx = NULL;
52223 : ai->uidx = (yyvsp[-1].node);
52224 : (yyval.node) = (Node *) ai;
52225 : }
52226 : #line 52227 "gram.c"
52227 13050 : break;
52228 :
52229 588 : case 2343: /* indirection_el: '[' opt_slice_bound ':' opt_slice_bound ']' */
52230 : #line 16984 "gram.y"
52231 : {
52232 : A_Indices *ai = makeNode(A_Indices);
52233 :
52234 : ai->is_slice = true;
52235 : ai->lidx = (yyvsp[-3].node);
52236 : ai->uidx = (yyvsp[-1].node);
52237 : (yyval.node) = (Node *) ai;
52238 : }
52239 : #line 52240 "gram.c"
52240 588 : break;
52241 :
52242 996 : case 2344: /* opt_slice_bound: a_expr */
52243 : #line 16995 "gram.y"
52244 : { (yyval.node) = (yyvsp[0].node); }
52245 : #line 52246 "gram.c"
52246 996 : break;
52247 :
52248 180 : case 2345: /* opt_slice_bound: %empty */
52249 : #line 16996 "gram.y"
52250 : { (yyval.node) = NULL; }
52251 : #line 52252 "gram.c"
52252 180 : break;
52253 :
52254 1474260 : case 2346: /* indirection: indirection_el */
52255 : #line 17000 "gram.y"
52256 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52257 : #line 52258 "gram.c"
52258 1474260 : break;
52259 :
52260 3082 : case 2347: /* indirection: indirection indirection_el */
52261 : #line 17001 "gram.y"
52262 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
52263 : #line 52264 "gram.c"
52264 3082 : break;
52265 :
52266 196940 : case 2348: /* opt_indirection: %empty */
52267 : #line 17005 "gram.y"
52268 : { (yyval.list) = NIL; }
52269 : #line 52270 "gram.c"
52270 196940 : break;
52271 :
52272 17072 : case 2349: /* opt_indirection: opt_indirection indirection_el */
52273 : #line 17006 "gram.y"
52274 : { (yyval.list) = lappend((yyvsp[-1].list), (yyvsp[0].node)); }
52275 : #line 52276 "gram.c"
52276 17072 : break;
52277 :
52278 336 : case 2352: /* json_passing_clause_opt: PASSING json_arguments */
52279 : #line 17015 "gram.y"
52280 : { (yyval.list) = (yyvsp[0].list); }
52281 : #line 52282 "gram.c"
52282 336 : break;
52283 :
52284 1934 : case 2353: /* json_passing_clause_opt: %empty */
52285 : #line 17016 "gram.y"
52286 : { (yyval.list) = NIL; }
52287 : #line 52288 "gram.c"
52288 1934 : break;
52289 :
52290 336 : case 2354: /* json_arguments: json_argument */
52291 : #line 17020 "gram.y"
52292 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52293 : #line 52294 "gram.c"
52294 336 : break;
52295 :
52296 126 : case 2355: /* json_arguments: json_arguments ',' json_argument */
52297 : #line 17021 "gram.y"
52298 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
52299 : #line 52300 "gram.c"
52300 126 : break;
52301 :
52302 462 : case 2356: /* json_argument: json_value_expr AS ColLabel */
52303 : #line 17026 "gram.y"
52304 : {
52305 : JsonArgument *n = makeNode(JsonArgument);
52306 :
52307 : n->val = (JsonValueExpr *) (yyvsp[-2].node);
52308 : n->name = (yyvsp[0].str);
52309 : (yyval.node) = (Node *) n;
52310 : }
52311 : #line 52312 "gram.c"
52312 462 : break;
52313 :
52314 42 : case 2357: /* json_wrapper_behavior: WITHOUT WRAPPER */
52315 : #line 17037 "gram.y"
52316 : { (yyval.ival) = JSW_NONE; }
52317 : #line 52318 "gram.c"
52318 42 : break;
52319 :
52320 0 : case 2358: /* json_wrapper_behavior: WITHOUT ARRAY WRAPPER */
52321 : #line 17038 "gram.y"
52322 : { (yyval.ival) = JSW_NONE; }
52323 : #line 52324 "gram.c"
52324 0 : break;
52325 :
52326 78 : case 2359: /* json_wrapper_behavior: WITH WRAPPER */
52327 : #line 17039 "gram.y"
52328 : { (yyval.ival) = JSW_UNCONDITIONAL; }
52329 : #line 52330 "gram.c"
52330 78 : break;
52331 :
52332 12 : case 2360: /* json_wrapper_behavior: WITH ARRAY WRAPPER */
52333 : #line 17040 "gram.y"
52334 : { (yyval.ival) = JSW_UNCONDITIONAL; }
52335 : #line 52336 "gram.c"
52336 12 : break;
52337 :
52338 0 : case 2361: /* json_wrapper_behavior: WITH CONDITIONAL ARRAY WRAPPER */
52339 : #line 17041 "gram.y"
52340 : { (yyval.ival) = JSW_CONDITIONAL; }
52341 : #line 52342 "gram.c"
52342 0 : break;
52343 :
52344 12 : case 2362: /* json_wrapper_behavior: WITH UNCONDITIONAL ARRAY WRAPPER */
52345 : #line 17042 "gram.y"
52346 : { (yyval.ival) = JSW_UNCONDITIONAL; }
52347 : #line 52348 "gram.c"
52348 12 : break;
52349 :
52350 36 : case 2363: /* json_wrapper_behavior: WITH CONDITIONAL WRAPPER */
52351 : #line 17043 "gram.y"
52352 : { (yyval.ival) = JSW_CONDITIONAL; }
52353 : #line 52354 "gram.c"
52354 36 : break;
52355 :
52356 6 : case 2364: /* json_wrapper_behavior: WITH UNCONDITIONAL WRAPPER */
52357 : #line 17044 "gram.y"
52358 : { (yyval.ival) = JSW_UNCONDITIONAL; }
52359 : #line 52360 "gram.c"
52360 6 : break;
52361 :
52362 1634 : case 2365: /* json_wrapper_behavior: %empty */
52363 : #line 17045 "gram.y"
52364 : { (yyval.ival) = JSW_UNSPEC; }
52365 : #line 52366 "gram.c"
52366 1634 : break;
52367 :
52368 384 : case 2366: /* json_behavior: DEFAULT a_expr */
52369 : #line 17050 "gram.y"
52370 : { (yyval.node) = (Node *) makeJsonBehavior(JSON_BEHAVIOR_DEFAULT, (yyvsp[0].node), (yylsp[-1])); }
52371 : #line 52372 "gram.c"
52372 384 : break;
52373 :
52374 702 : case 2367: /* json_behavior: json_behavior_type */
52375 : #line 17052 "gram.y"
52376 : { (yyval.node) = (Node *) makeJsonBehavior((yyvsp[0].ival), NULL, (yylsp[0])); }
52377 : #line 52378 "gram.c"
52378 702 : break;
52379 :
52380 492 : case 2368: /* json_behavior_type: ERROR_P */
52381 : #line 17056 "gram.y"
52382 : { (yyval.ival) = JSON_BEHAVIOR_ERROR; }
52383 : #line 52384 "gram.c"
52384 492 : break;
52385 :
52386 30 : case 2369: /* json_behavior_type: NULL_P */
52387 : #line 17057 "gram.y"
52388 : { (yyval.ival) = JSON_BEHAVIOR_NULL; }
52389 : #line 52390 "gram.c"
52390 30 : break;
52391 :
52392 30 : case 2370: /* json_behavior_type: TRUE_P */
52393 : #line 17058 "gram.y"
52394 : { (yyval.ival) = JSON_BEHAVIOR_TRUE; }
52395 : #line 52396 "gram.c"
52396 30 : break;
52397 :
52398 12 : case 2371: /* json_behavior_type: FALSE_P */
52399 : #line 17059 "gram.y"
52400 : { (yyval.ival) = JSON_BEHAVIOR_FALSE; }
52401 : #line 52402 "gram.c"
52402 12 : break;
52403 :
52404 12 : case 2372: /* json_behavior_type: UNKNOWN */
52405 : #line 17060 "gram.y"
52406 : { (yyval.ival) = JSON_BEHAVIOR_UNKNOWN; }
52407 : #line 52408 "gram.c"
52408 12 : break;
52409 :
52410 30 : case 2373: /* json_behavior_type: EMPTY_P ARRAY */
52411 : #line 17061 "gram.y"
52412 : { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; }
52413 : #line 52414 "gram.c"
52414 30 : break;
52415 :
52416 72 : case 2374: /* json_behavior_type: EMPTY_P OBJECT_P */
52417 : #line 17062 "gram.y"
52418 : { (yyval.ival) = JSON_BEHAVIOR_EMPTY_OBJECT; }
52419 : #line 52420 "gram.c"
52420 72 : break;
52421 :
52422 24 : case 2375: /* json_behavior_type: EMPTY_P */
52423 : #line 17064 "gram.y"
52424 : { (yyval.ival) = JSON_BEHAVIOR_EMPTY_ARRAY; }
52425 : #line 52426 "gram.c"
52426 24 : break;
52427 :
52428 174 : case 2376: /* json_behavior_clause_opt: json_behavior ON EMPTY_P */
52429 : #line 17069 "gram.y"
52430 : { (yyval.list) = list_make2((yyvsp[-2].node), NULL); }
52431 : #line 52432 "gram.c"
52432 174 : break;
52433 :
52434 552 : case 2377: /* json_behavior_clause_opt: json_behavior ON ERROR_P */
52435 : #line 17071 "gram.y"
52436 : { (yyval.list) = list_make2(NULL, (yyvsp[-2].node)); }
52437 : #line 52438 "gram.c"
52438 552 : break;
52439 :
52440 102 : case 2378: /* json_behavior_clause_opt: json_behavior ON EMPTY_P json_behavior ON ERROR_P */
52441 : #line 17073 "gram.y"
52442 : { (yyval.list) = list_make2((yyvsp[-5].node), (yyvsp[-2].node)); }
52443 : #line 52444 "gram.c"
52444 102 : break;
52445 :
52446 1568 : case 2379: /* json_behavior_clause_opt: %empty */
52447 : #line 17075 "gram.y"
52448 : { (yyval.list) = list_make2(NULL, NULL); }
52449 : #line 52450 "gram.c"
52450 1568 : break;
52451 :
52452 150 : case 2380: /* json_on_error_clause_opt: json_behavior ON ERROR_P */
52453 : #line 17080 "gram.y"
52454 : { (yyval.node) = (yyvsp[-2].node); }
52455 : #line 52456 "gram.c"
52456 150 : break;
52457 :
52458 686 : case 2381: /* json_on_error_clause_opt: %empty */
52459 : #line 17082 "gram.y"
52460 : { (yyval.node) = NULL; }
52461 : #line 52462 "gram.c"
52462 686 : break;
52463 :
52464 4202 : case 2382: /* json_value_expr: a_expr json_format_clause_opt */
52465 : #line 17087 "gram.y"
52466 : {
52467 : /* formatted_expr will be set during parse-analysis. */
52468 : (yyval.node) = (Node *) makeJsonValueExpr((Expr *) (yyvsp[-1].node), NULL,
52469 : castNode(JsonFormat, (yyvsp[0].node)));
52470 : }
52471 : #line 52472 "gram.c"
52472 4202 : break;
52473 :
52474 100 : case 2383: /* json_format_clause: FORMAT_LA JSON ENCODING name */
52475 : #line 17096 "gram.y"
52476 : {
52477 : int encoding;
52478 :
52479 : if (!pg_strcasecmp((yyvsp[0].str), "utf8"))
52480 : encoding = JS_ENC_UTF8;
52481 : else if (!pg_strcasecmp((yyvsp[0].str), "utf16"))
52482 : encoding = JS_ENC_UTF16;
52483 : else if (!pg_strcasecmp((yyvsp[0].str), "utf32"))
52484 : encoding = JS_ENC_UTF32;
52485 : else
52486 : ereport(ERROR,
52487 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
52488 : errmsg("unrecognized JSON encoding: %s", (yyvsp[0].str)),
52489 : parser_errposition((yylsp[0]))));
52490 :
52491 : (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, encoding, (yylsp[-3]));
52492 : }
52493 : #line 52494 "gram.c"
52494 88 : break;
52495 :
52496 412 : case 2384: /* json_format_clause: FORMAT_LA JSON */
52497 : #line 17114 "gram.y"
52498 : {
52499 : (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_JSON, JS_ENC_DEFAULT, (yylsp[-1]));
52500 : }
52501 : #line 52502 "gram.c"
52502 412 : break;
52503 :
52504 392 : case 2385: /* json_format_clause_opt: json_format_clause */
52505 : #line 17121 "gram.y"
52506 : {
52507 : (yyval.node) = (yyvsp[0].node);
52508 : }
52509 : #line 52510 "gram.c"
52510 392 : break;
52511 :
52512 5314 : case 2386: /* json_format_clause_opt: %empty */
52513 : #line 17125 "gram.y"
52514 : {
52515 : (yyval.node) = (Node *) makeJsonFormat(JS_FORMAT_DEFAULT, JS_ENC_DEFAULT, -1);
52516 : }
52517 : #line 52518 "gram.c"
52518 5314 : break;
52519 :
52520 12 : case 2387: /* json_quotes_clause_opt: KEEP QUOTES ON SCALAR STRING_P */
52521 : #line 17131 "gram.y"
52522 : { (yyval.ival) = JS_QUOTES_KEEP; }
52523 : #line 52524 "gram.c"
52524 12 : break;
52525 :
52526 90 : case 2388: /* json_quotes_clause_opt: KEEP QUOTES */
52527 : #line 17132 "gram.y"
52528 : { (yyval.ival) = JS_QUOTES_KEEP; }
52529 : #line 52530 "gram.c"
52530 90 : break;
52531 :
52532 12 : case 2389: /* json_quotes_clause_opt: OMIT QUOTES ON SCALAR STRING_P */
52533 : #line 17133 "gram.y"
52534 : { (yyval.ival) = JS_QUOTES_OMIT; }
52535 : #line 52536 "gram.c"
52536 12 : break;
52537 :
52538 168 : case 2390: /* json_quotes_clause_opt: OMIT QUOTES */
52539 : #line 17134 "gram.y"
52540 : { (yyval.ival) = JS_QUOTES_OMIT; }
52541 : #line 52542 "gram.c"
52542 168 : break;
52543 :
52544 1538 : case 2391: /* json_quotes_clause_opt: %empty */
52545 : #line 17135 "gram.y"
52546 : { (yyval.ival) = JS_QUOTES_UNSPEC; }
52547 : #line 52548 "gram.c"
52548 1538 : break;
52549 :
52550 1444 : case 2392: /* json_returning_clause_opt: RETURNING Typename json_format_clause_opt */
52551 : #line 17140 "gram.y"
52552 : {
52553 : JsonOutput *n = makeNode(JsonOutput);
52554 :
52555 : n->typeName = (yyvsp[-1].typnam);
52556 : n->returning = makeNode(JsonReturning);
52557 : n->returning->format = (JsonFormat *) (yyvsp[0].node);
52558 : (yyval.node) = (Node *) n;
52559 : }
52560 : #line 52561 "gram.c"
52561 1444 : break;
52562 :
52563 1278 : case 2393: /* json_returning_clause_opt: %empty */
52564 : #line 17148 "gram.y"
52565 : { (yyval.node) = NULL; }
52566 : #line 52567 "gram.c"
52567 1278 : break;
52568 :
52569 202 : case 2394: /* json_predicate_type_constraint: JSON */
52570 : #line 17162 "gram.y"
52571 : { (yyval.ival) = JS_TYPE_ANY; }
52572 : #line 52573 "gram.c"
52573 202 : break;
52574 :
52575 28 : case 2395: /* json_predicate_type_constraint: JSON VALUE_P */
52576 : #line 17163 "gram.y"
52577 : { (yyval.ival) = JS_TYPE_ANY; }
52578 : #line 52579 "gram.c"
52579 28 : break;
52580 :
52581 40 : case 2396: /* json_predicate_type_constraint: JSON ARRAY */
52582 : #line 17164 "gram.y"
52583 : { (yyval.ival) = JS_TYPE_ARRAY; }
52584 : #line 52585 "gram.c"
52585 40 : break;
52586 :
52587 40 : case 2397: /* json_predicate_type_constraint: JSON OBJECT_P */
52588 : #line 17165 "gram.y"
52589 : { (yyval.ival) = JS_TYPE_OBJECT; }
52590 : #line 52591 "gram.c"
52591 40 : break;
52592 :
52593 40 : case 2398: /* json_predicate_type_constraint: JSON SCALAR */
52594 : #line 17166 "gram.y"
52595 : { (yyval.ival) = JS_TYPE_SCALAR; }
52596 : #line 52597 "gram.c"
52597 40 : break;
52598 :
52599 108 : case 2399: /* json_key_uniqueness_constraint_opt: WITH UNIQUE KEYS */
52600 : #line 17175 "gram.y"
52601 : { (yyval.boolean) = true; }
52602 : #line 52603 "gram.c"
52603 108 : break;
52604 :
52605 100 : case 2400: /* json_key_uniqueness_constraint_opt: WITH UNIQUE */
52606 : #line 17176 "gram.y"
52607 : { (yyval.boolean) = true; }
52608 : #line 52609 "gram.c"
52609 100 : break;
52610 :
52611 44 : case 2401: /* json_key_uniqueness_constraint_opt: WITHOUT UNIQUE KEYS */
52612 : #line 17177 "gram.y"
52613 : { (yyval.boolean) = false; }
52614 : #line 52615 "gram.c"
52615 44 : break;
52616 :
52617 16 : case 2402: /* json_key_uniqueness_constraint_opt: WITHOUT UNIQUE */
52618 : #line 17178 "gram.y"
52619 : { (yyval.boolean) = false; }
52620 : #line 52621 "gram.c"
52621 16 : break;
52622 :
52623 798 : case 2403: /* json_key_uniqueness_constraint_opt: %empty */
52624 : #line 17179 "gram.y"
52625 : { (yyval.boolean) = false; }
52626 : #line 52627 "gram.c"
52627 798 : break;
52628 :
52629 348 : case 2404: /* json_name_and_value_list: json_name_and_value */
52630 : #line 17184 "gram.y"
52631 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52632 : #line 52633 "gram.c"
52633 348 : break;
52634 :
52635 256 : case 2405: /* json_name_and_value_list: json_name_and_value_list ',' json_name_and_value */
52636 : #line 17186 "gram.y"
52637 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node)); }
52638 : #line 52639 "gram.c"
52639 256 : break;
52640 :
52641 24 : case 2406: /* json_name_and_value: c_expr VALUE_P json_value_expr */
52642 : #line 17196 "gram.y"
52643 : { (yyval.node) = makeJsonKeyValue((yyvsp[-2].node), (yyvsp[0].node)); }
52644 : #line 52645 "gram.c"
52645 24 : break;
52646 :
52647 784 : case 2407: /* json_name_and_value: a_expr ':' json_value_expr */
52648 : #line 17199 "gram.y"
52649 : { (yyval.node) = makeJsonKeyValue((yyvsp[-2].node), (yyvsp[0].node)); }
52650 : #line 52651 "gram.c"
52651 784 : break;
52652 :
52653 30 : case 2408: /* json_object_constructor_null_clause_opt: NULL_P ON NULL_P */
52654 : #line 17204 "gram.y"
52655 : { (yyval.boolean) = false; }
52656 : #line 52657 "gram.c"
52657 30 : break;
52658 :
52659 110 : case 2409: /* json_object_constructor_null_clause_opt: ABSENT ON NULL_P */
52660 : #line 17205 "gram.y"
52661 : { (yyval.boolean) = true; }
52662 : #line 52663 "gram.c"
52663 110 : break;
52664 :
52665 412 : case 2410: /* json_object_constructor_null_clause_opt: %empty */
52666 : #line 17206 "gram.y"
52667 : { (yyval.boolean) = false; }
52668 : #line 52669 "gram.c"
52669 412 : break;
52670 :
52671 60 : case 2411: /* json_array_constructor_null_clause_opt: NULL_P ON NULL_P */
52672 : #line 17210 "gram.y"
52673 : { (yyval.boolean) = false; }
52674 : #line 52675 "gram.c"
52675 60 : break;
52676 :
52677 36 : case 2412: /* json_array_constructor_null_clause_opt: ABSENT ON NULL_P */
52678 : #line 17211 "gram.y"
52679 : { (yyval.boolean) = true; }
52680 : #line 52681 "gram.c"
52681 36 : break;
52682 :
52683 168 : case 2413: /* json_array_constructor_null_clause_opt: %empty */
52684 : #line 17212 "gram.y"
52685 : { (yyval.boolean) = true; }
52686 : #line 52687 "gram.c"
52687 168 : break;
52688 :
52689 108 : case 2414: /* json_value_expr_list: json_value_expr */
52690 : #line 17216 "gram.y"
52691 : { (yyval.list) = list_make1((yyvsp[0].node)); }
52692 : #line 52693 "gram.c"
52693 108 : break;
52694 :
52695 126 : case 2415: /* json_value_expr_list: json_value_expr_list ',' json_value_expr */
52696 : #line 17217 "gram.y"
52697 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].node));}
52698 : #line 52699 "gram.c"
52699 126 : break;
52700 :
52701 204 : case 2416: /* json_aggregate_func: JSON_OBJECTAGG '(' json_name_and_value json_object_constructor_null_clause_opt json_key_uniqueness_constraint_opt json_returning_clause_opt ')' */
52702 : #line 17227 "gram.y"
52703 : {
52704 : JsonObjectAgg *n = makeNode(JsonObjectAgg);
52705 :
52706 : n->arg = (JsonKeyValue *) (yyvsp[-4].node);
52707 : n->absent_on_null = (yyvsp[-3].boolean);
52708 : n->unique = (yyvsp[-2].boolean);
52709 : n->constructor = makeNode(JsonAggConstructor);
52710 : n->constructor->output = (JsonOutput *) (yyvsp[-1].node);
52711 : n->constructor->agg_order = NULL;
52712 : n->constructor->location = (yylsp[-6]);
52713 : (yyval.node) = (Node *) n;
52714 : }
52715 : #line 52716 "gram.c"
52716 204 : break;
52717 :
52718 156 : case 2417: /* json_aggregate_func: JSON_ARRAYAGG '(' json_value_expr json_array_aggregate_order_by_clause_opt json_array_constructor_null_clause_opt json_returning_clause_opt ')' */
52719 : #line 17245 "gram.y"
52720 : {
52721 : JsonArrayAgg *n = makeNode(JsonArrayAgg);
52722 :
52723 : n->arg = (JsonValueExpr *) (yyvsp[-4].node);
52724 : n->absent_on_null = (yyvsp[-2].boolean);
52725 : n->constructor = makeNode(JsonAggConstructor);
52726 : n->constructor->agg_order = (yyvsp[-3].list);
52727 : n->constructor->output = (JsonOutput *) (yyvsp[-1].node);
52728 : n->constructor->location = (yylsp[-6]);
52729 : (yyval.node) = (Node *) n;
52730 : }
52731 : #line 52732 "gram.c"
52732 156 : break;
52733 :
52734 18 : case 2418: /* json_array_aggregate_order_by_clause_opt: ORDER BY sortby_list */
52735 : #line 17259 "gram.y"
52736 : { (yyval.list) = (yyvsp[0].list); }
52737 : #line 52738 "gram.c"
52738 18 : break;
52739 :
52740 138 : case 2419: /* json_array_aggregate_order_by_clause_opt: %empty */
52741 : #line 17260 "gram.y"
52742 : { (yyval.list) = NIL; }
52743 : #line 52744 "gram.c"
52744 138 : break;
52745 :
52746 473650 : case 2420: /* opt_target_list: target_list */
52747 : #line 17269 "gram.y"
52748 : { (yyval.list) = (yyvsp[0].list); }
52749 : #line 52750 "gram.c"
52750 473650 : break;
52751 :
52752 464 : case 2421: /* opt_target_list: %empty */
52753 : #line 17270 "gram.y"
52754 : { (yyval.list) = NIL; }
52755 : #line 52756 "gram.c"
52756 464 : break;
52757 :
52758 480516 : case 2422: /* target_list: target_el */
52759 : #line 17274 "gram.y"
52760 : { (yyval.list) = list_make1((yyvsp[0].target)); }
52761 : #line 52762 "gram.c"
52762 480514 : break;
52763 :
52764 704712 : case 2423: /* target_list: target_list ',' target_el */
52765 : #line 17275 "gram.y"
52766 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].target)); }
52767 : #line 52768 "gram.c"
52768 704712 : break;
52769 :
52770 240472 : case 2424: /* target_el: a_expr AS ColLabel */
52771 : #line 17279 "gram.y"
52772 : {
52773 : (yyval.target) = makeNode(ResTarget);
52774 : (yyval.target)->name = (yyvsp[0].str);
52775 : (yyval.target)->indirection = NIL;
52776 : (yyval.target)->val = (Node *) (yyvsp[-2].node);
52777 : (yyval.target)->location = (yylsp[-2]);
52778 : }
52779 : #line 52780 "gram.c"
52780 240472 : break;
52781 :
52782 3622 : case 2425: /* target_el: a_expr BareColLabel */
52783 : #line 17287 "gram.y"
52784 : {
52785 : (yyval.target) = makeNode(ResTarget);
52786 : (yyval.target)->name = (yyvsp[0].str);
52787 : (yyval.target)->indirection = NIL;
52788 : (yyval.target)->val = (Node *) (yyvsp[-1].node);
52789 : (yyval.target)->location = (yylsp[-1]);
52790 : }
52791 : #line 52792 "gram.c"
52792 3622 : break;
52793 :
52794 885760 : case 2426: /* target_el: a_expr */
52795 : #line 17295 "gram.y"
52796 : {
52797 : (yyval.target) = makeNode(ResTarget);
52798 : (yyval.target)->name = NULL;
52799 : (yyval.target)->indirection = NIL;
52800 : (yyval.target)->val = (Node *) (yyvsp[0].node);
52801 : (yyval.target)->location = (yylsp[0]);
52802 : }
52803 : #line 52804 "gram.c"
52804 885758 : break;
52805 :
52806 55374 : case 2427: /* target_el: '*' */
52807 : #line 17303 "gram.y"
52808 : {
52809 : ColumnRef *n = makeNode(ColumnRef);
52810 :
52811 : n->fields = list_make1(makeNode(A_Star));
52812 : n->location = (yylsp[0]);
52813 :
52814 : (yyval.target) = makeNode(ResTarget);
52815 : (yyval.target)->name = NULL;
52816 : (yyval.target)->indirection = NIL;
52817 : (yyval.target)->val = (Node *) n;
52818 : (yyval.target)->location = (yylsp[0]);
52819 : }
52820 : #line 52821 "gram.c"
52821 55374 : break;
52822 :
52823 17200 : case 2428: /* qualified_name_list: qualified_name */
52824 : #line 17325 "gram.y"
52825 : { (yyval.list) = list_make1((yyvsp[0].range)); }
52826 : #line 52827 "gram.c"
52827 17200 : break;
52828 :
52829 466 : case 2429: /* qualified_name_list: qualified_name_list ',' qualified_name */
52830 : #line 17326 "gram.y"
52831 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].range)); }
52832 : #line 52833 "gram.c"
52833 466 : break;
52834 :
52835 422136 : case 2430: /* qualified_name: ColId */
52836 : #line 17338 "gram.y"
52837 : {
52838 : (yyval.range) = makeRangeVar(NULL, (yyvsp[0].str), (yylsp[0]));
52839 : }
52840 : #line 52841 "gram.c"
52841 422136 : break;
52842 :
52843 263470 : case 2431: /* qualified_name: ColId indirection */
52844 : #line 17342 "gram.y"
52845 : {
52846 : (yyval.range) = makeRangeVarFromQualifiedName((yyvsp[-1].str), (yyvsp[0].list), (yylsp[-1]), yyscanner);
52847 : }
52848 : #line 52849 "gram.c"
52849 263470 : break;
52850 :
52851 28664 : case 2432: /* name_list: name */
52852 : #line 17348 "gram.y"
52853 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
52854 : #line 52855 "gram.c"
52855 28664 : break;
52856 :
52857 60252 : case 2433: /* name_list: name_list ',' name */
52858 : #line 17350 "gram.y"
52859 : { (yyval.list) = lappend((yyvsp[-2].list), makeString((yyvsp[0].str))); }
52860 : #line 52861 "gram.c"
52861 60252 : break;
52862 :
52863 178932 : case 2434: /* name: ColId */
52864 : #line 17354 "gram.y"
52865 : { (yyval.str) = (yyvsp[0].str); }
52866 : #line 52867 "gram.c"
52867 178932 : break;
52868 :
52869 1603850 : case 2435: /* attr_name: ColLabel */
52870 : #line 17356 "gram.y"
52871 : { (yyval.str) = (yyvsp[0].str); }
52872 : #line 52873 "gram.c"
52873 1603850 : break;
52874 :
52875 52 : case 2436: /* file_name: Sconst */
52876 : #line 17358 "gram.y"
52877 : { (yyval.str) = (yyvsp[0].str); }
52878 : #line 52879 "gram.c"
52879 52 : break;
52880 :
52881 291162 : case 2437: /* func_name: type_function_name */
52882 : #line 17369 "gram.y"
52883 : { (yyval.list) = list_make1(makeString((yyvsp[0].str))); }
52884 : #line 52885 "gram.c"
52885 291158 : break;
52886 :
52887 130786 : case 2438: /* func_name: ColId indirection */
52888 : #line 17371 "gram.y"
52889 : {
52890 : (yyval.list) = check_func_name(lcons(makeString((yyvsp[-1].str)), (yyvsp[0].list)),
52891 : yyscanner);
52892 : }
52893 : #line 52894 "gram.c"
52894 130786 : break;
52895 :
52896 376250 : case 2439: /* AexprConst: Iconst */
52897 : #line 17382 "gram.y"
52898 : {
52899 : (yyval.node) = makeIntConst((yyvsp[0].ival), (yylsp[0]));
52900 : }
52901 : #line 52902 "gram.c"
52902 376248 : break;
52903 :
52904 11366 : case 2440: /* AexprConst: FCONST */
52905 : #line 17386 "gram.y"
52906 : {
52907 : (yyval.node) = makeFloatConst((yyvsp[0].str), (yylsp[0]));
52908 : }
52909 : #line 52910 "gram.c"
52910 11366 : break;
52911 :
52912 706760 : case 2441: /* AexprConst: Sconst */
52913 : #line 17390 "gram.y"
52914 : {
52915 : (yyval.node) = makeStringConst((yyvsp[0].str), (yylsp[0]));
52916 : }
52917 : #line 52918 "gram.c"
52918 706754 : break;
52919 :
52920 754 : case 2442: /* AexprConst: BCONST */
52921 : #line 17394 "gram.y"
52922 : {
52923 : (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0]));
52924 : }
52925 : #line 52926 "gram.c"
52926 754 : break;
52927 :
52928 3302 : case 2443: /* AexprConst: XCONST */
52929 : #line 17398 "gram.y"
52930 : {
52931 : /* This is a bit constant per SQL99:
52932 : * Without Feature F511, "BIT data type",
52933 : * a <general literal> shall not be a
52934 : * <bit string literal> or a <hex string literal>.
52935 : */
52936 : (yyval.node) = makeBitStringConst((yyvsp[0].str), (yylsp[0]));
52937 : }
52938 : #line 52939 "gram.c"
52939 3302 : break;
52940 :
52941 9836 : case 2444: /* AexprConst: func_name Sconst */
52942 : #line 17407 "gram.y"
52943 : {
52944 : /* generic type 'literal' syntax */
52945 : TypeName *t = makeTypeNameFromNameList((yyvsp[-1].list));
52946 :
52947 : t->location = (yylsp[-1]);
52948 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
52949 : }
52950 : #line 52951 "gram.c"
52951 9836 : break;
52952 :
52953 0 : case 2445: /* AexprConst: func_name '(' func_arg_list opt_sort_clause ')' Sconst */
52954 : #line 17415 "gram.y"
52955 : {
52956 : /* generic syntax with a type modifier */
52957 : TypeName *t = makeTypeNameFromNameList((yyvsp[-5].list));
52958 : ListCell *lc;
52959 :
52960 : /*
52961 : * We must use func_arg_list and opt_sort_clause in the
52962 : * production to avoid reduce/reduce conflicts, but we
52963 : * don't actually wish to allow NamedArgExpr in this
52964 : * context, nor ORDER BY.
52965 : */
52966 : foreach(lc, (yyvsp[-3].list))
52967 : {
52968 : NamedArgExpr *arg = (NamedArgExpr *) lfirst(lc);
52969 :
52970 : if (IsA(arg, NamedArgExpr))
52971 : ereport(ERROR,
52972 : (errcode(ERRCODE_SYNTAX_ERROR),
52973 : errmsg("type modifier cannot have parameter name"),
52974 : parser_errposition(arg->location)));
52975 : }
52976 : if ((yyvsp[-2].list) != NIL)
52977 : ereport(ERROR,
52978 : (errcode(ERRCODE_SYNTAX_ERROR),
52979 : errmsg("type modifier cannot have ORDER BY"),
52980 : parser_errposition((yylsp[-2]))));
52981 :
52982 : t->typmods = (yyvsp[-3].list);
52983 : t->location = (yylsp[-5]);
52984 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
52985 : }
52986 : #line 52987 "gram.c"
52987 0 : break;
52988 :
52989 3126 : case 2446: /* AexprConst: ConstTypename Sconst */
52990 : #line 17447 "gram.y"
52991 : {
52992 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), (yyvsp[-1].typnam));
52993 : }
52994 : #line 52995 "gram.c"
52995 3126 : break;
52996 :
52997 3298 : case 2447: /* AexprConst: ConstInterval Sconst opt_interval */
52998 : #line 17451 "gram.y"
52999 : {
53000 : TypeName *t = (yyvsp[-2].typnam);
53001 :
53002 : t->typmods = (yyvsp[0].list);
53003 : (yyval.node) = makeStringConstCast((yyvsp[-1].str), (yylsp[-1]), t);
53004 : }
53005 : #line 53006 "gram.c"
53006 3298 : break;
53007 :
53008 12 : case 2448: /* AexprConst: ConstInterval '(' Iconst ')' Sconst */
53009 : #line 17458 "gram.y"
53010 : {
53011 : TypeName *t = (yyvsp[-4].typnam);
53012 :
53013 : t->typmods = list_make2(makeIntConst(INTERVAL_FULL_RANGE, -1),
53014 : makeIntConst((yyvsp[-2].ival), (yylsp[-2])));
53015 : (yyval.node) = makeStringConstCast((yyvsp[0].str), (yylsp[0]), t);
53016 : }
53017 : #line 53018 "gram.c"
53018 12 : break;
53019 :
53020 30884 : case 2449: /* AexprConst: TRUE_P */
53021 : #line 17466 "gram.y"
53022 : {
53023 : (yyval.node) = makeBoolAConst(true, (yylsp[0]));
53024 : }
53025 : #line 53026 "gram.c"
53026 30882 : break;
53027 :
53028 36016 : case 2450: /* AexprConst: FALSE_P */
53029 : #line 17470 "gram.y"
53030 : {
53031 : (yyval.node) = makeBoolAConst(false, (yylsp[0]));
53032 : }
53033 : #line 53034 "gram.c"
53034 36016 : break;
53035 :
53036 67148 : case 2451: /* AexprConst: NULL_P */
53037 : #line 17474 "gram.y"
53038 : {
53039 : (yyval.node) = makeNullAConst((yylsp[0]));
53040 : }
53041 : #line 53042 "gram.c"
53042 67148 : break;
53043 :
53044 402354 : case 2452: /* Iconst: ICONST */
53045 : #line 17479 "gram.y"
53046 : { (yyval.ival) = (yyvsp[0].ival); }
53047 : #line 53048 "gram.c"
53048 402354 : break;
53049 :
53050 778666 : case 2453: /* Sconst: SCONST */
53051 : #line 17480 "gram.y"
53052 : { (yyval.str) = (yyvsp[0].str); }
53053 : #line 53054 "gram.c"
53054 778666 : break;
53055 :
53056 17860 : case 2454: /* SignedIconst: Iconst */
53057 : #line 17482 "gram.y"
53058 : { (yyval.ival) = (yyvsp[0].ival); }
53059 : #line 53060 "gram.c"
53060 17860 : break;
53061 :
53062 0 : case 2455: /* SignedIconst: '+' Iconst */
53063 : #line 17483 "gram.y"
53064 : { (yyval.ival) = + (yyvsp[0].ival); }
53065 : #line 53066 "gram.c"
53066 0 : break;
53067 :
53068 290 : case 2456: /* SignedIconst: '-' Iconst */
53069 : #line 17484 "gram.y"
53070 : { (yyval.ival) = - (yyvsp[0].ival); }
53071 : #line 53072 "gram.c"
53072 290 : break;
53073 :
53074 1914 : case 2457: /* RoleId: RoleSpec */
53075 : #line 17489 "gram.y"
53076 : {
53077 : RoleSpec *spc = (RoleSpec *) (yyvsp[0].rolespec);
53078 :
53079 : switch (spc->roletype)
53080 : {
53081 : case ROLESPEC_CSTRING:
53082 : (yyval.str) = spc->rolename;
53083 : break;
53084 : case ROLESPEC_PUBLIC:
53085 : ereport(ERROR,
53086 : (errcode(ERRCODE_RESERVED_NAME),
53087 : errmsg("role name \"%s\" is reserved",
53088 : "public"),
53089 : parser_errposition((yylsp[0]))));
53090 : break;
53091 : case ROLESPEC_SESSION_USER:
53092 : ereport(ERROR,
53093 : (errcode(ERRCODE_RESERVED_NAME),
53094 : errmsg("%s cannot be used as a role name here",
53095 : "SESSION_USER"),
53096 : parser_errposition((yylsp[0]))));
53097 : break;
53098 : case ROLESPEC_CURRENT_USER:
53099 : ereport(ERROR,
53100 : (errcode(ERRCODE_RESERVED_NAME),
53101 : errmsg("%s cannot be used as a role name here",
53102 : "CURRENT_USER"),
53103 : parser_errposition((yylsp[0]))));
53104 : break;
53105 : case ROLESPEC_CURRENT_ROLE:
53106 : ereport(ERROR,
53107 : (errcode(ERRCODE_RESERVED_NAME),
53108 : errmsg("%s cannot be used as a role name here",
53109 : "CURRENT_ROLE"),
53110 : parser_errposition((yylsp[0]))));
53111 : break;
53112 : }
53113 : }
53114 : #line 53115 "gram.c"
53115 1904 : break;
53116 :
53117 34170 : case 2458: /* RoleSpec: NonReservedWord */
53118 : #line 17530 "gram.y"
53119 : {
53120 : /*
53121 : * "public" and "none" are not keywords, but they must
53122 : * be treated specially here.
53123 : */
53124 : RoleSpec *n;
53125 :
53126 : if (strcmp((yyvsp[0].str), "public") == 0)
53127 : {
53128 : n = (RoleSpec *) makeRoleSpec(ROLESPEC_PUBLIC, (yylsp[0]));
53129 : n->roletype = ROLESPEC_PUBLIC;
53130 : }
53131 : else if (strcmp((yyvsp[0].str), "none") == 0)
53132 : {
53133 : ereport(ERROR,
53134 : (errcode(ERRCODE_RESERVED_NAME),
53135 : errmsg("role name \"%s\" is reserved",
53136 : "none"),
53137 : parser_errposition((yylsp[0]))));
53138 : }
53139 : else
53140 : {
53141 : n = makeRoleSpec(ROLESPEC_CSTRING, (yylsp[0]));
53142 : n->rolename = pstrdup((yyvsp[0].str));
53143 : }
53144 : (yyval.rolespec) = n;
53145 : }
53146 : #line 53147 "gram.c"
53147 34144 : break;
53148 :
53149 130 : case 2459: /* RoleSpec: CURRENT_ROLE */
53150 : #line 17558 "gram.y"
53151 : {
53152 : (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_ROLE, (yylsp[0]));
53153 : }
53154 : #line 53155 "gram.c"
53155 130 : break;
53156 :
53157 228 : case 2460: /* RoleSpec: CURRENT_USER */
53158 : #line 17562 "gram.y"
53159 : {
53160 : (yyval.rolespec) = makeRoleSpec(ROLESPEC_CURRENT_USER, (yylsp[0]));
53161 : }
53162 : #line 53163 "gram.c"
53163 228 : break;
53164 :
53165 36 : case 2461: /* RoleSpec: SESSION_USER */
53166 : #line 17566 "gram.y"
53167 : {
53168 : (yyval.rolespec) = makeRoleSpec(ROLESPEC_SESSION_USER, (yylsp[0]));
53169 : }
53170 : #line 53171 "gram.c"
53171 36 : break;
53172 :
53173 3240 : case 2462: /* role_list: RoleSpec */
53174 : #line 17572 "gram.y"
53175 : { (yyval.list) = list_make1((yyvsp[0].rolespec)); }
53176 : #line 53177 "gram.c"
53177 3240 : break;
53178 :
53179 270 : case 2463: /* role_list: role_list ',' RoleSpec */
53180 : #line 17574 "gram.y"
53181 : { (yyval.list) = lappend((yyvsp[-2].list), (yyvsp[0].rolespec)); }
53182 : #line 53183 "gram.c"
53183 270 : break;
53184 :
53185 40154 : case 2464: /* PLpgSQL_Expr: opt_distinct_clause opt_target_list from_clause where_clause group_clause having_clause window_clause opt_sort_clause opt_select_limit opt_for_locking_clause */
53186 : #line 17591 "gram.y"
53187 : {
53188 : SelectStmt *n = makeNode(SelectStmt);
53189 :
53190 : n->distinctClause = (yyvsp[-9].list);
53191 : n->targetList = (yyvsp[-8].list);
53192 : n->fromClause = (yyvsp[-7].list);
53193 : n->whereClause = (yyvsp[-6].node);
53194 : n->groupClause = ((yyvsp[-5].groupclause))->list;
53195 : n->groupDistinct = ((yyvsp[-5].groupclause))->distinct;
53196 : n->havingClause = (yyvsp[-4].node);
53197 : n->windowClause = (yyvsp[-3].list);
53198 : n->sortClause = (yyvsp[-2].list);
53199 : if ((yyvsp[-1].selectlimit))
53200 : {
53201 : n->limitOffset = (yyvsp[-1].selectlimit)->limitOffset;
53202 : n->limitCount = (yyvsp[-1].selectlimit)->limitCount;
53203 : if (!n->sortClause &&
53204 : (yyvsp[-1].selectlimit)->limitOption == LIMIT_OPTION_WITH_TIES)
53205 : ereport(ERROR,
53206 : (errcode(ERRCODE_SYNTAX_ERROR),
53207 : errmsg("WITH TIES cannot be specified without ORDER BY clause"),
53208 : parser_errposition((yyvsp[-1].selectlimit)->optionLoc)));
53209 : n->limitOption = (yyvsp[-1].selectlimit)->limitOption;
53210 : }
53211 : n->lockingClause = (yyvsp[0].list);
53212 : (yyval.node) = (Node *) n;
53213 : }
53214 : #line 53215 "gram.c"
53215 40154 : break;
53216 :
53217 7026 : case 2465: /* PLAssignStmt: plassign_target opt_indirection plassign_equals PLpgSQL_Expr */
53218 : #line 17625 "gram.y"
53219 : {
53220 : PLAssignStmt *n = makeNode(PLAssignStmt);
53221 :
53222 : n->name = (yyvsp[-3].str);
53223 : n->indirection = check_indirection((yyvsp[-2].list), yyscanner);
53224 : /* nnames will be filled by calling production */
53225 : n->val = (SelectStmt *) (yyvsp[0].node);
53226 : n->location = (yylsp[-3]);
53227 : (yyval.node) = (Node *) n;
53228 : }
53229 : #line 53230 "gram.c"
53230 6928 : break;
53231 :
53232 7002 : case 2466: /* plassign_target: ColId */
53233 : #line 17637 "gram.y"
53234 : { (yyval.str) = (yyvsp[0].str); }
53235 : #line 53236 "gram.c"
53236 7002 : break;
53237 :
53238 24 : case 2467: /* plassign_target: PARAM */
53239 : #line 17638 "gram.y"
53240 : { (yyval.str) = psprintf("$%d", (yyvsp[0].ival)); }
53241 : #line 53242 "gram.c"
53242 24 : break;
53243 :
53244 3466694 : case 2470: /* ColId: IDENT */
53245 : #line 17659 "gram.y"
53246 : { (yyval.str) = (yyvsp[0].str); }
53247 : #line 53248 "gram.c"
53248 3466694 : break;
53249 :
53250 59372 : case 2471: /* ColId: unreserved_keyword */
53251 : #line 17660 "gram.y"
53252 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53253 : #line 53254 "gram.c"
53254 59372 : break;
53255 :
53256 6054 : case 2472: /* ColId: col_name_keyword */
53257 : #line 17661 "gram.y"
53258 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53259 : #line 53260 "gram.c"
53260 6054 : break;
53261 :
53262 699392 : case 2473: /* type_function_name: IDENT */
53263 : #line 17666 "gram.y"
53264 : { (yyval.str) = (yyvsp[0].str); }
53265 : #line 53266 "gram.c"
53266 699392 : break;
53267 :
53268 74500 : case 2474: /* type_function_name: unreserved_keyword */
53269 : #line 17667 "gram.y"
53270 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53271 : #line 53272 "gram.c"
53272 74500 : break;
53273 :
53274 66 : case 2475: /* type_function_name: type_func_name_keyword */
53275 : #line 17668 "gram.y"
53276 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53277 : #line 53278 "gram.c"
53278 66 : break;
53279 :
53280 83540 : case 2476: /* NonReservedWord: IDENT */
53281 : #line 17673 "gram.y"
53282 : { (yyval.str) = (yyvsp[0].str); }
53283 : #line 53284 "gram.c"
53284 83540 : break;
53285 :
53286 30010 : case 2477: /* NonReservedWord: unreserved_keyword */
53287 : #line 17674 "gram.y"
53288 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53289 : #line 53290 "gram.c"
53290 30010 : break;
53291 :
53292 178 : case 2478: /* NonReservedWord: col_name_keyword */
53293 : #line 17675 "gram.y"
53294 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53295 : #line 53296 "gram.c"
53296 178 : break;
53297 :
53298 5182 : case 2479: /* NonReservedWord: type_func_name_keyword */
53299 : #line 17676 "gram.y"
53300 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53301 : #line 53302 "gram.c"
53302 5182 : break;
53303 :
53304 1828294 : case 2480: /* ColLabel: IDENT */
53305 : #line 17682 "gram.y"
53306 : { (yyval.str) = (yyvsp[0].str); }
53307 : #line 53308 "gram.c"
53308 1828294 : break;
53309 :
53310 39864 : case 2481: /* ColLabel: unreserved_keyword */
53311 : #line 17683 "gram.y"
53312 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53313 : #line 53314 "gram.c"
53314 39864 : break;
53315 :
53316 284 : case 2482: /* ColLabel: col_name_keyword */
53317 : #line 17684 "gram.y"
53318 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53319 : #line 53320 "gram.c"
53320 284 : break;
53321 :
53322 1796 : case 2483: /* ColLabel: type_func_name_keyword */
53323 : #line 17685 "gram.y"
53324 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53325 : #line 53326 "gram.c"
53326 1796 : break;
53327 :
53328 7516 : case 2484: /* ColLabel: reserved_keyword */
53329 : #line 17686 "gram.y"
53330 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53331 : #line 53332 "gram.c"
53332 7516 : break;
53333 :
53334 3608 : case 2485: /* BareColLabel: IDENT */
53335 : #line 17692 "gram.y"
53336 : { (yyval.str) = (yyvsp[0].str); }
53337 : #line 53338 "gram.c"
53338 3608 : break;
53339 :
53340 14 : case 2486: /* BareColLabel: bare_label_keyword */
53341 : #line 17693 "gram.y"
53342 : { (yyval.str) = pstrdup((yyvsp[0].keyword)); }
53343 : #line 53344 "gram.c"
53344 14 : break;
53345 :
53346 :
53347 : #line 53348 "gram.c"
53348 :
53349 3532662 : default: break;
53350 : }
53351 : /* User semantic actions sometimes alter yychar, and that requires
53352 : that yytoken be updated with the new translation. We take the
53353 : approach of translating immediately before every use of yytoken.
53354 : One alternative is translating here after every semantic action,
53355 : but that translation would be missed if the semantic action invokes
53356 : YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
53357 : if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an
53358 : incorrect destructor might then be invoked immediately. In the
53359 : case of YYERROR or YYBACKUP, subsequent parser actions might lead
53360 : to an incorrect destructor call or verbose syntax error message
53361 : before the lookahead is translated. */
53362 : YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
53363 :
53364 53514636 : YYPOPSTACK (yylen);
53365 53514636 : yylen = 0;
53366 :
53367 53514636 : *++yyvsp = yyval;
53368 53514636 : *++yylsp = yyloc;
53369 :
53370 : /* Now 'shift' the result of the reduction. Determine what state
53371 : that goes to, based on the state we popped back to and the rule
53372 : number reduced by. */
53373 : {
53374 53514636 : const int yylhs = yyr1[yyn] - YYNTOKENS;
53375 53514636 : const int yyi = yypgoto[yylhs] + *yyssp;
53376 40894194 : yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
53377 24550028 : ? yytable[yyi]
53378 94408830 : : yydefgoto[yylhs]);
53379 : }
53380 :
53381 53514636 : goto yynewstate;
53382 :
53383 :
53384 : /*--------------------------------------.
53385 : | yyerrlab -- here on detecting error. |
53386 : `--------------------------------------*/
53387 696 : yyerrlab:
53388 : /* Make sure we have latest lookahead translation. See comments at
53389 : user semantic actions for why this is necessary. */
53390 696 : yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
53391 : /* If not already recovering from an error, report this error. */
53392 696 : if (!yyerrstatus)
53393 : {
53394 696 : ++yynerrs;
53395 696 : yyerror (&yylloc, yyscanner, YY_("syntax error"));
53396 : }
53397 :
53398 0 : yyerror_range[1] = yylloc;
53399 0 : if (yyerrstatus == 3)
53400 : {
53401 : /* If just tried and failed to reuse lookahead token after an
53402 : error, discard it. */
53403 :
53404 0 : if (yychar <= YYEOF)
53405 : {
53406 : /* Return failure if at end of input. */
53407 0 : if (yychar == YYEOF)
53408 0 : YYABORT;
53409 : }
53410 : else
53411 : {
53412 0 : yydestruct ("Error: discarding",
53413 : yytoken, &yylval, &yylloc, yyscanner);
53414 0 : yychar = YYEMPTY;
53415 : }
53416 : }
53417 :
53418 : /* Else will try to reuse lookahead token after shifting the error
53419 : token. */
53420 0 : goto yyerrlab1;
53421 :
53422 :
53423 : /*---------------------------------------------------.
53424 : | yyerrorlab -- error raised explicitly by YYERROR. |
53425 : `---------------------------------------------------*/
53426 : yyerrorlab:
53427 : /* Pacify compilers when the user code never invokes YYERROR and the
53428 : label yyerrorlab therefore never appears in user code. */
53429 : if (0)
53430 : YYERROR;
53431 : ++yynerrs;
53432 :
53433 : /* Do not reclaim the symbols of the rule whose action triggered
53434 : this YYERROR. */
53435 : YYPOPSTACK (yylen);
53436 : yylen = 0;
53437 : YY_STACK_PRINT (yyss, yyssp);
53438 : yystate = *yyssp;
53439 : goto yyerrlab1;
53440 :
53441 :
53442 : /*-------------------------------------------------------------.
53443 : | yyerrlab1 -- common code for both syntax error and YYERROR. |
53444 : `-------------------------------------------------------------*/
53445 0 : yyerrlab1:
53446 0 : yyerrstatus = 3; /* Each real token shifted decrements this. */
53447 :
53448 : /* Pop stack until we find a state that shifts the error token. */
53449 : for (;;)
53450 : {
53451 134 : yyn = yypact[yystate];
53452 134 : if (!yypact_value_is_default (yyn))
53453 : {
53454 0 : yyn += YYSYMBOL_YYerror;
53455 0 : if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
53456 : {
53457 0 : yyn = yytable[yyn];
53458 0 : if (0 < yyn)
53459 134 : break;
53460 : }
53461 : }
53462 :
53463 : /* Pop the current state because it cannot handle the error token. */
53464 0 : if (yyssp == yyss)
53465 0 : YYABORT;
53466 :
53467 0 : yyerror_range[1] = *yylsp;
53468 0 : yydestruct ("Error: popping",
53469 0 : YY_ACCESSING_SYMBOL (yystate), yyvsp, yylsp, yyscanner);
53470 134 : YYPOPSTACK (1);
53471 134 : yystate = *yyssp;
53472 : YY_STACK_PRINT (yyss, yyssp);
53473 : }
53474 :
53475 : YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
53476 134 : *++yyvsp = yylval;
53477 : YY_IGNORE_MAYBE_UNINITIALIZED_END
53478 :
53479 134 : yyerror_range[2] = yylloc;
53480 134 : ++yylsp;
53481 134 : YYLLOC_DEFAULT (*yylsp, yyerror_range, 2);
53482 :
53483 : /* Shift the error token. */
53484 : YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
53485 :
53486 134 : yystate = yyn;
53487 134 : goto yynewstate;
53488 :
53489 :
53490 : /*-------------------------------------.
53491 : | yyacceptlab -- YYACCEPT comes here. |
53492 : `-------------------------------------*/
53493 783448 : yyacceptlab:
53494 783448 : yyresult = 0;
53495 783448 : goto yyreturnlab;
53496 :
53497 :
53498 : /*-----------------------------------.
53499 : | yyabortlab -- YYABORT comes here. |
53500 : `-----------------------------------*/
53501 0 : yyabortlab:
53502 0 : yyresult = 1;
53503 0 : goto yyreturnlab;
53504 :
53505 :
53506 : /*-----------------------------------------------------------.
53507 : | yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here. |
53508 : `-----------------------------------------------------------*/
53509 0 : yyexhaustedlab:
53510 0 : yyerror (&yylloc, yyscanner, YY_("memory exhausted"));
53511 0 : yyresult = 2;
53512 0 : goto yyreturnlab;
53513 :
53514 :
53515 : /*----------------------------------------------------------.
53516 : | yyreturnlab -- parsing is finished, clean up and return. |
53517 : `----------------------------------------------------------*/
53518 783448 : yyreturnlab:
53519 783448 : if (yychar != YYEMPTY)
53520 : {
53521 : /* Make sure we have latest lookahead translation. See comments at
53522 : user semantic actions for why this is necessary. */
53523 0 : yytoken = YYTRANSLATE (yychar);
53524 0 : yydestruct ("Cleanup: discarding lookahead",
53525 : yytoken, &yylval, &yylloc, yyscanner);
53526 : }
53527 : /* Do not reclaim the symbols of the rule whose action triggered
53528 : this YYABORT or YYACCEPT. */
53529 783446 : YYPOPSTACK (yylen);
53530 : YY_STACK_PRINT (yyss, yyssp);
53531 2350338 : while (yyssp != yyss)
53532 : {
53533 1566892 : yydestruct ("Cleanup: popping",
53534 1566892 : YY_ACCESSING_SYMBOL (+*yyssp), yyvsp, yylsp, yyscanner);
53535 1566892 : YYPOPSTACK (1);
53536 : }
53537 : #ifndef yyoverflow
53538 783446 : if (yyss != yyssa)
53539 0 : YYSTACK_FREE (yyss);
53540 : #endif
53541 :
53542 783446 : return yyresult;
53543 : }
53544 :
53545 : #line 18711 "gram.y"
53546 :
53547 :
53548 : /*
53549 : * The signature of this function is required by bison. However, we
53550 : * ignore the passed yylloc and instead use the last token position
53551 : * available from the scanner.
53552 : */
53553 : static void
53554 : base_yyerror(YYLTYPE *yylloc, core_yyscan_t yyscanner, const char *msg)
53555 : {
53556 : parser_yyerror(msg);
53557 : }
53558 :
53559 : static RawStmt *
53560 : makeRawStmt(Node *stmt, int stmt_location)
53561 : {
53562 : RawStmt *rs = makeNode(RawStmt);
53563 :
53564 : rs->stmt = stmt;
53565 : rs->stmt_location = stmt_location;
53566 : rs->stmt_len = 0; /* might get changed later */
53567 : return rs;
53568 : }
53569 :
53570 : /* Adjust a RawStmt to reflect that it doesn't run to the end of the string */
53571 : static void
53572 : updateRawStmtEnd(RawStmt *rs, int end_location)
53573 : {
53574 : /*
53575 : * If we already set the length, don't change it. This is for situations
53576 : * like "select foo ;; select bar" where the same statement will be last
53577 : * in the string for more than one semicolon.
53578 : */
53579 : if (rs->stmt_len > 0)
53580 : return;
53581 :
53582 : /* OK, update length of RawStmt */
53583 : rs->stmt_len = end_location - rs->stmt_location;
53584 : }
53585 :
53586 : /*
53587 : * Adjust a PreparableStmt to reflect that it doesn't run to the end of the
53588 : * string.
53589 : */
53590 : static void
53591 : updatePreparableStmtEnd(Node *n, int end_location)
53592 : {
53593 : if (IsA(n, SelectStmt))
53594 : {
53595 : SelectStmt *stmt = (SelectStmt *) n;
53596 :
53597 : stmt->stmt_len = end_location - stmt->stmt_location;
53598 : }
53599 : else if (IsA(n, InsertStmt))
53600 : {
53601 : InsertStmt *stmt = (InsertStmt *) n;
53602 :
53603 : stmt->stmt_len = end_location - stmt->stmt_location;
53604 : }
53605 : else if (IsA(n, UpdateStmt))
53606 : {
53607 : UpdateStmt *stmt = (UpdateStmt *) n;
53608 :
53609 : stmt->stmt_len = end_location - stmt->stmt_location;
53610 : }
53611 : else if (IsA(n, DeleteStmt))
53612 : {
53613 : DeleteStmt *stmt = (DeleteStmt *) n;
53614 :
53615 : stmt->stmt_len = end_location - stmt->stmt_location;
53616 : }
53617 : else if (IsA(n, MergeStmt))
53618 : {
53619 : MergeStmt *stmt = (MergeStmt *) n;
53620 :
53621 : stmt->stmt_len = end_location - stmt->stmt_location;
53622 : }
53623 : else
53624 : elog(ERROR, "unexpected node type %d", (int) n->type);
53625 : }
53626 :
53627 : static Node *
53628 : makeColumnRef(char *colname, List *indirection,
53629 : int location, core_yyscan_t yyscanner)
53630 : {
53631 : /*
53632 : * Generate a ColumnRef node, with an A_Indirection node added if there is
53633 : * any subscripting in the specified indirection list. However, any field
53634 : * selection at the start of the indirection list must be transposed into
53635 : * the "fields" part of the ColumnRef node.
53636 : */
53637 : ColumnRef *c = makeNode(ColumnRef);
53638 : int nfields = 0;
53639 : ListCell *l;
53640 :
53641 : c->location = location;
53642 : foreach(l, indirection)
53643 : {
53644 : if (IsA(lfirst(l), A_Indices))
53645 : {
53646 : A_Indirection *i = makeNode(A_Indirection);
53647 :
53648 : if (nfields == 0)
53649 : {
53650 : /* easy case - all indirection goes to A_Indirection */
53651 : c->fields = list_make1(makeString(colname));
53652 : i->indirection = check_indirection(indirection, yyscanner);
53653 : }
53654 : else
53655 : {
53656 : /* got to split the list in two */
53657 : i->indirection = check_indirection(list_copy_tail(indirection,
53658 : nfields),
53659 : yyscanner);
53660 : indirection = list_truncate(indirection, nfields);
53661 : c->fields = lcons(makeString(colname), indirection);
53662 : }
53663 : i->arg = (Node *) c;
53664 : return (Node *) i;
53665 : }
53666 : else if (IsA(lfirst(l), A_Star))
53667 : {
53668 : /* We only allow '*' at the end of a ColumnRef */
53669 : if (lnext(indirection, l) != NULL)
53670 : parser_yyerror("improper use of \"*\"");
53671 : }
53672 : nfields++;
53673 : }
53674 : /* No subscripting, so all indirection gets added to field list */
53675 : c->fields = lcons(makeString(colname), indirection);
53676 : return (Node *) c;
53677 : }
53678 :
53679 : static Node *
53680 : makeTypeCast(Node *arg, TypeName *typename, int location)
53681 : {
53682 : TypeCast *n = makeNode(TypeCast);
53683 :
53684 : n->arg = arg;
53685 : n->typeName = typename;
53686 : n->location = location;
53687 : return (Node *) n;
53688 : }
53689 :
53690 : static Node *
53691 : makeStringConstCast(char *str, int location, TypeName *typename)
53692 : {
53693 : Node *s = makeStringConst(str, location);
53694 :
53695 : return makeTypeCast(s, typename, -1);
53696 : }
53697 :
53698 : static Node *
53699 : makeIntConst(int val, int location)
53700 : {
53701 : A_Const *n = makeNode(A_Const);
53702 :
53703 : n->val.ival.type = T_Integer;
53704 : n->val.ival.ival = val;
53705 : n->location = location;
53706 :
53707 : return (Node *) n;
53708 : }
53709 :
53710 : static Node *
53711 : makeFloatConst(char *str, int location)
53712 : {
53713 : A_Const *n = makeNode(A_Const);
53714 :
53715 : n->val.fval.type = T_Float;
53716 : n->val.fval.fval = str;
53717 : n->location = location;
53718 :
53719 : return (Node *) n;
53720 : }
53721 :
53722 : static Node *
53723 : makeBoolAConst(bool state, int location)
53724 : {
53725 : A_Const *n = makeNode(A_Const);
53726 :
53727 : n->val.boolval.type = T_Boolean;
53728 : n->val.boolval.boolval = state;
53729 : n->location = location;
53730 :
53731 : return (Node *) n;
53732 : }
53733 :
53734 : static Node *
53735 : makeBitStringConst(char *str, int location)
53736 : {
53737 : A_Const *n = makeNode(A_Const);
53738 :
53739 : n->val.bsval.type = T_BitString;
53740 : n->val.bsval.bsval = str;
53741 : n->location = location;
53742 :
53743 : return (Node *) n;
53744 : }
53745 :
53746 : static Node *
53747 : makeNullAConst(int location)
53748 : {
53749 : A_Const *n = makeNode(A_Const);
53750 :
53751 : n->isnull = true;
53752 : n->location = location;
53753 :
53754 : return (Node *) n;
53755 : }
53756 :
53757 : static Node *
53758 : makeAConst(Node *v, int location)
53759 : {
53760 : Node *n;
53761 :
53762 : switch (v->type)
53763 : {
53764 : case T_Float:
53765 : n = makeFloatConst(castNode(Float, v)->fval, location);
53766 : break;
53767 :
53768 : case T_Integer:
53769 : n = makeIntConst(castNode(Integer, v)->ival, location);
53770 : break;
53771 :
53772 : default:
53773 : /* currently not used */
53774 : Assert(false);
53775 : n = NULL;
53776 : }
53777 :
53778 : return n;
53779 : }
53780 :
53781 : /* makeRoleSpec
53782 : * Create a RoleSpec with the given type
53783 : */
53784 : static RoleSpec *
53785 : makeRoleSpec(RoleSpecType type, int location)
53786 : {
53787 : RoleSpec *spec = makeNode(RoleSpec);
53788 :
53789 : spec->roletype = type;
53790 : spec->location = location;
53791 :
53792 : return spec;
53793 : }
53794 :
53795 : /* check_qualified_name --- check the result of qualified_name production
53796 : *
53797 : * It's easiest to let the grammar production for qualified_name allow
53798 : * subscripts and '*', which we then must reject here.
53799 : */
53800 : static void
53801 : check_qualified_name(List *names, core_yyscan_t yyscanner)
53802 : {
53803 : ListCell *i;
53804 :
53805 : foreach(i, names)
53806 : {
53807 : if (!IsA(lfirst(i), String))
53808 : parser_yyerror("syntax error");
53809 : }
53810 : }
53811 :
53812 : /* check_func_name --- check the result of func_name production
53813 : *
53814 : * It's easiest to let the grammar production for func_name allow subscripts
53815 : * and '*', which we then must reject here.
53816 : */
53817 : static List *
53818 : check_func_name(List *names, core_yyscan_t yyscanner)
53819 : {
53820 : ListCell *i;
53821 :
53822 : foreach(i, names)
53823 : {
53824 : if (!IsA(lfirst(i), String))
53825 : parser_yyerror("syntax error");
53826 : }
53827 : return names;
53828 : }
53829 :
53830 : /* check_indirection --- check the result of indirection production
53831 : *
53832 : * We only allow '*' at the end of the list, but it's hard to enforce that
53833 : * in the grammar, so do it here.
53834 : */
53835 : static List *
53836 : check_indirection(List *indirection, core_yyscan_t yyscanner)
53837 : {
53838 : ListCell *l;
53839 :
53840 : foreach(l, indirection)
53841 : {
53842 : if (IsA(lfirst(l), A_Star))
53843 : {
53844 : if (lnext(indirection, l) != NULL)
53845 : parser_yyerror("improper use of \"*\"");
53846 : }
53847 : }
53848 : return indirection;
53849 : }
53850 :
53851 : /* extractArgTypes()
53852 : * Given a list of FunctionParameter nodes, extract a list of just the
53853 : * argument types (TypeNames) for input parameters only. This is what
53854 : * is needed to look up an existing function, which is what is wanted by
53855 : * the productions that use this call.
53856 : */
53857 : static List *
53858 : extractArgTypes(List *parameters)
53859 : {
53860 : List *result = NIL;
53861 : ListCell *i;
53862 :
53863 : foreach(i, parameters)
53864 : {
53865 : FunctionParameter *p = (FunctionParameter *) lfirst(i);
53866 :
53867 : if (p->mode != FUNC_PARAM_OUT && p->mode != FUNC_PARAM_TABLE)
53868 : result = lappend(result, p->argType);
53869 : }
53870 : return result;
53871 : }
53872 :
53873 : /* extractAggrArgTypes()
53874 : * As above, but work from the output of the aggr_args production.
53875 : */
53876 : static List *
53877 : extractAggrArgTypes(List *aggrargs)
53878 : {
53879 : Assert(list_length(aggrargs) == 2);
53880 : return extractArgTypes((List *) linitial(aggrargs));
53881 : }
53882 :
53883 : /* makeOrderedSetArgs()
53884 : * Build the result of the aggr_args production (which see the comments for).
53885 : * This handles only the case where both given lists are nonempty, so that
53886 : * we have to deal with multiple VARIADIC arguments.
53887 : */
53888 : static List *
53889 : makeOrderedSetArgs(List *directargs, List *orderedargs,
53890 : core_yyscan_t yyscanner)
53891 : {
53892 : FunctionParameter *lastd = (FunctionParameter *) llast(directargs);
53893 : Integer *ndirectargs;
53894 :
53895 : /* No restriction unless last direct arg is VARIADIC */
53896 : if (lastd->mode == FUNC_PARAM_VARIADIC)
53897 : {
53898 : FunctionParameter *firsto = (FunctionParameter *) linitial(orderedargs);
53899 :
53900 : /*
53901 : * We ignore the names, though the aggr_arg production allows them; it
53902 : * doesn't allow default values, so those need not be checked.
53903 : */
53904 : if (list_length(orderedargs) != 1 ||
53905 : firsto->mode != FUNC_PARAM_VARIADIC ||
53906 : !equal(lastd->argType, firsto->argType))
53907 : ereport(ERROR,
53908 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
53909 : errmsg("an ordered-set aggregate with a VARIADIC direct argument must have one VARIADIC aggregated argument of the same data type"),
53910 : parser_errposition(firsto->location)));
53911 :
53912 : /* OK, drop the duplicate VARIADIC argument from the internal form */
53913 : orderedargs = NIL;
53914 : }
53915 :
53916 : /* don't merge into the next line, as list_concat changes directargs */
53917 : ndirectargs = makeInteger(list_length(directargs));
53918 :
53919 : return list_make2(list_concat(directargs, orderedargs),
53920 : ndirectargs);
53921 : }
53922 :
53923 : /* insertSelectOptions()
53924 : * Insert ORDER BY, etc into an already-constructed SelectStmt.
53925 : *
53926 : * This routine is just to avoid duplicating code in SelectStmt productions.
53927 : */
53928 : static void
53929 : insertSelectOptions(SelectStmt *stmt,
53930 : List *sortClause, List *lockingClause,
53931 : SelectLimit *limitClause,
53932 : WithClause *withClause,
53933 : core_yyscan_t yyscanner)
53934 : {
53935 : Assert(IsA(stmt, SelectStmt));
53936 :
53937 : /*
53938 : * Tests here are to reject constructs like
53939 : * (SELECT foo ORDER BY bar) ORDER BY baz
53940 : */
53941 : if (sortClause)
53942 : {
53943 : if (stmt->sortClause)
53944 : ereport(ERROR,
53945 : (errcode(ERRCODE_SYNTAX_ERROR),
53946 : errmsg("multiple ORDER BY clauses not allowed"),
53947 : parser_errposition(exprLocation((Node *) sortClause))));
53948 : stmt->sortClause = sortClause;
53949 : }
53950 : /* We can handle multiple locking clauses, though */
53951 : stmt->lockingClause = list_concat(stmt->lockingClause, lockingClause);
53952 : if (limitClause && limitClause->limitOffset)
53953 : {
53954 : if (stmt->limitOffset)
53955 : ereport(ERROR,
53956 : (errcode(ERRCODE_SYNTAX_ERROR),
53957 : errmsg("multiple OFFSET clauses not allowed"),
53958 : parser_errposition(limitClause->offsetLoc)));
53959 : stmt->limitOffset = limitClause->limitOffset;
53960 : }
53961 : if (limitClause && limitClause->limitCount)
53962 : {
53963 : if (stmt->limitCount)
53964 : ereport(ERROR,
53965 : (errcode(ERRCODE_SYNTAX_ERROR),
53966 : errmsg("multiple LIMIT clauses not allowed"),
53967 : parser_errposition(limitClause->countLoc)));
53968 : stmt->limitCount = limitClause->limitCount;
53969 : }
53970 : if (limitClause)
53971 : {
53972 : /* If there was a conflict, we must have detected it above */
53973 : Assert(!stmt->limitOption);
53974 : if (!stmt->sortClause && limitClause->limitOption == LIMIT_OPTION_WITH_TIES)
53975 : ereport(ERROR,
53976 : (errcode(ERRCODE_SYNTAX_ERROR),
53977 : errmsg("WITH TIES cannot be specified without ORDER BY clause"),
53978 : parser_errposition(limitClause->optionLoc)));
53979 : if (limitClause->limitOption == LIMIT_OPTION_WITH_TIES && stmt->lockingClause)
53980 : {
53981 : ListCell *lc;
53982 :
53983 : foreach(lc, stmt->lockingClause)
53984 : {
53985 : LockingClause *lock = lfirst_node(LockingClause, lc);
53986 :
53987 : if (lock->waitPolicy == LockWaitSkip)
53988 : ereport(ERROR,
53989 : (errcode(ERRCODE_SYNTAX_ERROR),
53990 : errmsg("%s and %s options cannot be used together",
53991 : "SKIP LOCKED", "WITH TIES"),
53992 : parser_errposition(limitClause->optionLoc)));
53993 : }
53994 : }
53995 : stmt->limitOption = limitClause->limitOption;
53996 : }
53997 : if (withClause)
53998 : {
53999 : if (stmt->withClause)
54000 : ereport(ERROR,
54001 : (errcode(ERRCODE_SYNTAX_ERROR),
54002 : errmsg("multiple WITH clauses not allowed"),
54003 : parser_errposition(exprLocation((Node *) withClause))));
54004 : stmt->withClause = withClause;
54005 :
54006 : /* Update SelectStmt's location to the start of the WITH clause */
54007 : stmt->stmt_location = withClause->location;
54008 : }
54009 : }
54010 :
54011 : static Node *
54012 : makeSetOp(SetOperation op, bool all, Node *larg, Node *rarg, int location)
54013 : {
54014 : SelectStmt *n = makeNode(SelectStmt);
54015 :
54016 : n->op = op;
54017 : n->all = all;
54018 : n->larg = (SelectStmt *) larg;
54019 : n->rarg = (SelectStmt *) rarg;
54020 : n->stmt_location = location;
54021 : return (Node *) n;
54022 : }
54023 :
54024 : /* SystemFuncName()
54025 : * Build a properly-qualified reference to a built-in function.
54026 : */
54027 : List *
54028 : SystemFuncName(char *name)
54029 : {
54030 : return list_make2(makeString("pg_catalog"), makeString(name));
54031 : }
54032 :
54033 : /* SystemTypeName()
54034 : * Build a properly-qualified reference to a built-in type.
54035 : *
54036 : * typmod is defaulted, but may be changed afterwards by caller.
54037 : * Likewise for the location.
54038 : */
54039 : TypeName *
54040 : SystemTypeName(char *name)
54041 : {
54042 : return makeTypeNameFromNameList(list_make2(makeString("pg_catalog"),
54043 : makeString(name)));
54044 : }
54045 :
54046 : /* doNegate()
54047 : * Handle negation of a numeric constant.
54048 : *
54049 : * Formerly, we did this here because the optimizer couldn't cope with
54050 : * indexquals that looked like "var = -4" --- it wants "var = const"
54051 : * and a unary minus operator applied to a constant didn't qualify.
54052 : * As of Postgres 7.0, that problem doesn't exist anymore because there
54053 : * is a constant-subexpression simplifier in the optimizer. However,
54054 : * there's still a good reason for doing this here, which is that we can
54055 : * postpone committing to a particular internal representation for simple
54056 : * negative constants. It's better to leave "-123.456" in string form
54057 : * until we know what the desired type is.
54058 : */
54059 : static Node *
54060 : doNegate(Node *n, int location)
54061 : {
54062 : if (IsA(n, A_Const))
54063 : {
54064 : A_Const *con = (A_Const *) n;
54065 :
54066 : /* report the constant's location as that of the '-' sign */
54067 : con->location = location;
54068 :
54069 : if (IsA(&con->val, Integer))
54070 : {
54071 : con->val.ival.ival = -con->val.ival.ival;
54072 : return n;
54073 : }
54074 : if (IsA(&con->val, Float))
54075 : {
54076 : doNegateFloat(&con->val.fval);
54077 : return n;
54078 : }
54079 : }
54080 :
54081 : return (Node *) makeSimpleA_Expr(AEXPR_OP, "-", NULL, n, location);
54082 : }
54083 :
54084 : static void
54085 : doNegateFloat(Float *v)
54086 : {
54087 : char *oldval = v->fval;
54088 :
54089 : if (*oldval == '+')
54090 : oldval++;
54091 : if (*oldval == '-')
54092 : v->fval = oldval + 1; /* just strip the '-' */
54093 : else
54094 : v->fval = psprintf("-%s", oldval);
54095 : }
54096 :
54097 : static Node *
54098 : makeAndExpr(Node *lexpr, Node *rexpr, int location)
54099 : {
54100 : /* Flatten "a AND b AND c ..." to a single BoolExpr on sight */
54101 : if (IsA(lexpr, BoolExpr))
54102 : {
54103 : BoolExpr *blexpr = (BoolExpr *) lexpr;
54104 :
54105 : if (blexpr->boolop == AND_EXPR)
54106 : {
54107 : blexpr->args = lappend(blexpr->args, rexpr);
54108 : return (Node *) blexpr;
54109 : }
54110 : }
54111 : return (Node *) makeBoolExpr(AND_EXPR, list_make2(lexpr, rexpr), location);
54112 : }
54113 :
54114 : static Node *
54115 : makeOrExpr(Node *lexpr, Node *rexpr, int location)
54116 : {
54117 : /* Flatten "a OR b OR c ..." to a single BoolExpr on sight */
54118 : if (IsA(lexpr, BoolExpr))
54119 : {
54120 : BoolExpr *blexpr = (BoolExpr *) lexpr;
54121 :
54122 : if (blexpr->boolop == OR_EXPR)
54123 : {
54124 : blexpr->args = lappend(blexpr->args, rexpr);
54125 : return (Node *) blexpr;
54126 : }
54127 : }
54128 : return (Node *) makeBoolExpr(OR_EXPR, list_make2(lexpr, rexpr), location);
54129 : }
54130 :
54131 : static Node *
54132 : makeNotExpr(Node *expr, int location)
54133 : {
54134 : return (Node *) makeBoolExpr(NOT_EXPR, list_make1(expr), location);
54135 : }
54136 :
54137 : static Node *
54138 : makeAArrayExpr(List *elements, int location)
54139 : {
54140 : A_ArrayExpr *n = makeNode(A_ArrayExpr);
54141 :
54142 : n->elements = elements;
54143 : n->location = location;
54144 : return (Node *) n;
54145 : }
54146 :
54147 : static Node *
54148 : makeSQLValueFunction(SQLValueFunctionOp op, int32 typmod, int location)
54149 : {
54150 : SQLValueFunction *svf = makeNode(SQLValueFunction);
54151 :
54152 : svf->op = op;
54153 : /* svf->type will be filled during parse analysis */
54154 : svf->typmod = typmod;
54155 : svf->location = location;
54156 : return (Node *) svf;
54157 : }
54158 :
54159 : static Node *
54160 : makeXmlExpr(XmlExprOp op, char *name, List *named_args, List *args,
54161 : int location)
54162 : {
54163 : XmlExpr *x = makeNode(XmlExpr);
54164 :
54165 : x->op = op;
54166 : x->name = name;
54167 :
54168 : /*
54169 : * named_args is a list of ResTarget; it'll be split apart into separate
54170 : * expression and name lists in transformXmlExpr().
54171 : */
54172 : x->named_args = named_args;
54173 : x->arg_names = NIL;
54174 : x->args = args;
54175 : /* xmloption, if relevant, must be filled in by caller */
54176 : /* type and typmod will be filled in during parse analysis */
54177 : x->type = InvalidOid; /* marks the node as not analyzed */
54178 : x->location = location;
54179 : return (Node *) x;
54180 : }
54181 :
54182 : /*
54183 : * Merge the input and output parameters of a table function.
54184 : */
54185 : static List *
54186 : mergeTableFuncParameters(List *func_args, List *columns, core_yyscan_t yyscanner)
54187 : {
54188 : ListCell *lc;
54189 :
54190 : /* Explicit OUT and INOUT parameters shouldn't be used in this syntax */
54191 : foreach(lc, func_args)
54192 : {
54193 : FunctionParameter *p = (FunctionParameter *) lfirst(lc);
54194 :
54195 : if (p->mode != FUNC_PARAM_DEFAULT &&
54196 : p->mode != FUNC_PARAM_IN &&
54197 : p->mode != FUNC_PARAM_VARIADIC)
54198 : ereport(ERROR,
54199 : (errcode(ERRCODE_SYNTAX_ERROR),
54200 : errmsg("OUT and INOUT arguments aren't allowed in TABLE functions"),
54201 : parser_errposition(p->location)));
54202 : }
54203 :
54204 : return list_concat(func_args, columns);
54205 : }
54206 :
54207 : /*
54208 : * Determine return type of a TABLE function. A single result column
54209 : * returns setof that column's type; otherwise return setof record.
54210 : */
54211 : static TypeName *
54212 : TableFuncTypeName(List *columns)
54213 : {
54214 : TypeName *result;
54215 :
54216 : if (list_length(columns) == 1)
54217 : {
54218 : FunctionParameter *p = (FunctionParameter *) linitial(columns);
54219 :
54220 : result = copyObject(p->argType);
54221 : }
54222 : else
54223 : result = SystemTypeName("record");
54224 :
54225 : result->setof = true;
54226 :
54227 : return result;
54228 : }
54229 :
54230 : /*
54231 : * Convert a list of (dotted) names to a RangeVar (like
54232 : * makeRangeVarFromNameList, but with position support). The
54233 : * "AnyName" refers to the any_name production in the grammar.
54234 : */
54235 : static RangeVar *
54236 : makeRangeVarFromAnyName(List *names, int position, core_yyscan_t yyscanner)
54237 : {
54238 : RangeVar *r = makeNode(RangeVar);
54239 :
54240 : switch (list_length(names))
54241 : {
54242 : case 1:
54243 : r->catalogname = NULL;
54244 : r->schemaname = NULL;
54245 : r->relname = strVal(linitial(names));
54246 : break;
54247 : case 2:
54248 : r->catalogname = NULL;
54249 : r->schemaname = strVal(linitial(names));
54250 : r->relname = strVal(lsecond(names));
54251 : break;
54252 : case 3:
54253 : r->catalogname = strVal(linitial(names));
54254 : r->schemaname = strVal(lsecond(names));
54255 : r->relname = strVal(lthird(names));
54256 : break;
54257 : default:
54258 : ereport(ERROR,
54259 : (errcode(ERRCODE_SYNTAX_ERROR),
54260 : errmsg("improper qualified name (too many dotted names): %s",
54261 : NameListToString(names)),
54262 : parser_errposition(position)));
54263 : break;
54264 : }
54265 :
54266 : r->relpersistence = RELPERSISTENCE_PERMANENT;
54267 : r->location = position;
54268 :
54269 : return r;
54270 : }
54271 :
54272 : /*
54273 : * Convert a relation_name with name and namelist to a RangeVar using
54274 : * makeRangeVar.
54275 : */
54276 : static RangeVar *
54277 : makeRangeVarFromQualifiedName(char *name, List *namelist, int location,
54278 : core_yyscan_t yyscanner)
54279 : {
54280 : RangeVar *r;
54281 :
54282 : check_qualified_name(namelist, yyscanner);
54283 : r = makeRangeVar(NULL, NULL, location);
54284 :
54285 : switch (list_length(namelist))
54286 : {
54287 : case 1:
54288 : r->catalogname = NULL;
54289 : r->schemaname = name;
54290 : r->relname = strVal(linitial(namelist));
54291 : break;
54292 : case 2:
54293 : r->catalogname = name;
54294 : r->schemaname = strVal(linitial(namelist));
54295 : r->relname = strVal(lsecond(namelist));
54296 : break;
54297 : default:
54298 : ereport(ERROR,
54299 : errcode(ERRCODE_SYNTAX_ERROR),
54300 : errmsg("improper qualified name (too many dotted names): %s",
54301 : NameListToString(lcons(makeString(name), namelist))),
54302 : parser_errposition(location));
54303 : break;
54304 : }
54305 :
54306 : return r;
54307 : }
54308 :
54309 : /* Separate Constraint nodes from COLLATE clauses in a ColQualList */
54310 : static void
54311 : SplitColQualList(List *qualList,
54312 : List **constraintList, CollateClause **collClause,
54313 : core_yyscan_t yyscanner)
54314 : {
54315 : ListCell *cell;
54316 :
54317 : *collClause = NULL;
54318 : foreach(cell, qualList)
54319 : {
54320 : Node *n = (Node *) lfirst(cell);
54321 :
54322 : if (IsA(n, Constraint))
54323 : {
54324 : /* keep it in list */
54325 : continue;
54326 : }
54327 : if (IsA(n, CollateClause))
54328 : {
54329 : CollateClause *c = (CollateClause *) n;
54330 :
54331 : if (*collClause)
54332 : ereport(ERROR,
54333 : (errcode(ERRCODE_SYNTAX_ERROR),
54334 : errmsg("multiple COLLATE clauses not allowed"),
54335 : parser_errposition(c->location)));
54336 : *collClause = c;
54337 : }
54338 : else
54339 : elog(ERROR, "unexpected node type %d", (int) n->type);
54340 : /* remove non-Constraint nodes from qualList */
54341 : qualList = foreach_delete_current(qualList, cell);
54342 : }
54343 : *constraintList = qualList;
54344 : }
54345 :
54346 : /*
54347 : * Process result of ConstraintAttributeSpec, and set appropriate bool flags
54348 : * in the output command node. Pass NULL for any flags the particular
54349 : * command doesn't support.
54350 : */
54351 : static void
54352 : processCASbits(int cas_bits, int location, const char *constrType,
54353 : bool *deferrable, bool *initdeferred, bool *is_enforced,
54354 : bool *not_valid, bool *no_inherit, core_yyscan_t yyscanner)
54355 : {
54356 : /* defaults */
54357 : if (deferrable)
54358 : *deferrable = false;
54359 : if (initdeferred)
54360 : *initdeferred = false;
54361 : if (not_valid)
54362 : *not_valid = false;
54363 : if (is_enforced)
54364 : *is_enforced = true;
54365 :
54366 : if (cas_bits & (CAS_DEFERRABLE | CAS_INITIALLY_DEFERRED))
54367 : {
54368 : if (deferrable)
54369 : *deferrable = true;
54370 : else
54371 : ereport(ERROR,
54372 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54373 : /* translator: %s is CHECK, UNIQUE, or similar */
54374 : errmsg("%s constraints cannot be marked DEFERRABLE",
54375 : constrType),
54376 : parser_errposition(location)));
54377 : }
54378 :
54379 : if (cas_bits & CAS_INITIALLY_DEFERRED)
54380 : {
54381 : if (initdeferred)
54382 : *initdeferred = true;
54383 : else
54384 : ereport(ERROR,
54385 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54386 : /* translator: %s is CHECK, UNIQUE, or similar */
54387 : errmsg("%s constraints cannot be marked DEFERRABLE",
54388 : constrType),
54389 : parser_errposition(location)));
54390 : }
54391 :
54392 : if (cas_bits & CAS_NOT_VALID)
54393 : {
54394 : if (not_valid)
54395 : *not_valid = true;
54396 : else
54397 : ereport(ERROR,
54398 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54399 : /* translator: %s is CHECK, UNIQUE, or similar */
54400 : errmsg("%s constraints cannot be marked NOT VALID",
54401 : constrType),
54402 : parser_errposition(location)));
54403 : }
54404 :
54405 : if (cas_bits & CAS_NO_INHERIT)
54406 : {
54407 : if (no_inherit)
54408 : *no_inherit = true;
54409 : else
54410 : ereport(ERROR,
54411 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54412 : /* translator: %s is CHECK, UNIQUE, or similar */
54413 : errmsg("%s constraints cannot be marked NO INHERIT",
54414 : constrType),
54415 : parser_errposition(location)));
54416 : }
54417 :
54418 : if (cas_bits & CAS_NOT_ENFORCED)
54419 : {
54420 : if (is_enforced)
54421 : *is_enforced = false;
54422 : else
54423 : ereport(ERROR,
54424 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54425 : /* translator: %s is CHECK, UNIQUE, or similar */
54426 : errmsg("%s constraints cannot be marked NOT ENFORCED",
54427 : constrType),
54428 : parser_errposition(location)));
54429 :
54430 : /*
54431 : * NB: The validated status is irrelevant when the constraint is set to
54432 : * NOT ENFORCED, but for consistency, it should be set accordingly.
54433 : * This ensures that if the constraint is later changed to ENFORCED, it
54434 : * will automatically be in the correct NOT VALIDATED state.
54435 : */
54436 : if (not_valid)
54437 : *not_valid = true;
54438 : }
54439 :
54440 : if (cas_bits & CAS_ENFORCED)
54441 : {
54442 : if (is_enforced)
54443 : *is_enforced = true;
54444 : else
54445 : ereport(ERROR,
54446 : (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
54447 : /* translator: %s is CHECK, UNIQUE, or similar */
54448 : errmsg("%s constraints cannot be marked ENFORCED",
54449 : constrType),
54450 : parser_errposition(location)));
54451 : }
54452 : }
54453 :
54454 : /*
54455 : * Parse a user-supplied partition strategy string into parse node
54456 : * PartitionStrategy representation, or die trying.
54457 : */
54458 : static PartitionStrategy
54459 : parsePartitionStrategy(char *strategy, int location, core_yyscan_t yyscanner)
54460 : {
54461 : if (pg_strcasecmp(strategy, "list") == 0)
54462 : return PARTITION_STRATEGY_LIST;
54463 : else if (pg_strcasecmp(strategy, "range") == 0)
54464 : return PARTITION_STRATEGY_RANGE;
54465 : else if (pg_strcasecmp(strategy, "hash") == 0)
54466 : return PARTITION_STRATEGY_HASH;
54467 :
54468 : ereport(ERROR,
54469 : (errcode(ERRCODE_INVALID_PARAMETER_VALUE),
54470 : errmsg("unrecognized partitioning strategy \"%s\"", strategy),
54471 : parser_errposition(location)));
54472 : return PARTITION_STRATEGY_LIST; /* keep compiler quiet */
54473 :
54474 : }
54475 :
54476 : /*
54477 : * Process pubobjspec_list to check for errors in any of the objects and
54478 : * convert PUBLICATIONOBJ_CONTINUATION into appropriate PublicationObjSpecType.
54479 : */
54480 : static void
54481 : preprocess_pubobj_list(List *pubobjspec_list, core_yyscan_t yyscanner)
54482 : {
54483 : ListCell *cell;
54484 : PublicationObjSpec *pubobj;
54485 : PublicationObjSpecType prevobjtype = PUBLICATIONOBJ_CONTINUATION;
54486 :
54487 : if (!pubobjspec_list)
54488 : return;
54489 :
54490 : pubobj = (PublicationObjSpec *) linitial(pubobjspec_list);
54491 : if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION)
54492 : ereport(ERROR,
54493 : errcode(ERRCODE_SYNTAX_ERROR),
54494 : errmsg("invalid publication object list"),
54495 : errdetail("One of TABLE or TABLES IN SCHEMA must be specified before a standalone table or schema name."),
54496 : parser_errposition(pubobj->location));
54497 :
54498 : foreach(cell, pubobjspec_list)
54499 : {
54500 : pubobj = (PublicationObjSpec *) lfirst(cell);
54501 :
54502 : if (pubobj->pubobjtype == PUBLICATIONOBJ_CONTINUATION)
54503 : pubobj->pubobjtype = prevobjtype;
54504 :
54505 : if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLE)
54506 : {
54507 : /* relation name or pubtable must be set for this type of object */
54508 : if (!pubobj->name && !pubobj->pubtable)
54509 : ereport(ERROR,
54510 : errcode(ERRCODE_SYNTAX_ERROR),
54511 : errmsg("invalid table name"),
54512 : parser_errposition(pubobj->location));
54513 :
54514 : if (pubobj->name)
54515 : {
54516 : /* convert it to PublicationTable */
54517 : PublicationTable *pubtable = makeNode(PublicationTable);
54518 :
54519 : pubtable->relation =
54520 : makeRangeVar(NULL, pubobj->name, pubobj->location);
54521 : pubobj->pubtable = pubtable;
54522 : pubobj->name = NULL;
54523 : }
54524 : }
54525 : else if (pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_SCHEMA ||
54526 : pubobj->pubobjtype == PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA)
54527 : {
54528 : /* WHERE clause is not allowed on a schema object */
54529 : if (pubobj->pubtable && pubobj->pubtable->whereClause)
54530 : ereport(ERROR,
54531 : errcode(ERRCODE_SYNTAX_ERROR),
54532 : errmsg("WHERE clause not allowed for schema"),
54533 : parser_errposition(pubobj->location));
54534 :
54535 : /* Column list is not allowed on a schema object */
54536 : if (pubobj->pubtable && pubobj->pubtable->columns)
54537 : ereport(ERROR,
54538 : errcode(ERRCODE_SYNTAX_ERROR),
54539 : errmsg("column specification not allowed for schema"),
54540 : parser_errposition(pubobj->location));
54541 :
54542 : /*
54543 : * We can distinguish between the different type of schema objects
54544 : * based on whether name and pubtable is set.
54545 : */
54546 : if (pubobj->name)
54547 : pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_SCHEMA;
54548 : else if (!pubobj->name && !pubobj->pubtable)
54549 : pubobj->pubobjtype = PUBLICATIONOBJ_TABLES_IN_CUR_SCHEMA;
54550 : else
54551 : ereport(ERROR,
54552 : errcode(ERRCODE_SYNTAX_ERROR),
54553 : errmsg("invalid schema name"),
54554 : parser_errposition(pubobj->location));
54555 : }
54556 :
54557 : prevobjtype = pubobj->pubobjtype;
54558 : }
54559 : }
54560 :
54561 : /*----------
54562 : * Recursive view transformation
54563 : *
54564 : * Convert
54565 : *
54566 : * CREATE RECURSIVE VIEW relname (aliases) AS query
54567 : *
54568 : * to
54569 : *
54570 : * CREATE VIEW relname (aliases) AS
54571 : * WITH RECURSIVE relname (aliases) AS (query)
54572 : * SELECT aliases FROM relname
54573 : *
54574 : * Actually, just the WITH ... part, which is then inserted into the original
54575 : * view definition as the query.
54576 : * ----------
54577 : */
54578 : static Node *
54579 : makeRecursiveViewSelect(char *relname, List *aliases, Node *query)
54580 : {
54581 : SelectStmt *s = makeNode(SelectStmt);
54582 : WithClause *w = makeNode(WithClause);
54583 : CommonTableExpr *cte = makeNode(CommonTableExpr);
54584 : List *tl = NIL;
54585 : ListCell *lc;
54586 :
54587 : /* create common table expression */
54588 : cte->ctename = relname;
54589 : cte->aliascolnames = aliases;
54590 : cte->ctematerialized = CTEMaterializeDefault;
54591 : cte->ctequery = query;
54592 : cte->location = -1;
54593 :
54594 : /* create WITH clause and attach CTE */
54595 : w->recursive = true;
54596 : w->ctes = list_make1(cte);
54597 : w->location = -1;
54598 :
54599 : /*
54600 : * create target list for the new SELECT from the alias list of the
54601 : * recursive view specification
54602 : */
54603 : foreach(lc, aliases)
54604 : {
54605 : ResTarget *rt = makeNode(ResTarget);
54606 :
54607 : rt->name = NULL;
54608 : rt->indirection = NIL;
54609 : rt->val = makeColumnRef(strVal(lfirst(lc)), NIL, -1, 0);
54610 : rt->location = -1;
54611 :
54612 : tl = lappend(tl, rt);
54613 : }
54614 :
54615 : /*
54616 : * create new SELECT combining WITH clause, target list, and fake FROM
54617 : * clause
54618 : */
54619 : s->withClause = w;
54620 : s->targetList = tl;
54621 : s->fromClause = list_make1(makeRangeVar(NULL, relname, -1));
54622 :
54623 : return (Node *) s;
54624 : }
54625 :
54626 : /* parser_init()
54627 : * Initialize to parse one query string
54628 : */
54629 : void
54630 : parser_init(base_yy_extra_type *yyext)
54631 : {
54632 : yyext->parsetree = NIL; /* in case grammar forgets to set it */
54633 : }
|