50 #define YYBISON_VERSION "2.3"
53 #define YYSKELETON_NAME "yacc.c"
59 #define YYLSP_NEEDED 0
190 #define keyword_class 258
191 #define keyword_module 259
192 #define keyword_def 260
193 #define keyword_undef 261
194 #define keyword_begin 262
195 #define keyword_rescue 263
196 #define keyword_ensure 264
197 #define keyword_end 265
198 #define keyword_if 266
199 #define keyword_unless 267
200 #define keyword_then 268
201 #define keyword_elsif 269
202 #define keyword_else 270
203 #define keyword_case 271
204 #define keyword_when 272
205 #define keyword_while 273
206 #define keyword_until 274
207 #define keyword_for 275
208 #define keyword_break 276
209 #define keyword_next 277
210 #define keyword_redo 278
211 #define keyword_retry 279
212 #define keyword_in 280
213 #define keyword_do 281
214 #define keyword_do_cond 282
215 #define keyword_do_block 283
216 #define keyword_do_LAMBDA 284
217 #define keyword_return 285
218 #define keyword_yield 286
219 #define keyword_super 287
220 #define keyword_self 288
221 #define keyword_nil 289
222 #define keyword_true 290
223 #define keyword_false 291
224 #define keyword_and 292
225 #define keyword_or 293
226 #define keyword_not 294
227 #define modifier_if 295
228 #define modifier_unless 296
229 #define modifier_while 297
230 #define modifier_until 298
231 #define modifier_rescue 299
232 #define keyword_alias 300
233 #define keyword_defined 301
234 #define keyword_BEGIN 302
235 #define keyword_END 303
236 #define keyword__LINE__ 304
237 #define keyword__FILE__ 305
238 #define keyword__ENCODING__ 306
239 #define tIDENTIFIER 307
243 #define tCONSTANT 311
248 #define tSTRING_CONTENT 316
251 #define tBACK_REF 319
252 #define tREGEXP_END 320
277 #define tLPAREN_ARG 345
281 #define tLBRACE_ARG 349
286 #define tSTRING_BEG 354
287 #define tXSTRING_BEG 355
288 #define tREGEXP_BEG 356
289 #define tWORDS_BEG 357
290 #define tQWORDS_BEG 358
291 #define tSTRING_DBEG 359
292 #define tSTRING_DVAR 360
293 #define tSTRING_END 361
296 #define tUMINUS_NUM 364
298 #define idRespond_to 366
301 #define id_core_set_method_alias 369
302 #define id_core_set_variable_alias 370
303 #define id_core_undef_method 371
304 #define id_core_define_method 372
305 #define id_core_define_singleton_method 373
306 #define id_core_set_postexe 374
307 #define tLAST_TOKEN 375
317 #define YYERROR_VERBOSE 1
318 #define YYSTACK_USE_ALLOCA 0
332 #define numberof(array) (int)(sizeof(array) / sizeof((array)[0]))
334 #define YYMALLOC(size) rb_parser_malloc(parser, (size))
335 #define YYREALLOC(ptr, size) rb_parser_realloc(parser, (ptr), (size))
336 #define YYCALLOC(nelem, size) rb_parser_calloc(parser, (nelem), (size))
337 #define YYFREE(ptr) rb_parser_free(parser, (ptr))
338 #define malloc YYMALLOC
339 #define realloc YYREALLOC
340 #define calloc YYCALLOC
345 #define REGISTER_SYMID(id, name) register_symid((id), (name), strlen(name), enc)
349 #define is_notop_id(id) ((id)>tLAST_TOKEN)
350 #define is_local_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_LOCAL)
351 #define is_global_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_GLOBAL)
352 #define is_instance_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_INSTANCE)
353 #define is_attrset_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_ATTRSET)
354 #define is_const_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CONST)
355 #define is_class_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_CLASS)
356 #define is_junk_id(id) (is_notop_id(id)&&((id)&ID_SCOPE_MASK)==ID_JUNK)
358 #define is_asgn_or_id(id) ((is_notop_id(id)) && \
359 (((id)&ID_SCOPE_MASK) == ID_GLOBAL || \
360 ((id)&ID_SCOPE_MASK) == ID_INSTANCE || \
361 ((id)&ID_SCOPE_MASK) == ID_CLASS))
380 # define BITSTACK_PUSH(stack, n) ((stack) = ((stack)<<1)|((n)&1))
381 # define BITSTACK_POP(stack) ((stack) = (stack) >> 1)
382 # define BITSTACK_LEXPOP(stack) ((stack) = ((stack) >> 1) | ((stack) & 1))
383 # define BITSTACK_SET_P(stack) ((stack)&1)
385 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
386 #define COND_POP() BITSTACK_POP(cond_stack)
387 #define COND_LEXPOP() BITSTACK_LEXPOP(cond_stack)
388 #define COND_P() BITSTACK_SET_P(cond_stack)
390 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
391 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
392 #define CMDARG_LEXPOP() BITSTACK_LEXPOP(cmdarg_stack)
393 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
409 #define DVARS_INHERIT ((void*)1)
410 #define DVARS_TOPSCOPE NULL
411 #define DVARS_SPECIAL_P(tbl) (!POINTER_P(tbl))
412 #define POINTER_P(val) ((VALUE)(val) & ~(VALUE)3)
435 if (
VTBL_DEBUG) printf(
"vtable_alloc: %p\n", (
void *)tbl);
442 if (
VTBL_DEBUG)printf(
"vtable_free: %p\n", (
void *)tbl);
455 rb_bug(
"vtable_add: vtable is not allocated (%p)", (
void *)tbl);
472 for (i = 0; i < tbl->
pos; i++) {
473 if (tbl->
tbl[i] ==
id) {
557 VALUE parser_ruby_sourcefile_string;
565 VALUE parsing_thread;
570 #define UTF8_ENC() (parser->utf8 ? parser->utf8 : \
571 (parser->utf8 = rb_utf8_encoding()))
572 #define STR_NEW(p,n) rb_enc_str_new((p),(n),parser->enc)
573 #define STR_NEW0() rb_enc_str_new(0,0,parser->enc)
574 #define STR_NEW2(p) rb_enc_str_new((p),strlen(p),parser->enc)
575 #define STR_NEW3(p,n,e,func) parser_str_new((p),(n),(e),(func),parser->enc)
576 #define ENC_SINGLE(cr) ((cr)==ENC_CODERANGE_7BIT)
577 #define TOK_INTERN(mb) rb_intern3(tok(), toklen(), parser->enc)
580 #define yyerror(msg) parser_yyerror(parser, (msg))
582 #define YYLEX_PARAM parser
584 #define lex_strterm (parser->parser_lex_strterm)
585 #define lex_state (parser->parser_lex_state)
586 #define cond_stack (parser->parser_cond_stack)
587 #define cmdarg_stack (parser->parser_cmdarg_stack)
588 #define class_nest (parser->parser_class_nest)
589 #define paren_nest (parser->parser_paren_nest)
590 #define lpar_beg (parser->parser_lpar_beg)
591 #define in_single (parser->parser_in_single)
592 #define in_def (parser->parser_in_def)
593 #define compile_for_eval (parser->parser_compile_for_eval)
594 #define cur_mid (parser->parser_cur_mid)
595 #define in_defined (parser->parser_in_defined)
596 #define tokenbuf (parser->parser_tokenbuf)
597 #define tokidx (parser->parser_tokidx)
598 #define toksiz (parser->parser_toksiz)
599 #define lex_input (parser->parser_lex_input)
600 #define lex_lastline (parser->parser_lex_lastline)
601 #define lex_nextline (parser->parser_lex_nextline)
602 #define lex_pbeg (parser->parser_lex_pbeg)
603 #define lex_p (parser->parser_lex_p)
604 #define lex_pend (parser->parser_lex_pend)
605 #define heredoc_end (parser->parser_heredoc_end)
606 #define command_start (parser->parser_command_start)
607 #define deferred_nodes (parser->parser_deferred_nodes)
608 #define lex_gets_ptr (parser->parser_lex_gets_ptr)
609 #define lex_gets (parser->parser_lex_gets)
610 #define lvtbl (parser->parser_lvtbl)
611 #define ruby__end__seen (parser->parser_ruby__end__seen)
612 #define ruby_sourceline (parser->parser_ruby_sourceline)
613 #define ruby_sourcefile (parser->parser_ruby_sourcefile)
614 #define current_enc (parser->enc)
615 #define yydebug (parser->parser_yydebug)
618 #define ruby_eval_tree (parser->parser_eval_tree)
619 #define ruby_eval_tree_begin (parser->parser_eval_tree_begin)
620 #define ruby_debug_lines (parser->debug_lines)
621 #define ruby_coverage (parser->coverage)
624 static int yylex(
void*,
void*);
627 #define yyparse ruby_yyparse
630 #define rb_node_newnode(type, a1, a2, a3) node_newnode(parser, (type), (a1), (a2), (a3))
633 #define cond(node) cond_gen(parser, (node))
635 #define logop(type,node1,node2) logop_gen(parser, (type), (node1), (node2))
643 #define value_expr(node) value_expr_gen(parser, (node) = remove_begin(node))
644 #define void_expr0(node) void_expr_gen(parser, (node))
645 #define void_expr(node) void_expr0((node) = remove_begin(node))
647 #define void_stmts(node) void_stmts_gen(parser, (node))
649 #define reduce_nodes(n) reduce_nodes_gen(parser,(n))
651 #define block_dup_check(n1,n2) block_dup_check_gen(parser,(n1),(n2))
654 #define block_append(h,t) block_append_gen(parser,(h),(t))
656 #define list_append(l,i) list_append_gen(parser,(l),(i))
658 #define list_concat(h,t) list_concat_gen(parser,(h),(t))
660 #define arg_append(h,t) arg_append_gen(parser,(h),(t))
662 #define arg_concat(h,t) arg_concat_gen(parser,(h),(t))
664 #define literal_concat(h,t) literal_concat_gen(parser,(h),(t))
667 #define new_evstr(n) new_evstr_gen(parser,(n))
669 #define evstr2dstr(n) evstr2dstr_gen(parser,(n))
673 #define call_bin_op(recv,id,arg1) call_bin_op_gen(parser, (recv),(id),(arg1))
675 #define call_uni_op(recv,id) call_uni_op_gen(parser, (recv),(id))
678 #define new_args(f,o,r,p,b) new_args_gen(parser, (f),(o),(r),(p),(b))
682 #define ret_args(node) ret_args_gen(parser, (node))
685 #define new_yield(node) new_yield_gen(parser, (node))
688 #define gettable(id) gettable_gen(parser,(id))
690 #define assignable(id,node) assignable_gen(parser, (id), (node))
693 #define aryset(node1,node2) aryset_gen(parser, (node1), (node2))
695 #define attrset(node,id) attrset_gen(parser, (node), (id))
698 #define rb_backref_error(n) rb_backref_error_gen(parser,(n))
700 #define node_assign(node1, node2) node_assign_gen(parser, (node1), (node2))
703 #define match_op(node1,node2) match_op_gen(parser, (node1), (node2))
706 #define local_tbl() local_tbl_gen(parser)
711 #define reg_compile(str,options) reg_compile_gen(parser, (str), (options))
713 #define reg_fragment_setenc(str,options) reg_fragment_setenc_gen(parser, (str), (options))
715 #define reg_fragment_check(str,options) reg_fragment_check_gen(parser, (str), (options))
717 #define reg_named_capture_assign(regexp,match) reg_named_capture_assign_gen(parser,(regexp),(match))
719 #define get_id(id) (id)
720 #define get_value(val) (val)
722 #define remove_begin(node) (node)
723 #define rb_dvar_defined(id) 0
724 #define rb_local_defined(id) 0
725 static ID ripper_get_id(
VALUE);
726 #define get_id(id) ripper_get_id(id)
728 #define get_value(val) ripper_get_value(val)
730 #define assignable(lhs,node) assignable_gen(parser, (lhs))
732 #define id_is_var(id) id_is_var_gen(parser, (id))
736 #define formal_argument(id) formal_argument_gen(parser, (id))
738 #define shadowing_lvar(name) shadowing_lvar_gen(parser, (name))
740 #define new_bv(id) new_bv_gen(parser, (id))
743 #define local_push(top) local_push_gen(parser,(top))
745 #define local_pop() local_pop_gen(parser)
747 #define local_var(id) local_var_gen(parser, (id));
749 #define arg_var(id) arg_var_gen(parser, (id))
751 #define local_id(id) local_id_gen(parser, (id))
753 #define internal_id() internal_id_gen(parser)
756 #define dyna_push() dyna_push_gen(parser)
758 #define dyna_pop(node) dyna_pop_gen(parser, (node))
760 #define dyna_in_block() dyna_in_block_gen(parser)
761 #define dyna_var(id) local_var(id)
763 #define dvar_defined(id) dvar_defined_gen(parser, (id), 0)
764 #define dvar_defined_get(id) dvar_defined_gen(parser, (id), 1)
766 #define dvar_curr(id) dvar_curr_gen(parser, (id))
769 #define lvar_defined(id) lvar_defined_gen(parser, (id))
771 #define RE_OPTION_ONCE (1<<16)
772 #define RE_OPTION_ENCODING_SHIFT 8
773 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
774 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
775 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
776 #define RE_OPTION_MASK 0xff
777 #define RE_OPTION_ARG_ENCODING_NONE 32
779 #define NODE_STRTERM NODE_ZARRAY
780 #define NODE_HEREDOC NODE_ARRAY
781 #define SIGN_EXTEND(x,n) (((1<<(n)-1)^((x)&~(~0<<(n))))-(1<<(n)-1))
782 #define nd_func u1.id
783 #if SIZEOF_SHORT == 2
784 #define nd_term(node) ((signed short)(node)->u2.id)
786 #define nd_term(node) SIGN_EXTEND((node)->u2.id, CHAR_BIT*2)
788 #define nd_paren(node) (char)((node)->u2.id >> CHAR_BIT*2)
789 #define nd_nest u3.cnt
794 #define RIPPER_VERSION "0.1.0"
798 static ID ripper_id_gets;
807 #define dispatch0(n) ripper_dispatch0(parser, TOKEN_PASTE(ripper_id_, n))
808 #define dispatch1(n,a) ripper_dispatch1(parser, TOKEN_PASTE(ripper_id_, n), (a))
809 #define dispatch2(n,a,b) ripper_dispatch2(parser, TOKEN_PASTE(ripper_id_, n), (a), (b))
810 #define dispatch3(n,a,b,c) ripper_dispatch3(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
811 #define dispatch4(n,a,b,c,d) ripper_dispatch4(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
812 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(parser, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
814 #define yyparse ripper_yyparse
816 #define ripper_intern(s) ID2SYM(rb_intern(s))
819 #define ripper_id2sym(id) ((id) < 256 && rb_ispunct(id) ? \
820 ID2SYM(id) : ripper_id2sym(id))
823 #define arg_new() dispatch0(args_new)
824 #define arg_add(l,a) dispatch2(args_add, (l), (a))
825 #define arg_add_star(l,a) dispatch2(args_add_star, (l), (a))
826 #define arg_add_block(l,b) dispatch2(args_add_block, (l), (b))
827 #define arg_add_optblock(l,b) ((b)==Qundef? (l) : dispatch2(args_add_block, (l), (b)))
828 #define bare_assoc(v) dispatch1(bare_assoc_hash, (v))
829 #define arg_add_assocs(l,b) arg_add((l), bare_assoc(b))
831 #define args2mrhs(a) dispatch1(mrhs_new_from_args, (a))
832 #define mrhs_new() dispatch0(mrhs_new)
833 #define mrhs_add(l,a) dispatch2(mrhs_add, (l), (a))
834 #define mrhs_add_star(l,a) dispatch2(mrhs_add_star, (l), (a))
836 #define mlhs_new() dispatch0(mlhs_new)
837 #define mlhs_add(l,a) dispatch2(mlhs_add, (l), (a))
838 #define mlhs_add_star(l,a) dispatch2(mlhs_add_star, (l), (a))
840 #define params_new(pars, opts, rest, pars2, blk) \
841 dispatch5(params, (pars), (opts), (rest), (pars2), (blk))
843 #define blockvar_new(p,v) dispatch2(block_var, (p), (v))
844 #define blockvar_add_star(l,a) dispatch2(block_var_add_star, (l), (a))
845 #define blockvar_add_block(l,a) dispatch2(block_var_add_block, (l), (a))
847 #define method_optarg(m,a) ((a)==Qundef ? (m) : dispatch2(method_add_arg,(m),(a)))
848 #define method_arg(m,a) dispatch2(method_add_arg,(m),(a))
849 #define method_add_block(m,b) dispatch2(method_add_block, (m), (b))
851 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
858 # define ifndef_ripper(x) (x)
860 # define ifndef_ripper(x)
864 # define rb_warn0(fmt) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt))
865 # define rb_warnI(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
866 # define rb_warnS(fmt,a) rb_compile_warn(ruby_sourcefile, ruby_sourceline, (fmt), (a))
867 # define rb_warning0(fmt) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt))
868 # define rb_warningS(fmt,a) rb_compile_warning(ruby_sourcefile, ruby_sourceline, (fmt), (a))
870 # define rb_warn0(fmt) ripper_warn0(parser, (fmt))
871 # define rb_warnI(fmt,a) ripper_warnI(parser, (fmt), (a))
872 # define rb_warnS(fmt,a) ripper_warnS(parser, (fmt), (a))
873 # define rb_warning0(fmt) ripper_warning0(parser, (fmt))
874 # define rb_warningS(fmt,a) ripper_warningS(parser, (fmt), (a))
875 static void ripper_warn0(
struct parser_params*,
const char*);
876 static void ripper_warnI(
struct parser_params*,
const char*,
int);
878 static void ripper_warnS(
struct parser_params*,
const char*,
const char*);
880 static void ripper_warning0(
struct parser_params*,
const char*);
881 static void ripper_warningS(
struct parser_params*,
const char*,
const char*);
885 static void ripper_compile_error(
struct parser_params*,
const char *fmt, ...);
886 # define rb_compile_error ripper_compile_error
887 # define compile_error ripper_compile_error
888 # define PARSER_ARG parser,
890 # define rb_compile_error rb_compile_error_with_enc
891 # define compile_error parser->nerr++,rb_compile_error_with_enc
892 # define PARSER_ARG ruby_sourcefile, ruby_sourceline, current_enc,
900 #define YYMAXDEPTH 10000
907 #define token_info_push(token) (RTEST(ruby_verbose) ? token_info_push(parser, (token)) : (void)0)
908 #define token_info_pop(token) (RTEST(ruby_verbose) ? token_info_pop(parser, (token)) : (void)0)
910 #define token_info_push(token)
911 #define token_info_pop(token)
921 #ifdef YYERROR_VERBOSE
922 # undef YYERROR_VERBOSE
923 # define YYERROR_VERBOSE 1
925 # define YYERROR_VERBOSE 0
929 #ifndef YYTOKEN_TABLE
930 # define YYTOKEN_TABLE 0
933 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
946 # define yystype YYSTYPE
947 # define YYSTYPE_IS_DECLARED 1
948 # define YYSTYPE_IS_TRIVIAL 1
971 #elif (defined __STDC__ || defined __C99__FUNC__ \
972 || defined __cplusplus || defined _MSC_VER)
991 # ifdef __SIZE_TYPE__
992 # define YYSIZE_T __SIZE_TYPE__
993 # elif defined size_t
994 # define YYSIZE_T size_t
995 # elif ! defined YYSIZE_T && (defined __STDC__ || defined __C99__FUNC__ \
996 || defined __cplusplus || defined _MSC_VER)
998 # define YYSIZE_T size_t
1000 # define YYSIZE_T unsigned int
1004 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1009 # include <libintl.h>
1010 # define YY_(msgid) dgettext ("bison-runtime", msgid)
1014 # define YY_(msgid) msgid
1019 #if ! defined lint || defined __GNUC__
1020 # define YYUSE(e) ((void) (e))
1027 # define YYID(n) (n)
1029 #if (defined __STDC__ || defined __C99__FUNC__ \
1030 || defined __cplusplus || defined _MSC_VER)
1043 #if ! defined yyoverflow || YYERROR_VERBOSE
1047 # ifdef YYSTACK_USE_ALLOCA
1048 # if YYSTACK_USE_ALLOCA
1050 # define YYSTACK_ALLOC __builtin_alloca
1051 # elif defined __BUILTIN_VA_ARG_INCR
1052 # include <alloca.h>
1054 # define YYSTACK_ALLOC __alloca
1055 # elif defined _MSC_VER
1056 # include <malloc.h>
1057 # define alloca _alloca
1059 # define YYSTACK_ALLOC alloca
1060 # if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1061 || defined __cplusplus || defined _MSC_VER)
1062 # include <stdlib.h>
1064 # define _STDLIB_H 1
1071 # ifdef YYSTACK_ALLOC
1073 # define YYSTACK_FREE(Ptr) do { ; } while (YYID (0))
1074 # ifndef YYSTACK_ALLOC_MAXIMUM
1079 # define YYSTACK_ALLOC_MAXIMUM 4032
1082 # define YYSTACK_ALLOC YYMALLOC
1083 # define YYSTACK_FREE YYFREE
1084 # ifndef YYSTACK_ALLOC_MAXIMUM
1085 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1087 # if (defined __cplusplus && ! defined _STDLIB_H \
1088 && ! ((defined YYMALLOC || defined malloc) \
1089 && (defined YYFREE || defined free)))
1090 # include <stdlib.h>
1092 # define _STDLIB_H 1
1096 # define YYMALLOC malloc
1097 # if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1098 || defined __cplusplus || defined _MSC_VER)
1103 # define YYFREE free
1104 # if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \
1105 || defined __cplusplus || defined _MSC_VER)
1113 #if (! defined yyoverflow \
1114 && (! defined __cplusplus \
1115 || (defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1125 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1129 # define YYSTACK_BYTES(N) \
1130 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
1131 + YYSTACK_GAP_MAXIMUM)
1136 # if defined __GNUC__ && 1 < __GNUC__
1137 # define YYCOPY(To, From, Count) \
1138 __builtin_memcpy (To, From, (Count) * sizeof (*(From)))
1140 # define YYCOPY(To, From, Count) \
1144 for (yyi = 0; yyi < (Count); yyi++) \
1145 (To)[yyi] = (From)[yyi]; \
1156 # define YYSTACK_RELOCATE(Stack) \
1159 YYSIZE_T yynewbytes; \
1160 YYCOPY (&yyptr->Stack, Stack, yysize); \
1161 Stack = &yyptr->Stack; \
1162 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1163 yyptr += yynewbytes / sizeof (*yyptr); \
1172 #define YYLAST 10748
1175 #define YYNTOKENS 148
1179 #define YYNRULES 573
1181 #define YYNSTATES 991
1184 #define YYUNDEFTOK 2
1185 #define YYMAXUTOK 375
1187 #define YYTRANSLATE(YYX) \
1188 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1193 0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1194 147, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1195 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1196 2, 2, 146, 123, 2, 2, 2, 121, 116, 2,
1197 142, 143, 119, 117, 140, 118, 139, 120, 2, 2,
1198 2, 2, 2, 2, 2, 2, 2, 2, 111, 145,
1199 113, 109, 112, 110, 2, 2, 2, 2, 2, 2,
1200 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1201 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1202 2, 138, 2, 144, 115, 2, 141, 2, 2, 2,
1203 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1204 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1205 2, 2, 2, 136, 114, 137, 124, 2, 2, 2,
1206 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1207 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1208 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1209 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1210 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1211 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1212 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1213 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1214 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1215 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1216 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1217 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1218 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1219 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1220 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1221 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1222 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1223 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1224 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1225 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
1226 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
1227 85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
1228 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
1229 105, 106, 107, 108, 122, 125, 126, 127, 128, 129,
1230 130, 131, 132, 133, 134, 135
1238 0, 0, 3, 4, 7, 10, 12, 14, 18, 21,
1239 23, 24, 30, 35, 38, 40, 42, 46, 49, 50,
1240 55, 59, 63, 67, 70, 74, 78, 82, 86, 90,
1241 95, 97, 101, 105, 112, 118, 124, 130, 136, 140,
1242 144, 148, 152, 154, 158, 162, 164, 168, 172, 176,
1243 179, 181, 183, 185, 187, 189, 194, 199, 200, 206,
1244 209, 213, 218, 224, 229, 235, 238, 241, 244, 247,
1245 250, 252, 256, 258, 262, 264, 267, 271, 277, 280,
1246 285, 288, 293, 295, 299, 301, 305, 308, 312, 314,
1247 318, 320, 322, 327, 331, 335, 339, 343, 346, 348,
1248 350, 352, 357, 361, 365, 369, 373, 376, 378, 380,
1249 382, 385, 387, 391, 393, 395, 397, 399, 401, 403,
1250 405, 407, 409, 411, 412, 417, 419, 421, 423, 425,
1251 427, 429, 431, 433, 435, 437, 439, 441, 443, 445,
1252 447, 449, 451, 453, 455, 457, 459, 461, 463, 465,
1253 467, 469, 471, 473, 475, 477, 479, 481, 483, 485,
1254 487, 489, 491, 493, 495, 497, 499, 501, 503, 505,
1255 507, 509, 511, 513, 515, 517, 519, 521, 523, 525,
1256 527, 529, 531, 533, 535, 537, 539, 541, 543, 545,
1257 547, 549, 551, 553, 555, 557, 561, 567, 571, 577,
1258 584, 590, 596, 602, 608, 613, 617, 621, 625, 629,
1259 633, 637, 641, 645, 649, 654, 659, 662, 665, 669,
1260 673, 677, 681, 685, 689, 693, 697, 701, 705, 709,
1261 713, 717, 720, 723, 727, 731, 735, 739, 740, 745,
1262 752, 754, 756, 758, 761, 766, 769, 773, 775, 777,
1263 779, 781, 784, 789, 792, 794, 797, 800, 805, 807,
1264 808, 811, 814, 817, 819, 821, 824, 828, 833, 837,
1265 842, 845, 847, 849, 851, 853, 855, 857, 859, 861,
1266 863, 864, 869, 870, 875, 879, 883, 886, 890, 894,
1267 896, 901, 905, 907, 908, 915, 920, 924, 927, 929,
1268 932, 935, 942, 949, 950, 951, 959, 960, 961, 969,
1269 975, 980, 981, 982, 992, 993, 1000, 1001, 1002, 1011,
1270 1012, 1018, 1019, 1026, 1027, 1028, 1038, 1040, 1042, 1044,
1271 1046, 1048, 1050, 1052, 1054, 1056, 1058, 1060, 1062, 1064,
1272 1066, 1068, 1070, 1072, 1074, 1077, 1079, 1081, 1083, 1089,
1273 1091, 1094, 1096, 1098, 1100, 1104, 1106, 1110, 1112, 1117,
1274 1124, 1128, 1134, 1137, 1142, 1144, 1148, 1155, 1164, 1169,
1275 1176, 1181, 1184, 1191, 1194, 1199, 1206, 1209, 1214, 1217,
1276 1222, 1224, 1226, 1228, 1232, 1234, 1239, 1241, 1244, 1246,
1277 1250, 1252, 1254, 1255, 1256, 1261, 1266, 1268, 1272, 1276,
1278 1277, 1283, 1286, 1291, 1296, 1299, 1304, 1309, 1313, 1317,
1279 1321, 1324, 1326, 1331, 1332, 1338, 1339, 1345, 1351, 1353,
1280 1355, 1362, 1364, 1366, 1368, 1370, 1373, 1375, 1378, 1380,
1281 1382, 1384, 1386, 1388, 1390, 1392, 1395, 1399, 1403, 1407,
1282 1411, 1415, 1416, 1420, 1422, 1425, 1429, 1433, 1434, 1438,
1283 1439, 1442, 1443, 1446, 1447, 1450, 1452, 1453, 1457, 1458,
1284 1459, 1465, 1467, 1469, 1471, 1473, 1476, 1478, 1480, 1482,
1285 1484, 1488, 1490, 1492, 1495, 1498, 1500, 1502, 1504, 1506,
1286 1508, 1510, 1512, 1514, 1516, 1518, 1520, 1522, 1524, 1526,
1287 1528, 1530, 1532, 1534, 1536, 1537, 1542, 1545, 1549, 1552,
1288 1559, 1568, 1573, 1580, 1585, 1592, 1595, 1600, 1607, 1610,
1289 1615, 1618, 1623, 1625, 1626, 1628, 1630, 1632, 1634, 1636,
1290 1638, 1640, 1644, 1646, 1650, 1654, 1658, 1660, 1664, 1666,
1291 1670, 1672, 1674, 1677, 1679, 1681, 1683, 1686, 1689, 1691,
1292 1693, 1694, 1699, 1701, 1704, 1706, 1710, 1714, 1717, 1719,
1293 1721, 1723, 1725, 1727, 1729, 1731, 1733, 1735, 1737, 1739,
1294 1741, 1742, 1744, 1745, 1747, 1750, 1753, 1754, 1756, 1758,
1295 1760, 1762, 1764, 1767
1301 149, 0, -1, -1, 150, 151, -1, 152, 314, -1,
1302 321, -1, 153, -1, 152, 320, 153, -1, 1, 153,
1303 -1, 158, -1, -1, 47, 154, 136, 151, 137, -1,
1304 156, 256, 231, 259, -1, 157, 314, -1, 321, -1,
1305 158, -1, 157, 320, 158, -1, 1, 158, -1, -1,
1306 45, 180, 159, 180, -1, 45, 54, 54, -1, 45,
1307 54, 64, -1, 45, 54, 63, -1, 6, 181, -1,
1308 158, 40, 162, -1, 158, 41, 162, -1, 158, 42,
1309 162, -1, 158, 43, 162, -1, 158, 44, 158, -1,
1310 48, 136, 156, 137, -1, 160, -1, 168, 109, 163,
1311 -1, 286, 87, 163, -1, 216, 138, 191, 317, 87,
1312 163, -1, 216, 139, 52, 87, 163, -1, 216, 139,
1313 56, 87, 163, -1, 216, 85, 56, 87, 163, -1,
1314 216, 85, 52, 87, 163, -1, 287, 87, 163, -1,
1315 175, 109, 198, -1, 168, 109, 187, -1, 168, 109,
1316 198, -1, 161, -1, 175, 109, 163, -1, 175, 109,
1317 160, -1, 163, -1, 161, 37, 161, -1, 161, 38,
1318 161, -1, 39, 315, 161, -1, 123, 163, -1, 185,
1319 -1, 161, -1, 167, -1, 164, -1, 249, -1, 249,
1320 139, 311, 193, -1, 249, 85, 311, 193, -1, -1,
1321 94, 166, 237, 156, 137, -1, 310, 193, -1, 310,
1322 193, 165, -1, 216, 139, 311, 193, -1, 216, 139,
1323 311, 193, 165, -1, 216, 85, 311, 193, -1, 216,
1324 85, 311, 193, 165, -1, 32, 193, -1, 31, 193,
1325 -1, 30, 192, -1, 21, 192, -1, 22, 192, -1,
1326 170, -1, 89, 169, 316, -1, 170, -1, 89, 169,
1327 316, -1, 172, -1, 172, 171, -1, 172, 95, 174,
1328 -1, 172, 95, 174, 140, 173, -1, 172, 95, -1,
1329 172, 95, 140, 173, -1, 95, 174, -1, 95, 174,
1330 140, 173, -1, 95, -1, 95, 140, 173, -1, 174,
1331 -1, 89, 169, 316, -1, 171, 140, -1, 172, 171,
1332 140, -1, 171, -1, 173, 140, 171, -1, 283, -1,
1333 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1334 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1335 85, 56, -1, 86, 56, -1, 287, -1, 283, -1,
1336 284, -1, 216, 138, 191, 317, -1, 216, 139, 52,
1337 -1, 216, 85, 52, -1, 216, 139, 56, -1, 216,
1338 85, 56, -1, 86, 56, -1, 287, -1, 52, -1,
1339 56, -1, 86, 176, -1, 176, -1, 216, 85, 176,
1340 -1, 52, -1, 56, -1, 53, -1, 183, -1, 184,
1341 -1, 178, -1, 279, -1, 179, -1, 281, -1, 180,
1342 -1, -1, 181, 140, 182, 180, -1, 114, -1, 115,
1343 -1, 116, -1, 69, -1, 70, -1, 71, -1, 77,
1344 -1, 78, -1, 112, -1, 73, -1, 113, -1, 74,
1345 -1, 72, -1, 83, -1, 84, -1, 117, -1, 118,
1346 -1, 119, -1, 95, -1, 120, -1, 121, -1, 68,
1347 -1, 123, -1, 124, -1, 66, -1, 67, -1, 81,
1348 -1, 82, -1, 141, -1, 49, -1, 50, -1, 51,
1349 -1, 47, -1, 48, -1, 45, -1, 37, -1, 7,
1350 -1, 21, -1, 16, -1, 3, -1, 5, -1, 46,
1351 -1, 26, -1, 15, -1, 14, -1, 10, -1, 9,
1352 -1, 36, -1, 20, -1, 25, -1, 4, -1, 22,
1353 -1, 34, -1, 39, -1, 38, -1, 23, -1, 8,
1354 -1, 24, -1, 30, -1, 33, -1, 32, -1, 13,
1355 -1, 35, -1, 6, -1, 17, -1, 31, -1, 11,
1356 -1, 12, -1, 18, -1, 19, -1, 175, 109, 185,
1357 -1, 175, 109, 185, 44, 185, -1, 286, 87, 185,
1358 -1, 286, 87, 185, 44, 185, -1, 216, 138, 191,
1359 317, 87, 185, -1, 216, 139, 52, 87, 185, -1,
1360 216, 139, 56, 87, 185, -1, 216, 85, 52, 87,
1361 185, -1, 216, 85, 56, 87, 185, -1, 86, 56,
1362 87, 185, -1, 287, 87, 185, -1, 185, 79, 185,
1363 -1, 185, 80, 185, -1, 185, 117, 185, -1, 185,
1364 118, 185, -1, 185, 119, 185, -1, 185, 120, 185,
1365 -1, 185, 121, 185, -1, 185, 68, 185, -1, 122,
1366 59, 68, 185, -1, 122, 60, 68, 185, -1, 66,
1367 185, -1, 67, 185, -1, 185, 114, 185, -1, 185,
1368 115, 185, -1, 185, 116, 185, -1, 185, 69, 185,
1369 -1, 185, 112, 185, -1, 185, 73, 185, -1, 185,
1370 113, 185, -1, 185, 74, 185, -1, 185, 70, 185,
1371 -1, 185, 71, 185, -1, 185, 72, 185, -1, 185,
1372 77, 185, -1, 185, 78, 185, -1, 123, 185, -1,
1373 124, 185, -1, 185, 83, 185, -1, 185, 84, 185,
1374 -1, 185, 75, 185, -1, 185, 76, 185, -1, -1,
1375 46, 315, 186, 185, -1, 185, 110, 185, 315, 111,
1376 185, -1, 199, -1, 185, -1, 321, -1, 197, 318,
1377 -1, 197, 140, 308, 318, -1, 308, 318, -1, 142,
1378 191, 316, -1, 321, -1, 189, -1, 321, -1, 192,
1379 -1, 197, 140, -1, 197, 140, 308, 140, -1, 308,
1380 140, -1, 167, -1, 197, 196, -1, 308, 196, -1,
1381 197, 140, 308, 196, -1, 195, -1, -1, 194, 192,
1382 -1, 96, 187, -1, 140, 195, -1, 321, -1, 187,
1383 -1, 95, 187, -1, 197, 140, 187, -1, 197, 140,
1384 95, 187, -1, 197, 140, 187, -1, 197, 140, 95,
1385 187, -1, 95, 187, -1, 260, -1, 261, -1, 264,
1386 -1, 265, -1, 266, -1, 269, -1, 285, -1, 287,
1387 -1, 53, -1, -1, 217, 200, 155, 227, -1, -1,
1388 90, 161, 201, 316, -1, 89, 156, 143, -1, 216,
1389 85, 56, -1, 86, 56, -1, 92, 188, 144, -1,
1390 93, 307, 137, -1, 30, -1, 31, 142, 192, 316,
1391 -1, 31, 142, 316, -1, 31, -1, -1, 46, 315,
1392 142, 202, 161, 316, -1, 39, 142, 161, 316, -1,
1393 39, 142, 316, -1, 310, 251, -1, 250, -1, 250,
1394 251, -1, 97, 242, -1, 218, 162, 228, 156, 230,
1395 227, -1, 219, 162, 228, 156, 231, 227, -1, -1,
1396 -1, 220, 203, 162, 229, 204, 156, 227, -1, -1,
1397 -1, 221, 205, 162, 229, 206, 156, 227, -1, 222,
1398 162, 314, 254, 227, -1, 222, 314, 254, 227, -1,
1399 -1, -1, 223, 232, 25, 207, 162, 229, 208, 156,
1400 227, -1, -1, 224, 177, 288, 209, 155, 227, -1,
1401 -1, -1, 224, 83, 161, 210, 319, 211, 155, 227,
1402 -1, -1, 225, 177, 212, 155, 227, -1, -1, 226,
1403 178, 213, 290, 155, 227, -1, -1, -1, 226, 305,
1404 313, 214, 178, 215, 290, 155, 227, -1, 21, -1,
1405 22, -1, 23, -1, 24, -1, 199, -1, 7, -1,
1406 11, -1, 12, -1, 18, -1, 19, -1, 16, -1,
1407 20, -1, 3, -1, 4, -1, 5, -1, 10, -1,
1408 319, -1, 13, -1, 319, 13, -1, 319, -1, 27,
1409 -1, 231, -1, 14, 162, 228, 156, 230, -1, 321,
1410 -1, 15, 156, -1, 175, -1, 168, -1, 293, -1,
1411 89, 235, 316, -1, 233, -1, 234, 140, 233, -1,
1412 234, -1, 234, 140, 95, 293, -1, 234, 140, 95,
1413 293, 140, 234, -1, 234, 140, 95, -1, 234, 140,
1414 95, 140, 234, -1, 95, 293, -1, 95, 293, 140,
1415 234, -1, 95, -1, 95, 140, 234, -1, 295, 140,
1416 298, 140, 301, 304, -1, 295, 140, 298, 140, 301,
1417 140, 295, 304, -1, 295, 140, 298, 304, -1, 295,
1418 140, 298, 140, 295, 304, -1, 295, 140, 301, 304,
1419 -1, 295, 140, -1, 295, 140, 301, 140, 295, 304,
1420 -1, 295, 304, -1, 298, 140, 301, 304, -1, 298,
1421 140, 301, 140, 295, 304, -1, 298, 304, -1, 298,
1422 140, 295, 304, -1, 301, 304, -1, 301, 140, 295,
1423 304, -1, 303, -1, 321, -1, 238, -1, 114, 239,
1424 114, -1, 76, -1, 114, 236, 239, 114, -1, 321,
1425 -1, 145, 240, -1, 241, -1, 240, 140, 241, -1,
1426 52, -1, 292, -1, -1, -1, 243, 244, 245, 246,
1427 -1, 142, 291, 239, 316, -1, 291, -1, 107, 156,
1428 137, -1, 29, 156, 10, -1, -1, 28, 248, 237,
1429 156, 10, -1, 167, 247, -1, 249, 139, 311, 190,
1430 -1, 249, 85, 311, 190, -1, 310, 189, -1, 216,
1431 139, 311, 190, -1, 216, 85, 311, 189, -1, 216,
1432 85, 312, -1, 216, 139, 189, -1, 216, 85, 189,
1433 -1, 32, 189, -1, 32, -1, 216, 138, 191, 317,
1434 -1, -1, 136, 252, 237, 156, 137, -1, -1, 26,
1435 253, 237, 156, 10, -1, 17, 197, 228, 156, 255,
1436 -1, 231, -1, 254, -1, 8, 257, 258, 228, 156,
1437 256, -1, 321, -1, 187, -1, 198, -1, 321, -1,
1438 88, 175, -1, 321, -1, 9, 156, -1, 321, -1,
1439 282, -1, 279, -1, 281, -1, 262, -1, 62, -1,
1440 263, -1, 262, 263, -1, 99, 271, 106, -1, 100,
1441 272, 106, -1, 101, 273, 65, -1, 102, 146, 106,
1442 -1, 102, 267, 106, -1, -1, 267, 268, 146, -1,
1443 274, -1, 268, 274, -1, 103, 146, 106, -1, 103,
1444 270, 106, -1, -1, 270, 61, 146, -1, -1, 271,
1445 274, -1, -1, 272, 274, -1, -1, 273, 274, -1,
1446 61, -1, -1, 105, 275, 278, -1, -1, -1, 104,
1447 276, 277, 156, 137, -1, 54, -1, 55, -1, 57,
1448 -1, 287, -1, 98, 280, -1, 178, -1, 55, -1,
1449 54, -1, 57, -1, 98, 272, 106, -1, 59, -1,
1450 60, -1, 122, 59, -1, 122, 60, -1, 52, -1,
1451 55, -1, 54, -1, 56, -1, 57, -1, 34, -1,
1452 33, -1, 35, -1, 36, -1, 50, -1, 49, -1,
1453 51, -1, 283, -1, 284, -1, 283, -1, 284, -1,
1454 63, -1, 64, -1, 319, -1, -1, 113, 289, 162,
1455 319, -1, 1, 319, -1, 142, 291, 316, -1, 291,
1456 319, -1, 295, 140, 299, 140, 301, 304, -1, 295,
1457 140, 299, 140, 301, 140, 295, 304, -1, 295, 140,
1458 299, 304, -1, 295, 140, 299, 140, 295, 304, -1,
1459 295, 140, 301, 304, -1, 295, 140, 301, 140, 295,
1460 304, -1, 295, 304, -1, 299, 140, 301, 304, -1,
1461 299, 140, 301, 140, 295, 304, -1, 299, 304, -1,
1462 299, 140, 295, 304, -1, 301, 304, -1, 301, 140,
1463 295, 304, -1, 303, -1, -1, 56, -1, 55, -1,
1464 54, -1, 57, -1, 292, -1, 52, -1, 293, -1,
1465 89, 235, 316, -1, 294, -1, 295, 140, 294, -1,
1466 52, 109, 187, -1, 52, 109, 216, -1, 297, -1,
1467 298, 140, 297, -1, 296, -1, 299, 140, 296, -1,
1468 119, -1, 95, -1, 300, 52, -1, 300, -1, 116,
1469 -1, 96, -1, 302, 52, -1, 140, 303, -1, 321,
1470 -1, 285, -1, -1, 142, 306, 161, 316, -1, 321,
1471 -1, 308, 318, -1, 309, -1, 308, 140, 309, -1,
1472 187, 88, 187, -1, 58, 187, -1, 52, -1, 56,
1473 -1, 53, -1, 52, -1, 56, -1, 53, -1, 183,
1474 -1, 52, -1, 53, -1, 183, -1, 139, -1, 85,
1475 -1, -1, 320, -1, -1, 147, -1, 315, 143, -1,
1476 315, 144, -1, -1, 147, -1, 140, -1, 145, -1,
1477 147, -1, 319, -1, 320, 145, -1, -1
1483 0, 782, 782, 782, 813, 824, 833, 841, 849, 855,
1484 857, 856, 880, 913, 924, 933, 941, 949, 955, 955,
1485 963, 971, 982, 992, 1000, 1009, 1018, 1031, 1044, 1053,
1486 1065, 1066, 1076, 1105, 1126, 1143, 1160, 1171, 1188, 1198,
1487 1207, 1216, 1225, 1228, 1237, 1249, 1250, 1258, 1266, 1274,
1488 1282, 1285, 1297, 1298, 1301, 1302, 1311, 1323, 1322, 1344,
1489 1353, 1365, 1374, 1386, 1395, 1407, 1416, 1425, 1433, 1441,
1490 1451, 1452, 1462, 1463, 1473, 1481, 1489, 1497, 1506, 1514,
1491 1523, 1531, 1540, 1548, 1559, 1560, 1570, 1578, 1588, 1596,
1492 1606, 1610, 1614, 1622, 1630, 1638, 1646, 1658, 1668, 1680,
1493 1689, 1698, 1706, 1714, 1722, 1730, 1743, 1756, 1767, 1775,
1494 1778, 1786, 1794, 1804, 1805, 1806, 1807, 1812, 1823, 1824,
1495 1827, 1835, 1838, 1846, 1846, 1856, 1857, 1858, 1859, 1860,
1496 1861, 1862, 1863, 1864, 1865, 1866, 1867, 1868, 1869, 1870,
1497 1871, 1872, 1873, 1874, 1875, 1876, 1877, 1878, 1879, 1880,
1498 1881, 1882, 1883, 1884, 1887, 1887, 1887, 1888, 1888, 1889,
1499 1889, 1889, 1890, 1890, 1890, 1890, 1891, 1891, 1891, 1891,
1500 1892, 1892, 1892, 1893, 1893, 1893, 1893, 1894, 1894, 1894,
1501 1894, 1895, 1895, 1895, 1895, 1896, 1896, 1896, 1896, 1897,
1502 1897, 1897, 1897, 1898, 1898, 1901, 1910, 1920, 1949, 1980,
1503 2006, 2023, 2040, 2057, 2068, 2079, 2090, 2104, 2118, 2126,
1504 2134, 2142, 2150, 2158, 2166, 2175, 2184, 2192, 2200, 2208,
1505 2216, 2224, 2232, 2240, 2248, 2256, 2264, 2272, 2280, 2288,
1506 2299, 2307, 2315, 2323, 2331, 2339, 2347, 2355, 2355, 2365,
1507 2375, 2381, 2393, 2394, 2398, 2406, 2416, 2426, 2427, 2430,
1508 2431, 2432, 2436, 2444, 2454, 2463, 2471, 2481, 2490, 2499,
1509 2499, 2511, 2521, 2525, 2531, 2539, 2547, 2561, 2577, 2591,
1510 2606, 2616, 2617, 2618, 2619, 2620, 2621, 2622, 2623, 2624,
1511 2633, 2632, 2657, 2657, 2666, 2674, 2682, 2690, 2703, 2711,
1512 2719, 2727, 2735, 2743, 2743, 2753, 2761, 2769, 2780, 2781,
1513 2792, 2796, 2808, 2820, 2820, 2820, 2831, 2831, 2831, 2842,
1514 2853, 2862, 2864, 2861, 2928, 2927, 2949, 2954, 2948, 2973,
1515 2972, 2994, 2993, 3016, 3017, 3016, 3037, 3045, 3053, 3061,
1516 3071, 3083, 3089, 3095, 3101, 3107, 3113, 3119, 3125, 3131,
1517 3137, 3147, 3153, 3158, 3159, 3166, 3171, 3174, 3175, 3188,
1518 3189, 3199, 3200, 3203, 3211, 3221, 3229, 3239, 3247, 3256,
1519 3265, 3273, 3281, 3290, 3302, 3310, 3320, 3328, 3336, 3344,
1520 3352, 3360, 3369, 3377, 3385, 3393, 3401, 3409, 3417, 3425,
1521 3433, 3443, 3444, 3450, 3459, 3468, 3479, 3480, 3490, 3497,
1522 3506, 3514, 3520, 3523, 3520, 3541, 3549, 3559, 3563, 3570,
1523 3569, 3590, 3606, 3615, 3626, 3635, 3645, 3655, 3663, 3674,
1524 3685, 3693, 3701, 3716, 3715, 3735, 3734, 3755, 3767, 3768,
1525 3771, 3790, 3793, 3801, 3809, 3812, 3816, 3819, 3827, 3830,
1526 3831, 3839, 3842, 3859, 3860, 3861, 3871, 3881, 3908, 3973,
1527 3982, 3993, 4000, 4010, 4018, 4028, 4037, 4048, 4055, 4066,
1528 4073, 4084, 4091, 4102, 4109, 4138, 4140, 4139, 4156, 4162,
1529 4155, 4181, 4189, 4197, 4205, 4208, 4219, 4220, 4221, 4222,
1530 4225, 4255, 4256, 4257, 4265, 4275, 4276, 4277, 4278, 4279,
1531 4282, 4283, 4284, 4285, 4286, 4287, 4288, 4291, 4304, 4314,
1532 4322, 4332, 4333, 4336, 4345, 4344, 4352, 4364, 4374, 4382,
1533 4390, 4398, 4406, 4414, 4422, 4430, 4438, 4446, 4454, 4462,
1534 4470, 4478, 4486, 4495, 4504, 4513, 4522, 4531, 4542, 4543,
1535 4550, 4559, 4578, 4585, 4598, 4610, 4622, 4630, 4646, 4654,
1536 4670, 4671, 4674, 4687, 4698, 4699, 4702, 4719, 4723, 4733,
1537 4743, 4743, 4772, 4773, 4783, 4790, 4800, 4808, 4818, 4819,
1538 4820, 4823, 4824, 4825, 4826, 4829, 4830, 4831, 4834, 4839,
1539 4846, 4847, 4850, 4851, 4854, 4857, 4860, 4861, 4862, 4865,
1540 4866, 4869, 4870, 4874
1544 #if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE
1549 "$end",
"error",
"$undefined",
"keyword_class",
"keyword_module",
1550 "keyword_def",
"keyword_undef",
"keyword_begin",
"keyword_rescue",
1551 "keyword_ensure",
"keyword_end",
"keyword_if",
"keyword_unless",
1552 "keyword_then",
"keyword_elsif",
"keyword_else",
"keyword_case",
1553 "keyword_when",
"keyword_while",
"keyword_until",
"keyword_for",
1554 "keyword_break",
"keyword_next",
"keyword_redo",
"keyword_retry",
1555 "keyword_in",
"keyword_do",
"keyword_do_cond",
"keyword_do_block",
1556 "keyword_do_LAMBDA",
"keyword_return",
"keyword_yield",
"keyword_super",
1557 "keyword_self",
"keyword_nil",
"keyword_true",
"keyword_false",
1558 "keyword_and",
"keyword_or",
"keyword_not",
"modifier_if",
1559 "modifier_unless",
"modifier_while",
"modifier_until",
"modifier_rescue",
1560 "keyword_alias",
"keyword_defined",
"keyword_BEGIN",
"keyword_END",
1561 "keyword__LINE__",
"keyword__FILE__",
"keyword__ENCODING__",
1562 "tIDENTIFIER",
"tFID",
"tGVAR",
"tIVAR",
"tCONSTANT",
"tCVAR",
"tLABEL",
1563 "tINTEGER",
"tFLOAT",
"tSTRING_CONTENT",
"tCHAR",
"tNTH_REF",
1564 "tBACK_REF",
"tREGEXP_END",
"tUPLUS",
"tUMINUS",
"tPOW",
"tCMP",
"tEQ",
1565 "tEQQ",
"tNEQ",
"tGEQ",
"tLEQ",
"tANDOP",
"tOROP",
"tMATCH",
"tNMATCH",
1566 "tDOT2",
"tDOT3",
"tAREF",
"tASET",
"tLSHFT",
"tRSHFT",
"tCOLON2",
1567 "tCOLON3",
"tOP_ASGN",
"tASSOC",
"tLPAREN",
"tLPAREN_ARG",
"tRPAREN",
1568 "tLBRACK",
"tLBRACE",
"tLBRACE_ARG",
"tSTAR",
"tAMPER",
"tLAMBDA",
1569 "tSYMBEG",
"tSTRING_BEG",
"tXSTRING_BEG",
"tREGEXP_BEG",
"tWORDS_BEG",
1570 "tQWORDS_BEG",
"tSTRING_DBEG",
"tSTRING_DVAR",
"tSTRING_END",
"tLAMBEG",
1571 "tLOWEST",
"'='",
"'?'",
"':'",
"'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
1572 "'-'",
"'*'",
"'/'",
"'%'",
"tUMINUS_NUM",
"'!'",
"'~'",
"idNULL",
1573 "idRespond_to",
"idIFUNC",
"idCFUNC",
"id_core_set_method_alias",
1574 "id_core_set_variable_alias",
"id_core_undef_method",
1575 "id_core_define_method",
"id_core_define_singleton_method",
1576 "id_core_set_postexe",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"'.'",
"','",
1577 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
1578 "@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"@2",
"bodystmt",
1579 "compstmt",
"stmts",
"stmt",
"@3",
"command_asgn",
"expr",
"expr_value",
1580 "command_call",
"block_command",
"cmd_brace_block",
"@4",
"command",
1581 "mlhs",
"mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
1582 "mlhs_post",
"mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fsym",
1583 "fitem",
"undef_list",
"@5",
"op",
"reswords",
"arg",
"@6",
"arg_value",
1584 "aref_args",
"paren_args",
"opt_paren_args",
"opt_call_args",
1585 "call_args",
"command_args",
"@7",
"block_arg",
"opt_block_arg",
"args",
1586 "mrhs",
"primary",
"@8",
"@9",
"@10",
"@11",
"@12",
"@13",
"@14",
"@15",
1587 "@16",
"@17",
"@18",
"@19",
"@20",
"@21",
"@22",
"@23",
"primary_value",
1588 "k_begin",
"k_if",
"k_unless",
"k_while",
"k_until",
"k_case",
"k_for",
1589 "k_class",
"k_module",
"k_def",
"k_end",
"then",
"do",
"if_tail",
1590 "opt_else",
"for_var",
"f_marg",
"f_marg_list",
"f_margs",
"block_param",
1591 "opt_block_param",
"block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
1592 "lambda",
"@24",
"@25",
"f_larglist",
"lambda_body",
"do_block",
"@26",
1593 "block_call",
"method_call",
"brace_block",
"@27",
"@28",
"case_body",
1594 "cases",
"opt_rescue",
"exc_list",
"exc_var",
"opt_ensure",
"literal",
1595 "strings",
"string",
"string1",
"xstring",
"regexp",
"words",
1596 "word_list",
"word",
"qwords",
"qword_list",
"string_contents",
1597 "xstring_contents",
"regexp_contents",
"string_content",
"@29",
"@30",
1598 "@31",
"string_dvar",
"symbol",
"sym",
"dsym",
"numeric",
1599 "user_variable",
"keyword_variable",
"var_ref",
"var_lhs",
"backref",
1600 "superclass",
"@32",
"f_arglist",
"f_args",
"f_bad_arg",
"f_norm_arg",
1601 "f_arg_item",
"f_arg",
"f_opt",
"f_block_opt",
"f_block_optarg",
1602 "f_optarg",
"restarg_mark",
"f_rest_arg",
"blkarg_mark",
"f_block_arg",
1603 "opt_f_block_arg",
"singleton",
"@33",
"assoc_list",
"assocs",
"assoc",
1604 "operation",
"operation2",
"operation3",
"dot_or_colon",
"opt_terms",
1605 "opt_nl",
"rparen",
"rbracket",
"trailer",
"term",
"terms",
"none", 0
1614 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1615 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1616 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1617 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1618 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1619 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1620 315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
1621 325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
1622 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
1623 345, 346, 347, 348, 349, 350, 351, 352, 353, 354,
1624 355, 356, 357, 358, 359, 360, 361, 362, 363, 61,
1625 63, 58, 62, 60, 124, 94, 38, 43, 45, 42,
1626 47, 37, 364, 33, 126, 365, 366, 367, 368, 369,
1627 370, 371, 372, 373, 374, 375, 123, 125, 91, 46,
1628 44, 96, 40, 41, 93, 59, 32, 10
1635 0, 148, 150, 149, 151, 152, 152, 152, 152, 153,
1636 154, 153, 155, 156, 157, 157, 157, 157, 159, 158,
1637 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1638 158, 158, 158, 158, 158, 158, 158, 158, 158, 158,
1639 158, 158, 158, 160, 160, 161, 161, 161, 161, 161,
1640 161, 162, 163, 163, 164, 164, 164, 166, 165, 167,
1641 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
1642 168, 168, 169, 169, 170, 170, 170, 170, 170, 170,
1643 170, 170, 170, 170, 171, 171, 172, 172, 173, 173,
1644 174, 174, 174, 174, 174, 174, 174, 174, 174, 175,
1645 175, 175, 175, 175, 175, 175, 175, 175, 176, 176,
1646 177, 177, 177, 178, 178, 178, 178, 178, 179, 179,
1647 180, 180, 181, 182, 181, 183, 183, 183, 183, 183,
1648 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1649 183, 183, 183, 183, 183, 183, 183, 183, 183, 183,
1650 183, 183, 183, 183, 184, 184, 184, 184, 184, 184,
1651 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1652 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1653 184, 184, 184, 184, 184, 184, 184, 184, 184, 184,
1654 184, 184, 184, 184, 184, 185, 185, 185, 185, 185,
1655 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1656 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1657 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
1658 185, 185, 185, 185, 185, 185, 185, 186, 185, 185,
1659 185, 187, 188, 188, 188, 188, 189, 190, 190, 191,
1660 191, 191, 191, 191, 192, 192, 192, 192, 192, 194,
1661 193, 195, 196, 196, 197, 197, 197, 197, 198, 198,
1662 198, 199, 199, 199, 199, 199, 199, 199, 199, 199,
1663 200, 199, 201, 199, 199, 199, 199, 199, 199, 199,
1664 199, 199, 199, 202, 199, 199, 199, 199, 199, 199,
1665 199, 199, 199, 203, 204, 199, 205, 206, 199, 199,
1666 199, 207, 208, 199, 209, 199, 210, 211, 199, 212,
1667 199, 213, 199, 214, 215, 199, 199, 199, 199, 199,
1668 216, 217, 218, 219, 220, 221, 222, 223, 224, 225,
1669 226, 227, 228, 228, 228, 229, 229, 230, 230, 231,
1670 231, 232, 232, 233, 233, 234, 234, 235, 235, 235,
1671 235, 235, 235, 235, 235, 235, 236, 236, 236, 236,
1672 236, 236, 236, 236, 236, 236, 236, 236, 236, 236,
1673 236, 237, 237, 238, 238, 238, 239, 239, 240, 240,
1674 241, 241, 243, 244, 242, 245, 245, 246, 246, 248,
1675 247, 249, 249, 249, 250, 250, 250, 250, 250, 250,
1676 250, 250, 250, 252, 251, 253, 251, 254, 255, 255,
1677 256, 256, 257, 257, 257, 258, 258, 259, 259, 260,
1678 260, 260, 261, 262, 262, 262, 263, 264, 265, 266,
1679 266, 267, 267, 268, 268, 269, 269, 270, 270, 271,
1680 271, 272, 272, 273, 273, 274, 275, 274, 276, 277,
1681 274, 278, 278, 278, 278, 279, 280, 280, 280, 280,
1682 281, 282, 282, 282, 282, 283, 283, 283, 283, 283,
1683 284, 284, 284, 284, 284, 284, 284, 285, 285, 286,
1684 286, 287, 287, 288, 289, 288, 288, 290, 290, 291,
1685 291, 291, 291, 291, 291, 291, 291, 291, 291, 291,
1686 291, 291, 291, 291, 292, 292, 292, 292, 293, 293,
1687 294, 294, 295, 295, 296, 297, 298, 298, 299, 299,
1688 300, 300, 301, 301, 302, 302, 303, 304, 304, 305,
1689 306, 305, 307, 307, 308, 308, 309, 309, 310, 310,
1690 310, 311, 311, 311, 311, 312, 312, 312, 313, 313,
1691 314, 314, 315, 315, 316, 317, 318, 318, 318, 319,
1698 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
1699 0, 5, 4, 2, 1, 1, 3, 2, 0, 4,
1700 3, 3, 3, 2, 3, 3, 3, 3, 3, 4,
1701 1, 3, 3, 6, 5, 5, 5, 5, 3, 3,
1702 3, 3, 1, 3, 3, 1, 3, 3, 3, 2,
1703 1, 1, 1, 1, 1, 4, 4, 0, 5, 2,
1704 3, 4, 5, 4, 5, 2, 2, 2, 2, 2,
1705 1, 3, 1, 3, 1, 2, 3, 5, 2, 4,
1706 2, 4, 1, 3, 1, 3, 2, 3, 1, 3,
1707 1, 1, 4, 3, 3, 3, 3, 2, 1, 1,
1708 1, 4, 3, 3, 3, 3, 2, 1, 1, 1,
1709 2, 1, 3, 1, 1, 1, 1, 1, 1, 1,
1710 1, 1, 1, 0, 4, 1, 1, 1, 1, 1,
1711 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1712 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1713 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1714 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1715 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1716 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1717 1, 1, 1, 1, 1, 3, 5, 3, 5, 6,
1718 5, 5, 5, 5, 4, 3, 3, 3, 3, 3,
1719 3, 3, 3, 3, 4, 4, 2, 2, 3, 3,
1720 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
1721 3, 2, 2, 3, 3, 3, 3, 0, 4, 6,
1722 1, 1, 1, 2, 4, 2, 3, 1, 1, 1,
1723 1, 2, 4, 2, 1, 2, 2, 4, 1, 0,
1724 2, 2, 2, 1, 1, 2, 3, 4, 3, 4,
1725 2, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1726 0, 4, 0, 4, 3, 3, 2, 3, 3, 1,
1727 4, 3, 1, 0, 6, 4, 3, 2, 1, 2,
1728 2, 6, 6, 0, 0, 7, 0, 0, 7, 5,
1729 4, 0, 0, 9, 0, 6, 0, 0, 8, 0,
1730 5, 0, 6, 0, 0, 9, 1, 1, 1, 1,
1731 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1732 1, 1, 1, 1, 2, 1, 1, 1, 5, 1,
1733 2, 1, 1, 1, 3, 1, 3, 1, 4, 6,
1734 3, 5, 2, 4, 1, 3, 6, 8, 4, 6,
1735 4, 2, 6, 2, 4, 6, 2, 4, 2, 4,
1736 1, 1, 1, 3, 1, 4, 1, 2, 1, 3,
1737 1, 1, 0, 0, 4, 4, 1, 3, 3, 0,
1738 5, 2, 4, 4, 2, 4, 4, 3, 3, 3,
1739 2, 1, 4, 0, 5, 0, 5, 5, 1, 1,
1740 6, 1, 1, 1, 1, 2, 1, 2, 1, 1,
1741 1, 1, 1, 1, 1, 2, 3, 3, 3, 3,
1742 3, 0, 3, 1, 2, 3, 3, 0, 3, 0,
1743 2, 0, 2, 0, 2, 1, 0, 3, 0, 0,
1744 5, 1, 1, 1, 1, 2, 1, 1, 1, 1,
1745 3, 1, 1, 2, 2, 1, 1, 1, 1, 1,
1746 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1747 1, 1, 1, 1, 0, 4, 2, 3, 2, 6,
1748 8, 4, 6, 4, 6, 2, 4, 6, 2, 4,
1749 2, 4, 1, 0, 1, 1, 1, 1, 1, 1,
1750 1, 3, 1, 3, 3, 3, 1, 3, 1, 3,
1751 1, 1, 2, 1, 1, 1, 2, 2, 1, 1,
1752 0, 4, 1, 2, 1, 3, 3, 2, 1, 1,
1753 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1754 0, 1, 0, 1, 2, 2, 0, 1, 1, 1,
1763 2, 0, 0, 1, 0, 338, 339, 340, 0, 331,
1764 332, 333, 336, 334, 335, 337, 326, 327, 328, 329,
1765 289, 259, 259, 481, 480, 482, 483, 562, 0, 562,
1766 10, 0, 485, 484, 486, 475, 550, 477, 476, 478,
1767 479, 471, 472, 433, 491, 492, 0, 0, 0, 0,
1768 0, 573, 573, 82, 392, 451, 449, 451, 453, 441,
1769 447, 0, 0, 0, 3, 560, 6, 9, 30, 42,
1770 45, 53, 52, 0, 70, 0, 74, 84, 0, 50,
1771 240, 0, 280, 0, 0, 303, 306, 560, 0, 0,
1772 0, 0, 54, 298, 271, 272, 432, 434, 273, 274,
1773 275, 276, 430, 431, 429, 487, 488, 277, 0, 278,
1774 259, 5, 8, 164, 175, 165, 188, 161, 181, 171,
1775 170, 191, 192, 186, 169, 168, 163, 189, 193, 194,
1776 173, 162, 176, 180, 182, 174, 167, 183, 190, 185,
1777 184, 177, 187, 172, 160, 179, 178, 159, 166, 157,
1778 158, 154, 155, 156, 113, 115, 114, 149, 150, 146,
1779 128, 129, 130, 137, 134, 136, 131, 132, 151, 152,
1780 138, 139, 143, 133, 135, 125, 126, 127, 140, 141,
1781 142, 144, 145, 147, 148, 153, 118, 120, 122, 23,
1782 116, 117, 119, 121, 0, 0, 0, 0, 0, 0,
1783 0, 254, 0, 241, 264, 68, 258, 573, 0, 487,
1784 488, 0, 278, 573, 544, 69, 67, 562, 66, 0,
1785 573, 410, 65, 562, 563, 0, 0, 18, 237, 0,
1786 0, 326, 327, 289, 292, 411, 216, 0, 0, 217,
1787 286, 0, 0, 0, 560, 15, 562, 72, 14, 282,
1788 0, 566, 566, 242, 0, 0, 566, 542, 562, 0,
1789 0, 0, 80, 330, 0, 90, 91, 98, 300, 393,
1790 468, 467, 469, 466, 0, 465, 0, 0, 0, 0,
1791 0, 0, 0, 473, 474, 49, 231, 232, 569, 570,
1792 4, 571, 561, 0, 0, 0, 0, 0, 0, 0,
1793 399, 401, 0, 86, 0, 78, 75, 0, 0, 0,
1794 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1795 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 573, 0, 0, 51, 0,
1797 0, 0, 0, 560, 0, 561, 0, 352, 351, 0,
1798 0, 487, 488, 278, 108, 109, 0, 0, 111, 0,
1799 0, 487, 488, 278, 319, 184, 177, 187, 172, 154,
1800 155, 156, 113, 114, 540, 321, 539, 0, 0, 0,
1801 415, 413, 299, 435, 0, 0, 404, 59, 297, 123,
1802 547, 286, 265, 261, 0, 0, 0, 255, 263, 0,
1803 573, 0, 0, 0, 0, 256, 562, 0, 291, 260,
1804 562, 250, 573, 573, 249, 562, 296, 48, 20, 22,
1805 21, 0, 293, 0, 0, 0, 0, 0, 0, 17,
1806 562, 284, 13, 561, 71, 562, 287, 568, 567, 243,
1807 568, 245, 288, 543, 0, 97, 473, 474, 88, 83,
1808 0, 0, 573, 0, 513, 455, 458, 456, 470, 452,
1809 436, 450, 437, 438, 454, 439, 440, 0, 443, 445,
1810 0, 446, 0, 0, 572, 7, 24, 25, 26, 27,
1811 28, 46, 47, 573, 0, 31, 40, 0, 41, 562,
1812 0, 76, 87, 44, 43, 0, 195, 264, 39, 213,
1813 221, 226, 227, 228, 223, 225, 235, 236, 229, 230,
1814 206, 207, 233, 234, 562, 222, 224, 218, 219, 220,
1815 208, 209, 210, 211, 212, 551, 556, 552, 557, 409,
1816 259, 407, 562, 551, 553, 552, 554, 408, 259, 0,
1817 573, 343, 0, 342, 0, 0, 0, 0, 0, 0,
1818 286, 0, 573, 0, 311, 316, 108, 109, 110, 0,
1819 494, 314, 493, 0, 573, 0, 0, 0, 513, 559,
1820 558, 323, 551, 552, 259, 259, 573, 573, 32, 197,
1821 38, 205, 57, 60, 0, 195, 546, 0, 266, 262,
1822 573, 555, 552, 562, 551, 552, 545, 290, 564, 246,
1823 251, 253, 295, 19, 0, 238, 0, 29, 0, 573,
1824 204, 73, 16, 283, 566, 0, 81, 94, 96, 562,
1825 551, 552, 519, 516, 515, 514, 517, 0, 531, 535,
1826 534, 530, 513, 0, 396, 518, 520, 522, 573, 528,
1827 573, 533, 573, 0, 512, 459, 0, 442, 444, 448,
1828 214, 215, 384, 573, 0, 382, 381, 270, 0, 85,
1829 79, 0, 0, 0, 0, 0, 0, 406, 63, 0,
1830 412, 0, 0, 248, 405, 61, 247, 341, 281, 573,
1831 573, 421, 573, 344, 573, 346, 304, 345, 307, 0,
1832 0, 310, 555, 285, 562, 551, 552, 0, 0, 496,
1833 0, 0, 108, 109, 112, 562, 0, 562, 513, 0,
1834 0, 0, 403, 56, 402, 55, 0, 0, 0, 573,
1835 124, 267, 257, 0, 0, 412, 0, 0, 573, 562,
1836 11, 244, 89, 92, 0, 519, 0, 364, 355, 357,
1837 562, 353, 573, 0, 0, 394, 0, 505, 538, 0,
1838 508, 532, 0, 510, 536, 0, 461, 462, 463, 457,
1839 464, 519, 0, 573, 0, 573, 526, 573, 573, 380,
1840 386, 0, 0, 268, 77, 196, 0, 37, 202, 36,
1841 203, 64, 565, 0, 34, 200, 35, 201, 62, 422,
1842 423, 573, 424, 0, 573, 349, 0, 0, 347, 0,
1843 0, 0, 309, 0, 0, 412, 0, 317, 0, 0,
1844 412, 320, 541, 562, 0, 498, 324, 0, 0, 198,
1845 0, 0, 252, 294, 524, 562, 0, 362, 0, 521,
1846 562, 0, 0, 523, 573, 573, 537, 573, 529, 573,
1847 573, 0, 0, 390, 387, 388, 391, 0, 383, 371,
1848 373, 0, 376, 0, 378, 400, 269, 239, 33, 199,
1849 0, 0, 426, 350, 0, 12, 428, 0, 301, 302,
1850 0, 0, 266, 573, 312, 0, 495, 315, 497, 322,
1851 513, 416, 414, 0, 354, 365, 0, 360, 356, 395,
1852 398, 397, 0, 501, 0, 503, 0, 509, 0, 506,
1853 511, 460, 0, 525, 0, 385, 573, 573, 573, 527,
1854 573, 573, 0, 425, 0, 99, 100, 107, 0, 427,
1855 0, 305, 308, 418, 419, 417, 0, 0, 0, 58,
1856 0, 363, 0, 358, 573, 573, 573, 573, 286, 0,
1857 389, 0, 368, 0, 370, 377, 0, 374, 379, 106,
1858 0, 573, 0, 573, 573, 0, 318, 0, 361, 0,
1859 502, 0, 499, 504, 507, 555, 285, 573, 573, 573,
1860 573, 555, 105, 562, 551, 552, 420, 348, 313, 325,
1861 359, 573, 369, 0, 366, 372, 375, 412, 500, 573,
1868 -1, 1, 2, 64, 65, 66, 229, 539, 540, 244,
1869 245, 421, 68, 69, 339, 70, 71, 583, 719, 72,
1870 73, 246, 74, 75, 76, 449, 77, 202, 358, 359,
1871 186, 187, 188, 189, 584, 536, 191, 79, 423, 204,
1872 250, 529, 674, 410, 411, 218, 219, 206, 397, 412,
1873 488, 80, 337, 435, 604, 341, 800, 342, 801, 697,
1874 926, 701, 698, 875, 566, 568, 711, 880, 237, 82,
1875 83, 84, 85, 86, 87, 88, 89, 90, 91, 678,
1876 542, 686, 797, 798, 350, 738, 739, 740, 763, 654,
1877 655, 764, 844, 845, 268, 269, 454, 633, 745, 301,
1878 483, 92, 93, 388, 577, 576, 549, 925, 680, 791,
1879 861, 865, 94, 95, 96, 97, 98, 99, 100, 280,
1880 467, 101, 282, 276, 274, 278, 459, 646, 645, 755,
1881 759, 102, 275, 103, 104, 209, 210, 107, 211, 212,
1882 561, 700, 709, 710, 635, 636, 637, 638, 639, 766,
1883 767, 640, 641, 642, 643, 836, 747, 377, 567, 255,
1884 413, 214, 238, 608, 531, 571, 290, 407, 408, 670,
1890 #define YYPACT_NINF -747
1893 -747, 81, 2552, -747, 7102, -747, -747, -747, 6615, -747,
1894 -747, -747, -747, -747, -747, -747, 7320, 7320, -747, -747,
1895 7320, 3237, 2814, -747, -747, -747, -747, 100, 6476, -31,
1896 -747, -26, -747, -747, -747, 5715, 2955, -747, -747, 5842,
1897 -747, -747, -747, -747, -747, -747, 8519, 8519, 83, 4434,
1898 8628, 7538, 7865, 6878, -747, 6337, -747, -747, -747, -24,
1899 29, 252, 8737, 8519, -747, 193, -747, 1104, -747, 458,
1900 -747, -747, 129, 77, -747, 69, 8846, -747, 139, 2797,
1901 22, 41, -747, 8628, 8628, -747, -747, 5078, 8951, 9056,
1902 9161, 5588, 33, 46, -747, -747, 157, -747, -747, -747,
1903 -747, -747, -747, -747, -747, 25, 58, -747, 179, 613,
1904 51, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1905 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1906 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1907 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1908 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1909 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1910 -747, -747, -747, -747, -747, -747, -747, -747, -747, -747,
1911 -747, -747, -747, -747, -747, -747, -747, -747, -747, 134,
1912 -747, -747, -747, -747, 182, 8519, 279, 4564, 8519, 8519,
1913 8519, -747, 263, 2797, 260, -747, -747, 237, 207, 43,
1914 206, 298, 254, 265, -747, -747, -747, 4969, -747, 7320,
1915 7320, -747, -747, 5208, -747, 8628, 661, -747, 272, 287,
1916 4694, -747, -747, -747, 295, 307, -747, 304, 51, 416,
1917 619, 7211, 4434, 384, 193, 1104, -31, 399, -747, 458,
1918 419, 221, 300, -747, 260, 430, 300, -747, -31, 497,
1919 501, 9266, 442, -747, 351, 366, 383, 409, -747, -747,
1920 -747, -747, -747, -747, 644, -747, 754, 813, 605, 464,
1921 819, 478, 68, 530, 532, -747, -747, -747, -747, -747,
1922 -747, -747, 5317, 8628, 8628, 8628, 8628, 7211, 8628, 8628,
1923 -747, -747, 7974, -747, 4434, 6990, 470, 7974, 8519, 8519,
1924 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1925 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519, 8519,
1926 8519, 8519, 8519, 8519, 9548, 7320, 9625, 3609, 458, 86,
1927 86, 8628, 8628, 193, 597, 480, 562, -747, -747, 454,
1928 601, 54, 76, 99, 331, 349, 8628, 481, -747, 45,
1929 473, -747, -747, -747, -747, 217, 286, 305, 318, 321,
1930 347, 363, 376, 381, -747, -747, -747, 391, 10549, 10549,
1931 -747, -747, -747, -747, 8737, 8737, -747, 535, -747, -747,
1932 -747, 388, -747, -747, 8519, 8519, 7429, -747, -747, 9702,
1933 7320, 9779, 8519, 8519, 7647, -747, -31, 492, -747, -747,
1934 -31, -747, 506, 539, -747, 106, -747, -747, -747, -747,
1935 -747, 6615, -747, 8519, 4029, 508, 9702, 9779, 8519, 1104,
1936 -31, -747, -747, 5445, 541, -31, -747, 7756, -747, -747,
1937 7865, -747, -747, -747, 272, 510, -747, -747, -747, 543,
1938 9266, 9856, 7320, 9933, 774, -747, -747, -747, -747, -747,
1939 -747, -747, -747, -747, -747, -747, -747, 313, -747, -747,
1940 491, -747, 8519, 8519, -747, -747, -747, -747, -747, -747,
1941 -747, -747, -747, 32, 8519, -747, 545, 546, -747, -31,
1942 9266, 551, -747, -747, -747, 566, 9473, -747, -747, 416,
1943 2184, 2184, 2184, 2184, 781, 781, 2273, 2938, 2184, 2184,
1944 1364, 1364, 662, 662, 2656, 781, 781, 927, 927, 768,
1945 397, 397, 416, 416, 416, 3378, 6083, 3464, 6197, -747,
1946 307, -747, -31, 647, -747, 660, -747, -747, 3096, 650,
1947 688, -747, 3754, 685, 4174, 56, 56, 597, 8083, 650,
1948 112, 10010, 7320, 10087, -747, 458, -747, 510, -747, 193,
1949 -747, -747, -747, 10164, 7320, 10241, 3609, 8628, 1131, -747,
1950 -747, -747, -747, -747, 1739, 1739, 32, 32, -747, 10608,
1951 -747, 2797, -747, -747, 6615, 10627, -747, 8519, 260, -747,
1952 265, 5969, 2673, -31, 490, 500, -747, -747, -747, -747,
1953 7429, 7647, -747, -747, 8628, 2797, 570, -747, 307, 307,
1954 2797, 213, 1104, -747, 300, 9266, 543, 505, 282, -31,
1955 38, 261, 603, -747, -747, -747, -747, 972, -747, -747,
1956 -747, -747, 1223, 66, -747, -747, -747, -747, 580, -747,
1957 583, 683, 589, 687, -747, -747, 893, -747, -747, -747,
1958 416, 416, -747, 576, 4839, -747, -747, 604, 8192, -747,
1959 543, 9266, 8737, 8519, 630, 8737, 8737, -747, 535, 608,
1960 677, 8737, 8737, -747, -747, 535, -747, -747, -747, 8301,
1961 740, -747, 588, -747, 740, -747, -747, -747, -747, 650,
1962 44, -747, 239, 257, -31, 141, 145, 8628, 193, -747,
1963 8628, 3609, 505, 282, -747, -31, 650, 106, 1223, 3609,
1964 193, 6754, -747, -747, -747, -747, 4839, 4694, 8519, 32,
1965 -747, -747, -747, 8519, 8519, 507, 8519, 8519, 636, 106,
1966 -747, -747, -747, 291, 8519, -747, 972, 457, -747, 651,
1967 -31, -747, 639, 4839, 4694, -747, 1223, -747, -747, 1223,
1968 -747, -747, 598, -747, -747, 4694, -747, -747, -747, -747,
1969 -747, 681, 1017, 639, 679, 654, -747, 656, 657, -747,
1970 -747, 789, 8519, 664, 543, 2797, 8519, -747, 2797, -747,
1971 2797, -747, -747, 8737, -747, 2797, -747, 2797, -747, 545,
1972 -747, 713, -747, 4304, 796, -747, 8628, 650, -747, 650,
1973 4839, 4839, -747, 8410, 3899, 189, 56, -747, 193, 650,
1974 -747, -747, -747, -31, 650, -747, -747, 799, 673, 2797,
1975 4694, 8519, 7647, -747, -747, -31, 884, 671, 1079, -747,
1976 -31, 803, 686, -747, 676, 678, -747, 684, -747, 694,
1977 684, 690, 9371, -747, 699, -747, -747, 711, -747, 1251,
1978 -747, 1251, -747, 598, -747, -747, 700, 2797, -747, 2797,
1979 9476, 86, -747, -747, 4839, -747, -747, 86, -747, -747,
1980 650, 650, -747, 365, -747, 3609, -747, -747, -747, -747,
1981 1131, -747, -747, 706, -747, 707, 884, 716, -747, -747,
1982 -747, -747, 1223, -747, 598, -747, 598, -747, 598, -747,
1983 -747, -747, 790, 520, 1017, -747, 708, 715, 684, -747,
1984 717, 684, 797, -747, 523, 366, 383, 409, 3609, -747,
1985 3754, -747, -747, -747, -747, -747, 4839, 650, 3609, -747,
1986 884, 707, 884, 721, 684, 727, 684, 684, -747, 10318,
1987 -747, 1251, -747, 598, -747, -747, 598, -747, -747, 510,
1988 10395, 7320, 10472, 688, 588, 650, -747, 650, 707, 884,
1989 -747, 598, -747, -747, -747, 730, 731, 684, 735, 684,
1990 684, 55, 282, -31, 128, 158, -747, -747, -747, -747,
1991 707, 684, -747, 598, -747, -747, -747, 163, -747, 684,
1998 -747, -747, -747, 452, -747, 28, -747, -545, 277, -747,
1999 39, -747, -293, 184, -58, 71, -747, -169, -747, -7,
2000 791, -142, -13, -37, -747, -396, -29, 1623, -312, 788,
2001 -54, -747, -25, -747, -747, 20, -747, 1066, -747, -45,
2002 -747, 11, 47, -324, 115, 5, -747, -322, -196, 53,
2003 -295, 8, -747, -747, -747, -747, -747, -747, -747, -747,
2004 -747, -747, -747, -747, -747, -747, -747, -747, 2, -747,
2005 -747, -747, -747, -747, -747, -747, -747, -747, -747, 205,
2006 -338, -516, -72, -618, -747, -722, -671, 147, -747, -489,
2007 -747, -600, -747, -12, -747, -747, -747, -747, -747, -747,
2008 -747, -747, -747, 798, -747, -747, -531, -747, -50, -747,
2009 -747, -747, -747, -747, -747, 811, -747, -747, -747, -747,
2010 -747, -747, -747, -747, 856, -747, -140, -747, -747, -747,
2011 -747, 7, -747, 12, -747, 1268, 1605, 823, 1289, 1575,
2012 -747, -747, 35, -387, -697, -568, -690, 273, -696, -746,
2013 72, 181, -747, -526, -747, -449, 270, -747, -747, -747,
2014 97, -360, 758, -276, -747, -747, -56, -4, 278, -585,
2022 #define YYTABLE_NINF -574
2025 111, 273, 544, 227, 81, 644, 81, 254, 725, 201,
2026 201, 532, 498, 201, 493, 192, 689, 405, 208, 208,
2027 193, 706, 208, 225, 262, 228, 340, 222, 190, 343,
2028 688, 344, 112, 221, 733, 192, 247, 375, 441, 306,
2029 193, 67, 443, 67, 596, 558, 559, 292, 190, 253,
2030 257, 81, 208, 838, 616, 264, 833, 541, 530, 741,
2031 538, 263, 794, -93, 208, 846, 799, 634, -103, 207,
2032 207, 291, 380, 207, 589, 190, 593, 380, 264, -99,
2033 596, 3, 589, 685, 263, 208, 208, 716, 717, 208,
2034 349, 360, 360, 291, 660, 743, 263, 263, 263, 541,
2035 430, -100, 574, 575, 251, 909, 888, -330, 652, 805,
2036 230, 190, -489, 213, 213, 387, 224, 213, 378, 644,
2037 810, 386, 279, 530, -107, 538, 334, 768, 619, 470,
2038 -489, 205, 215, 285, -99, 216, 461, -106, 464, 240,
2039 468, -102, 830, 298, 299, -490, 653, -93, 252, 256,
2040 390, 609, -99, 392, 393, 885, 809, 300, 560, 833,
2041 -330, -330, 489, 847, 814, -90, -102, -100, 741, 827,
2042 -104, -104, 379, 744, 471, 281, -101, 609, -93, 335,
2043 336, -93, 381, 644, 803, -93, 302, 381, 432, 288,
2044 288, 289, 289, 220, -90, 909, 838, -551, -91, 81,
2045 -103, 288, -103, 289, 769, 398, 833, 846, 888, 303,
2046 201, 398, 201, 201, -101, 931, -91, 405, 414, 208,
2047 835, 208, 208, 839, 448, 208, 433, 208, 694, 247,
2048 820, 288, 81, 289, 249, 476, 477, 478, 479, -98,
2049 705, 596, 223, 81, 81, 742, 221, 224, 307, 386,
2050 291, 704, -97, 224, 444, 923, 56, 486, 741, 644,
2051 741, 958, 497, 264, -103, 774, 384, 338, 338, 263,
2052 207, 338, 207, -102, 389, -102, 491, 609, 589, 589,
2053 429, -93, -105, 545, 546, -95, -95, 547, 980, 609,
2054 874, 247, 399, -490, 81, 208, 208, 208, 208, 81,
2055 208, 208, -481, -104, 208, -104, 81, 264, -101, 208,
2056 -101, 283, 284, 263, 213, -100, 213, -412, 741, 933,
2057 475, 813, -71, 907, 223, 910, 243, 648, 201, -92,
2058 927, 67, 406, 414, 409, 391, 480, 208, 288, 81,
2059 289, 403, 924, 208, 208, 400, 401, 537, 395, 291,
2060 586, 588, 804, -85, 528, 487, -481, -548, 208, 254,
2061 487, 437, 741, -107, 741, 562, 935, -285, 438, 493,
2062 -95, -480, 394, 485, 455, -549, -412, 396, 494, -94,
2063 793, -551, 548, 957, 790, 402, 208, 208, 987, 426,
2064 -482, 741, 588, 201, 722, 254, 603, -96, 414, -552,
2065 731, -95, 208, -483, -95, 404, -485, 415, -95, 417,
2066 398, 398, 537, 448, 422, 968, -475, 456, 457, 528,
2067 -285, -285, 111, 424, -552, -480, 81, -412, 192, -412,
2068 -412, 644, -484, 193, -478, 81, 451, 217, 537, 657,
2069 440, 190, 400, 427, -482, 201, 528, 438, -486, 220,
2070 414, -487, 264, 448, 208, 578, 580, -483, 263, 647,
2071 -485, -475, 596, 67, 537, 308, -478, -548, -488, -475,
2072 -475, 528, 612, -548, 243, 428, 569, 338, 338, 338,
2073 338, 656, 481, 482, 308, -549, -484, -478, -478, 452,
2074 453, -549, 264, 590, -278, 298, 299, -106, 263, 781,
2075 589, 416, -486, 497, -487, -487, 788, 425, -70, 735,
2076 664, 623, 624, 625, 626, -475, 331, 332, 333, 243,
2077 -478, -488, -488, 918, 434, 338, 338, 431, 669, 920,
2078 570, -555, 722, 556, 614, 668, 676, 557, 681, 551,
2079 555, 667, 721, 675, 81, 201, 81, -278, -278, 673,
2080 414, 687, 687, 445, 208, 588, 254, 201, 563, 720,
2081 446, 447, 414, 436, 537, 699, 208, 442, 81, 208,
2082 465, 528, 676, 676, 656, 656, 537, 726, 732, 713,
2083 715, 243, 450, 528, 469, 673, 673, 727, 398, 669,
2084 -555, 192, 552, 553, 821, -286, 193, 826, 472, -102,
2085 473, 690, 796, 793, 190, 939, 208, 676, 950, -104,
2086 492, 564, 565, 773, 548, 669, -101, 264, 550, 667,
2087 673, 712, 714, 263, 448, 474, 554, 973, 761, 582,
2088 623, 624, 625, 626, 789, 598, 748, 649, 748, 806,
2089 748, -555, 808, -555, -555, 607, 600, -551, -286, -286,
2090 735, 770, 623, 624, 625, 626, 81, 816, 564, 565,
2091 677, 951, 952, 264, 208, 627, 455, 208, 208, 263,
2092 463, 628, 629, 208, 208, 662, 609, 792, 795, 601,
2093 795, -85, 795, 615, 597, -264, 658, 627, 599, 824,
2094 669, 661, 630, 602, 629, 631, 679, 728, 683, 208,
2095 385, 669, 208, 81, 807, 455, 428, 730, 611, 456,
2096 457, 81, 734, 613, 630, 418, 815, 656, 81, 81,
2097 746, 762, -107, 749, 419, 420, 398, 856, -106, 752,
2098 308, 190, 487, 494, 671, 751, 777, 779, 867, 754,
2099 770, 776, 784, 786, -265, 81, 81, 672, 456, 457,
2100 458, 707, 782, -98, 691, 793, -102, 81, 872, -97,
2101 110, 770, 110, 748, 783, 748, 748, 659, 735, -104,
2102 623, 624, 625, 626, 110, 110, 822, 254, 110, 329,
2103 330, 331, 332, 333, 762, 208, -101, -93, 729, 862,
2104 842, 828, 866, 848, 849, 81, 851, 853, 208, 855,
2105 -95, 860, 81, 81, -266, 864, 81, 110, 110, 881,
2106 882, 886, 687, 890, 876, 455, 892, -92, 894, 682,
2107 110, 684, 81, 891, 896, 905, 622, 901, 623, 624,
2108 625, 626, 748, 748, 898, 748, 308, 748, 748, 904,
2109 -267, 110, 110, 929, 903, 110, 938, 930, 941, 308,
2110 263, 321, 322, 949, 858, 943, 932, 946, 456, 457,
2111 460, 959, 914, 627, 321, 322, 81, 961, 263, 628,
2112 629, 795, -551, -552, 455, 983, 606, 81, 364, 347,
2113 455, 338, 977, 825, 338, 329, 330, 331, 332, 333,
2114 630, 382, 940, 631, 802, 326, 327, 328, 329, 330,
2115 331, 332, 333, 976, 748, 748, 748, 383, 748, 748,
2116 750, 811, 753, 277, 376, 928, 632, 456, 457, 462,
2117 81, 906, 81, 456, 457, 466, 765, 834, 81, 0,
2118 81, 771, 748, 748, 748, 748, 735, 0, 623, 624,
2119 625, 626, 0, 0, 201, 0, 0, 756, 757, 414,
2120 758, 681, 795, 208, 0, 110, 44, 45, 0, 528,
2121 0, 0, 0, 537, 0, 748, 748, 748, 748, 669,
2122 528, 0, 0, 736, 0, 110, 0, 110, 110, 748,
2123 338, 110, 0, 110, 0, 812, 0, 748, 110, 0,
2124 0, 0, 0, 817, 818, 308, 0, 0, 0, 110,
2125 110, 0, 868, 0, 869, 0, 0, 823, 0, 0,
2126 321, 322, 0, 0, 877, 0, 0, 0, 829, 879,
2127 831, 832, 837, 0, 735, 840, 623, 624, 625, 626,
2128 0, 0, 841, 0, 0, 850, 0, 852, 854, 0,
2129 0, 0, 0, 328, 329, 330, 331, 332, 333, 0,
2130 110, 110, 110, 110, 110, 110, 110, 110, 0, 0,
2131 110, 736, 110, 0, 0, 110, 0, 737, 0, 843,
2132 863, 623, 624, 625, 626, 921, 922, 870, 871, 0,
2133 0, 873, 203, 203, 0, 0, 203, 0, 0, 0,
2134 0, 878, 0, 110, 0, 110, 0, 883, 0, 110,
2135 110, 0, 0, 884, 893, 895, 0, 897, 889, 899,
2136 900, 0, 236, 239, 110, 0, 0, 203, 203, 0,
2137 0, 0, 0, 0, 908, 0, 911, 0, 286, 287,
2138 0, 735, 956, 623, 624, 625, 626, 0, 0, 0,
2139 0, 919, 110, 110, 293, 294, 295, 296, 297, 0,
2140 0, 0, 0, 0, 0, 0, 0, 0, 110, 0,
2141 978, 0, 979, 0, 0, 934, 0, 936, 736, 0,
2142 0, 937, 0, 0, 887, 0, 942, 944, 945, 0,
2143 947, 948, 110, 622, 0, 623, 624, 625, 626, 0,
2144 0, 110, 0, 0, 0, 953, 0, 954, 0, 0,
2145 0, 0, 0, 955, 960, 962, 963, 964, 0, 0,
2146 110, 0, 0, 0, 967, 0, 969, 0, 0, 970,
2147 627, 0, 0, 0, 0, 0, 628, 629, 0, 0,
2148 0, 0, 0, 0, 981, 0, 0, 982, 984, 985,
2149 986, 0, 0, 0, 0, 0, 0, 630, 0, 0,
2150 631, 988, 0, 0, 0, 0, 989, 0, 0, 990,
2151 0, 203, 0, 0, 203, 203, 286, 0, 0, 0,
2152 105, 0, 105, 708, 0, 622, 0, 623, 624, 625,
2153 626, 0, 0, 203, 0, 203, 203, 0, 0, 0,
2154 0, 108, 0, 108, 0, 0, 0, 0, 0, 0,
2155 110, 0, 110, 761, 0, 623, 624, 625, 626, 0,
2156 110, 0, 627, 0, 0, 0, 0, 105, 628, 629,
2157 0, 265, 110, 0, 110, 110, 0, 0, 0, 0,
2158 0, 0, 0, 0, 0, 0, 0, 0, 108, 630,
2159 627, 0, 631, 0, 265, 0, 628, 629, 0, 0,
2160 0, 0, 0, 0, 0, 0, 351, 361, 361, 361,
2161 0, 0, 110, 0, 0, 0, 0, 630, 203, 0,
2162 631, 0, 0, 496, 499, 500, 501, 502, 503, 504,
2163 505, 506, 507, 508, 509, 510, 511, 512, 513, 514,
2164 515, 516, 517, 518, 519, 520, 521, 522, 523, 524,
2165 0, 203, 0, 0, 0, 0, 0, 0, 0, 0,
2166 0, 0, 110, 0, 0, 0, 0, 0, 0, 0,
2167 110, 0, 0, 110, 110, 0, 0, 0, 0, 110,
2168 110, 0, 308, 309, 310, 311, 312, 313, 314, 315,
2169 316, 317, 318, -574, -574, 0, 0, 321, 322, 0,
2170 579, 581, 0, 0, 0, 110, 0, 0, 110, 110,
2171 585, 203, 203, 0, 0, 105, 203, 110, 579, 581,
2172 203, 0, 0, 0, 110, 110, 324, 325, 326, 327,
2173 328, 329, 330, 331, 332, 333, 108, 0, 0, 605,
2174 0, 0, 0, 0, 610, 0, 0, 0, 105, 0,
2175 0, 110, 110, 203, 0, 0, 203, 0, 0, 105,
2176 105, 0, 0, 110, 0, 0, 0, 0, 203, 108,
2177 0, 0, 0, 0, 0, 0, 0, 0, 0, 265,
2178 108, 108, 0, 0, 0, 0, 0, 0, 650, 651,
2179 0, 110, 0, 0, 0, 0, 0, 0, 0, 0,
2180 203, 110, 0, 0, 110, 0, 0, 0, 110, 110,
2181 105, 0, 110, 0, 0, 105, 0, 0, 0, 0,
2182 0, 0, 105, 265, 0, 0, 0, 109, 110, 109,
2183 0, 108, 0, 0, 0, 0, 108, 0, 0, 0,
2184 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2185 0, 0, 0, 0, 0, 105, 0, 106, 0, 106,
2186 0, 0, 0, 0, 203, 0, 0, 0, 203, 0,
2187 0, 0, 110, 0, 109, 78, 108, 78, 267, 0,
2188 203, 0, 0, 110, 0, 0, 0, 0, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2190 0, 267, 0, 203, 106, 0, 0, 0, 266, 0,
2191 0, 0, 0, 353, 363, 363, 203, 203, 0, 0,
2192 0, 0, 78, 0, 0, 0, 110, 0, 110, 0,
2193 0, 266, 0, 0, 110, 0, 110, 0, 0, 0,
2194 0, 0, 105, 352, 362, 362, 362, 0, 0, 0,
2195 0, 105, 0, 0, 0, 0, 0, 0, 0, 110,
2196 0, 348, 0, 108, 0, 0, 0, 0, 265, 0,
2197 0, 0, 108, 0, 203, 0, 0, 0, 585, 775,
2198 0, 778, 780, 0, 0, 0, 0, 785, 787, -573,
2199 0, 0, 0, 0, 0, 203, 0, -573, -573, -573,
2200 0, 0, -573, -573, -573, 0, -573, 0, 265, 0,
2201 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2202 0, 0, 109, 0, 0, 0, -573, -573, 0, -573,
2203 -573, -573, -573, -573, 819, 0, 0, 0, 0, 778,
2204 780, 0, 785, 787, 0, 0, 0, 0, 0, 0,
2205 203, 0, 106, 0, 0, 109, 0, 0, 0, 0,
2206 105, 0, 105, 0, 0, 0, 109, 109, 0, 0,
2207 78, 0, 0, 0, -573, 0, 0, 0, 0, 0,
2208 0, 108, 0, 108, 105, 106, 267, 0, 203, 0,
2209 0, 0, 857, 0, 0, 0, 106, 106, 0, 859,
2210 0, 0, 0, 78, 0, 108, 0, 0, 0, 0,
2211 0, 0, 0, 0, 78, 78, 266, 109, 0, 203,
2212 0, 0, 109, 0, 0, 0, -573, 0, -573, 109,
2213 267, 220, -573, 265, -573, 0, -573, 859, 203, 0,
2214 0, 0, 0, 0, 0, 0, 0, 106, 0, 0,
2215 0, 0, 106, 0, 0, 0, 0, 0, 0, 106,
2216 266, 0, 109, 0, 0, 78, 0, 0, 0, 0,
2217 78, 0, 105, 0, 0, 0, 0, 78, 0, 265,
2218 495, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 106, 108, 0, 0, 0, 0, 0, 0,
2220 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2221 78, 0, 0, 0, 0, 0, 0, 0, 0, 105,
2222 0, 0, 0, 0, 0, 0, 0, 105, 0, 0,
2223 0, 0, 0, 0, 105, 105, 0, 0, 0, 0,
2224 108, 0, 0, 0, 0, 0, 0, 0, 108, 109,
2225 0, 0, 0, 0, 0, 108, 108, 0, 109, 0,
2226 0, 105, 105, 0, 0, 0, 0, 203, 0, 0,
2227 0, 0, 0, 105, 0, 267, 0, 0, 0, 106,
2228 0, 0, 108, 108, 0, 0, 0, 0, 106, 0,
2229 0, 0, 0, 0, 108, 0, 0, 78, 0, 0,
2230 0, 0, 0, 0, 0, 266, 78, 0, 0, 0,
2231 0, 105, 0, 0, 0, 267, 0, 0, 105, 105,
2232 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2233 0, 0, 108, 0, 0, 0, 0, 0, 105, 108,
2234 108, 0, 0, 108, 0, 266, 0, 0, 0, 0,
2235 0, 0, 0, 0, 0, 0, 0, 0, 0, 108,
2236 361, 0, 0, 0, 0, 0, 0, 109, 0, 109,
2237 0, 0, 0, 0, 0, 0, 0, 0, 915, 0,
2238 0, 0, 105, 0, 0, 0, 0, 0, 0, 0,
2239 0, 109, 0, 105, 0, 0, 0, 106, 0, 106,
2240 0, 0, 0, 108, 0, 0, 0, 0, 0, 0,
2241 0, 0, 0, 0, 108, 78, 0, 78, 0, 0,
2242 0, 106, 0, 0, 0, 0, 0, 0, 0, 0,
2243 0, 0, 0, 0, 0, 0, 105, 0, 105, 78,
2244 267, 0, 0, 0, 105, 0, 105, 0, 0, 0,
2245 0, 0, 0, 0, 0, 0, 0, 108, 0, 108,
2246 0, 0, 0, 0, 0, 108, 0, 108, 0, 0,
2247 266, 760, 0, 0, 0, 0, 0, 0, 0, 109,
2248 0, 0, 0, 0, 0, 0, 267, 0, 0, 0,
2249 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2250 0, 0, 308, -574, -574, -574, -574, 313, 314, 106,
2251 0, -574, -574, 0, 0, 0, 266, 321, 322, 0,
2252 0, 0, 0, 0, 0, 0, 109, 78, 0, 0,
2253 0, 0, 0, 0, 109, 495, 0, 0, 0, 0,
2254 0, 109, 109, 0, 0, 0, 324, 325, 326, 327,
2255 328, 329, 330, 331, 332, 333, 106, 0, 0, 0,
2256 0, 0, 0, 0, 106, 0, 0, 0, 109, 109,
2257 0, 106, 106, 0, 78, 0, 0, 0, 0, 0,
2258 109, 0, 78, 0, 0, 0, 0, 0, 0, 78,
2259 78, 308, 309, 310, 311, 312, 313, 314, 106, 106,
2260 317, 318, 0, 0, 0, 0, 321, 322, 0, 0,
2261 106, 0, 0, 0, 0, 0, 78, 78, 109, 0,
2262 0, 0, 0, 0, 0, 109, 109, 0, 78, 109,
2263 0, 0, 0, 0, 0, 324, 325, 326, 327, 328,
2264 329, 330, 331, 332, 333, 109, 0, 0, 106, 0,
2265 0, 0, 0, 0, 0, 106, 106, 0, 0, 106,
2266 0, 0, 0, 0, 0, 0, 78, 363, 0, 0,
2267 0, 0, 0, 78, 78, 106, 0, 78, 0, 0,
2268 0, 0, 0, 0, 0, 917, 0, 0, 0, 109,
2269 0, 0, 0, 78, 0, 0, 0, 362, 0, 0,
2270 109, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2271 0, 0, 0, 0, 0, 916, 0, 0, 0, 106,
2272 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2273 106, 0, 0, 913, 0, 0, 0, 78, 0, 0,
2274 0, 0, 0, 109, 0, 109, 0, 0, 78, 0,
2275 0, 109, 0, 109, 0, 0, 0, 0, 0, 0,
2276 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2277 0, 0, 0, 106, 0, 106, 0, 0, 0, 0,
2278 0, 106, 0, 106, 0, 0, 0, 0, 0, 0,
2279 0, 78, 0, 78, 0, 0, 0, 0, 0, 78,
2280 0, 78, -573, 4, 0, 5, 6, 7, 8, 9,
2281 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2282 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2283 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2284 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2285 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2286 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2287 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2288 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2289 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2290 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2291 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, -285, 61, 62, 63, 0, 0, 0,
2293 0, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2294 -285, 0, 0, 0, 0, 0, 0, -573, 0, -573,
2295 -285, -285, -285, 0, 0, 0, 0, 0, 0, 0,
2296 -285, -285, 0, -285, -285, -285, -285, -285, 0, 0,
2297 0, 0, 0, 0, 308, 309, 310, 311, 312, 313,
2298 314, 315, 316, 317, 318, 319, 320, 0, 0, 321,
2299 322, -285, -285, -285, -285, -285, -285, -285, -285, -285,
2300 -285, -285, -285, -285, 0, 0, -285, -285, -285, 0,
2301 724, -285, 0, 0, 0, 0, 323, -285, 324, 325,
2302 326, 327, 328, 329, 330, 331, 332, 333, 0, 0,
2303 -285, 0, -105, -285, -285, -285, -285, -285, -285, -285,
2304 -285, -285, -285, -285, -285, 0, 0, 0, 0, 0,
2305 0, 0, 0, 224, 0, 0, 0, 0, 0, 0,
2306 -285, -285, -285, -285, -411, 0, -285, -285, -285, 0,
2307 -285, 0, -411, -411, -411, 0, 0, -411, -411, -411,
2308 0, -411, 0, 0, 0, 0, 0, 0, 0, 0,
2309 -411, -411, -411, 0, 0, 0, 0, 0, 0, 0,
2310 0, -411, -411, 0, -411, -411, -411, -411, -411, 0,
2311 0, 0, 0, 0, 0, 308, 309, 310, 311, 312,
2312 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
2313 321, 322, -411, -411, -411, -411, -411, -411, -411, -411,
2314 -411, -411, -411, -411, -411, 0, 0, -411, -411, -411,
2315 0, 0, -411, 0, 0, 0, 0, 323, -411, 324,
2316 325, 326, 327, 328, 329, 330, 331, 332, 333, 0,
2317 0, 0, 0, 0, -411, 0, -411, -411, -411, -411,
2318 -411, -411, -411, -411, -411, -411, 0, 0, 0, 0,
2319 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2320 -411, -411, -411, -411, -411, -279, 220, -411, -411, -411,
2321 0, -411, 0, -279, -279, -279, 0, 0, -279, -279,
2322 -279, 0, -279, 0, 0, 0, 0, 0, 0, 0,
2323 0, 0, -279, -279, -279, 0, 0, 0, 0, 0,
2324 0, 0, -279, -279, 0, -279, -279, -279, -279, -279,
2325 0, 0, 0, 0, 0, 0, 308, 309, 310, 311,
2326 312, 313, 314, 315, 0, 317, 318, 0, 0, 0,
2327 0, 321, 322, -279, -279, -279, -279, -279, -279, -279,
2328 -279, -279, -279, -279, -279, -279, 0, 0, -279, -279,
2329 -279, 0, 0, -279, 0, 0, 0, 0, 0, -279,
2330 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
2331 0, 0, -279, 0, 0, -279, -279, -279, -279, -279,
2332 -279, -279, -279, -279, -279, -279, -279, 0, 0, 0,
2333 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2334 0, 0, -279, -279, -279, -279, -573, 0, -279, -279,
2335 -279, 0, -279, 0, -573, -573, -573, 0, 0, -573,
2336 -573, -573, 0, -573, 0, 0, 0, 0, 0, 0,
2337 0, 0, -573, -573, -573, 0, 0, 0, 0, 0,
2338 0, 0, 0, -573, -573, 0, -573, -573, -573, -573,
2339 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2340 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2341 0, 0, 0, 0, -573, -573, -573, -573, -573, -573,
2342 -573, -573, -573, -573, -573, -573, -573, 0, 0, -573,
2343 -573, -573, 0, 0, -573, 0, 0, 0, 0, 0,
2344 -573, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2345 0, 0, 0, 0, 0, 0, -573, 0, -573, -573,
2346 -573, -573, -573, -573, -573, -573, -573, -573, 0, 0,
2347 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2348 0, 0, -573, -573, -573, -573, -573, -292, 220, -573,
2349 -573, -573, 0, -573, 0, -292, -292, -292, 0, 0,
2350 -292, -292, -292, 0, -292, 0, 0, 0, 0, 0,
2351 0, 0, 0, 0, -292, -292, 0, 0, 0, 0,
2352 0, 0, 0, 0, -292, -292, 0, -292, -292, -292,
2353 -292, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2354 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2355 0, 0, 0, 0, 0, -292, -292, -292, -292, -292,
2356 -292, -292, -292, -292, -292, -292, -292, -292, 0, 0,
2357 -292, -292, -292, 0, 0, -292, 0, 0, 0, 0,
2358 0, -292, 0, 0, 0, 0, 0, 0, 0, 0,
2359 0, 0, 0, 0, 0, 0, 0, -292, 0, -292,
2360 -292, -292, -292, -292, -292, -292, -292, -292, -292, 0,
2361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2362 0, 0, 0, 0, -292, -292, -292, -292, -555, 217,
2363 -292, -292, -292, 0, -292, 0, -555, -555, -555, 0,
2364 0, 0, -555, -555, 0, -555, 0, 0, 0, 0,
2365 0, 0, 0, 0, -555, 0, 0, 0, 0, 0,
2366 0, 0, 0, 0, 0, -555, -555, 0, -555, -555,
2367 -555, -555, -555, 0, 0, 0, 0, 0, 0, 0,
2368 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2369 0, 0, 0, 0, 0, 0, -555, -555, -555, -555,
2370 -555, -555, -555, -555, -555, -555, -555, -555, -555, 0,
2371 0, -555, -555, -555, -285, 665, 0, 0, 0, 0,
2372 0, 0, -285, -285, -285, 0, 0, 0, -285, -285,
2373 0, -285, 0, 0, 0, 0, 0, -103, -555, 0,
2374 -555, -555, -555, -555, -555, -555, -555, -555, -555, -555,
2375 0, -285, -285, 0, -285, -285, -285, -285, -285, 0,
2376 0, 0, 0, 0, -555, -555, -555, -555, -94, 0,
2377 0, -555, 0, -555, 0, -555, 0, 0, 0, 0,
2378 0, 0, -285, -285, -285, -285, -285, -285, -285, -285,
2379 -285, -285, -285, -285, -285, 0, 0, -285, -285, -285,
2380 0, 666, 0, 0, 0, 0, 0, 0, 0, 0,
2381 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2382 0, 0, 0, -105, -285, 0, -285, -285, -285, -285,
2383 -285, -285, -285, -285, -285, -285, 0, 0, 0, 0,
2384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2385 0, -285, -285, -285, -96, 0, 0, -285, 0, -285,
2386 241, -285, 5, 6, 7, 8, 9, -573, -573, -573,
2387 10, 11, 0, 0, -573, 12, 0, 13, 14, 15,
2388 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2389 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2390 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2391 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2392 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2394 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2395 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2396 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2398 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2399 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2400 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2401 8, 9, 0, 0, -573, 10, 11, 0, -573, -573,
2402 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2403 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2404 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2405 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2406 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2407 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2409 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2410 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2412 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2413 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2414 0, 0, 0, 0, 0, 0, 0, 0, 0, -573,
2415 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2416 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2417 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2418 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2419 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2420 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2421 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2422 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2423 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2424 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2425 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2426 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2427 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2428 4, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2429 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2430 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2431 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2432 0, 0, 0, 0, 28, 29, 30, 31, 32, 33,
2433 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2434 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2435 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2436 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2437 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2438 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2441 0, 0, 0, 0, 0, 0, -573, 0, 0, 0,
2442 0, 0, 0, 0, -573, 241, -573, 5, 6, 7,
2443 8, 9, 0, 0, -573, 10, 11, 0, 0, -573,
2444 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2445 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2446 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2447 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2448 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2449 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2451 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2452 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2453 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2454 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2455 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2456 8, 9, 0, -573, -573, 10, 11, 0, 0, -573,
2457 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2458 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2459 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2460 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2461 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2462 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2463 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2464 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2465 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2466 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2467 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2468 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2469 8, 9, 0, 0, 0, 10, 11, 0, 0, -573,
2470 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2471 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2472 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2473 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2474 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2475 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2477 48, 0, 0, 242, 50, 0, 51, 52, 0, 53,
2478 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2479 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2480 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2481 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2482 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2483 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2484 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2485 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2486 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2487 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2488 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2489 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2490 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2491 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2492 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2493 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2494 0, 0, 0, 0, 0, 241, 0, 5, 6, 7,
2495 8, 9, 0, 0, 0, 10, 11, -573, 0, -573,
2496 12, -573, 13, 14, 15, 16, 17, 18, 19, 0,
2497 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2498 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2499 29, 0, 31, 32, 33, 34, 35, 36, 37, 38,
2500 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2501 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2502 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2503 48, 0, 0, 49, 50, 0, 51, 52, 0, 53,
2504 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2505 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2506 0, 0, 0, 0, 0, 0, 61, 62, 63, 0,
2507 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2508 0, -573, 0, 0, 0, 0, 0, 0, 0, -573,
2509 241, -573, 5, 6, 7, 8, 9, 0, 0, -573,
2510 10, 11, 0, 0, 0, 12, 0, 13, 14, 15,
2511 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2512 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2513 0, 0, 0, 0, 28, 29, 0, 31, 32, 33,
2514 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2515 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2516 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2517 0, 0, 0, 0, 0, 48, 0, 0, 49, 50,
2518 0, 51, 52, 0, 53, 0, 54, 55, 56, 57,
2519 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2520 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2521 0, 61, 62, 63, 0, 0, 0, 0, 0, 0,
2522 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2523 10, 11, 0, 0, -573, 12, -573, 13, 14, 15,
2524 16, 17, 18, 19, 0, 0, 0, 0, 0, 20,
2525 21, 22, 23, 24, 25, 26, 0, 0, 194, 0,
2526 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2527 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2528 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2529 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2530 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2531 0, 51, 52, 0, 198, 199, 54, 55, 56, 57,
2532 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2533 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2534 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2535 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2536 22, 23, 24, 25, 26, 0, 224, 27, 0, 0,
2537 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2538 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2539 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2540 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2541 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2542 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2543 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2544 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2545 61, 62, 63, 0, 0, 0, 0, 0, 0, 0,
2546 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2547 11, 0, 0, 288, 12, 289, 13, 14, 15, 16,
2548 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2549 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2550 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2551 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2552 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2553 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2554 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2555 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2556 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2557 5, 6, 7, 8, 9, 0, 0, 0, 10, 11,
2558 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2559 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2560 23, 24, 25, 26, 0, 224, 27, 0, 0, 0,
2561 0, 0, 28, 29, 30, 31, 32, 33, 34, 35,
2562 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2563 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2564 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2565 0, 0, 0, 48, 0, 0, 49, 50, 0, 51,
2566 52, 0, 53, 0, 54, 55, 56, 57, 58, 59,
2567 60, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2568 0, 0, 0, 0, 0, 0, 0, 0, 0, 61,
2569 62, 63, 0, 0, 0, 0, 0, 0, 5, 6,
2570 7, 8, 9, 0, 0, 0, 10, 11, 0, 0,
2571 0, 12, 474, 13, 14, 15, 16, 17, 18, 19,
2572 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2573 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2574 28, 29, 0, 31, 32, 33, 34, 35, 36, 37,
2575 38, 39, 40, 0, 41, 42, 0, 43, 44, 45,
2576 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2577 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2578 0, 48, 0, 0, 49, 50, 0, 51, 52, 0,
2579 53, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581 0, 0, 0, 0, 0, 0, 0, 61, 62, 63,
2582 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2583 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2584 474, 113, 114, 115, 116, 117, 118, 119, 120, 121,
2585 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
2586 132, 133, 134, 135, 136, 0, 0, 0, 137, 138,
2587 139, 365, 366, 367, 368, 144, 145, 146, 0, 0,
2588 0, 0, 0, 147, 148, 149, 150, 369, 370, 371,
2589 372, 155, 37, 38, 373, 40, 0, 0, 0, 0,
2590 0, 0, 0, 0, 157, 158, 159, 160, 161, 162,
2591 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2592 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2593 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2595 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2596 0, 183, 184, 0, 0, 0, 0, 0, -548, -548,
2597 -548, 0, -548, 0, 0, 0, -548, -548, 0, 185,
2598 374, -548, 0, -548, -548, -548, -548, -548, -548, -548,
2599 0, -548, 0, 0, 0, -548, -548, -548, -548, -548,
2600 -548, -548, 0, 0, -548, 0, 0, 0, 0, 0,
2601 0, -548, 0, 0, -548, -548, -548, -548, -548, -548,
2602 -548, -548, -548, -548, -548, -548, 0, -548, -548, -548,
2603 0, -548, -548, 0, 0, 0, 0, 0, 0, 0,
2604 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2605 0, -548, 0, 0, -548, -548, 0, -548, -548, 0,
2606 -548, -548, -548, -548, -548, -548, -548, -548, -548, 0,
2607 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2608 0, 0, 0, 0, 0, 0, 0, -548, -548, -548,
2609 0, 0, 0, 0, 0, -549, -549, -549, 0, -549,
2610 0, -548, 0, -549, -549, 0, 0, -548, -549, 0,
2611 -549, -549, -549, -549, -549, -549, -549, 0, -549, 0,
2612 0, 0, -549, -549, -549, -549, -549, -549, -549, 0,
2613 0, -549, 0, 0, 0, 0, 0, 0, -549, 0,
2614 0, -549, -549, -549, -549, -549, -549, -549, -549, -549,
2615 -549, -549, -549, 0, -549, -549, -549, 0, -549, -549,
2616 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2617 0, 0, 0, 0, 0, 0, 0, 0, -549, 0,
2618 0, -549, -549, 0, -549, -549, 0, -549, -549, -549,
2619 -549, -549, -549, -549, -549, -549, 0, 0, 0, 0,
2620 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2621 0, 0, 0, 0, -549, -549, -549, 0, 0, 0,
2622 0, 0, -551, -551, -551, 0, -551, 0, -549, 0,
2623 -551, -551, 0, 0, -549, -551, 0, -551, -551, -551,
2624 -551, -551, -551, -551, 0, 0, 0, 0, 0, -551,
2625 -551, -551, -551, -551, -551, -551, 0, 0, -551, 0,
2626 0, 0, 0, 0, 0, -551, 0, 0, -551, -551,
2627 -551, -551, -551, -551, -551, -551, -551, -551, -551, -551,
2628 0, -551, -551, -551, 0, -551, -551, 0, 0, 0,
2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2630 0, 0, 0, 0, 0, -551, 723, 0, -551, -551,
2631 0, -551, -551, 0, -551, -551, -551, -551, -551, -551,
2632 -551, -551, -551, 0, 0, 0, 0, 0, -103, 0,
2633 0, 0, 0, 0, 0, 0, -553, -553, -553, 0,
2634 -553, -551, -551, -551, -553, -553, 0, 0, 0, -553,
2635 0, -553, -553, -553, -553, -553, -553, -553, 0, 0,
2636 0, -551, 0, -553, -553, -553, -553, -553, -553, -553,
2637 0, 0, -553, 0, 0, 0, 0, 0, 0, -553,
2638 0, 0, -553, -553, -553, -553, -553, -553, -553, -553,
2639 -553, -553, -553, -553, 0, -553, -553, -553, 0, -553,
2640 -553, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2641 0, 0, 0, 0, 0, 0, 0, 0, 0, -553,
2642 0, 0, -553, -553, 0, -553, -553, 0, -553, -553,
2643 -553, -553, -553, -553, -553, -553, -553, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 -554, -554, -554, 0, -554, -553, -553, -553, -554, -554,
2646 0, 0, 0, -554, 0, -554, -554, -554, -554, -554,
2647 -554, -554, 0, 0, 0, -553, 0, -554, -554, -554,
2648 -554, -554, -554, -554, 0, 0, -554, 0, 0, 0,
2649 0, 0, 0, -554, 0, 0, -554, -554, -554, -554,
2650 -554, -554, -554, -554, -554, -554, -554, -554, 0, -554,
2651 -554, -554, 0, -554, -554, 0, 0, 0, 0, 0,
2652 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653 0, 0, 0, -554, 0, 0, -554, -554, 0, -554,
2654 -554, 0, -554, -554, -554, -554, -554, -554, -554, -554,
2655 -554, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2656 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2657 -554, -554, 0, 0, 0, 0, 0, 0, 0, 0,
2658 0, 0, 0, 0, 0, 0, 0, 0, 0, -554,
2659 113, 114, 115, 116, 117, 118, 119, 120, 121, 122,
2660 123, 124, 125, 126, 127, 128, 129, 130, 131, 132,
2661 133, 134, 135, 136, 0, 0, 0, 137, 138, 139,
2662 140, 141, 142, 143, 144, 145, 146, 0, 0, 0,
2663 0, 0, 147, 148, 149, 150, 151, 152, 153, 154,
2664 155, 270, 271, 156, 272, 0, 0, 0, 0, 0,
2665 0, 0, 0, 157, 158, 159, 160, 161, 162, 163,
2666 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
2667 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
2668 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
2669 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
2670 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
2671 183, 184, 0, 0, 0, 0, 0, 0, 0, 0,
2672 0, 0, 0, 0, 0, 0, 0, 0, 185, 113,
2673 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
2674 124, 125, 126, 127, 128, 129, 130, 131, 132, 133,
2675 134, 135, 136, 0, 0, 0, 137, 138, 139, 140,
2676 141, 142, 143, 144, 145, 146, 0, 0, 0, 0,
2677 0, 147, 148, 149, 150, 151, 152, 153, 154, 155,
2678 226, 0, 156, 0, 0, 0, 0, 0, 0, 0,
2679 0, 0, 157, 158, 159, 160, 161, 162, 163, 164,
2680 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
2681 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682 0, 172, 0, 0, 55, 0, 0, 0, 0, 0,
2683 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
2684 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
2685 184, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 0, 0, 0, 0, 0, 0, 0, 185, 113, 114,
2687 115, 116, 117, 118, 119, 120, 121, 122, 123, 124,
2688 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2689 135, 136, 0, 0, 0, 137, 138, 139, 140, 141,
2690 142, 143, 144, 145, 146, 0, 0, 0, 0, 0,
2691 147, 148, 149, 150, 151, 152, 153, 154, 155, 0,
2692 0, 156, 0, 0, 0, 0, 0, 0, 0, 0,
2693 0, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2694 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2695 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696 172, 0, 0, 55, 0, 0, 0, 0, 0, 0,
2697 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2698 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
2699 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700 0, 0, 0, 0, 0, 0, 185, 113, 114, 115,
2701 116, 117, 118, 119, 120, 121, 122, 123, 124, 125,
2702 126, 127, 128, 129, 130, 131, 132, 133, 134, 135,
2703 136, 0, 0, 0, 137, 138, 139, 140, 141, 142,
2704 143, 144, 145, 146, 0, 0, 0, 0, 0, 147,
2705 148, 149, 150, 151, 152, 153, 154, 155, 0, 0,
2706 156, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
2708 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
2709 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
2710 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
2712 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
2713 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2714 11, 0, 0, 0, 12, 185, 13, 14, 15, 231,
2715 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2716 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2717 0, 0, 0, 0, 258, 0, 0, 32, 33, 34,
2718 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2719 43, 44, 45, 0, 0, 0, 0, 0, 0, 0,
2720 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2721 0, 0, 0, 0, 259, 0, 0, 197, 50, 0,
2722 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2723 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2724 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2725 260, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2726 15, 231, 232, 18, 19, 0, 0, 0, 261, 0,
2727 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2728 0, 0, 0, 0, 0, 0, 258, 0, 0, 32,
2729 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2730 42, 0, 43, 44, 45, 0, 0, 0, 0, 0,
2731 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2732 0, 0, 0, 0, 0, 0, 259, 0, 0, 197,
2733 50, 0, 51, 52, 0, 0, 0, 54, 55, 56,
2734 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2735 0, 0, 0, 0, 0, 5, 6, 7, 8, 9,
2736 0, 0, 260, 10, 11, 0, 0, 0, 12, 0,
2737 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2738 490, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2739 0, 27, 0, 0, 0, 0, 0, 28, 29, 30,
2740 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2741 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2743 0, 0, 0, 0, 0, 0, 0, 0, 48, 0,
2744 0, 49, 50, 0, 51, 52, 0, 53, 0, 54,
2745 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2746 0, 0, 0, 0, 5, 6, 7, 8, 9, 0,
2747 0, 0, 10, 11, 61, 62, 63, 12, 0, 13,
2748 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2749 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2750 27, 0, 0, 0, 0, 0, 28, 29, 0, 31,
2751 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2752 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2753 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2754 0, 0, 0, 0, 0, 0, 0, 48, 0, 0,
2755 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2756 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2757 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2758 0, 10, 11, 61, 62, 63, 12, 0, 13, 14,
2759 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2760 20, 21, 22, 23, 24, 25, 26, 0, 0, 194,
2761 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2762 33, 34, 35, 36, 37, 38, 39, 40, 195, 41,
2763 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2764 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2766 50, 0, 51, 52, 0, 198, 199, 54, 55, 56,
2767 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2768 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2769 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2770 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2771 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2772 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2773 34, 35, 36, 37, 38, 39, 40, 195, 41, 42,
2774 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2775 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2776 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2777 0, 51, 52, 0, 587, 199, 54, 55, 56, 57,
2778 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2779 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2780 11, 61, 200, 63, 12, 0, 13, 14, 15, 231,
2781 232, 18, 19, 0, 0, 0, 0, 0, 233, 234,
2782 235, 23, 24, 25, 26, 0, 0, 194, 0, 0,
2783 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2784 35, 36, 37, 38, 39, 40, 195, 41, 42, 0,
2785 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2786 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2788 51, 52, 0, 198, 0, 54, 55, 56, 57, 58,
2789 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2790 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2791 61, 200, 63, 12, 0, 13, 14, 15, 231, 232,
2792 18, 19, 0, 0, 0, 0, 0, 233, 234, 235,
2793 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2794 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2795 36, 37, 38, 39, 40, 195, 41, 42, 0, 43,
2796 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2797 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2798 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2799 52, 0, 0, 199, 54, 55, 56, 57, 58, 59,
2800 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2801 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2802 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2803 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2804 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2805 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
2806 37, 38, 39, 40, 195, 41, 42, 0, 43, 44,
2807 45, 0, 46, 47, 0, 0, 0, 0, 0, 0,
2808 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2809 0, 0, 196, 0, 0, 197, 50, 0, 51, 52,
2810 0, 587, 0, 54, 55, 56, 57, 58, 59, 60,
2811 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2812 7, 0, 9, 0, 0, 0, 10, 11, 61, 200,
2813 63, 12, 0, 13, 14, 15, 231, 232, 18, 19,
2814 0, 0, 0, 0, 0, 233, 234, 235, 23, 24,
2815 25, 26, 0, 0, 194, 0, 0, 0, 0, 0,
2816 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2817 38, 39, 40, 195, 41, 42, 0, 43, 44, 45,
2818 0, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2819 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2820 0, 196, 0, 0, 197, 50, 0, 51, 52, 0,
2821 0, 0, 54, 55, 56, 57, 58, 59, 60, 0,
2822 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
2823 0, 9, 0, 0, 0, 10, 11, 61, 200, 63,
2824 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2825 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2826 26, 0, 0, 194, 0, 0, 0, 0, 0, 0,
2827 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
2828 39, 40, 0, 41, 42, 0, 43, 44, 45, 0,
2829 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2830 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831 196, 0, 0, 197, 50, 0, 51, 52, 0, 484,
2832 0, 54, 55, 56, 57, 58, 59, 60, 0, 0,
2833 0, 0, 0, 0, 0, 0, 5, 6, 7, 0,
2834 9, 0, 0, 0, 10, 11, 61, 200, 63, 12,
2835 0, 13, 14, 15, 231, 232, 18, 19, 0, 0,
2836 0, 0, 0, 233, 234, 235, 23, 24, 25, 26,
2837 0, 0, 194, 0, 0, 0, 0, 0, 0, 29,
2838 0, 0, 32, 33, 34, 35, 36, 37, 38, 39,
2839 40, 0, 41, 42, 0, 43, 44, 45, 0, 46,
2840 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841 0, 0, 0, 0, 0, 0, 0, 0, 0, 196,
2842 0, 0, 197, 50, 0, 51, 52, 0, 198, 0,
2843 54, 55, 56, 57, 58, 59, 60, 0, 0, 0,
2844 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2845 0, 0, 0, 10, 11, 61, 200, 63, 12, 0,
2846 13, 14, 15, 231, 232, 18, 19, 0, 0, 0,
2847 0, 0, 233, 234, 235, 23, 24, 25, 26, 0,
2848 0, 194, 0, 0, 0, 0, 0, 0, 29, 0,
2849 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2850 0, 41, 42, 0, 43, 44, 45, 0, 46, 47,
2851 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 0, 0, 0, 0, 0, 0, 196, 0,
2853 0, 197, 50, 0, 51, 52, 0, 772, 0, 54,
2854 55, 56, 57, 58, 59, 60, 0, 0, 0, 0,
2855 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2856 0, 0, 10, 11, 61, 200, 63, 12, 0, 13,
2857 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2858 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2859 194, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2860 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2861 41, 42, 0, 43, 44, 45, 0, 46, 47, 0,
2862 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2863 0, 0, 0, 0, 0, 0, 0, 196, 0, 0,
2864 197, 50, 0, 51, 52, 0, 484, 0, 54, 55,
2865 56, 57, 58, 59, 60, 0, 0, 0, 0, 0,
2866 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
2867 0, 10, 11, 61, 200, 63, 12, 0, 13, 14,
2868 15, 231, 232, 18, 19, 0, 0, 0, 0, 0,
2869 233, 234, 235, 23, 24, 25, 26, 0, 0, 194,
2870 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
2871 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2872 42, 0, 43, 44, 45, 0, 46, 47, 0, 0,
2873 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874 0, 0, 0, 0, 0, 0, 196, 0, 0, 197,
2875 50, 0, 51, 52, 0, 587, 0, 54, 55, 56,
2876 57, 58, 59, 60, 0, 0, 0, 0, 0, 0,
2877 0, 0, 5, 6, 7, 0, 9, 0, 0, 0,
2878 10, 11, 61, 200, 63, 12, 0, 13, 14, 15,
2879 231, 232, 18, 19, 0, 0, 0, 0, 0, 233,
2880 234, 235, 23, 24, 25, 26, 0, 0, 194, 0,
2881 0, 0, 0, 0, 0, 29, 0, 0, 32, 33,
2882 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2883 0, 43, 44, 45, 0, 46, 47, 0, 0, 0,
2884 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 0, 0, 0, 0, 0, 196, 0, 0, 197, 50,
2886 0, 51, 52, 0, 0, 0, 54, 55, 56, 57,
2887 58, 59, 60, 0, 0, 0, 0, 0, 0, 0,
2888 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
2889 11, 61, 200, 63, 12, 0, 13, 14, 15, 16,
2890 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
2891 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
2892 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
2893 35, 36, 37, 38, 39, 40, 0, 41, 42, 0,
2894 43, 44, 45, 0, 46, 47, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896 0, 0, 0, 0, 196, 0, 0, 197, 50, 0,
2897 51, 52, 0, 0, 0, 54, 55, 56, 57, 58,
2898 59, 60, 0, 0, 0, 0, 0, 0, 0, 0,
2899 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2900 61, 62, 63, 12, 0, 13, 14, 15, 16, 17,
2901 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2902 23, 24, 25, 26, 0, 0, 194, 0, 0, 0,
2903 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2904 36, 37, 38, 39, 40, 0, 41, 42, 0, 43,
2905 44, 45, 0, 46, 47, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2907 0, 0, 0, 196, 0, 0, 197, 50, 0, 51,
2908 52, 0, 0, 0, 54, 55, 56, 57, 58, 59,
2909 60, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2910 6, 7, 0, 9, 0, 0, 0, 10, 11, 61,
2911 200, 63, 12, 0, 13, 14, 15, 231, 232, 18,
2912 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2913 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2914 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2915 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2916 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2918 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2919 0, 305, 0, 54, 55, 56, 57, 58, 59, 60,
2920 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2921 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2922 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2923 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2924 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2925 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2926 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2927 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2928 0, 0, 0, 0, 0, 0, 0, 346, 0, 0,
2929 49, 50, 0, 51, 52, 0, 53, 0, 54, 55,
2930 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2931 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2932 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2933 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2934 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2935 0, 0, 258, 0, 0, 32, 33, 34, 354, 36,
2936 37, 38, 355, 40, 0, 41, 42, 0, 43, 44,
2937 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2938 0, 0, 0, 0, 0, 0, 0, 0, 0, 356,
2939 0, 0, 357, 0, 0, 197, 50, 0, 51, 52,
2940 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2941 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2942 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2943 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2944 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2945 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2946 32, 33, 34, 354, 36, 37, 38, 355, 40, 0,
2947 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2948 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 357, 0, 0,
2950 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2951 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2952 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2953 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2954 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2955 24, 25, 26, 0, 0, 194, 0, 0, 0, 0,
2956 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2957 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2958 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960 0, 0, 259, 0, 0, 304, 50, 0, 51, 52,
2961 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2962 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2963 0, 0, 10, 11, 0, 0, 0, 12, 260, 13,
2964 14, 15, 231, 232, 18, 19, 0, 0, 0, 0,
2965 0, 233, 234, 235, 23, 24, 25, 26, 0, 0,
2966 194, 0, 0, 0, 0, 0, 0, 258, 0, 0,
2967 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2968 41, 42, 0, 43, 44, 45, 0, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 0, 0, 0, 0, 0, 0, 0, 902, 0, 0,
2971 197, 50, 0, 51, 52, 0, 0, 0, 54, 55,
2972 56, 57, 58, 59, 60, 0, 0, 0, 0, 5,
2973 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
2974 0, 0, 12, 260, 13, 14, 15, 231, 232, 18,
2975 19, 0, 0, 0, 0, 0, 233, 234, 235, 23,
2976 24, 25, 26, 0, 0, 194, 0, 663, 0, 0,
2977 0, 0, 258, 0, 0, 32, 33, 34, 35, 36,
2978 37, 38, 39, 40, 0, 41, 42, 0, 43, 44,
2979 45, 308, 309, 310, 311, 312, 313, 314, 315, 316,
2980 317, 318, 319, 320, 0, 0, 321, 322, 0, 0,
2981 0, 0, 912, 0, 0, 197, 50, 0, 51, 52,
2982 0, 0, 0, 54, 55, 56, 57, 58, 59, 60,
2983 0, 0, 0, 323, 0, 324, 325, 326, 327, 328,
2984 329, 330, 331, 332, 333, 0, 0, 0, 260, 0,
2985 525, 526, 0, 0, 527, 0, 0, 0, 0, 0,
2986 0, 0, 0, -241, 157, 158, 159, 160, 161, 162,
2987 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
2988 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
2989 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
2990 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2991 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
2992 0, 183, 184, 0, 0, 0, 0, 533, 534, 0,
2993 0, 535, 0, 0, 0, 0, 0, 0, 0, 185,
2994 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
2995 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
2996 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2998 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
2999 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
3000 0, 0, 0, 0, 591, 526, 0, 0, 592, 0,
3001 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
3002 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
3003 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
3004 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
3005 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3006 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
3007 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
3008 0, 594, 534, 0, 0, 595, 0, 0, 0, 0,
3009 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
3010 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
3011 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
3012 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
3013 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3014 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3015 182, 0, 183, 184, 0, 0, 0, 0, 617, 526,
3016 0, 0, 618, 0, 0, 0, 0, 0, 0, 0,
3017 185, 220, 157, 158, 159, 160, 161, 162, 163, 164,
3018 165, 0, 0, 166, 167, 0, 0, 168, 169, 170,
3019 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3020 0, 172, 0, 0, 0, 0, 0, 0, 0, 0,
3021 0, 0, 0, 0, 0, 0, 0, 0, 173, 174,
3022 175, 176, 177, 178, 179, 180, 181, 182, 0, 183,
3023 184, 0, 0, 0, 0, 620, 534, 0, 0, 621,
3024 0, 0, 0, 0, 0, 0, 0, 185, 220, 157,
3025 158, 159, 160, 161, 162, 163, 164, 165, 0, 0,
3026 166, 167, 0, 0, 168, 169, 170, 171, 0, 0,
3027 0, 0, 0, 0, 0, 0, 0, 0, 172, 0,
3028 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029 0, 0, 0, 0, 0, 173, 174, 175, 176, 177,
3030 178, 179, 180, 181, 182, 0, 183, 184, 0, 0,
3031 0, 0, 692, 526, 0, 0, 693, 0, 0, 0,
3032 0, 0, 0, 0, 185, 220, 157, 158, 159, 160,
3033 161, 162, 163, 164, 165, 0, 0, 166, 167, 0,
3034 0, 168, 169, 170, 171, 0, 0, 0, 0, 0,
3035 0, 0, 0, 0, 0, 172, 0, 0, 0, 0,
3036 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3037 0, 0, 173, 174, 175, 176, 177, 178, 179, 180,
3038 181, 182, 0, 183, 184, 0, 0, 0, 0, 695,
3039 534, 0, 0, 696, 0, 0, 0, 0, 0, 0,
3040 0, 185, 220, 157, 158, 159, 160, 161, 162, 163,
3041 164, 165, 0, 0, 166, 167, 0, 0, 168, 169,
3042 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
3043 0, 0, 172, 0, 0, 0, 0, 0, 0, 0,
3044 0, 0, 0, 0, 0, 0, 0, 0, 0, 173,
3045 174, 175, 176, 177, 178, 179, 180, 181, 182, 0,
3046 183, 184, 0, 0, 0, 0, 702, 526, 0, 0,
3047 703, 0, 0, 0, 0, 0, 0, 0, 185, 220,
3048 157, 158, 159, 160, 161, 162, 163, 164, 165, 0,
3049 0, 166, 167, 0, 0, 168, 169, 170, 171, 0,
3050 0, 0, 0, 0, 0, 0, 0, 0, 0, 172,
3051 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3052 0, 0, 0, 0, 0, 0, 173, 174, 175, 176,
3053 177, 178, 179, 180, 181, 182, 0, 183, 184, 0,
3054 0, 0, 0, 572, 534, 0, 0, 573, 0, 0,
3055 0, 0, 0, 0, 0, 185, 220, 157, 158, 159,
3056 160, 161, 162, 163, 164, 165, 0, 0, 166, 167,
3057 0, 0, 168, 169, 170, 171, 0, 0, 0, 0,
3058 0, 0, 0, 0, 0, 0, 172, 0, 0, 0,
3059 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3060 0, 0, 0, 173, 174, 175, 176, 177, 178, 179,
3061 180, 181, 182, 0, 183, 184, 0, 0, 0, 0,
3062 965, 526, 0, 0, 966, 0, 0, 0, 0, 0,
3063 0, 0, 185, 220, 157, 158, 159, 160, 161, 162,
3064 163, 164, 165, 0, 0, 166, 167, 0, 0, 168,
3065 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
3066 0, 0, 0, 172, 0, 0, 0, 0, 0, 0,
3067 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3068 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
3069 0, 183, 184, 0, 0, 0, 0, 971, 526, 0,
3070 0, 972, 0, 0, 0, 0, 0, 0, 0, 185,
3071 220, 157, 158, 159, 160, 161, 162, 163, 164, 165,
3072 0, 0, 166, 167, 0, 0, 168, 169, 170, 171,
3073 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3074 172, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3075 0, 0, 0, 0, 0, 0, 0, 173, 174, 175,
3076 176, 177, 178, 179, 180, 181, 182, 0, 183, 184,
3077 0, 0, 0, 0, 974, 534, 0, 0, 975, 0,
3078 0, 0, 0, 0, 0, 0, 185, 220, 157, 158,
3079 159, 160, 161, 162, 163, 164, 165, 0, 0, 166,
3080 167, 0, 0, 168, 169, 170, 171, 0, 0, 0,
3081 0, 0, 0, 0, 0, 0, 0, 172, 0, 0,
3082 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3083 0, 0, 0, 0, 173, 174, 175, 176, 177, 178,
3084 179, 180, 181, 182, 0, 183, 184, 0, 0, 0,
3085 0, 572, 534, 0, 0, 573, 0, 0, 0, 0,
3086 0, 0, 0, 185, 220, 157, 158, 159, 160, 161,
3087 162, 163, 164, 165, 0, 0, 166, 167, 0, 0,
3088 168, 169, 170, 171, 0, 0, 0, 0, 0, 0,
3089 0, 0, 0, 0, 172, 0, 0, 0, 0, 0,
3090 0, 0, 718, 0, 0, 0, 0, 0, 0, 0,
3091 0, 173, 174, 175, 176, 177, 178, 179, 180, 181,
3092 182, 663, 183, 184, 0, 0, 308, 309, 310, 311,
3093 312, 313, 314, 315, 316, 317, 318, 319, 320, 0,
3094 185, 321, 322, 0, 0, 308, 309, 310, 311, 312,
3095 313, 314, 315, 316, 317, 318, 319, 320, 0, 0,
3096 321, 322, 0, 0, 0, 0, 0, 0, 323, 0,
3097 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
3098 0, 0, 0, 0, 0, 0, 0, 323, 0, 324,
3099 325, 326, 327, 328, 329, 330, 331, 332, 333
3104 2, 55, 340, 28, 2, 454, 4, 52, 593, 16,
3105 17, 335, 307, 20, 307, 8, 547, 213, 16, 17,
3106 8, 566, 20, 27, 53, 29, 84, 22, 8, 87,
3107 546, 87, 4, 22, 619, 28, 49, 91, 252, 76,
3108 28, 2, 256, 4, 404, 357, 1, 65, 28, 51,
3109 52, 49, 50, 749, 450, 53, 746, 13, 334, 627,
3110 336, 53, 680, 25, 62, 762, 684, 454, 13, 16,
3111 17, 65, 26, 20, 396, 55, 400, 26, 76, 25,
3112 440, 0, 404, 27, 76, 83, 84, 576, 577, 87,
3113 88, 89, 90, 87, 490, 29, 88, 89, 90, 13,
3114 242, 25, 378, 379, 51, 851, 828, 85, 76, 694,
3115 136, 91, 87, 16, 17, 110, 147, 20, 85, 568,
3116 705, 110, 146, 399, 25, 401, 85, 653, 452, 61,
3117 87, 16, 17, 62, 109, 20, 276, 25, 278, 56,
3118 280, 13, 742, 37, 38, 87, 114, 109, 51, 52,
3119 195, 427, 109, 198, 199, 826, 701, 28, 113, 849,
3120 138, 139, 304, 763, 709, 140, 25, 109, 736, 737,
3121 25, 13, 139, 107, 106, 146, 13, 453, 140, 138,
3122 139, 143, 136, 632, 140, 147, 109, 136, 244, 145,
3123 145, 147, 147, 142, 140, 941, 892, 142, 140, 197,
3124 145, 145, 147, 147, 653, 207, 896, 904, 930, 140,
3125 217, 213, 219, 220, 25, 886, 140, 413, 220, 217,
3126 746, 219, 220, 749, 261, 223, 244, 225, 552, 242,
3127 719, 145, 230, 147, 50, 293, 294, 295, 296, 140,
3128 564, 601, 142, 241, 242, 632, 235, 147, 109, 238,
3129 244, 563, 140, 147, 258, 873, 99, 302, 826, 708,
3130 828, 932, 307, 261, 25, 661, 87, 83, 84, 261,
3131 217, 87, 219, 145, 140, 147, 305, 553, 600, 601,
3132 241, 140, 25, 341, 342, 140, 25, 343, 959, 565,
3133 806, 304, 85, 87, 292, 293, 294, 295, 296, 297,
3134 298, 299, 85, 145, 302, 147, 304, 305, 145, 307,
3135 147, 59, 60, 305, 217, 109, 219, 26, 886, 887,
3136 292, 708, 109, 849, 142, 851, 49, 467, 335, 140,
3137 875, 292, 217, 335, 219, 56, 297, 335, 145, 337,
3138 147, 87, 873, 341, 342, 138, 139, 336, 88, 343,
3139 395, 396, 690, 140, 334, 302, 139, 26, 356, 404,
3140 307, 140, 930, 109, 932, 359, 892, 85, 147, 662,
3141 109, 85, 109, 302, 61, 26, 85, 140, 307, 140,
3142 15, 142, 17, 928, 679, 87, 384, 385, 973, 85,
3143 85, 959, 437, 400, 590, 440, 421, 140, 400, 142,
3144 614, 140, 400, 85, 143, 140, 85, 223, 147, 225,
3145 412, 413, 401, 450, 142, 941, 85, 104, 105, 399,
3146 138, 139, 424, 136, 142, 139, 424, 136, 421, 138,
3147 139, 880, 85, 421, 85, 433, 85, 142, 427, 484,
3148 140, 421, 138, 139, 139, 452, 426, 147, 85, 142,
3149 452, 85, 450, 490, 452, 384, 385, 139, 450, 146,
3150 139, 85, 822, 424, 453, 68, 85, 136, 85, 138,
3151 139, 451, 433, 142, 197, 87, 85, 293, 294, 295,
3152 296, 483, 298, 299, 68, 136, 139, 138, 139, 138,
3153 139, 142, 490, 396, 85, 37, 38, 109, 490, 668,
3154 822, 223, 139, 548, 138, 139, 675, 230, 109, 52,
3155 514, 54, 55, 56, 57, 139, 119, 120, 121, 242,
3156 139, 138, 139, 861, 246, 341, 342, 143, 532, 867,
3157 139, 26, 728, 52, 437, 530, 538, 56, 540, 85,
3158 356, 530, 587, 538, 542, 552, 544, 138, 139, 538,
3159 552, 545, 546, 56, 552, 600, 601, 564, 85, 584,
3160 59, 60, 564, 144, 553, 559, 564, 137, 566, 567,
3161 106, 551, 574, 575, 576, 577, 565, 87, 615, 574,
3162 575, 304, 140, 563, 106, 574, 575, 87, 590, 593,
3163 85, 584, 138, 139, 87, 85, 584, 140, 68, 109,
3164 68, 548, 14, 15, 584, 85, 604, 609, 85, 109,
3165 140, 138, 139, 658, 17, 619, 109, 615, 56, 608,
3166 609, 574, 575, 615, 661, 145, 25, 951, 52, 94,
3167 54, 55, 56, 57, 679, 143, 638, 146, 640, 697,
3168 642, 136, 700, 138, 139, 137, 140, 142, 138, 139,
3169 52, 653, 54, 55, 56, 57, 654, 711, 138, 139,
3170 10, 138, 139, 661, 662, 89, 61, 665, 666, 661,
3171 65, 95, 96, 671, 672, 109, 952, 679, 680, 140,
3172 682, 140, 684, 140, 406, 140, 140, 89, 410, 734,
3173 694, 140, 116, 415, 96, 119, 8, 600, 13, 697,
3174 87, 705, 700, 701, 698, 61, 87, 137, 430, 104,
3175 105, 709, 109, 435, 116, 54, 710, 719, 716, 717,
3176 140, 145, 109, 140, 63, 64, 728, 772, 109, 140,
3177 68, 711, 679, 662, 87, 52, 665, 666, 796, 52,
3178 742, 111, 671, 672, 140, 743, 744, 87, 104, 105,
3179 106, 567, 144, 140, 549, 15, 109, 755, 803, 140,
3180 2, 763, 4, 765, 87, 767, 768, 489, 52, 109,
3181 54, 55, 56, 57, 16, 17, 140, 822, 20, 117,
3182 118, 119, 120, 121, 145, 783, 109, 140, 604, 791,
3183 109, 140, 794, 114, 140, 793, 140, 140, 796, 10,
3184 140, 88, 800, 801, 140, 9, 804, 49, 50, 10,
3185 137, 140, 806, 10, 808, 61, 140, 140, 140, 542,
3186 62, 544, 820, 137, 140, 114, 52, 137, 54, 55,
3187 56, 57, 834, 835, 140, 837, 68, 839, 840, 140,
3188 140, 83, 84, 137, 842, 87, 56, 140, 140, 68,
3189 842, 83, 84, 56, 783, 140, 140, 140, 104, 105,
3190 106, 140, 860, 89, 83, 84, 864, 140, 860, 95,
3191 96, 873, 142, 142, 61, 140, 424, 875, 90, 88,
3192 61, 697, 954, 736, 700, 117, 118, 119, 120, 121,
3193 116, 93, 904, 119, 689, 114, 115, 116, 117, 118,
3194 119, 120, 121, 953, 906, 907, 908, 96, 910, 911,
3195 640, 706, 642, 57, 91, 880, 142, 104, 105, 106,
3196 918, 849, 920, 104, 105, 106, 653, 746, 926, -1,
3197 928, 654, 934, 935, 936, 937, 52, -1, 54, 55,
3198 56, 57, -1, -1, 951, -1, -1, 54, 55, 951,
3199 57, 953, 954, 951, -1, 197, 63, 64, -1, 939,
3200 -1, -1, -1, 952, -1, 967, 968, 969, 970, 973,
3201 950, -1, -1, 89, -1, 217, -1, 219, 220, 981,
3202 796, 223, -1, 225, -1, 707, -1, 989, 230, -1,
3203 -1, -1, -1, 716, 717, 68, -1, -1, -1, 241,
3204 242, -1, 797, -1, 799, -1, -1, 729, -1, -1,
3205 83, 84, -1, -1, 809, -1, -1, -1, 740, 814,
3206 743, 744, 749, -1, 52, 752, 54, 55, 56, 57,
3207 -1, -1, 755, -1, -1, 765, -1, 767, 768, -1,
3208 -1, -1, -1, 116, 117, 118, 119, 120, 121, -1,
3209 292, 293, 294, 295, 296, 297, 298, 299, -1, -1,
3210 302, 89, 304, -1, -1, 307, -1, 95, -1, 52,
3211 793, 54, 55, 56, 57, 870, 871, 800, 801, -1,
3212 -1, 804, 16, 17, -1, -1, 20, -1, -1, -1,
3213 -1, 813, -1, 335, -1, 337, -1, 820, -1, 341,
3214 342, -1, -1, 825, 834, 835, -1, 837, 830, 839,
3215 840, -1, 46, 47, 356, -1, -1, 51, 52, -1,
3216 -1, -1, -1, -1, 851, -1, 853, -1, 62, 63,
3217 -1, 52, 927, 54, 55, 56, 57, -1, -1, -1,
3218 -1, 864, 384, 385, 40, 41, 42, 43, 44, -1,
3219 -1, -1, -1, -1, -1, -1, -1, -1, 400, -1,
3220 955, -1, 957, -1, -1, 892, -1, 894, 89, -1,
3221 -1, 898, -1, -1, 95, -1, 906, 907, 908, -1,
3222 910, 911, 424, 52, -1, 54, 55, 56, 57, -1,
3223 -1, 433, -1, -1, -1, 918, -1, 920, -1, -1,
3224 -1, -1, -1, 926, 934, 935, 936, 937, -1, -1,
3225 452, -1, -1, -1, 941, -1, 943, -1, -1, 946,
3226 89, -1, -1, -1, -1, -1, 95, 96, -1, -1,
3227 -1, -1, -1, -1, 961, -1, -1, 967, 968, 969,
3228 970, -1, -1, -1, -1, -1, -1, 116, -1, -1,
3229 119, 981, -1, -1, -1, -1, 983, -1, -1, 989,
3230 -1, 195, -1, -1, 198, 199, 200, -1, -1, -1,
3231 2, -1, 4, 142, -1, 52, -1, 54, 55, 56,
3232 57, -1, -1, 217, -1, 219, 220, -1, -1, -1,
3233 -1, 2, -1, 4, -1, -1, -1, -1, -1, -1,
3234 542, -1, 544, 52, -1, 54, 55, 56, 57, -1,
3235 552, -1, 89, -1, -1, -1, -1, 49, 95, 96,
3236 -1, 53, 564, -1, 566, 567, -1, -1, -1, -1,
3237 -1, -1, -1, -1, -1, -1, -1, -1, 49, 116,
3238 89, -1, 119, -1, 76, -1, 95, 96, -1, -1,
3239 -1, -1, -1, -1, -1, -1, 88, 89, 90, 91,
3240 -1, -1, 604, -1, -1, -1, -1, 116, 302, -1,
3241 119, -1, -1, 307, 308, 309, 310, 311, 312, 313,
3242 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
3243 324, 325, 326, 327, 328, 329, 330, 331, 332, 333,
3244 -1, 335, -1, -1, -1, -1, -1, -1, -1, -1,
3245 -1, -1, 654, -1, -1, -1, -1, -1, -1, -1,
3246 662, -1, -1, 665, 666, -1, -1, -1, -1, 671,
3247 672, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3248 76, 77, 78, 79, 80, -1, -1, 83, 84, -1,
3249 384, 385, -1, -1, -1, 697, -1, -1, 700, 701,
3250 394, 395, 396, -1, -1, 197, 400, 709, 402, 403,
3251 404, -1, -1, -1, 716, 717, 112, 113, 114, 115,
3252 116, 117, 118, 119, 120, 121, 197, -1, -1, 423,
3253 -1, -1, -1, -1, 428, -1, -1, -1, 230, -1,
3254 -1, 743, 744, 437, -1, -1, 440, -1, -1, 241,
3255 242, -1, -1, 755, -1, -1, -1, -1, 452, 230,
3256 -1, -1, -1, -1, -1, -1, -1, -1, -1, 261,
3257 241, 242, -1, -1, -1, -1, -1, -1, 472, 473,
3258 -1, 783, -1, -1, -1, -1, -1, -1, -1, -1,
3259 484, 793, -1, -1, 796, -1, -1, -1, 800, 801,
3260 292, -1, 804, -1, -1, 297, -1, -1, -1, -1,
3261 -1, -1, 304, 305, -1, -1, -1, 2, 820, 4,
3262 -1, 292, -1, -1, -1, -1, 297, -1, -1, -1,
3263 -1, -1, -1, 304, -1, -1, -1, -1, -1, -1,
3264 -1, -1, -1, -1, -1, 337, -1, 2, -1, 4,
3265 -1, -1, -1, -1, 548, -1, -1, -1, 552, -1,
3266 -1, -1, 864, -1, 49, 2, 337, 4, 53, -1,
3267 564, -1, -1, 875, -1, -1, -1, -1, -1, -1,
3268 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3269 -1, 76, -1, 587, 49, -1, -1, -1, 53, -1,
3270 -1, -1, -1, 88, 89, 90, 600, 601, -1, -1,
3271 -1, -1, 49, -1, -1, -1, 918, -1, 920, -1,
3272 -1, 76, -1, -1, 926, -1, 928, -1, -1, -1,
3273 -1, -1, 424, 88, 89, 90, 91, -1, -1, -1,
3274 -1, 433, -1, -1, -1, -1, -1, -1, -1, 951,
3275 -1, 88, -1, 424, -1, -1, -1, -1, 450, -1,
3276 -1, -1, 433, -1, 658, -1, -1, -1, 662, 663,
3277 -1, 665, 666, -1, -1, -1, -1, 671, 672, 0,
3278 -1, -1, -1, -1, -1, 679, -1, 8, 9, 10,
3279 -1, -1, 13, 14, 15, -1, 17, -1, 490, -1,
3280 -1, -1, -1, -1, -1, -1, 27, -1, -1, -1,
3281 -1, -1, 197, -1, -1, -1, 37, 38, -1, 40,
3282 41, 42, 43, 44, 718, -1, -1, -1, -1, 723,
3283 724, -1, 726, 727, -1, -1, -1, -1, -1, -1,
3284 734, -1, 197, -1, -1, 230, -1, -1, -1, -1,
3285 542, -1, 544, -1, -1, -1, 241, 242, -1, -1,
3286 197, -1, -1, -1, 85, -1, -1, -1, -1, -1,
3287 -1, 542, -1, 544, 566, 230, 261, -1, 772, -1,
3288 -1, -1, 776, -1, -1, -1, 241, 242, -1, 783,
3289 -1, -1, -1, 230, -1, 566, -1, -1, -1, -1,
3290 -1, -1, -1, -1, 241, 242, 261, 292, -1, 803,
3291 -1, -1, 297, -1, -1, -1, 137, -1, 139, 304,
3292 305, 142, 143, 615, 145, -1, 147, 821, 822, -1,
3293 -1, -1, -1, -1, -1, -1, -1, 292, -1, -1,
3294 -1, -1, 297, -1, -1, -1, -1, -1, -1, 304,
3295 305, -1, 337, -1, -1, 292, -1, -1, -1, -1,
3296 297, -1, 654, -1, -1, -1, -1, 304, -1, 661,
3297 307, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3298 -1, -1, 337, 654, -1, -1, -1, -1, -1, -1,
3299 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3300 337, -1, -1, -1, -1, -1, -1, -1, -1, 701,
3301 -1, -1, -1, -1, -1, -1, -1, 709, -1, -1,
3302 -1, -1, -1, -1, 716, 717, -1, -1, -1, -1,
3303 701, -1, -1, -1, -1, -1, -1, -1, 709, 424,
3304 -1, -1, -1, -1, -1, 716, 717, -1, 433, -1,
3305 -1, 743, 744, -1, -1, -1, -1, 951, -1, -1,
3306 -1, -1, -1, 755, -1, 450, -1, -1, -1, 424,
3307 -1, -1, 743, 744, -1, -1, -1, -1, 433, -1,
3308 -1, -1, -1, -1, 755, -1, -1, 424, -1, -1,
3309 -1, -1, -1, -1, -1, 450, 433, -1, -1, -1,
3310 -1, 793, -1, -1, -1, 490, -1, -1, 800, 801,
3311 -1, -1, 804, -1, -1, -1, -1, -1, -1, -1,
3312 -1, -1, 793, -1, -1, -1, -1, -1, 820, 800,
3313 801, -1, -1, 804, -1, 490, -1, -1, -1, -1,
3314 -1, -1, -1, -1, -1, -1, -1, -1, -1, 820,
3315 842, -1, -1, -1, -1, -1, -1, 542, -1, 544,
3316 -1, -1, -1, -1, -1, -1, -1, -1, 860, -1,
3317 -1, -1, 864, -1, -1, -1, -1, -1, -1, -1,
3318 -1, 566, -1, 875, -1, -1, -1, 542, -1, 544,
3319 -1, -1, -1, 864, -1, -1, -1, -1, -1, -1,
3320 -1, -1, -1, -1, 875, 542, -1, 544, -1, -1,
3321 -1, 566, -1, -1, -1, -1, -1, -1, -1, -1,
3322 -1, -1, -1, -1, -1, -1, 918, -1, 920, 566,
3323 615, -1, -1, -1, 926, -1, 928, -1, -1, -1,
3324 -1, -1, -1, -1, -1, -1, -1, 918, -1, 920,
3325 -1, -1, -1, -1, -1, 926, -1, 928, -1, -1,
3326 615, 646, -1, -1, -1, -1, -1, -1, -1, 654,
3327 -1, -1, -1, -1, -1, -1, 661, -1, -1, -1,
3328 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3329 -1, -1, 68, 69, 70, 71, 72, 73, 74, 654,
3330 -1, 77, 78, -1, -1, -1, 661, 83, 84, -1,
3331 -1, -1, -1, -1, -1, -1, 701, 654, -1, -1,
3332 -1, -1, -1, -1, 709, 662, -1, -1, -1, -1,
3333 -1, 716, 717, -1, -1, -1, 112, 113, 114, 115,
3334 116, 117, 118, 119, 120, 121, 701, -1, -1, -1,
3335 -1, -1, -1, -1, 709, -1, -1, -1, 743, 744,
3336 -1, 716, 717, -1, 701, -1, -1, -1, -1, -1,
3337 755, -1, 709, -1, -1, -1, -1, -1, -1, 716,
3338 717, 68, 69, 70, 71, 72, 73, 74, 743, 744,
3339 77, 78, -1, -1, -1, -1, 83, 84, -1, -1,
3340 755, -1, -1, -1, -1, -1, 743, 744, 793, -1,
3341 -1, -1, -1, -1, -1, 800, 801, -1, 755, 804,
3342 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
3343 117, 118, 119, 120, 121, 820, -1, -1, 793, -1,
3344 -1, -1, -1, -1, -1, 800, 801, -1, -1, 804,
3345 -1, -1, -1, -1, -1, -1, 793, 842, -1, -1,
3346 -1, -1, -1, 800, 801, 820, -1, 804, -1, -1,
3347 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3348 -1, -1, -1, 820, -1, -1, -1, 842, -1, -1,
3349 875, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3350 -1, -1, -1, -1, -1, 860, -1, -1, -1, 864,
3351 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3352 875, -1, -1, 860, -1, -1, -1, 864, -1, -1,
3353 -1, -1, -1, 918, -1, 920, -1, -1, 875, -1,
3354 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3355 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3356 -1, -1, -1, 918, -1, 920, -1, -1, -1, -1,
3357 -1, 926, -1, 928, -1, -1, -1, -1, -1, -1,
3358 -1, 918, -1, 920, -1, -1, -1, -1, -1, 926,
3359 -1, 928, 0, 1, -1, 3, 4, 5, 6, 7,
3360 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3361 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3362 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3363 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3364 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3365 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3366 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3367 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3368 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3369 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3370 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3371 -1, -1, -1, 0, 122, 123, 124, -1, -1, -1,
3372 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3373 17, -1, -1, -1, -1, -1, -1, 145, -1, 147,
3374 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3375 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3376 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3377 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3378 84, 68, 69, 70, 71, 72, 73, 74, 75, 76,
3379 77, 78, 79, 80, -1, -1, 83, 84, 85, -1,
3380 87, 88, -1, -1, -1, -1, 110, 94, 112, 113,
3381 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3382 107, -1, 109, 110, 111, 112, 113, 114, 115, 116,
3383 117, 118, 119, 120, 121, -1, -1, -1, -1, -1,
3384 -1, -1, -1, 147, -1, -1, -1, -1, -1, -1,
3385 137, 138, 139, 140, 0, -1, 143, 144, 145, -1,
3386 147, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3387 -1, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3388 26, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3389 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3390 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3391 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3392 83, 84, 68, 69, 70, 71, 72, 73, 74, 75,
3393 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3394 -1, -1, 88, -1, -1, -1, -1, 110, 94, 112,
3395 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3396 -1, -1, -1, -1, 110, -1, 112, 113, 114, 115,
3397 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3398 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3399 136, 137, 138, 139, 140, 0, 142, 143, 144, 145,
3400 -1, 147, -1, 8, 9, 10, -1, -1, 13, 14,
3401 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
3402 -1, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3403 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3404 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3405 72, 73, 74, 75, -1, 77, 78, -1, -1, -1,
3406 -1, 83, 84, 68, 69, 70, 71, 72, 73, 74,
3407 75, 76, 77, 78, 79, 80, -1, -1, 83, 84,
3408 85, -1, -1, 88, -1, -1, -1, -1, -1, 94,
3409 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3410 -1, -1, 107, -1, -1, 110, 111, 112, 113, 114,
3411 115, 116, 117, 118, 119, 120, 121, -1, -1, -1,
3412 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3413 -1, -1, 137, 138, 139, 140, 0, -1, 143, 144,
3414 145, -1, 147, -1, 8, 9, 10, -1, -1, 13,
3415 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
3416 -1, -1, 26, 27, 28, -1, -1, -1, -1, -1,
3417 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3418 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3419 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3420 -1, -1, -1, -1, 68, 69, 70, 71, 72, 73,
3421 74, 75, 76, 77, 78, 79, 80, -1, -1, 83,
3422 84, 85, -1, -1, 88, -1, -1, -1, -1, -1,
3423 94, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3424 -1, -1, -1, -1, -1, -1, 110, -1, 112, 113,
3425 114, 115, 116, 117, 118, 119, 120, 121, -1, -1,
3426 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3427 -1, -1, 136, 137, 138, 139, 140, 0, 142, 143,
3428 144, 145, -1, 147, -1, 8, 9, 10, -1, -1,
3429 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3430 -1, -1, -1, -1, 27, 28, -1, -1, -1, -1,
3431 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3432 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3433 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3434 -1, -1, -1, -1, -1, 68, 69, 70, 71, 72,
3435 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
3436 83, 84, 85, -1, -1, 88, -1, -1, -1, -1,
3437 -1, 94, -1, -1, -1, -1, -1, -1, -1, -1,
3438 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
3439 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3440 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3441 -1, -1, -1, -1, 137, 138, 139, 140, 0, 142,
3442 143, 144, 145, -1, 147, -1, 8, 9, 10, -1,
3443 -1, -1, 14, 15, -1, 17, -1, -1, -1, -1,
3444 -1, -1, -1, -1, 26, -1, -1, -1, -1, -1,
3445 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3446 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3448 -1, -1, -1, -1, -1, -1, 68, 69, 70, 71,
3449 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
3450 -1, 83, 84, 85, 0, 87, -1, -1, -1, -1,
3451 -1, -1, 8, 9, 10, -1, -1, -1, 14, 15,
3452 -1, 17, -1, -1, -1, -1, -1, 109, 110, -1,
3453 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3454 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3455 -1, -1, -1, -1, 136, 137, 138, 139, 140, -1,
3456 -1, 143, -1, 145, -1, 147, -1, -1, -1, -1,
3457 -1, -1, 68, 69, 70, 71, 72, 73, 74, 75,
3458 76, 77, 78, 79, 80, -1, -1, 83, 84, 85,
3459 -1, 87, -1, -1, -1, -1, -1, -1, -1, -1,
3460 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3461 -1, -1, -1, 109, 110, -1, 112, 113, 114, 115,
3462 116, 117, 118, 119, 120, 121, -1, -1, -1, -1,
3463 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3464 -1, 137, 138, 139, 140, -1, -1, 143, -1, 145,
3465 1, 147, 3, 4, 5, 6, 7, 8, 9, 10,
3466 11, 12, -1, -1, 15, 16, -1, 18, 19, 20,
3467 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3468 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3469 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3470 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3471 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3472 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3473 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3474 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3475 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3476 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3477 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3478 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3479 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3480 6, 7, -1, -1, 10, 11, 12, -1, 14, 15,
3481 16, -1, 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, -1, -1, -1, -1, -1, -1, -1, -1, 145,
3494 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3495 11, 12, -1, -1, 15, 16, 17, 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, 6, 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, 45, 46, 47, 48, 49, 50,
3512 51, 52, 53, 54, 55, 56, 57, -1, 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, -1, 97, 98, 99, 100,
3517 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3518 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3519 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3520 -1, -1, -1, -1, -1, -1, 137, -1, -1, -1,
3521 -1, -1, -1, -1, 145, 1, 147, 3, 4, 5,
3522 6, 7, -1, -1, 10, 11, 12, -1, -1, 15,
3523 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3524 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3525 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3526 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3527 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3528 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3529 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3530 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3531 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3532 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3533 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3534 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3535 6, 7, -1, 9, 10, 11, 12, -1, -1, 145,
3536 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3537 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3538 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3539 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3540 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3541 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3542 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3543 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3544 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3545 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3546 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3547 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3548 6, 7, -1, -1, -1, 11, 12, -1, -1, 145,
3549 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3550 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3551 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3552 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3553 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3554 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3555 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3556 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3557 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3558 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3559 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3560 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3561 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3562 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3563 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3564 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3565 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3566 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3567 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3568 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3569 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3570 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3571 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3572 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3573 -1, -1, -1, -1, -1, 1, -1, 3, 4, 5,
3574 6, 7, -1, -1, -1, 11, 12, 143, -1, 145,
3575 16, 147, 18, 19, 20, 21, 22, 23, 24, -1,
3576 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3577 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
3578 46, -1, 48, 49, 50, 51, 52, 53, 54, 55,
3579 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3580 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3581 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3582 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3583 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3584 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3585 -1, -1, -1, -1, -1, -1, 122, 123, 124, -1,
3586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3587 -1, 137, -1, -1, -1, -1, -1, -1, -1, 145,
3588 1, 147, 3, 4, 5, 6, 7, -1, -1, 10,
3589 11, 12, -1, -1, -1, 16, -1, 18, 19, 20,
3590 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3591 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3592 -1, -1, -1, -1, 45, 46, -1, 48, 49, 50,
3593 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3594 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3595 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3596 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3597 -1, 92, 93, -1, 95, -1, 97, 98, 99, 100,
3598 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3599 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3600 -1, 122, 123, 124, -1, -1, -1, -1, -1, -1,
3601 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3602 11, 12, -1, -1, 145, 16, 147, 18, 19, 20,
3603 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3604 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3605 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3606 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3607 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3608 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3609 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3610 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3611 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3612 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3613 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3614 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3615 32, 33, 34, 35, 36, -1, 147, 39, -1, -1,
3616 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3617 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3618 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3619 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3620 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3621 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3622 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3624 122, 123, 124, -1, -1, -1, -1, -1, -1, -1,
3625 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3626 12, -1, -1, 145, 16, 147, 18, 19, 20, 21,
3627 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3628 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3629 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3630 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3631 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3632 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3633 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3634 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3635 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3636 3, 4, 5, 6, 7, -1, -1, -1, 11, 12,
3637 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3638 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3639 33, 34, 35, 36, -1, 147, 39, -1, -1, -1,
3640 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3641 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3642 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3643 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3644 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3645 93, -1, 95, -1, 97, 98, 99, 100, 101, 102,
3646 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3647 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3648 123, 124, -1, -1, -1, -1, -1, -1, 3, 4,
3649 5, 6, 7, -1, -1, -1, 11, 12, -1, -1,
3650 -1, 16, 145, 18, 19, 20, 21, 22, 23, 24,
3651 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3652 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3653 45, 46, -1, 48, 49, 50, 51, 52, 53, 54,
3654 55, 56, 57, -1, 59, 60, -1, 62, 63, 64,
3655 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3656 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3657 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3658 95, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3659 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3660 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3661 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3662 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3663 145, 3, 4, 5, 6, 7, 8, 9, 10, 11,
3664 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
3665 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
3666 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
3667 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
3668 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
3669 -1, -1, -1, -1, 66, 67, 68, 69, 70, 71,
3670 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
3671 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
3672 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
3673 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3674 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
3675 -1, 123, 124, -1, -1, -1, -1, -1, 3, 4,
3676 5, -1, 7, -1, -1, -1, 11, 12, -1, 141,
3677 142, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3678 -1, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3679 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3680 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3681 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3682 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3683 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3684 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3685 95, 96, 97, 98, 99, 100, 101, 102, 103, -1,
3686 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3687 -1, -1, -1, -1, -1, -1, -1, 122, 123, 124,
3688 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3689 -1, 136, -1, 11, 12, -1, -1, 142, 16, -1,
3690 18, 19, 20, 21, 22, 23, 24, -1, 26, -1,
3691 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3692 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3693 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3694 58, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3695 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3696 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3697 -1, 89, 90, -1, 92, 93, -1, 95, 96, 97,
3698 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3699 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3700 -1, -1, -1, -1, 122, 123, 124, -1, -1, -1,
3701 -1, -1, 3, 4, 5, -1, 7, -1, 136, -1,
3702 11, 12, -1, -1, 142, 16, -1, 18, 19, 20,
3703 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3704 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3705 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3706 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3707 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3708 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3709 -1, -1, -1, -1, -1, 86, 87, -1, 89, 90,
3710 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3711 101, 102, 103, -1, -1, -1, -1, -1, 109, -1,
3712 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3713 7, 122, 123, 124, 11, 12, -1, -1, -1, 16,
3714 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3715 -1, 142, -1, 30, 31, 32, 33, 34, 35, 36,
3716 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3717 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3718 57, 58, 59, 60, -1, 62, 63, 64, -1, 66,
3719 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3720 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3721 -1, -1, 89, 90, -1, 92, 93, -1, 95, 96,
3722 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3723 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3724 3, 4, 5, -1, 7, 122, 123, 124, 11, 12,
3725 -1, -1, -1, 16, -1, 18, 19, 20, 21, 22,
3726 23, 24, -1, -1, -1, 142, -1, 30, 31, 32,
3727 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3728 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3729 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3730 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3731 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3732 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3733 93, -1, 95, 96, 97, 98, 99, 100, 101, 102,
3734 103, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3735 -1, -1, -1, -1, -1, -1, -1, -1, -1, 122,
3736 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3737 -1, -1, -1, -1, -1, -1, -1, -1, -1, 142,
3738 3, 4, 5, 6, 7, 8, 9, 10, 11, 12,
3739 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
3740 23, 24, 25, 26, -1, -1, -1, 30, 31, 32,
3741 33, 34, 35, 36, 37, 38, 39, -1, -1, -1,
3742 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
3743 53, 54, 55, 56, 57, -1, -1, -1, -1, -1,
3744 -1, -1, -1, 66, 67, 68, 69, 70, 71, 72,
3745 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
3746 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
3747 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
3748 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
3749 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
3750 123, 124, -1, -1, -1, -1, -1, -1, -1, -1,
3751 -1, -1, -1, -1, -1, -1, -1, -1, 141, 3,
3752 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
3753 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
3754 24, 25, 26, -1, -1, -1, 30, 31, 32, 33,
3755 34, 35, 36, 37, 38, 39, -1, -1, -1, -1,
3756 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
3757 54, -1, 56, -1, -1, -1, -1, -1, -1, -1,
3758 -1, -1, 66, 67, 68, 69, 70, 71, 72, 73,
3759 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
3760 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3761 -1, 95, -1, -1, 98, -1, -1, -1, -1, -1,
3762 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
3763 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
3764 124, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3765 -1, -1, -1, -1, -1, -1, -1, 141, 3, 4,
3766 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
3767 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
3768 25, 26, -1, -1, -1, 30, 31, 32, 33, 34,
3769 35, 36, 37, 38, 39, -1, -1, -1, -1, -1,
3770 45, 46, 47, 48, 49, 50, 51, 52, 53, -1,
3771 -1, 56, -1, -1, -1, -1, -1, -1, -1, -1,
3772 -1, 66, 67, 68, 69, 70, 71, 72, 73, 74,
3773 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
3774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3775 95, -1, -1, 98, -1, -1, -1, -1, -1, -1,
3776 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
3777 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
3778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3779 -1, -1, -1, -1, -1, -1, 141, 3, 4, 5,
3780 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
3781 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
3782 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3783 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
3784 46, 47, 48, 49, 50, 51, 52, 53, -1, -1,
3785 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3786 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
3787 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
3788 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
3789 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3790 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
3791 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
3792 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3793 12, -1, -1, -1, 16, 141, 18, 19, 20, 21,
3794 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3795 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3796 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3797 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3798 62, 63, 64, -1, -1, -1, -1, -1, -1, -1,
3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3801 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3802 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3803 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3804 122, 11, 12, -1, -1, -1, 16, -1, 18, 19,
3805 20, 21, 22, 23, 24, -1, -1, -1, 140, -1,
3806 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3807 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3808 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3809 60, -1, 62, 63, 64, -1, -1, -1, -1, -1,
3810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3811 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3812 90, -1, 92, 93, -1, -1, -1, 97, 98, 99,
3813 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3814 -1, -1, -1, -1, -1, 3, 4, 5, 6, 7,
3815 -1, -1, 122, 11, 12, -1, -1, -1, 16, -1,
3816 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3817 140, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3818 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
3819 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3820 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3821 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3822 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3823 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3824 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3825 -1, -1, -1, -1, 3, 4, 5, 6, 7, -1,
3826 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3827 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3828 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3829 39, -1, -1, -1, -1, -1, 45, 46, -1, 48,
3830 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3831 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3832 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3833 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3834 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3835 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3836 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3837 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3838 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3839 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3840 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3841 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
3842 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3843 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3844 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3845 90, -1, 92, 93, -1, 95, 96, 97, 98, 99,
3846 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3847 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3848 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3849 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3850 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3851 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3852 51, 52, 53, 54, 55, 56, 57, 58, 59, 60,
3853 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3854 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3855 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3856 -1, 92, 93, -1, 95, 96, 97, 98, 99, 100,
3857 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3858 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3859 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3860 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3861 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3862 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3863 52, 53, 54, 55, 56, 57, 58, 59, 60, -1,
3864 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3865 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3866 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3867 92, 93, -1, 95, -1, 97, 98, 99, 100, 101,
3868 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3869 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3870 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3871 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3872 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3873 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3874 53, 54, 55, 56, 57, 58, 59, 60, -1, 62,
3875 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3876 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3877 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3878 93, -1, -1, 96, 97, 98, 99, 100, 101, 102,
3879 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3880 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3881 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3882 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3883 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3884 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3885 54, 55, 56, 57, 58, 59, 60, -1, 62, 63,
3886 64, -1, 66, 67, -1, -1, -1, -1, -1, -1,
3887 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3888 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3889 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3890 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
3891 5, -1, 7, -1, -1, -1, 11, 12, 122, 123,
3892 124, 16, -1, 18, 19, 20, 21, 22, 23, 24,
3893 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
3894 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
3895 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
3896 55, 56, 57, 58, 59, 60, -1, 62, 63, 64,
3897 -1, 66, 67, -1, -1, -1, -1, -1, -1, -1,
3898 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3899 -1, 86, -1, -1, 89, 90, -1, 92, 93, -1,
3900 -1, -1, 97, 98, 99, 100, 101, 102, 103, -1,
3901 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
3902 -1, 7, -1, -1, -1, 11, 12, 122, 123, 124,
3903 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
3904 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
3905 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
3906 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
3907 56, 57, -1, 59, 60, -1, 62, 63, 64, -1,
3908 66, 67, -1, -1, -1, -1, -1, -1, -1, -1,
3909 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3910 86, -1, -1, 89, 90, -1, 92, 93, -1, 95,
3911 -1, 97, 98, 99, 100, 101, 102, 103, -1, -1,
3912 -1, -1, -1, -1, -1, -1, 3, 4, 5, -1,
3913 7, -1, -1, -1, 11, 12, 122, 123, 124, 16,
3914 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
3915 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
3916 -1, -1, 39, -1, -1, -1, -1, -1, -1, 46,
3917 -1, -1, 49, 50, 51, 52, 53, 54, 55, 56,
3918 57, -1, 59, 60, -1, 62, 63, 64, -1, 66,
3919 67, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3920 -1, -1, -1, -1, -1, -1, -1, -1, -1, 86,
3921 -1, -1, 89, 90, -1, 92, 93, -1, 95, -1,
3922 97, 98, 99, 100, 101, 102, 103, -1, -1, -1,
3923 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
3924 -1, -1, -1, 11, 12, 122, 123, 124, 16, -1,
3925 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
3926 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3927 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
3928 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3929 -1, 59, 60, -1, 62, 63, 64, -1, 66, 67,
3930 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3931 -1, -1, -1, -1, -1, -1, -1, -1, 86, -1,
3932 -1, 89, 90, -1, 92, 93, -1, 95, -1, 97,
3933 98, 99, 100, 101, 102, 103, -1, -1, -1, -1,
3934 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
3935 -1, -1, 11, 12, 122, 123, 124, 16, -1, 18,
3936 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
3937 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
3938 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
3939 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
3940 59, 60, -1, 62, 63, 64, -1, 66, 67, -1,
3941 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3942 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
3943 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
3944 99, 100, 101, 102, 103, -1, -1, -1, -1, -1,
3945 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
3946 -1, 11, 12, 122, 123, 124, 16, -1, 18, 19,
3947 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
3948 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
3949 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
3950 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
3951 60, -1, 62, 63, 64, -1, 66, 67, -1, -1,
3952 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3953 -1, -1, -1, -1, -1, -1, 86, -1, -1, 89,
3954 90, -1, 92, 93, -1, 95, -1, 97, 98, 99,
3955 100, 101, 102, 103, -1, -1, -1, -1, -1, -1,
3956 -1, -1, 3, 4, 5, -1, 7, -1, -1, -1,
3957 11, 12, 122, 123, 124, 16, -1, 18, 19, 20,
3958 21, 22, 23, 24, -1, -1, -1, -1, -1, 30,
3959 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
3960 -1, -1, -1, -1, -1, 46, -1, -1, 49, 50,
3961 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
3962 -1, 62, 63, 64, -1, 66, 67, -1, -1, -1,
3963 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3964 -1, -1, -1, -1, -1, 86, -1, -1, 89, 90,
3965 -1, 92, 93, -1, -1, -1, 97, 98, 99, 100,
3966 101, 102, 103, -1, -1, -1, -1, -1, -1, -1,
3967 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
3968 12, 122, 123, 124, 16, -1, 18, 19, 20, 21,
3969 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
3970 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
3971 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
3972 52, 53, 54, 55, 56, 57, -1, 59, 60, -1,
3973 62, 63, 64, -1, 66, 67, -1, -1, -1, -1,
3974 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3975 -1, -1, -1, -1, 86, -1, -1, 89, 90, -1,
3976 92, 93, -1, -1, -1, 97, 98, 99, 100, 101,
3977 102, 103, -1, -1, -1, -1, -1, -1, -1, -1,
3978 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
3979 122, 123, 124, 16, -1, 18, 19, 20, 21, 22,
3980 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
3981 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
3982 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
3983 53, 54, 55, 56, 57, -1, 59, 60, -1, 62,
3984 63, 64, -1, 66, 67, -1, -1, -1, -1, -1,
3985 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3986 -1, -1, -1, 86, -1, -1, 89, 90, -1, 92,
3987 93, -1, -1, -1, 97, 98, 99, 100, 101, 102,
3988 103, -1, -1, -1, -1, -1, -1, -1, -1, 3,
3989 4, 5, -1, 7, -1, -1, -1, 11, 12, 122,
3990 123, 124, 16, -1, 18, 19, 20, 21, 22, 23,
3991 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
3992 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
3993 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
3994 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
3995 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3996 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3997 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
3998 -1, 95, -1, 97, 98, 99, 100, 101, 102, 103,
3999 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4000 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
4001 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4002 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4003 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4004 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4005 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4006 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4007 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4008 89, 90, -1, 92, 93, -1, 95, -1, 97, 98,
4009 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
4010 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4011 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
4012 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4013 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4014 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4015 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4016 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4017 -1, -1, -1, -1, -1, -1, -1, -1, -1, 83,
4018 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4019 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
4020 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4021 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
4022 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4023 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4024 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4025 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4026 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4027 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4028 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4029 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
4030 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
4031 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4032 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
4033 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4034 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4035 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4036 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4037 64, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4038 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4039 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4040 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
4041 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4042 -1, -1, 11, 12, -1, -1, -1, 16, 122, 18,
4043 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4044 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4045 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4046 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4047 59, 60, -1, 62, 63, 64, -1, -1, -1, -1,
4048 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4049 -1, -1, -1, -1, -1, -1, -1, 86, -1, -1,
4050 89, 90, -1, 92, 93, -1, -1, -1, 97, 98,
4051 99, 100, 101, 102, 103, -1, -1, -1, -1, 3,
4052 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4053 -1, -1, 16, 122, 18, 19, 20, 21, 22, 23,
4054 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4055 34, 35, 36, -1, -1, 39, -1, 44, -1, -1,
4056 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4057 54, 55, 56, 57, -1, 59, 60, -1, 62, 63,
4058 64, 68, 69, 70, 71, 72, 73, 74, 75, 76,
4059 77, 78, 79, 80, -1, -1, 83, 84, -1, -1,
4060 -1, -1, 86, -1, -1, 89, 90, -1, 92, 93,
4061 -1, -1, -1, 97, 98, 99, 100, 101, 102, 103,
4062 -1, -1, -1, 110, -1, 112, 113, 114, 115, 116,
4063 117, 118, 119, 120, 121, -1, -1, -1, 122, -1,
4064 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4065 -1, -1, -1, 140, 66, 67, 68, 69, 70, 71,
4066 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4067 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4068 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
4069 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4070 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4071 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
4072 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
4073 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4074 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4075 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4076 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4077 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
4078 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
4079 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
4080 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
4081 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4082 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4083 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
4084 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4085 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
4086 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
4087 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4088 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
4089 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4090 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4091 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
4092 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4093 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4094 121, -1, 123, 124, -1, -1, -1, -1, 52, 53,
4095 -1, -1, 56, -1, -1, -1, -1, -1, -1, -1,
4096 141, 142, 66, 67, 68, 69, 70, 71, 72, 73,
4097 74, -1, -1, 77, 78, -1, -1, 81, 82, 83,
4098 84, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4099 -1, 95, -1, -1, -1, -1, -1, -1, -1, -1,
4100 -1, -1, -1, -1, -1, -1, -1, -1, 112, 113,
4101 114, 115, 116, 117, 118, 119, 120, 121, -1, 123,
4102 124, -1, -1, -1, -1, 52, 53, -1, -1, 56,
4103 -1, -1, -1, -1, -1, -1, -1, 141, 142, 66,
4104 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
4105 77, 78, -1, -1, 81, 82, 83, 84, -1, -1,
4106 -1, -1, -1, -1, -1, -1, -1, -1, 95, -1,
4107 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4108 -1, -1, -1, -1, -1, 112, 113, 114, 115, 116,
4109 117, 118, 119, 120, 121, -1, 123, 124, -1, -1,
4110 -1, -1, 52, 53, -1, -1, 56, -1, -1, -1,
4111 -1, -1, -1, -1, 141, 142, 66, 67, 68, 69,
4112 70, 71, 72, 73, 74, -1, -1, 77, 78, -1,
4113 -1, 81, 82, 83, 84, -1, -1, -1, -1, -1,
4114 -1, -1, -1, -1, -1, 95, -1, -1, -1, -1,
4115 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4116 -1, -1, 112, 113, 114, 115, 116, 117, 118, 119,
4117 120, 121, -1, 123, 124, -1, -1, -1, -1, 52,
4118 53, -1, -1, 56, -1, -1, -1, -1, -1, -1,
4119 -1, 141, 142, 66, 67, 68, 69, 70, 71, 72,
4120 73, 74, -1, -1, 77, 78, -1, -1, 81, 82,
4121 83, 84, -1, -1, -1, -1, -1, -1, -1, -1,
4122 -1, -1, 95, -1, -1, -1, -1, -1, -1, -1,
4123 -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
4124 113, 114, 115, 116, 117, 118, 119, 120, 121, -1,
4125 123, 124, -1, -1, -1, -1, 52, 53, -1, -1,
4126 56, -1, -1, -1, -1, -1, -1, -1, 141, 142,
4127 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
4128 -1, 77, 78, -1, -1, 81, 82, 83, 84, -1,
4129 -1, -1, -1, -1, -1, -1, -1, -1, -1, 95,
4130 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4131 -1, -1, -1, -1, -1, -1, 112, 113, 114, 115,
4132 116, 117, 118, 119, 120, 121, -1, 123, 124, -1,
4133 -1, -1, -1, 52, 53, -1, -1, 56, -1, -1,
4134 -1, -1, -1, -1, -1, 141, 142, 66, 67, 68,
4135 69, 70, 71, 72, 73, 74, -1, -1, 77, 78,
4136 -1, -1, 81, 82, 83, 84, -1, -1, -1, -1,
4137 -1, -1, -1, -1, -1, -1, 95, -1, -1, -1,
4138 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4139 -1, -1, -1, 112, 113, 114, 115, 116, 117, 118,
4140 119, 120, 121, -1, 123, 124, -1, -1, -1, -1,
4141 52, 53, -1, -1, 56, -1, -1, -1, -1, -1,
4142 -1, -1, 141, 142, 66, 67, 68, 69, 70, 71,
4143 72, 73, 74, -1, -1, 77, 78, -1, -1, 81,
4144 82, 83, 84, -1, -1, -1, -1, -1, -1, -1,
4145 -1, -1, -1, 95, -1, -1, -1, -1, -1, -1,
4146 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4147 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4148 -1, 123, 124, -1, -1, -1, -1, 52, 53, -1,
4149 -1, 56, -1, -1, -1, -1, -1, -1, -1, 141,
4150 142, 66, 67, 68, 69, 70, 71, 72, 73, 74,
4151 -1, -1, 77, 78, -1, -1, 81, 82, 83, 84,
4152 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4153 95, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4154 -1, -1, -1, -1, -1, -1, -1, 112, 113, 114,
4155 115, 116, 117, 118, 119, 120, 121, -1, 123, 124,
4156 -1, -1, -1, -1, 52, 53, -1, -1, 56, -1,
4157 -1, -1, -1, -1, -1, -1, 141, 142, 66, 67,
4158 68, 69, 70, 71, 72, 73, 74, -1, -1, 77,
4159 78, -1, -1, 81, 82, 83, 84, -1, -1, -1,
4160 -1, -1, -1, -1, -1, -1, -1, 95, -1, -1,
4161 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4162 -1, -1, -1, -1, 112, 113, 114, 115, 116, 117,
4163 118, 119, 120, 121, -1, 123, 124, -1, -1, -1,
4164 -1, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4165 -1, -1, -1, 141, 142, 66, 67, 68, 69, 70,
4166 71, 72, 73, 74, -1, -1, 77, 78, -1, -1,
4167 81, 82, 83, 84, -1, -1, -1, -1, -1, -1,
4168 -1, -1, -1, -1, 95, -1, -1, -1, -1, -1,
4169 -1, -1, 44, -1, -1, -1, -1, -1, -1, -1,
4170 -1, 112, 113, 114, 115, 116, 117, 118, 119, 120,
4171 121, 44, 123, 124, -1, -1, 68, 69, 70, 71,
4172 72, 73, 74, 75, 76, 77, 78, 79, 80, -1,
4173 141, 83, 84, -1, -1, 68, 69, 70, 71, 72,
4174 73, 74, 75, 76, 77, 78, 79, 80, -1, -1,
4175 83, 84, -1, -1, -1, -1, -1, -1, 110, -1,
4176 112, 113, 114, 115, 116, 117, 118, 119, 120, 121,
4177 -1, -1, -1, -1, -1, -1, -1, 110, -1, 112,
4178 113, 114, 115, 116, 117, 118, 119, 120, 121
4185 0, 149, 150, 0, 1, 3, 4, 5, 6, 7,
4186 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4187 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4188 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4189 57, 59, 60, 62, 63, 64, 66, 67, 86, 89,
4190 90, 92, 93, 95, 97, 98, 99, 100, 101, 102,
4191 103, 122, 123, 124, 151, 152, 153, 158, 160, 161,
4192 163, 164, 167, 168, 170, 171, 172, 174, 175, 185,
4193 199, 216, 217, 218, 219, 220, 221, 222, 223, 224,
4194 225, 226, 249, 250, 260, 261, 262, 263, 264, 265,
4195 266, 269, 279, 281, 282, 283, 284, 285, 286, 287,
4196 310, 321, 153, 3, 4, 5, 6, 7, 8, 9,
4197 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
4198 20, 21, 22, 23, 24, 25, 26, 30, 31, 32,
4199 33, 34, 35, 36, 37, 38, 39, 45, 46, 47,
4200 48, 49, 50, 51, 52, 53, 56, 66, 67, 68,
4201 69, 70, 71, 72, 73, 74, 77, 78, 81, 82,
4202 83, 84, 95, 112, 113, 114, 115, 116, 117, 118,
4203 119, 120, 121, 123, 124, 141, 178, 179, 180, 181,
4204 183, 184, 279, 281, 39, 58, 86, 89, 95, 96,
4205 123, 167, 175, 185, 187, 192, 195, 197, 216, 283,
4206 284, 286, 287, 308, 309, 192, 192, 142, 193, 194,
4207 142, 189, 193, 142, 147, 315, 54, 180, 315, 154,
4208 136, 21, 22, 30, 31, 32, 185, 216, 310, 185,
4209 56, 1, 89, 156, 157, 158, 169, 170, 321, 161,
4210 188, 197, 308, 321, 187, 307, 308, 321, 46, 86,
4211 122, 140, 174, 199, 216, 283, 284, 287, 242, 243,
4212 54, 55, 57, 178, 272, 280, 271, 272, 273, 146,
4213 267, 146, 270, 59, 60, 163, 185, 185, 145, 147,
4214 314, 319, 320, 40, 41, 42, 43, 44, 37, 38,
4215 28, 247, 109, 140, 89, 95, 171, 109, 68, 69,
4216 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
4217 80, 83, 84, 110, 112, 113, 114, 115, 116, 117,
4218 118, 119, 120, 121, 85, 138, 139, 200, 161, 162,
4219 162, 203, 205, 162, 314, 320, 86, 168, 175, 216,
4220 232, 283, 284, 287, 52, 56, 83, 86, 176, 177,
4221 216, 283, 284, 287, 177, 33, 34, 35, 36, 49,
4222 50, 51, 52, 56, 142, 178, 285, 305, 85, 139,
4223 26, 136, 251, 263, 87, 87, 189, 193, 251, 140,
4224 187, 56, 187, 187, 109, 88, 140, 196, 321, 85,
4225 138, 139, 87, 87, 140, 196, 192, 315, 316, 192,
4226 191, 192, 197, 308, 321, 161, 316, 161, 54, 63,
4227 64, 159, 142, 186, 136, 156, 85, 139, 87, 158,
4228 169, 143, 314, 320, 316, 201, 144, 140, 147, 318,
4229 140, 318, 137, 318, 315, 56, 59, 60, 171, 173,
4230 140, 85, 138, 139, 244, 61, 104, 105, 106, 274,
4231 106, 274, 106, 65, 274, 106, 106, 268, 274, 106,
4232 61, 106, 68, 68, 145, 153, 162, 162, 162, 162,
4233 158, 161, 161, 248, 95, 163, 187, 197, 198, 169,
4234 140, 174, 140, 160, 163, 175, 185, 187, 198, 185,
4235 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4236 185, 185, 185, 185, 185, 185, 185, 185, 185, 185,
4237 185, 185, 185, 185, 185, 52, 53, 56, 183, 189,
4238 311, 312, 191, 52, 53, 56, 183, 189, 311, 155,
4239 156, 13, 228, 319, 228, 162, 162, 314, 17, 254,
4240 56, 85, 138, 139, 25, 161, 52, 56, 176, 1,
4241 113, 288, 319, 85, 138, 139, 212, 306, 213, 85,
4242 139, 313, 52, 56, 311, 311, 253, 252, 163, 185,
4243 163, 185, 94, 165, 182, 185, 187, 95, 187, 195,
4244 308, 52, 56, 191, 52, 56, 309, 316, 143, 316,
4245 140, 140, 316, 180, 202, 185, 151, 137, 311, 311,
4246 185, 316, 158, 316, 308, 140, 173, 52, 56, 191,
4247 52, 56, 52, 54, 55, 56, 57, 89, 95, 96,
4248 116, 119, 142, 245, 291, 292, 293, 294, 295, 296,
4249 299, 300, 301, 302, 303, 276, 275, 146, 274, 146,
4250 185, 185, 76, 114, 237, 238, 321, 187, 140, 316,
4251 173, 140, 109, 44, 315, 87, 87, 189, 193, 315,
4252 317, 87, 87, 189, 190, 193, 321, 10, 227, 8,
4253 256, 321, 156, 13, 156, 27, 229, 319, 229, 254,
4254 197, 227, 52, 56, 191, 52, 56, 207, 210, 319,
4255 289, 209, 52, 56, 176, 191, 155, 161, 142, 290,
4256 291, 214, 190, 193, 190, 193, 237, 237, 44, 166,
4257 180, 187, 196, 87, 87, 317, 87, 87, 308, 161,
4258 137, 318, 171, 317, 109, 52, 89, 95, 233, 234,
4259 235, 293, 291, 29, 107, 246, 140, 304, 321, 140,
4260 304, 52, 140, 304, 52, 277, 54, 55, 57, 278,
4261 287, 52, 145, 236, 239, 295, 297, 298, 301, 303,
4262 321, 156, 95, 187, 173, 185, 111, 163, 185, 163,
4263 185, 165, 144, 87, 163, 185, 163, 185, 165, 187,
4264 198, 257, 321, 15, 231, 321, 14, 230, 231, 231,
4265 204, 206, 227, 140, 228, 317, 162, 319, 162, 155,
4266 317, 227, 316, 291, 155, 319, 178, 156, 156, 185,
4267 237, 87, 140, 316, 187, 235, 140, 293, 140, 316,
4268 239, 156, 156, 294, 299, 301, 303, 295, 296, 301,
4269 295, 156, 109, 52, 240, 241, 292, 239, 114, 140,
4270 304, 140, 304, 140, 304, 10, 187, 185, 163, 185,
4271 88, 258, 321, 156, 9, 259, 321, 162, 227, 227,
4272 156, 156, 187, 156, 229, 211, 319, 227, 316, 227,
4273 215, 10, 137, 156, 316, 234, 140, 95, 233, 316,
4274 10, 137, 140, 304, 140, 304, 140, 304, 140, 304,
4275 304, 137, 86, 216, 140, 114, 298, 301, 295, 297,
4276 301, 295, 86, 175, 216, 283, 284, 287, 228, 156,
4277 228, 227, 227, 231, 254, 255, 208, 155, 290, 137,
4278 140, 234, 140, 293, 295, 301, 295, 295, 56, 85,
4279 241, 140, 304, 140, 304, 304, 140, 304, 304, 56,
4280 85, 138, 139, 156, 156, 156, 227, 155, 234, 140,
4281 304, 140, 304, 304, 304, 52, 56, 295, 301, 295,
4282 295, 52, 56, 191, 52, 56, 256, 230, 227, 227,
4283 234, 295, 304, 140, 304, 304, 304, 317, 304, 295,
4287 #define yyerrok (yyerrstatus = 0)
4288 #define yyclearin (yychar = YYEMPTY)
4289 #define YYEMPTY (-2)
4292 #define YYACCEPT goto yyacceptlab
4293 #define YYABORT goto yyabortlab
4294 #define YYERROR goto yyerrorlab
4301 #define YYFAIL goto yyerrlab
4303 #define YYRECOVERING() (!!yyerrstatus)
4305 #define YYBACKUP(Token, Value) \
4307 if (yychar == YYEMPTY && yylen == 1) \
4311 yytoken = YYTRANSLATE (yychar); \
4317 parser_yyerror (parser, YY_("syntax error: cannot back up")); \
4324 #define YYERRCODE 256
4331 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
4332 #ifndef YYLLOC_DEFAULT
4333 # define YYLLOC_DEFAULT(Current, Rhs, N) \
4337 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
4338 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
4339 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
4340 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
4344 (Current).first_line = (Current).last_line = \
4345 YYRHSLOC (Rhs, 0).last_line; \
4346 (Current).first_column = (Current).last_column = \
4347 YYRHSLOC (Rhs, 0).last_column; \
4357 #ifndef YY_LOCATION_PRINT
4358 # if YYLTYPE_IS_TRIVIAL
4359 # define YY_LOCATION_PRINT(File, Loc) \
4360 fprintf (File, "%d.%d-%d.%d", \
4361 (Loc).first_line, (Loc).first_column, \
4362 (Loc).last_line, (Loc).last_column)
4364 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
4372 # define YYLEX yylex (&yylval, YYLEX_PARAM)
4374 # define YYLEX yylex (&yylval)
4382 # define YYFPRINTF fprintf
4385 # define YYDPRINTF(Args) \
4391 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
4395 YYFPRINTF (stderr, "%s ", Title); \
4396 yy_symbol_print (stderr, \
4397 Type, Value, parser); \
4398 YYFPRINTF (stderr, "\n"); \
4408 #if (defined __STDC__ || defined __C99__FUNC__ \
4409 || defined __cplusplus || defined _MSC_VER)
4426 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
4442 #if (defined __STDC__ || defined __C99__FUNC__ \
4443 || defined __cplusplus || defined _MSC_VER)
4456 YYFPRINTF (yyoutput,
"token %s (", yytname[yytype]);
4458 YYFPRINTF (yyoutput,
"nterm %s (", yytname[yytype]);
4469 #if (defined __STDC__ || defined __C99__FUNC__ \
4470 || defined __cplusplus || defined _MSC_VER)
4481 for (; bottom <=
top; ++bottom)
4486 # define YY_STACK_PRINT(Bottom, Top) \
4489 yy_stack_print ((Bottom), (Top)); \
4497 #if (defined __STDC__ || defined __C99__FUNC__ \
4498 || defined __cplusplus || defined _MSC_VER)
4509 int yynrhs = yyr2[yyrule];
4511 unsigned long int yylno = yyrline[yyrule];
4512 YYFPRINTF (stderr,
"Reducing stack by rule %d (line %lu):\n",
4515 for (yyi = 0; yyi < yynrhs; yyi++)
4517 fprintf (stderr,
" $%d = ", yyi + 1);
4519 &(yyvsp[(yyi + 1) - (yynrhs)])
4521 fprintf (stderr,
"\n");
4525 # define YY_REDUCE_PRINT(Rule) \
4528 yy_reduce_print (yyvsp, Rule, parser); \
4537 # define YYDPRINTF(Args)
4538 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
4539 # define YY_STACK_PRINT(Bottom, Top)
4540 # define YY_REDUCE_PRINT(Rule)
4546 # define YYINITDEPTH 200
4557 # define YYMAXDEPTH 10000
4565 # if defined __GLIBC__ && defined _STRING_H
4566 # define yystrlen strlen
4569 #if (defined __STDC__ || defined __C99__FUNC__ \
4570 || defined __cplusplus || defined _MSC_VER)
4580 for (yylen = 0; yystr[yylen]; yylen++)
4588 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
4589 # define yystpcpy stpcpy
4593 #if (defined __STDC__ || defined __C99__FUNC__ \
4594 || defined __cplusplus || defined _MSC_VER)
4596 yystpcpy (
char *yydest,
const char *yysrc)
4605 const char *yys = yysrc;
4607 while ((*yyd++ = *yys++) !=
'\0')
4629 char const *yyp = yystr;
4636 goto do_not_strip_quotes;
4640 goto do_not_strip_quotes;
4653 do_not_strip_quotes: ;
4659 return yystpcpy (yyres, yystr) - yyres;
4673 int yyn = yypact[yystate];
4683 int yysize_overflow = 0;
4684 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
4685 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
4691 YY_(
"syntax error, unexpected %s");
4692 YY_(
"syntax error, unexpected %s, expecting %s");
4693 YY_(
"syntax error, unexpected %s, expecting %s or %s");
4694 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s");
4695 YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s");
4699 static char const yyunexpected[] =
"syntax error, unexpected %s";
4700 static char const yyexpecting[] =
", expecting %s";
4701 static char const yyor[] =
" or %s";
4702 char yyformat[
sizeof yyunexpected
4703 +
sizeof yyexpecting - 1
4704 + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)
4705 * (
sizeof yyor - 1))];
4706 char const *yyprefix = yyexpecting;
4710 int yyxbegin = yyn < 0 ? -yyn : 0;
4713 int yychecklim =
YYLAST - yyn + 1;
4717 yyarg[0] = yytname[yytype];
4718 yyfmt =
yystpcpy (yyformat, yyunexpected);
4720 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
4721 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR)
4723 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
4727 yyformat[
sizeof yyunexpected - 1] =
'\0';
4730 yyarg[yycount++] = yytname[yyx];
4731 yysize1 = yysize +
yytnamerr (0, yytname[yyx]);
4732 yysize_overflow |= (yysize1 < yysize);
4734 yyfmt =
yystpcpy (yyfmt, yyprefix);
4738 yyf =
YY_(yyformat);
4740 yysize_overflow |= (yysize1 < yysize);
4743 if (yysize_overflow)
4751 char *yyp = yyresult;
4753 while ((*yyp = *yyf) !=
'\0')
4755 if (*yyp ==
'%' && yyf[1] ==
's' && yyi < yycount)
4778 #if (defined __STDC__ || defined __C99__FUNC__ \
4779 || defined __cplusplus || defined _MSC_VER)
4809 #ifdef YYPARSE_PARAM
4810 #if defined __STDC__ || defined __cplusplus
4816 #if defined __STDC__ || defined __cplusplus
4832 #ifdef YYPARSE_PARAM
4833 #if (defined __STDC__ || defined __C99__FUNC__ \
4834 || defined __cplusplus || defined _MSC_VER)
4840 void *YYPARSE_PARAM;
4843 #if (defined __STDC__ || defined __C99__FUNC__ \
4844 || defined __cplusplus || defined _MSC_VER)
4873 char *yymsg = yymsgbuf;
4874 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
4897 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N))
4910 YYDPRINTF ((stderr,
"Starting parse\n"));
4938 if (yyss + yystacksize - 1 <= yyssp)
4941 YYSIZE_T yysize = yyssp - yyss + 1;
4956 yyoverflow (
YY_(
"memory exhausted"),
4957 &yyss1, yysize *
sizeof (*yyssp),
4958 &yyvs1, yysize *
sizeof (*yyvsp),
4966 # ifndef YYSTACK_RELOCATE
4967 goto yyexhaustedlab;
4971 goto yyexhaustedlab;
4981 goto yyexhaustedlab;
4985 # undef YYSTACK_RELOCATE
4992 yyssp = yyss + yysize - 1;
4993 yyvsp = yyvs + yysize - 1;
4996 YYDPRINTF ((stderr,
"Stack size increased to %lu\n",
4997 (
unsigned long int) yystacksize));
4999 if (yyss + yystacksize - 1 <= yyssp)
5003 YYDPRINTF ((stderr,
"Entering state %d\n", yystate));
5016 yyn = yypact[yystate];
5025 YYDPRINTF ((stderr,
"Reading a token: "));
5029 if (yychar <=
YYEOF)
5031 yychar = yytoken =
YYEOF;
5032 YYDPRINTF ((stderr,
"Now at end of input.\n"));
5043 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5066 if (yychar !=
YYEOF)
5079 yyn = yydefact[yystate];
5100 yyval = yyvsp[1-yylen];
5107 #line 782 "ripper.y"
5119 #line 791 "ripper.y"
5126 NODE *node = (yyvsp[(2) - (2)].
val);
5127 while (node->nd_next) {
5128 node = node->nd_next;
5135 (yyval.
val) = (yyvsp[(2) - (2)].val);
5136 parser->result = dispatch1(program, (yyval.
val));
5143 #line 814 "ripper.y"
5150 (yyval.
val) = (yyvsp[(1) - (2)].val);
5155 #line 825 "ripper.y"
5160 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5167 #line 834 "ripper.y"
5172 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5178 #line 842 "ripper.y"
5183 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5189 #line 850 "ripper.y"
5196 #line 857 "ripper.y"
5209 #line 867 "ripper.y"
5213 (yyvsp[(4) - (5)].val));
5218 (yyval.
val) = dispatch1(BEGIN, (yyvsp[(4) - (5)].val));
5224 #line 884 "ripper.y"
5227 (yyval.
val) = (yyvsp[(1) - (4)].val);
5228 if ((yyvsp[(2) - (4)].val)) {
5229 (yyval.
val) =
NEW_RESCUE((yyvsp[(1) - (4)].val), (yyvsp[(2) - (4)].
val), (yyvsp[(3) - (4)].val));
5231 else if ((yyvsp[(3) - (4)].val)) {
5232 rb_warn0(
"else without rescue is useless");
5235 if ((yyvsp[(4) - (4)].val)) {
5245 (yyval.
val) = dispatch4(bodystmt,
5255 #line 914 "ripper.y"
5262 (yyval.
val) = (yyvsp[(1) - (2)].val);
5267 #line 925 "ripper.y"
5272 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new),
5279 #line 934 "ripper.y"
5284 (yyval.
val) = dispatch2(stmts_add,
dispatch0(stmts_new), (yyvsp[(1) - (1)].
val));
5290 #line 942 "ripper.y"
5295 (yyval.
val) = dispatch2(stmts_add, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5301 #line 950 "ripper.y"
5308 #line 955 "ripper.y"
5313 #line 956 "ripper.y"
5316 (yyval.
val) =
NEW_ALIAS((yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
5318 (yyval.
val) = dispatch2(
alias, (yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
5324 #line 964 "ripper.y"
5329 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5335 #line 972 "ripper.y"
5340 buf[1] = (char)(yyvsp[(3) - (3)].val)->nd_nth;
5343 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5349 #line 983 "ripper.y"
5352 yyerror(
"can't make alias for the number variables");
5355 (yyval.
val) = dispatch2(var_alias, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
5356 (yyval.
val) = dispatch1(alias_error, (yyval.
val));
5362 #line 993 "ripper.y"
5365 (yyval.
val) = (yyvsp[(2) - (2)].val);
5367 (yyval.
val) = dispatch1(undef, (yyvsp[(2) - (2)].val));
5373 #line 1001 "ripper.y"
5379 (yyval.
val) = dispatch2(if_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5385 #line 1010 "ripper.y"
5391 (yyval.
val) = dispatch2(unless_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5397 #line 1019 "ripper.y"
5401 (yyval.
val) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val)->nd_body, 0);
5404 (yyval.
val) =
NEW_WHILE(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val), 1);
5407 (yyval.
val) = dispatch2(while_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5413 #line 1032 "ripper.y"
5417 (yyval.
val) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val)->nd_body, 0);
5420 (yyval.
val) =
NEW_UNTIL(
cond((yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val), 1);
5423 (yyval.
val) = dispatch2(until_mod, (yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].
val));
5429 #line 1045 "ripper.y"
5435 (yyval.
val) = dispatch2(rescue_mod, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5441 #line 1054 "ripper.y"
5444 rb_warn0(
"END in method; use at_exit");
5448 NODE_SCOPE, 0 , (yyvsp[(3) - (4)].val) , 0 ));
5450 (yyval.
val) = dispatch1(
END, (yyvsp[(3) - (4)].val));
5456 #line 1067 "ripper.y"
5460 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5461 (yyval.
val) = (yyvsp[(1) - (3)].val);
5463 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5469 #line 1077 "ripper.y"
5473 if ((yyvsp[(1) - (3)].val)) {
5475 if ((yyvsp[(2) - (3)].val) ==
tOROP) {
5476 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5482 else if ((yyvsp[(2) - (3)].val) ==
tANDOP) {
5483 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5487 (yyval.
val) = (yyvsp[(1) - (3)].val);
5495 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
5501 #line 1106 "ripper.y"
5507 if (!(yyvsp[(3) - (6)].val)) (yyvsp[(3) - (6)].
val) =
NEW_ZARRAY();
5508 args =
arg_concat((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
5509 if ((yyvsp[(5) - (6)].val) ==
tOROP) {
5510 (yyvsp[(5) - (6)].
val) = 0;
5512 else if ((yyvsp[(5) - (6)].val) ==
tANDOP) {
5513 (yyvsp[(5) - (6)].
val) = 1;
5518 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].val),
escape_Qundef((yyvsp[(3) - (6)].val)));
5519 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
5525 #line 1127 "ripper.y"
5529 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5530 (yyvsp[(4) - (5)].
val) = 0;
5532 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5533 (yyvsp[(4) - (5)].
val) = 1;
5535 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5538 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
5539 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5545 #line 1144 "ripper.y"
5549 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5550 (yyvsp[(4) - (5)].
val) = 0;
5552 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5553 (yyvsp[(4) - (5)].
val) = 1;
5555 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5558 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
5559 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5565 #line 1161 "ripper.y"
5568 yyerror(
"constant re-assignment");
5571 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
5572 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5573 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5579 #line 1172 "ripper.y"
5583 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
5584 (yyvsp[(4) - (5)].
val) = 0;
5586 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
5587 (yyvsp[(4) - (5)].
val) = 1;
5589 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
5592 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_intern(
"::"), (yyvsp[(3) - (5)].
val));
5593 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
5599 #line 1189 "ripper.y"
5605 (yyval.
val) = dispatch2(assign, dispatch1(var_field, (yyvsp[(1) - (3)].val)), (yyvsp[(3) - (3)].val));
5606 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
5612 #line 1199 "ripper.y"
5618 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5624 #line 1208 "ripper.y"
5627 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5628 (yyval.
val) = (yyvsp[(1) - (3)].val);
5630 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5636 #line 1217 "ripper.y"
5639 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
5640 (yyval.
val) = (yyvsp[(1) - (3)].val);
5642 (yyval.
val) = dispatch2(massign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5648 #line 1229 "ripper.y"
5654 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5660 #line 1238 "ripper.y"
5666 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5672 #line 1251 "ripper.y"
5677 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"and"), (yyvsp[(3) - (3)].
val));
5683 #line 1259 "ripper.y"
5688 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"or"), (yyvsp[(3) - (3)].
val));
5694 #line 1267 "ripper.y"
5705 #line 1275 "ripper.y"
5716 #line 1286 "ripper.y"
5720 (yyval.
val) = (yyvsp[(1) - (1)].val);
5723 (yyval.
val) = (yyvsp[(1) - (1)].val);
5729 #line 1303 "ripper.y"
5732 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5734 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
5735 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5741 #line 1312 "ripper.y"
5744 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5746 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_intern(
"::"), (yyvsp[(3) - (4)].
val));
5747 (yyval.
val) = method_arg((yyval.
val), (yyvsp[(4) - (4)].
val));
5753 #line 1323 "ripper.y"
5764 #line 1333 "ripper.y"
5767 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
5770 (yyval.
val) = dispatch2(brace_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
5777 #line 1345 "ripper.y"
5780 (yyval.
val) =
NEW_FCALL((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
5783 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
5789 #line 1354 "ripper.y"
5794 (yyval.
val) = (yyvsp[(3) - (3)].val);
5797 (yyval.
val) = dispatch2(command, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
5798 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(3) - (3)].
val));
5804 #line 1366 "ripper.y"
5807 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5816 #line 1375 "ripper.y"
5820 (yyvsp[(5) - (5)].
val)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val));
5821 (yyval.
val) = (yyvsp[(5) - (5)].val);
5825 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5831 #line 1387 "ripper.y"
5834 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
5843 #line 1396 "ripper.y"
5847 (yyvsp[(5) - (5)].
val)->
nd_iter =
NEW_CALL((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val));
5848 (yyval.
val) = (yyvsp[(5) - (5)].val);
5852 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(5) - (5)].
val));
5858 #line 1408 "ripper.y"
5864 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].val));
5870 #line 1417 "ripper.y"
5876 (yyval.
val) = dispatch1(yield, (yyvsp[(2) - (2)].val));
5882 #line 1426 "ripper.y"
5887 (yyval.
val) = dispatch1(
return, (yyvsp[(2) - (2)].val));
5893 #line 1434 "ripper.y"
5898 (yyval.
val) = dispatch1(
break, (yyvsp[(2) - (2)].val));
5904 #line 1442 "ripper.y"
5909 (yyval.
val) = dispatch1(next, (yyvsp[(2) - (2)].val));
5915 #line 1453 "ripper.y"
5918 (yyval.
val) = (yyvsp[(2) - (3)].val);
5920 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
5926 #line 1464 "ripper.y"
5931 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
5937 #line 1474 "ripper.y"
5942 (yyval.
val) = (yyvsp[(1) - (1)].val);
5948 #line 1482 "ripper.y"
5953 (yyval.
val) = mlhs_add((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
5959 #line 1490 "ripper.y"
5962 (yyval.
val) =
NEW_MASGN((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5964 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
5970 #line 1498 "ripper.y"
5975 (yyvsp[(1) - (5)].
val) = mlhs_add_star((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
5976 (yyval.
val) = mlhs_add((yyvsp[(1) - (5)].val), (yyvsp[(5) - (5)].
val));
5982 #line 1507 "ripper.y"
5987 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (2)].val),
Qnil);
5993 #line 1515 "ripper.y"
5998 (yyvsp[(1) - (4)].
val) = mlhs_add_star((yyvsp[(1) - (4)].val),
Qnil);
5999 (yyval.
val) = mlhs_add((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].
val));
6005 #line 1524 "ripper.y"
6010 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (2)].
val));
6016 #line 1532 "ripper.y"
6021 (yyvsp[(2) - (4)].
val) = mlhs_add_star(mlhs_new(), (yyvsp[(2) - (4)].
val));
6022 (yyval.
val) = mlhs_add((yyvsp[(2) - (4)].val), (yyvsp[(4) - (4)].
val));
6028 #line 1541 "ripper.y"
6033 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6039 #line 1549 "ripper.y"
6044 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
6045 (yyval.
val) = mlhs_add((yyval.
val), (yyvsp[(3) - (3)].
val));
6051 #line 1561 "ripper.y"
6054 (yyval.
val) = (yyvsp[(2) - (3)].val);
6056 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
6062 #line 1571 "ripper.y"
6067 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (2)].
val));
6073 #line 1579 "ripper.y"
6078 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
6084 #line 1589 "ripper.y"
6089 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
6095 #line 1597 "ripper.y"
6100 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6106 #line 1607 "ripper.y"
6113 #line 1611 "ripper.y"
6120 #line 1615 "ripper.y"
6123 (yyval.
val) =
aryset((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
6125 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
6131 #line 1623 "ripper.y"
6134 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6136 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6142 #line 1631 "ripper.y"
6145 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6147 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6153 #line 1639 "ripper.y"
6156 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6158 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6164 #line 1647 "ripper.y"
6168 yyerror(
"dynamic constant assignment");
6172 yyerror(
"dynamic constant assignment");
6173 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6179 #line 1659 "ripper.y"
6183 yyerror(
"dynamic constant assignment");
6186 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].val));
6192 #line 1669 "ripper.y"
6198 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (1)].val));
6199 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6205 #line 1681 "ripper.y"
6211 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6217 #line 1690 "ripper.y"
6223 (yyval.
val) = dispatch1(var_field, (yyval.
val));
6229 #line 1699 "ripper.y"
6232 (yyval.
val) =
aryset((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
6234 (yyval.
val) = dispatch2(aref_field, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
6240 #line 1707 "ripper.y"
6243 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6245 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6251 #line 1715 "ripper.y"
6254 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6256 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
6262 #line 1723 "ripper.y"
6265 (yyval.
val) =
attrset((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6267 (yyval.
val) = dispatch3(field, (yyvsp[(1) - (3)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (3)].
val));
6273 #line 1731 "ripper.y"
6277 yyerror(
"dynamic constant assignment");
6280 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6282 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6289 #line 1744 "ripper.y"
6293 yyerror(
"dynamic constant assignment");
6296 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (2)].val));
6298 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6305 #line 1757 "ripper.y"
6311 (yyval.
val) = dispatch1(assign_error, (yyvsp[(1) - (1)].val));
6317 #line 1768 "ripper.y"
6320 yyerror(
"class/module name must be CONSTANT");
6322 (yyval.
val) = dispatch1(class_name_error, (yyvsp[(1) - (1)].val));
6328 #line 1779 "ripper.y"
6333 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].val));
6339 #line 1787 "ripper.y"
6344 (yyval.
val) = dispatch1(const_ref, (yyvsp[(1) - (1)].val));
6350 #line 1795 "ripper.y"
6355 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6361 #line 1808 "ripper.y"
6364 (yyval.
val) = (yyvsp[(1) - (1)].val);
6369 #line 1813 "ripper.y"
6373 (yyval.
val) = (yyvsp[(1) - (1)].
id);
6375 (yyval.
val) = (yyvsp[(1) - (1)].val);
6381 #line 1828 "ripper.y"
6386 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].val));
6392 #line 1839 "ripper.y"
6403 #line 1846 "ripper.y"
6408 #line 1847 "ripper.y"
6413 rb_ary_push((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].val));
6419 #line 1856 "ripper.y"
6424 #line 1857 "ripper.y"
6429 #line 1858 "ripper.y"
6434 #line 1859 "ripper.y"
6439 #line 1860 "ripper.y"
6444 #line 1861 "ripper.y"
6449 #line 1862 "ripper.y"
6454 #line 1863 "ripper.y"
6459 #line 1864 "ripper.y"
6464 #line 1865 "ripper.y"
6469 #line 1866 "ripper.y"
6474 #line 1867 "ripper.y"
6479 #line 1868 "ripper.y"
6484 #line 1869 "ripper.y"
6489 #line 1870 "ripper.y"
6494 #line 1871 "ripper.y"
6499 #line 1872 "ripper.y"
6504 #line 1873 "ripper.y"
6509 #line 1874 "ripper.y"
6514 #line 1875 "ripper.y"
6519 #line 1876 "ripper.y"
6524 #line 1877 "ripper.y"
6529 #line 1878 "ripper.y"
6534 #line 1879 "ripper.y"
6539 #line 1880 "ripper.y"
6544 #line 1881 "ripper.y"
6549 #line 1882 "ripper.y"
6554 #line 1883 "ripper.y"
6559 #line 1884 "ripper.y"
6564 #line 1902 "ripper.y"
6570 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6576 #line 1911 "ripper.y"
6583 (yyval.
val) = dispatch2(assign, (yyvsp[(1) - (5)].val), dispatch2(rescue_mod, (yyvsp[(3) - (5)].val), (yyvsp[(5) - (5)].val)));
6589 #line 1921 "ripper.y"
6593 if ((yyvsp[(1) - (3)].val)) {
6595 if ((yyvsp[(2) - (3)].val) ==
tOROP) {
6596 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
6602 else if ((yyvsp[(2) - (3)].val) ==
tANDOP) {
6603 (yyvsp[(1) - (3)].
val)->
nd_value = (yyvsp[(3) - (3)].val);
6607 (yyval.
val) = (yyvsp[(1) - (3)].val);
6615 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
6621 #line 1950 "ripper.y"
6626 if ((yyvsp[(1) - (5)].val)) {
6628 if ((yyvsp[(2) - (5)].val) ==
tOROP) {
6629 (yyvsp[(1) - (5)].
val)->
nd_value = (yyvsp[(3) - (5)].val);
6635 else if ((yyvsp[(2) - (5)].val) ==
tANDOP) {
6636 (yyvsp[(1) - (5)].
val)->
nd_value = (yyvsp[(3) - (5)].val);
6640 (yyval.
val) = (yyvsp[(1) - (5)].val);
6648 (yyvsp[(3) - (5)].
val) = dispatch2(rescue_mod, (yyvsp[(3) - (5)].val), (yyvsp[(5) - (5)].
val));
6649 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(2) - (5)].
val), (yyvsp[(3) - (5)].val));
6655 #line 1981 "ripper.y"
6661 if (!(yyvsp[(3) - (6)].val)) (yyvsp[(3) - (6)].
val) =
NEW_ZARRAY();
6663 args =
NEW_ARGSCAT((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
6666 args =
arg_concat((yyvsp[(3) - (6)].val), (yyvsp[(6) - (6)].val));
6668 if ((yyvsp[(5) - (6)].val) ==
tOROP) {
6669 (yyvsp[(5) - (6)].
val) = 0;
6671 else if ((yyvsp[(5) - (6)].val) ==
tANDOP) {
6672 (yyvsp[(5) - (6)].
val) = 1;
6677 (yyvsp[(1) - (6)].
val) = dispatch2(aref_field, (yyvsp[(1) - (6)].val),
escape_Qundef((yyvsp[(3) - (6)].val)));
6678 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
6684 #line 2007 "ripper.y"
6688 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6689 (yyvsp[(4) - (5)].
val) = 0;
6691 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6692 (yyvsp[(4) - (5)].
val) = 1;
6694 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6697 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
6698 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6704 #line 2024 "ripper.y"
6708 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6709 (yyvsp[(4) - (5)].
val) = 0;
6711 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6712 (yyvsp[(4) - (5)].
val) = 1;
6714 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6717 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (5)].
val));
6718 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6724 #line 2041 "ripper.y"
6728 if ((yyvsp[(4) - (5)].val) ==
tOROP) {
6729 (yyvsp[(4) - (5)].
val) = 0;
6731 else if ((yyvsp[(4) - (5)].val) ==
tANDOP) {
6732 (yyvsp[(4) - (5)].
val) = 1;
6734 (yyval.
val) =
NEW_OP_ASGN2((yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
6737 (yyvsp[(1) - (5)].
val) = dispatch3(field, (yyvsp[(1) - (5)].val),
ripper_intern(
"::"), (yyvsp[(3) - (5)].
val));
6738 (yyval.
val) = dispatch3(opassign, (yyvsp[(1) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6744 #line 2058 "ripper.y"
6747 yyerror(
"constant re-assignment");
6750 (yyval.
val) = dispatch2(const_path_field, (yyvsp[(1) - (5)].val), (yyvsp[(3) - (5)].
val));
6751 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
6752 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6758 #line 2069 "ripper.y"
6761 yyerror(
"constant re-assignment");
6764 (yyval.
val) = dispatch1(top_const_field, (yyvsp[(2) - (4)].val));
6765 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
6766 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6772 #line 2080 "ripper.y"
6778 (yyval.
val) = dispatch1(var_field, (yyvsp[(1) - (3)].val));
6779 (yyval.
val) = dispatch3(opassign, (yyval.
val), (yyvsp[(2) - (3)].
val), (yyvsp[(3) - (3)].val));
6780 (yyval.
val) = dispatch1(assign_error, (yyval.
val));
6786 #line 2091 "ripper.y"
6791 (yyval.
val) =
NEW_DOT2((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6797 (yyval.
val) = dispatch2(dot2, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6803 #line 2105 "ripper.y"
6808 (yyval.
val) =
NEW_DOT3((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6814 (yyval.
val) = dispatch2(dot3, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
6820 #line 2119 "ripper.y"
6825 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'+'), (yyvsp[(3) - (3)].
val));
6831 #line 2127 "ripper.y"
6836 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'-'), (yyvsp[(3) - (3)].
val));
6842 #line 2135 "ripper.y"
6847 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'*'), (yyvsp[(3) - (3)].
val));
6853 #line 2143 "ripper.y"
6858 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'/'), (yyvsp[(3) - (3)].
val));
6864 #line 2151 "ripper.y"
6869 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'%'), (yyvsp[(3) - (3)].
val));
6875 #line 2159 "ripper.y"
6880 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"**"), (yyvsp[(3) - (3)].
val));
6886 #line 2167 "ripper.y"
6891 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].val),
ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
6898 #line 2176 "ripper.y"
6903 (yyval.
val) = dispatch3(binary, (yyvsp[(2) - (4)].val),
ripper_intern(
"**"), (yyvsp[(4) - (4)].
val));
6910 #line 2185 "ripper.y"
6921 #line 2193 "ripper.y"
6932 #line 2201 "ripper.y"
6937 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'|'), (yyvsp[(3) - (3)].
val));
6943 #line 2209 "ripper.y"
6948 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'^'), (yyvsp[(3) - (3)].
val));
6954 #line 2217 "ripper.y"
6959 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'&'), (yyvsp[(3) - (3)].
val));
6965 #line 2225 "ripper.y"
6970 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<=>"), (yyvsp[(3) - (3)].
val));
6976 #line 2233 "ripper.y"
6981 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'>'), (yyvsp[(3) - (3)].
val));
6987 #line 2241 "ripper.y"
6992 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
">="), (yyvsp[(3) - (3)].
val));
6998 #line 2249 "ripper.y"
7003 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ID2SYM(
'<'), (yyvsp[(3) - (3)].
val));
7009 #line 2257 "ripper.y"
7014 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<="), (yyvsp[(3) - (3)].
val));
7020 #line 2265 "ripper.y"
7025 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"=="), (yyvsp[(3) - (3)].
val));
7031 #line 2273 "ripper.y"
7036 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"==="), (yyvsp[(3) - (3)].
val));
7042 #line 2281 "ripper.y"
7047 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"!="), (yyvsp[(3) - (3)].
val));
7053 #line 2289 "ripper.y"
7056 (yyval.
val) =
match_op((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7061 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"=~"), (yyvsp[(3) - (3)].
val));
7067 #line 2300 "ripper.y"
7072 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"!~"), (yyvsp[(3) - (3)].
val));
7078 #line 2308 "ripper.y"
7083 (yyval.
val) = dispatch2(unary,
ID2SYM(
'!'), (yyvsp[(2) - (2)].
val));
7089 #line 2316 "ripper.y"
7094 (yyval.
val) = dispatch2(unary,
ID2SYM(
'~'), (yyvsp[(2) - (2)].
val));
7100 #line 2324 "ripper.y"
7105 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"<<"), (yyvsp[(3) - (3)].
val));
7111 #line 2332 "ripper.y"
7116 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
">>"), (yyvsp[(3) - (3)].
val));
7122 #line 2340 "ripper.y"
7127 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"&&"), (yyvsp[(3) - (3)].
val));
7133 #line 2348 "ripper.y"
7138 (yyval.
val) = dispatch3(binary, (yyvsp[(1) - (3)].val),
ripper_intern(
"||"), (yyvsp[(3) - (3)].
val));
7144 #line 2355 "ripper.y"
7149 #line 2356 "ripper.y"
7156 (yyval.
val) = dispatch1(defined, (yyvsp[(4) - (4)].val));
7162 #line 2366 "ripper.y"
7166 (yyval.
val) =
NEW_IF(
cond((yyvsp[(1) - (6)].val)), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].val));
7169 (yyval.
val) = dispatch3(ifop, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(6) - (6)].val));
7175 #line 2376 "ripper.y"
7177 (yyval.
val) = (yyvsp[(1) - (1)].val);
7182 #line 2382 "ripper.y"
7186 (yyval.
val) = (yyvsp[(1) - (1)].val);
7189 (yyval.
val) = (yyvsp[(1) - (1)].val);
7195 #line 2395 "ripper.y"
7197 (yyval.
val) = (yyvsp[(1) - (2)].val);
7202 #line 2399 "ripper.y"
7207 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
7213 #line 2407 "ripper.y"
7218 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7224 #line 2417 "ripper.y"
7227 (yyval.
val) = (yyvsp[(2) - (3)].val);
7235 #line 2433 "ripper.y"
7237 (yyval.
val) = (yyvsp[(1) - (2)].val);
7242 #line 2437 "ripper.y"
7247 (yyval.
val) = arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val));
7253 #line 2445 "ripper.y"
7258 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7264 #line 2455 "ripper.y"
7270 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7276 #line 2464 "ripper.y"
7281 (yyval.
val) = arg_add_optblock((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
7287 #line 2472 "ripper.y"
7293 (yyval.
val) = arg_add_assocs(arg_new(), (yyvsp[(1) - (2)].
val));
7294 (yyval.
val) = arg_add_optblock((yyval.
val), (yyvsp[(2) - (2)].
val));
7300 #line 2482 "ripper.y"
7306 (yyval.
val) = arg_add_optblock(arg_add_assocs((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val)), (yyvsp[(4) - (4)].
val));
7312 #line 2493 "ripper.y"
7314 (yyval.
val) = arg_add_block(arg_new(), (yyvsp[(1) - (1)].
val));
7319 #line 2499 "ripper.y"
7327 #line 2504 "ripper.y"
7331 (yyval.
val) = (yyvsp[(2) - (2)].val);
7336 #line 2512 "ripper.y"
7341 (yyval.
val) = (yyvsp[(2) - (2)].val);
7347 #line 2522 "ripper.y"
7349 (yyval.
val) = (yyvsp[(2) - (2)].val);
7354 #line 2526 "ripper.y"
7361 #line 2532 "ripper.y"
7366 (yyval.
val) = arg_add(arg_new(), (yyvsp[(1) - (1)].
val));
7372 #line 2540 "ripper.y"
7377 (yyval.
val) = arg_add_star(arg_new(), (yyvsp[(2) - (2)].
val));
7383 #line 2548 "ripper.y"
7387 if ((n1 =
splat_array((yyvsp[(1) - (3)].val))) != 0) {
7394 (yyval.
val) = arg_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7400 #line 2562 "ripper.y"
7411 (yyval.
val) = arg_add_star((yyvsp[(1) - (4)].val), (yyvsp[(4) - (4)].
val));
7417 #line 2578 "ripper.y"
7421 if ((n1 =
splat_array((yyvsp[(1) - (3)].val))) != 0) {
7428 (yyval.
val) = mrhs_add(args2mrhs((yyvsp[(1) - (3)].val)), (yyvsp[(3) - (3)].val));
7434 #line 2592 "ripper.y"
7439 (n1 =
splat_array((yyvsp[(1) - (4)].val))) != 0) {
7446 (yyval.
val) = mrhs_add_star(args2mrhs((yyvsp[(1) - (4)].val)), (yyvsp[(4) - (4)].val));
7452 #line 2607 "ripper.y"
7457 (yyval.
val) = mrhs_add_star(mrhs_new(), (yyvsp[(2) - (2)].
val));
7463 #line 2625 "ripper.y"
7468 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (1)].val)), arg_new());
7474 #line 2633 "ripper.y"
7484 #line 2641 "ripper.y"
7487 if ((yyvsp[(3) - (4)].val) ==
NULL) {
7493 nd_set_line((yyvsp[(3) - (4)].val), (yyvsp[(2) - (4)].num));
7498 (yyval.
val) = dispatch1(begin, (yyvsp[(3) - (4)].val));
7504 #line 2657 "ripper.y"
7509 #line 2658 "ripper.y"
7511 rb_warning0(
"(...) interpreted as grouped expression");
7513 (yyval.
val) = (yyvsp[(2) - (4)].val);
7515 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].val));
7521 #line 2667 "ripper.y"
7524 (yyval.
val) = (yyvsp[(2) - (3)].val);
7526 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].val));
7532 #line 2675 "ripper.y"
7537 (yyval.
val) = dispatch2(const_path_ref, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
7543 #line 2683 "ripper.y"
7548 (yyval.
val) = dispatch1(top_const_ref, (yyvsp[(2) - (2)].val));
7554 #line 2691 "ripper.y"
7557 if ((yyvsp[(2) - (3)].val) == 0) {
7561 (yyval.
val) = (yyvsp[(2) - (3)].val);
7570 #line 2704 "ripper.y"
7581 #line 2712 "ripper.y"
7592 #line 2720 "ripper.y"
7597 (yyval.
val) = dispatch1(yield, dispatch1(paren, (yyvsp[(3) - (4)].val)));
7603 #line 2728 "ripper.y"
7608 (yyval.
val) = dispatch1(yield, dispatch1(paren, arg_new()));
7614 #line 2736 "ripper.y"
7625 #line 2743 "ripper.y"
7630 #line 2744 "ripper.y"
7637 (yyval.
val) = dispatch1(defined, (yyvsp[(5) - (6)].val));
7643 #line 2754 "ripper.y"
7654 #line 2762 "ripper.y"
7665 #line 2770 "ripper.y"
7669 (yyval.
val) = (yyvsp[(2) - (2)].val);
7670 fixpos((yyvsp[(2) - (2)].val)->
nd_iter, (yyvsp[(2) - (2)].val));
7672 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].val)), arg_new());
7673 (yyval.
val) = method_add_block((yyval.
val), (yyvsp[(2) - (2)].
val));
7679 #line 2782 "ripper.y"
7683 (yyvsp[(2) - (2)].
val)->
nd_iter = (yyvsp[(1) - (2)].val);
7684 (yyval.
val) = (yyvsp[(2) - (2)].val);
7687 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
7693 #line 2793 "ripper.y"
7695 (yyval.
val) = (yyvsp[(2) - (2)].val);
7700 #line 2800 "ripper.y"
7703 (yyval.
val) =
NEW_IF(
cond((yyvsp[(2) - (6)].val)), (yyvsp[(4) - (6)].val), (yyvsp[(5) - (6)].
val));
7706 (yyval.
val) = dispatch3(
if, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val),
escape_Qundef((yyvsp[(5) - (6)].val)));
7712 #line 2812 "ripper.y"
7715 (yyval.
val) =
NEW_UNLESS(
cond((yyvsp[(2) - (6)].val)), (yyvsp[(4) - (6)].val), (yyvsp[(5) - (6)].
val));
7718 (yyval.
val) = dispatch3(unless, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val),
escape_Qundef((yyvsp[(5) - (6)].val)));
7724 #line 2820 "ripper.y"
7729 #line 2820 "ripper.y"
7734 #line 2823 "ripper.y"
7740 (yyval.
val) = dispatch2(
while, (yyvsp[(3) - (7)].val), (yyvsp[(6) - (7)].
val));
7746 #line 2831 "ripper.y"
7751 #line 2831 "ripper.y"
7756 #line 2834 "ripper.y"
7762 (yyval.
val) = dispatch2(until, (yyvsp[(3) - (7)].val), (yyvsp[(6) - (7)].
val));
7768 #line 2845 "ripper.y"
7771 (yyval.
val) =
NEW_CASE((yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
7774 (yyval.
val) = dispatch2(
case, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
7780 #line 2854 "ripper.y"
7783 (yyval.
val) =
NEW_CASE(0, (yyvsp[(3) - (4)].val));
7785 (yyval.
val) = dispatch2(
case,
Qnil, (yyvsp[(3) - (4)].val));
7791 #line 2862 "ripper.y"
7796 #line 2864 "ripper.y"
7801 #line 2867 "ripper.y"
7846 m->nd_next = (yyvsp[(2) - (9)].
val);
7855 tbl[0] = 1; tbl[1] =
id;
7856 (yyval.
val) =
NEW_FOR(0, (yyvsp[(5) - (9)].val), scope);
7859 (yyval.
val) = dispatch3(
for, (yyvsp[(2) - (9)].val), (yyvsp[(5) - (9)].
val), (yyvsp[(8) - (9)].val));
7865 #line 2928 "ripper.y"
7868 yyerror(
"class definition in method body");
7878 #line 2939 "ripper.y"
7881 (yyval.
val) =
NEW_CLASS((yyvsp[(2) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(3) - (6)].val));
7884 (yyval.
val) = dispatch3(
class, (yyvsp[(2) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val));
7891 #line 2949 "ripper.y"
7899 #line 2954 "ripper.y"
7908 #line 2961 "ripper.y"
7914 (yyval.
val) = dispatch2(sclass, (yyvsp[(3) - (8)].val), (yyvsp[(7) - (8)].
val));
7923 #line 2973 "ripper.y"
7926 yyerror(
"module definition in method body");
7936 #line 2984 "ripper.y"
7942 (yyval.
val) = dispatch2(module, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val));
7949 #line 2994 "ripper.y"
7959 #line 3003 "ripper.y"
7967 (yyval.
val) = dispatch3(def, (yyvsp[(2) - (6)].val), (yyvsp[(4) - (6)].
val), (yyvsp[(5) - (6)].val));
7976 #line 3016 "ripper.y"
7981 #line 3017 "ripper.y"
7990 #line 3025 "ripper.y"
7995 (yyval.
val) =
NEW_DEFS((yyvsp[(2) - (9)].val), (yyvsp[(5) - (9)].
val), (yyvsp[(7) - (9)].val), body);
7998 (yyval.
val) = dispatch5(defs, (yyvsp[(2) - (9)].val), (yyvsp[(3) - (9)].
val), (yyvsp[(5) - (9)].val), (yyvsp[(7) - (9)].
val), (yyvsp[(8) - (9)].val));
8006 #line 3038 "ripper.y"
8011 (yyval.
val) = dispatch1(
break, arg_new());
8017 #line 3046 "ripper.y"
8022 (yyval.
val) = dispatch1(next, arg_new());
8028 #line 3054 "ripper.y"
8039 #line 3062 "ripper.y"
8050 #line 3072 "ripper.y"
8054 (yyval.
val) = (yyvsp[(1) - (1)].val);
8057 (yyval.
val) = (yyvsp[(1) - (1)].val);
8063 #line 3084 "ripper.y"
8070 #line 3090 "ripper.y"
8077 #line 3096 "ripper.y"
8084 #line 3102 "ripper.y"
8091 #line 3108 "ripper.y"
8098 #line 3114 "ripper.y"
8105 #line 3120 "ripper.y"
8112 #line 3126 "ripper.y"
8119 #line 3132 "ripper.y"
8126 #line 3138 "ripper.y"
8137 #line 3148 "ripper.y"
8144 #line 3156 "ripper.y"
8149 #line 3162 "ripper.y"
8150 { (yyval.
val) = (yyvsp[(2) - (2)].val); ;}
8154 #line 3169 "ripper.y"
8159 #line 3178 "ripper.y"
8162 (yyval.
val) =
NEW_IF(
cond((yyvsp[(2) - (5)].val)), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].
val));
8165 (yyval.
val) = dispatch3(elsif, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val),
escape_Qundef((yyvsp[(5) - (5)].val)));
8171 #line 3190 "ripper.y"
8174 (yyval.
val) = (yyvsp[(2) - (2)].val);
8176 (yyval.
val) = dispatch1(
else, (yyvsp[(2) - (2)].val));
8182 #line 3204 "ripper.y"
8187 (yyval.
val) = dispatch1(mlhs_paren, (yyval.
val));
8193 #line 3212 "ripper.y"
8196 (yyval.
val) = (yyvsp[(2) - (3)].val);
8198 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
8204 #line 3222 "ripper.y"
8209 (yyval.
val) = mlhs_add(mlhs_new(), (yyvsp[(1) - (1)].
val));
8215 #line 3230 "ripper.y"
8220 (yyval.
val) = mlhs_add((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
8226 #line 3240 "ripper.y"
8231 (yyval.
val) = (yyvsp[(1) - (1)].val);
8237 #line 3248 "ripper.y"
8243 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (4)].val), (yyval.
val));
8249 #line 3257 "ripper.y"
8255 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (6)].val), (yyval.
val));
8261 #line 3266 "ripper.y"
8266 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (3)].val),
Qnil);
8272 #line 3274 "ripper.y"
8277 (yyval.
val) = mlhs_add_star((yyvsp[(1) - (5)].val), (yyvsp[(5) - (5)].
val));
8283 #line 3282 "ripper.y"
8289 (yyval.
val) = mlhs_add_star(mlhs_new(), (yyval.
val));
8295 #line 3291 "ripper.y"
8304 (yyval.
val) = mlhs_add_star((yyval.
val), (yyvsp[(4) - (4)].
val));
8310 #line 3303 "ripper.y"
8315 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8321 #line 3311 "ripper.y"
8326 (yyval.
val) = mlhs_add_star(mlhs_new(),
Qnil);
8332 #line 3321 "ripper.y"
8335 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), 0, (yyvsp[(6) - (6)].
val));
8337 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
Qnil,
escape_Qundef((yyvsp[(6) - (6)].val)));
8343 #line 3329 "ripper.y"
8346 (yyval.
val) =
new_args((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].val));
8348 (yyval.
val) = params_new((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val),
escape_Qundef((yyvsp[(8) - (8)].val)));
8354 #line 3337 "ripper.y"
8357 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, 0, (yyvsp[(4) - (4)].val));
8365 #line 3345 "ripper.y"
8368 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), 0, (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8370 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val),
Qnil, (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8376 #line 3353 "ripper.y"
8379 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
8387 #line 3361 "ripper.y"
8390 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 1, 0, 0);
8393 dispatch1(excessed_comma, (yyval.
val));
8399 #line 3370 "ripper.y"
8402 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), 0, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8404 (yyval.
val) = params_new((yyvsp[(1) - (6)].val),
Qnil, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8410 #line 3378 "ripper.y"
8413 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 0, 0, (yyvsp[(2) - (2)].
val));
8421 #line 3386 "ripper.y"
8424 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
8432 #line 3394 "ripper.y"
8435 (yyval.
val) =
new_args(0, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
8437 (yyval.
val) = params_new(
Qnil, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
8443 #line 3402 "ripper.y"
8446 (yyval.
val) =
new_args(0, (yyvsp[(1) - (2)].val), 0, 0, (yyvsp[(2) - (2)].
val));
8454 #line 3410 "ripper.y"
8457 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
8465 #line 3418 "ripper.y"
8468 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (2)].val), 0, (yyvsp[(2) - (2)].
val));
8476 #line 3426 "ripper.y"
8479 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
8487 #line 3434 "ripper.y"
8490 (yyval.
val) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].val));
8498 #line 3445 "ripper.y"
8505 #line 3451 "ripper.y"
8517 #line 3460 "ripper.y"
8529 #line 3469 "ripper.y"
8532 (yyval.
val) = (yyvsp[(2) - (4)].val);
8540 #line 3481 "ripper.y"
8545 (yyval.
val) = (yyvsp[(2) - (2)].val);
8551 #line 3493 "ripper.y"
8558 #line 3500 "ripper.y"
8565 #line 3507 "ripper.y"
8576 #line 3515 "ripper.y"
8583 #line 3520 "ripper.y"
8590 #line 3523 "ripper.y"
8598 #line 3529 "ripper.y"
8602 (yyval.
val) = (yyvsp[(3) - (4)].val);
8605 (yyval.
val) = dispatch2(lambda, (yyvsp[(3) - (4)].val), (yyvsp[(4) - (4)].
val));
8612 #line 3542 "ripper.y"
8617 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (4)].val));
8623 #line 3550 "ripper.y"
8628 (yyval.
val) = (yyvsp[(1) - (1)].val);
8634 #line 3560 "ripper.y"
8636 (yyval.
val) = (yyvsp[(2) - (3)].val);
8641 #line 3564 "ripper.y"
8643 (yyval.
val) = (yyvsp[(2) - (3)].val);
8648 #line 3570 "ripper.y"
8658 #line 3579 "ripper.y"
8661 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
8664 (yyval.
val) = dispatch2(do_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
8671 #line 3591 "ripper.y"
8680 (yyvsp[(2) - (2)].
val)->
nd_iter = (yyvsp[(1) - (2)].val);
8681 (yyval.
val) = (yyvsp[(2) - (2)].val);
8684 (yyval.
val) = method_add_block((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
8690 #line 3607 "ripper.y"
8693 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
8695 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
8696 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
8702 #line 3616 "ripper.y"
8705 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
8707 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_intern(
"::"), (yyvsp[(3) - (4)].
val));
8708 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
8714 #line 3627 "ripper.y"
8717 (yyval.
val) =
NEW_FCALL((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
8720 (yyval.
val) = method_arg(dispatch1(fcall, (yyvsp[(1) - (2)].val)), (yyvsp[(2) - (2)].
val));
8726 #line 3636 "ripper.y"
8729 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
8732 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
8733 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
8739 #line 3646 "ripper.y"
8742 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
8745 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (4)].val),
ripper_id2sym(
'.'), (yyvsp[(3) - (4)].
val));
8746 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(4) - (4)].
val));
8752 #line 3656 "ripper.y"
8755 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val), 0);
8757 (yyval.
val) = dispatch3(call, (yyvsp[(1) - (3)].val),
ripper_intern(
"::"), (yyvsp[(3) - (3)].
val));
8763 #line 3664 "ripper.y"
8771 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(3) - (3)].
val));
8777 #line 3675 "ripper.y"
8785 (yyval.
val) = method_optarg((yyval.
val), (yyvsp[(3) - (3)].
val));
8791 #line 3686 "ripper.y"
8796 (yyval.
val) = dispatch1(super, (yyvsp[(2) - (2)].val));
8802 #line 3694 "ripper.y"
8813 #line 3702 "ripper.y"
8816 if ((yyvsp[(1) - (4)].val) &&
nd_type((yyvsp[(1) - (4)].val)) ==
NODE_SELF)
8819 (yyval.
val) =
NEW_CALL((yyvsp[(1) - (4)].val),
tAREF, (yyvsp[(3) - (4)].val));
8822 (yyval.
val) = dispatch2(aref, (yyvsp[(1) - (4)].val),
escape_Qundef((yyvsp[(3) - (4)].val)));
8828 #line 3716 "ripper.y"
8839 #line 3725 "ripper.y"
8842 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
8845 (yyval.
val) = dispatch2(brace_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
8852 #line 3735 "ripper.y"
8863 #line 3744 "ripper.y"
8866 (yyval.
val) =
NEW_ITER((yyvsp[(3) - (5)].val),(yyvsp[(4) - (5)].
val));
8869 (yyval.
val) = dispatch2(do_block,
escape_Qundef((yyvsp[(3) - (5)].val)), (yyvsp[(4) - (5)].
val));
8876 #line 3758 "ripper.y"
8879 (yyval.
val) =
NEW_WHEN((yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val), (yyvsp[(5) - (5)].val));
8881 (yyval.
val) = dispatch3(when, (yyvsp[(2) - (5)].val), (yyvsp[(4) - (5)].
val),
escape_Qundef((yyvsp[(5) - (5)].val)));
8887 #line 3774 "ripper.y"
8890 if ((yyvsp[(3) - (6)].val)) {
8892 (yyvsp[(5) - (6)].
val) =
block_append((yyvsp[(3) - (6)].val), (yyvsp[(5) - (6)].
val));
8894 (yyval.
val) =
NEW_RESBODY((yyvsp[(2) - (6)].val), (yyvsp[(5) - (6)].
val), (yyvsp[(6) - (6)].val));
8895 fixpos((yyval.
val), (yyvsp[(2) - (6)].
val)?(yyvsp[(2) - (6)].
val):(yyvsp[(5) - (6)].
val));
8897 (yyval.
val) = dispatch4(rescue,
8907 #line 3794 "ripper.y"
8918 #line 3802 "ripper.y"
8921 if (!((yyval.
val) =
splat_array((yyvsp[(1) - (1)].val)))) (yyval.
val) = (yyvsp[(1) - (1)].val);
8923 (yyval.
val) = (yyvsp[(1) - (1)].val);
8929 #line 3813 "ripper.y"
8931 (yyval.
val) = (yyvsp[(2) - (2)].val);
8936 #line 3820 "ripper.y"
8939 (yyval.
val) = (yyvsp[(2) - (2)].val);
8941 (yyval.
val) = dispatch1(ensure, (yyvsp[(2) - (2)].val));
8947 #line 3832 "ripper.y"
8952 (yyval.
val) = dispatch1(symbol_literal, (yyvsp[(1) - (1)].val));
8958 #line 3843 "ripper.y"
8961 NODE *node = (yyvsp[(1) - (1)].
val);
8970 (yyval.
val) = (yyvsp[(1) - (1)].val);
8976 #line 3862 "ripper.y"
8981 (yyval.
val) = dispatch2(string_concat, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
8987 #line 3872 "ripper.y"
8990 (yyval.
val) = (yyvsp[(2) - (3)].val);
8992 (yyval.
val) = dispatch1(string_literal, (yyvsp[(2) - (3)].val));
8998 #line 3882 "ripper.y"
9001 NODE *node = (yyvsp[(2) - (3)].
val);
9020 (yyval.
val) = dispatch1(xstring_literal, (yyvsp[(2) - (3)].val));
9026 #line 3909 "ripper.y"
9030 NODE *node = (yyvsp[(2) - (3)].
val);
9038 VALUE src = node->nd_lit;
9054 for (list = (prev = node)->
nd_next;
list; list = list->nd_next) {
9056 VALUE tail = list->nd_head->nd_lit;
9058 VALUE lit = prev == node ? prev->nd_lit : prev->nd_head->nd_lit;
9064 prev->nd_next = list->nd_next;
9077 if (!node->nd_next) {
9078 VALUE src = node->nd_lit;
9086 (yyval.
val) = dispatch2(regexp_literal, (yyvsp[(2) - (3)].val), (yyvsp[(3) - (3)].
val));
9092 #line 3974 "ripper.y"
9098 (yyval.
val) = dispatch1(array, (yyval.
val));
9104 #line 3983 "ripper.y"
9107 (yyval.
val) = (yyvsp[(2) - (3)].val);
9109 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].val));
9115 #line 3993 "ripper.y"
9126 #line 4001 "ripper.y"
9131 (yyval.
val) = dispatch2(words_add, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
9137 #line 4013 "ripper.y"
9140 (yyval.
val) = dispatch2(word_add, (yyval.
val), (yyvsp[(1) - (1)].
val));
9145 #line 4019 "ripper.y"
9150 (yyval.
val) = dispatch2(word_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9156 #line 4029 "ripper.y"
9162 (yyval.
val) = dispatch1(array, (yyval.
val));
9168 #line 4038 "ripper.y"
9171 (yyval.
val) = (yyvsp[(2) - (3)].val);
9173 (yyval.
val) = dispatch1(array, (yyvsp[(2) - (3)].val));
9179 #line 4048 "ripper.y"
9190 #line 4056 "ripper.y"
9195 (yyval.
val) = dispatch2(qwords_add, (yyvsp[(1) - (3)].val), (yyvsp[(2) - (3)].
val));
9201 #line 4066 "ripper.y"
9212 #line 4074 "ripper.y"
9217 (yyval.
val) = dispatch2(string_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9223 #line 4084 "ripper.y"
9234 #line 4092 "ripper.y"
9239 (yyval.
val) = dispatch2(xstring_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9245 #line 4102 "ripper.y"
9256 #line 4110 "ripper.y"
9259 NODE *head = (yyvsp[(1) - (2)].
val), *tail = (yyvsp[(2) - (2)].val);
9280 (yyval.
val) = dispatch2(regexp_add, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
9286 #line 4140 "ripper.y"
9295 #line 4146 "ripper.y"
9302 (yyval.
val) = dispatch1(string_dvar, (yyvsp[(3) - (3)].val));
9308 #line 4156 "ripper.y"
9318 #line 4162 "ripper.y"
9327 #line 4168 "ripper.y"
9333 if ((yyvsp[(4) - (5)].val)) (yyvsp[(4) - (5)].val)->flags &= ~
NODE_FL_NEWLINE;
9336 (yyval.
val) = dispatch1(string_embexpr, (yyvsp[(4) - (5)].val));
9342 #line 4182 "ripper.y"
9347 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
9353 #line 4190 "ripper.y"
9358 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
9364 #line 4198 "ripper.y"
9369 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
9375 #line 4209 "ripper.y"
9379 (yyval.
val) = (yyvsp[(2) - (2)].val);
9381 (yyval.
val) = dispatch1(symbol, (yyvsp[(2) - (2)].val));
9387 #line 4226 "ripper.y"
9391 if (!((yyval.
val) = (yyvsp[(2) - (3)].
val))) {
9412 (yyval.
val) = dispatch1(dyna_symbol, (yyvsp[(2) - (3)].val));
9418 #line 4258 "ripper.y"
9429 #line 4266 "ripper.y"
9440 #line 4282 "ripper.y"
9445 #line 4283 "ripper.y"
9450 #line 4284 "ripper.y"
9455 #line 4285 "ripper.y"
9460 #line 4286 "ripper.y"
9465 #line 4287 "ripper.y"
9470 #line 4288 "ripper.y"
9475 #line 4292 "ripper.y"
9480 if (id_is_var(
get_id((yyvsp[(1) - (1)].val)))) {
9481 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
9484 (yyval.
val) = dispatch1(vcall, (yyvsp[(1) - (1)].val));
9491 #line 4305 "ripper.y"
9496 (yyval.
val) = dispatch1(var_ref, (yyvsp[(1) - (1)].val));
9502 #line 4315 "ripper.y"
9507 (yyval.
val) = dispatch1(var_field, (yyval.
val));
9513 #line 4323 "ripper.y"
9518 (yyval.
val) = dispatch1(var_field, (yyval.
val));
9524 #line 4337 "ripper.y"
9535 #line 4345 "ripper.y"
9542 #line 4349 "ripper.y"
9544 (yyval.
val) = (yyvsp[(3) - (4)].val);
9549 #line 4353 "ripper.y"
9562 #line 4365 "ripper.y"
9565 (yyval.
val) = (yyvsp[(2) - (3)].val);
9567 (yyval.
val) = dispatch1(paren, (yyvsp[(2) - (3)].val));
9575 #line 4375 "ripper.y"
9577 (yyval.
val) = (yyvsp[(1) - (2)].val);
9584 #line 4383 "ripper.y"
9587 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), 0, (yyvsp[(6) - (6)].
val));
9589 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
Qnil,
escape_Qundef((yyvsp[(6) - (6)].val)));
9595 #line 4391 "ripper.y"
9598 (yyval.
val) =
new_args((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val), (yyvsp[(8) - (8)].val));
9600 (yyval.
val) = params_new((yyvsp[(1) - (8)].val), (yyvsp[(3) - (8)].
val), (yyvsp[(5) - (8)].val), (yyvsp[(7) - (8)].
val),
escape_Qundef((yyvsp[(8) - (8)].val)));
9606 #line 4399 "ripper.y"
9609 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, 0, (yyvsp[(4) - (4)].val));
9617 #line 4407 "ripper.y"
9620 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), 0, (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
9622 (yyval.
val) = params_new((yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val),
Qnil, (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
9628 #line 4415 "ripper.y"
9631 (yyval.
val) =
new_args((yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
9639 #line 4423 "ripper.y"
9642 (yyval.
val) =
new_args((yyvsp[(1) - (6)].val), 0, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
9644 (yyval.
val) = params_new((yyvsp[(1) - (6)].val),
Qnil, (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
9650 #line 4431 "ripper.y"
9653 (yyval.
val) =
new_args((yyvsp[(1) - (2)].val), 0, 0, 0, (yyvsp[(2) - (2)].
val));
9661 #line 4439 "ripper.y"
9664 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), 0, (yyvsp[(4) - (4)].val));
9672 #line 4447 "ripper.y"
9675 (yyval.
val) =
new_args(0, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val), (yyvsp[(6) - (6)].
val));
9677 (yyval.
val) = params_new(
Qnil, (yyvsp[(1) - (6)].val), (yyvsp[(3) - (6)].
val), (yyvsp[(5) - (6)].val),
escape_Qundef((yyvsp[(6) - (6)].val)));
9683 #line 4455 "ripper.y"
9686 (yyval.
val) =
new_args(0, (yyvsp[(1) - (2)].val), 0, 0, (yyvsp[(2) - (2)].
val));
9694 #line 4463 "ripper.y"
9697 (yyval.
val) =
new_args(0, (yyvsp[(1) - (4)].val), 0, (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9705 #line 4471 "ripper.y"
9708 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (2)].val), 0, (yyvsp[(2) - (2)].
val));
9716 #line 4479 "ripper.y"
9719 (yyval.
val) =
new_args(0, 0, (yyvsp[(1) - (4)].val), (yyvsp[(3) - (4)].
val), (yyvsp[(4) - (4)].val));
9727 #line 4487 "ripper.y"
9730 (yyval.
val) =
new_args(0, 0, 0, 0, (yyvsp[(1) - (1)].val));
9738 #line 4495 "ripper.y"
9749 #line 4505 "ripper.y"
9752 yyerror(
"formal argument cannot be a constant");
9755 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
9761 #line 4514 "ripper.y"
9764 yyerror(
"formal argument cannot be an instance variable");
9767 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
9773 #line 4523 "ripper.y"
9776 yyerror(
"formal argument cannot be a global variable");
9779 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
9785 #line 4532 "ripper.y"
9788 yyerror(
"formal argument cannot be a class variable");
9791 (yyval.
val) = dispatch1(param_error, (yyvsp[(1) - (1)].val));
9797 #line 4544 "ripper.y"
9800 (yyval.
val) = (yyvsp[(1) - (1)].val);
9805 #line 4551 "ripper.y"
9817 #line 4560 "ripper.y"
9829 (yyval.
val)->
nd_next = (yyvsp[(2) - (3)].val);
9831 (yyval.
val) = dispatch1(mlhs_paren, (yyvsp[(2) - (3)].val));
9837 #line 4581 "ripper.y"
9844 #line 4586 "ripper.y"
9847 (yyval.
val) = (yyvsp[(1) - (3)].val);
9858 #line 4599 "ripper.y"
9871 #line 4611 "ripper.y"
9884 #line 4623 "ripper.y"
9887 (yyval.
val) = (yyvsp[(1) - (1)].val);
9895 #line 4631 "ripper.y"
9898 NODE *opts = (yyvsp[(1) - (3)].
val);
9900 while (opts->nd_next) {
9901 opts = opts->nd_next;
9903 opts->nd_next = (yyvsp[(3) - (3)].
val);
9904 (yyval.
val) = (yyvsp[(1) - (3)].val);
9912 #line 4647 "ripper.y"
9915 (yyval.
val) = (yyvsp[(1) - (1)].val);
9923 #line 4655 "ripper.y"
9926 NODE *opts = (yyvsp[(1) - (3)].
val);
9928 while (opts->nd_next) {
9929 opts = opts->nd_next;
9931 opts->nd_next = (yyvsp[(3) - (3)].
val);
9932 (yyval.
val) = (yyvsp[(1) - (3)].val);
9940 #line 4675 "ripper.y"
9944 yyerror(
"rest argument must be local variable");
9948 (yyval.
val) = (yyvsp[(2) - (2)].val);
9950 (yyval.
val) = dispatch1(rest_param, (yyvsp[(2) - (2)].val));
9956 #line 4688 "ripper.y"
9962 (yyval.
val) = dispatch1(rest_param,
Qnil);
9968 #line 4703 "ripper.y"
9972 yyerror(
"block argument must be local variable");
9974 yyerror(
"duplicated block argument name");
9978 (yyval.
val) = (yyvsp[(2) - (2)].val);
9980 (yyval.
val) = dispatch1(blockarg, (yyvsp[(2) - (2)].val));
9986 #line 4720 "ripper.y"
9988 (yyval.
val) = (yyvsp[(2) - (2)].val);
9993 #line 4724 "ripper.y"
10004 #line 4734 "ripper.y"
10008 (yyval.
val) = (yyvsp[(1) - (1)].val);
10011 (yyval.
val) = (yyvsp[(1) - (1)].val);
10017 #line 4743 "ripper.y"
10022 #line 4744 "ripper.y"
10025 if ((yyvsp[(3) - (4)].val) == 0) {
10026 yyerror(
"can't define singleton method for ().");
10029 switch (
nd_type((yyvsp[(3) - (4)].val))) {
10038 yyerror(
"can't define singleton method for literals");
10044 (yyval.
val) = (yyvsp[(3) - (4)].val);
10046 (yyval.
val) = dispatch1(paren, (yyvsp[(3) - (4)].val));
10052 #line 4774 "ripper.y"
10055 (yyval.
val) = (yyvsp[(1) - (2)].val);
10057 (yyval.
val) = dispatch1(assoclist_from_args, (yyvsp[(1) - (2)].val));
10063 #line 4786 "ripper.y"
10070 #line 4791 "ripper.y"
10081 #line 4801 "ripper.y"
10086 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].
val));
10092 #line 4809 "ripper.y"
10097 (yyval.
val) = dispatch2(assoc_new, (yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].
val));
10103 #line 4837 "ripper.y"
10104 { (yyval.
val) = (yyvsp[(1) - (1)].val); ;}
10108 #line 4842 "ripper.y"
10109 { (yyval.
val) = (yyvsp[(1) - (1)].val); ;}
10113 #line 4865 "ripper.y"
10118 #line 4870 "ripper.y"
10123 #line 4874 "ripper.y"
10135 #line 10134 "parse.c"
10153 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
10154 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
10155 yystate = yytable[yystate];
10170 #if ! YYERROR_VERBOSE
10180 if (yymsg != yymsgbuf)
10184 yymsg_alloc = yyalloc;
10188 yymsg_alloc =
sizeof yymsgbuf;
10192 if (0 < yysize && yysize <= yymsg_alloc)
10201 goto yyexhaustedlab;
10209 if (yyerrstatus == 3)
10214 if (yychar <=
YYEOF)
10217 if (yychar ==
YYEOF)
10223 yytoken, &yylval, parser);
10261 yyn = yypact[yystate];
10267 yyn = yytable[yyn];
10279 yystos[yystate], yyvsp, parser);
10324 yydestruct (
"Cleanup: discarding lookahead",
10325 yytoken, &yylval, parser);
10330 while (yyssp != yyss)
10333 yystos[*yyssp], yyvsp, parser);
10340 #if YYERROR_VERBOSE
10341 if (yymsg != yymsgbuf)
10345 return YYID (yyresult);
10349 #line 4882 "ripper.y"
10354 # define yylval (*((YYSTYPE*)(parser->parser_yylval)))
10363 # define nextc() parser_nextc(parser)
10364 # define pushback(c) parser_pushback(parser, (c))
10365 # define newtok() parser_newtok(parser)
10366 # define tokspace(n) parser_tokspace(parser, (n))
10367 # define tokadd(c) parser_tokadd(parser, (c))
10368 # define tok_hex(numlen) parser_tok_hex(parser, (numlen))
10369 # define read_escape(flags,e) parser_read_escape(parser, (flags), (e))
10370 # define tokadd_escape(e) parser_tokadd_escape(parser, (e))
10371 # define regx_options() parser_regx_options(parser)
10372 # define tokadd_string(f,t,p,n,e) parser_tokadd_string(parser,(f),(t),(p),(n),(e))
10373 # define parse_string(n) parser_parse_string(parser,(n))
10374 # define tokaddmbc(c, enc) parser_tokaddmbc(parser, (c), (enc))
10375 # define here_document(n) parser_here_document(parser,(n))
10376 # define heredoc_identifier() parser_heredoc_identifier(parser)
10377 # define heredoc_restore(n) parser_heredoc_restore(parser,(n))
10378 # define whole_match_p(e,l,i) parser_whole_match_p(parser,(e),(l),(i))
10381 # define set_yylval_str(x) (yylval.node = NEW_STR(x))
10382 # define set_yylval_num(x) (yylval.num = (x))
10383 # define set_yylval_id(x) (yylval.id = (x))
10384 # define set_yylval_name(x) (yylval.id = (x))
10385 # define set_yylval_literal(x) (yylval.node = NEW_LIT(x))
10386 # define set_yylval_node(x) (yylval.node = (x))
10387 # define yylval_id() (yylval.id)
10389 static inline VALUE
10390 ripper_yylval_id(
ID x)
10394 # define set_yylval_str(x) (void)(x)
10395 # define set_yylval_num(x) (void)(x)
10396 # define set_yylval_id(x) (void)(x)
10397 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(x))
10398 # define set_yylval_literal(x) (void)(x)
10399 # define set_yylval_node(x) (void)(x)
10400 # define yylval_id() yylval.id
10404 #define ripper_flush(p) (void)(p)
10406 #define ripper_flush(p) ((p)->tokp = (p)->parser_lex_p)
10408 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
10415 return lex_p > parser->tokp;
10428 ripper_dispatch_scan_event(
struct parser_params *parser,
int t)
10430 if (!ripper_has_scan_event(parser))
return;
10431 yylval_rval = ripper_scan_event_val(parser, t);
10435 ripper_dispatch_ignored_scan_event(
struct parser_params *parser,
int t)
10437 if (!ripper_has_scan_event(parser))
return;
10438 (void)ripper_scan_event_val(parser, t);
10442 ripper_dispatch_delayed_token(
struct parser_params *parser,
int t)
10445 const char *saved_tokp = parser->tokp;
10448 parser->tokp =
lex_pbeg + parser->delayed_col;
10450 parser->delayed =
Qnil;
10452 parser->tokp = saved_tokp;
10463 #undef SIGN_EXTEND_CHAR
10465 # define SIGN_EXTEND_CHAR(c) ((signed char)(c))
10468 # define SIGN_EXTEND_CHAR(c) ((((unsigned char)(c)) ^ 128) - 128)
10471 #define parser_encoding_name() (parser->enc->name)
10472 #define parser_mbclen() mbclen((lex_p-1),lex_pend,parser->enc)
10473 #define parser_precise_mbclen() rb_enc_precise_mbclen((lex_p-1),lex_pend,parser->enc)
10474 #define is_identchar(p,e,enc) (rb_enc_isalnum(*(p),(enc)) || (*(p)) == '_' || !ISASCII(*(p)))
10475 #define parser_is_identchar() (!parser->eofp && is_identchar((lex_p-1),lex_pend,parser->enc))
10477 #define parser_isascii() ISASCII(*(lex_p-1))
10485 for (p =
lex_pbeg; p < pend; p++) {
10487 column = (((column - 1) / 8) + 1) * 8;
10498 for (p =
lex_pbeg; p < pend; p++) {
10499 if (*p !=
' ' && *p !=
'\t') {
10506 #undef token_info_push
10523 #undef token_info_pop
10530 if (!ptinfo)
return;
10536 if (linenum == ptinfo->
linenum) {
10544 "mismatched indentations at '%s' with '%s' at %d",
10557 const int max_line_margin = 30;
10558 const char *
p, *pe;
10566 if (*p ==
'\n')
break;
10573 if (*pe ==
'\n')
break;
10580 const char *pre =
"", *post =
"";
10582 if (len > max_line_margin * 2 + 10) {
10583 if (
lex_p - p > max_line_margin) {
10587 if (pe -
lex_p > max_line_margin) {
10594 MEMCPY(buf, p,
char, len);
10598 i = (int)(
lex_p - p);
10599 p2 =
buf; pe = buf +
len;
10602 if (*p2 !=
'\t') *p2 =
' ';
10610 dispatch1(parse_error,
STR_NEW2(msg));
10622 CONST_ID(script_lines,
"SCRIPT_LINES__");
10639 if (
RTEST(coverages) &&
RBASIC(coverages)->klass == 0) {
10643 RBASIC(lines)->klass = 0;
10645 RARRAY(lines)->as.heap.len = n;
10693 if (parser->
nerr) {
10703 return (
VALUE)tree;
10728 char *beg, *end, *pend;
10738 while (end < pend) {
10739 if (*end++ ==
'\n')
break;
10749 if (
NIL_P(line))
return line;
10773 volatile VALUE tmp;
10834 volatile VALUE tmp;
10850 #define STR_FUNC_ESCAPE 0x01
10851 #define STR_FUNC_EXPAND 0x02
10852 #define STR_FUNC_REGEXP 0x04
10853 #define STR_FUNC_QWORDS 0x08
10854 #define STR_FUNC_SYMBOL 0x10
10855 #define STR_FUNC_INDENT 0x20
10885 #define lex_goto_eol(parser) ((parser)->parser_lex_p = (parser)->parser_lex_pend)
10886 #define lex_eol_p() (lex_p >= lex_pend)
10887 #define peek(c) peek_n((c), 0)
10888 #define peek_n(c,n) (lex_p+(n) < lex_pend && (c) == (unsigned char)lex_p[n])
10911 if (
NIL_P(parser->delayed)) {
10915 parser->tokp,
lex_pend - parser->tokp);
10917 parser->delayed_col = (int)(parser->tokp -
lex_pbeg);
10921 parser->tokp,
lex_pend - parser->tokp);
10937 c = (
unsigned char)*
lex_p++;
10938 if (c ==
'\r' &&
peek(
'\n')) {
10949 if (c == -1)
return;
10956 #define was_bol() (lex_p == lex_pbeg + 1)
10958 #define tokfix() (tokenbuf[tokidx]='\0')
10959 #define tok() tokenbuf
10960 #define toklen() tokidx
10961 #define toklast() (tokidx>0?tokenbuf[tokidx-1]:0)
11007 yyerror(
"invalid hex escape");
11014 #define tokcopy(n) memcpy(tokspace(n), lex_p - (n), (n))
11018 int string_literal,
int symbol_literal,
int regexp_literal)
11038 yyerror(
"invalid Unicode escape");
11041 if (codepoint > 0x10ffff) {
11042 yyerror(
"invalid Unicode codepoint (too large)");
11046 if (regexp_literal) {
11049 else if (codepoint >= 0x80) {
11051 if (string_literal)
tokaddmbc(codepoint, *encp);
11053 else if (string_literal) {
11056 }
while (string_literal && (
peek(
' ') ||
peek(
'\t')));
11059 yyerror(
"unterminated Unicode escape");
11063 if (regexp_literal) {
tokadd(
'}'); }
11069 yyerror(
"invalid Unicode escape");
11073 if (regexp_literal) {
11076 else if (codepoint >= 0x80) {
11078 if (string_literal)
tokaddmbc(codepoint, *encp);
11080 else if (string_literal) {
11088 #define ESCAPE_CONTROL 1
11089 #define ESCAPE_META 2
11098 switch (c =
nextc()) {
11123 case '0':
case '1':
case '2':
case '3':
11124 case '4':
case '5':
case '6':
case '7':
11132 if (numlen == 0)
return 0;
11143 if ((c =
nextc()) !=
'-') {
11147 if ((c =
nextc()) ==
'\\') {
11148 if (
peek(
'u'))
goto eof;
11149 return read_escape(flags|ESCAPE_META, encp) | 0x80;
11151 else if (c == -1 || !
ISASCII(c))
goto eof;
11153 return ((c & 0xff) | 0x80);
11157 if ((c =
nextc()) !=
'-') {
11163 if ((c =
nextc())==
'\\') {
11164 if (
peek(
'u'))
goto eof;
11169 else if (c == -1 || !
ISASCII(c))
goto eof;
11174 yyerror(
"Invalid escape character syntax");
11197 switch (c =
nextc()) {
11201 case '0':
case '1':
case '2':
case '3':
11202 case '4':
case '5':
case '6':
case '7':
11205 if (numlen == 0)
goto eof;
11214 if (numlen == 0)
return -1;
11221 if ((c =
nextc()) !=
'-') {
11231 if ((c =
nextc()) !=
'-') {
11239 if (flags & ESCAPE_CONTROL)
goto eof;
11243 if ((c =
nextc()) ==
'\\') {
11246 else if (c == -1)
goto eof;
11252 yyerror(
"Invalid escape character syntax");
11321 #define tokadd_mbchar(c) parser_tokadd_mbchar(parser, (c))
11325 int func,
int term,
int paren,
long *nest,
11329 int has_nonascii = 0;
11332 static const char mixed_msg[] =
"%s mixed within %s source";
11334 #define mixed_error(enc1, enc2) if (!errbuf) { \
11335 size_t len = sizeof(mixed_msg) - 4; \
11336 len += strlen(rb_enc_name(enc1)); \
11337 len += strlen(rb_enc_name(enc2)); \
11338 errbuf = ALLOCA_N(char, len); \
11339 snprintf(errbuf, len, mixed_msg, \
11340 rb_enc_name(enc1), \
11341 rb_enc_name(enc2)); \
11344 #define mixed_escape(beg, enc1, enc2) do { \
11345 const char *pos = lex_p; \
11347 mixed_error((enc1), (enc2)); \
11351 while ((c =
nextc()) != -1) {
11352 if (paren && c == paren) {
11355 else if (c == term) {
11356 if (!nest || !*nest) {
11364 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
11369 else if (c ==
'\\') {
11370 const char *beg =
lex_p - 1;
11375 if (func & STR_FUNC_EXPAND)
continue;
11384 if ((func & STR_FUNC_EXPAND) == 0) {
11391 if (has_nonascii && enc != *encp) {
11397 if (c == -1)
return -1;
11399 if ((func & STR_FUNC_EXPAND) == 0)
tokadd(
'\\');
11402 if (func & STR_FUNC_REGEXP) {
11406 if (has_nonascii && enc != *encp) {
11411 else if (func & STR_FUNC_EXPAND) {
11413 if (func & STR_FUNC_ESCAPE)
tokadd(
'\\');
11416 else if ((func & STR_FUNC_QWORDS) &&
ISSPACE(c)) {
11419 else if (c != term && !(paren && c == paren)) {
11429 if (enc != *encp) {
11442 if (enc != *encp) {
11453 #define NEW_STRTERM(func, term, paren) \
11454 rb_node_newnode(NODE_STRTERM, (func), (term) | ((paren) << (CHAR_BIT * 2)), 0)
11460 if (!
NIL_P(parser->delayed)) {
11461 ptrdiff_t
len =
lex_p - parser->tokp;
11466 parser->tokp =
lex_p;
11470 #define flush_string_content(enc) ripper_flush_string_content(parser, (enc))
11472 #define flush_string_content(enc) ((void)(enc))
11478 int func = (int)quote->nd_func;
11490 if (c == term && !quote->nd_nest) {
11491 if (func & STR_FUNC_QWORDS) {
11492 quote->nd_func = -1;
11505 switch (c =
nextc()) {
11559 while ((c =
nextc()) != -1 && c != term) {
11606 line = here->nd_orig;
11620 const char *eos,
long len,
int indent)
11626 while (*p &&
ISSPACE(*p)) p++;
11629 if (n < 0 || (n > 0 && p[len] !=
'\n' && p[len] !=
'\r'))
return FALSE;
11630 return strncmp(eos, p, len) == 0;
11637 if (!
NIL_P(parser->delayed))
11640 ripper_dispatch_ignored_scan_event(parser,
tHEREDOC_END);
11643 #define dispatch_heredoc_end() ripper_dispatch_heredoc_end(parser)
11645 #define dispatch_heredoc_end() ((void)0)
11651 int c,
func, indent = 0;
11652 const char *eos, *
p, *pend;
11661 if ((c =
nextc()) == -1) {
11665 if (
NIL_P(parser->delayed)) {
11670 ((len =
lex_p - parser->tokp) > 0 &&
11671 (str =
STR_NEW3(parser->tokp, len, enc, func), 1))) {
11694 switch (pend[-1]) {
11696 if (--pend == p || pend[-1] !=
'\r') {
11710 if (
nextc() == -1) {
11720 switch (c =
nextc()) {
11733 if (parser->
eofp)
goto error;
11743 if ((c =
nextc()) == -1)
goto error;
11760 rb_warning0(
"ambiguous first argument; put parentheses or even spaces");
11765 #define arg_ambiguous() (arg_ambiguous_gen(parser), 1)
11772 yyerror(
"formal argument must be local variable");
11790 if (len > 5 && name[nlen = len - 5] ==
'-') {
11791 if (
rb_memcicmp(name + nlen + 1,
"unix", 4) == 0)
11794 if (len > 4 && name[nlen = len - 4] ==
'-') {
11797 if (
rb_memcicmp(name + nlen + 1,
"mac", 3) == 0 &&
11798 !(len == 8 &&
rb_memcicmp(name,
"utf8-mac", len) == 0))
11813 excargs[1] =
rb_sprintf(
"unknown encoding name: %s", name);
11830 for (i = 0; i < n; ++
i) {
11868 case 't':
case 'T':
11874 case 'f':
case 'F':
11897 static const char *
11905 if (str[i-1] ==
'*' && str[i-2] ==
'-') {
11906 return str + i + 1;
11911 if (i + 1 >= len)
return 0;
11912 if (str[i+1] !=
'-') {
11915 else if (str[i-1] !=
'-') {
11919 return str + i + 2;
11933 VALUE name = 0, val = 0;
11934 const char *beg, *end, *vbeg, *vend;
11935 #define str_copy(_s, _p, _n) ((_s) \
11936 ? (void)(rb_str_resize((_s), (_n)), \
11937 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
11938 : (void)((_s) = STR_NEW((_p), (_n))))
11940 if (len <= 7)
return FALSE;
11944 len = end - beg - 3;
11955 for (; len > 0 && *str; str++, --
len) {
11957 case '\'':
case '"':
case ':':
case ';':
11962 for (beg = str; len > 0; str++, --
len) {
11964 case '\'':
case '"':
case ':':
case ';':
11972 for (end = str; len > 0 &&
ISSPACE(*str); str++, --
len);
11974 if (*str !=
':')
continue;
11976 do str++;
while (--len > 0 &&
ISSPACE(*str));
11979 for (vbeg = ++str; --len > 0 && *str !=
'"'; str++) {
11980 if (*str ==
'\\') {
11992 for (vbeg = str; len > 0 && *str !=
'"' && *str !=
';' && !
ISSPACE(*str); --
len, str++);
11995 while (len > 0 && (*str ==
';' ||
ISSPACE(*str))) --len, str++;
12000 for (i = 0; i < n; ++
i) {
12001 if (s[i] ==
'-') s[
i] =
'_';
12008 n = (*p->
length)(parser, vbeg, n);
12014 }
while (++p < magic_comments +
numberof(magic_comments));
12028 const char *beg = str;
12032 if (send - str <= 6)
return;
12034 case 'C':
case 'c': str += 6;
continue;
12035 case 'O':
case 'o': str += 5;
continue;
12036 case 'D':
case 'd': str += 4;
continue;
12037 case 'I':
case 'i': str += 3;
continue;
12038 case 'N':
case 'n': str += 2;
continue;
12039 case 'G':
case 'g': str += 1;
continue;
12040 case '=':
case ':':
12053 if (++str >= send)
return;
12056 if (*str !=
'=' && *str !=
':')
return;
12061 while ((*str ==
'-' || *str ==
'_' ||
ISALNUM(*str)) && ++str < send);
12077 (
unsigned char)
lex_p[0] == 0xbb &&
12078 (
unsigned char)
lex_p[1] == 0xbf) {
12092 #define IS_ARG() (lex_state == EXPR_ARG || lex_state == EXPR_CMDARG)
12093 #define IS_END() (lex_state == EXPR_END || lex_state == EXPR_ENDARG || lex_state == EXPR_ENDFN)
12094 #define IS_BEG() (lex_state == EXPR_BEG || lex_state == EXPR_MID || lex_state == EXPR_VALUE || lex_state == EXPR_CLASS)
12095 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
12096 #define IS_LABEL_POSSIBLE() ((lex_state == EXPR_BEG && !cmd_state) || IS_ARG())
12097 #define IS_LABEL_SUFFIX(n) (peek_n(':',(n)) && !peek_n(':', (n)+1))
12100 #define ambiguous_operator(op, syn) ( \
12101 rb_warning0("`"op"' after local variable is interpreted as binary operator"), \
12102 rb_warning0("even though it seems like "syn""))
12104 #define ambiguous_operator(op, syn) dispatch2(operator_ambiguous, ripper_intern(op), rb_str_new_cstr(syn))
12106 #define warn_balanced(op, syn) ((void) \
12107 (last_state != EXPR_CLASS && last_state != EXPR_DOT && \
12108 last_state != EXPR_FNAME && last_state != EXPR_ENDFN && \
12109 last_state != EXPR_ENDARG && \
12110 space_seen && !ISSPACE(c) && \
12111 (ambiguous_operator(op, syn), 0)))
12117 int space_seen = 0;
12123 int fallthru =
FALSE;
12149 switch (c =
nextc()) {
12157 case ' ':
case '\t':
case '\f':
case '\r':
12161 while ((c =
nextc())) {
12163 case ' ':
case '\t':
case '\f':
case '\r':
12172 ripper_dispatch_scan_event(parser,
tSP);
12185 ripper_dispatch_scan_event(parser,
tCOMMENT);
12206 while ((c =
nextc())) {
12208 case ' ':
case '\t':
case '\f':
case '\r':
12213 if ((c =
nextc()) !=
'.') {
12226 parser->tokp =
lex_p;
12229 goto normal_newline;
12238 if ((c =
nextc()) ==
'*') {
12239 if ((c =
nextc()) ==
'=') {
12255 rb_warning0(
"`*' interpreted as argument prefix");
12299 int first_p =
TRUE;
12308 ripper_dispatch_scan_event(parser,
tEMBDOC);
12317 if (c !=
'=')
continue;
12318 if (strncmp(
lex_p,
"end", 3) == 0 &&
12337 if ((c =
nextc()) ==
'=') {
12338 if ((c =
nextc()) ==
'=') {
12347 else if (c ==
'>') {
12360 (!
IS_ARG() || space_seen)) {
12362 if (token)
return token;
12371 if ((c =
nextc()) ==
'>') {
12378 if ((c =
nextc()) ==
'=') {
12397 if ((c =
nextc()) ==
'=') {
12401 if ((c =
nextc()) ==
'=') {
12469 rb_warnI(
"invalid character syntax; use ?\\%c", c2);
12486 else if (c ==
'\\') {
12515 if ((c =
nextc()) ==
'&') {
12517 if ((c =
nextc()) ==
'=') {
12525 else if (c ==
'=') {
12532 rb_warning0(
"`&' interpreted as argument prefix");
12551 if ((c =
nextc()) ==
'|') {
12553 if ((c =
nextc()) ==
'=') {
12638 if ((c =
nextc()) ==
'.') {
12639 if ((c =
nextc()) ==
'.') {
12647 yyerror(
"no .<digit> floating literal anymore; put 0 before dot");
12653 case '0':
case '1':
case '2':
case '3':
case '4':
12654 case '5':
case '6':
case '7':
case '8':
case '9':
12656 int is_float, seen_point, seen_e, nondigit;
12658 is_float = seen_point = seen_e = nondigit = 0;
12661 if (c ==
'-' || c ==
'+') {
12666 #define no_digits() do {yyerror("numeric literal without digits"); return 0;} while (0)
12669 if (c ==
'x' || c ==
'X') {
12675 if (nondigit)
break;
12682 }
while ((c =
nextc()) != -1);
12686 if (
toklen() == start) {
12689 else if (nondigit)
goto trailing_uc;
12693 if (c ==
'b' || c ==
'B') {
12696 if (c ==
'0' || c ==
'1') {
12699 if (nondigit)
break;
12703 if (c !=
'0' && c !=
'1')
break;
12706 }
while ((c =
nextc()) != -1);
12710 if (
toklen() == start) {
12713 else if (nondigit)
goto trailing_uc;
12717 if (c ==
'd' || c ==
'D') {
12723 if (nondigit)
break;
12730 }
while ((c =
nextc()) != -1);
12734 if (
toklen() == start) {
12737 else if (nondigit)
goto trailing_uc;
12745 if (c ==
'o' || c ==
'O') {
12748 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
12752 if (c >=
'0' && c <=
'7') {
12757 if (nondigit)
break;
12761 if (c < '0' || c >
'9')
break;
12762 if (c >
'7')
goto invalid_octal;
12765 }
while ((c =
nextc()) != -1);
12769 if (nondigit)
goto trailing_uc;
12778 if (c >
'7' && c <=
'9') {
12780 yyerror(
"Invalid octal digit");
12782 else if (c ==
'.' || c ==
'e' || c ==
'E') {
12794 case '0':
case '1':
case '2':
case '3':
case '4':
12795 case '5':
case '6':
case '7':
case '8':
case '9':
12801 if (nondigit)
goto trailing_uc;
12802 if (seen_point || seen_e) {
12807 if (c0 == -1 || !
ISDIGIT(c0)) {
12835 if (c !=
'-' && c !=
'+')
continue;
12841 if (nondigit)
goto decode_num;
12856 snprintf(tmp,
sizeof(tmp),
"trailing `%c' in number", nondigit);
12862 if (
errno == ERANGE) {
12920 if ((c =
nextc()) ==
'=') {
12941 if ((c =
nextc()) ==
'=') {
12966 if ((c =
nextc()) !=
'@') {
12993 if ((c =
nextc()) ==
']') {
12994 if ((c =
nextc()) ==
'=') {
13006 else if (
IS_ARG() && space_seen) {
13040 ripper_dispatch_scan_event(parser,
tSP);
13054 if (c == -1 || !
ISALNUM(c)) {
13061 yyerror(
"unknown type of %string");
13065 if (c == -1 || term == -1) {
13070 if (term ==
'(') term =
')';
13071 else if (term ==
'[') term =
']';
13072 else if (term ==
'{') term =
'}';
13073 else if (term ==
'<') term =
'>';
13111 yyerror(
"unknown type of %string");
13115 if ((c =
nextc()) ==
'=') {
13197 case '1':
case '2':
case '3':
13198 case '4':
case '5':
case '6':
13199 case '7':
case '8':
case '9':
13204 }
while (c != -1 &&
ISDIGIT(c));
13252 ripper_dispatch_scan_event(parser,
k__END__);
13275 switch (
tok()[0]) {
13276 case '@':
case '$':
13280 if ((c ==
'!' || c ==
'?') && !
peek(
'=')) {
13293 switch (
tok()[0]) {
13300 if (
tok()[1] ==
'@')
13367 if (kw->
id[0] != kw->
id[1])
13420 if (!
NIL_P(parser->delayed)) {
13421 ripper_dispatch_delayed_token(parser, t);
13425 ripper_dispatch_scan_event(parser, t);
13467 if (orig == (
NODE*)1)
return;
13476 #define parser_warning(node, mesg) parser_warning(parser, (node), (mesg))
13483 #define parser_warn(node, mesg) parser_warn(parser, (node), (mesg))
13488 NODE *end, *h = head, *nd;
13490 if (tail == 0)
return head;
13492 if (h == 0)
return tail;
13531 tail->nd_end = tail;
13533 end->nd_next = tail;
13534 h->nd_end = tail->nd_end;
13544 if (list == 0)
return NEW_LIST(item);
13545 if (list->nd_next) {
13546 last = list->nd_next->nd_end;
13552 list->nd_alen += 1;
13554 list->nd_next->nd_end = last->nd_next;
13564 if (head->nd_next) {
13565 last = head->nd_next->nd_end;
13571 head->nd_alen += tail->nd_alen;
13572 last->nd_next = tail;
13573 if (tail->nd_next) {
13574 head->nd_next->nd_end = tail->nd_next->nd_end;
13577 head->nd_next->nd_end = tail;
13586 if (
NIL_P(tail))
return 1;
13605 if (!head)
return tail;
13606 if (!tail)
return head;
13633 tail->nd_lit = head->nd_lit;
13637 else if (
NIL_P(tail->nd_lit)) {
13638 head->nd_alen += tail->nd_alen - 1;
13639 head->nd_next->nd_end->nd_next = tail->nd_next;
13640 head->nd_next->nd_end = tail->nd_next->nd_end;
13645 tail->nd_head =
NEW_STR(tail->nd_lit);
13784 switch (
id & ID_SCOPE_MASK) {
13809 # define assignable_result(x) get_value(lhs)
13810 # define parser_yyerror(parser, x) dispatch1(assign_error, lhs)
13812 # define assignable_result(x) (x)
13816 yyerror(
"Can't change the value of self");
13819 yyerror(
"Can't assign to nil");
13822 yyerror(
"Can't assign to true");
13825 yyerror(
"Can't assign to false");
13828 yyerror(
"Can't assign to __FILE__");
13831 yyerror(
"Can't assign to __LINE__");
13834 yyerror(
"Can't assign to __ENCODING__");
13868 yyerror(
"dynamic constant assignment");
13877 #undef assignable_result
13878 #undef parser_yyerror
13881 #define LVAR_USED ((int)1 << (sizeof(int) * CHAR_BIT - 1))
13886 if (idUScore == name)
return name;
13889 yyerror(
"duplicated argument name");
13901 yyerror(
"duplicated argument name");
13940 id &= ~ID_SCOPE_MASK;
13969 if (!node2)
return node1;
13972 if (node1->nd_head)
13973 node1->nd_head =
arg_concat(node1->nd_head, node2);
13985 node1->nd_body =
list_concat(node1->nd_body, node2);
13994 if (!node1)
return NEW_LIST(node2);
13999 node1->nd_head =
arg_append(node1->nd_head, node2);
14020 if (!lhs)
return 0;
14032 lhs->nd_value = rhs;
14037 lhs->nd_args =
arg_append(lhs->nd_args, rhs);
14068 if (!cond)
yyerror(
"void value expression");
14073 while (node->nd_next) {
14074 node = node->nd_next;
14076 node = node->nd_head;
14080 node = node->nd_body;
14084 if (!node->nd_body) {
14085 node = node->nd_else;
14088 else if (!node->nd_else) {
14089 node = node->nd_body;
14093 node = node->nd_else;
14099 node = node->nd_2nd;
14113 const char *useless = 0;
14120 switch (node->nd_mid) {
14151 useless =
"a variable";
14154 useless =
"a constant";
14161 useless =
"a literal";
14186 useless =
"defined?";
14194 rb_warnS(
"possibly useless use of %s in void context", useless);
14207 if (!node->nd_next)
return;
14209 node = node->nd_next;
14216 NODE **n = &node, *n1 = node;
14218 *n = n1 = n1->nd_body;
14226 NODE *node = *body;
14232 #define subnodes(n1, n2) \
14233 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
14234 (!node->n2) ? (body = &node->n1, 1) : \
14235 (reduce_nodes(&node->n1), body = &node->n2, 1))
14245 *body = node = node->nd_stts;
14249 *body = node = node->nd_body;
14253 body = &node->nd_end->nd_head;
14259 body = &node->nd_body;
14268 if (node->nd_else) {
14269 body = &node->nd_resq;
14289 yyerror(
"multiple assignment in conditional");
14303 if (!node->nd_value)
return 1;
14304 switch (
nd_type(node->nd_value)) {
14311 parser_warn(node->nd_value,
"found = in conditional, should be ==");
14340 NODE *node, *next, *head;
14342 for (node = *rootnode; node; node = next) {
14346 next = node->nd_next;
14347 head = node->nd_head;
14350 switch (type =
nd_type(head)) {
14353 val =
rb_range_new(head->nd_beg->nd_lit, head->nd_end->nd_lit,
14358 head->nd_lit = val;
14373 if (node == 0)
return 0;
14381 return cond0(parser, node);
14387 if (!node)
return 1;
14408 if (node == 0)
return 0;
14415 rb_warn0(
"string literal in condition");
14425 node->nd_1st =
cond0(parser, node->nd_1st);
14426 node->nd_2nd =
cond0(parser, node->nd_2nd);
14431 node->nd_beg =
range_op(parser, node->nd_beg);
14432 node->nd_end =
range_op(parser, node->nd_end);
14465 if (node == 0)
return 0;
14466 return cond0(parser, node);
14474 NODE *node = left, *second;
14475 while ((second = node->nd_2nd) != 0 && (
enum node_type)
nd_type(second) == type) {
14478 node->nd_2nd =
NEW_NODE(type, second, right, 0);
14481 return NEW_NODE(type, left, right, 0);
14498 if (node->nd_next == 0) {
14499 node = node->nd_head;
14529 switch (
TYPE(node->nd_lit)) {
14549 node2->nd_head = node1;
14562 node =
NEW_ARGS(m ? m->nd_plen : 0, o);
14563 i1 = m ? m->nd_next : 0;
14568 node->nd_next->nd_next =
NEW_ARGS_AUX(p->nd_pid, p->nd_plen);
14587 if (!local->
used)
return;
14591 if (cnt != local->
vars->
pos) {
14592 rb_bug(
"local->used->pos != local->vars->pos");
14594 for (i = 0; i <
cnt; ++
i) {
14595 if (!v[i] || (u[i] &
LVAR_USED))
continue;
14596 if (idUScore == v[i])
continue;
14636 for (i = 0; i <
cnt; i++) {
14637 buf[
i] = src->
tbl[
i];
14650 if (cnt <= 0)
return 0;
14681 vars =
lvtbl->vars;
14682 args =
lvtbl->args;
14683 used =
lvtbl->used;
14688 if (used) used = used->
prev;
14704 static const struct vtable *
14712 return lvtbl->args;
14720 if ((tmp =
lvtbl->used) != 0) {
14736 while (
lvtbl->args != lvargs) {
14738 if (!
lvtbl->args) {
14759 args =
lvtbl->args;
14760 vars =
lvtbl->vars;
14761 used =
lvtbl->used;
14774 if (used) used = used->
prev;
14827 "regexp encoding option '%c' differs from source encoding '%s'",
14856 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
14862 const char *s = (
const char *)name;
14879 rb_warningS(
"named capture conflicts a local variable - %s",
14959 NODE *scope = node;
14962 if (!node)
return node;
14966 node = node->nd_body;
14970 node = node->nd_body;
14977 prelude->nd_body = node;
14978 scope->nd_body = prelude;
14981 scope->nd_body = node;
14991 NODE *scope = node;
14994 if (!node)
return node;
14998 node = node->nd_body;
15002 node = node->nd_body;
15018 prelude->nd_body = node;
15019 scope->nd_body = prelude;
15022 scope->nd_body = node;
15028 static const struct {
15034 {
'+',
"+(binary)"},
15035 {
'-',
"-(binary)"},
15054 #define op_tbl_count numberof(op_tbl)
15056 #ifndef ENABLE_SELECTOR_NAMESPACE
15057 #define ENABLE_SELECTOR_NAMESPACE 0
15064 #if ENABLE_SELECTOR_NAMESPACE
15076 #if ENABLE_SELECTOR_NAMESPACE
15083 ivar2_cmp(
struct ivar2_key *key1,
struct ivar2_key *key2)
15085 if (key1->id == key2->id && key1->klass == key2->klass) {
15092 ivar2_hash(
struct ivar2_key *
key)
15094 return (key->id << 8) ^ (key->klass >> 2);
15108 #if ENABLE_SELECTOR_NAMESPACE
15139 if (m >= e)
return 0;
15141 case '~':
case '*':
case '$':
case '?':
case '!':
case '@':
15142 case '/':
case '\\':
case ';':
case ',':
case '.':
case '=':
15143 case ':':
case '<':
case '>':
case '\"':
15144 case '&':
case '`':
case '\'':
case '+':
15162 return m == e ? mb + 1 : 0;
15180 const char *m =
name;
15181 const char *e = m +
len;
15182 int localid =
FALSE;
15184 if (!m || len <= 0)
return FALSE;
15194 if (*++m ==
'@') ++m;
15199 case '<': ++m;
break;
15200 case '=':
if (*++m ==
'>') ++m;
break;
15207 case '>':
case '=': ++m;
break;
15213 case '~': ++m;
break;
15214 case '=':
if (*++m ==
'=') ++m;
break;
15215 default:
return FALSE;
15220 if (*++m ==
'*') ++m;
15223 case '+':
case '-':
15224 if (*++m ==
'@') ++m;
15227 case '|':
case '^':
case '&':
case '/':
case '%':
case '~':
case '`':
15232 if (*++m !=
']')
return FALSE;
15233 if (*++m ==
'=') ++m;
15237 if (len == 1)
return TRUE;
15239 case '=':
case '~': ++m;
break;
15240 default:
return FALSE;
15252 case '!':
case '?':
case '=': ++m;
15273 const char *m =
name;
15274 const char *e = m +
len;
15285 fake_str.
as.
heap.ptr = (
char *)name;
15287 str = (
VALUE)&fake_str;
15333 if (*
op_tbl[i].name == *m &&
15334 strcmp(
op_tbl[i].name, m) == 0) {
15341 if (m[last] ==
'=') {
15371 if (m - name < len)
id =
ID_JUNK;
15378 for (; m <= name +
len; ++m) {
15379 if (!
ISASCII(*m))
goto mbstr;
15443 name[0] = (char)
id;
15466 if (
RBASIC(str)->klass == 0)
15477 id2 = (
id & ~ID_SCOPE_MASK) |
ID_CONST;
15484 if (
RBASIC(str)->klass == 0)
15497 if (!str)
return 0;
15599 parser->parser_ruby_sourcefile_string =
Qnil;
15600 parser->delayed =
Qnil;
15602 parser->result =
Qnil;
15603 parser->parsing_thread =
Qnil;
15604 parser->toplevel_p =
TRUE;
15613 #define parser_mark ripper_parser_mark
15614 #define parser_free ripper_parser_free
15632 rb_gc_mark(p->parser_ruby_sourcefile_string);
15654 prev = local->
prev;
15668 size_t size =
sizeof(*p);
15670 if (!ptr)
return 0;
15673 size +=
sizeof(*local);
15698 #undef rb_reserved_word
15782 yydebug =
RTEST(flag);
15787 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
15788 #define NEWHEAP() rb_node_newnode(NODE_ALLOCA, 0, (VALUE)parser->heap, 0)
15789 #define ADD2HEAP(n, c, p) ((parser->heap = (n))->u1.node = (p), \
15790 (n)->u3.cnt = (c), (p))
15807 void *ptr =
xcalloc(nelem, size);
15818 if (ptr && (n = parser->
heap) !=
NULL) {
15820 if (n->
u1.
node == ptr) {
15837 while ((n = *prev) !=
NULL) {
15838 if (n->u1.node == ptr) {
15851 #ifdef RIPPER_DEBUG
15852 extern int rb_is_pointer_to_heap(
VALUE);
15858 if (x ==
Qfalse)
return x;
15859 if (x ==
Qtrue)
return x;
15860 if (x ==
Qnil)
return x;
15865 if (!rb_is_pointer_to_heap(x))
15878 return ((
NODE *)x)->nd_rval;
15887 #define validate(x) ((x) = get_value(x))
15899 return rb_funcall(parser->value, mid, 1, a);
15907 return rb_funcall(parser->value, mid, 2, a, b);
15916 return rb_funcall(parser->value, mid, 3, a, b, c);
15926 return rb_funcall(parser->value, mid, 4, a, b, c, d);
15937 return rb_funcall(parser->value, mid, 5, a, b, c, d, e);
15940 static const struct kw_assoc {
15943 } keyword_to_name[] = {
15996 keyword_id_to_str(
ID id)
15998 const struct kw_assoc *a;
16000 for (a = keyword_to_name; a->id; a++) {
16007 #undef ripper_id2sym
16019 if ((name = keyword_id_to_str(
id))) {
16032 rb_bug(
"cannot convert ID to string: %ld", (
unsigned long)
id);
16050 ripper_get_value(
VALUE v)
16057 return nd->nd_rval;
16061 ripper_compile_error(
struct parser_params *parser,
const char *fmt, ...)
16066 va_start(args, fmt);
16073 ripper_warn0(
struct parser_params *parser,
const char *fmt)
16079 ripper_warnI(
struct parser_params *parser,
const char *fmt,
int a)
16087 ripper_warnS(
struct parser_params *parser,
const char *fmt,
const char *str)
16095 ripper_warning0(
struct parser_params *parser,
const char *fmt)
16101 ripper_warningS(
struct parser_params *parser,
const char *fmt,
const char *str)
16114 ripper_s_allocate(
VALUE klass)
16126 #define ripper_initialized_p(r) ((r)->parser_lex_input != 0)
16142 VALUE src, fname, lineno;
16145 rb_scan_args(argc, argv,
"12", &src, &fname, &lineno);
16155 if (
NIL_P(fname)) {
16163 parser->parser_ruby_sourcefile_string = fname;
16170 struct ripper_args {
16177 ripper_parse0(
VALUE parser_v)
16183 ripper_yyparse((
void*)parser);
16184 return parser->result;
16188 ripper_ensure(
VALUE parser_v)
16193 parser->parsing_thread =
Qnil;
16204 ripper_parse(
VALUE self)
16209 if (!ripper_initialized_p(parser)) {
16212 if (!
NIL_P(parser->parsing_thread)) {
16219 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
16221 return parser->result;
16232 ripper_column(
VALUE self)
16238 if (!ripper_initialized_p(parser)) {
16241 if (
NIL_P(parser->parsing_thread))
return Qnil;
16253 ripper_filename(
VALUE self)
16258 if (!ripper_initialized_p(parser)) {
16261 return parser->parser_ruby_sourcefile_string;
16272 ripper_lineno(
VALUE self)
16277 if (!ripper_initialized_p(parser)) {
16280 if (
NIL_P(parser->parsing_thread))
return Qnil;
16284 #ifdef RIPPER_DEBUG
16306 InitVM_ripper(
void)
16329 #ifdef RIPPER_DEBUG