47 #define YYBISON_VERSION "2.5"
50 #define YYSKELETON_NAME "yacc.c"
62 #define YYLSP_NEEDED 0
73 #define YYERROR_VERBOSE 1
74 #define YYSTACK_USE_ALLOCA 0
88 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
90 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
91 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
92 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
93 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
94 #define malloc YYMALLOC
95 #define realloc YYREALLOC
96 #define calloc YYCALLOC
101 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
105 #define is_notop_id(id) ((id)>tLAST_TOKEN)
106 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
107 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
108 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
109 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
110 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
111 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
112 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
114 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
115 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
116 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
117 ((id)&ID_SCOPE_MASK) == ID_CLASS))
136 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
137 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
138 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
139 # define BITSTACK_SET_P(stack) ((stack)&1)
141 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
142 #define COND_POP() BITSTACK_POP(cond_stack)
143 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
144 #define COND_P() BITSTACK_SET_P(cond_stack)
146 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
147 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
148 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
149 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
166 #define DVARS_INHERIT ((void*)1)
167 #define DVARS_TOPSCOPE NULL
168 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
169 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
192 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
199 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
212 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
229 for (i = 0; i < tbl->
pos; i++) {
230 if (tbl->
tbl[i] ==
id) {
314 VALUE parser_ruby_sourcefile_string;
322 VALUE parsing_thread;
327 #define UTF8_ENC() (parser->utf8 ? parser->utf8 : \
328 (parser->utf8 = rb_utf8_encoding()))
329 #define STR_NEW(p,n) rb_enc_str_new((p),(n),parser->enc)
330 #define STR_NEW0() rb_enc_str_new(0,0,parser->enc)
331 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),parser->enc)
332 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),parser->enc)
333 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
334 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), parser->enc)
337 #define yyerror(msg) parser_yyerror(parser, (msg))
339 #define lex_strterm (parser->parser_lex_strterm)
340 #define lex_state (parser->parser_lex_state)
341 #define cond_stack (parser->parser_cond_stack)
342 #define cmdarg_stack (parser->parser_cmdarg_stack)
343 #define class_nest (parser->parser_class_nest)
344 #define paren_nest (parser->parser_paren_nest)
345 #define lpar_beg (parser->parser_lpar_beg)
346 #define in_single (parser->parser_in_single)
347 #define in_def (parser->parser_in_def)
348 #define compile_for_eval (parser->parser_compile_for_eval)
349 #define cur_mid (parser->parser_cur_mid)
350 #define in_defined (parser->parser_in_defined)
351 #define tokenbuf (parser->parser_tokenbuf)
352 #define tokidx (parser->parser_tokidx)
353 #define toksiz (parser->parser_toksiz)
354 #define lex_input (parser->parser_lex_input)
355 #define lex_lastline (parser->parser_lex_lastline)
356 #define lex_nextline (parser->parser_lex_nextline)
357 #define lex_pbeg (parser->parser_lex_pbeg)
358 #define lex_p (parser->parser_lex_p)
359 #define lex_pend (parser->parser_lex_pend)
360 #define heredoc_end (parser->parser_heredoc_end)
361 #define command_start (parser->parser_command_start)
362 #define deferred_nodes (parser->parser_deferred_nodes)
363 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
364 #define lex_gets (parser->parser_lex_gets)
365 #define lvtbl (parser->parser_lvtbl)
366 #define ruby__end__seen (parser->parser_ruby__end__seen)
367 #define ruby_sourceline (parser->parser_ruby_sourceline)
368 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
369 #define current_enc (parser->enc)
370 #define yydebug (parser->parser_yydebug)
373 #define ruby_eval_tree (parser->parser_eval_tree)
374 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
375 #define ruby_debug_lines (parser->debug_lines)
376 #define ruby_coverage (parser->coverage)
380 static int yylex(
void*,
void*);
382 static int yylex(
void*);
386 #define yyparse ruby_yyparse
389 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
392 #define cond(node) cond_gen(parser, (node))
394 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
402 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
403 #define void_expr0(node) void_expr_gen(parser, (node))
404 #define void_expr(node) void_expr0((node) = remove_begin(node))
406 #define void_stmts(node) void_stmts_gen(parser, (node))
408 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
410 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
413 #define block_append(h,t) block_append_gen(parser,(h),(t))
415 #define list_append(l,i) list_append_gen(parser,(l),(i))
417 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
419 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
421 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
423 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
426 #define new_evstr(n) new_evstr_gen(parser,(n))
428 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
432 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
434 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
437 #define new_args(f,o,r,p,b) new_args_gen(parser, (f),(o),(r),(p),(b))
441 #define ret_args(node) ret_args_gen(parser, (node))
444 #define new_yield(node) new_yield_gen(parser, (node))
447 #define gettable(id) gettable_gen(parser,(id))
449 #define assignable(id,node) assignable_gen(parser, (id), (node))
452 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
454 #define attrset(node,id) attrset_gen(parser, (node), (id))
457 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
459 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
462 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
465 #define local_tbl() local_tbl_gen(parser)
470 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
472 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
474 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
476 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
478 #define get_id(id) (id)
479 #define get_value(val) (val)
481 #define remove_begin(node) (node)
482 #define rb_dvar_defined(id) 0
483 #define rb_local_defined(id) 0
484 static ID ripper_get_id(
VALUE);
485 #define get_id(id) ripper_get_id(id)
487 #define get_value(val) ripper_get_value(val)
489 #define assignable(lhs,node) assignable_gen(parser, (lhs))
491 #define id_is_var(id) id_is_var_gen(parser, (id))
495 #define formal_argument(id) formal_argument_gen(parser, (id))
497 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
499 #define new_bv(id) new_bv_gen(parser, (id))
502 #define local_push(top) local_push_gen(parser,(top))
504 #define local_pop() local_pop_gen(parser)
506 #define local_var(id) local_var_gen(parser, (id));
508 #define arg_var(id) arg_var_gen(parser, (id))
510 #define local_id(id) local_id_gen(parser, (id))
512 #define internal_id() internal_id_gen(parser)
515 #define dyna_push() dyna_push_gen(parser)
517 #define dyna_pop(node) dyna_pop_gen(parser, (node))
519 #define dyna_in_block() dyna_in_block_gen(parser)
520 #define dyna_var(id) local_var(id)
522 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
523 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
525 #define dvar_curr(id) dvar_curr_gen(parser, (id))
528 #define lvar_defined(id) lvar_defined_gen(parser, (id))
530 #define RE_OPTION_ONCE (1<<16)
531 #define RE_OPTION_ENCODING_SHIFT 8
532 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
533 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
534 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
535 #define RE_OPTION_MASK 0xff
536 #define RE_OPTION_ARG_ENCODING_NONE 32
538 #define NODE_STRTERM NODE_ZARRAY
539 #define NODE_HEREDOC NODE_ARRAY
540 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
541 #define nd_func u1.id
542 #if SIZEOF_SHORT == 2
543 #define nd_term(node) ((signed short)(node)->u2.id)
545 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
547 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
548 #define nd_nest u3.cnt
553 #define RIPPER_VERSION "0.1.0"
557 static ID ripper_id_gets;
566 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
567 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
568 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
569 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
570 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
571 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
573 #define yyparse ripper_yyparse
575 #define ripper_intern(s) ID2SYM(rb_intern(s))
578 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
579 ID2SYM(id) : ripper_id2sym(id))
582 #define arg_new() dispatch0(args_new)
583 #define arg_add(l,a) dispatch2(args_add, (l), (a))
584 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
585 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
586 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
587 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
588 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
590 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
591 #define mrhs_new() dispatch0(mrhs_new)
592 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
593 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
595 #define mlhs_new() dispatch0(mlhs_new)
596 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
597 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
599 #define params_new(pars, opts, rest, pars2, blk) \
600 dispatch5(params, (pars), (opts), (rest), (pars2), (blk))
602 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
603 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
604 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
606 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
607 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
608 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
610 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
617 # define ifndef_ripper(x) (x)
619 # define ifndef_ripper(x)
623 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
624 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
625 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
626 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
627 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
629 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
630 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
631 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
632 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
633 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
634 static void ripper_warn0(
struct parser_params*,
const char*);
635 static void ripper_warnI(
struct parser_params*,
const char*,
int);
637 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
639 static void ripper_warning0(
struct parser_params*,
const char*);
640 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
644 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
645 # define rb_compile_error ripper_compile_error
646 # define compile_error ripper_compile_error
647 # define PARSER_ARG parser,
649 # define rb_compile_error rb_compile_error_with_enc
650 # define compile_error parser->nerr++,rb_compile_error_with_enc
651 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
659 #define YYMAXDEPTH 10000
666 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
667 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
669 #define token_info_push(token)
670 #define token_info_pop(token)
683 #ifdef YYERROR_VERBOSE
684 # undef YYERROR_VERBOSE
685 # define YYERROR_VERBOSE 1
687 # define YYERROR_VERBOSE 0
691 #ifndef YYTOKEN_TABLE
692 # define YYTOKEN_TABLE 0
825 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
843 # define YYSTYPE_IS_TRIVIAL 1
844 # define yystype YYSTYPE
845 # define YYSTYPE_IS_DECLARED 1
867 #elif (defined __STDC__ || defined __C99__FUNC__ \
868 || defined __cplusplus || defined _MSC_VER)
887 # ifdef __SIZE_TYPE__
888 # define YYSIZE_T __SIZE_TYPE__
889 # elif defined size_t
890 # define YYSIZE_T size_t
891 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
892 || defined __cplusplus || defined _MSC_VER)
894 # define YYSIZE_T size_t
896 # define YYSIZE_T unsigned int
900 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
903 # if defined YYENABLE_NLS && YYENABLE_NLS
905 # include <libintl.h>
906 # define YY_(msgid) dgettext ("bison-runtime", msgid)
910 # define YY_(msgid) msgid
915 #if ! defined lint || defined __GNUC__
916 # define YYUSE(e) ((void) (e))
925 #if (defined __STDC__ || defined __C99__FUNC__ \
926 || defined __cplusplus || defined _MSC_VER)
939 #if ! defined yyoverflow || YYERROR_VERBOSE
943 # ifdef YYSTACK_USE_ALLOCA
944 # if YYSTACK_USE_ALLOCA
946 # define YYSTACK_ALLOC __builtin_alloca
947 # elif defined __BUILTIN_VA_ARG_INCR
950 # define YYSTACK_ALLOC __alloca
951 # elif defined _MSC_VER
953 # define alloca _alloca
955 # define YYSTACK_ALLOC alloca
956 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
957 || defined __cplusplus || defined _MSC_VER)
959 # ifndef EXIT_SUCCESS
960 # define EXIT_SUCCESS 0
967 # ifdef YYSTACK_ALLOC
969 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
970 # ifndef YYSTACK_ALLOC_MAXIMUM
975 # define YYSTACK_ALLOC_MAXIMUM 4032
978 # define YYSTACK_ALLOC YYMALLOC
979 # define YYSTACK_FREE YYFREE
980 # ifndef YYSTACK_ALLOC_MAXIMUM
981 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
983 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
984 && ! ((defined YYMALLOC || defined malloc) \
985 && (defined YYFREE || defined free)))
987 # ifndef EXIT_SUCCESS
988 # define EXIT_SUCCESS 0
992 # define YYMALLOC malloc
993 # if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
994 || defined __cplusplus || defined _MSC_VER)
1000 # if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
1001 || defined __cplusplus || defined _MSC_VER)
1009 #if (! defined yyoverflow \
1010 && (! defined __cplusplus \
1011 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1021 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1025 # define YYSTACK_BYTES(N) \
1026 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1027 + YYSTACK_GAP_MAXIMUM)
1029 # define YYCOPY_NEEDED 1
1036 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1039 YYSIZE_T yynewbytes; \
1040 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1041 Stack = &yyptr->Stack_alloc; \
1042 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1043 yyptr += yynewbytes / sizeof (*yyptr); \
1049 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1053 # if defined __GNUC__ && 1 < __GNUC__
1054 # define YYCOPY(To, From, Count) \
1055 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1057 # define YYCOPY(To, From, Count) \
1061 for (yyi = 0; yyi < (Count); yyi++) \
1062 (To)[yyi] = (From)[yyi]; \
1072 #define YYLAST 10748
1075 #define YYNTOKENS 148
1079 #define YYNRULES 573
1081 #define YYNSTATES 991
1084 #define YYUNDEFTOK 2
1085 #define YYMAXUTOK 375
1087 #define YYTRANSLATE(YYX) \
1088 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1093 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1094 147, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1095 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1096 2, 2, 146, 123, 2, 2, 2, 121, 116, 2,
1097 142, 143, 119, 117, 140, 118, 139, 120, 2, 2,
1098 2, 2, 2, 2, 2, 2, 2, 2, 111, 145,
1099 113, 109, 112, 110, 2, 2, 2, 2, 2, 2,
1100 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1101 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1102 2, 138, 2, 144, 115, 2, 141, 2, 2, 2,
1103 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1104 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1105 2, 2, 2, 136, 114, 137, 124, 2, 2, 2,
1106 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1107 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1108 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1109 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1110 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1111 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1112 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1113 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1114 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1115 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1116 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1117 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1118 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1119 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1120 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1121 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1122 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1123 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1124 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1125 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1126 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1127 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1128 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1129 105, 106, 107, 108, 122, 125, 126, 127, 128, 129,
1130 130, 131, 132, 133, 134, 135
1138 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1139 23, 24, 30, 35, 38, 40, 42, 46, 49, 50,
1140 55, 59, 63, 67, 70, 74, 78, 82, 86, 90,
1141 95, 97, 101, 105, 112, 118, 124, 130, 136, 140,
1142 144, 148, 152, 154, 158, 162, 164, 168, 172, 176,
1143 179, 181, 183, 185, 187, 189, 194, 199, 200, 206,
1144 209, 213, 218, 224, 229, 235, 238, 241, 244, 247,
1145 250, 252, 256, 258, 262, 264, 267, 271, 277, 280,
1146 285, 288, 293, 295, 299, 301, 305, 308, 312, 314,
1147 318, 320, 322, 327, 331, 335, 339, 343, 346, 348,
1148 350, 352, 357, 361, 365, 369, 373, 376, 378, 380,
1149 382, 385, 387, 391, 393, 395, 397, 399, 401, 403,
1150 405, 407, 409, 411, 412, 417, 419, 421, 423, 425,
1151 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1152 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1153 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1154 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1155 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1156 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1157 547, 549, 551, 553, 555, 557, 561, 567, 571, 577,
1158 584, 590, 596, 602, 608, 613, 617, 621, 625, 629,
1159 633, 637, 641, 645, 649, 654, 659, 662, 665, 669,
1160 673, 677, 681, 685, 689, 693, 697, 701, 705, 709,
1161 713, 717, 720, 723, 727, 731, 735, 739, 740, 745,
1162 752, 754, 756, 758, 761, 766, 769, 773, 775, 777,
1163 779, 781, 784, 789, 792, 794, 797, 800, 805, 807,
1164 808, 811, 814, 817, 819, 821, 824, 828, 833, 837,
1165 842, 845, 847, 849, 851, 853, 855, 857, 859, 861,
1166 863, 864, 869, 870, 875, 879, 883, 886, 890, 894,
1167 896, 901, 905, 907, 908, 915, 920, 924, 927, 929,
1168 932, 935, 942, 949, 950, 951, 959, 960, 961, 969,
1169 975, 980, 981, 982, 992, 993, 1000, 1001, 1002, 1011,
1170 1012, 1018, 1019, 1026, 1027, 1028, 1038, 1040, 1042, 1044,
1171 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064,
1172 1066, 1068, 1070, 1072, 1074, 1077, 1079, 1081, 1083, 1089,
1173 1091, 1094, 1096, 1098, 1100, 1104, 1106, 1110, 1112, 1117,
1174 1124, 1128, 1134, 1137, 1142, 1144, 1148, 1155, 1164, 1169,
1175 1176, 1181, 1184, 1191, 1194, 1199, 1206, 1209, 1214, 1217,
1176 1222, 1224, 1226, 1228, 1232, 1234, 1239, 1241, 1244, 1246,
1177 1250, 1252, 1254, 1255, 1256, 1261, 1266, 1268, 1272, 1276,
1178 1277, 1283, 1286, 1291, 1296, 1299, 1304, 1309, 1313, 1317,
1179 1321, 1324, 1326, 1331, 1332, 1338, 1339, 1345, 1351, 1353,
1180 1355, 1362, 1364, 1366, 1368, 1370, 1373, 1375, 1378, 1380,
1181 1382, 1384, 1386, 1388, 1390, 1392, 1395, 1399, 1403, 1407,
1182 1411, 1415, 1416, 1420, 1422, 1425, 1429, 1433, 1434, 1438,
1183 1439, 1442, 1443, 1446, 1447, 1450, 1452, 1453, 1457, 1458,
1184 1459, 1465, 1467, 1469, 1471, 1473, 1476, 1478, 1480, 1482,
1185 1484, 1488, 1490, 1492, 1495, 1498, 1500, 1502, 1504, 1506,
1186 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526,
1187 1528, 1530, 1532, 1534, 1536, 1537, 1542, 1545, 1549, 1552,
1188 1559, 1568, 1573, 1580, 1585, 1592, 1595, 1600, 1607, 1610,
1189 1615, 1618, 1623, 1625, 1626, 1628, 1630, 1632, 1634, 1636,
1190 1638, 1640, 1644, 1646, 1650, 1654, 1658, 1660, 1664, 1666,
1191 1670, 1672, 1674, 1677, 1679, 1681, 1683, 1686, 1689, 1691,
1192 1693, 1694, 1699, 1701, 1704, 1706, 1710, 1714, 1717, 1719,
1193 1721, 1723, 1725, 1727, 1729, 1731, 1733, 1735, 1737, 1739,
1194 1741, 1742, 1744, 1745, 1747, 1750, 1753, 1754, 1756, 1758,
1195 1760, 1762, 1764, 1767
1201 149, 0, -1, -1, 150, 151, -1, 152, 314, -1,
1202 321, -1, 153, -1, 152, 320, 153, -1, 1, 153,
1203 -1, 158, -1, -1, 47, 154, 136, 151, 137, -1,
1204 156, 256, 231, 259, -1, 157, 314, -1, 321, -1,
1205 158, -1, 157, 320, 158, -1, 1, 158, -1, -1,
1206 45, 180, 159, 180, -1, 45, 54, 54, -1, 45,
1207 54, 64, -1, 45, 54, 63, -1, 6, 181, -1,
1208 158, 40, 162, -1, 158, 41, 162, -1, 158, 42,
1209 162, -1, 158, 43, 162, -1, 158, 44, 158, -1,
1210 48, 136, 156, 137, -1, 160, -1, 168, 109, 163,
1211 -1, 286, 87, 163, -1, 216, 138, 191, 317, 87,
1212 163, -1, 216, 139, 52, 87, 163, -1, 216, 139,
1213 56, 87, 163, -1, 216, 85, 56, 87, 163, -1,
1214 216, 85, 52, 87, 163, -1, 287, 87, 163, -1,
1215 175, 109, 198, -1, 168, 109, 187, -1, 168, 109,
1216 198, -1, 161, -1, 175, 109, 163, -1, 175, 109,
1217 160, -1, 163, -1, 161, 37, 161, -1, 161, 38,
1218 161, -1, 39, 315, 161, -1, 123, 163, -1, 185,
1219 -1, 161, -1, 167, -1, 164, -1, 249, -1, 249,
1220 139, 311, 193, -1, 249, 85, 311, 193, -1, -1,
1221 94, 166, 237, 156, 137, -1, 310, 193, -1, 310,
1222 193, 165, -1, 216, 139, 311, 193, -1, 216, 139,
1223 311, 193, 165, -1, 216, 85, 311, 193, -1, 216,
1224 85, 311, 193, 165, -1, 32, 193, -1, 31, 193,
1225 -1, 30, 192, -1, 21, 192, -1, 22, 192, -1,
1226 170, -1, 89, 169, 316, -1, 170, -1, 89, 169,
1227 316, -1, 172, -1, 172, 171, -1, 172, 95, 174,
1228 -1, 172, 95, 174, 140, 173, -1, 172, 95, -1,
1229 172, 95, 140, 173, -1, 95, 174, -1, 95, 174,
1230 140, 173, -1, 95, -1, 95, 140, 173, -1, 174,
1231 -1, 89, 169, 316, -1, 171, 140, -1, 172, 171,
1232 140, -1, 171, -1, 173, 140, 171, -1, 283, -1,
1233 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1234 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1235 85, 56, -1, 86, 56, -1, 287, -1, 283, -1,
1236 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1237 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1238 85, 56, -1, 86, 56, -1, 287, -1, 52, -1,
1239 56, -1, 86, 176, -1, 176, -1, 216, 85, 176,
1240 -1, 52, -1, 56, -1, 53, -1, 183, -1, 184,
1241 -1, 178, -1, 279, -1, 179, -1, 281, -1, 180,
1242 -1, -1, 181, 140, 182, 180, -1, 114, -1, 115,
1243 -1, 116, -1, 69, -1, 70, -1, 71, -1, 77,
1244 -1, 78, -1, 112, -1, 73, -1, 113, -1, 74,
1245 -1, 72, -1, 83, -1, 84, -1, 117, -1, 118,
1246 -1, 119, -1, 95, -1, 120, -1, 121, -1, 68,
1247 -1, 123, -1, 124, -1, 66, -1, 67, -1, 81,
1248 -1, 82, -1, 141, -1, 49, -1, 50, -1, 51,
1249 -1, 47, -1, 48, -1, 45, -1, 37, -1, 7,
1250 -1, 21, -1, 16, -1, 3, -1, 5, -1, 46,
1251 -1, 26, -1, 15, -1, 14, -1, 10, -1, 9,
1252 -1, 36, -1, 20, -1, 25, -1, 4, -1, 22,
1253 -1, 34, -1, 39, -1, 38, -1, 23, -1, 8,
1254 -1, 24, -1, 30, -1, 33, -1, 32, -1, 13,
1255 -1, 35, -1, 6, -1, 17, -1, 31, -1, 11,
1256 -1, 12, -1, 18, -1, 19, -1, 175, 109, 185,
1257 -1, 175, 109, 185, 44, 185, -1, 286, 87, 185,
1258 -1, 286, 87, 185, 44, 185, -1, 216, 138, 191,
1259 317, 87, 185, -1, 216, 139, 52, 87, 185, -1,
1260 216, 139, 56, 87, 185, -1, 216, 85, 52, 87,
1261 185, -1, 216, 85, 56, 87, 185, -1, 86, 56,
1262 87, 185, -1, 287, 87, 185, -1, 185, 79, 185,
1263 -1, 185, 80, 185, -1, 185, 117, 185, -1, 185,
1264 118, 185, -1, 185, 119, 185, -1, 185, 120, 185,
1265 -1, 185, 121, 185, -1, 185, 68, 185, -1, 122,
1266 59, 68, 185, -1, 122, 60, 68, 185, -1, 66,
1267 185, -1, 67, 185, -1, 185, 114, 185, -1, 185,
1268 115, 185, -1, 185, 116, 185, -1, 185, 69, 185,
1269 -1, 185, 112, 185, -1, 185, 73, 185, -1, 185,
1270 113, 185, -1, 185, 74, 185, -1, 185, 70, 185,
1271 -1, 185, 71, 185, -1, 185, 72, 185, -1, 185,
1272 77, 185, -1, 185, 78, 185, -1, 123, 185, -1,
1273 124, 185, -1, 185, 83, 185, -1, 185, 84, 185,
1274 -1, 185, 75, 185, -1, 185, 76, 185, -1, -1,
1275 46, 315, 186, 185, -1, 185, 110, 185, 315, 111,
1276 185, -1, 199, -1, 185, -1, 321, -1, 197, 318,
1277 -1, 197, 140, 308, 318, -1, 308, 318, -1, 142,
1278 191, 316, -1, 321, -1, 189, -1, 321, -1, 192,
1279 -1, 197, 140, -1, 197, 140, 308, 140, -1, 308,
1280 140, -1, 167, -1, 197, 196, -1, 308, 196, -1,
1281 197, 140, 308, 196, -1, 195, -1, -1, 194, 192,
1282 -1, 96, 187, -1, 140, 195, -1, 321, -1, 187,
1283 -1, 95, 187, -1, 197, 140, 187, -1, 197, 140,
1284 95, 187, -1, 197, 140, 187, -1, 197, 140, 95,
1285 187, -1, 95, 187, -1, 260, -1, 261, -1, 264,
1286 -1, 265, -1, 266, -1, 269, -1, 285, -1, 287,
1287 -1, 53, -1, -1, 217, 200, 155, 227, -1, -1,
1288 90, 161, 201, 316, -1, 89, 156, 143, -1, 216,
1289 85, 56, -1, 86, 56, -1, 92, 188, 144, -1,
1290 93, 307, 137, -1, 30, -1, 31, 142, 192, 316,
1291 -1, 31, 142, 316, -1, 31, -1, -1, 46, 315,
1292 142, 202, 161, 316, -1, 39, 142, 161, 316, -1,
1293 39, 142, 316, -1, 310, 251, -1, 250, -1, 250,
1294 251, -1, 97, 242, -1, 218, 162, 228, 156, 230,
1295 227, -1, 219, 162, 228, 156, 231, 227, -1, -1,
1296 -1, 220, 203, 162, 229, 204, 156, 227, -1, -1,
1297 -1, 221, 205, 162, 229, 206, 156, 227, -1, 222,
1298 162, 314, 254, 227, -1, 222, 314, 254, 227, -1,
1299 -1, -1, 223, 232, 25, 207, 162, 229, 208, 156,
1300 227, -1, -1, 224, 177, 288, 209, 155, 227, -1,
1301 -1, -1, 224, 83, 161, 210, 319, 211, 155, 227,
1302 -1, -1, 225, 177, 212, 155, 227, -1, -1, 226,
1303 178, 213, 290, 155, 227, -1, -1, -1, 226, 305,
1304 313, 214, 178, 215, 290, 155, 227, -1, 21, -1,
1305 22, -1, 23, -1, 24, -1, 199, -1, 7, -1,
1306 11, -1, 12, -1, 18, -1, 19, -1, 16, -1,
1307 20, -1, 3, -1, 4, -1, 5, -1, 10, -1,
1308 319, -1, 13, -1, 319, 13, -1, 319, -1, 27,
1309 -1, 231, -1, 14, 162, 228, 156, 230, -1, 321,
1310 -1, 15, 156, -1, 175, -1, 168, -1, 293, -1,
1311 89, 235, 316, -1, 233, -1, 234, 140, 233, -1,
1312 234, -1, 234, 140, 95, 293, -1, 234, 140, 95,
1313 293, 140, 234, -1, 234, 140, 95, -1, 234, 140,
1314 95, 140, 234, -1, 95, 293, -1, 95, 293, 140,
1315 234, -1, 95, -1, 95, 140, 234, -1, 295, 140,
1316 298, 140, 301, 304, -1, 295, 140, 298, 140, 301,
1317 140, 295, 304, -1, 295, 140, 298, 304, -1, 295,
1318 140, 298, 140, 295, 304, -1, 295, 140, 301, 304,
1319 -1, 295, 140, -1, 295, 140, 301, 140, 295, 304,
1320 -1, 295, 304, -1, 298, 140, 301, 304, -1, 298,
1321 140, 301, 140, 295, 304, -1, 298, 304, -1, 298,
1322 140, 295, 304, -1, 301, 304, -1, 301, 140, 295,
1323 304, -1, 303, -1, 321, -1, 238, -1, 114, 239,
1324 114, -1, 76, -1, 114, 236, 239, 114, -1, 321,
1325 -1, 145, 240, -1, 241, -1, 240, 140, 241, -1,
1326 52, -1, 292, -1, -1, -1, 243, 244, 245, 246,
1327 -1, 142, 291, 239, 316, -1, 291, -1, 107, 156,
1328 137, -1, 29, 156, 10, -1, -1, 28, 248, 237,
1329 156, 10, -1, 167, 247, -1, 249, 139, 311, 190,
1330 -1, 249, 85, 311, 190, -1, 310, 189, -1, 216,
1331 139, 311, 190, -1, 216, 85, 311, 189, -1, 216,
1332 85, 312, -1, 216, 139, 189, -1, 216, 85, 189,
1333 -1, 32, 189, -1, 32, -1, 216, 138, 191, 317,
1334 -1, -1, 136, 252, 237, 156, 137, -1, -1, 26,
1335 253, 237, 156, 10, -1, 17, 197, 228, 156, 255,
1336 -1, 231, -1, 254, -1, 8, 257, 258, 228, 156,
1337 256, -1, 321, -1, 187, -1, 198, -1, 321, -1,
1338 88, 175, -1, 321, -1, 9, 156, -1, 321, -1,
1339 282, -1, 279, -1, 281, -1, 262, -1, 62, -1,
1340 263, -1, 262, 263, -1, 99, 271, 106, -1, 100,
1341 272, 106, -1, 101, 273, 65, -1, 102, 146, 106,
1342 -1, 102, 267, 106, -1, -1, 267, 268, 146, -1,
1343 274, -1, 268, 274, -1, 103, 146, 106, -1, 103,
1344 270, 106, -1, -1, 270, 61, 146, -1, -1, 271,
1345 274, -1, -1, 272, 274, -1, -1, 273, 274, -1,
1346 61, -1, -1, 105, 275, 278, -1, -1, -1, 104,
1347 276, 277, 156, 137, -1, 54, -1, 55, -1, 57,
1348 -1, 287, -1, 98, 280, -1, 178, -1, 55, -1,
1349 54, -1, 57, -1, 98, 272, 106, -1, 59, -1,
1350 60, -1, 122, 59, -1, 122, 60, -1, 52, -1,
1351 55, -1, 54, -1, 56, -1, 57, -1, 34, -1,
1352 33, -1, 35, -1, 36, -1, 50, -1, 49, -1,
1353 51, -1, 283, -1, 284, -1, 283, -1, 284, -1,
1354 63, -1, 64, -1, 319, -1, -1, 113, 289, 162,
1355 319, -1, 1, 319, -1, 142, 291, 316, -1, 291,
1356 319, -1, 295, 140, 299, 140, 301, 304, -1, 295,
1357 140, 299, 140, 301, 140, 295, 304, -1, 295, 140,
1358 299, 304, -1, 295, 140, 299, 140, 295, 304, -1,
1359 295, 140, 301, 304, -1, 295, 140, 301, 140, 295,
1360 304, -1, 295, 304, -1, 299, 140, 301, 304, -1,
1361 299, 140, 301, 140, 295, 304, -1, 299, 304, -1,
1362 299, 140, 295, 304, -1, 301, 304, -1, 301, 140,
1363 295, 304, -1, 303, -1, -1, 56, -1, 55, -1,
1364 54, -1, 57, -1, 292, -1, 52, -1, 293, -1,
1365 89, 235, 316, -1, 294, -1, 295, 140, 294, -1,
1366 52, 109, 187, -1, 52, 109, 216, -1, 297, -1,
1367 298, 140, 297, -1, 296, -1, 299, 140, 296, -1,
1368 119, -1, 95, -1, 300, 52, -1, 300, -1, 116,
1369 -1, 96, -1, 302, 52, -1, 140, 303, -1, 321,
1370 -1, 285, -1, -1, 142, 306, 161, 316, -1, 321,
1371 -1, 308, 318, -1, 309, -1, 308, 140, 309, -1,
1372 187, 88, 187, -1, 58, 187, -1, 52, -1, 56,
1373 -1, 53, -1, 52, -1, 56, -1, 53, -1, 183,
1374 -1, 52, -1, 53, -1, 183, -1, 139, -1, 85,
1375 -1, -1, 320, -1, -1, 147, -1, 315, 143, -1,
1376 315, 144, -1, -1, 147, -1, 140, -1, 145, -1,
1377 147, -1, 319, -1, 320, 145, -1, -1
1383 0, 786, 786, 786, 817, 828, 837, 845, 853, 859,
1384 861, 860, 884, 917, 928, 937, 945, 953, 959, 959,
1385 967, 975, 986, 996, 1004, 1013, 1022, 1035, 1048, 1057,
1386 1069, 1070, 1080, 1109, 1130, 1147, 1164, 1175, 1192, 1202,
1387 1211, 1220, 1229, 1232, 1241, 1253, 1254, 1262, 1270, 1278,
1388 1286, 1289, 1301, 1302, 1305, 1306, 1315, 1327, 1326, 1348,
1389 1357, 1369, 1378, 1390, 1399, 1411, 1420, 1429, 1437, 1445,
1390 1455, 1456, 1466, 1467, 1477, 1485, 1493, 1501, 1510, 1518,
1391 1527, 1535, 1544, 1552, 1563, 1564, 1574, 1582, 1592, 1600,
1392 1610, 1614, 1618, 1626, 1634, 1642, 1650, 1662, 1672, 1684,
1393 1693, 1702, 1710, 1718, 1726, 1734, 1747, 1760, 1771, 1779,
1394 1782, 1790, 1798, 1808, 1809, 1810, 1811, 1816, 1827, 1828,
1395 1831, 1839, 1842, 1850, 1850, 1860, 1861, 1862, 1863, 1864,
1396 1865, 1866, 1867, 1868, 1869, 1870, 1871, 1872, 1873, 1874,
1397 1875, 1876, 1877, 1878, 1879, 1880, 1881, 1882, 1883, 1884,
1398 1885, 1886, 1887, 1888, 1891, 1891, 1891, 1892, 1892, 1893,
1399 1893, 1893, 1894, 1894, 1894, 1894, 1895, 1895, 1895, 1895,
1400 1896, 1896, 1896, 1897, 1897, 1897, 1897, 1898, 1898, 1898,
1401 1898, 1899, 1899, 1899, 1899, 1900, 1900, 1900, 1900, 1901,
1402 1901, 1901, 1901, 1902, 1902, 1905, 1914, 1924, 1953, 1984,
1403 2010, 2027, 2044, 2061, 2072, 2083, 2094, 2108, 2122, 2130,
1404 2138, 2146, 2154, 2162, 2170, 2179, 2188, 2196, 2204, 2212,
1405 2220, 2228, 2236, 2244, 2252, 2260, 2268, 2276, 2284, 2292,
1406 2303, 2311, 2319, 2327, 2335, 2343, 2351, 2359, 2359, 2369,
1407 2379, 2385, 2397, 2398, 2402, 2410, 2420, 2430, 2431, 2434,
1408 2435, 2436, 2440, 2448, 2458, 2467, 2475, 2485, 2494, 2503,
1409 2503, 2515, 2525, 2529, 2535, 2543, 2551, 2565, 2581, 2595,
1410 2610, 2620, 2621, 2622, 2623, 2624, 2625, 2626, 2627, 2628,
1411 2637, 2636, 2661, 2661, 2670, 2678, 2686, 2694, 2707, 2715,
1412 2723, 2731, 2739, 2747, 2747, 2757, 2765, 2773, 2784, 2785,
1413 2796, 2800, 2812, 2824, 2824, 2824, 2835, 2835, 2835, 2846,
1414 2857, 2866, 2868, 2865, 2932, 2931, 2953, 2958, 2952, 2977,
1415 2976, 2998, 2997, 3020, 3021, 3020, 3041, 3049, 3057, 3065,
1416 3075, 3087, 3093, 3099, 3105, 3111, 3117, 3123, 3129, 3135,
1417 3141, 3151, 3157, 3162, 3163, 3170, 3175, 3178, 3179, 3192,
1418 3193, 3203, 3204, 3207, 3215, 3225, 3233, 3243, 3251, 3260,
1419 3269, 3277, 3285, 3294, 3306, 3314, 3324, 3332, 3340, 3348,
1420 3356, 3364, 3373, 3381, 3389, 3397, 3405, 3413, 3421, 3429,
1421 3437, 3447, 3448, 3454, 3463, 3472, 3483, 3484, 3494, 3501,
1422 3510, 3518, 3524, 3527, 3524, 3545, 3553, 3563, 3567, 3574,
1423 3573, 3594, 3610, 3619, 3630, 3639, 3649, 3659, 3667, 3678,
1424 3689, 3697, 3705, 3720, 3719, 3739, 3738, 3759, 3771, 3772,
1425 3775, 3794, 3797, 3805, 3813, 3816, 3820, 3823, 3831, 3834,
1426 3835, 3843, 3846, 3863, 3864, 3865, 3875, 3885, 3912, 3977,
1427 3986, 3997, 4004, 4014, 4022, 4032, 4041, 4052, 4059, 4070,
1428 4077, 4088, 4095, 4106, 4113, 4142, 4144, 4143, 4160, 4166,
1429 4159, 4185, 4193, 4201, 4209, 4212, 4223, 4224, 4225, 4226,
1430 4229, 4259, 4260, 4261, 4269, 4279, 4280, 4281, 4282, 4283,
1431 4286, 4287, 4288, 4289, 4290, 4291, 4292, 4295, 4308, 4318,
1432 4326, 4336, 4337, 4340, 4349, 4348, 4356, 4368, 4378, 4386,
1433 4394, 4402, 4410, 4418, 4426, 4434, 4442, 4450, 4458, 4466,
1434 4474, 4482, 4490, 4499, 4508, 4517, 4526, 4535, 4546, 4547,
1435 4554, 4563, 4582, 4589, 4602, 4614, 4626, 4634, 4650, 4658,
1436 4674, 4675, 4678, 4691, 4702, 4703, 4706, 4723, 4727, 4737,
1437 4747, 4747, 4776, 4777, 4787, 4794, 4804, 4812, 4822, 4823,
1438 4824, 4827, 4828, 4829, 4830, 4833, 4834, 4835, 4838, 4843,
1439 4850, 4851, 4854, 4855, 4858, 4861, 4864, 4865, 4866, 4869,
1440 4870, 4873, 4874, 4878
1444 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1449 "$end",
"error",
"$undefined",
"keyword_class",
"keyword_module",
1450 "keyword_def",
"keyword_undef",
"keyword_begin",
"keyword_rescue",
1451 "keyword_ensure",
"keyword_end",
"keyword_if",
"keyword_unless",
1452 "keyword_then",
"keyword_elsif",
"keyword_else",
"keyword_case",
1453 "keyword_when",
"keyword_while",
"keyword_until",
"keyword_for",
1454 "keyword_break",
"keyword_next",
"keyword_redo",
"keyword_retry",
1455 "keyword_in",
"keyword_do",
"keyword_do_cond",
"keyword_do_block",
1456 "keyword_do_LAMBDA",
"keyword_return",
"keyword_yield",
"keyword_super",
1457 "keyword_self",
"keyword_nil",
"keyword_true",
"keyword_false",
1458 "keyword_and",
"keyword_or",
"keyword_not",
"modifier_if",
1459 "modifier_unless",
"modifier_while",
"modifier_until",
"modifier_rescue",
1460 "keyword_alias",
"keyword_defined",
"keyword_BEGIN",
"keyword_END",
1461 "keyword__LINE__",
"keyword__FILE__",
"keyword__ENCODING__",
1462 "tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
"tCONSTANT",
"tCVAR",
"tLABEL",
1463 "tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
1464 "tBACK_REF",
"tREGEXP_END",
"tUPLUS",
"tUMINUS",
"tPOW",
"tCMP",
"tEQ",
1465 "tEQQ",
"tNEQ",
"tGEQ",
"tLEQ",
"tANDOP",
"tOROP",
"tMATCH",
"tNMATCH",
1466 "tDOT2",
"tDOT3",
"tAREF",
"tASET",
"tLSHFT",
"tRSHFT",
"tCOLON2",
1467 "tCOLON3",
"tOP_ASGN",
"tASSOC",
"tLPAREN",
"tLPAREN_ARG",
"tRPAREN",
1468 "tLBRACK",
"tLBRACE",
"tLBRACE_ARG",
"tSTAR",
"tAMPER",
"tLAMBDA",
1469 "tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
"tWORDS_BEG",
1470 "tQWORDS_BEG",
"tSTRING_DBEG",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1471 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1472 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"idNULL",
1473 "idRespond_to",
"idIFUNC",
"idCFUNC",
"id_core_set_method_alias",
1474 "id_core_set_variable_alias",
"id_core_undef_method",
1475 "id_core_define_method",
"id_core_define_singleton_method",
1476 "id_core_set_postexe",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"'.'",
"','",
1477 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
1478 "$@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"$@2",
"bodystmt",
1479 "compstmt",
"stmts",
"stmt",
"$@3",
"command_asgn",
"expr",
"expr_value",
1480 "command_call",
"block_command",
"cmd_brace_block",
"@4",
"command",
1481 "mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1482 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1483 "fitem",
"undef_list",
"$@5",
"op",
"reswords",
"arg",
"$@6",
1484 "arg_value",
"aref_args",
"paren_args",
"opt_paren_args",
1485 "opt_call_args",
"call_args",
"command_args",
"@7",
"block_arg",
1486 "opt_block_arg",
"args",
"mrhs",
"primary",
"@8",
"$@9",
"$@10",
"$@11",
1487 "$@12",
"$@13",
"$@14",
"$@15",
"$@16",
"@17",
"@18",
"@19",
"@20",
1488 "@21",
"$@22",
"$@23",
"primary_value",
"k_begin",
"k_if",
"k_unless",
1489 "k_while",
"k_until",
"k_case",
"k_for",
"k_class",
"k_module",
"k_def",
1490 "k_end",
"then",
"do",
"if_tail",
"opt_else",
"for_var",
"f_marg",
1491 "f_marg_list",
"f_margs",
"block_param",
"opt_block_param",
1492 "block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
"lambda",
"@24",
1493 "@25",
"f_larglist",
"lambda_body",
"do_block",
"@26",
"block_call",
1494 "method_call",
"brace_block",
"@27",
"@28",
"case_body",
"cases",
1495 "opt_rescue",
"exc_list",
"exc_var",
"opt_ensure",
"literal",
"strings",
1496 "string",
"string1",
"xstring",
"regexp",
"words",
"word_list",
"word",
1497 "qwords",
"qword_list",
"string_contents",
"xstring_contents",
1498 "regexp_contents",
"string_content",
"@29",
"@30",
"@31",
"string_dvar",
1499 "symbol",
"sym",
"dsym",
"numeric",
"user_variable",
"keyword_variable",
1500 "var_ref",
"var_lhs",
"backref",
"superclass",
"$@32",
"f_arglist",
1501 "f_args",
"f_bad_arg",
"f_norm_arg",
"f_arg_item",
"f_arg",
"f_opt",
1502 "f_block_opt",
"f_block_optarg",
"f_optarg",
"restarg_mark",
1503 "f_rest_arg",
"blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
1504 "singleton",
"$@33",
"assoc_list",
"assocs",
"assoc",
"operation",
1505 "operation2",
"operation3",
"dot_or_colon",
"opt_terms",
"opt_nl",
1506 "rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1515 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1516 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1517 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1518 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1519 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1520 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1521 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1522 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1523 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1524 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1525 355, 356, 357, 358, 359, 360, 361, 362, 363, 61,
1526 63, 58, 62, 60, 124, 94, 38, 43, 45, 42,
1527 47, 37, 364, 33, 126, 365, 366, 367, 368, 369,
1528 370, 371, 372, 373, 374, 375, 123, 125, 91, 46,
1529 44, 96, 40, 41, 93, 59, 32, 10
1536 0, 148, 150, 149, 151, 152, 152, 152, 152, 153,
1537 154, 153, 155, 156, 157, 157, 157, 157, 159, 158,
1538 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1539 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1540 158, 158, 158, 160, 160, 161, 161, 161, 161, 161,
1541 161, 162, 163, 163, 164, 164, 164, 166, 165, 167,
1542 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1543 168, 168, 169, 169, 170, 170, 170, 170, 170, 170,
1544 170, 170, 170, 170, 171, 171, 172, 172, 173, 173,
1545 174, 174, 174, 174, 174, 174, 174, 174, 174, 175,
1546 175, 175, 175, 175, 175, 175, 175, 175, 176, 176,
1547 177, 177, 177, 178, 178, 178, 178, 178, 179, 179,
1548 180, 180, 181, 182, 181, 183, 183, 183, 183, 183,
1549 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1550 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1551 183, 183, 183, 183, 184, 184, 184, 184, 184, 184,
1552 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1553 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1554 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1555 184, 184, 184, 184, 184, 185, 185, 185, 185, 185,
1556 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1557 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1558 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1559 185, 185, 185, 185, 185, 185, 185, 186, 185, 185,
1560 185, 187, 188, 188, 188, 188, 189, 190, 190, 191,
1561 191, 191, 191, 191, 192, 192, 192, 192, 192, 194,
1562 193, 195, 196, 196, 197, 197, 197, 197, 198, 198,
1563 198, 199, 199, 199, 199, 199, 199, 199, 199, 199,
1564 200, 199, 201, 199, 199, 199, 199, 199, 199, 199,
1565 199, 199, 199, 202, 199, 199, 199, 199, 199, 199,
1566 199, 199, 199, 203, 204, 199, 205, 206, 199, 199,
1567 199, 207, 208, 199, 209, 199, 210, 211, 199, 212,
1568 199, 213, 199, 214, 215, 199, 199, 199, 199, 199,
1569 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1570 226, 227, 228, 228, 228, 229, 229, 230, 230, 231,
1571 231, 232, 232, 233, 233, 234, 234, 235, 235, 235,
1572 235, 235, 235, 235, 235, 235, 236, 236, 236, 236,
1573 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1574 236, 237, 237, 238, 238, 238, 239, 239, 240, 240,
1575 241, 241, 243, 244, 242, 245, 245, 246, 246, 248,
1576 247, 249, 249, 249, 250, 250, 250, 250, 250, 250,
1577 250, 250, 250, 252, 251, 253, 251, 254, 255, 255,
1578 256, 256, 257, 257, 257, 258, 258, 259, 259, 260,
1579 260, 260, 261, 262, 262, 262, 263, 264, 265, 266,
1580 266, 267, 267, 268, 268, 269, 269, 270, 270, 271,
1581 271, 272, 272, 273, 273, 274, 275, 274, 276, 277,
1582 274, 278, 278, 278, 278, 279, 280, 280, 280, 280,
1583 281, 282, 282, 282, 282, 283, 283, 283, 283, 283,
1584 284, 284, 284, 284, 284, 284, 284, 285, 285, 286,
1585 286, 287, 287, 288, 289, 288, 288, 290, 290, 291,
1586 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
1587 291, 291, 291, 291, 292, 292, 292, 292, 293, 293,
1588 294, 294, 295, 295, 296, 297, 298, 298, 299, 299,
1589 300, 300, 301, 301, 302, 302, 303, 304, 304, 305,
1590 306, 305, 307, 307, 308, 308, 309, 309, 310, 310,
1591 310, 311, 311, 311, 311, 312, 312, 312, 313, 313,
1592 314, 314, 315, 315, 316, 317, 318, 318, 318, 319,
1599 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1600 0, 5, 4, 2, 1, 1, 3, 2, 0, 4,
1601 3, 3, 3, 2, 3, 3, 3, 3, 3, 4,
1602 1, 3, 3, 6, 5, 5, 5, 5, 3, 3,
1603 3, 3, 1, 3, 3, 1, 3, 3, 3, 2,
1604 1, 1, 1, 1, 1, 4, 4, 0, 5, 2,
1605 3, 4, 5, 4, 5, 2, 2, 2, 2, 2,
1606 1, 3, 1, 3, 1, 2, 3, 5, 2, 4,
1607 2, 4, 1, 3, 1, 3, 2, 3, 1, 3,
1608 1, 1, 4, 3, 3, 3, 3, 2, 1, 1,
1609 1, 4, 3, 3, 3, 3, 2, 1, 1, 1,
1610 2, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1611 1, 1, 1, 0, 4, 1, 1, 1, 1, 1,
1612 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1613 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1614 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1615 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1616 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1617 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1618 1, 1, 1, 1, 1, 3, 5, 3, 5, 6,
1619 5, 5, 5, 5, 4, 3, 3, 3, 3, 3,
1620 3, 3, 3, 3, 4, 4, 2, 2, 3, 3,
1621 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1622 3, 2, 2, 3, 3, 3, 3, 0, 4, 6,
1623 1, 1, 1, 2, 4, 2, 3, 1, 1, 1,
1624 1, 2, 4, 2, 1, 2, 2, 4, 1, 0,
1625 2, 2, 2, 1, 1, 2, 3, 4, 3, 4,
1626 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1627 0, 4, 0, 4, 3, 3, 2, 3, 3, 1,
1628 4, 3, 1, 0, 6, 4, 3, 2, 1, 2,
1629 2, 6, 6, 0, 0, 7, 0, 0, 7, 5,
1630 4, 0, 0, 9, 0, 6, 0, 0, 8, 0,
1631 5, 0, 6, 0, 0, 9, 1, 1, 1, 1,
1632 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1633 1, 1, 1, 1, 2, 1, 1, 1, 5, 1,
1634 2, 1, 1, 1, 3, 1, 3, 1, 4, 6,
1635 3, 5, 2, 4, 1, 3, 6, 8, 4, 6,
1636 4, 2, 6, 2, 4, 6, 2, 4, 2, 4,
1637 1, 1, 1, 3, 1, 4, 1, 2, 1, 3,
1638 1, 1, 0, 0, 4, 4, 1, 3, 3, 0,
1639 5, 2, 4, 4, 2, 4, 4, 3, 3, 3,
1640 2, 1, 4, 0, 5, 0, 5, 5, 1, 1,
1641 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1642 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1643 3, 0, 3, 1, 2, 3, 3, 0, 3, 0,
1644 2, 0, 2, 0, 2, 1, 0, 3, 0, 0,
1645 5, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1646 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1647 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1648 1, 1, 1, 1, 0, 4, 2, 3, 2, 6,
1649 8, 4, 6, 4, 6, 2, 4, 6, 2, 4,
1650 2, 4, 1, 0, 1, 1, 1, 1, 1, 1,
1651 1, 3, 1, 3, 3, 3, 1, 3, 1, 3,
1652 1, 1, 2, 1, 1, 1, 2, 2, 1, 1,
1653 0, 4, 1, 2, 1, 3, 3, 2, 1, 1,
1654 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1655 0, 1, 0, 1, 2, 2, 0, 1, 1, 1,
1664 2, 0, 0, 1, 0, 338, 339, 340, 0, 331,
1665 332, 333, 336, 334, 335, 337, 326, 327, 328, 329,
1666 289, 259, 259, 481, 480, 482, 483, 562, 0, 562,
1667 10, 0, 485, 484, 486, 475, 550, 477, 476, 478,
1668 479, 471, 472, 433, 491, 492, 0, 0, 0, 0,
1669 0, 573, 573, 82, 392, 451, 449, 451, 453, 441,
1670 447, 0, 0, 0, 3, 560, 6, 9, 30, 42,
1671 45, 53, 52, 0, 70, 0, 74, 84, 0, 50,
1672 240, 0, 280, 0, 0, 303, 306, 560, 0, 0,
1673 0, 0, 54, 298, 271, 272, 432, 434, 273, 274,
1674 275, 276, 430, 431, 429, 487, 488, 277, 0, 278,
1675 259, 5, 8, 164, 175, 165, 188, 161, 181, 171,
1676 170, 191, 192, 186, 169, 168, 163, 189, 193, 194,
1677 173, 162, 176, 180, 182, 174, 167, 183, 190, 185,
1678 184, 177, 187, 172, 160, 179, 178, 159, 166, 157,
1679 158, 154, 155, 156, 113, 115, 114, 149, 150, 146,
1680 128, 129, 130, 137, 134, 136, 131, 132, 151, 152,
1681 138, 139, 143, 133, 135, 125, 126, 127, 140, 141,
1682 142, 144, 145, 147, 148, 153, 118, 120, 122, 23,
1683 116, 117, 119, 121, 0, 0, 0, 0, 0, 0,
1684 0, 254, 0, 241, 264, 68, 258, 573, 0, 487,
1685 488, 0, 278, 573, 544, 69, 67, 562, 66, 0,
1686 573, 410, 65, 562, 563, 0, 0, 18, 237, 0,
1687 0, 326, 327, 289, 292, 411, 216, 0, 0, 217,
1688 286, 0, 0, 0, 560, 15, 562, 72, 14, 282,
1689 0, 566, 566, 242, 0, 0, 566, 542, 562, 0,
1690 0, 0, 80, 330, 0, 90, 91, 98, 300, 393,
1691 468, 467, 469, 466, 0, 465, 0, 0, 0, 0,
1692 0, 0, 0, 473, 474, 49, 231, 232, 569, 570,
1693 4, 571, 561, 0, 0, 0, 0, 0, 0, 0,
1694 399, 401, 0, 86, 0, 78, 75, 0, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 573, 0, 0, 51, 0,
1698 0, 0, 0, 560, 0, 561, 0, 352, 351, 0,
1699 0, 487, 488, 278, 108, 109, 0, 0, 111, 0,
1700 0, 487, 488, 278, 319, 184, 177, 187, 172, 154,
1701 155, 156, 113, 114, 540, 321, 539, 0, 0, 0,
1702 415, 413, 299, 435, 0, 0, 404, 59, 297, 123,
1703 547, 286, 265, 261, 0, 0, 0, 255, 263, 0,
1704 573, 0, 0, 0, 0, 256, 562, 0, 291, 260,
1705 562, 250, 573, 573, 249, 562, 296, 48, 20, 22,
1706 21, 0, 293, 0, 0, 0, 0, 0, 0, 17,
1707 562, 284, 13, 561, 71, 562, 287, 568, 567, 243,
1708 568, 245, 288, 543, 0, 97, 473, 474, 88, 83,
1709 0, 0, 573, 0, 513, 455, 458, 456, 470, 452,
1710 436, 450, 437, 438, 454, 439, 440, 0, 443, 445,
1711 0, 446, 0, 0, 572, 7, 24, 25, 26, 27,
1712 28, 46, 47, 573, 0, 31, 40, 0, 41, 562,
1713 0, 76, 87, 44, 43, 0, 195, 264, 39, 213,
1714 221, 226, 227, 228, 223, 225, 235, 236, 229, 230,
1715 206, 207, 233, 234, 562, 222, 224, 218, 219, 220,
1716 208, 209, 210, 211, 212, 551, 556, 552, 557, 409,
1717 259, 407, 562, 551, 553, 552, 554, 408, 259, 0,
1718 573, 343, 0, 342, 0, 0, 0, 0, 0, 0,
1719 286, 0, 573, 0, 311, 316, 108, 109, 110, 0,
1720 494, 314, 493, 0, 573, 0, 0, 0, 513, 559,
1721 558, 323, 551, 552, 259, 259, 573, 573, 32, 197,
1722 38, 205, 57, 60, 0, 195, 546, 0, 266, 262,
1723 573, 555, 552, 562, 551, 552, 545, 290, 564, 246,
1724 251, 253, 295, 19, 0, 238, 0, 29, 0, 573,
1725 204, 73, 16, 283, 566, 0, 81, 94, 96, 562,
1726 551, 552, 519, 516, 515, 514, 517, 0, 531, 535,
1727 534, 530, 513, 0, 396, 518, 520, 522, 573, 528,
1728 573, 533, 573, 0, 512, 459, 0, 442, 444, 448,
1729 214, 215, 384, 573, 0, 382, 381, 270, 0, 85,
1730 79, 0, 0, 0, 0, 0, 0, 406, 63, 0,
1731 412, 0, 0, 248, 405, 61, 247, 341, 281, 573,
1732 573, 421, 573, 344, 573, 346, 304, 345, 307, 0,
1733 0, 310, 555, 285, 562, 551, 552, 0, 0, 496,
1734 0, 0, 108, 109, 112, 562, 0, 562, 513, 0,
1735 0, 0, 403, 56, 402, 55, 0, 0, 0, 573,
1736 124, 267, 257, 0, 0, 412, 0, 0, 573, 562,
1737 11, 244, 89, 92, 0, 519, 0, 364, 355, 357,
1738 562, 353, 573, 0, 0, 394, 0, 505, 538, 0,
1739 508, 532, 0, 510, 536, 0, 461, 462, 463, 457,
1740 464, 519, 0, 573, 0, 573, 526, 573, 573, 380,
1741 386, 0, 0, 268, 77, 196, 0, 37, 202, 36,
1742 203, 64, 565, 0, 34, 200, 35, 201, 62, 422,
1743 423, 573, 424, 0, 573, 349, 0, 0, 347, 0,
1744 0, 0, 309, 0, 0, 412, 0, 317, 0, 0,
1745 412, 320, 541, 562, 0, 498, 324, 0, 0, 198,
1746 0, 0, 252, 294, 524, 562, 0, 362, 0, 521,
1747 562, 0, 0, 523, 573, 573, 537, 573, 529, 573,
1748 573, 0, 0, 390, 387, 388, 391, 0, 383, 371,
1749 373, 0, 376, 0, 378, 400, 269, 239, 33, 199,
1750 0, 0, 426, 350, 0, 12, 428, 0, 301, 302,
1751 0, 0, 266, 573, 312, 0, 495, 315, 497, 322,
1752 513, 416, 414, 0, 354, 365, 0, 360, 356, 395,
1753 398, 397, 0, 501, 0, 503, 0, 509, 0, 506,
1754 511, 460, 0, 525, 0, 385, 573, 573, 573, 527,
1755 573, 573, 0, 425, 0, 99, 100, 107, 0, 427,
1756 0, 305, 308, 418, 419, 417, 0, 0, 0, 58,
1757 0, 363, 0, 358, 573, 573, 573, 573, 286, 0,
1758 389, 0, 368, 0, 370, 377, 0, 374, 379, 106,
1759 0, 573, 0, 573, 573, 0, 318, 0, 361, 0,
1760 502, 0, 499, 504, 507, 555, 285, 573, 573, 573,
1761 573, 555, 105, 562, 551, 552, 420, 348, 313, 325,
1762 359, 573, 369, 0, 366, 372, 375, 412, 500, 573,
1769 -1, 1, 2, 64, 65, 66, 229, 539, 540, 244,
1770 245, 421, 68, 69, 339, 70, 71, 583, 719, 72,
1771 73, 246, 74, 75, 76, 449, 77, 202, 358, 359,
1772 186, 187, 188, 189, 584, 536, 191, 79, 423, 204,
1773 250, 529, 674, 410, 411, 218, 219, 206, 397, 412,
1774 488, 80, 337, 435, 604, 341, 800, 342, 801, 697,
1775 926, 701, 698, 875, 566, 568, 711, 880, 237, 82,
1776 83, 84, 85, 86, 87, 88, 89, 90, 91, 678,
1777 542, 686, 797, 798, 350, 738, 739, 740, 763, 654,
1778 655, 764, 844, 845, 268, 269, 454, 633, 745, 301,
1779 483, 92, 93, 388, 577, 576, 549, 925, 680, 791,
1780 861, 865, 94, 95, 96, 97, 98, 99, 100, 280,
1781 467, 101, 282, 276, 274, 278, 459, 646, 645, 755,
1782 759, 102, 275, 103, 104, 209, 210, 107, 211, 212,
1783 561, 700, 709, 710, 635, 636, 637, 638, 639, 766,
1784 767, 640, 641, 642, 643, 836, 747, 377, 567, 255,
1785 413, 214, 238, 608, 531, 571, 290, 407, 408, 670,
1791 #define YYPACT_NINF -747
1794 -747, 81, 2552, -747, 7102, -747, -747, -747, 6615, -747,
1795 -747, -747, -747, -747, -747, -747, 7320, 7320, -747, -747,
1796 7320, 3237, 2814, -747, -747, -747, -747, 100, 6476, -31,
1797 -747, -26, -747, -747, -747, 5715, 2955, -747, -747, 5842,
1798 -747, -747, -747, -747, -747, -747, 8519, 8519, 83, 4434,
1799 8628, 7538, 7865, 6878, -747, 6337, -747, -747, -747, -24,
1800 29, 252, 8737, 8519, -747, 193, -747, 1104, -747, 458,
1801 -747, -747, 129, 77, -747, 69, 8846, -747, 139, 2797,
1802 22, 41, -747, 8628, 8628, -747, -747, 5078, 8951, 9056,
1803 9161, 5588, 33, 46, -747, -747, 157, -747, -747, -747,
1804 -747, -747, -747, -747, -747, 25, 58, -747, 179, 613,
1805 51, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1806 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1807 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1808 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1809 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1810 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1811 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1812 -747, -747, -747, -747, -747, -747, -747, -747, -747, 134,
1813 -747, -747, -747, -747, 182, 8519, 279, 4564, 8519, 8519,
1814 8519, -747, 263, 2797, 260, -747, -747, 237, 207, 43,
1815 206, 298, 254, 265, -747, -747, -747, 4969, -747, 7320,
1816 7320, -747, -747, 5208, -747, 8628, 661, -747, 272, 287,
1817 4694, -747, -747, -747, 295, 307, -747, 304, 51, 416,
1818 619, 7211, 4434, 384, 193, 1104, -31, 399, -747, 458,
1819 419, 221, 300, -747, 260, 430, 300, -747, -31, 497,
1820 501, 9266, 442, -747, 351, 366, 383, 409, -747, -747,
1821 -747, -747, -747, -747, 644, -747, 754, 813, 605, 464,
1822 819, 478, 68, 530, 532, -747, -747, -747, -747, -747,
1823 -747, -747, 5317, 8628, 8628, 8628, 8628, 7211, 8628, 8628,
1824 -747, -747, 7974, -747, 4434, 6990, 470, 7974, 8519, 8519,
1825 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1826 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1827 8519, 8519, 8519, 8519, 9548, 7320, 9625, 3609, 458, 86,
1828 86, 8628, 8628, 193, 597, 480, 562, -747, -747, 454,
1829 601, 54, 76, 99, 331, 349, 8628, 481, -747, 45,
1830 473, -747, -747, -747, -747, 217, 286, 305, 318, 321,
1831 347, 363, 376, 381, -747, -747, -747, 391, 10549, 10549,
1832 -747, -747, -747, -747, 8737, 8737, -747, 535, -747, -747,
1833 -747, 388, -747, -747, 8519, 8519, 7429, -747, -747, 9702,
1834 7320, 9779, 8519, 8519, 7647, -747, -31, 492, -747, -747,
1835 -31, -747, 506, 539, -747, 106, -747, -747, -747, -747,
1836 -747, 6615, -747, 8519, 4029, 508, 9702, 9779, 8519, 1104,
1837 -31, -747, -747, 5445, 541, -31, -747, 7756, -747, -747,
1838 7865, -747, -747, -747, 272, 510, -747, -747, -747, 543,
1839 9266, 9856, 7320, 9933, 774, -747, -747, -747, -747, -747,
1840 -747, -747, -747, -747, -747, -747, -747, 313, -747, -747,
1841 491, -747, 8519, 8519, -747, -747, -747, -747, -747, -747,
1842 -747, -747, -747, 32, 8519, -747, 545, 546, -747, -31,
1843 9266, 551, -747, -747, -747, 566, 9473, -747, -747, 416,
1844 2184, 2184, 2184, 2184, 781, 781, 2273, 2938, 2184, 2184,
1845 1364, 1364, 662, 662, 2656, 781, 781, 927, 927, 768,
1846 397, 397, 416, 416, 416, 3378, 6083, 3464, 6197, -747,
1847 307, -747, -31, 647, -747, 660, -747, -747, 3096, 650,
1848 688, -747, 3754, 685, 4174, 56, 56, 597, 8083, 650,
1849 112, 10010, 7320, 10087, -747, 458, -747, 510, -747, 193,
1850 -747, -747, -747, 10164, 7320, 10241, 3609, 8628, 1131, -747,
1851 -747, -747, -747, -747, 1739, 1739, 32, 32, -747, 10608,
1852 -747, 2797, -747, -747, 6615, 10627, -747, 8519, 260, -747,
1853 265, 5969, 2673, -31, 490, 500, -747, -747, -747, -747,
1854 7429, 7647, -747, -747, 8628, 2797, 570, -747, 307, 307,
1855 2797, 213, 1104, -747, 300, 9266, 543, 505, 282, -31,
1856 38, 261, 603, -747, -747, -747, -747, 972, -747, -747,
1857 -747, -747, 1223, 66, -747, -747, -747, -747, 580, -747,
1858 583, 683, 589, 687, -747, -747, 893, -747, -747, -747,
1859 416, 416, -747, 576, 4839, -747, -747, 604, 8192, -747,
1860 543, 9266, 8737, 8519, 630, 8737, 8737, -747, 535, 608,
1861 677, 8737, 8737, -747, -747, 535, -747, -747, -747, 8301,
1862 740, -747, 588, -747, 740, -747, -747, -747, -747, 650,
1863 44, -747, 239, 257, -31, 141, 145, 8628, 193, -747,
1864 8628, 3609, 505, 282, -747, -31, 650, 106, 1223, 3609,
1865 193, 6754, -747, -747, -747, -747, 4839, 4694, 8519, 32,
1866 -747, -747, -747, 8519, 8519, 507, 8519, 8519, 636, 106,
1867 -747, -747, -747, 291, 8519, -747, 972, 457, -747, 651,
1868 -31, -747, 639, 4839, 4694, -747, 1223, -747, -747, 1223,
1869 -747, -747, 598, -747, -747, 4694, -747, -747, -747, -747,
1870 -747, 681, 1017, 639, 679, 654, -747, 656, 657, -747,
1871 -747, 789, 8519, 664, 543, 2797, 8519, -747, 2797, -747,
1872 2797, -747, -747, 8737, -747, 2797, -747, 2797, -747, 545,
1873 -747, 713, -747, 4304, 796, -747, 8628, 650, -747, 650,
1874 4839, 4839, -747, 8410, 3899, 189, 56, -747, 193, 650,
1875 -747, -747, -747, -31, 650, -747, -747, 799, 673, 2797,
1876 4694, 8519, 7647, -747, -747, -31, 884, 671, 1079, -747,
1877 -31, 803, 686, -747, 676, 678, -747, 684, -747, 694,
1878 684, 690, 9371, -747, 699, -747, -747, 711, -747, 1251,
1879 -747, 1251, -747, 598, -747, -747, 700, 2797, -747, 2797,
1880 9476, 86, -747, -747, 4839, -747, -747, 86, -747, -747,
1881 650, 650, -747, 365, -747, 3609, -747, -747, -747, -747,
1882 1131, -747, -747, 706, -747, 707, 884, 716, -747, -747,
1883 -747, -747, 1223, -747, 598, -747, 598, -747, 598, -747,
1884 -747, -747, 790, 520, 1017, -747, 708, 715, 684, -747,
1885 717, 684, 797, -747, 523, 366, 383, 409, 3609, -747,
1886 3754, -747, -747, -747, -747, -747, 4839, 650, 3609, -747,
1887 884, 707, 884, 721, 684, 727, 684, 684, -747, 10318,
1888 -747, 1251, -747, 598, -747, -747, 598, -747, -747, 510,
1889 10395, 7320, 10472, 688, 588, 650, -747, 650, 707, 884,
1890 -747, 598, -747, -747, -747, 730, 731, 684, 735, 684,
1891 684, 55, 282, -31, 128, 158, -747, -747, -747, -747,
1892 707, 684, -747, 598, -747, -747, -747, 163, -747, 684,
1899 -747, -747, -747, 452, -747, 28, -747, -545, 277, -747,
1900 39, -747, -293, 184, -58, 71, -747, -169, -747, -7,
1901 791, -142, -13, -37, -747, -396, -29, 1623, -312, 788,
1902 -54, -747, -25, -747, -747, 20, -747, 1066, -747, -45,
1903 -747, 11, 47, -324, 115, 5, -747, -322, -196, 53,
1904 -295, 8, -747, -747, -747, -747, -747, -747, -747, -747,
1905 -747, -747, -747, -747, -747, -747, -747, -747, 2, -747,
1906 -747, -747, -747, -747, -747, -747, -747, -747, -747, 205,
1907 -338, -516, -72, -618, -747, -722, -671, 147, -747, -489,
1908 -747, -600, -747, -12, -747, -747, -747, -747, -747, -747,
1909 -747, -747, -747, 798, -747, -747, -531, -747, -50, -747,
1910 -747, -747, -747, -747, -747, 811, -747, -747, -747, -747,
1911 -747, -747, -747, -747, 856, -747, -140, -747, -747, -747,
1912 -747, 7, -747, 12, -747, 1268, 1605, 823, 1289, 1575,
1913 -747, -747, 35, -387, -697, -568, -690, 273, -696, -746,
1914 72, 181, -747, -526, -747, -449, 270, -747, -747, -747,
1915 97, -360, 758, -276, -747, -747, -56, -4, 278, -585,
1922 #define YYTABLE_NINF -574
1925 111, 273, 544, 227, 81, 644, 81, 254, 725, 201,
1926 201, 532, 498, 201, 493, 192, 689, 405, 208, 208,
1927 193, 706, 208, 225, 262, 228, 340, 222, 190, 343,
1928 688, 344, 112, 221, 733, 192, 247, 375, 441, 306,
1929 193, 67, 443, 67, 596, 558, 559, 292, 190, 253,
1930 257, 81, 208, 838, 616, 264, 833, 541, 530, 741,
1931 538, 263, 794, -93, 208, 846, 799, 634, -103, 207,
1932 207, 291, 380, 207, 589, 190, 593, 380, 264, -99,
1933 596, 3, 589, 685, 263, 208, 208, 716, 717, 208,
1934 349, 360, 360, 291, 660, 743, 263, 263, 263, 541,
1935 430, -100, 574, 575, 251, 909, 888, -330, 652, 805,
1936 230, 190, -489, 213, 213, 387, 224, 213, 378, 644,
1937 810, 386, 279, 530, -107, 538, 334, 768, 619, 470,
1938 -489, 205, 215, 285, -99, 216, 461, -106, 464, 240,
1939 468, -102, 830, 298, 299, -490, 653, -93, 252, 256,
1940 390, 609, -99, 392, 393, 885, 809, 300, 560, 833,
1941 -330, -330, 489, 847, 814, -90, -102, -100, 741, 827,
1942 -104, -104, 379, 744, 471, 281, -101, 609, -93, 335,
1943 336, -93, 381, 644, 803, -93, 302, 381, 432, 288,
1944 288, 289, 289, 220, -90, 909, 838, -551, -91, 81,
1945 -103, 288, -103, 289, 769, 398, 833, 846, 888, 303,
1946 201, 398, 201, 201, -101, 931, -91, 405, 414, 208,
1947 835, 208, 208, 839, 448, 208, 433, 208, 694, 247,
1948 820, 288, 81, 289, 249, 476, 477, 478, 479, -98,
1949 705, 596, 223, 81, 81, 742, 221, 224, 307, 386,
1950 291, 704, -97, 224, 444, 923, 56, 486, 741, 644,
1951 741, 958, 497, 264, -103, 774, 384, 338, 338, 263,
1952 207, 338, 207, -102, 389, -102, 491, 609, 589, 589,
1953 429, -93, -105, 545, 546, -95, -95, 547, 980, 609,
1954 874, 247, 399, -490, 81, 208, 208, 208, 208, 81,
1955 208, 208, -481, -104, 208, -104, 81, 264, -101, 208,
1956 -101, 283, 284, 263, 213, -100, 213, -412, 741, 933,
1957 475, 813, -71, 907, 223, 910, 243, 648, 201, -92,
1958 927, 67, 406, 414, 409, 391, 480, 208, 288, 81,
1959 289, 403, 924, 208, 208, 400, 401, 537, 395, 291,
1960 586, 588, 804, -85, 528, 487, -481, -548, 208, 254,
1961 487, 437, 741, -107, 741, 562, 935, -285, 438, 493,
1962 -95, -480, 394, 485, 455, -549, -412, 396, 494, -94,
1963 793, -551, 548, 957, 790, 402, 208, 208, 987, 426,
1964 -482, 741, 588, 201, 722, 254, 603, -96, 414, -552,
1965 731, -95, 208, -483, -95, 404, -485, 415, -95, 417,
1966 398, 398, 537, 448, 422, 968, -475, 456, 457, 528,
1967 -285, -285, 111, 424, -552, -480, 81, -412, 192, -412,
1968 -412, 644, -484, 193, -478, 81, 451, 217, 537, 657,
1969 440, 190, 400, 427, -482, 201, 528, 438, -486, 220,
1970 414, -487, 264, 448, 208, 578, 580, -483, 263, 647,
1971 -485, -475, 596, 67, 537, 308, -478, -548, -488, -475,
1972 -475, 528, 612, -548, 243, 428, 569, 338, 338, 338,
1973 338, 656, 481, 482, 308, -549, -484, -478, -478, 452,
1974 453, -549, 264, 590, -278, 298, 299, -106, 263, 781,
1975 589, 416, -486, 497, -487, -487, 788, 425, -70, 735,
1976 664, 623, 624, 625, 626, -475, 331, 332, 333, 243,
1977 -478, -488, -488, 918, 434, 338, 338, 431, 669, 920,
1978 570, -555, 722, 556, 614, 668, 676, 557, 681, 551,
1979 555, 667, 721, 675, 81, 201, 81, -278, -278, 673,
1980 414, 687, 687, 445, 208, 588, 254, 201, 563, 720,
1981 446, 447, 414, 436, 537, 699, 208, 442, 81, 208,
1982 465, 528, 676, 676, 656, 656, 537, 726, 732, 713,
1983 715, 243, 450, 528, 469, 673, 673, 727, 398, 669,
1984 -555, 192, 552, 553, 821, -286, 193, 826, 472, -102,
1985 473, 690, 796, 793, 190, 939, 208, 676, 950, -104,
1986 492, 564, 565, 773, 548, 669, -101, 264, 550, 667,
1987 673, 712, 714, 263, 448, 474, 554, 973, 761, 582,
1988 623, 624, 625, 626, 789, 598, 748, 649, 748, 806,
1989 748, -555, 808, -555, -555, 607, 600, -551, -286, -286,
1990 735, 770, 623, 624, 625, 626, 81, 816, 564, 565,
1991 677, 951, 952, 264, 208, 627, 455, 208, 208, 263,
1992 463, 628, 629, 208, 208, 662, 609, 792, 795, 601,
1993 795, -85, 795, 615, 597, -264, 658, 627, 599, 824,
1994 669, 661, 630, 602, 629, 631, 679, 728, 683, 208,
1995 385, 669, 208, 81, 807, 455, 428, 730, 611, 456,
1996 457, 81, 734, 613, 630, 418, 815, 656, 81, 81,
1997 746, 762, -107, 749, 419, 420, 398, 856, -106, 752,
1998 308, 190, 487, 494, 671, 751, 777, 779, 867, 754,
1999 770, 776, 784, 786, -265, 81, 81, 672, 456, 457,
2000 458, 707, 782, -98, 691, 793, -102, 81, 872, -97,
2001 110, 770, 110, 748, 783, 748, 748, 659, 735, -104,
2002 623, 624, 625, 626, 110, 110, 822, 254, 110, 329,
2003 330, 331, 332, 333, 762, 208, -101, -93, 729, 862,
2004 842, 828, 866, 848, 849, 81, 851, 853, 208, 855,
2005 -95, 860, 81, 81, -266, 864, 81, 110, 110, 881,
2006 882, 886, 687, 890, 876, 455, 892, -92, 894, 682,
2007 110, 684, 81, 891, 896, 905, 622, 901, 623, 624,
2008 625, 626, 748, 748, 898, 748, 308, 748, 748, 904,
2009 -267, 110, 110, 929, 903, 110, 938, 930, 941, 308,
2010 263, 321, 322, 949, 858, 943, 932, 946, 456, 457,
2011 460, 959, 914, 627, 321, 322, 81, 961, 263, 628,
2012 629, 795, -551, -552, 455, 983, 606, 81, 364, 347,
2013 455, 338, 977, 825, 338, 329, 330, 331, 332, 333,
2014 630, 382, 940, 631, 802, 326, 327, 328, 329, 330,
2015 331, 332, 333, 976, 748, 748, 748, 383, 748, 748,
2016 750, 811, 753, 277, 376, 928, 632, 456, 457, 462,
2017 81, 906, 81, 456, 457, 466, 765, 834, 81, 0,
2018 81, 771, 748, 748, 748, 748, 735, 0, 623, 624,
2019 625, 626, 0, 0, 201, 0, 0, 756, 757, 414,
2020 758, 681, 795, 208, 0, 110, 44, 45, 0, 528,
2021 0, 0, 0, 537, 0, 748, 748, 748, 748, 669,
2022 528, 0, 0, 736, 0, 110, 0, 110, 110, 748,
2023 338, 110, 0, 110, 0, 812, 0, 748, 110, 0,
2024 0, 0, 0, 817, 818, 308, 0, 0, 0, 110,
2025 110, 0, 868, 0, 869, 0, 0, 823, 0, 0,
2026 321, 322, 0, 0, 877, 0, 0, 0, 829, 879,
2027 831, 832, 837, 0, 735, 840, 623, 624, 625, 626,
2028 0, 0, 841, 0, 0, 850, 0, 852, 854, 0,
2029 0, 0, 0, 328, 329, 330, 331, 332, 333, 0,
2030 110, 110, 110, 110, 110, 110, 110, 110, 0, 0,
2031 110, 736, 110, 0, 0, 110, 0, 737, 0, 843,
2032 863, 623, 624, 625, 626, 921, 922, 870, 871, 0,
2033 0, 873, 203, 203, 0, 0, 203, 0, 0, 0,
2034 0, 878, 0, 110, 0, 110, 0, 883, 0, 110,
2035 110, 0, 0, 884, 893, 895, 0, 897, 889, 899,
2036 900, 0, 236, 239, 110, 0, 0, 203, 203, 0,
2037 0, 0, 0, 0, 908, 0, 911, 0, 286, 287,
2038 0, 735, 956, 623, 624, 625, 626, 0, 0, 0,
2039 0, 919, 110, 110, 293, 294, 295, 296, 297, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0, 110, 0,
2041 978, 0, 979, 0, 0, 934, 0, 936, 736, 0,
2042 0, 937, 0, 0, 887, 0, 942, 944, 945, 0,
2043 947, 948, 110, 622, 0, 623, 624, 625, 626, 0,
2044 0, 110, 0, 0, 0, 953, 0, 954, 0, 0,
2045 0, 0, 0, 955, 960, 962, 963, 964, 0, 0,
2046 110, 0, 0, 0, 967, 0, 969, 0, 0, 970,
2047 627, 0, 0, 0, 0, 0, 628, 629, 0, 0,
2048 0, 0, 0, 0, 981, 0, 0, 982, 984, 985,
2049 986, 0, 0, 0, 0, 0, 0, 630, 0, 0,
2050 631, 988, 0, 0, 0, 0, 989, 0, 0, 990,
2051 0, 203, 0, 0, 203, 203, 286, 0, 0, 0,
2052 105, 0, 105, 708, 0, 622, 0, 623, 624, 625,
2053 626, 0, 0, 203, 0, 203, 203, 0, 0, 0,
2054 0, 108, 0, 108, 0, 0, 0, 0, 0, 0,
2055 110, 0, 110, 761, 0, 623, 624, 625, 626, 0,
2056 110, 0, 627, 0, 0, 0, 0, 105, 628, 629,
2057 0, 265, 110, 0, 110, 110, 0, 0, 0, 0,
2058 0, 0, 0, 0, 0, 0, 0, 0, 108, 630,
2059 627, 0, 631, 0, 265, 0, 628, 629, 0, 0,
2060 0, 0, 0, 0, 0, 0, 351, 361, 361, 361,
2061 0, 0, 110, 0, 0, 0, 0, 630, 203, 0,
2062 631, 0, 0, 496, 499, 500, 501, 502, 503, 504,
2063 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2064 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2065 0, 203, 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 110, 0, 0, 0, 0, 0, 0, 0,
2067 110, 0, 0, 110, 110, 0, 0, 0, 0, 110,
2068 110, 0, 308, 309, 310, 311, 312, 313, 314, 315,
2069 316, 317, 318, -574, -574, 0, 0, 321, 322, 0,
2070 579, 581, 0, 0, 0, 110, 0, 0, 110, 110,
2071 585, 203, 203, 0, 0, 105, 203, 110, 579, 581,
2072 203, 0, 0, 0, 110, 110, 324, 325, 326, 327,
2073 328, 329, 330, 331, 332, 333, 108, 0, 0, 605,
2074 0, 0, 0, 0, 610, 0, 0, 0, 105, 0,
2075 0, 110, 110, 203, 0, 0, 203, 0, 0, 105,
2076 105, 0, 0, 110, 0, 0, 0, 0, 203, 108,
2077 0, 0, 0, 0, 0, 0, 0, 0, 0, 265,
2078 108, 108, 0, 0, 0, 0, 0, 0, 650, 651,
2079 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2080 203, 110, 0, 0, 110, 0, 0, 0, 110, 110,
2081 105, 0, 110, 0, 0, 105, 0, 0, 0, 0,
2082 0, 0, 105, 265, 0, 0, 0, 109, 110, 109,
2083 0, 108, 0, 0, 0, 0, 108, 0, 0, 0,
2084 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2085 0, 0, 0, 0, 0, 105, 0, 106, 0, 106,
2086 0, 0, 0, 0, 203, 0, 0, 0, 203, 0,
2087 0, 0, 110, 0, 109, 78, 108, 78, 267, 0,
2088 203, 0, 0, 110, 0, 0, 0, 0, 0, 0,
2089 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2090 0, 267, 0, 203, 106, 0, 0, 0, 266, 0,
2091 0, 0, 0, 353, 363, 363, 203, 203, 0, 0,
2092 0, 0, 78, 0, 0, 0, 110, 0, 110, 0,
2093 0, 266, 0, 0, 110, 0, 110, 0, 0, 0,
2094 0, 0, 105, 352, 362, 362, 362, 0, 0, 0,
2095 0, 105, 0, 0, 0, 0, 0, 0, 0, 110,
2096 0, 348, 0, 108, 0, 0, 0, 0, 265, 0,
2097 0, 0, 108, 0, 203, 0, 0, 0, 585, 775,
2098 0, 778, 780, 0, 0, 0, 0, 785, 787, -573,
2099 0, 0, 0, 0, 0, 203, 0, -573, -573, -573,
2100 0, 0, -573, -573, -573, 0, -573, 0, 265, 0,
2101 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2102 0, 0, 109, 0, 0, 0, -573, -573, 0, -573,
2103 -573, -573, -573, -573, 819, 0, 0, 0, 0, 778,
2104 780, 0, 785, 787, 0, 0, 0, 0, 0, 0,
2105 203, 0, 106, 0, 0, 109, 0, 0, 0, 0,
2106 105, 0, 105, 0, 0, 0, 109, 109, 0, 0,
2107 78, 0, 0, 0, -573, 0, 0, 0, 0, 0,
2108 0, 108, 0, 108, 105, 106, 267, 0, 203, 0,
2109 0, 0, 857, 0, 0, 0, 106, 106, 0, 859,
2110 0, 0, 0, 78, 0, 108, 0, 0, 0, 0,
2111 0, 0, 0, 0, 78, 78, 266, 109, 0, 203,
2112 0, 0, 109, 0, 0, 0, -573, 0, -573, 109,
2113 267, 220, -573, 265, -573, 0, -573, 859, 203, 0,
2114 0, 0, 0, 0, 0, 0, 0, 106, 0, 0,
2115 0, 0, 106, 0, 0, 0, 0, 0, 0, 106,
2116 266, 0, 109, 0, 0, 78, 0, 0, 0, 0,
2117 78, 0, 105, 0, 0, 0, 0, 78, 0, 265,
2118 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2119 0, 0, 106, 108, 0, 0, 0, 0, 0, 0,
2120 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2121 78, 0, 0, 0, 0, 0, 0, 0, 0, 105,
2122 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
2123 0, 0, 0, 0, 105, 105, 0, 0, 0, 0,
2124 108, 0, 0, 0, 0, 0, 0, 0, 108, 109,
2125 0, 0, 0, 0, 0, 108, 108, 0, 109, 0,
2126 0, 105, 105, 0, 0, 0, 0, 203, 0, 0,
2127 0, 0, 0, 105, 0, 267, 0, 0, 0, 106,
2128 0, 0, 108, 108, 0, 0, 0, 0, 106, 0,
2129 0, 0, 0, 0, 108, 0, 0, 78, 0, 0,
2130 0, 0, 0, 0, 0, 266, 78, 0, 0, 0,
2131 0, 105, 0, 0, 0, 267, 0, 0, 105, 105,
2132 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2133 0, 0, 108, 0, 0, 0, 0, 0, 105, 108,
2134 108, 0, 0, 108, 0, 266, 0, 0, 0, 0,
2135 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
2136 361, 0, 0, 0, 0, 0, 0, 109, 0, 109,
2137 0, 0, 0, 0, 0, 0, 0, 0, 915, 0,
2138 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2139 0, 109, 0, 105, 0, 0, 0, 106, 0, 106,
2140 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 108, 78, 0, 78, 0, 0,
2142 0, 106, 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 105, 0, 105, 78,
2144 267, 0, 0, 0, 105, 0, 105, 0, 0, 0,
2145 0, 0, 0, 0, 0, 0, 0, 108, 0, 108,
2146 0, 0, 0, 0, 0, 108, 0, 108, 0, 0,
2147 266, 760, 0, 0, 0, 0, 0, 0, 0, 109,
2148 0, 0, 0, 0, 0, 0, 267, 0, 0, 0,
2149 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2150 0, 0, 308, -574, -574, -574, -574, 313, 314, 106,
2151 0, -574, -574, 0, 0, 0, 266, 321, 322, 0,
2152 0, 0, 0, 0, 0, 0, 109, 78, 0, 0,
2153 0, 0, 0, 0, 109, 495, 0, 0, 0, 0,
2154 0, 109, 109, 0, 0, 0, 324, 325, 326, 327,
2155 328, 329, 330, 331, 332, 333, 106, 0, 0, 0,
2156 0, 0, 0, 0, 106, 0, 0, 0, 109, 109,
2157 0, 106, 106, 0, 78, 0, 0, 0, 0, 0,
2158 109, 0, 78, 0, 0, 0, 0, 0, 0, 78,
2159 78, 308, 309, 310, 311, 312, 313, 314, 106, 106,
2160 317, 318, 0, 0, 0, 0, 321, 322, 0, 0,
2161 106, 0, 0, 0, 0, 0, 78, 78, 109, 0,
2162 0, 0, 0, 0, 0, 109, 109, 0, 78, 109,
2163 0, 0, 0, 0, 0, 324, 325, 326, 327, 328,
2164 329, 330, 331, 332, 333, 109, 0, 0, 106, 0,
2165 0, 0, 0, 0, 0, 106, 106, 0, 0, 106,
2166 0, 0, 0, 0, 0, 0, 78, 363, 0, 0,
2167 0, 0, 0, 78, 78, 106, 0, 78, 0, 0,
2168 0, 0, 0, 0, 0, 917, 0, 0, 0, 109,
2169 0, 0, 0, 78, 0, 0, 0, 362, 0, 0,
2170 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 916, 0, 0, 0, 106,
2172 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2173 106, 0, 0, 913, 0, 0, 0, 78, 0, 0,
2174 0, 0, 0, 109, 0, 109, 0, 0, 78, 0,
2175 0, 109, 0, 109, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 106, 0, 106, 0, 0, 0, 0,
2178 0, 106, 0, 106, 0, 0, 0, 0, 0, 0,
2179 0, 78, 0, 78, 0, 0, 0, 0, 0, 78,
2180 0, 78, -573, 4, 0, 5, 6, 7, 8, 9,
2181 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2182 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2183 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2184 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2185 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2186 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2187 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2189 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2190 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2191 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2192 0, 0, 0, -285, 61, 62, 63, 0, 0, 0,
2193 0, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2194 -285, 0, 0, 0, 0, 0, 0, -573, 0, -573,
2195 -285, -285, -285, 0, 0, 0, 0, 0, 0, 0,
2196 -285, -285, 0, -285, -285, -285, -285, -285, 0, 0,
2197 0, 0, 0, 0, 308, 309, 310, 311, 312, 313,
2198 314, 315, 316, 317, 318, 319, 320, 0, 0, 321,
2199 322, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2200 -285, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2201 724, -285, 0, 0, 0, 0, 323, -285, 324, 325,
2202 326, 327, 328, 329, 330, 331, 332, 333, 0, 0,
2203 -285, 0, -105, -285, -285, -285, -285, -285, -285, -285,
2204 -285, -285, -285, -285, -285, 0, 0, 0, 0, 0,
2205 0, 0, 0, 224, 0, 0, 0, 0, 0, 0,
2206 -285, -285, -285, -285, -411, 0, -285, -285, -285, 0,
2207 -285, 0, -411, -411, -411, 0, 0, -411, -411, -411,
2208 0, -411, 0, 0, 0, 0, 0, 0, 0, 0,
2209 -411, -411, -411, 0, 0, 0, 0, 0, 0, 0,
2210 0, -411, -411, 0, -411, -411, -411, -411, -411, 0,
2211 0, 0, 0, 0, 0, 308, 309, 310, 311, 312,
2212 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
2213 321, 322, -411, -411, -411, -411, -411, -411, -411, -411,
2214 -411, -411, -411, -411, -411, 0, 0, -411, -411, -411,
2215 0, 0, -411, 0, 0, 0, 0, 323, -411, 324,
2216 325, 326, 327, 328, 329, 330, 331, 332, 333, 0,
2217 0, 0, 0, 0, -411, 0, -411, -411, -411, -411,
2218 -411, -411, -411, -411, -411, -411, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2220 -411, -411, -411, -411, -411, -279, 220, -411, -411, -411,
2221 0, -411, 0, -279, -279, -279, 0, 0, -279, -279,
2222 -279, 0, -279, 0, 0, 0, 0, 0, 0, 0,
2223 0, 0, -279, -279, -279, 0, 0, 0, 0, 0,
2224 0, 0, -279, -279, 0, -279, -279, -279, -279, -279,
2225 0, 0, 0, 0, 0, 0, 308, 309, 310, 311,
2226 312, 313, 314, 315, 0, 317, 318, 0, 0, 0,
2227 0, 321, 322, -279, -279, -279, -279, -279, -279, -279,
2228 -279, -279, -279, -279, -279, -279, 0, 0, -279, -279,
2229 -279, 0, 0, -279, 0, 0, 0, 0, 0, -279,
2230 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2231 0, 0, -279, 0, 0, -279, -279, -279, -279, -279,
2232 -279, -279, -279, -279, -279, -279, -279, 0, 0, 0,
2233 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2234 0, 0, -279, -279, -279, -279, -573, 0, -279, -279,
2235 -279, 0, -279, 0, -573, -573, -573, 0, 0, -573,
2236 -573, -573, 0, -573, 0, 0, 0, 0, 0, 0,
2237 0, 0, -573, -573, -573, 0, 0, 0, 0, 0,
2238 0, 0, 0, -573, -573, 0, -573, -573, -573, -573,
2239 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, -573, -573, -573, -573, -573, -573,
2242 -573, -573, -573, -573, -573, -573, -573, 0, 0, -573,
2243 -573, -573, 0, 0, -573, 0, 0, 0, 0, 0,
2244 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, -573, 0, -573, -573,
2246 -573, -573, -573, -573, -573, -573, -573, -573, 0, 0,
2247 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2248 0, 0, -573, -573, -573, -573, -573, -292, 220, -573,
2249 -573, -573, 0, -573, 0, -292, -292, -292, 0, 0,
2250 -292, -292, -292, 0, -292, 0, 0, 0, 0, 0,
2251 0, 0, 0, 0, -292, -292, 0, 0, 0, 0,
2252 0, 0, 0, 0, -292, -292, 0, -292, -292, -292,
2253 -292, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2255 0, 0, 0, 0, 0, -292, -292, -292, -292, -292,
2256 -292, -292, -292, -292, -292, -292, -292, -292, 0, 0,
2257 -292, -292, -292, 0, 0, -292, 0, 0, 0, 0,
2258 0, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2259 0, 0, 0, 0, 0, 0, 0, -292, 0, -292,
2260 -292, -292, -292, -292, -292, -292, -292, -292, -292, 0,
2261 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2262 0, 0, 0, 0, -292, -292, -292, -292, -555, 217,
2263 -292, -292, -292, 0, -292, 0, -555, -555, -555, 0,
2264 0, 0, -555, -555, 0, -555, 0, 0, 0, 0,
2265 0, 0, 0, 0, -555, 0, 0, 0, 0, 0,
2266 0, 0, 0, 0, 0, -555, -555, 0, -555, -555,
2267 -555, -555, -555, 0, 0, 0, 0, 0, 0, 0,
2268 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2269 0, 0, 0, 0, 0, 0, -555, -555, -555, -555,
2270 -555, -555, -555, -555, -555, -555, -555, -555, -555, 0,
2271 0, -555, -555, -555, -285, 665, 0, 0, 0, 0,
2272 0, 0, -285, -285, -285, 0, 0, 0, -285, -285,
2273 0, -285, 0, 0, 0, 0, 0, -103, -555, 0,
2274 -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
2275 0, -285, -285, 0, -285, -285, -285, -285, -285, 0,
2276 0, 0, 0, 0, -555, -555, -555, -555, -94, 0,
2277 0, -555, 0, -555, 0, -555, 0, 0, 0, 0,
2278 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2279 -285, -285, -285, -285, -285, 0, 0, -285, -285, -285,
2280 0, 666, 0, 0, 0, 0, 0, 0, 0, 0,
2281 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2282 0, 0, 0, -105, -285, 0, -285, -285, -285, -285,
2283 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2284 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2285 0, -285, -285, -285, -96, 0, 0, -285, 0, -285,
2286 241, -285, 5, 6, 7, 8, 9, -573, -573, -573,
2287 10, 11, 0, 0, -573, 12, 0, 13, 14, 15,
2288 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2289 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2290 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2291 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2292 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2293 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2294 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2295 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2296 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2297 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2298 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2299 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2300 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2301 8, 9, 0, 0, -573, 10, 11, 0, -573, -573,
2302 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2303 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2304 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2305 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2306 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2307 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2308 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2309 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2310 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2311 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2312 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2313 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2314 0, 0, 0, 0, 0, 0, 0, 0, 0, -573,
2315 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2316 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2317 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2318 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2319 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2320 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2321 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2322 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2323 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2324 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2325 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2326 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2327 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2328 4, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2329 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2330 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2331 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2332 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
2333 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2334 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2335 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2336 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2337 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2338 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2340 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2341 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2342 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2343 8, 9, 0, 0, -573, 10, 11, 0, 0, -573,
2344 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2345 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2346 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2347 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2348 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2349 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2350 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2351 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2352 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2353 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2354 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2355 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2356 8, 9, 0, -573, -573, 10, 11, 0, 0, -573,
2357 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2358 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2359 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2360 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2361 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2362 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2363 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2364 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2365 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2367 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2368 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2369 8, 9, 0, 0, 0, 10, 11, 0, 0, -573,
2370 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2371 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2372 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2373 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2374 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2375 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2376 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2377 48, 0, 0, 242, 50, 0, 51, 52, 0, 53,
2378 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2380 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2381 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2382 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2383 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2384 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2385 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2386 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2387 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2388 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2389 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2390 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2391 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2392 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2393 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2394 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2395 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2396 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2397 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2398 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2399 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2400 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2401 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2403 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2404 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2405 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2406 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2407 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, -573, 0, 0, 0, 0, 0, 0, 0, -573,
2409 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2410 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
2411 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2412 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2413 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2414 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2415 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2416 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2417 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2418 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2419 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2421 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2422 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2423 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2424 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2425 21, 22, 23, 24, 25, 26, 0, 0, 194, 0,
2426 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2427 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2428 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2430 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2431 0, 51, 52, 0, 198, 199, 54, 55, 56, 57,
2432 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2433 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2434 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2435 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2436 22, 23, 24, 25, 26, 0, 224, 27, 0, 0,
2437 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2438 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2439 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2440 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2441 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2442 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2443 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2444 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2445 61, 62, 63, 0, 0, 0, 0, 0, 0, 0,
2446 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2447 11, 0, 0, 288, 12, 289, 13, 14, 15, 16,
2448 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2449 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2450 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2451 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2452 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2455 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2456 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2457 5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
2458 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2459 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2460 23, 24, 25, 26, 0, 224, 27, 0, 0, 0,
2461 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
2462 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2463 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2464 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2465 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
2466 52, 0, 53, 0, 54, 55, 56, 57, 58, 59,
2467 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2468 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
2469 62, 63, 0, 0, 0, 0, 0, 0, 5, 6,
2470 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2471 0, 12, 474, 13, 14, 15, 16, 17, 18, 19,
2472 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2473 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2474 28, 29, 0, 31, 32, 33, 34, 35, 36, 37,
2475 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2476 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2477 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2478 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2479 53, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2480 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2481 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
2482 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2483 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2484 474, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2485 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2486 132, 133, 134, 135, 136, 0, 0, 0, 137, 138,
2487 139, 365, 366, 367, 368, 144, 145, 146, 0, 0,
2488 0, 0, 0, 147, 148, 149, 150, 369, 370, 371,
2489 372, 155, 37, 38, 373, 40, 0, 0, 0, 0,
2490 0, 0, 0, 0, 157, 158, 159, 160, 161, 162,
2491 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2492 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2494 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2495 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2496 0, 183, 184, 0, 0, 0, 0, 0, -548, -548,
2497 -548, 0, -548, 0, 0, 0, -548, -548, 0, 185,
2498 374, -548, 0, -548, -548, -548, -548, -548, -548, -548,
2499 0, -548, 0, 0, 0, -548, -548, -548, -548, -548,
2500 -548, -548, 0, 0, -548, 0, 0, 0, 0, 0,
2501 0, -548, 0, 0, -548, -548, -548, -548, -548, -548,
2502 -548, -548, -548, -548, -548, -548, 0, -548, -548, -548,
2503 0, -548, -548, 0, 0, 0, 0, 0, 0, 0,
2504 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2505 0, -548, 0, 0, -548, -548, 0, -548, -548, 0,
2506 -548, -548, -548, -548, -548, -548, -548, -548, -548, 0,
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2508 0, 0, 0, 0, 0, 0, 0, -548, -548, -548,
2509 0, 0, 0, 0, 0, -549, -549, -549, 0, -549,
2510 0, -548, 0, -549, -549, 0, 0, -548, -549, 0,
2511 -549, -549, -549, -549, -549, -549, -549, 0, -549, 0,
2512 0, 0, -549, -549, -549, -549, -549, -549, -549, 0,
2513 0, -549, 0, 0, 0, 0, 0, 0, -549, 0,
2514 0, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2515 -549, -549, -549, 0, -549, -549, -549, 0, -549, -549,
2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2517 0, 0, 0, 0, 0, 0, 0, 0, -549, 0,
2518 0, -549, -549, 0, -549, -549, 0, -549, -549, -549,
2519 -549, -549, -549, -549, -549, -549, 0, 0, 0, 0,
2520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2521 0, 0, 0, 0, -549, -549, -549, 0, 0, 0,
2522 0, 0, -551, -551, -551, 0, -551, 0, -549, 0,
2523 -551, -551, 0, 0, -549, -551, 0, -551, -551, -551,
2524 -551, -551, -551, -551, 0, 0, 0, 0, 0, -551,
2525 -551, -551, -551, -551, -551, -551, 0, 0, -551, 0,
2526 0, 0, 0, 0, 0, -551, 0, 0, -551, -551,
2527 -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
2528 0, -551, -551, -551, 0, -551, -551, 0, 0, 0,
2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2530 0, 0, 0, 0, 0, -551, 723, 0, -551, -551,
2531 0, -551, -551, 0, -551, -551, -551, -551, -551, -551,
2532 -551, -551, -551, 0, 0, 0, 0, 0, -103, 0,
2533 0, 0, 0, 0, 0, 0, -553, -553, -553, 0,
2534 -553, -551, -551, -551, -553, -553, 0, 0, 0, -553,
2535 0, -553, -553, -553, -553, -553, -553, -553, 0, 0,
2536 0, -551, 0, -553, -553, -553, -553, -553, -553, -553,
2537 0, 0, -553, 0, 0, 0, 0, 0, 0, -553,
2538 0, 0, -553, -553, -553, -553, -553, -553, -553, -553,
2539 -553, -553, -553, -553, 0, -553, -553, -553, 0, -553,
2540 -553, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2541 0, 0, 0, 0, 0, 0, 0, 0, 0, -553,
2542 0, 0, -553, -553, 0, -553, -553, 0, -553, -553,
2543 -553, -553, -553, -553, -553, -553, -553, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 -554, -554, -554, 0, -554, -553, -553, -553, -554, -554,
2546 0, 0, 0, -554, 0, -554, -554, -554, -554, -554,
2547 -554, -554, 0, 0, 0, -553, 0, -554, -554, -554,
2548 -554, -554, -554, -554, 0, 0, -554, 0, 0, 0,
2549 0, 0, 0, -554, 0, 0, -554, -554, -554, -554,
2550 -554, -554, -554, -554, -554, -554, -554, -554, 0, -554,
2551 -554, -554, 0, -554, -554, 0, 0, 0, 0, 0,
2552 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2553 0, 0, 0, -554, 0, 0, -554, -554, 0, -554,
2554 -554, 0, -554, -554, -554, -554, -554, -554, -554, -554,
2555 -554, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2556 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2557 -554, -554, 0, 0, 0, 0, 0, 0, 0, 0,
2558 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2559 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2560 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2561 133, 134, 135, 136, 0, 0, 0, 137, 138, 139,
2562 140, 141, 142, 143, 144, 145, 146, 0, 0, 0,
2563 0, 0, 147, 148, 149, 150, 151, 152, 153, 154,
2564 155, 270, 271, 156, 272, 0, 0, 0, 0, 0,
2565 0, 0, 0, 157, 158, 159, 160, 161, 162, 163,
2566 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
2567 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
2568 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
2569 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
2570 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
2571 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
2572 0, 0, 0, 0, 0, 0, 0, 0, 185, 113,
2573 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2574 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2575 134, 135, 136, 0, 0, 0, 137, 138, 139, 140,
2576 141, 142, 143, 144, 145, 146, 0, 0, 0, 0,
2577 0, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2578 226, 0, 156, 0, 0, 0, 0, 0, 0, 0,
2579 0, 0, 157, 158, 159, 160, 161, 162, 163, 164,
2580 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
2581 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2582 0, 172, 0, 0, 55, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
2584 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
2585 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 0, 0, 0, 0, 0, 0, 0, 185, 113, 114,
2587 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2588 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2589 135, 136, 0, 0, 0, 137, 138, 139, 140, 141,
2590 142, 143, 144, 145, 146, 0, 0, 0, 0, 0,
2591 147, 148, 149, 150, 151, 152, 153, 154, 155, 0,
2592 0, 156, 0, 0, 0, 0, 0, 0, 0, 0,
2593 0, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2594 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2595 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2596 172, 0, 0, 55, 0, 0, 0, 0, 0, 0,
2597 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2598 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2599 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2600 0, 0, 0, 0, 0, 0, 185, 113, 114, 115,
2601 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2602 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2603 136, 0, 0, 0, 137, 138, 139, 140, 141, 142,
2604 143, 144, 145, 146, 0, 0, 0, 0, 0, 147,
2605 148, 149, 150, 151, 152, 153, 154, 155, 0, 0,
2606 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2607 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
2608 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
2610 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2611 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
2612 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
2613 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2614 11, 0, 0, 0, 12, 185, 13, 14, 15, 231,
2615 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2616 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2617 0, 0, 0, 0, 258, 0, 0, 32, 33, 34,
2618 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2619 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, 0, 0, 0, 259, 0, 0, 197, 50, 0,
2622 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2623 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2624 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2625 260, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2626 15, 231, 232, 18, 19, 0, 0, 0, 261, 0,
2627 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2628 0, 0, 0, 0, 0, 0, 258, 0, 0, 32,
2629 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2630 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2631 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2632 0, 0, 0, 0, 0, 0, 259, 0, 0, 197,
2633 50, 0, 51, 52, 0, 0, 0, 54, 55, 56,
2634 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2635 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
2636 0, 0, 260, 10, 11, 0, 0, 0, 12, 0,
2637 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2638 490, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2639 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2640 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2641 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2642 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2643 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2644 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2645 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2646 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2647 0, 0, 10, 11, 61, 62, 63, 12, 0, 13,
2648 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2649 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2650 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2651 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2652 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2653 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2655 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2656 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2657 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2658 0, 10, 11, 61, 62, 63, 12, 0, 13, 14,
2659 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2660 20, 21, 22, 23, 24, 25, 26, 0, 0, 194,
2661 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2662 33, 34, 35, 36, 37, 38, 39, 40, 195, 41,
2663 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2664 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2665 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2666 50, 0, 51, 52, 0, 198, 199, 54, 55, 56,
2667 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2668 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2669 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2670 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2671 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2672 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2673 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2674 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2675 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2677 0, 51, 52, 0, 587, 199, 54, 55, 56, 57,
2678 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2679 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2680 11, 61, 200, 63, 12, 0, 13, 14, 15, 231,
2681 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2682 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2683 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2684 35, 36, 37, 38, 39, 40, 195, 41, 42, 0,
2685 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2688 51, 52, 0, 198, 0, 54, 55, 56, 57, 58,
2689 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2690 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2691 61, 200, 63, 12, 0, 13, 14, 15, 231, 232,
2692 18, 19, 0, 0, 0, 0, 0, 233, 234, 235,
2693 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2694 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2695 36, 37, 38, 39, 40, 195, 41, 42, 0, 43,
2696 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2698 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2699 52, 0, 0, 199, 54, 55, 56, 57, 58, 59,
2700 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2701 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2702 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2703 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2704 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2705 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2706 37, 38, 39, 40, 195, 41, 42, 0, 43, 44,
2707 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709 0, 0, 196, 0, 0, 197, 50, 0, 51, 52,
2710 0, 587, 0, 54, 55, 56, 57, 58, 59, 60,
2711 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2712 7, 0, 9, 0, 0, 0, 10, 11, 61, 200,
2713 63, 12, 0, 13, 14, 15, 231, 232, 18, 19,
2714 0, 0, 0, 0, 0, 233, 234, 235, 23, 24,
2715 25, 26, 0, 0, 194, 0, 0, 0, 0, 0,
2716 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2717 38, 39, 40, 195, 41, 42, 0, 43, 44, 45,
2718 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2719 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720 0, 196, 0, 0, 197, 50, 0, 51, 52, 0,
2721 0, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2722 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2723 0, 9, 0, 0, 0, 10, 11, 61, 200, 63,
2724 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2725 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2726 26, 0, 0, 194, 0, 0, 0, 0, 0, 0,
2727 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2728 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2729 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2730 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2731 196, 0, 0, 197, 50, 0, 51, 52, 0, 484,
2732 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2733 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2734 9, 0, 0, 0, 10, 11, 61, 200, 63, 12,
2735 0, 13, 14, 15, 231, 232, 18, 19, 0, 0,
2736 0, 0, 0, 233, 234, 235, 23, 24, 25, 26,
2737 0, 0, 194, 0, 0, 0, 0, 0, 0, 29,
2738 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2739 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2740 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2741 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
2742 0, 0, 197, 50, 0, 51, 52, 0, 198, 0,
2743 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
2744 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2745 0, 0, 0, 10, 11, 61, 200, 63, 12, 0,
2746 13, 14, 15, 231, 232, 18, 19, 0, 0, 0,
2747 0, 0, 233, 234, 235, 23, 24, 25, 26, 0,
2748 0, 194, 0, 0, 0, 0, 0, 0, 29, 0,
2749 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2750 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2751 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
2753 0, 197, 50, 0, 51, 52, 0, 772, 0, 54,
2754 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2755 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2756 0, 0, 10, 11, 61, 200, 63, 12, 0, 13,
2757 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2758 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2759 194, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2760 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2761 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
2764 197, 50, 0, 51, 52, 0, 484, 0, 54, 55,
2765 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2766 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2767 0, 10, 11, 61, 200, 63, 12, 0, 13, 14,
2768 15, 231, 232, 18, 19, 0, 0, 0, 0, 0,
2769 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2770 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2771 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2772 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2773 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2775 50, 0, 51, 52, 0, 587, 0, 54, 55, 56,
2776 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2777 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2778 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2779 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2780 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2781 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2782 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2783 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2784 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2786 0, 51, 52, 0, 0, 0, 54, 55, 56, 57,
2787 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2788 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2789 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2790 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2791 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2792 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2793 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2794 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2796 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2797 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2798 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2799 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2800 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2801 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2802 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2803 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2804 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2805 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2806 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2807 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2808 52, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2809 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2810 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2811 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2812 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2813 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2814 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2815 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2816 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2817 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2818 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2819 0, 305, 0, 54, 55, 56, 57, 58, 59, 60,
2820 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2821 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2822 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2823 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2824 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2825 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2826 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2827 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 0, 0, 346, 0, 0,
2829 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2830 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2831 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2832 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2833 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2834 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2835 0, 0, 258, 0, 0, 32, 33, 34, 354, 36,
2836 37, 38, 355, 40, 0, 41, 42, 0, 43, 44,
2837 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838 0, 0, 0, 0, 0, 0, 0, 0, 0, 356,
2839 0, 0, 357, 0, 0, 197, 50, 0, 51, 52,
2840 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2841 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2842 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2843 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2844 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2845 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2846 32, 33, 34, 354, 36, 37, 38, 355, 40, 0,
2847 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2848 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2849 0, 0, 0, 0, 0, 0, 0, 357, 0, 0,
2850 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2851 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2852 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2853 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2854 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2855 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2856 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2857 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2858 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2861 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2862 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2863 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2864 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2865 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2866 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2867 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2868 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2869 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 0, 0, 0, 0, 0, 902, 0, 0,
2871 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2872 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2873 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2874 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2875 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2876 24, 25, 26, 0, 0, 194, 0, 663, 0, 0,
2877 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2878 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2879 45, 308, 309, 310, 311, 312, 313, 314, 315, 316,
2880 317, 318, 319, 320, 0, 0, 321, 322, 0, 0,
2881 0, 0, 912, 0, 0, 197, 50, 0, 51, 52,
2882 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2883 0, 0, 0, 323, 0, 324, 325, 326, 327, 328,
2884 329, 330, 331, 332, 333, 0, 0, 0, 260, 0,
2885 525, 526, 0, 0, 527, 0, 0, 0, 0, 0,
2886 0, 0, 0, -241, 157, 158, 159, 160, 161, 162,
2887 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2888 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2889 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2890 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2892 0, 183, 184, 0, 0, 0, 0, 533, 534, 0,
2893 0, 535, 0, 0, 0, 0, 0, 0, 0, 185,
2894 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2895 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2898 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2899 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2900 0, 0, 0, 0, 591, 526, 0, 0, 592, 0,
2901 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
2902 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
2903 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
2904 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
2905 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
2907 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
2908 0, 594, 534, 0, 0, 595, 0, 0, 0, 0,
2909 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
2910 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
2911 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
2912 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
2913 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2914 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2915 182, 0, 183, 184, 0, 0, 0, 0, 617, 526,
2916 0, 0, 618, 0, 0, 0, 0, 0, 0, 0,
2917 185, 220, 157, 158, 159, 160, 161, 162, 163, 164,
2918 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
2919 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920 0, 172, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
2922 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
2923 184, 0, 0, 0, 0, 620, 534, 0, 0, 621,
2924 0, 0, 0, 0, 0, 0, 0, 185, 220, 157,
2925 158, 159, 160, 161, 162, 163, 164, 165, 0, 0,
2926 166, 167, 0, 0, 168, 169, 170, 171, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 172, 0,
2928 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929 0, 0, 0, 0, 0, 173, 174, 175, 176, 177,
2930 178, 179, 180, 181, 182, 0, 183, 184, 0, 0,
2931 0, 0, 692, 526, 0, 0, 693, 0, 0, 0,
2932 0, 0, 0, 0, 185, 220, 157, 158, 159, 160,
2933 161, 162, 163, 164, 165, 0, 0, 166, 167, 0,
2934 0, 168, 169, 170, 171, 0, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
2936 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2937 0, 0, 173, 174, 175, 176, 177, 178, 179, 180,
2938 181, 182, 0, 183, 184, 0, 0, 0, 0, 695,
2939 534, 0, 0, 696, 0, 0, 0, 0, 0, 0,
2940 0, 185, 220, 157, 158, 159, 160, 161, 162, 163,
2941 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
2942 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
2943 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
2944 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
2945 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
2946 183, 184, 0, 0, 0, 0, 702, 526, 0, 0,
2947 703, 0, 0, 0, 0, 0, 0, 0, 185, 220,
2948 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
2949 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
2950 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
2951 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
2953 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
2954 0, 0, 0, 572, 534, 0, 0, 573, 0, 0,
2955 0, 0, 0, 0, 0, 185, 220, 157, 158, 159,
2956 160, 161, 162, 163, 164, 165, 0, 0, 166, 167,
2957 0, 0, 168, 169, 170, 171, 0, 0, 0, 0,
2958 0, 0, 0, 0, 0, 0, 172, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 0, 173, 174, 175, 176, 177, 178, 179,
2961 180, 181, 182, 0, 183, 184, 0, 0, 0, 0,
2962 965, 526, 0, 0, 966, 0, 0, 0, 0, 0,
2963 0, 0, 185, 220, 157, 158, 159, 160, 161, 162,
2964 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2965 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2967 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2969 0, 183, 184, 0, 0, 0, 0, 971, 526, 0,
2970 0, 972, 0, 0, 0, 0, 0, 0, 0, 185,
2971 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2972 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2973 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2974 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2976 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2977 0, 0, 0, 0, 974, 534, 0, 0, 975, 0,
2978 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
2979 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
2980 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
2981 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
2984 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
2985 0, 572, 534, 0, 0, 573, 0, 0, 0, 0,
2986 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
2987 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
2988 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
2989 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
2990 0, 0, 718, 0, 0, 0, 0, 0, 0, 0,
2991 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
2992 182, 663, 183, 184, 0, 0, 308, 309, 310, 311,
2993 312, 313, 314, 315, 316, 317, 318, 319, 320, 0,
2994 185, 321, 322, 0, 0, 308, 309, 310, 311, 312,
2995 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
2996 321, 322, 0, 0, 0, 0, 0, 0, 323, 0,
2997 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2998 0, 0, 0, 0, 0, 0, 0, 323, 0, 324,
2999 325, 326, 327, 328, 329, 330, 331, 332, 333
3002 #define yypact_value_is_default(yystate) \
3003 ((yystate) == (-747))
3005 #define yytable_value_is_error(yytable_value) \
3006 ((yytable_value) == (-574))
3010 2, 55, 340, 28, 2, 454, 4, 52, 593, 16,
3011 17, 335, 307, 20, 307, 8, 547, 213, 16, 17,
3012 8, 566, 20, 27, 53, 29, 84, 22, 8, 87,
3013 546, 87, 4, 22, 619, 28, 49, 91, 252, 76,
3014 28, 2, 256, 4, 404, 357, 1, 65, 28, 51,
3015 52, 49, 50, 749, 450, 53, 746, 13, 334, 627,
3016 336, 53, 680, 25, 62, 762, 684, 454, 13, 16,
3017 17, 65, 26, 20, 396, 55, 400, 26, 76, 25,
3018 440, 0, 404, 27, 76, 83, 84, 576, 577, 87,
3019 88, 89, 90, 87, 490, 29, 88, 89, 90, 13,
3020 242, 25, 378, 379, 51, 851, 828, 85, 76, 694,
3021 136, 91, 87, 16, 17, 110, 147, 20, 85, 568,
3022 705, 110, 146, 399, 25, 401, 85, 653, 452, 61,
3023 87, 16, 17, 62, 109, 20, 276, 25, 278, 56,
3024 280, 13, 742, 37, 38, 87, 114, 109, 51, 52,
3025 195, 427, 109, 198, 199, 826, 701, 28, 113, 849,
3026 138, 139, 304, 763, 709, 140, 25, 109, 736, 737,
3027 25, 13, 139, 107, 106, 146, 13, 453, 140, 138,
3028 139, 143, 136, 632, 140, 147, 109, 136, 244, 145,
3029 145, 147, 147, 142, 140, 941, 892, 142, 140, 197,
3030 145, 145, 147, 147, 653, 207, 896, 904, 930, 140,
3031 217, 213, 219, 220, 25, 886, 140, 413, 220, 217,
3032 746, 219, 220, 749, 261, 223, 244, 225, 552, 242,
3033 719, 145, 230, 147, 50, 293, 294, 295, 296, 140,
3034 564, 601, 142, 241, 242, 632, 235, 147, 109, 238,
3035 244, 563, 140, 147, 258, 873, 99, 302, 826, 708,
3036 828, 932, 307, 261, 25, 661, 87, 83, 84, 261,
3037 217, 87, 219, 145, 140, 147, 305, 553, 600, 601,
3038 241, 140, 25, 341, 342, 140, 25, 343, 959, 565,
3039 806, 304, 85, 87, 292, 293, 294, 295, 296, 297,
3040 298, 299, 85, 145, 302, 147, 304, 305, 145, 307,
3041 147, 59, 60, 305, 217, 109, 219, 26, 886, 887,
3042 292, 708, 109, 849, 142, 851, 49, 467, 335, 140,
3043 875, 292, 217, 335, 219, 56, 297, 335, 145, 337,
3044 147, 87, 873, 341, 342, 138, 139, 336, 88, 343,
3045 395, 396, 690, 140, 334, 302, 139, 26, 356, 404,
3046 307, 140, 930, 109, 932, 359, 892, 85, 147, 662,
3047 109, 85, 109, 302, 61, 26, 85, 140, 307, 140,
3048 15, 142, 17, 928, 679, 87, 384, 385, 973, 85,
3049 85, 959, 437, 400, 590, 440, 421, 140, 400, 142,
3050 614, 140, 400, 85, 143, 140, 85, 223, 147, 225,
3051 412, 413, 401, 450, 142, 941, 85, 104, 105, 399,
3052 138, 139, 424, 136, 142, 139, 424, 136, 421, 138,
3053 139, 880, 85, 421, 85, 433, 85, 142, 427, 484,
3054 140, 421, 138, 139, 139, 452, 426, 147, 85, 142,
3055 452, 85, 450, 490, 452, 384, 385, 139, 450, 146,
3056 139, 85, 822, 424, 453, 68, 85, 136, 85, 138,
3057 139, 451, 433, 142, 197, 87, 85, 293, 294, 295,
3058 296, 483, 298, 299, 68, 136, 139, 138, 139, 138,
3059 139, 142, 490, 396, 85, 37, 38, 109, 490, 668,
3060 822, 223, 139, 548, 138, 139, 675, 230, 109, 52,
3061 514, 54, 55, 56, 57, 139, 119, 120, 121, 242,
3062 139, 138, 139, 861, 246, 341, 342, 143, 532, 867,
3063 139, 26, 728, 52, 437, 530, 538, 56, 540, 85,
3064 356, 530, 587, 538, 542, 552, 544, 138, 139, 538,
3065 552, 545, 546, 56, 552, 600, 601, 564, 85, 584,
3066 59, 60, 564, 144, 553, 559, 564, 137, 566, 567,
3067 106, 551, 574, 575, 576, 577, 565, 87, 615, 574,
3068 575, 304, 140, 563, 106, 574, 575, 87, 590, 593,
3069 85, 584, 138, 139, 87, 85, 584, 140, 68, 109,
3070 68, 548, 14, 15, 584, 85, 604, 609, 85, 109,
3071 140, 138, 139, 658, 17, 619, 109, 615, 56, 608,
3072 609, 574, 575, 615, 661, 145, 25, 951, 52, 94,
3073 54, 55, 56, 57, 679, 143, 638, 146, 640, 697,
3074 642, 136, 700, 138, 139, 137, 140, 142, 138, 139,
3075 52, 653, 54, 55, 56, 57, 654, 711, 138, 139,
3076 10, 138, 139, 661, 662, 89, 61, 665, 666, 661,
3077 65, 95, 96, 671, 672, 109, 952, 679, 680, 140,
3078 682, 140, 684, 140, 406, 140, 140, 89, 410, 734,
3079 694, 140, 116, 415, 96, 119, 8, 600, 13, 697,
3080 87, 705, 700, 701, 698, 61, 87, 137, 430, 104,
3081 105, 709, 109, 435, 116, 54, 710, 719, 716, 717,
3082 140, 145, 109, 140, 63, 64, 728, 772, 109, 140,
3083 68, 711, 679, 662, 87, 52, 665, 666, 796, 52,
3084 742, 111, 671, 672, 140, 743, 744, 87, 104, 105,
3085 106, 567, 144, 140, 549, 15, 109, 755, 803, 140,
3086 2, 763, 4, 765, 87, 767, 768, 489, 52, 109,
3087 54, 55, 56, 57, 16, 17, 140, 822, 20, 117,
3088 118, 119, 120, 121, 145, 783, 109, 140, 604, 791,
3089 109, 140, 794, 114, 140, 793, 140, 140, 796, 10,
3090 140, 88, 800, 801, 140, 9, 804, 49, 50, 10,
3091 137, 140, 806, 10, 808, 61, 140, 140, 140, 542,
3092 62, 544, 820, 137, 140, 114, 52, 137, 54, 55,
3093 56, 57, 834, 835, 140, 837, 68, 839, 840, 140,
3094 140, 83, 84, 137, 842, 87, 56, 140, 140, 68,
3095 842, 83, 84, 56, 783, 140, 140, 140, 104, 105,
3096 106, 140, 860, 89, 83, 84, 864, 140, 860, 95,
3097 96, 873, 142, 142, 61, 140, 424, 875, 90, 88,
3098 61, 697, 954, 736, 700, 117, 118, 119, 120, 121,
3099 116, 93, 904, 119, 689, 114, 115, 116, 117, 118,
3100 119, 120, 121, 953, 906, 907, 908, 96, 910, 911,
3101 640, 706, 642, 57, 91, 880, 142, 104, 105, 106,
3102 918, 849, 920, 104, 105, 106, 653, 746, 926, -1,
3103 928, 654, 934, 935, 936, 937, 52, -1, 54, 55,
3104 56, 57, -1, -1, 951, -1, -1, 54, 55, 951,
3105 57, 953, 954, 951, -1, 197, 63, 64, -1, 939,
3106 -1, -1, -1, 952, -1, 967, 968, 969, 970, 973,
3107 950, -1, -1, 89, -1, 217, -1, 219, 220, 981,
3108 796, 223, -1, 225, -1, 707, -1, 989, 230, -1,
3109 -1, -1, -1, 716, 717, 68, -1, -1, -1, 241,
3110 242, -1, 797, -1, 799, -1, -1, 729, -1, -1,
3111 83, 84, -1, -1, 809, -1, -1, -1, 740, 814,
3112 743, 744, 749, -1, 52, 752, 54, 55, 56, 57,
3113 -1, -1, 755, -1, -1, 765, -1, 767, 768, -1,
3114 -1, -1, -1, 116, 117, 118, 119, 120, 121, -1,
3115 292, 293, 294, 295, 296, 297, 298, 299, -1, -1,
3116 302, 89, 304, -1, -1, 307, -1, 95, -1, 52,
3117 793, 54, 55, 56, 57, 870, 871, 800, 801, -1,
3118 -1, 804, 16, 17, -1, -1, 20, -1, -1, -1,
3119 -1, 813, -1, 335, -1, 337, -1, 820, -1, 341,
3120 342, -1, -1, 825, 834, 835, -1, 837, 830, 839,
3121 840, -1, 46, 47, 356, -1, -1, 51, 52, -1,
3122 -1, -1, -1, -1, 851, -1, 853, -1, 62, 63,
3123 -1, 52, 927, 54, 55, 56, 57, -1, -1, -1,
3124 -1, 864, 384, 385, 40, 41, 42, 43, 44, -1,
3125 -1, -1, -1, -1, -1, -1, -1, -1, 400, -1,
3126 955, -1, 957, -1, -1, 892, -1, 894, 89, -1,
3127 -1, 898, -1, -1, 95, -1, 906, 907, 908, -1,
3128 910, 911, 424, 52, -1, 54, 55, 56, 57, -1,
3129 -1, 433, -1, -1, -1, 918, -1, 920, -1, -1,
3130 -1, -1, -1, 926, 934, 935, 936, 937, -1, -1,
3131 452, -1, -1, -1, 941, -1, 943, -1, -1, 946,
3132 89, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3133 -1, -1, -1, -1, 961, -1, -1, 967, 968, 969,
3134 970, -1, -1, -1, -1, -1, -1, 116, -1, -1,
3135 119, 981, -1, -1, -1, -1, 983, -1, -1, 989,
3136 -1, 195, -1, -1, 198, 199, 200, -1, -1, -1,
3137 2, -1, 4, 142, -1, 52, -1, 54, 55, 56,
3138 57, -1, -1, 217, -1, 219, 220, -1, -1, -1,
3139 -1, 2, -1, 4, -1, -1, -1, -1, -1, -1,
3140 542, -1, 544, 52, -1, 54, 55, 56, 57, -1,
3141 552, -1, 89, -1, -1, -1, -1, 49, 95, 96,
3142 -1, 53, 564, -1, 566, 567, -1, -1, -1, -1,
3143 -1, -1, -1, -1, -1, -1, -1, -1, 49, 116,
3144 89, -1, 119, -1, 76, -1, 95, 96, -1, -1,
3145 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
3146 -1, -1, 604, -1, -1, -1, -1, 116, 302, -1,
3147 119, -1, -1, 307, 308, 309, 310, 311, 312, 313,
3148 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
3149 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
3150 -1, 335, -1, -1, -1, -1, -1, -1, -1, -1,
3151 -1, -1, 654, -1, -1, -1, -1, -1, -1, -1,
3152 662, -1, -1, 665, 666, -1, -1, -1, -1, 671,
3153 672, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3154 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3155 384, 385, -1, -1, -1, 697, -1, -1, 700, 701,
3156 394, 395, 396, -1, -1, 197, 400, 709, 402, 403,
3157 404, -1, -1, -1, 716, 717, 112, 113, 114, 115,
3158 116, 117, 118, 119, 120, 121, 197, -1, -1, 423,
3159 -1, -1, -1, -1, 428, -1, -1, -1, 230, -1,
3160 -1, 743, 744, 437, -1, -1, 440, -1, -1, 241,
3161 242, -1, -1, 755, -1, -1, -1, -1, 452, 230,
3162 -1, -1, -1, -1, -1, -1, -1, -1, -1, 261,
3163 241, 242, -1, -1, -1, -1, -1, -1, 472, 473,
3164 -1, 783, -1, -1, -1, -1, -1, -1, -1, -1,
3165 484, 793, -1, -1, 796, -1, -1, -1, 800, 801,
3166 292, -1, 804, -1, -1, 297, -1, -1, -1, -1,
3167 -1, -1, 304, 305, -1, -1, -1, 2, 820, 4,
3168 -1, 292, -1, -1, -1, -1, 297, -1, -1, -1,
3169 -1, -1, -1, 304, -1, -1, -1, -1, -1, -1,
3170 -1, -1, -1, -1, -1, 337, -1, 2, -1, 4,
3171 -1, -1, -1, -1, 548, -1, -1, -1, 552, -1,
3172 -1, -1, 864, -1, 49, 2, 337, 4, 53, -1,
3173 564, -1, -1, 875, -1, -1, -1, -1, -1, -1,
3174 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3175 -1, 76, -1, 587, 49, -1, -1, -1, 53, -1,
3176 -1, -1, -1, 88, 89, 90, 600, 601, -1, -1,
3177 -1, -1, 49, -1, -1, -1, 918, -1, 920, -1,
3178 -1, 76, -1, -1, 926, -1, 928, -1, -1, -1,
3179 -1, -1, 424, 88, 89, 90, 91, -1, -1, -1,
3180 -1, 433, -1, -1, -1, -1, -1, -1, -1, 951,
3181 -1, 88, -1, 424, -1, -1, -1, -1, 450, -1,
3182 -1, -1, 433, -1, 658, -1, -1, -1, 662, 663,
3183 -1, 665, 666, -1, -1, -1, -1, 671, 672, 0,
3184 -1, -1, -1, -1, -1, 679, -1, 8, 9, 10,
3185 -1, -1, 13, 14, 15, -1, 17, -1, 490, -1,
3186 -1, -1, -1, -1, -1, -1, 27, -1, -1, -1,
3187 -1, -1, 197, -1, -1, -1, 37, 38, -1, 40,
3188 41, 42, 43, 44, 718, -1, -1, -1, -1, 723,
3189 724, -1, 726, 727, -1, -1, -1, -1, -1, -1,
3190 734, -1, 197, -1, -1, 230, -1, -1, -1, -1,
3191 542, -1, 544, -1, -1, -1, 241, 242, -1, -1,
3192 197, -1, -1, -1, 85, -1, -1, -1, -1, -1,
3193 -1, 542, -1, 544, 566, 230, 261, -1, 772, -1,
3194 -1, -1, 776, -1, -1, -1, 241, 242, -1, 783,
3195 -1, -1, -1, 230, -1, 566, -1, -1, -1, -1,
3196 -1, -1, -1, -1, 241, 242, 261, 292, -1, 803,
3197 -1, -1, 297, -1, -1, -1, 137, -1, 139, 304,
3198 305, 142, 143, 615, 145, -1, 147, 821, 822, -1,
3199 -1, -1, -1, -1, -1, -1, -1, 292, -1, -1,
3200 -1, -1, 297, -1, -1, -1, -1, -1, -1, 304,
3201 305, -1, 337, -1, -1, 292, -1, -1, -1, -1,
3202 297, -1, 654, -1, -1, -1, -1, 304, -1, 661,
3203 307, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3204 -1, -1, 337, 654, -1, -1, -1, -1, -1, -1,
3205 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3206 337, -1, -1, -1, -1, -1, -1, -1, -1, 701,
3207 -1, -1, -1, -1, -1, -1, -1, 709, -1, -1,
3208 -1, -1, -1, -1, 716, 717, -1, -1, -1, -1,
3209 701, -1, -1, -1, -1, -1, -1, -1, 709, 424,
3210 -1, -1, -1, -1, -1, 716, 717, -1, 433, -1,
3211 -1, 743, 744, -1, -1, -1, -1, 951, -1, -1,
3212 -1, -1, -1, 755, -1, 450, -1, -1, -1, 424,
3213 -1, -1, 743, 744, -1, -1, -1, -1, 433, -1,
3214 -1, -1, -1, -1, 755, -1, -1, 424, -1, -1,
3215 -1, -1, -1, -1, -1, 450, 433, -1, -1, -1,
3216 -1, 793, -1, -1, -1, 490, -1, -1, 800, 801,
3217 -1, -1, 804, -1, -1, -1, -1, -1, -1, -1,
3218 -1, -1, 793, -1, -1, -1, -1, -1, 820, 800,
3219 801, -1, -1, 804, -1, 490, -1, -1, -1, -1,
3220 -1, -1, -1, -1, -1, -1, -1, -1, -1, 820,
3221 842, -1, -1, -1, -1, -1, -1, 542, -1, 544,
3222 -1, -1, -1, -1, -1, -1, -1, -1, 860, -1,
3223 -1, -1, 864, -1, -1, -1, -1, -1, -1, -1,
3224 -1, 566, -1, 875, -1, -1, -1, 542, -1, 544,
3225 -1, -1, -1, 864, -1, -1, -1, -1, -1, -1,
3226 -1, -1, -1, -1, 875, 542, -1, 544, -1, -1,
3227 -1, 566, -1, -1, -1, -1, -1, -1, -1, -1,
3228 -1, -1, -1, -1, -1, -1, 918, -1, 920, 566,
3229 615, -1, -1, -1, 926, -1, 928, -1, -1, -1,
3230 -1, -1, -1, -1, -1, -1, -1, 918, -1, 920,
3231 -1, -1, -1, -1, -1, 926, -1, 928, -1, -1,
3232 615, 646, -1, -1, -1, -1, -1, -1, -1, 654,
3233 -1, -1, -1, -1, -1, -1, 661, -1, -1, -1,
3234 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3235 -1, -1, 68, 69, 70, 71, 72, 73, 74, 654,
3236 -1, 77, 78, -1, -1, -1, 661, 83, 84, -1,
3237 -1, -1, -1, -1, -1, -1, 701, 654, -1, -1,
3238 -1, -1, -1, -1, 709, 662, -1, -1, -1, -1,
3239 -1, 716, 717, -1, -1, -1, 112, 113, 114, 115,
3240 116, 117, 118, 119, 120, 121, 701, -1, -1, -1,
3241 -1, -1, -1, -1, 709, -1, -1, -1, 743, 744,
3242 -1, 716, 717, -1, 701, -1, -1, -1, -1, -1,
3243 755, -1, 709, -1, -1, -1, -1, -1, -1, 716,
3244 717, 68, 69, 70, 71, 72, 73, 74, 743, 744,
3245 77, 78, -1, -1, -1, -1, 83, 84, -1, -1,
3246 755, -1, -1, -1, -1, -1, 743, 744, 793, -1,
3247 -1, -1, -1, -1, -1, 800, 801, -1, 755, 804,
3248 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
3249 117, 118, 119, 120, 121, 820, -1, -1, 793, -1,
3250 -1, -1, -1, -1, -1, 800, 801, -1, -1, 804,
3251 -1, -1, -1, -1, -1, -1, 793, 842, -1, -1,
3252 -1, -1, -1, 800, 801, 820, -1, 804, -1, -1,
3253 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3254 -1, -1, -1, 820, -1, -1, -1, 842, -1, -1,
3255 875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3256 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3257 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3258 875, -1, -1, 860, -1, -1, -1, 864, -1, -1,
3259 -1, -1, -1, 918, -1, 920, -1, -1, 875, -1,
3260 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3261 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3262 -1, -1, -1, 918, -1, 920, -1, -1, -1, -1,
3263 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3264 -1, 918, -1, 920, -1, -1, -1, -1, -1, 926,
3265 -1, 928, 0, 1, -1, 3, 4, 5, 6, 7,
3266 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3267 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3268 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3269 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3270 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3271 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3272 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3273 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3274 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3275 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3276 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3277 -1, -1, -1, 0, 122, 123, 124, -1, -1, -1,
3278 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3279 17, -1, -1, -1, -1, -1, -1, 145, -1, 147,
3280 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3281 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3282 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3283 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3284 84, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3285 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3286 87, 88, -1, -1, -1, -1, 110, 94, 112, 113,
3287 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3288 107, -1, 109, 110, 111, 112, 113, 114, 115, 116,
3289 117, 118, 119, 120, 121, -1, -1, -1, -1, -1,
3290 -1, -1, -1, 147, -1, -1, -1, -1, -1, -1,
3291 137, 138, 139, 140, 0, -1, 143, 144, 145, -1,
3292 147, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3293 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3294 26, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3295 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3296 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3297 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3298 83, 84, 68, 69, 70, 71, 72, 73, 74, 75,
3299 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3300 -1, -1, 88, -1, -1, -1, -1, 110, 94, 112,
3301 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3302 -1, -1, -1, -1, 110, -1, 112, 113, 114, 115,
3303 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3304 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3305 136, 137, 138, 139, 140, 0, 142, 143, 144, 145,
3306 -1, 147, -1, 8, 9, 10, -1, -1, 13, 14,
3307 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3308 -1, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3309 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3310 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3311 72, 73, 74, 75, -1, 77, 78, -1, -1, -1,
3312 -1, 83, 84, 68, 69, 70, 71, 72, 73, 74,
3313 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3314 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3315 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3316 -1, -1, 107, -1, -1, 110, 111, 112, 113, 114,
3317 115, 116, 117, 118, 119, 120, 121, -1, -1, -1,
3318 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3319 -1, -1, 137, 138, 139, 140, 0, -1, 143, 144,
3320 145, -1, 147, -1, 8, 9, 10, -1, -1, 13,
3321 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
3322 -1, -1, 26, 27, 28, -1, -1, -1, -1, -1,
3323 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3324 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3325 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3326 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3327 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3328 84, 85, -1, -1, 88, -1, -1, -1, -1, -1,
3329 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3330 -1, -1, -1, -1, -1, -1, 110, -1, 112, 113,
3331 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3332 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3333 -1, -1, 136, 137, 138, 139, 140, 0, 142, 143,
3334 144, 145, -1, 147, -1, 8, 9, 10, -1, -1,
3335 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3336 -1, -1, -1, -1, 27, 28, -1, -1, -1, -1,
3337 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3338 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3339 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3340 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3341 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3342 83, 84, 85, -1, -1, 88, -1, -1, -1, -1,
3343 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
3344 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
3345 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3347 -1, -1, -1, -1, 137, 138, 139, 140, 0, 142,
3348 143, 144, 145, -1, 147, -1, 8, 9, 10, -1,
3349 -1, -1, 14, 15, -1, 17, -1, -1, -1, -1,
3350 -1, -1, -1, -1, 26, -1, -1, -1, -1, -1,
3351 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3352 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3353 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3354 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3355 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3356 -1, 83, 84, 85, 0, 87, -1, -1, -1, -1,
3357 -1, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3358 -1, 17, -1, -1, -1, -1, -1, 109, 110, -1,
3359 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3360 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3361 -1, -1, -1, -1, 136, 137, 138, 139, 140, -1,
3362 -1, 143, -1, 145, -1, 147, -1, -1, -1, -1,
3363 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3364 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3365 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
3366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3367 -1, -1, -1, 109, 110, -1, 112, 113, 114, 115,
3368 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3369 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3370 -1, 137, 138, 139, 140, -1, -1, 143, -1, 145,
3371 1, 147, 3, 4, 5, 6, 7, 8, 9, 10,
3372 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3373 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3374 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3375 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3376 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3377 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3378 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3379 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3380 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3381 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3382 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3383 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3385 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3386 6, 7, -1, -1, 10, 11, 12, -1, 14, 15,
3387 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3388 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3389 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3390 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3391 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3392 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3393 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3394 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3395 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3396 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3397 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3398 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3399 -1, -1, -1, -1, -1, -1, -1, -1, -1, 145,
3400 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3401 11, 12, -1, -1, 15, 16, 17, 18, 19, 20,
3402 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3403 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3404 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3405 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3406 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3407 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3408 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3409 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3410 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3411 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3412 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3413 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
3414 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3415 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3416 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3417 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
3418 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3419 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3420 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3421 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3422 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3423 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3424 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3425 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3426 -1, -1, -1, -1, -1, -1, 137, -1, -1, -1,
3427 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3428 6, 7, -1, -1, 10, 11, 12, -1, -1, 15,
3429 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3430 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3431 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3432 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3433 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3434 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3435 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3436 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3437 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3438 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3439 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3440 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3441 6, 7, -1, 9, 10, 11, 12, -1, -1, 145,
3442 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3443 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3444 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3445 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3446 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3447 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3448 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3449 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3450 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3451 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3452 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3453 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3454 6, 7, -1, -1, -1, 11, 12, -1, -1, 145,
3455 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3456 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3457 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3458 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3459 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3460 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3461 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3462 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3463 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3464 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3465 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3466 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3467 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3468 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3469 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3470 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3471 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3472 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3473 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3474 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3475 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3476 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3477 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3478 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3479 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3480 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3481 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3482 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3483 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3484 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3485 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3486 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3487 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3488 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3489 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3490 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3491 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3492 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3493 -1, 137, -1, -1, -1, -1, -1, -1, -1, 145,
3494 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3495 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
3496 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3497 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3498 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3499 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3500 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3501 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3502 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3503 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3504 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3505 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3506 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3507 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3508 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3509 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3510 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3511 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3512 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3513 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3514 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3515 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3516 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3517 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3518 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3519 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3520 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3521 32, 33, 34, 35, 36, -1, 147, 39, -1, -1,
3522 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3523 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3524 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3525 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3526 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3527 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3528 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3530 122, 123, 124, -1, -1, -1, -1, -1, -1, -1,
3531 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3532 12, -1, -1, 145, 16, 147, 18, 19, 20, 21,
3533 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3534 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3535 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3536 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3537 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3538 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3539 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3540 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3541 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3542 3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
3543 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3544 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3545 33, 34, 35, 36, -1, 147, 39, -1, -1, -1,
3546 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3547 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3548 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3549 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3550 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3551 93, -1, 95, -1, 97, 98, 99, 100, 101, 102,
3552 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3553 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3554 123, 124, -1, -1, -1, -1, -1, -1, 3, 4,
3555 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3556 -1, 16, 145, 18, 19, 20, 21, 22, 23, 24,
3557 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3558 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3559 45, 46, -1, 48, 49, 50, 51, 52, 53, 54,
3560 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3561 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3562 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3563 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3564 95, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3565 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3566 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3567 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3569 145, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3570 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3571 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3572 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3573 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3574 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3575 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3576 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3577 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3578 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
3579 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3580 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3581 -1, 123, 124, -1, -1, -1, -1, -1, 3, 4,
3582 5, -1, 7, -1, -1, -1, 11, 12, -1, 141,
3583 142, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3584 -1, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3585 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3586 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3587 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3588 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3589 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3590 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3591 95, 96, 97, 98, 99, 100, 101, 102, 103, -1,
3592 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3593 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3594 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3595 -1, 136, -1, 11, 12, -1, -1, 142, 16, -1,
3596 18, 19, 20, 21, 22, 23, 24, -1, 26, -1,
3597 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3598 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3599 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3600 58, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3601 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3602 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3603 -1, 89, 90, -1, 92, 93, -1, 95, 96, 97,
3604 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3605 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3606 -1, -1, -1, -1, 122, 123, 124, -1, -1, -1,
3607 -1, -1, 3, 4, 5, -1, 7, -1, 136, -1,
3608 11, 12, -1, -1, 142, 16, -1, 18, 19, 20,
3609 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3610 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3611 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3612 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3613 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3614 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3615 -1, -1, -1, -1, -1, 86, 87, -1, 89, 90,
3616 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3617 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
3618 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3619 7, 122, 123, 124, 11, 12, -1, -1, -1, 16,
3620 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3621 -1, 142, -1, 30, 31, 32, 33, 34, 35, 36,
3622 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3623 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3624 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3625 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3626 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3627 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
3628 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3629 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3630 3, 4, 5, -1, 7, 122, 123, 124, 11, 12,
3631 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3632 23, 24, -1, -1, -1, 142, -1, 30, 31, 32,
3633 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3634 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3635 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3636 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3637 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3638 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3639 93, -1, 95, 96, 97, 98, 99, 100, 101, 102,
3640 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3641 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3642 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
3644 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3645 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3646 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
3647 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
3648 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3649 53, 54, 55, 56, 57, -1, -1, -1, -1, -1,
3650 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
3651 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
3652 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
3653 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
3654 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3655 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3656 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, -1, -1, -1, 141, 3,
3658 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3659 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3660 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
3661 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
3662 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3663 54, -1, 56, -1, -1, -1, -1, -1, -1, -1,
3664 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
3665 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
3666 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3667 -1, 95, -1, -1, 98, -1, -1, -1, -1, -1,
3668 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
3669 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
3670 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3671 -1, -1, -1, -1, -1, -1, -1, 141, 3, 4,
3672 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3673 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3674 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3675 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3676 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
3677 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3678 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3679 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3680 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3681 95, -1, -1, 98, -1, -1, -1, -1, -1, -1,
3682 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
3683 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
3684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3685 -1, -1, -1, -1, -1, -1, 141, 3, 4, 5,
3686 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3687 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3688 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3689 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
3690 46, 47, 48, 49, 50, 51, 52, 53, -1, -1,
3691 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3692 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
3693 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
3694 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
3695 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3696 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
3697 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
3698 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3699 12, -1, -1, -1, 16, 141, 18, 19, 20, 21,
3700 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3701 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3702 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3703 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3704 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
3705 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3706 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3707 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3708 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3709 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3710 122, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3711 20, 21, 22, 23, 24, -1, -1, -1, 140, -1,
3712 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3713 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3714 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3715 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
3716 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3717 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3718 90, -1, 92, 93, -1, -1, -1, 97, 98, 99,
3719 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3720 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3721 -1, -1, 122, 11, 12, -1, -1, -1, 16, -1,
3722 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3723 140, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3724 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3725 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3726 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3727 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3728 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3729 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3730 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3731 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3732 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3733 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3734 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3735 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3736 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3737 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3739 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3740 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3741 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3742 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3743 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3744 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3745 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3746 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3747 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3748 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3749 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3750 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3751 90, -1, 92, 93, -1, 95, 96, 97, 98, 99,
3752 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3753 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3754 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3755 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3756 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3757 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3758 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3759 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3760 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3761 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3762 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3763 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3764 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3765 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3766 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3767 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3768 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3769 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3770 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3771 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3772 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3773 92, 93, -1, 95, -1, 97, 98, 99, 100, 101,
3774 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3775 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3776 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3777 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3778 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3779 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3780 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3781 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3782 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3783 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3784 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
3785 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3786 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3787 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3788 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3789 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3790 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3791 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3792 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3793 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3794 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3795 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3796 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3797 5, -1, 7, -1, -1, -1, 11, 12, 122, 123,
3798 124, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3799 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3800 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3801 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3802 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3803 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3804 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3805 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3806 -1, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3807 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3808 -1, 7, -1, -1, -1, 11, 12, 122, 123, 124,
3809 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3810 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3811 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3812 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3813 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3814 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3815 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3816 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3817 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3818 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3819 7, -1, -1, -1, 11, 12, 122, 123, 124, 16,
3820 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3821 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3822 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3823 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3824 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3825 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3826 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3827 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3828 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3829 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3830 -1, -1, -1, 11, 12, 122, 123, 124, 16, -1,
3831 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3832 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3833 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3834 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3835 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3837 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3838 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3839 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3840 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3841 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3842 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3843 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3844 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3845 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3846 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3847 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3848 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3849 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3850 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3851 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3852 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3853 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3854 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3855 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3856 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3857 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3858 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3859 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3860 90, -1, 92, 93, -1, 95, -1, 97, 98, 99,
3861 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3862 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3863 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3864 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3865 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3866 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3867 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3868 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3869 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3870 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3871 -1, 92, 93, -1, -1, -1, 97, 98, 99, 100,
3872 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3873 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3874 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3875 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3876 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3877 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3878 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3879 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3880 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3881 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3882 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3883 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3884 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3885 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3886 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3887 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3888 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3889 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3890 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3891 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3892 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3893 93, -1, -1, -1, 97, 98, 99, 100, 101, 102,
3894 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3895 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3896 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3897 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3898 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3899 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3900 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3901 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3902 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3903 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3904 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3905 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3906 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3907 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3908 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3909 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3910 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3911 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3912 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3913 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3914 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3915 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3916 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3917 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3918 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3919 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3920 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3921 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3922 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3923 -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
3924 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3925 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3926 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3927 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3928 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3929 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3930 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3931 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3932 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3933 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3934 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3935 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
3936 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3937 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3938 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3939 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3940 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3941 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3942 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3943 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3944 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3945 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3946 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3947 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3948 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
3949 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3950 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3951 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3952 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3953 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
3954 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3955 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3956 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
3957 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
3958 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
3959 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
3960 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3961 34, 35, 36, -1, -1, 39, -1, 44, -1, -1,
3962 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3963 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3964 64, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3965 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
3966 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3967 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
3968 -1, -1, -1, 110, -1, 112, 113, 114, 115, 116,
3969 117, 118, 119, 120, 121, -1, -1, -1, 122, -1,
3970 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
3971 -1, -1, -1, 140, 66, 67, 68, 69, 70, 71,
3972 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3973 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3974 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
3975 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3976 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3977 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
3978 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
3979 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3980 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3981 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3982 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3983 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
3984 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
3985 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
3986 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
3987 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
3988 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
3989 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
3990 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3991 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
3992 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
3993 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
3994 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
3995 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
3996 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
3997 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
3998 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3999 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4000 121, -1, 123, 124, -1, -1, -1, -1, 52, 53,
4001 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4002 141, 142, 66, 67, 68, 69, 70, 71, 72, 73,
4003 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4004 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4005 -1, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4006 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
4007 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
4008 124, -1, -1, -1, -1, 52, 53, -1, -1, 56,
4009 -1, -1, -1, -1, -1, -1, -1, 141, 142, 66,
4010 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4011 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4012 -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
4013 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4014 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
4015 117, 118, 119, 120, 121, -1, 123, 124, -1, -1,
4016 -1, -1, 52, 53, -1, -1, 56, -1, -1, -1,
4017 -1, -1, -1, -1, 141, 142, 66, 67, 68, 69,
4018 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4019 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4020 -1, -1, -1, -1, -1, 95, -1, -1, -1, -1,
4021 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4022 -1, -1, 112, 113, 114, 115, 116, 117, 118, 119,
4023 120, 121, -1, 123, 124, -1, -1, -1, -1, 52,
4024 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
4025 -1, 141, 142, 66, 67, 68, 69, 70, 71, 72,
4026 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4027 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4028 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
4029 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
4030 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
4031 123, 124, -1, -1, -1, -1, 52, 53, -1, -1,
4032 56, -1, -1, -1, -1, -1, -1, -1, 141, 142,
4033 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4034 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4035 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4036 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4037 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
4038 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
4039 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
4040 -1, -1, -1, -1, -1, 141, 142, 66, 67, 68,
4041 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4042 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4043 -1, -1, -1, -1, -1, -1, 95, -1, -1, -1,
4044 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4045 -1, -1, -1, 112, 113, 114, 115, 116, 117, 118,
4046 119, 120, 121, -1, 123, 124, -1, -1, -1, -1,
4047 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4048 -1, -1, 141, 142, 66, 67, 68, 69, 70, 71,
4049 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4050 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4051 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
4052 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4053 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4054 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
4055 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
4056 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4057 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4058 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4059 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4060 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
4061 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
4062 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
4063 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
4064 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4065 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4066 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
4067 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4068 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
4069 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
4070 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4071 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
4072 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4073 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4074 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
4075 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
4076 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4077 121, 44, 123, 124, -1, -1, 68, 69, 70, 71,
4078 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
4079 141, 83, 84, -1, -1, 68, 69, 70, 71, 72,
4080 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
4081 83, 84, -1, -1, -1, -1, -1, -1, 110, -1,
4082 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4083 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
4084 113, 114, 115, 116, 117, 118, 119, 120, 121
4091 0, 149, 150, 0, 1, 3, 4, 5, 6, 7,
4092 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4093 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4094 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4095 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4096 90, 92, 93, 95, 97, 98, 99, 100, 101, 102,
4097 103, 122, 123, 124, 151, 152, 153, 158, 160, 161,
4098 163, 164, 167, 168, 170, 171, 172, 174, 175, 185,
4099 199, 216, 217, 218, 219, 220, 221, 222, 223, 224,
4100 225, 226, 249, 250, 260, 261, 262, 263, 264, 265,
4101 266, 269, 279, 281, 282, 283, 284, 285, 286, 287,
4102 310, 321, 153, 3, 4, 5, 6, 7, 8, 9,
4103 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4104 20, 21, 22, 23, 24, 25, 26, 30, 31, 32,
4105 33, 34, 35, 36, 37, 38, 39, 45, 46, 47,
4106 48, 49, 50, 51, 52, 53, 56, 66, 67, 68,
4107 69, 70, 71, 72, 73, 74, 77, 78, 81, 82,
4108 83, 84, 95, 112, 113, 114, 115, 116, 117, 118,
4109 119, 120, 121, 123, 124, 141, 178, 179, 180, 181,
4110 183, 184, 279, 281, 39, 58, 86, 89, 95, 96,
4111 123, 167, 175, 185, 187, 192, 195, 197, 216, 283,
4112 284, 286, 287, 308, 309, 192, 192, 142, 193, 194,
4113 142, 189, 193, 142, 147, 315, 54, 180, 315, 154,
4114 136, 21, 22, 30, 31, 32, 185, 216, 310, 185,
4115 56, 1, 89, 156, 157, 158, 169, 170, 321, 161,
4116 188, 197, 308, 321, 187, 307, 308, 321, 46, 86,
4117 122, 140, 174, 199, 216, 283, 284, 287, 242, 243,
4118 54, 55, 57, 178, 272, 280, 271, 272, 273, 146,
4119 267, 146, 270, 59, 60, 163, 185, 185, 145, 147,
4120 314, 319, 320, 40, 41, 42, 43, 44, 37, 38,
4121 28, 247, 109, 140, 89, 95, 171, 109, 68, 69,
4122 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4123 80, 83, 84, 110, 112, 113, 114, 115, 116, 117,
4124 118, 119, 120, 121, 85, 138, 139, 200, 161, 162,
4125 162, 203, 205, 162, 314, 320, 86, 168, 175, 216,
4126 232, 283, 284, 287, 52, 56, 83, 86, 176, 177,
4127 216, 283, 284, 287, 177, 33, 34, 35, 36, 49,
4128 50, 51, 52, 56, 142, 178, 285, 305, 85, 139,
4129 26, 136, 251, 263, 87, 87, 189, 193, 251, 140,
4130 187, 56, 187, 187, 109, 88, 140, 196, 321, 85,
4131 138, 139, 87, 87, 140, 196, 192, 315, 316, 192,
4132 191, 192, 197, 308, 321, 161, 316, 161, 54, 63,
4133 64, 159, 142, 186, 136, 156, 85, 139, 87, 158,
4134 169, 143, 314, 320, 316, 201, 144, 140, 147, 318,
4135 140, 318, 137, 318, 315, 56, 59, 60, 171, 173,
4136 140, 85, 138, 139, 244, 61, 104, 105, 106, 274,
4137 106, 274, 106, 65, 274, 106, 106, 268, 274, 106,
4138 61, 106, 68, 68, 145, 153, 162, 162, 162, 162,
4139 158, 161, 161, 248, 95, 163, 187, 197, 198, 169,
4140 140, 174, 140, 160, 163, 175, 185, 187, 198, 185,
4141 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4142 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4143 185, 185, 185, 185, 185, 52, 53, 56, 183, 189,
4144 311, 312, 191, 52, 53, 56, 183, 189, 311, 155,
4145 156, 13, 228, 319, 228, 162, 162, 314, 17, 254,
4146 56, 85, 138, 139, 25, 161, 52, 56, 176, 1,
4147 113, 288, 319, 85, 138, 139, 212, 306, 213, 85,
4148 139, 313, 52, 56, 311, 311, 253, 252, 163, 185,
4149 163, 185, 94, 165, 182, 185, 187, 95, 187, 195,
4150 308, 52, 56, 191, 52, 56, 309, 316, 143, 316,
4151 140, 140, 316, 180, 202, 185, 151, 137, 311, 311,
4152 185, 316, 158, 316, 308, 140, 173, 52, 56, 191,
4153 52, 56, 52, 54, 55, 56, 57, 89, 95, 96,
4154 116, 119, 142, 245, 291, 292, 293, 294, 295, 296,
4155 299, 300, 301, 302, 303, 276, 275, 146, 274, 146,
4156 185, 185, 76, 114, 237, 238, 321, 187, 140, 316,
4157 173, 140, 109, 44, 315, 87, 87, 189, 193, 315,
4158 317, 87, 87, 189, 190, 193, 321, 10, 227, 8,
4159 256, 321, 156, 13, 156, 27, 229, 319, 229, 254,
4160 197, 227, 52, 56, 191, 52, 56, 207, 210, 319,
4161 289, 209, 52, 56, 176, 191, 155, 161, 142, 290,
4162 291, 214, 190, 193, 190, 193, 237, 237, 44, 166,
4163 180, 187, 196, 87, 87, 317, 87, 87, 308, 161,
4164 137, 318, 171, 317, 109, 52, 89, 95, 233, 234,
4165 235, 293, 291, 29, 107, 246, 140, 304, 321, 140,
4166 304, 52, 140, 304, 52, 277, 54, 55, 57, 278,
4167 287, 52, 145, 236, 239, 295, 297, 298, 301, 303,
4168 321, 156, 95, 187, 173, 185, 111, 163, 185, 163,
4169 185, 165, 144, 87, 163, 185, 163, 185, 165, 187,
4170 198, 257, 321, 15, 231, 321, 14, 230, 231, 231,
4171 204, 206, 227, 140, 228, 317, 162, 319, 162, 155,
4172 317, 227, 316, 291, 155, 319, 178, 156, 156, 185,
4173 237, 87, 140, 316, 187, 235, 140, 293, 140, 316,
4174 239, 156, 156, 294, 299, 301, 303, 295, 296, 301,
4175 295, 156, 109, 52, 240, 241, 292, 239, 114, 140,
4176 304, 140, 304, 140, 304, 10, 187, 185, 163, 185,
4177 88, 258, 321, 156, 9, 259, 321, 162, 227, 227,
4178 156, 156, 187, 156, 229, 211, 319, 227, 316, 227,
4179 215, 10, 137, 156, 316, 234, 140, 95, 233, 316,
4180 10, 137, 140, 304, 140, 304, 140, 304, 140, 304,
4181 304, 137, 86, 216, 140, 114, 298, 301, 295, 297,
4182 301, 295, 86, 175, 216, 283, 284, 287, 228, 156,
4183 228, 227, 227, 231, 254, 255, 208, 155, 290, 137,
4184 140, 234, 140, 293, 295, 301, 295, 295, 56, 85,
4185 241, 140, 304, 140, 304, 304, 140, 304, 304, 56,
4186 85, 138, 139, 156, 156, 156, 227, 155, 234, 140,
4187 304, 140, 304, 304, 304, 52, 56, 295, 301, 295,
4188 295, 52, 56, 191, 52, 56, 256, 230, 227, 227,
4189 234, 295, 304, 140, 304, 304, 304, 317, 304, 295,
4193 #define yyerrok (yyerrstatus = 0)
4194 #define yyclearin (yychar = YYEMPTY)
4195 #define YYEMPTY (-2)
4198 #define YYACCEPT goto yyacceptlab
4199 #define YYABORT goto yyabortlab
4200 #define YYERROR goto yyerrorlab
4210 #define YYFAIL goto yyerrlab
4218 #define YYRECOVERING() (!!yyerrstatus)
4220 #define YYBACKUP(Token, Value) \
4222 if (yychar == YYEMPTY && yylen == 1) \
4231 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4238 #define YYERRCODE 256
4245 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4246 #ifndef YYLLOC_DEFAULT
4247 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4251 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4252 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4253 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4254 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4258 (Current).first_line = (Current).last_line = \
4259 YYRHSLOC (Rhs, 0).last_line; \
4260 (Current).first_column = (Current).last_column = \
4261 YYRHSLOC (Rhs, 0).last_column; \
4269 #ifndef YY_LOCATION_PRINT
4270 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4277 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4279 # define YYLEX yylex (&yylval, parser)
4287 # define YYFPRINTF fprintf
4290 # define YYDPRINTF(Args) \
4296 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4300 YYFPRINTF (stderr, "%s ", Title); \
4301 yy_symbol_print (stderr, \
4302 Type, Value, parser); \
4303 YYFPRINTF (stderr, "\n"); \
4313 #if (defined __STDC__ || defined __C99__FUNC__ \
4314 || defined __cplusplus || defined _MSC_VER)
4331 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4347 #if (defined __STDC__ || defined __C99__FUNC__ \
4348 || defined __cplusplus || defined _MSC_VER)
4361 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4363 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4374 #if (defined __STDC__ || defined __C99__FUNC__ \
4375 || defined __cplusplus || defined _MSC_VER)
4386 for (; yybottom <= yytop; yybottom++)
4388 int yybot = *yybottom;
4394 # define YY_STACK_PRINT(Bottom, Top) \
4397 yy_stack_print ((Bottom), (Top)); \
4405 #if (defined __STDC__ || defined __C99__FUNC__ \
4406 || defined __cplusplus || defined _MSC_VER)
4417 int yynrhs = yyr2[yyrule];
4419 unsigned long int yylno = yyrline[yyrule];
4420 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4423 for (yyi = 0; yyi < yynrhs; yyi++)
4427 &(yyvsp[(yyi + 1) - (yynrhs)])
4433 # define YY_REDUCE_PRINT(Rule) \
4436 yy_reduce_print (yyvsp, Rule, parser); \
4445 # define YYDPRINTF(Args)
4446 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4447 # define YY_STACK_PRINT(Bottom, Top)
4448 # define YY_REDUCE_PRINT(Rule)
4454 # define YYINITDEPTH 200
4465 # define YYMAXDEPTH 10000
4472 # if defined __GLIBC__ && defined _STRING_H
4473 # define yystrlen strlen
4476 #if (defined __STDC__ || defined __C99__FUNC__ \
4477 || defined __cplusplus || defined _MSC_VER)
4487 for (yylen = 0; yystr[yylen]; yylen++)
4495 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4496 # define yystpcpy stpcpy
4500 #if (defined __STDC__ || defined __C99__FUNC__ \
4501 || defined __cplusplus || defined _MSC_VER)
4503 yystpcpy (
char *yydest,
const char *yysrc)
4512 const char *yys = yysrc;
4514 while ((*yyd++ = *yys++) !=
'\0')
4536 char const *yyp = yystr;
4543 goto do_not_strip_quotes;
4547 goto do_not_strip_quotes;
4560 do_not_strip_quotes: ;
4566 return yystpcpy (yyres, yystr) - yyres;
4585 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4587 const char *yyformat = 0;
4589 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4623 int yyn = yypact[*yyssp];
4624 yyarg[yycount++] = yytname[yytoken];
4630 int yyxbegin = yyn < 0 ? -yyn : 0;
4632 int yychecklim =
YYLAST - yyn + 1;
4636 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4637 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
4640 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4646 yyarg[yycount++] = yytname[yyx];
4647 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4648 if (! (yysize <= yysize1
4658 # define YYCASE_(N, S) \
4663 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
4664 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
4665 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
4666 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
4667 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
4671 yysize1 = yysize +
yystrlen (yyformat);
4676 if (*yymsg_alloc < yysize)
4678 *yymsg_alloc = 2 * yysize;
4679 if (! (yysize <= *yymsg_alloc
4691 while ((*yyp = *yyformat) !=
'\0')
4692 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
4712 #if (defined __STDC__ || defined __C99__FUNC__ \
4713 || defined __cplusplus || defined _MSC_VER)
4742 #ifdef YYPARSE_PARAM
4743 #if defined __STDC__ || defined __cplusplus
4749 #if defined __STDC__ || defined __cplusplus
4761 #ifdef YYPARSE_PARAM
4762 #if (defined __STDC__ || defined __C99__FUNC__ \
4763 || defined __cplusplus || defined _MSC_VER)
4769 void *YYPARSE_PARAM;
4772 #if (defined __STDC__ || defined __C99__FUNC__ \
4773 || defined __cplusplus || defined _MSC_VER)
4826 char *yymsg = yymsgbuf;
4827 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
4830 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4841 YYDPRINTF ((stderr,
"Starting parse\n"));
4868 if (yyss + yystacksize - 1 <= yyssp)
4871 YYSIZE_T yysize = yyssp - yyss + 1;
4885 yyoverflow (
YY_(
"memory exhausted"),
4886 &yyss1, yysize *
sizeof (*yyssp),
4887 &yyvs1, yysize *
sizeof (*yyvsp),
4894 # ifndef YYSTACK_RELOCATE
4895 goto yyexhaustedlab;
4899 goto yyexhaustedlab;
4909 goto yyexhaustedlab;
4912 # undef YYSTACK_RELOCATE
4919 yyssp = yyss + yysize - 1;
4920 yyvsp = yyvs + yysize - 1;
4922 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
4923 (
unsigned long int) yystacksize));
4925 if (yyss + yystacksize - 1 <= yyssp)
4929 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
4945 yyn = yypact[yystate];
4954 YYDPRINTF ((stderr,
"Reading a token: "));
4958 if (yychar <=
YYEOF)
4960 yychar = yytoken =
YYEOF;
4961 YYDPRINTF ((stderr,
"Now at end of input.\n"));
4972 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5004 yyn = yydefact[yystate];
5025 yyval = yyvsp[1-yylen];
5055 NODE *node = (yyvsp[(2) - (2)].
node);
5056 while (node->nd_next) {
5057 node = node->nd_next;
5081 (yyval.
node) = (yyvsp[(1) - (2)].node);
5156 (yyvsp[(4) - (5)].node));
5172 (yyval.
node) = (yyvsp[(1) - (4)].node);
5173 if ((yyvsp[(2) - (4)].node)) {
5174 (yyval.
node) =
NEW_RESCUE((yyvsp[(1) - (4)].node), (yyvsp[(2) - (4)].
node), (yyvsp[(3) - (4)].node));
5176 else if ((yyvsp[(3) - (4)].node)) {
5177 rb_warn0(
"else without rescue is useless");
5180 if ((yyvsp[(4) - (4)].node)) {
5209 (yyval.
node) = (yyvsp[(1) - (2)].node);
5303 buf[1] = (char)(yyvsp[(3) - (3)].node)->nd_nth;
5317 yyerror(
"can't make alias for the number variables");
5332 (yyval.
node) = (yyvsp[(2) - (2)].node);
5342 #line 1005 "parse.y"
5356 #line 1014 "parse.y"
5370 #line 1023 "parse.y"
5373 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5377 (yyval.
node) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5388 #line 1036 "parse.y"
5391 if ((yyvsp[(1) - (3)].node) &&
nd_type((yyvsp[(1) - (3)].node)) ==
NODE_BEGIN) {
5392 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node)->nd_body, 0);
5395 (yyval.
node) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].node)), (yyvsp[(1) - (3)].node), 1);
5406 #line 1049 "parse.y"
5420 #line 1058 "parse.y"
5423 rb_warn0(
"END in method; use at_exit");
5427 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].node) , 0 ));
5437 #line 1071 "parse.y"
5441 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5442 (yyval.
node) = (yyvsp[(1) - (3)].node);
5452 #line 1081 "parse.y"
5456 if ((yyvsp[(1) - (3)].node)) {
5458 if ((yyvsp[(2) - (3)].
id) ==
tOROP) {
5459 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5465 else if ((yyvsp[(2) - (3)].
id) ==
tANDOP) {
5466 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5470 (yyval.
node) = (yyvsp[(1) - (3)].node);
5486 #line 1110 "parse.y"
5492 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
5493 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
5494 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
5495 (yyvsp[(5) - (6)].
id) = 0;
5497 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
5498 (yyvsp[(5) - (6)].
id) = 1;
5512 #line 1131 "parse.y"
5516 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
5517 (yyvsp[(4) - (5)].
id) = 0;
5519 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
5520 (yyvsp[(4) - (5)].
id) = 1;
5522 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5534 #line 1148 "parse.y"
5538 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
5539 (yyvsp[(4) - (5)].
id) = 0;
5541 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
5542 (yyvsp[(4) - (5)].
id) = 1;
5544 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5556 #line 1165 "parse.y"
5559 yyerror(
"constant re-assignment");
5572 #line 1176 "parse.y"
5576 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
5577 (yyvsp[(4) - (5)].
id) = 0;
5579 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
5580 (yyvsp[(4) - (5)].
id) = 1;
5582 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
5594 #line 1193 "parse.y"
5609 #line 1203 "parse.y"
5623 #line 1212 "parse.y"
5626 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5627 (yyval.
node) = (yyvsp[(1) - (3)].node);
5637 #line 1221 "parse.y"
5640 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
5641 (yyval.
node) = (yyvsp[(1) - (3)].node);
5651 #line 1233 "parse.y"
5665 #line 1242 "parse.y"
5679 #line 1255 "parse.y"
5692 #line 1263 "parse.y"
5705 #line 1271 "parse.y"
5718 #line 1279 "parse.y"
5731 #line 1290 "parse.y"
5735 (yyval.
node) = (yyvsp[(1) - (1)].node);
5746 #line 1307 "parse.y"
5749 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5760 #line 1316 "parse.y"
5763 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5774 #line 1327 "parse.y"
5787 #line 1337 "parse.y"
5802 #line 1349 "parse.y"
5816 #line 1358 "parse.y"
5821 (yyval.
node) = (yyvsp[(3) - (3)].node);
5833 #line 1370 "parse.y"
5836 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5847 #line 1379 "parse.y"
5851 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5852 (yyval.
node) = (yyvsp[(5) - (5)].node);
5864 #line 1391 "parse.y"
5867 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
5878 #line 1400 "parse.y"
5882 (yyvsp[(5) - (5)].
node)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].node));
5883 (yyval.
node) = (yyvsp[(5) - (5)].node);
5895 #line 1412 "parse.y"
5909 #line 1421 "parse.y"
5923 #line 1430 "parse.y"
5936 #line 1438 "parse.y"
5949 #line 1446 "parse.y"
5962 #line 1457 "parse.y"
5965 (yyval.
node) = (yyvsp[(2) - (3)].node);
5975 #line 1468 "parse.y"
5988 #line 1478 "parse.y"
6001 #line 1486 "parse.y"
6014 #line 1494 "parse.y"
6027 #line 1502 "parse.y"
6041 #line 1511 "parse.y"
6054 #line 1519 "parse.y"
6068 #line 1528 "parse.y"
6081 #line 1536 "parse.y"
6095 #line 1545 "parse.y"
6108 #line 1553 "parse.y"
6122 #line 1565 "parse.y"
6125 (yyval.
node) = (yyvsp[(2) - (3)].node);
6135 #line 1575 "parse.y"
6148 #line 1583 "parse.y"
6161 #line 1593 "parse.y"
6174 #line 1601 "parse.y"
6187 #line 1611 "parse.y"
6196 #line 1615 "parse.y"
6205 #line 1619 "parse.y"
6208 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6218 #line 1627 "parse.y"
6221 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6231 #line 1635 "parse.y"
6234 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6244 #line 1643 "parse.y"
6247 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6257 #line 1651 "parse.y"
6261 yyerror(
"dynamic constant assignment");
6274 #line 1663 "parse.y"
6278 yyerror(
"dynamic constant assignment");
6289 #line 1673 "parse.y"
6304 #line 1685 "parse.y"
6318 #line 1694 "parse.y"
6332 #line 1703 "parse.y"
6335 (yyval.
node) =
aryset((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node));
6345 #line 1711 "parse.y"
6348 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6358 #line 1719 "parse.y"
6361 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6371 #line 1727 "parse.y"
6374 (yyval.
node) =
attrset((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id));
6384 #line 1735 "parse.y"
6388 yyerror(
"dynamic constant assignment");
6402 #line 1748 "parse.y"
6406 yyerror(
"dynamic constant assignment");
6420 #line 1761 "parse.y"
6434 #line 1772 "parse.y"
6437 yyerror(
"class/module name must be CONSTANT");
6447 #line 1783 "parse.y"
6460 #line 1791 "parse.y"
6473 #line 1799 "parse.y"
6486 #line 1812 "parse.y"
6489 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6496 #line 1817 "parse.y"
6500 (yyval.
id) = (yyvsp[(1) - (1)].
id);
6510 #line 1832 "parse.y"
6523 #line 1843 "parse.y"
6536 #line 1850 "parse.y"
6543 #line 1851 "parse.y"
6556 #line 1860 "parse.y"
6563 #line 1861 "parse.y"
6570 #line 1862 "parse.y"
6577 #line 1863 "parse.y"
6584 #line 1864 "parse.y"
6591 #line 1865 "parse.y"
6598 #line 1866 "parse.y"
6605 #line 1867 "parse.y"
6612 #line 1868 "parse.y"
6619 #line 1869 "parse.y"
6626 #line 1870 "parse.y"
6633 #line 1871 "parse.y"
6640 #line 1872 "parse.y"
6647 #line 1873 "parse.y"
6654 #line 1874 "parse.y"
6661 #line 1875 "parse.y"
6668 #line 1876 "parse.y"
6675 #line 1877 "parse.y"
6682 #line 1878 "parse.y"
6689 #line 1879 "parse.y"
6696 #line 1880 "parse.y"
6703 #line 1881 "parse.y"
6710 #line 1882 "parse.y"
6717 #line 1883 "parse.y"
6724 #line 1884 "parse.y"
6731 #line 1885 "parse.y"
6738 #line 1886 "parse.y"
6745 #line 1887 "parse.y"
6752 #line 1888 "parse.y"
6759 #line 1906 "parse.y"
6773 #line 1915 "parse.y"
6788 #line 1925 "parse.y"
6792 if ((yyvsp[(1) - (3)].node)) {
6794 if ((yyvsp[(2) - (3)].
id) ==
tOROP) {
6795 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
6801 else if ((yyvsp[(2) - (3)].
id) ==
tANDOP) {
6802 (yyvsp[(1) - (3)].
node)->
nd_value = (yyvsp[(3) - (3)].node);
6806 (yyval.
node) = (yyvsp[(1) - (3)].node);
6822 #line 1954 "parse.y"
6827 if ((yyvsp[(1) - (5)].node)) {
6829 if ((yyvsp[(2) - (5)].
id) ==
tOROP) {
6830 (yyvsp[(1) - (5)].
node)->
nd_value = (yyvsp[(3) - (5)].node);
6836 else if ((yyvsp[(2) - (5)].
id) ==
tANDOP) {
6837 (yyvsp[(1) - (5)].
node)->
nd_value = (yyvsp[(3) - (5)].node);
6841 (yyval.
node) = (yyvsp[(1) - (5)].node);
6858 #line 1985 "parse.y"
6864 if (!(yyvsp[(3) - (6)].node)) (yyvsp[(3) - (6)].
node) =
NEW_ZARRAY();
6866 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6869 args =
arg_concat((yyvsp[(3) - (6)].node), (yyvsp[(6) - (6)].node));
6871 if ((yyvsp[(5) - (6)].
id) ==
tOROP) {
6872 (yyvsp[(5) - (6)].
id) = 0;
6874 else if ((yyvsp[(5) - (6)].
id) ==
tANDOP) {
6875 (yyvsp[(5) - (6)].
id) = 1;
6889 #line 2011 "parse.y"
6893 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
6894 (yyvsp[(4) - (5)].
id) = 0;
6896 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
6897 (yyvsp[(4) - (5)].
id) = 1;
6899 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6911 #line 2028 "parse.y"
6915 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
6916 (yyvsp[(4) - (5)].
id) = 0;
6918 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
6919 (yyvsp[(4) - (5)].
id) = 1;
6921 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6933 #line 2045 "parse.y"
6937 if ((yyvsp[(4) - (5)].
id) ==
tOROP) {
6938 (yyvsp[(4) - (5)].
id) = 0;
6940 else if ((yyvsp[(4) - (5)].
id) ==
tANDOP) {
6941 (yyvsp[(4) - (5)].
id) = 1;
6943 (yyval.
node) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].
id), (yyvsp[(4) - (5)].
id), (yyvsp[(5) - (5)].
node));
6955 #line 2062 "parse.y"
6958 yyerror(
"constant re-assignment");
6971 #line 2073 "parse.y"
6974 yyerror(
"constant re-assignment");
6987 #line 2084 "parse.y"
7003 #line 2095 "parse.y"
7022 #line 2109 "parse.y"
7041 #line 2123 "parse.y"
7054 #line 2131 "parse.y"
7067 #line 2139 "parse.y"
7080 #line 2147 "parse.y"
7093 #line 2155 "parse.y"
7106 #line 2163 "parse.y"
7119 #line 2171 "parse.y"
7133 #line 2180 "parse.y"
7147 #line 2189 "parse.y"
7160 #line 2197 "parse.y"
7173 #line 2205 "parse.y"
7186 #line 2213 "parse.y"
7199 #line 2221 "parse.y"
7212 #line 2229 "parse.y"
7225 #line 2237 "parse.y"
7238 #line 2245 "parse.y"
7251 #line 2253 "parse.y"
7264 #line 2261 "parse.y"
7277 #line 2269 "parse.y"
7290 #line 2277 "parse.y"
7303 #line 2285 "parse.y"
7316 #line 2293 "parse.y"
7332 #line 2304 "parse.y"
7345 #line 2312 "parse.y"
7358 #line 2320 "parse.y"
7371 #line 2328 "parse.y"
7384 #line 2336 "parse.y"
7397 #line 2344 "parse.y"
7410 #line 2352 "parse.y"
7423 #line 2359 "parse.y"
7430 #line 2360 "parse.y"
7445 #line 2370 "parse.y"
7449 (yyval.
node) =
NEW_IF(
cond((yyvsp[(1) - (6)].node)), (yyvsp[(3) - (6)].
node), (yyvsp[(6) - (6)].node));
7460 #line 2380 "parse.y"
7462 (yyval.
node) = (yyvsp[(1) - (1)].node);
7469 #line 2386 "parse.y"
7473 (yyval.
node) = (yyvsp[(1) - (1)].node);
7484 #line 2399 "parse.y"
7486 (yyval.
node) = (yyvsp[(1) - (2)].node);
7493 #line 2403 "parse.y"
7506 #line 2411 "parse.y"
7519 #line 2421 "parse.y"
7522 (yyval.
node) = (yyvsp[(2) - (3)].node);
7532 #line 2437 "parse.y"
7534 (yyval.
node) = (yyvsp[(1) - (2)].node);
7541 #line 2441 "parse.y"
7554 #line 2449 "parse.y"
7567 #line 2459 "parse.y"
7581 #line 2468 "parse.y"
7594 #line 2476 "parse.y"
7609 #line 2486 "parse.y"
7623 #line 2503 "parse.y"
7633 #line 2508 "parse.y"
7637 (yyval.
node) = (yyvsp[(2) - (2)].node);
7644 #line 2516 "parse.y"
7657 #line 2526 "parse.y"
7659 (yyval.
node) = (yyvsp[(2) - (2)].node);
7666 #line 2530 "parse.y"
7675 #line 2536 "parse.y"
7688 #line 2544 "parse.y"
7701 #line 2552 "parse.y"
7705 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7720 #line 2566 "parse.y"
7739 #line 2582 "parse.y"
7743 if ((n1 =
splat_array((yyvsp[(1) - (3)].node))) != 0) {
7758 #line 2596 "parse.y"
7763 (n1 =
splat_array((yyvsp[(1) - (4)].node))) != 0) {
7778 #line 2611 "parse.y"
7791 #line 2629 "parse.y"
7804 #line 2637 "parse.y"
7816 #line 2645 "parse.y"
7819 if ((yyvsp[(3) - (4)].node) ==
NULL) {
7825 nd_set_line((yyvsp[(3) - (4)].node), (yyvsp[(2) - (4)].num));
7838 #line 2661 "parse.y"
7845 #line 2662 "parse.y"
7847 rb_warning0(
"(...) interpreted as grouped expression");
7849 (yyval.
node) = (yyvsp[(2) - (4)].node);
7859 #line 2671 "parse.y"
7862 (yyval.
node) = (yyvsp[(2) - (3)].node);
7872 #line 2679 "parse.y"
7885 #line 2687 "parse.y"
7898 #line 2695 "parse.y"
7901 if ((yyvsp[(2) - (3)].node) == 0) {
7905 (yyval.
node) = (yyvsp[(2) - (3)].node);
7916 #line 2708 "parse.y"
7929 #line 2716 "parse.y"
7942 #line 2724 "parse.y"
7955 #line 2732 "parse.y"
7968 #line 2740 "parse.y"
7981 #line 2747 "parse.y"
7988 #line 2748 "parse.y"
8003 #line 2758 "parse.y"
8016 #line 2766 "parse.y"
8029 #line 2774 "parse.y"
8033 (yyval.
node) = (yyvsp[(2) - (2)].node);
8034 fixpos((yyvsp[(2) - (2)].node)->
nd_iter, (yyvsp[(2) - (2)].node));
8045 #line 2786 "parse.y"
8049 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
8050 (yyval.
node) = (yyvsp[(2) - (2)].node);
8061 #line 2797 "parse.y"
8063 (yyval.
node) = (yyvsp[(2) - (2)].node);
8070 #line 2804 "parse.y"
8073 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].node), (yyvsp[(5) - (6)].
node));
8084 #line 2816 "parse.y"
8087 (yyval.
node) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].node)), (yyvsp[(4) - (6)].
node), (yyvsp[(5) - (6)].node));
8098 #line 2824 "parse.y"
8105 #line 2824 "parse.y"
8112 #line 2827 "parse.y"
8126 #line 2835 "parse.y"
8133 #line 2835 "parse.y"
8140 #line 2838 "parse.y"
8154 #line 2849 "parse.y"
8168 #line 2858 "parse.y"
8181 #line 2866 "parse.y"
8188 #line 2868 "parse.y"
8195 #line 2871 "parse.y"
8240 m->nd_next = (yyvsp[(2) - (9)].
node);
8249 tbl[0] = 1; tbl[1] =
id;
8250 (yyval.
node) =
NEW_FOR(0, (yyvsp[(5) - (9)].node), scope);
8261 #line 2932 "parse.y"
8264 yyerror(
"class definition in method body");
8276 #line 2943 "parse.y"
8279 (yyval.
node) =
NEW_CLASS((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(3) - (6)].node));
8291 #line 2953 "parse.y"
8301 #line 2958 "parse.y"
8312 #line 2965 "parse.y"
8329 #line 2977 "parse.y"
8332 yyerror(
"module definition in method body");
8344 #line 2988 "parse.y"
8359 #line 2998 "parse.y"
8371 #line 3007 "parse.y"
8390 #line 3020 "parse.y"
8397 #line 3021 "parse.y"
8408 #line 3029 "parse.y"
8413 (yyval.
node) =
NEW_DEFS((yyvsp[(2) - (9)].node), (yyvsp[(5) - (9)].
id), (yyvsp[(7) - (9)].node), body);
8426 #line 3042 "parse.y"
8439 #line 3050 "parse.y"
8452 #line 3058 "parse.y"
8465 #line 3066 "parse.y"
8478 #line 3076 "parse.y"
8482 (yyval.
node) = (yyvsp[(1) - (1)].node);
8493 #line 3088 "parse.y"
8502 #line 3094 "parse.y"
8511 #line 3100 "parse.y"
8520 #line 3106 "parse.y"
8529 #line 3112 "parse.y"
8538 #line 3118 "parse.y"
8547 #line 3124 "parse.y"
8556 #line 3130 "parse.y"
8565 #line 3136 "parse.y"
8574 #line 3142 "parse.y"
8587 #line 3152 "parse.y"
8596 #line 3182 "parse.y"
8599 (yyval.
node) =
NEW_IF(
cond((yyvsp[(2) - (5)].node)), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
8610 #line 3194 "parse.y"
8613 (yyval.
node) = (yyvsp[(2) - (2)].node);
8623 #line 3208 "parse.y"
8636 #line 3216 "parse.y"
8639 (yyval.
node) = (yyvsp[(2) - (3)].node);
8649 #line 3226 "parse.y"
8662 #line 3234 "parse.y"
8675 #line 3244 "parse.y"
8688 #line 3252 "parse.y"
8702 #line 3261 "parse.y"
8716 #line 3270 "parse.y"
8729 #line 3278 "parse.y"
8742 #line 3286 "parse.y"
8756 #line 3295 "parse.y"
8773 #line 3307 "parse.y"
8786 #line 3315 "parse.y"
8799 #line 3325 "parse.y"
8802 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id), 0, (yyvsp[(6) - (6)].
id));
8812 #line 3333 "parse.y"
8815 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].
id));
8825 #line 3341 "parse.y"
8828 (yyval.
node) =
new_args((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node), 0, 0, (yyvsp[(4) - (4)].
id));
8838 #line 3349 "parse.y"
8841 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), 0, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
8851 #line 3357 "parse.y"
8854 (yyval.
node) =
new_args((yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].
id), 0, (yyvsp[(4) - (4)].
id));
8864 #line 3365 "parse.y"
8867 (yyval.
node) =
new_args((yyvsp[(1) - (2)].node), 0, 1, 0, 0);
8878 #line 3374 "parse.y"
8881 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), 0, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
8891 #line 3382 "parse.y"
8894 (yyval.
node) =
new_args((yyvsp[(1) - (2)].node), 0, 0, 0, (yyvsp[(2) - (2)].
id));
8904 #line 3390 "parse.y"
8907 (yyval.
node) =
new_args(0, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), 0, (yyvsp[(4) - (4)].
id));
8917 #line 3398 "parse.y"
8920 (yyval.
node) =
new_args(0, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
8930 #line 3406 "parse.y"
8933 (yyval.
node) =
new_args(0, (yyvsp[(1) - (2)].node), 0, 0, (yyvsp[(2) - (2)].
id));
8943 #line 3414 "parse.y"
8946 (yyval.
node) =
new_args(0, (yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].
node), (yyvsp[(4) - (4)].
id));
8956 #line 3422 "parse.y"
8959 (yyval.
node) =
new_args(0, 0, (yyvsp[(1) - (2)].
id), 0, (yyvsp[(2) - (2)].
id));
8969 #line 3430 "parse.y"
8972 (yyval.
node) =
new_args(0, 0, (yyvsp[(1) - (4)].
id), (yyvsp[(3) - (4)].
node), (yyvsp[(4) - (4)].
id));
8982 #line 3438 "parse.y"
8985 (yyval.
node) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].
id));
8995 #line 3449 "parse.y"
9004 #line 3455 "parse.y"
9018 #line 3464 "parse.y"
9032 #line 3473 "parse.y"
9035 (yyval.
node) = (yyvsp[(2) - (4)].node);
9045 #line 3485 "parse.y"
9058 #line 3511 "parse.y"
9071 #line 3519 "parse.y"
9080 #line 3524 "parse.y"
9089 #line 3527 "parse.y"
9099 #line 3533 "parse.y"
9103 (yyval.
node) = (yyvsp[(3) - (4)].node);
9115 #line 3546 "parse.y"
9128 #line 3554 "parse.y"
9141 #line 3564 "parse.y"
9143 (yyval.
node) = (yyvsp[(2) - (3)].node);
9150 #line 3568 "parse.y"
9152 (yyval.
node) = (yyvsp[(2) - (3)].node);
9159 #line 3574 "parse.y"
9171 #line 3583 "parse.y"
9186 #line 3595 "parse.y"
9195 (yyvsp[(2) - (2)].
node)->
nd_iter = (yyvsp[(1) - (2)].node);
9196 (yyval.
node) = (yyvsp[(2) - (2)].node);
9207 #line 3611 "parse.y"
9210 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9221 #line 3620 "parse.y"
9224 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9235 #line 3631 "parse.y"
9249 #line 3640 "parse.y"
9252 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9264 #line 3650 "parse.y"
9267 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), (yyvsp[(4) - (4)].node));
9279 #line 3660 "parse.y"
9282 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].
id), 0);
9292 #line 3668 "parse.y"
9308 #line 3679 "parse.y"
9324 #line 3690 "parse.y"
9337 #line 3698 "parse.y"
9350 #line 3706 "parse.y"
9353 if ((yyvsp[(1) - (4)].node) &&
nd_type((yyvsp[(1) - (4)].node)) ==
NODE_SELF)
9356 (yyval.
node) =
NEW_CALL((yyvsp[(1) - (4)].node),
tAREF, (yyvsp[(3) - (4)].node));
9367 #line 3720 "parse.y"
9380 #line 3729 "parse.y"
9395 #line 3739 "parse.y"
9408 #line 3748 "parse.y"
9423 #line 3762 "parse.y"
9426 (yyval.
node) =
NEW_WHEN((yyvsp[(2) - (5)].node), (yyvsp[(4) - (5)].
node), (yyvsp[(5) - (5)].node));
9436 #line 3778 "parse.y"
9439 if ((yyvsp[(3) - (6)].node)) {
9443 (yyval.
node) =
NEW_RESBODY((yyvsp[(2) - (6)].node), (yyvsp[(5) - (6)].
node), (yyvsp[(6) - (6)].node));
9458 #line 3798 "parse.y"
9471 #line 3806 "parse.y"
9484 #line 3817 "parse.y"
9486 (yyval.
node) = (yyvsp[(2) - (2)].node);
9493 #line 3824 "parse.y"
9496 (yyval.
node) = (yyvsp[(2) - (2)].node);
9506 #line 3836 "parse.y"
9519 #line 3847 "parse.y"
9522 NODE *node = (yyvsp[(1) - (1)].
node);
9529 (yyval.
node) = node;
9539 #line 3866 "parse.y"
9552 #line 3876 "parse.y"
9555 (yyval.
node) = (yyvsp[(2) - (3)].node);
9565 #line 3886 "parse.y"
9568 NODE *node = (yyvsp[(2) - (3)].
node);
9585 (yyval.
node) = node;
9595 #line 3913 "parse.y"
9599 NODE *node = (yyvsp[(2) - (3)].
node);
9607 VALUE src = node->nd_lit;
9623 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9625 VALUE tail = list->nd_head->nd_lit;
9627 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9633 prev->nd_next = list->nd_next;
9646 if (!node->nd_next) {
9647 VALUE src = node->nd_lit;
9653 (yyval.
node) = node;
9663 #line 3978 "parse.y"
9677 #line 3987 "parse.y"
9680 (yyval.
node) = (yyvsp[(2) - (3)].node);
9690 #line 3997 "parse.y"
9703 #line 4005 "parse.y"
9716 #line 4023 "parse.y"
9729 #line 4033 "parse.y"
9743 #line 4042 "parse.y"
9746 (yyval.
node) = (yyvsp[(2) - (3)].node);
9756 #line 4052 "parse.y"
9769 #line 4060 "parse.y"
9782 #line 4070 "parse.y"
9795 #line 4078 "parse.y"
9808 #line 4088 "parse.y"
9821 #line 4096 "parse.y"
9834 #line 4106 "parse.y"
9847 #line 4114 "parse.y"
9850 NODE *head = (yyvsp[(1) - (2)].
node), *tail = (yyvsp[(2) - (2)].node);
9852 (yyval.
node) = tail;
9855 (yyval.
node) = head;
9879 #line 4144 "parse.y"
9890 #line 4150 "parse.y"
9905 #line 4160 "parse.y"
9917 #line 4166 "parse.y"
9928 #line 4172 "parse.y"
9934 if ((yyvsp[(4) - (5)].node)) (yyvsp[(4) - (5)].node)->flags &= ~
NODE_FL_NEWLINE;
9945 #line 4186 "parse.y"
9958 #line 4194 "parse.y"
9971 #line 4202 "parse.y"
9984 #line 4213 "parse.y"
9988 (yyval.
id) = (yyvsp[(2) - (2)].
id);
9998 #line 4230 "parse.y"
10002 if (!((yyval.
node) = (yyvsp[(2) - (3)].
node))) {
10031 #line 4262 "parse.y"
10044 #line 4270 "parse.y"
10057 #line 4286 "parse.y"
10064 #line 4287 "parse.y"
10071 #line 4288 "parse.y"
10078 #line 4289 "parse.y"
10085 #line 4290 "parse.y"
10092 #line 4291 "parse.y"
10099 #line 4292 "parse.y"
10106 #line 4296 "parse.y"
10124 #line 4309 "parse.y"
10137 #line 4319 "parse.y"
10150 #line 4327 "parse.y"
10163 #line 4341 "parse.y"
10176 #line 4349 "parse.y"
10185 #line 4353 "parse.y"
10187 (yyval.
node) = (yyvsp[(3) - (4)].node);
10194 #line 4357 "parse.y"
10209 #line 4369 "parse.y"
10212 (yyval.
node) = (yyvsp[(2) - (3)].node);
10224 #line 4379 "parse.y"
10226 (yyval.
node) = (yyvsp[(1) - (2)].node);
10235 #line 4387 "parse.y"
10238 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), (yyvsp[(5) - (6)].
id), 0, (yyvsp[(6) - (6)].
id));
10248 #line 4395 "parse.y"
10251 (yyval.
node) =
new_args((yyvsp[(1) - (8)].node), (yyvsp[(3) - (8)].
node), (yyvsp[(5) - (8)].
id), (yyvsp[(7) - (8)].
node), (yyvsp[(8) - (8)].
id));
10261 #line 4403 "parse.y"
10264 (yyval.
node) =
new_args((yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
node), 0, 0, (yyvsp[(4) - (4)].
id));
10274 #line 4411 "parse.y"
10277 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
node), 0, (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
10287 #line 4419 "parse.y"
10290 (yyval.
node) =
new_args((yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].
id), 0, (yyvsp[(4) - (4)].
id));
10300 #line 4427 "parse.y"
10303 (yyval.
node) =
new_args((yyvsp[(1) - (6)].node), 0, (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
10313 #line 4435 "parse.y"
10316 (yyval.
node) =
new_args((yyvsp[(1) - (2)].node), 0, 0, 0, (yyvsp[(2) - (2)].
id));
10326 #line 4443 "parse.y"
10329 (yyval.
node) =
new_args(0, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].
id), 0, (yyvsp[(4) - (4)].
id));
10339 #line 4451 "parse.y"
10342 (yyval.
node) =
new_args(0, (yyvsp[(1) - (6)].node), (yyvsp[(3) - (6)].
id), (yyvsp[(5) - (6)].node), (yyvsp[(6) - (6)].
id));
10352 #line 4459 "parse.y"
10355 (yyval.
node) =
new_args(0, (yyvsp[(1) - (2)].node), 0, 0, (yyvsp[(2) - (2)].
id));
10365 #line 4467 "parse.y"
10368 (yyval.
node) =
new_args(0, (yyvsp[(1) - (4)].node), 0, (yyvsp[(3) - (4)].
node), (yyvsp[(4) - (4)].
id));
10378 #line 4475 "parse.y"
10381 (yyval.
node) =
new_args(0, 0, (yyvsp[(1) - (2)].
id), 0, (yyvsp[(2) - (2)].
id));
10391 #line 4483 "parse.y"
10394 (yyval.
node) =
new_args(0, 0, (yyvsp[(1) - (4)].
id), (yyvsp[(3) - (4)].
node), (yyvsp[(4) - (4)].
id));
10404 #line 4491 "parse.y"
10407 (yyval.
node) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].
id));
10417 #line 4499 "parse.y"
10430 #line 4509 "parse.y"
10433 yyerror(
"formal argument cannot be a constant");
10444 #line 4518 "parse.y"
10447 yyerror(
"formal argument cannot be an instance variable");
10458 #line 4527 "parse.y"
10461 yyerror(
"formal argument cannot be a global variable");
10472 #line 4536 "parse.y"
10475 yyerror(
"formal argument cannot be a class variable");
10486 #line 4548 "parse.y"
10489 (yyval.
id) = (yyvsp[(1) - (1)].
id);
10496 #line 4555 "parse.y"
10510 #line 4564 "parse.y"
10532 #line 4590 "parse.y"
10535 (yyval.
node) = (yyvsp[(1) - (3)].node);
10548 #line 4603 "parse.y"
10563 #line 4615 "parse.y"
10578 #line 4627 "parse.y"
10581 (yyval.
node) = (yyvsp[(1) - (1)].node);
10591 #line 4635 "parse.y"
10594 NODE *opts = (yyvsp[(1) - (3)].
node);
10596 while (opts->nd_next) {
10597 opts = opts->nd_next;
10599 opts->nd_next = (yyvsp[(3) - (3)].
node);
10600 (yyval.
node) = (yyvsp[(1) - (3)].node);
10610 #line 4651 "parse.y"
10613 (yyval.
node) = (yyvsp[(1) - (1)].node);
10623 #line 4659 "parse.y"
10626 NODE *opts = (yyvsp[(1) - (3)].
node);
10628 while (opts->nd_next) {
10629 opts = opts->nd_next;
10631 opts->nd_next = (yyvsp[(3) - (3)].
node);
10632 (yyval.
node) = (yyvsp[(1) - (3)].node);
10642 #line 4679 "parse.y"
10646 yyerror(
"rest argument must be local variable");
10650 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10660 #line 4692 "parse.y"
10674 #line 4707 "parse.y"
10678 yyerror(
"block argument must be local variable");
10680 yyerror(
"duplicated block argument name");
10684 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10694 #line 4724 "parse.y"
10696 (yyval.
id) = (yyvsp[(2) - (2)].
id);
10703 #line 4728 "parse.y"
10716 #line 4738 "parse.y"
10720 (yyval.
node) = (yyvsp[(1) - (1)].node);
10731 #line 4747 "parse.y"
10738 #line 4748 "parse.y"
10741 if ((yyvsp[(3) - (4)].node) == 0) {
10742 yyerror(
"can't define singleton method for ().");
10745 switch (
nd_type((yyvsp[(3) - (4)].node))) {
10754 yyerror(
"can't define singleton method for literals");
10760 (yyval.
node) = (yyvsp[(3) - (4)].node);
10770 #line 4778 "parse.y"
10773 (yyval.
node) = (yyvsp[(1) - (2)].node);
10783 #line 4795 "parse.y"
10796 #line 4805 "parse.y"
10809 #line 4813 "parse.y"
10822 #line 4869 "parse.y"
10829 #line 4874 "parse.y"
10836 #line 4878 "parse.y"
10849 #line 10848 "parse.c"
10877 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
10878 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10879 yystate = yytable[yystate];
10898 #if ! YYERROR_VERBOSE
10901 # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
10904 char const *yymsgp =
YY_(
"syntax error");
10905 int yysyntax_error_status;
10907 if (yysyntax_error_status == 0)
10909 else if (yysyntax_error_status == 1)
10911 if (yymsg != yymsgbuf)
10917 yymsg_alloc =
sizeof yymsgbuf;
10918 yysyntax_error_status = 2;
10927 if (yysyntax_error_status == 2)
10928 goto yyexhaustedlab;
10930 # undef YYSYNTAX_ERROR
10936 if (yyerrstatus == 3)
10941 if (yychar <=
YYEOF)
10944 if (yychar ==
YYEOF)
10950 yytoken, &yylval, parser);
10988 yyn = yypact[yystate];
10994 yyn = yytable[yyn];
11006 yystos[yystate], yyvsp, parser);
11036 #if !defined(yyoverflow) || YYERROR_VERBOSE
11052 yydestruct (
"Cleanup: discarding lookahead",
11053 yytoken, &yylval, parser);
11059 while (yyssp != yyss)
11062 yystos[*yyssp], yyvsp, parser);
11069 #if YYERROR_VERBOSE
11070 if (yymsg != yymsgbuf)
11074 return YYID (yyresult);
11080 #line 4886 "parse.y"
11085 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
11094 # define nextc() parser_nextc(parser)
11095 # define pushback(c) parser_pushback(parser, (c))
11096 # define newtok() parser_newtok(parser)
11097 # define tokspace(n) parser_tokspace(parser, (n))
11098 # define tokadd(c) parser_tokadd(parser, (c))
11099 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
11100 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
11101 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
11102 # define regx_options() parser_regx_options(parser)
11103 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
11104 # define parse_string(n) parser_parse_string(parser,(n))
11105 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
11106 # define here_document(n) parser_here_document(parser,(n))
11107 # define heredoc_identifier() parser_heredoc_identifier(parser)
11108 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
11109 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
11112 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
11113 # define set_yylval_num(x) (yylval.num = (x))
11114 # define set_yylval_id(x) (yylval.id = (x))
11115 # define set_yylval_name(x) (yylval.id = (x))
11116 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
11117 # define set_yylval_node(x) (yylval.node = (x))
11118 # define yylval_id() (yylval.id)
11120 static inline VALUE
11121 ripper_yylval_id(
ID x)
11125 # define set_yylval_str(x) (void)(x)
11126 # define set_yylval_num(x) (void)(x)
11127 # define set_yylval_id(x) (void)(x)
11128 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
11129 # define set_yylval_literal(x) (void)(x)
11130 # define set_yylval_node(x) (void)(x)
11131 # define yylval_id() yylval.id
11135 #define ripper_flush(p) (void)(p)
11137 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
11139 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
11146 return lex_p > parser->tokp;
11159 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
11161 if (!ripper_has_scan_event(parser))
return;
11162 yylval_rval = ripper_scan_event_val(parser, t);
11166 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
11168 if (!ripper_has_scan_event(parser))
return;
11169 (void)ripper_scan_event_val(parser, t);
11173 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
11176 const char *saved_tokp = parser->tokp;
11179 parser->tokp =
lex_pbeg + parser->delayed_col;
11181 parser->delayed =
Qnil;
11183 parser->tokp = saved_tokp;
11194 #undef SIGN_EXTEND_CHAR
11196 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
11199 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
11202 #define parser_encoding_name() (parser->enc->name)
11203 #define parser_mbclen() mbclen((lex_p-1),lex_pend,parser->enc)
11204 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,parser->enc)
11205 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
11206 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,parser->enc))
11208 #define parser_isascii() ISASCII(*(lex_p-1))
11216 for (p =
lex_pbeg; p < pend; p++) {
11218 column = (((column - 1) / 8) + 1) * 8;
11229 for (p =
lex_pbeg; p < pend; p++) {
11230 if (*p !=
' ' && *p !=
'\t') {
11237 #undef token_info_push
11254 #undef token_info_pop
11261 if (!ptinfo)
return;
11267 if (linenum == ptinfo->
linenum) {
11275 "mismatched indentations at '%s' with '%s' at %d",
11288 const int max_line_margin = 30;
11289 const char *
p, *pe;
11297 if (*p ==
'\n')
break;
11304 if (*pe ==
'\n')
break;
11311 const char *pre =
"", *post =
"";
11313 if (len > max_line_margin * 2 + 10) {
11314 if (
lex_p - p > max_line_margin) {
11318 if (pe -
lex_p > max_line_margin) {
11325 MEMCPY(buf, p,
char, len);
11329 i = (int)(
lex_p - p);
11330 p2 =
buf; pe = buf +
len;
11333 if (*p2 !=
'\t') *p2 =
' ';
11341 dispatch1(parse_error,
STR_NEW2(msg));
11353 CONST_ID(script_lines,
"SCRIPT_LINES__");
11370 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
11374 RBASIC(lines)->klass = 0;
11376 RARRAY(lines)->as.heap.len = n;
11424 if (parser->
nerr) {
11434 return (
VALUE)tree;
11459 char *beg, *end, *pend;
11469 while (end < pend) {
11470 if (*end++ ==
'\n')
break;
11480 if (
NIL_P(line))
return line;
11504 volatile VALUE tmp;
11565 volatile VALUE tmp;
11581 #define STR_FUNC_ESCAPE 0x01
11582 #define STR_FUNC_EXPAND 0x02
11583 #define STR_FUNC_REGEXP 0x04
11584 #define STR_FUNC_QWORDS 0x08
11585 #define STR_FUNC_SYMBOL 0x10
11586 #define STR_FUNC_INDENT 0x20
11616 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
11617 #define lex_eol_p() (lex_p >= lex_pend)
11618 #define peek(c) peek_n((c), 0)
11619 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
11642 if (
NIL_P(parser->delayed)) {
11646 parser->tokp,
lex_pend - parser->tokp);
11648 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
11652 parser->tokp,
lex_pend - parser->tokp);
11668 c = (
unsigned char)*
lex_p++;
11669 if (c ==
'\r' &&
peek(
'\n')) {
11680 if (c == -1)
return;
11687 #define was_bol() (lex_p == lex_pbeg + 1)
11689 #define tokfix() (tokenbuf[tokidx]='\0')
11690 #define tok() tokenbuf
11691 #define toklen() tokidx
11692 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
11738 yyerror(
"invalid hex escape");
11745 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
11749 int string_literal,
int symbol_literal,
int regexp_literal)
11769 yyerror(
"invalid Unicode escape");
11772 if (codepoint > 0x10ffff) {
11773 yyerror(
"invalid Unicode codepoint (too large)");
11777 if (regexp_literal) {
11780 else if (codepoint >= 0x80) {
11782 if (string_literal)
tokaddmbc(codepoint, *encp);
11784 else if (string_literal) {
11787 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
11790 yyerror(
"unterminated Unicode escape");
11794 if (regexp_literal) {
tokadd(
'}'); }
11800 yyerror(
"invalid Unicode escape");
11804 if (regexp_literal) {
11807 else if (codepoint >= 0x80) {
11809 if (string_literal)
tokaddmbc(codepoint, *encp);
11811 else if (string_literal) {
11819 #define ESCAPE_CONTROL 1
11820 #define ESCAPE_META 2
11829 switch (c =
nextc()) {
11854 case '0':
case '1':
case '2':
case '3':
11855 case '4':
case '5':
case '6':
case '7':
11863 if (numlen == 0)
return 0;
11874 if ((c =
nextc()) !=
'-') {
11878 if ((c =
nextc()) ==
'\\') {
11879 if (
peek(
'u'))
goto eof;
11880 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11882 else if (c == -1 || !
ISASCII(c))
goto eof;
11884 return ((c & 0xff) | 0x80);
11888 if ((c =
nextc()) !=
'-') {
11894 if ((c =
nextc())==
'\\') {
11895 if (
peek(
'u'))
goto eof;
11900 else if (c == -1 || !
ISASCII(c))
goto eof;
11905 yyerror(
"Invalid escape character syntax");
11928 switch (c =
nextc()) {
11932 case '0':
case '1':
case '2':
case '3':
11933 case '4':
case '5':
case '6':
case '7':
11936 if (numlen == 0)
goto eof;
11945 if (numlen == 0)
return -1;
11952 if ((c =
nextc()) !=
'-') {
11962 if ((c =
nextc()) !=
'-') {
11970 if (flags & ESCAPE_CONTROL)
goto eof;
11974 if ((c =
nextc()) ==
'\\') {
11977 else if (c == -1)
goto eof;
11983 yyerror(
"Invalid escape character syntax");
12052 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
12056 int func,
int term,
int paren,
long *nest,
12060 int has_nonascii = 0;
12063 static const char mixed_msg[] =
"%s mixed within %s source";
12065 #define mixed_error(enc1, enc2) if (!errbuf) { \
12066 size_t len = sizeof(mixed_msg) - 4; \
12067 len += strlen(rb_enc_name(enc1)); \
12068 len += strlen(rb_enc_name(enc2)); \
12069 errbuf = ALLOCA_N(char, len); \
12070 snprintf(errbuf, len, mixed_msg, \
12071 rb_enc_name(enc1), \
12072 rb_enc_name(enc2)); \
12075 #define mixed_escape(beg, enc1, enc2) do { \
12076 const char *pos = lex_p; \
12078 mixed_error((enc1), (enc2)); \
12082 while ((c =
nextc()) != -1) {
12083 if (paren && c == paren) {
12086 else if (c == term) {
12087 if (!nest || !*nest) {
12095 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
12100 else if (c ==
'\\') {
12101 const char *beg =
lex_p - 1;
12106 if (func & STR_FUNC_EXPAND)
continue;
12115 if ((func & STR_FUNC_EXPAND) == 0) {
12122 if (has_nonascii && enc != *encp) {
12128 if (c == -1)
return -1;
12130 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
12133 if (func & STR_FUNC_REGEXP) {
12137 if (has_nonascii && enc != *encp) {
12142 else if (func & STR_FUNC_EXPAND) {
12144 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
12147 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
12150 else if (c != term && !(paren && c == paren)) {
12160 if (enc != *encp) {
12173 if (enc != *encp) {
12184 #define NEW_STRTERM(func, term, paren) \
12185 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
12191 if (!
NIL_P(parser->delayed)) {
12192 ptrdiff_t
len =
lex_p - parser->tokp;
12197 parser->tokp =
lex_p;
12201 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
12203 #define flush_string_content(enc) ((void)(enc))
12210 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
12211 #define SPECIAL_PUNCT(idx) ( \
12212 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
12213 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
12214 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
12215 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
12216 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
12224 #undef SPECIAL_PUNCT
12230 if (c <= 0x20 || 0x7e < c)
return 0;
12231 return (ruby_global_name_punct_bits[(c - 0x20) / 32] >> (c % 32)) & 1;
12244 if ((c = *p) ==
'-') {
12253 if ((c = *p) ==
'@') {
12273 int func = (int)quote->nd_func;
12285 if (c == term && !quote->nd_nest) {
12286 if (func & STR_FUNC_QWORDS) {
12287 quote->nd_func = -1;
12349 while ((c =
nextc()) != -1 && c != term) {
12396 line = here->nd_orig;
12410 const char *eos,
long len,
int indent)
12416 while (*p &&
ISSPACE(*p)) p++;
12419 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
12420 return strncmp(eos, p, len) == 0;
12427 if (!
NIL_P(parser->delayed))
12430 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
12433 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
12435 #define dispatch_heredoc_end() ((void)0)
12441 int c,
func, indent = 0;
12442 const char *eos, *
p, *pend;
12451 if ((c =
nextc()) == -1) {
12455 if (
NIL_P(parser->delayed)) {
12460 ((len =
lex_p - parser->tokp) > 0 &&
12461 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
12484 switch (pend[-1]) {
12486 if (--pend == p || pend[-1] !=
'\r') {
12500 if (
nextc() == -1) {
12518 if (parser->
eofp)
goto error;
12528 if ((c =
nextc()) == -1)
goto error;
12545 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
12550 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
12557 yyerror(
"formal argument must be local variable");
12575 if (len > 5 && name[nlen = len - 5] ==
'-') {
12576 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
12579 if (len > 4 && name[nlen = len - 4] ==
'-') {
12582 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
12583 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
12598 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
12615 for (i = 0; i < n; ++
i) {
12653 case 't':
case 'T':
12659 case 'f':
case 'F':
12682 static const char *
12690 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
12691 return str + i + 1;
12696 if (i + 1 >= len)
return 0;
12697 if (str[i+1] !=
'-') {
12700 else if (str[i-1] !=
'-') {
12704 return str + i + 2;
12718 VALUE name = 0, val = 0;
12719 const char *beg, *end, *vbeg, *vend;
12720 #define str_copy(_s, _p, _n) ((_s) \
12721 ? (void)(rb_str_resize((_s), (_n)), \
12722 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
12723 : (void)((_s) = STR_NEW((_p), (_n))))
12725 if (len <= 7)
return FALSE;
12729 len = end - beg - 3;
12740 for (; len > 0 && *str; str++, --
len) {
12742 case '\'':
case '"':
case ':':
case ';':
12747 for (beg = str; len > 0; str++, --
len) {
12749 case '\'':
case '"':
case ':':
case ';':
12757 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
12759 if (*str !=
':')
continue;
12761 do str++;
while (--len > 0 &&
ISSPACE(*str));
12764 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
12765 if (*str ==
'\\') {
12777 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
12780 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
12785 for (i = 0; i < n; ++
i) {
12786 if (s[i] ==
'-') s[
i] =
'_';
12793 n = (*p->
length)(parser, vbeg, n);
12799 }
while (++p < magic_comments +
numberof(magic_comments));
12813 const char *beg = str;
12817 if (send - str <= 6)
return;
12819 case 'C':
case 'c': str += 6;
continue;
12820 case 'O':
case 'o': str += 5;
continue;
12821 case 'D':
case 'd': str += 4;
continue;
12822 case 'I':
case 'i': str += 3;
continue;
12823 case 'N':
case 'n': str += 2;
continue;
12824 case 'G':
case 'g': str += 1;
continue;
12825 case '=':
case ':':
12838 if (++str >= send)
return;
12841 if (*str !=
'=' && *str !=
':')
return;
12846 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
12862 (
unsigned char)
lex_p[0] == 0xbb &&
12863 (
unsigned char)
lex_p[1] == 0xbf) {
12877 #define IS_ARG() (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
12878 #define IS_END() (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)
12879 #define IS_BEG() (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)
12880 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
12881 #define IS_LABEL_POSSIBLE() ((lex_state == EXPR_BEG && !cmd_state) || IS_ARG())
12882 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
12885 #define ambiguous_operator(op, syn) ( \
12886 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
12887 rb_warning0("even though it seems like "syn""))
12889 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
12891 #define warn_balanced(op, syn) ((void) \
12892 (last_state != EXPR_CLASS && last_state != EXPR_DOT && \
12893 last_state != EXPR_FNAME && last_state != EXPR_ENDFN && \
12894 last_state != EXPR_ENDARG && \
12895 space_seen && !ISSPACE(c) && \
12896 (ambiguous_operator(op, syn), 0)))
12902 int space_seen = 0;
12908 int fallthru =
FALSE;
12934 switch (c =
nextc()) {
12942 case ' ':
case '\t':
case '\f':
case '\r':
12946 while ((c =
nextc())) {
12948 case ' ':
case '\t':
case '\f':
case '\r':
12957 ripper_dispatch_scan_event(parser,
tSP);
12970 ripper_dispatch_scan_event(parser,
tCOMMENT);
12991 while ((c =
nextc())) {
12993 case ' ':
case '\t':
case '\f':
case '\r':
12998 if ((c =
nextc()) !=
'.') {
13011 parser->tokp =
lex_p;
13014 goto normal_newline;
13023 if ((c =
nextc()) ==
'*') {
13024 if ((c =
nextc()) ==
'=') {
13040 rb_warning0(
"`*' interpreted as argument prefix");
13084 int first_p =
TRUE;
13093 ripper_dispatch_scan_event(parser,
tEMBDOC);
13102 if (c !=
'=')
continue;
13103 if (strncmp(
lex_p,
"end", 3) == 0 &&
13122 if ((c =
nextc()) ==
'=') {
13123 if ((c =
nextc()) ==
'=') {
13132 else if (c ==
'>') {
13145 (!
IS_ARG() || space_seen)) {
13147 if (token)
return token;
13156 if ((c =
nextc()) ==
'>') {
13163 if ((c =
nextc()) ==
'=') {
13182 if ((c =
nextc()) ==
'=') {
13186 if ((c =
nextc()) ==
'=') {
13254 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
13271 else if (c ==
'\\') {
13300 if ((c =
nextc()) ==
'&') {
13302 if ((c =
nextc()) ==
'=') {
13310 else if (c ==
'=') {
13317 rb_warning0(
"`&' interpreted as argument prefix");
13336 if ((c =
nextc()) ==
'|') {
13338 if ((c =
nextc()) ==
'=') {
13423 if ((c =
nextc()) ==
'.') {
13424 if ((c =
nextc()) ==
'.') {
13432 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
13438 case '0':
case '1':
case '2':
case '3':
case '4':
13439 case '5':
case '6':
case '7':
case '8':
case '9':
13441 int is_float, seen_point, seen_e, nondigit;
13443 is_float = seen_point = seen_e = nondigit = 0;
13446 if (c ==
'-' || c ==
'+') {
13451 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
13454 if (c ==
'x' || c ==
'X') {
13460 if (nondigit)
break;
13467 }
while ((c =
nextc()) != -1);
13471 if (
toklen() == start) {
13474 else if (nondigit)
goto trailing_uc;
13478 if (c ==
'b' || c ==
'B') {
13481 if (c ==
'0' || c ==
'1') {
13484 if (nondigit)
break;
13488 if (c !=
'0' && c !=
'1')
break;
13491 }
while ((c =
nextc()) != -1);
13495 if (
toklen() == start) {
13498 else if (nondigit)
goto trailing_uc;
13502 if (c ==
'd' || c ==
'D') {
13508 if (nondigit)
break;
13515 }
while ((c =
nextc()) != -1);
13519 if (
toklen() == start) {
13522 else if (nondigit)
goto trailing_uc;
13530 if (c ==
'o' || c ==
'O') {
13533 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
13537 if (c >=
'0' && c <=
'7') {
13542 if (nondigit)
break;
13546 if (c < '0' || c >
'9')
break;
13547 if (c >
'7')
goto invalid_octal;
13550 }
while ((c =
nextc()) != -1);
13554 if (nondigit)
goto trailing_uc;
13563 if (c >
'7' && c <=
'9') {
13565 yyerror(
"Invalid octal digit");
13567 else if (c ==
'.' || c ==
'e' || c ==
'E') {
13579 case '0':
case '1':
case '2':
case '3':
case '4':
13580 case '5':
case '6':
case '7':
case '8':
case '9':
13586 if (nondigit)
goto trailing_uc;
13587 if (seen_point || seen_e) {
13592 if (c0 == -1 || !
ISDIGIT(c0)) {
13620 if (c !=
'-' && c !=
'+')
continue;
13626 if (nondigit)
goto decode_num;
13641 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
13647 if (
errno == ERANGE) {
13705 if ((c =
nextc()) ==
'=') {
13726 if ((c =
nextc()) ==
'=') {
13751 if ((c =
nextc()) !=
'@') {
13778 if ((c =
nextc()) ==
']') {
13779 if ((c =
nextc()) ==
'=') {
13791 else if (
IS_ARG() && space_seen) {
13825 ripper_dispatch_scan_event(parser,
tSP);
13839 if (c == -1 || !
ISALNUM(c)) {
13846 yyerror(
"unknown type of %string");
13850 if (c == -1 || term == -1) {
13855 if (term ==
'(') term =
')';
13856 else if (term ==
'[') term =
']';
13857 else if (term ==
'{') term =
'}';
13858 else if (term ==
'<') term =
'>';
13896 yyerror(
"unknown type of %string");
13900 if ((c =
nextc()) ==
'=') {
13982 case '1':
case '2':
case '3':
13983 case '4':
case '5':
case '6':
13984 case '7':
case '8':
case '9':
13989 }
while (c != -1 &&
ISDIGIT(c));
14035 ripper_dispatch_scan_event(parser,
k__END__);
14058 switch (
tok()[0]) {
14059 case '@':
case '$':
14063 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
14076 switch (
tok()[0]) {
14083 if (
tok()[1] ==
'@')
14150 if (kw->
id[0] != kw->
id[1])
14203 if (!
NIL_P(parser->delayed)) {
14204 ripper_dispatch_delayed_token(parser, t);
14208 ripper_dispatch_scan_event(parser, t);
14250 if (orig == (
NODE*)1)
return;
14259 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
14266 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
14271 NODE *end, *h = head, *nd;
14273 if (tail == 0)
return head;
14275 if (h == 0)
return tail;
14314 tail->nd_end = tail;
14316 end->nd_next = tail;
14317 h->nd_end = tail->nd_end;
14327 if (list == 0)
return NEW_LIST(item);
14328 if (list->nd_next) {
14329 last = list->nd_next->nd_end;
14335 list->nd_alen += 1;
14337 list->nd_next->nd_end = last->nd_next;
14347 if (head->nd_next) {
14348 last = head->nd_next->nd_end;
14354 head->nd_alen += tail->nd_alen;
14355 last->nd_next = tail;
14356 if (tail->nd_next) {
14357 head->nd_next->nd_end = tail->nd_next->nd_end;
14360 head->nd_next->nd_end = tail;
14369 if (
NIL_P(tail))
return 1;
14388 if (!head)
return tail;
14389 if (!tail)
return head;
14416 tail->nd_lit = head->nd_lit;
14420 else if (
NIL_P(tail->nd_lit)) {
14421 head->nd_alen += tail->nd_alen - 1;
14422 head->nd_next->nd_end->nd_next = tail->nd_next;
14423 head->nd_next->nd_end = tail->nd_next->nd_end;
14428 tail->nd_head =
NEW_STR(tail->nd_lit);
14592 # define assignable_result(x) get_value(lhs)
14593 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
14595 # define assignable_result(x) (x)
14599 yyerror(
"Can't change the value of self");
14602 yyerror(
"Can't assign to nil");
14605 yyerror(
"Can't assign to true");
14608 yyerror(
"Can't assign to false");
14611 yyerror(
"Can't assign to __FILE__");
14614 yyerror(
"Can't assign to __LINE__");
14617 yyerror(
"Can't assign to __ENCODING__");
14651 yyerror(
"dynamic constant assignment");
14660 #undef assignable_result
14661 #undef parser_yyerror
14664 #define LVAR_USED ((int)1 << (sizeof(int) * CHAR_BIT - 1))
14669 if (idUScore == name)
return name;
14672 yyerror(
"duplicated argument name");
14684 yyerror(
"duplicated argument name");
14723 id &= ~ID_SCOPE_MASK;
14752 if (!node2)
return node1;
14755 if (node1->nd_head)
14756 node1->nd_head =
arg_concat(node1->nd_head, node2);
14768 node1->nd_body =
list_concat(node1->nd_body, node2);
14777 if (!node1)
return NEW_LIST(node2);
14782 node1->nd_head =
arg_append(node1->nd_head, node2);
14803 if (!lhs)
return 0;
14815 lhs->nd_value = rhs;
14820 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
14851 if (!cond)
yyerror(
"void value expression");
14856 while (node->nd_next) {
14857 node = node->nd_next;
14859 node = node->nd_head;
14863 node = node->nd_body;
14867 if (!node->nd_body) {
14868 node = node->nd_else;
14871 else if (!node->nd_else) {
14872 node = node->nd_body;
14876 node = node->nd_else;
14882 node = node->nd_2nd;
14896 const char *useless = 0;
14903 switch (node->nd_mid) {
14934 useless =
"a variable";
14937 useless =
"a constant";
14944 useless =
"a literal";
14969 useless =
"defined?";
14977 rb_warnS(
"possibly useless use of %s in void context", useless);
14990 if (!node->nd_next)
return;
14992 node = node->nd_next;
14999 NODE **n = &node, *n1 = node;
15001 *n = n1 = n1->nd_body;
15009 NODE *node = *body;
15015 #define subnodes(n1, n2) \
15016 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
15017 (!node->n2) ? (body = &node->n1, 1) : \
15018 (reduce_nodes(&node->n1), body = &node->n2, 1))
15028 *body = node = node->nd_stts;
15032 *body = node = node->nd_body;
15036 body = &node->nd_end->nd_head;
15042 body = &node->nd_body;
15051 if (node->nd_else) {
15052 body = &node->nd_resq;
15072 yyerror(
"multiple assignment in conditional");
15086 if (!node->nd_value)
return 1;
15087 switch (
nd_type(node->nd_value)) {
15094 parser_warn(node->nd_value,
"found = in conditional, should be ==");
15123 NODE *node, *next, *head;
15125 for (node = *rootnode; node; node = next) {
15129 next = node->nd_next;
15130 head = node->nd_head;
15133 switch (type =
nd_type(head)) {
15136 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
15141 head->nd_lit = val;
15156 if (node == 0)
return 0;
15164 return cond0(parser, node);
15170 if (!node)
return 1;
15191 if (node == 0)
return 0;
15198 rb_warn0(
"string literal in condition");
15208 node->nd_1st =
cond0(parser, node->nd_1st);
15209 node->nd_2nd =
cond0(parser, node->nd_2nd);
15214 node->nd_beg =
range_op(parser, node->nd_beg);
15215 node->nd_end =
range_op(parser, node->nd_end);
15248 if (node == 0)
return 0;
15249 return cond0(parser, node);
15257 NODE *node = left, *second;
15258 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
15261 node->nd_2nd =
NEW_NODE(type, second, right, 0);
15264 return NEW_NODE(type, left, right, 0);
15281 if (node->nd_next == 0) {
15282 node = node->nd_head;
15312 switch (
TYPE(node->nd_lit)) {
15332 node2->nd_head = node1;
15345 node =
NEW_ARGS(m ? m->nd_plen : 0, o);
15346 i1 = m ? m->nd_next : 0;
15351 node->nd_next->nd_next =
NEW_ARGS_AUX(p->nd_pid, p->nd_plen);
15370 if (!local->
used)
return;
15374 if (cnt != local->
vars->
pos) {
15375 rb_bug(
"local->used->pos != local->vars->pos");
15377 for (i = 0; i <
cnt; ++
i) {
15378 if (!v[i] || (u[i] &
LVAR_USED))
continue;
15379 if (idUScore == v[i])
continue;
15422 for (i = 0; i <
cnt; i++) {
15423 buf[
i] = src->
tbl[
i];
15436 if (cnt <= 0)
return 0;
15467 vars =
lvtbl->vars;
15468 args =
lvtbl->args;
15469 used =
lvtbl->used;
15474 if (used) used = used->
prev;
15490 static const struct vtable *
15498 return lvtbl->args;
15506 if ((tmp =
lvtbl->used) != 0) {
15522 while (
lvtbl->args != lvargs) {
15524 if (!
lvtbl->args) {
15545 args =
lvtbl->args;
15546 vars =
lvtbl->vars;
15547 used =
lvtbl->used;
15560 if (used) used = used->
prev;
15613 "regexp encoding option '%c' differs from source encoding '%s'",
15642 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
15648 const char *s = (
const char *)name;
15665 rb_warningS(
"named capture conflicts a local variable - %s",
15745 NODE *scope = node;
15748 if (!node)
return node;
15752 node = node->nd_body;
15756 node = node->nd_body;
15763 prelude->nd_body = node;
15764 scope->nd_body = prelude;
15767 scope->nd_body = node;
15777 NODE *scope = node;
15780 if (!node)
return node;
15784 node = node->nd_body;
15788 node = node->nd_body;
15804 prelude->nd_body = node;
15805 scope->nd_body = prelude;
15808 scope->nd_body = node;
15814 static const struct {
15838 #define op_tbl_count numberof(op_tbl)
15840 #ifndef ENABLE_SELECTOR_NAMESPACE
15841 #define ENABLE_SELECTOR_NAMESPACE 0
15848 #if ENABLE_SELECTOR_NAMESPACE
15860 #if ENABLE_SELECTOR_NAMESPACE
15867 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
15869 if (key1->id == key2->id && key1->klass == key2->klass) {
15876 ivar2_hash(
struct ivar2_key *
key)
15878 return (key->id << 8) ^ (key->klass >> 2);
15892 #if ENABLE_SELECTOR_NAMESPACE
15923 if (m >= e)
return 0;
15927 else if (*m ==
'-') {
15941 return m == e ? mb + 1 : 0;
15959 const char *m =
name;
15960 const char *e = m +
len;
15961 int localid =
FALSE;
15963 if (!m || len <= 0)
return FALSE;
15973 if (*++m ==
'@') ++m;
15978 case '<': ++m;
break;
15979 case '=':
if (*++m ==
'>') ++m;
break;
15986 case '>':
case '=': ++m;
break;
15992 case '~': ++m;
break;
15993 case '=':
if (*++m ==
'=') ++m;
break;
15994 default:
return FALSE;
15999 if (*++m ==
'*') ++m;
16002 case '+':
case '-':
16003 if (*++m ==
'@') ++m;
16006 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
16011 if (*++m !=
']')
return FALSE;
16012 if (*++m ==
'=') ++m;
16016 if (len == 1)
return TRUE;
16018 case '=':
case '~': ++m;
break;
16019 default:
return FALSE;
16031 case '!':
case '?':
case '=': ++m;
16052 const char *m =
name;
16053 const char *e = m +
len;
16064 fake_str.
as.
heap.ptr = (
char *)name;
16066 str = (
VALUE)&fake_str;
16112 if (*
op_tbl[i].name == *m &&
16113 strcmp(
op_tbl[i].name, m) == 0) {
16120 if (m[last] ==
'=') {
16150 if (m - name < len)
id =
ID_JUNK;
16157 for (; m <= name +
len; ++m) {
16158 if (!
ISASCII(*m))
goto mbstr;
16222 name[0] = (char)
id;
16245 if (
RBASIC(str)->klass == 0)
16256 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
16263 if (
RBASIC(str)->klass == 0)
16276 if (!str)
return 0;
16378 parser->parser_ruby_sourcefile_string =
Qnil;
16379 parser->delayed =
Qnil;
16381 parser->result =
Qnil;
16382 parser->parsing_thread =
Qnil;
16383 parser->toplevel_p =
TRUE;
16392 #define parser_mark ripper_parser_mark
16393 #define parser_free ripper_parser_free
16411 rb_gc_mark(p->parser_ruby_sourcefile_string);
16433 prev = local->
prev;
16447 size_t size =
sizeof(*p);
16449 if (!ptr)
return 0;
16452 size +=
sizeof(*local);
16477 #undef rb_reserved_word
16561 yydebug =
RTEST(flag);
16566 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
16567 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
16568 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
16569 (n)->u3.cnt = (c), (p))
16586 void *ptr =
xcalloc(nelem, size);
16597 if (ptr && (n = parser->
heap) !=
NULL) {
16599 if (n->
u1.
node == ptr) {
16616 while ((n = *prev) !=
NULL) {
16617 if (n->u1.node == ptr) {
16630 #ifdef RIPPER_DEBUG
16631 extern int rb_is_pointer_to_heap(
VALUE);
16637 if (x ==
Qfalse)
return x;
16638 if (x ==
Qtrue)
return x;
16639 if (x ==
Qnil)
return x;
16644 if (!rb_is_pointer_to_heap(x))
16657 return ((
NODE *)x)->nd_rval;
16666 #define validate(x) ((x) = get_value(x))
16678 return rb_funcall(parser->value, mid, 1, a);
16686 return rb_funcall(parser->value, mid, 2, a, b);
16695 return rb_funcall(parser->value, mid, 3, a, b, c);
16705 return rb_funcall(parser->value, mid, 4, a, b, c, d);
16716 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
16719 static const struct kw_assoc {
16722 } keyword_to_name[] = {
16775 keyword_id_to_str(
ID id)
16777 const struct kw_assoc *a;
16779 for (a = keyword_to_name; a->id; a++) {
16786 #undef ripper_id2sym
16798 if ((name = keyword_id_to_str(
id))) {
16811 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
16829 ripper_get_value(
VALUE v)
16836 return nd->nd_rval;
16840 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
16845 va_start(args, fmt);
16852 ripper_warn0(
struct parser_params *parser,
const char *fmt)
16858 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
16866 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
16874 ripper_warning0(
struct parser_params *parser,
const char *fmt)
16880 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
16893 ripper_s_allocate(
VALUE klass)
16905 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
16921 VALUE src, fname, lineno;
16924 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
16934 if (
NIL_P(fname)) {
16942 parser->parser_ruby_sourcefile_string = fname;
16949 struct ripper_args {
16956 ripper_parse0(
VALUE parser_v)
16962 ripper_yyparse((
void*)parser);
16963 return parser->result;
16967 ripper_ensure(
VALUE parser_v)
16972 parser->parsing_thread =
Qnil;
16983 ripper_parse(
VALUE self)
16988 if (!ripper_initialized_p(parser)) {
16991 if (!
NIL_P(parser->parsing_thread)) {
16998 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
17000 return parser->result;
17011 ripper_column(
VALUE self)
17017 if (!ripper_initialized_p(parser)) {
17020 if (
NIL_P(parser->parsing_thread))
return Qnil;
17032 ripper_filename(
VALUE self)
17037 if (!ripper_initialized_p(parser)) {
17040 return parser->parser_ruby_sourcefile_string;
17051 ripper_lineno(
VALUE self)
17056 if (!ripper_initialized_p(parser)) {
17059 if (
NIL_P(parser->parsing_thread))
return Qnil;
17063 #ifdef RIPPER_DEBUG
17085 InitVM_ripper(
void)
17108 #ifdef RIPPER_DEBUG
#define STRNCASECMP(s1, s2, n)
RUBY_EXTERN VALUE rb_cString
void rb_define_global_const(const char *, VALUE)
char * parser_ruby_sourcefile
#define RSTRING_LEN(string)
static NODE * call_bin_op_gen(struct parser_params *, NODE *, ID, NODE *)
struct local_vars * parser_lvtbl
static YYSIZE_T yytnamerr(char *yyres, const char *yystr)
VALUE rb_ary_unshift(VALUE ary, VALUE item)
static ID ripper_token2eventid(int tok)
static ID internal_id_gen(struct parser_params *)
int rb_enc_codelen(int c, rb_encoding *enc)
#define NEW_OP_ASGN_AND(i, val)
#define YY_REDUCE_PRINT(Rule)
#define shadowing_lvar(name)
#define MBCLEN_CHARFOUND_P(ret)
static void arg_ambiguous_gen(struct parser_params *parser)
static long parser_encode_length(struct parser_params *parser, const char *name, long len)
#define RE_OPTION_ENCODING_IDX(o)
#define NEW_OP_ASGN1(p, id, a)
int onig_foreach_name(regex_t *reg, int(*func)(const UChar *, const UChar *, int, int *, regex_t *, void *), void *arg)
void * rb_parser_malloc(struct parser_params *parser, size_t size)
static void Init_id(void)
void rb_bug(const char *fmt,...)
#define mixed_escape(beg, enc1, enc2)
static const yytype_uint8 yyr2[]
static NODE * attrset_gen(struct parser_params *, NODE *, ID)
static const struct kwtable * reserved_word(const char *, unsigned int)
#define rb_gc_mark_locations(start, end)
size_t strlen(const char *)
VALUE rb_reg_compile(VALUE str, int options, const char *sourcefile, int sourceline)
VALUE parser_lex_nextline
VALUE rb_make_exception(int argc, VALUE *argv)
#define scan_oct(s, l, e)
static NODE * negate_lit(NODE *)
#define dispatch_heredoc_end()
static NODE * node_assign_gen(struct parser_params *, NODE *, NODE *)
int parser_ruby__end__seen
static void ripper_init_eventids2(VALUE self)
static void local_push_gen(struct parser_params *, int)
static int vtable_size(const struct vtable *tbl)
#define formal_argument(id)
const struct kwtable * rb_reserved_word(const char *str, unsigned int len)
VALUE rb_range_new(VALUE, VALUE, int)
#define YY_STACK_PRINT(Bottom, Top)
static NODE * arg_concat_gen(struct parser_params *, NODE *, NODE *)
static NODE * evstr2dstr_gen(struct parser_params *, NODE *)
static void yy_reduce_print(YYSTYPE *yyvsp, int yyrule, struct parser_params *parser)
static int token_info_has_nonspaces(struct parser_params *parser, const char *token)
static NODE * arg_blk_pass(NODE *, NODE *)
#define IS_LABEL_POSSIBLE()
#define is_asgn_or_id(id)
static void reg_fragment_setenc_gen(struct parser_params *, VALUE, int)
int parser_compile_for_eval
int parser_token_info_enabled
#define parser_precise_mbclen()
static ID formal_argument_gen(struct parser_params *, ID)
static int parser_read_escape(struct parser_params *parser, int flags, rb_encoding **encp)
static VALUE reg_compile_gen(struct parser_params *, VALUE, int)
VALUE op_sym[tLAST_TOKEN]
static ID register_symid(ID, const char *, long, rb_encoding *)
unsigned short int yytype_uint16
static VALUE yycompile0(VALUE arg, int tracing)
VALUE rb_str_cat(VALUE, const char *, long)
ID rb_intern_str(VALUE str)
VALUE rb_reg_check_preprocess(VALUE)
#define RE_OPTION_ENCODING(e)
NODE * rb_parser_while_loop(VALUE vparser, NODE *node, int chop, int split)
static ID * vtable_tblcpy(ID *buf, const struct vtable *src)
#define RFLOAT_VALUE(val)
#define set_yylval_str(x)
static const yytype_uint16 yyr1[]
#define set_yylval_literal(x)
#define TypedData_Wrap_Struct(klass, data_type, sval)
#define yytable_value_is_error(yytable_value)
#define ADD2HEAP(n, c, p)
VALUE rb_parser_encoding(VALUE vparser)
#define TypedData_Get_Struct(obj, type, data_type, sval)
#define literal_concat(h, t)
static void block_dup_check_gen(struct parser_params *, NODE *, NODE *)
stack_type parser_cmdarg_stack
VALUE rb_external_str_new_with_enc(const char *ptr, long len, rb_encoding *)
static int lvar_defined_gen(struct parser_params *, ID)
VALUE rb_enc_from_encoding(rb_encoding *encoding)
static ID * local_tbl_gen(struct parser_params *)
VALUE rb_ary_push(VALUE ary, VALUE item)
ID rb_intern3(const char *name, long len, rb_encoding *enc)
#define NEW_CLASS(n, b, s)
NODE * rb_parser_compile_file(volatile VALUE vparser, const char *f, VALUE file, int start)
unsigned short int yytype_uint16
static int parser_yylex(struct parser_params *parser)
rb_encoding * rb_enc_compatible(VALUE str1, VALUE str2)
static VALUE INT2NUM(int v)
static NODE * new_evstr_gen(struct parser_params *, NODE *)
static int parser_regx_options(struct parser_params *)
VALUE rb_funcall(VALUE, ID, int,...)
Calls a method.
#define RSTRING_PTR(string)
static void set_file_encoding(struct parser_params *parser, const char *str, const char *send)
static NODE * newline_node(NODE *)
int rb_enc_str_coderange(VALUE)
void rb_raise(VALUE exc, const char *fmt,...)
#define YY_SYMBOL_PRINT(Title, Type, Value, Location)
static const yytype_uint16 yyprhs[]
#define block_dup_check(n1, n2)
VALUE rb_enc_associate(VALUE obj, rb_encoding *enc)
static void warn_unused_var(struct parser_params *parser, struct local_vars *local)
const rb_data_type_t * parent
void rb_compile_warn(const char *file, int line, const char *fmt,...)
#define attrset(node, id)
void rb_define_alloc_func(VALUE, rb_alloc_func_t)
static NODE * assignable_gen(struct parser_params *, ID, NODE *)
int rb_enc_mbclen(const char *p, const char *e, rb_encoding *enc)
st_index_t rb_str_hash(VALUE)
#define RARRAY_LEN(ARRAY)
#define nd_set_type(n, t)
static size_t parser_memsize(const void *ptr)
nd_set_line($$,$< num >2)
static void fixpos(NODE *, NODE *)
void rb_gc_mark(VALUE ptr)
static NODE * gettable_gen(struct parser_params *, ID)
#define rb_enc_islower(c, enc)
static struct symbols global_symbols
static NODE * cond0(struct parser_params *, NODE *)
void rb_gc_mark_parser(void)
#define reg_compile(str, options)
static int local_var_gen(struct parser_params *, ID)
#define str_copy(_s, _p, _n)
static NODE * match_op_gen(struct parser_params *, NODE *, NODE *)
static void yy_stack_print(yytype_int16 *yybottom, yytype_int16 *yytop)
#define NEW_IASGN(v, val)
rb_encoding * rb_utf8_encoding(void)
static int dvar_defined_gen(struct parser_params *, ID, int)
static NODE * new_yield_gen(struct parser_params *, NODE *)
#define RE_OPTION_ENCODING_NONE(o)
static char * parser_tokspace(struct parser_params *parser, int n)
int rb_enc_symname2_p(const char *name, long len, rb_encoding *enc)
#define tokadd_string(f, t, p, n, e)
VALUE rb_str_buf_append(VALUE, VALUE)
#define is_identchar(p, e, enc)
static void parser_heredoc_restore(struct parser_params *parser, NODE *here)
static NODE * remove_begin(NODE *)
static int is_global_name_punct(const char c)
NODE * rb_parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
#define st_init_numtable_with_size
#define ENC_CODERANGE_7BIT
const char * rb_obj_classname(VALUE)
void rb_gc_force_recycle(VALUE p)
static const yytype_int16 yytable[]
NODE * parser_deferred_nodes
VALUE rb_str_buf_cat(VALUE, const char *, long)
static int dyna_in_block_gen(struct parser_params *)
static const rb_data_type_t parser_data_type
#define logop(type, node1, node2)
static rb_encoding * must_be_ascii_compatible(VALUE s)
static void dyna_pop_1(struct parser_params *parser)
void rb_exc_raise(VALUE mesg)
block_command ripper_id2sym('.')
#define parser_warn(node, mesg)
#define RB_TYPE_P(obj, type)
static void warn_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define NEW_ATTRASGN(r, m, a)
#define MEMZERO(p, type, n)
static VALUE coverage(const char *f, int n)
static void parser_free(void *ptr)
enum lex_state_e parser_lex_state
int rb_is_local_id(ID id)
VALUE parser_lex_lastline
void * rb_parser_realloc(struct parser_params *parser, void *ptr, size_t size)
static void parser_initialize(struct parser_params *parser)
#define scan_hex(s, l, e)
static void parser_set_encode(struct parser_params *parser, const char *name)
#define lex_goto_eol(parser)
VALUE rb_hash_aset(VALUE hash, VALUE key, VALUE val)
void rb_compile_error_append(const char *fmt,...)
VALUE rb_parser_get_yydebug(VALUE self)
#define NEW_PRELUDE(p, b)
const struct vtable * vars
RUBY_EXTERN VALUE rb_cObject
#define match_op(node1, node2)
#define NEW_STRTERM(func, term, paren)
static const struct magic_comment magic_comments[]
#define rb_enc_isascii(c, enc)
#define reg_named_capture_assign(regexp, match)
#define st_init_table_with_size
struct parser_params * parser
static void magic_comment_encoding(struct parser_params *parser, const char *name, const char *val)
void * rb_parser_calloc(struct parser_params *parser, size_t nelem, size_t size)
char * ruby_strdup(const char *)
VALUE rb_get_coverages(void)
static int e_option_supplied(struct parser_params *parser)
static struct vtable * vtable_alloc(struct vtable *prev)
#define token_info_push(token)
VALUE rb_obj_as_string(VALUE)
int rb_ascii8bit_encindex(void)
#define NEW_ARGSPUSH(a, b)
static int is_special_global_name(const char *m, const char *e, rb_encoding *enc)
static const yytype_uint16 yyrline[]
#define NEW_UNLESS(c, t, e)
RUBY_EXTERN VALUE rb_mKernel
VALUE rb_thread_current(void)
VALUE rb_define_class(const char *name, VALUE super)
Defines a top-level class.
static int reg_fragment_check_gen(struct parser_params *, VALUE, int)
long(* rb_magic_comment_length_t)(struct parser_params *parser, const char *name, long len)
NODE * rb_compile_string(const char *f, VALUE s, int line)
void rb_define_const(VALUE, const char *, VALUE)
VALUE ruby_suppress_tracing(VALUE(*func)(VALUE, int), VALUE arg, int always)
rb_atomic_t cnt[RUBY_NSIG]
static void no_blockarg(struct parser_params *parser, NODE *node)
static NODE * splat_array(NODE *)
static void parser_mark(void *ptr)
static void parser_tokadd(struct parser_params *parser, int c)
static YYSIZE_T yystrlen(char *yystr) const
enum node_type nodetype(NODE *node)
char ary[RSTRING_EMBED_LEN_MAX+1]
static VALUE lex_get_str(struct parser_params *parser, VALUE s)
#define ALLOCA_N(type, n)
static int assign_in_cond(struct parser_params *parser, NODE *node)
#define warn_balanced(op, syn)
#define ENC_CODERANGE_UNKNOWN
static void void_expr_gen(struct parser_params *, NODE *)
static int reg_named_capture_assign_iter(const OnigUChar *name, const OnigUChar *name_end, int back_num, int *back_refs, OnigRegex regex, void *arg0)
#define RUBY_FUNC_EXPORTED
#define MEMCPY(p1, p2, type, n)
#define ENC_CODERANGE_BROKEN
#define rb_enc_isupper(c, enc)
VALUE rb_enc_associate_index(VALUE obj, int idx)
int rb_parse_in_main(void)
const char * parser_lex_pend
static void parser_tokaddmbc(struct parser_params *parser, int c, rb_encoding *enc)
#define set_yylval_num(x)
#define parser_encoding_name()
token_info * parser_token_info
VALUE rb_make_backtrace(void)
static NODE * list_append_gen(struct parser_params *, NODE *, NODE *)
#define NEW_WHEN(c, t, e)
static const yytype_int16 yycheck[]
VALUE rb_str_resize(VALUE, long)
static int literal_node(NODE *node)
static int dvar_curr_gen(struct parser_params *, ID)
#define NEW_DASGN(v, val)
#define flush_string_content(enc)
int rb_str_hash_cmp(VALUE, VALUE)
#define NEW_BLOCK_PASS(b)
int rb_dvar_defined(ID id)
static int parser_yyerror(struct parser_params *, const char *)
#define REALLOC_N(var, type, n)
static const yytype_int16 yypgoto[]
SSL_METHOD *(* func)(void)
static int parser_tokadd_mbchar(struct parser_params *parser, int c)
void rb_gc_mark_symbols(void)
int rb_symname_p(const char *name)
VALUE rb_sprintf(const char *format,...)
static VALUE debug_lines(const char *f)
#define NEW_OP_ASGN_OR(i, val)
static void yydestruct(char *yymsg, int yytype, YYSTYPE *yyvaluep, struct parser_params *parser) const
#define rb_enc_isspace(c, enc)
#define parser_warning(node, mesg)
int rb_obj_respond_to(VALUE, ID, int)
#define mixed_error(enc1, enc2)
#define RB_GC_GUARD(object)
RUBY_FUNC_EXPORTED const unsigned int ruby_global_name_punct_bits[(0x7e-0x20+31)/32]
#define reg_fragment_setenc(str, options)
static int value_expr_gen(struct parser_params *, NODE *)
static const yytype_int16 yyrhs[]
const char * rb_id2name(ID id)
static int parser_whole_match_p(struct parser_params *parser, const char *eos, long len, int indent)
#define NEW_RESCUE(b, res, e)
static const char * magic_comment_marker(const char *str, long len)
int rb_scan_args(int argc, const VALUE *argv, const char *fmt,...)
static const yytype_uint8 yytranslate[]
unsigned char buf[MIME_BUF_SIZE]
static char * parser_newtok(struct parser_params *parser)
static void fixup_nodes(NODE **)
rb_encoding * rb_usascii_encoding(void)
#define rb_enc_isalnum(c, enc)
#define rb_enc_isdigit(c, enc)
unsigned char yytype_uint8
#define list_concat(h, t)
static int options(unsigned char *cp)
#define heredoc_restore(n)
stack_type parser_cond_stack
static const struct @44 op_tbl[]
static NODE * arg_append_gen(struct parser_params *, NODE *, NODE *)
#define heredoc_identifier()
#define rb_enc_ispunct(c, enc)
static void ripper_init_eventids1(VALUE self)
static VALUE parser_str_new(const char *p, long n, rb_encoding *enc, int func, rb_encoding *enc0)
void rb_mark_tbl(st_table *tbl)
static int parser_magic_comment(struct parser_params *parser, const char *str, long len)
#define NEW_ENSURE(b, en)
#define token_info_pop(token)
static int arg_var_gen(struct parser_params *, ID)
register unsigned int len
#define call_bin_op(recv, id, arg1)
#define RARRAY_PTR(ARRAY)
static NODE * new_args_gen(struct parser_params *, NODE *, NODE *, ID, NODE *, ID)
#define rb_enc_asciicompat(enc)
VALUE rb_ensure(VALUE(*b_proc)(ANYARGS), VALUE data1, VALUE(*e_proc)(ANYARGS), VALUE data2)
int rb_char_to_option_kcode(int c, int *option, int *kcode)
struct RString::@28::@29 heap
#define assignable_result(x)
static int parser_tokadd_escape(struct parser_params *parser, rb_encoding **encp)
static int parser_tokadd_string(struct parser_params *, int, int, int, long *, rb_encoding **)
#define ENCODING_IS_ASCII8BIT(obj)
#define dvar_defined_get(id)
#define rb_enc_isalpha(c, enc)
static int vtable_included(const struct vtable *tbl, ID id)
ID rb_intern(const char *name)
static VALUE lex_io_gets(struct parser_params *parser, VALUE io)
NODE * rb_compile_cstr(const char *f, const char *s, int len, int line)
#define parser_is_identchar()
#define set_yylval_node(x)
static void yy_symbol_value_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static void vtable_free(struct vtable *tbl)
#define reg_fragment_check(str, options)
VALUE rb_usascii_str_new2(const char *)
int rb_const_defined_at(VALUE, ID)
#define ENCODING_GET(obj)
rb_encoding * rb_enc_get(VALUE obj)
static void reduce_nodes_gen(struct parser_params *, NODE **)
#define YYSTACK_ALLOC_MAXIMUM
#define set_yylval_name(x)
#define NEW_GASGN(v, val)
static NODE * reg_named_capture_assign_gen(struct parser_params *parser, VALUE regexp, NODE *match)
static void parser_pushback(struct parser_params *parser, int c)
int rb_enc_symname_p(const char *name, rb_encoding *enc)
static const yytype_uint16 yydefact[]
static VALUE ULONG2NUM(unsigned long v)
static int parser_here_document(struct parser_params *, NODE *)
static NODE * ret_args_gen(struct parser_params *, NODE *)
void rb_set_errinfo(VALUE err)
static void dyna_pop_gen(struct parser_params *, const struct vtable *)
NODE * parser_lex_strterm
top_stmts dispatch0(stmts_new)
static void local_pop_gen(struct parser_params *)
#define NEW_UNTIL(c, b, n)
#define aryset(node1, node2)
static const struct st_hash_type symhash
#define list_append(l, i)
#define tokaddmbc(c, enc)
#define STR_NEW3(p, n, e, func)
static const yytype_int16 yypact[]
void rb_compile_warning(const char *file, int line, const char *fmt,...)
static void warning_unless_e_option(struct parser_params *parser, NODE *node, const char *str)
#define yypact_value_is_default(yystate)
static int symbols_i(VALUE sym, ID value, VALUE ary)
static void parser_prepare(struct parser_params *parser)
static struct parser_params * parser_new(void)
#define NEW_WHILE(c, b, n)
static void yy_symbol_print(FILE *yyoutput, int yytype, YYSTYPE const *const yyvaluep, struct parser_params *parser)
static void rb_backref_error_gen(struct parser_params *, NODE *)
#define NEW_POSTARG(i, v)
static NODE * logop_gen(struct parser_params *, enum node_type, NODE *, NODE *)
VALUE rb_parser_new(void)
static void void_stmts_gen(struct parser_params *, NODE *)
struct rb_encoding_entry * list
static const yytype_int16 yydefgoto[]
rb_encoding * rb_filesystem_encoding(void)
#define NEW_CVASGN(v, val)
static int yylex(void *, void *)
#define NEW_MATCH3(r, n2)
#define NEW_OP_ASGN2(r, i, o, val)
#define node_assign(node1, node2)
#define NEW_OPT_ARG(i, v)
static unsigned int hash(const char *str, unsigned int len)
static int parser_parse_string(struct parser_params *, NODE *)
VALUE rb_ary_new2(long capa)
#define ruby_eval_tree_begin
#define is_instance_id(id)
NODE * rb_parser_append_print(VALUE vparser, NODE *node)
ID rb_intern2(const char *name, long len)
const char * parser_lex_pbeg
static NODE * cond_gen(struct parser_params *, NODE *)
NODE * rb_parser_compile_cstr(volatile VALUE vparser, const char *f, const char *s, int len, int line)
VALUE rb_enc_str_new(const char *, long, rb_encoding *)
static NODE * list_concat_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_const_get_at(VALUE, ID)
static int comment_at_top(struct parser_params *parser)
const char * parser_lex_p
static void dispose_string(VALUE str)
static int parser_nextc(struct parser_params *parser)
#define read_escape(flags, e)
static const char *const yytname[]
static char * yystpcpy(char *yydest, const char *yysrc)
int parser_ruby_sourceline
#define call_uni_op(recv, id)
static ID shadowing_lvar_gen(struct parser_params *, ID)
static int token_info_get_column(struct parser_params *parser, const char *token)
unsigned char yytype_uint8
#define NEW_RESBODY(a, ex, n)
#define NEW_ARGSCAT(a, b)
#define NEW_DASGN_CURR(v, val)
static NODE * yycompile(struct parser_params *parser, const char *f, int line)
static void vtable_add(struct vtable *tbl, ID id)
int rb_is_class_id(ID id)
#define NEW_CALL(r, m, a)
static const yytype_uint16 yystos[]
rb_encoding * rb_ascii8bit_encoding(void)
int rb_enc_find_index(const char *name)
static NODE * aryset_gen(struct parser_params *, NODE *, NODE *)
VALUE rb_parser_end_seen_p(VALUE vparser)
static int parser_heredoc_identifier(struct parser_params *parser)
int rb_is_const_id(ID id)
static int parser_tokadd_utf8(struct parser_params *parser, rb_encoding **encp, int string_literal, int symbol_literal, int regexp_literal)
static const struct vtable * dyna_push_gen(struct parser_params *)
#define CONST_ID(var, str)
static NODE * block_append_gen(struct parser_params *, NODE *, NODE *)
#define new_args(f, o, r, p, b)
#define NEW_MATCH2(n1, n2)
VALUE rb_parser_set_yydebug(VALUE self, VALUE flag)
static void new_bv_gen(struct parser_params *, ID)
#define assignable(id, node)
VALUE rb_cstr_to_inum(const char *str, int base, int badcheck)
static NODE * range_op(struct parser_params *parser, NODE *node)
#define rb_enc_mbcput(c, buf, enc)
#define NEW_DEFN(i, a, d, p)
static int parser_tok_hex(struct parser_params *parser, size_t *numlen)
int rb_parse_in_eval(void)
NODE * rb_compile_file(const char *f, VALUE file, int start)
VALUE rb_str_buf_new(long)
VALUE rb_usascii_str_new(const char *, long)
#define rb_node_newnode(type, a1, a2, a3)
VALUE rb_vsprintf(const char *, va_list)
#define block_append(h, t)
VALUE(* parser_lex_gets)(struct parser_params *, VALUE)
#define RTYPEDDATA_TYPE(v)
#define NEW_LASGN(v, val)
struct token_info token_info
static NODE * literal_concat_gen(struct parser_params *, NODE *, NODE *)
static NODE * call_uni_op_gen(struct parser_params *, NODE *, ID)
static int literal_concat0(struct parser_params *, VALUE, VALUE)
int rb_is_instance_id(ID id)
void rb_parser_free(struct parser_params *parser, void *ptr)
#define ENCODING_SET(obj, i)
int rb_local_defined(ID id)
#define IS_LABEL_SUFFIX(n)
NODE * parser_eval_tree_begin
static int match(VALUE str, VALUE pat, VALUE hash, int(*cb)(VALUE, VALUE))
static NODE * parser_compile_string(volatile VALUE vparser, const char *f, VALUE s, int line)
void rb_define_method(VALUE klass, const char *name, VALUE(*func)(ANYARGS), int argc)
VALUE rb_str_append(VALUE, VALUE)
static void parser_set_token_info(struct parser_params *parser, const char *name, const char *val)
#define NEW_NODE(t, a0, a1, a2)
#define NEW_ARGS_AUX(r, b)
int rb_memcicmp(const void *, const void *, long)
void(* rb_magic_comment_setter_t)(struct parser_params *parser, const char *name, const char *val)
static VALUE lex_getline(struct parser_params *parser)
VALUE rb_sym_all_symbols(void)
#define rb_enc_prev_char(s, p, e, enc)
static NODE * node_newnode(struct parser_params *, enum node_type, VALUE, VALUE, VALUE)
#define whole_match_p(e, l, i)
unsigned long ruby_scan_oct(const char *, size_t, size_t *)
static int yysyntax_error(YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken)
static int parser_peek_variable_name(struct parser_params *parser)
VALUE rb_attr_get(VALUE, ID)
#define is_attrset_id(id)
static int local_id_gen(struct parser_params *, ID)
#define SPECIAL_PUNCT(idx)
#define NEW_CDECL(v, val, path)
#define rb_backref_error(n)
#define NEW_DEFS(r, i, a, d)
VALUE rb_enc_str_buf_cat(VALUE str, const char *ptr, long len, rb_encoding *enc)
#define rb_warningS(fmt, a)
#define YYSTACK_RELOCATE(Stack_alloc, Stack)
rb_encoding * rb_enc_from_index(int index)
VALUE rb_str_new(const char *, long)