47 #define YYBISON_VERSION "3.0.4"
50 #define YYSKELETON_NAME "yacc.c"
69 # error needs pure parser
72 #define YYERROR_VERBOSE 1
73 #define YYSTACK_USE_ALLOCA 0
74 #define YYLTYPE rb_code_location_t
75 #define YYLTYPE_IS_DECLARED 1
90 #ifndef WARN_PAST_SCOPE
91 # define WARN_PAST_SCOPE 0
96 #define yydebug (p->debug)
98 #define YYMALLOC(size) rb_parser_malloc(p, (size))
99 #define YYREALLOC(ptr, size) rb_parser_realloc(p, (ptr), (size))
100 #define YYCALLOC(nelem, size) rb_parser_calloc(p, (nelem), (size))
101 #define YYFREE(ptr) rb_parser_free(p, (ptr))
102 #define YYFPRINTF rb_parser_printf
103 #define YYPRINT(out, tok, val) parser_token_value_print(p, (tok), &(val))
104 #define YY_LOCATION_PRINT(File, loc) \
105 rb_parser_printf(p, "%d.%d-%d.%d", \
106 (loc).beg_pos.lineno, (loc).beg_pos.column,\
107 (loc).end_pos.lineno, (loc).end_pos.column)
108 #define YYLLOC_DEFAULT(Current, Rhs, N) \
112 (Current).beg_pos = YYRHSLOC(Rhs, 1).beg_pos; \
113 (Current).end_pos = YYRHSLOC(Rhs, N).end_pos; \
117 (Current).beg_pos = YYRHSLOC(Rhs, 0).end_pos; \
118 (Current).end_pos = YYRHSLOC(Rhs, 0).end_pos; \
122 #define RUBY_SET_YYLLOC_FROM_STRTERM_HEREDOC(Current) \
123 rb_parser_set_location_from_strterm_heredoc(p, &p->lex.strterm->u.heredoc, &(Current))
124 #define RUBY_SET_YYLLOC_OF_NONE(Current) \
125 rb_parser_set_location_of_none(p, &(Current))
126 #define RUBY_SET_YYLLOC(Current) \
127 rb_parser_set_location(p, &(Current))
128 #define RUBY_INIT_YYLLOC() \
130 {p->ruby_sourceline, (int)(p->lex.ptok - p->lex.pbeg)}, \
131 {p->ruby_sourceline, (int)(p->lex.pcur - p->lex.pbeg)}, \
152 #define DEF_EXPR(n) EXPR_##n = (1 << EXPR_##n##_bit)
172 #define IS_lex_state_for(x, ls) ((x) & (ls))
173 #define IS_lex_state_all_for(x, ls) (((x) & (ls)) == (ls))
174 #define IS_lex_state(ls) IS_lex_state_for(p->lex.state, (ls))
175 #define IS_lex_state_all(ls) IS_lex_state_all_for(p->lex.state, (ls))
177 # define SET_LEX_STATE(ls) \
180 rb_parser_trace_lex_state(p, p->lex.state, (ls), __LINE__) : \
181 (enum lex_state_e)(ls)))
187 # define SHOW_BITSTACK(stack, name) (p->debug ? rb_parser_show_bitstack(p, stack, name, __LINE__) : (void)0)
188 # define BITSTACK_PUSH(stack, n) (((p->stack) = ((p->stack)<<1)|((n)&1)), SHOW_BITSTACK(p->stack, #stack"(push)"))
189 # define BITSTACK_POP(stack) (((p->stack) = (p->stack) >> 1), SHOW_BITSTACK(p->stack, #stack"(pop)"))
190 # define BITSTACK_SET_P(stack) (SHOW_BITSTACK(p->stack, #stack), (p->stack)&1)
191 # define BITSTACK_SET(stack, n) ((p->stack)=(n), SHOW_BITSTACK(p->stack, #stack"(set)"))
195 #define COND_PUSH(n) BITSTACK_PUSH(cond_stack, (n))
196 #define COND_POP() BITSTACK_POP(cond_stack)
197 #define COND_P() BITSTACK_SET_P(cond_stack)
198 #define COND_SET(n) BITSTACK_SET(cond_stack, (n))
202 #define CMDARG_PUSH(n) BITSTACK_PUSH(cmdarg_stack, (n))
203 #define CMDARG_POP() BITSTACK_POP(cmdarg_stack)
204 #define CMDARG_P() BITSTACK_SET_P(cmdarg_stack)
205 #define CMDARG_SET(n) BITSTACK_SET(cmdarg_stack, (n))
235 #define NUMPARAM_ID_P(id) numparam_id_p(id)
236 #define NUMPARAM_ID_TO_IDX(id) (unsigned int)(((id) >> ID_SCOPE_SHIFT) - tNUMPARAM_1 + 1)
237 #define NUMPARAM_IDX_TO_ID(idx) TOKEN2LOCALID((tNUMPARAM_1 + (idx) - 1))
247 #define DVARS_INHERIT ((void*)1)
248 #define DVARS_TOPSCOPE NULL
249 #define DVARS_TERMINAL_P(tbl) ((tbl) == DVARS_INHERIT || (tbl) == DVARS_TOPSCOPE)
341 unsigned int past_scope_enabled: 1;
371 VALUE parsing_thread;
375 #define intern_cstr(n,l,en) rb_intern3(n,l,en)
377 #define STR_NEW(ptr,len) rb_enc_str_new((ptr),(len),p->enc)
378 #define STR_NEW0() rb_enc_str_new(0,0,p->enc)
379 #define STR_NEW2(ptr) rb_enc_str_new((ptr),strlen(ptr),p->enc)
380 #define STR_NEW3(ptr,len,e,func) parser_str_new((ptr),(len),(e),(func),p->enc)
381 #define TOK_INTERN() intern_cstr(tok(p), toklen(p), p->enc)
414 #define yyerror0(msg) parser_yyerror(p, NULL, (msg))
415 #define yyerror1(loc, msg) parser_yyerror(p, (loc), (msg))
416 #define yyerror(yylloc, p, msg) parser_yyerror(p, yylloc, msg)
417 #define token_flush(ptr) ((ptr)->lex.ptok = (ptr)->lex.pcur)
420 #define compile_for_eval (0)
422 #define compile_for_eval (p->parent_iseq != 0)
425 #define token_column ((int)(p->lex.ptok - p->lex.pbeg))
427 #define CALL_Q_P(q) ((q) == TOKEN2VAL(tANDDOT))
428 #define NODE_CALL_Q(q) (CALL_Q_P(q) ? NODE_QCALL : NODE_CALL)
429 #define NEW_QCALL(q,r,m,a,loc) NEW_NODE(NODE_CALL_Q(q),r,m,a,loc)
431 #define lambda_beginning_p() (p->lex.lpar_beg == p->lex.paren_nest)
459 #define rb_node_newnode(type, a1, a2, a3, loc) node_newnode(p, (type), (a1), (a2), (a3), (loc))
473 set_line_body(
NODE *body,
int line)
483 #define yyparse ruby_yyparse
487 #define new_nil(loc) NEW_NIL(loc)
498 static NODE *remove_begin_all(
NODE*);
499 #define value_expr(node) value_expr_gen(p, (node) = remove_begin(node))
522 static bool args_info_empty_p(
struct rb_args_info *args);
567 #define make_list(list, loc) ((list) ? (nd_set_loc(list, loc), list) : NEW_ZLIST(loc))
587 #define get_id(id) (id)
588 #define get_value(val) (val)
589 #define get_num(num) (num)
591 #define NODE_RIPPER NODE_CDECL
593 static inline int ripper_is_node_yylval(
VALUE n);
598 if (ripper_is_node_yylval(c)) c =
RNODE(c)->nd_cval;
599 add_mark_object(p, b);
600 add_mark_object(p, c);
605 ripper_is_node_yylval(
VALUE n)
610 #define value_expr(node) ((void)(node))
611 #define remove_begin(node) (node)
612 #define void_stmts(p,x) (x)
613 #define rb_dvar_defined(id, base) 0
614 #define rb_local_defined(id, base) 0
615 static ID ripper_get_id(
VALUE);
616 #define get_id(id) ripper_get_id(id)
618 #define get_value(val) ripper_get_value(val)
619 #define get_num(num) (int)get_id(num)
623 #define method_cond(p,node,loc) (node)
624 #define call_bin_op(p, recv,id,arg1,op_loc,loc) dispatch3(binary, (recv), STATIC_ID2SYM(id), (arg1))
625 #define match_op(p,node1,node2,op_loc,loc) call_bin_op(0, (node1), idEqTilde, (node2), op_loc, loc)
626 #define call_uni_op(p, recv,id,op_loc,loc) dispatch2(unary, STATIC_ID2SYM(id), (recv))
627 #define logop(p,id,node1,node2,op_loc,loc) call_bin_op(0, (node1), (id), (node2), op_loc, loc)
629 #define new_nil(loc) Qnil
677 #define dyna_var(p, id) local_var(p, id)
688 # define METHOD_NOT idNOT
690 # define METHOD_NOT '!'
693 #define idFWD_REST '*'
694 #ifdef RUBY3_KEYWORDS
695 #define idFWD_KWREST idPow
697 #define idFWD_KWREST 0
699 #define idFWD_BLOCK '&'
701 #define RE_OPTION_ONCE (1<<16)
702 #define RE_OPTION_ENCODING_SHIFT 8
703 #define RE_OPTION_ENCODING(e) (((e)&0xff)<<RE_OPTION_ENCODING_SHIFT)
704 #define RE_OPTION_ENCODING_IDX(o) (((o)>>RE_OPTION_ENCODING_SHIFT)&0xff)
705 #define RE_OPTION_ENCODING_NONE(o) ((o)&RE_OPTION_ARG_ENCODING_NONE)
706 #define RE_OPTION_MASK 0xff
707 #define RE_OPTION_ARG_ENCODING_NONE 32
729 #define HERETERM_LENGTH_BITS ((SIZEOF_VALUE - 1) * CHAR_BIT - 1)
736 #if HERETERM_LENGTH_BITS < SIZEOF_INT * CHAR_BIT
738 # define HERETERM_LENGTH_MAX ((1U << HERETERM_LENGTH_BITS) - 1)
740 # define HERETERM_LENGTH_MAX UINT_MAX
743 #if HERETERM_LENGTH_BITS < SIZEOF_INT * CHAR_BIT
753 #define STRTERM_HEREDOC IMEMO_FL_USER0
775 #define yytnamerr(yyres, yystr) (YYSIZE_T)rb_yytnamerr(p, yyres, yystr)
778 #define TOKEN2ID(tok) ( \
779 tTOKEN_LOCAL_BEGIN<(tok)&&(tok)<tTOKEN_LOCAL_END ? TOKEN2LOCALID(tok) : \
780 tTOKEN_INSTANCE_BEGIN<(tok)&&(tok)<tTOKEN_INSTANCE_END ? TOKEN2INSTANCEID(tok) : \
781 tTOKEN_GLOBAL_BEGIN<(tok)&&(tok)<tTOKEN_GLOBAL_END ? TOKEN2GLOBALID(tok) : \
782 tTOKEN_CONST_BEGIN<(tok)&&(tok)<tTOKEN_CONST_END ? TOKEN2CONSTID(tok) : \
783 tTOKEN_CLASS_BEGIN<(tok)&&(tok)<tTOKEN_CLASS_END ? TOKEN2CLASSID(tok) : \
784 tTOKEN_ATTRSET_BEGIN<(tok)&&(tok)<tTOKEN_ATTRSET_END ? TOKEN2ATTRSETID(tok) : \
785 ((tok) / ((tok)<tPRESERVED_ID_END && ((tok)>=128 || rb_ispunct(tok)))))
790 #define RIPPER_VERSION "0.1.0"
792 static inline VALUE intern_sym(
const char *
name);
806 #define dispatch0(n) ripper_dispatch0(p, TOKEN_PASTE(ripper_id_, n))
807 #define dispatch1(n,a) ripper_dispatch1(p, TOKEN_PASTE(ripper_id_, n), (a))
808 #define dispatch2(n,a,b) ripper_dispatch2(p, TOKEN_PASTE(ripper_id_, n), (a), (b))
809 #define dispatch3(n,a,b,c) ripper_dispatch3(p, TOKEN_PASTE(ripper_id_, n), (a), (b), (c))
810 #define dispatch4(n,a,b,c,d) ripper_dispatch4(p, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d))
811 #define dispatch5(n,a,b,c,d,e) ripper_dispatch5(p, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e))
812 #define dispatch7(n,a,b,c,d,e,f,g) ripper_dispatch7(p, TOKEN_PASTE(ripper_id_, n), (a), (b), (c), (d), (e), (f), (g))
814 #define yyparse ripper_yyparse
816 #define ID2VAL(id) STATIC_ID2SYM(id)
817 #define TOKEN2VAL(t) ID2VAL(TOKEN2ID(t))
818 #define KWD2EID(t, v) ripper_new_yylval(p, keyword_##t, get_value(v), 0)
820 #define params_new(pars, opts, rest, pars2, kws, kwrest, blk) \
821 dispatch7(params, (pars), (opts), (rest), (pars2), (kws), (kwrest), (blk))
823 #define escape_Qundef(x) ((x)==Qundef ? Qnil : (x))
830 return params_new(pre_args, opt_args, rest_arg, post_args, kw_args, kw_rest_arg, escape_Qundef(block));
837 add_mark_object(p, kw_args);
838 add_mark_object(p, kw_rest_arg);
839 add_mark_object(p, block);
862 if (!
NIL_P(pre_arg)) {
888 rb_imemo_tmpbuf_set_ptr(tmpbuf, apinfo);
897 #define new_hash(p,h,l) rb_ary_new_from_args(0)
910 return dispatch3(hshptn, constant, kw_args, kw_rest_arg);
918 kw_rest_arg = dispatch1(var_field, kw_rest_arg);
925 add_mark_object(p, kw_args);
926 add_mark_object(p, kw_rest_arg);
930 #define new_defined(p,expr,loc) dispatch1(defined, (expr))
935 #define ID2VAL(id) (id)
936 #define TOKEN2VAL(t) ID2VAL(t)
937 #define KWD2EID(t, v) keyword_##t
943 # define ifndef_ripper(x) (x)
946 # define Qnull Qundef
947 # define ifndef_ripper(x)
950 # define rb_warn0(fmt) WARN_CALL(WARN_ARGS(fmt, 1))
951 # define rb_warn1(fmt,a) WARN_CALL(WARN_ARGS(fmt, 2), (a))
952 # define rb_warn2(fmt,a,b) WARN_CALL(WARN_ARGS(fmt, 3), (a), (b))
953 # define rb_warn3(fmt,a,b,c) WARN_CALL(WARN_ARGS(fmt, 4), (a), (b), (c))
954 # define rb_warn4(fmt,a,b,c,d) WARN_CALL(WARN_ARGS(fmt, 5), (a), (b), (c), (d))
955 # define rb_warning0(fmt) WARNING_CALL(WARNING_ARGS(fmt, 1))
956 # define rb_warning1(fmt,a) WARNING_CALL(WARNING_ARGS(fmt, 2), (a))
957 # define rb_warning2(fmt,a,b) WARNING_CALL(WARNING_ARGS(fmt, 3), (a), (b))
958 # define rb_warning3(fmt,a,b,c) WARNING_CALL(WARNING_ARGS(fmt, 4), (a), (b), (c))
959 # define rb_warning4(fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS(fmt, 5), (a), (b), (c), (d))
960 # define rb_warn0L(l,fmt) WARN_CALL(WARN_ARGS_L(l, fmt, 1))
961 # define rb_warn1L(l,fmt,a) WARN_CALL(WARN_ARGS_L(l, fmt, 2), (a))
962 # define rb_warn2L(l,fmt,a,b) WARN_CALL(WARN_ARGS_L(l, fmt, 3), (a), (b))
963 # define rb_warn3L(l,fmt,a,b,c) WARN_CALL(WARN_ARGS_L(l, fmt, 4), (a), (b), (c))
964 # define rb_warn4L(l,fmt,a,b,c,d) WARN_CALL(WARN_ARGS_L(l, fmt, 5), (a), (b), (c), (d))
965 # define rb_warning0L(l,fmt) WARNING_CALL(WARNING_ARGS_L(l, fmt, 1))
966 # define rb_warning1L(l,fmt,a) WARNING_CALL(WARNING_ARGS_L(l, fmt, 2), (a))
967 # define rb_warning2L(l,fmt,a,b) WARNING_CALL(WARNING_ARGS_L(l, fmt, 3), (a), (b))
968 # define rb_warning3L(l,fmt,a,b,c) WARNING_CALL(WARNING_ARGS_L(l, fmt, 4), (a), (b), (c))
969 # define rb_warning4L(l,fmt,a,b,c,d) WARNING_CALL(WARNING_ARGS_L(l, fmt, 5), (a), (b), (c), (d))
971 static ID id_warn, id_warning, id_gets, id_assoc;
972 # define WARN_S_L(s,l) STR_NEW(s,l)
973 # define WARN_S(s) STR_NEW2(s)
974 # define WARN_I(i) INT2NUM(i)
975 # define WARN_ID(i) rb_id2str(i)
976 # define WARN_IVAL(i) i
977 # define PRIsWARN "s"
978 # define WARN_ARGS(fmt,n) p->value, id_warn, n, rb_usascii_str_new_lit(fmt)
979 # define WARN_ARGS_L(l,fmt,n) WARN_ARGS(fmt,n)
980 # ifdef HAVE_VA_ARGS_MACRO
981 # define WARN_CALL(...) rb_funcall(__VA_ARGS__)
983 # define WARN_CALL rb_funcall
985 # define WARNING_ARGS(fmt,n) p->value, id_warning, n, rb_usascii_str_new_lit(fmt)
986 # define WARNING_ARGS_L(l, fmt,n) WARNING_ARGS(fmt,n)
987 # ifdef HAVE_VA_ARGS_MACRO
988 # define WARNING_CALL(...) rb_funcall(__VA_ARGS__)
990 # define WARNING_CALL rb_funcall
993 # define compile_error ripper_compile_error
995 # define WARN_S_L(s,l) s
998 # define WARN_ID(i) rb_id2name(i)
999 # define WARN_IVAL(i) NUM2INT(i)
1000 # define PRIsWARN PRIsVALUE
1001 # define WARN_ARGS(fmt,n) WARN_ARGS_L(p->ruby_sourceline,fmt,n)
1002 # define WARN_ARGS_L(l,fmt,n) p->ruby_sourcefile, (l), (fmt)
1003 # define WARN_CALL rb_compile_warn
1004 # define WARNING_ARGS(fmt,n) WARN_ARGS(fmt,n)
1005 # define WARNING_ARGS_L(l,fmt,n) WARN_ARGS_L(l,fmt,n)
1006 # define WARNING_CALL rb_compile_warning
1008 # define compile_error parser_compile_error
1016 #define WARN_EOL(tok) \
1017 (looking_at_eol_p(p) ? \
1018 (void)rb_warning0("`" tok "' at the end of line without an expression") : \
1022 #line 1023 "ripper.c"
1025 # if defined __cplusplus && 201103L <= __cplusplus
1026 # define YY_NULLPTR nullptr
1028 # define YY_NULLPTR 0
1033 #ifdef YYERROR_VERBOSE
1034 # undef YYERROR_VERBOSE
1035 # define YYERROR_VERBOSE 1
1037 # define YYERROR_VERBOSE 0
1053 # define YYTOKENTYPE
1180 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
1184 #line 978 "ripper.y"
1194 #line 1193 "ripper.c"
1198 # define YYSTYPE_IS_TRIVIAL 1
1199 # define YYSTYPE_IS_DECLARED 1
1203 #if ! defined YYLTYPE && ! defined YYLTYPE_IS_DECLARED
1212 # define YYLTYPE_IS_DECLARED 1
1213 # define YYLTYPE_IS_TRIVIAL 1
1224 #line 1223 "ripper.c"
1242 #ifdef YYTYPE_UINT16
1255 # ifdef __SIZE_TYPE__
1256 # define YYSIZE_T __SIZE_TYPE__
1257 # elif defined size_t
1258 # define YYSIZE_T size_t
1259 # elif ! defined YYSIZE_T
1260 # include <stddef.h>
1261 # define YYSIZE_T size_t
1263 # define YYSIZE_T unsigned int
1267 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
1270 # if defined YYENABLE_NLS && YYENABLE_NLS
1272 # include <libintl.h>
1273 # define YY_(Msgid) dgettext ("bison-runtime", Msgid)
1277 # define YY_(Msgid) Msgid
1281 #ifndef YY_ATTRIBUTE
1282 # if (defined __GNUC__ \
1283 && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \
1284 || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C
1285 # define YY_ATTRIBUTE(Spec) __attribute__(Spec)
1287 # define YY_ATTRIBUTE(Spec)
1291 #ifndef YY_ATTRIBUTE_PURE
1292 # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__))
1295 #ifndef YY_ATTRIBUTE_UNUSED
1296 # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__))
1299 #if !defined _Noreturn \
1300 && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112)
1301 # if defined _MSC_VER && 1200 <= _MSC_VER
1302 # define _Noreturn __declspec (noreturn)
1304 # define _Noreturn YY_ATTRIBUTE ((__noreturn__))
1309 #if ! defined lint || defined __GNUC__
1310 # define YYUSE(E) ((void) (E))
1315 #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__
1317 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \
1318 _Pragma ("GCC diagnostic push") \
1319 _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\
1320 _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"")
1321 # define YY_IGNORE_MAYBE_UNINITIALIZED_END \
1322 _Pragma ("GCC diagnostic pop")
1324 # define YY_INITIAL_VALUE(Value) Value
1326 #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1327 # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
1328 # define YY_IGNORE_MAYBE_UNINITIALIZED_END
1330 #ifndef YY_INITIAL_VALUE
1331 # define YY_INITIAL_VALUE(Value)
1335 #if ! defined yyoverflow || YYERROR_VERBOSE
1339 # ifdef YYSTACK_USE_ALLOCA
1340 # if YYSTACK_USE_ALLOCA
1342 # define YYSTACK_ALLOC __builtin_alloca
1343 # elif defined __BUILTIN_VA_ARG_INCR
1344 # include <alloca.h>
1346 # define YYSTACK_ALLOC __alloca
1347 # elif defined _MSC_VER
1348 # include <malloc.h>
1349 # define alloca _alloca
1351 # define YYSTACK_ALLOC alloca
1352 # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS
1353 # include <stdlib.h>
1355 # ifndef EXIT_SUCCESS
1356 # define EXIT_SUCCESS 0
1363 # ifdef YYSTACK_ALLOC
1365 # define YYSTACK_FREE(Ptr) do { ; } while (0)
1366 # ifndef YYSTACK_ALLOC_MAXIMUM
1371 # define YYSTACK_ALLOC_MAXIMUM 4032
1374 # define YYSTACK_ALLOC YYMALLOC
1375 # define YYSTACK_FREE YYFREE
1376 # ifndef YYSTACK_ALLOC_MAXIMUM
1377 # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
1379 # if (defined __cplusplus && ! defined EXIT_SUCCESS \
1380 && ! ((defined YYMALLOC || defined malloc) \
1381 && (defined YYFREE || defined free)))
1382 # include <stdlib.h>
1383 # ifndef EXIT_SUCCESS
1384 # define EXIT_SUCCESS 0
1388 # define YYMALLOC malloc
1389 # if ! defined malloc && ! defined EXIT_SUCCESS
1394 # define YYFREE free
1395 # if ! defined free && ! defined EXIT_SUCCESS
1403 #if (! defined yyoverflow \
1404 && (! defined __cplusplus \
1405 || (defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL \
1406 && defined YYSTYPE_IS_TRIVIAL && YYSTYPE_IS_TRIVIAL)))
1417 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
1421 # define YYSTACK_BYTES(N) \
1422 ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE) + sizeof (YYLTYPE)) \
1423 + 2 * YYSTACK_GAP_MAXIMUM)
1425 # define YYCOPY_NEEDED 1
1432 # define YYSTACK_RELOCATE(Stack_alloc, Stack) \
1435 YYSIZE_T yynewbytes; \
1436 YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \
1437 Stack = &yyptr->Stack_alloc; \
1438 yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
1439 yyptr += yynewbytes / sizeof (*yyptr); \
1445 #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
1449 # if defined __GNUC__ && 1 < __GNUC__
1450 # define YYCOPY(Dst, Src, Count) \
1451 __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
1453 # define YYCOPY(Dst, Src, Count) \
1457 for (yyi = 0; yyi < (Count); yyi++) \
1458 (Dst)[yyi] = (Src)[yyi]; \
1468 #define YYLAST 13766
1471 #define YYNTOKENS 154
1475 #define YYNRULES 759
1477 #define YYNSTATES 1243
1481 #define YYUNDEFTOK 2
1482 #define YYMAXUTOK 353
1484 #define YYTRANSLATE(YYX) \
1485 ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
1491 0, 2, 2, 2, 2, 2, 2, 2, 2, 71,
1492 153, 74, 72, 73, 2, 2, 2, 2, 2, 2,
1493 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1494 2, 2, 152, 140, 2, 2, 2, 138, 133, 2,
1495 148, 149, 136, 134, 146, 135, 68, 137, 2, 2,
1496 2, 2, 2, 2, 2, 2, 2, 2, 128, 151,
1497 130, 126, 129, 127, 2, 2, 2, 2, 2, 2,
1498 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1499 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1500 2, 145, 69, 150, 132, 2, 147, 2, 2, 2,
1501 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1502 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1503 2, 2, 2, 143, 131, 144, 141, 2, 88, 89,
1504 90, 91, 75, 76, 77, 78, 94, 95, 83, 82,
1505 79, 80, 81, 86, 87, 92, 93, 97, 84, 85,
1506 96, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1507 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1508 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1509 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1510 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1511 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1512 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1513 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1514 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1515 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
1516 2, 2, 2, 2, 2, 2, 1, 2, 3, 4,
1517 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
1518 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
1519 25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
1520 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
1521 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
1522 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
1523 65, 66, 67, 70, 98, 99, 100, 101, 102, 103,
1524 104, 105, 106, 107, 108, 109, 110, 111, 112, 113,
1525 114, 115, 116, 117, 118, 119, 120, 121, 122, 123,
1533 0, 1176, 1176, 1176, 1202, 1208, 1215, 1222, 1229, 1235,
1534 1236, 1242, 1255, 1253, 1264, 1275, 1281, 1288, 1295, 1302,
1535 1308, 1313, 1312, 1322, 1322, 1329, 1336, 1346, 1354, 1361,
1536 1369, 1377, 1389, 1401, 1411, 1425, 1426, 1434, 1442, 1451,
1537 1458, 1461, 1468, 1475, 1483, 1490, 1497, 1505, 1512, 1522,
1538 1527, 1536, 1539, 1540, 1544, 1548, 1552, 1557, 1564, 1566,
1539 1556, 1574, 1577, 1584, 1584, 1584, 1590, 1591, 1594, 1595,
1540 1604, 1614, 1624, 1633, 1644, 1651, 1658, 1665, 1672, 1680,
1541 1688, 1695, 1702, 1711, 1712, 1721, 1722, 1731, 1738, 1745,
1542 1752, 1759, 1766, 1773, 1780, 1787, 1794, 1803, 1804, 1813,
1543 1820, 1829, 1836, 1845, 1852, 1859, 1866, 1876, 1883, 1893,
1544 1900, 1907, 1917, 1924, 1931, 1938, 1945, 1952, 1959, 1966,
1545 1973, 1983, 1990, 1993, 2000, 2007, 2016, 2017, 2018, 2019,
1546 2024, 2031, 2038, 2041, 2048, 2048, 2058, 2059, 2060, 2061,
1547 2062, 2063, 2064, 2065, 2066, 2067, 2068, 2069, 2070, 2071,
1548 2072, 2073, 2074, 2075, 2076, 2077, 2078, 2079, 2080, 2081,
1549 2082, 2083, 2084, 2085, 2086, 2087, 2090, 2090, 2090, 2091,
1550 2091, 2092, 2092, 2092, 2093, 2093, 2093, 2093, 2094, 2094,
1551 2094, 2094, 2095, 2095, 2095, 2096, 2096, 2096, 2096, 2097,
1552 2097, 2097, 2097, 2098, 2098, 2098, 2098, 2099, 2099, 2099,
1553 2099, 2100, 2100, 2100, 2100, 2101, 2101, 2104, 2111, 2118,
1554 2126, 2134, 2142, 2150, 2158, 2165, 2173, 2182, 2191, 2203,
1555 2215, 2227, 2239, 2243, 2247, 2251, 2255, 2259, 2263, 2267,
1556 2271, 2275, 2279, 2283, 2287, 2291, 2292, 2296, 2300, 2304,
1557 2308, 2312, 2316, 2320, 2324, 2328, 2332, 2336, 2336, 2341,
1558 2350, 2356, 2357, 2358, 2359, 2362, 2366, 2373, 2380, 2381,
1559 2385, 2392, 2401, 2406, 2417, 2424, 2453, 2454, 2457, 2458,
1560 2459, 2463, 2470, 2479, 2487, 2494, 2502, 2510, 2514, 2514,
1561 2551, 2560, 2564, 2570, 2577, 2584, 2591, 2600, 2601, 2604,
1562 2611, 2618, 2627, 2628, 2629, 2630, 2631, 2632, 2633, 2634,
1563 2635, 2636, 2637, 2645, 2644, 2659, 2659, 2666, 2666, 2674,
1564 2682, 2689, 2696, 2703, 2711, 2718, 2725, 2732, 2739, 2739,
1565 2744, 2748, 2752, 2759, 2760, 2769, 2768, 2779, 2790, 2801,
1566 2811, 2822, 2821, 2838, 2837, 2852, 2861, 2909, 2908, 2932,
1567 2931, 2954, 2953, 2977, 2983, 2976, 3003, 3004, 3003, 3029,
1568 3036, 3043, 3050, 3059, 3066, 3072, 3089, 3095, 3101, 3107,
1569 3113, 3119, 3125, 3131, 3137, 3143, 3149, 3155, 3161, 3167,
1570 3182, 3189, 3195, 3202, 3203, 3204, 3207, 3208, 3211, 3212,
1571 3224, 3225, 3234, 3235, 3238, 3246, 3255, 3262, 3271, 3278,
1572 3285, 3292, 3299, 3308, 3316, 3325, 3329, 3333, 3337, 3341,
1573 3347, 3352, 3357, 3361, 3365, 3369, 3373, 3377, 3385, 3389,
1574 3393, 3397, 3401, 3405, 3409, 3413, 3417, 3423, 3424, 3430,
1575 3439, 3451, 3455, 3464, 3466, 3470, 3475, 3481, 3484, 3488,
1576 3492, 3496, 3481, 3520, 3528, 3538, 3543, 3549, 3559, 3573,
1577 3580, 3587, 3596, 3605, 3613, 3621, 3628, 3636, 3644, 3651,
1578 3658, 3671, 3679, 3689, 3690, 3694, 3689, 3711, 3712, 3716,
1579 3711, 3735, 3743, 3750, 3758, 3767, 3779, 3780, 3784, 3790,
1580 3791, 3793, 3794, 3795, 3783, 3808, 3809, 3812, 3813, 3821,
1581 3831, 3832, 3837, 3845, 3849, 3855, 3858, 3867, 3870, 3877,
1582 3880, 3881, 3883, 3884, 3893, 3902, 3907, 3916, 3925, 3930,
1583 3930, 3935, 3941, 3940, 3952, 3957, 3957, 3964, 3973, 3977,
1584 3986, 3990, 3994, 3998, 4002, 4005, 4009, 4018, 4022, 4026,
1585 4030, 4036, 4037, 4046, 4055, 4059, 4063, 4067, 4071, 4075,
1586 4081, 4083, 4092, 4100, 4114, 4115, 4138, 4142, 4148, 4154,
1587 4155, 4164, 4173, 4185, 4197, 4198, 4199, 4200, 4212, 4226,
1588 4227, 4228, 4229, 4230, 4231, 4232, 4233, 4234, 4242, 4241,
1589 4254, 4264, 4277, 4284, 4291, 4300, 4312, 4315, 4322, 4329,
1590 4332, 4336, 4339, 4346, 4349, 4350, 4353, 4370, 4371, 4372,
1591 4381, 4391, 4400, 4406, 4416, 4422, 4431, 4433, 4442, 4452,
1592 4458, 4467, 4476, 4486, 4492, 4502, 4508, 4518, 4528, 4547,
1593 4553, 4563, 4573, 4614, 4617, 4616, 4633, 4637, 4642, 4646,
1594 4650, 4632, 4671, 4678, 4685, 4692, 4695, 4696, 4699, 4709,
1595 4710, 4711, 4712, 4715, 4725, 4726, 4736, 4737, 4738, 4739,
1596 4742, 4743, 4744, 4745, 4746, 4749, 4750, 4751, 4752, 4753,
1597 4754, 4755, 4758, 4771, 4780, 4787, 4796, 4797, 4801, 4800,
1598 4810, 4818, 4827, 4842, 4842, 4856, 4860, 4864, 4868, 4872,
1599 4878, 4883, 4888, 4892, 4896, 4900, 4904, 4908, 4912, 4916,
1600 4920, 4924, 4928, 4932, 4936, 4940, 4945, 4951, 4960, 4968,
1601 4976, 4984, 4994, 4995, 5003, 5012, 5020, 5041, 5043, 5056,
1602 5066, 5074, 5084, 5091, 5100, 5107, 5117, 5124, 5133, 5134,
1603 5137, 5145, 5153, 5163, 5173, 5183, 5190, 5199, 5206, 5215,
1604 5216, 5219, 5227, 5237, 5238, 5241, 5251, 5255, 5261, 5266,
1605 5266, 5290, 5291, 5300, 5302, 5325, 5336, 5343, 5351, 5370,
1606 5371, 5372, 5375, 5376, 5377, 5378, 5381, 5382, 5383, 5386,
1607 5387, 5390, 5391, 5394, 5395, 5398, 5399, 5402, 5403, 5406,
1608 5409, 5412, 5415, 5416, 5417, 5420, 5421, 5424, 5425, 5429
1612 #if YYDEBUG || YYERROR_VERBOSE || 0
1615 static const char *
const yytname[] =
1617 "\"end-of-input\"",
"error",
"$undefined",
"\"`class'\"",
1618 "\"`module'\"",
"\"`def'\"",
"\"`undef'\"",
"\"`begin'\"",
1619 "\"`rescue'\"",
"\"`ensure'\"",
"\"`end'\"",
"\"`if'\"",
"\"`unless'\"",
1620 "\"`then'\"",
"\"`elsif'\"",
"\"`else'\"",
"\"`case'\"",
"\"`when'\"",
1621 "\"`while'\"",
"\"`until'\"",
"\"`for'\"",
"\"`break'\"",
"\"`next'\"",
1622 "\"`redo'\"",
"\"`retry'\"",
"\"`in'\"",
"\"`do'\"",
1623 "\"`do' for condition\"",
"\"`do' for block\"",
"\"`do' for lambda\"",
1624 "\"`return'\"",
"\"`yield'\"",
"\"`super'\"",
"\"`self'\"",
"\"`nil'\"",
1625 "\"`true'\"",
"\"`false'\"",
"\"`and'\"",
"\"`or'\"",
"\"`not'\"",
1626 "\"`if' modifier\"",
"\"`unless' modifier\"",
"\"`while' modifier\"",
1627 "\"`until' modifier\"",
"\"`rescue' modifier\"",
"\"`alias'\"",
1628 "\"`defined?'\"",
"\"`BEGIN'\"",
"\"`END'\"",
"\"`__LINE__'\"",
1629 "\"`__FILE__'\"",
"\"`__ENCODING__'\"",
"\"local variable or method\"",
1630 "\"method\"",
"\"global variable\"",
"\"instance variable\"",
1631 "\"constant\"",
"\"class variable\"",
"tLABEL",
"\"integer literal\"",
1632 "\"float literal\"",
"\"rational literal\"",
"\"imaginary literal\"",
1633 "\"char literal\"",
"\"numbered reference\"",
"\"back reference\"",
1634 "\"literal content\"",
"tREGEXP_END",
"'.'",
"\"backslash\"",
1635 "\"escaped space\"",
"\"escaped horizontal tab\"",
1636 "\"escaped form feed\"",
"\"escaped carriage return\"",
1637 "\"escaped vertical tab\"",
"\"unary+\"",
"\"unary-\"",
"\"**\"",
1638 "\"<=>\"",
"\"==\"",
"\"===\"",
"\"!=\"",
"\">=\"",
"\"<=\"",
"\"&&\"",
1639 "\"||\"",
"\"=~\"",
"\"!~\"",
"\"..\"",
"\"...\"",
"\"(..\"",
"\"(...\"",
1640 "\"[]\"",
"\"[]=\"",
"\"<<\"",
"\">>\"",
"\"&.\"",
"\"::\"",
1641 "\":: at EXPR_BEG\"",
"\"operator-assignment\"",
"\"=>\"",
"\"(\"",
1642 "\"( arg\"",
"\")\"",
"\"[\"",
"\"{\"",
"\"{ arg\"",
"\"*\"",
1643 "\"**arg\"",
"\"&\"",
"\"->\"",
"\"symbol literal\"",
1644 "\"string literal\"",
"\"backtick literal\"",
"\"regexp literal\"",
1645 "\"word list\"",
"\"verbatim word list\"",
"\"symbol list\"",
1646 "\"verbatim symbol list\"",
"\"terminator\"",
"\"'}'\"",
"tSTRING_DBEG",
1647 "tSTRING_DVAR",
"tLAMBEG",
"tLABEL_END",
"tLOWEST",
"'='",
"'?'",
"':'",
1648 "'>'",
"'<'",
"'|'",
"'^'",
"'&'",
"'+'",
"'-'",
"'*'",
"'/'",
"'%'",
1649 "tUMINUS_NUM",
"'!'",
"'~'",
"tLAST_TOKEN",
"'{'",
"'}'",
"'['",
"','",
1650 "'`'",
"'('",
"')'",
"']'",
"';'",
"' '",
"'\\n'",
"$accept",
"program",
1651 "$@1",
"top_compstmt",
"top_stmts",
"top_stmt",
"begin_block",
1652 "bodystmt",
"$@2",
"compstmt",
"stmts",
"stmt_or_begin",
"$@3",
"stmt",
1653 "$@4",
"command_asgn",
"command_rhs",
"expr",
"@5",
"@6",
"$@7",
1654 "expr_value",
"expr_value_do",
"$@8",
"$@9",
"command_call",
1655 "block_command",
"cmd_brace_block",
"fcall",
"command",
"mlhs",
1656 "mlhs_inner",
"mlhs_basic",
"mlhs_item",
"mlhs_head",
"mlhs_post",
1657 "mlhs_node",
"lhs",
"cname",
"cpath",
"fname",
"fitem",
"undef_list",
1658 "$@10",
"op",
"reswords",
"arg",
"$@11",
"relop",
"rel_expr",
1659 "arg_value",
"aref_args",
"arg_rhs",
"paren_args",
"opt_paren_args",
1660 "opt_call_args",
"call_args",
"command_args",
"$@12",
"block_arg",
1661 "opt_block_arg",
"args",
"mrhs_arg",
"mrhs",
"primary",
"$@13",
"$@14",
1662 "$@15",
"$@16",
"$@17",
"@18",
"@19",
"$@20",
"@21",
"$@22",
"@23",
1663 "@24",
"@25",
"@26",
"primary_value",
"k_begin",
"k_if",
"k_unless",
1664 "k_while",
"k_until",
"k_case",
"k_for",
"k_class",
"k_module",
"k_def",
1665 "k_do",
"k_do_block",
"k_rescue",
"k_ensure",
"k_when",
"k_else",
1666 "k_elsif",
"k_end",
"k_return",
"then",
"do",
"if_tail",
"opt_else",
1667 "for_var",
"f_marg",
"f_marg_list",
"f_margs",
"f_rest_marg",
1668 "block_args_tail",
"opt_block_args_tail",
"block_param",
1669 "opt_block_param",
"block_param_def",
"opt_bv_decl",
"bv_decls",
"bvar",
1670 "lambda",
"@27",
"@28",
"@29",
"@30",
"$@31",
"f_larglist",
1671 "lambda_body",
"do_block",
"block_call",
"method_call",
"brace_block",
1672 "brace_body",
"@32",
"@33",
"@34",
"do_body",
"@35",
"@36",
"@37",
1673 "case_args",
"case_body",
"cases",
"p_case_body",
"@38",
"@39",
"@40",
1674 "$@41",
"$@42",
"$@43",
"p_cases",
"p_top_expr",
"p_top_expr_body",
1675 "p_expr",
"p_as",
"p_alt",
"p_lparen",
"p_lbracket",
"p_expr_basic",
1676 "@44",
"@45",
"@46",
"p_args",
"p_args_head",
"p_args_tail",
1677 "p_args_post",
"p_arg",
"p_kwargs",
"p_kwarg",
"p_kw",
"p_kw_label",
1678 "p_kwrest",
"p_kwnorest",
"p_value",
"p_primitive",
"$@47",
"p_variable",
1679 "p_var_ref",
"p_const",
"opt_rescue",
"exc_list",
"exc_var",
1680 "opt_ensure",
"literal",
"strings",
"string",
"string1",
"xstring",
1681 "regexp",
"words",
"word_list",
"word",
"symbols",
"symbol_list",
1682 "qwords",
"qsymbols",
"qword_list",
"qsym_list",
"string_contents",
1683 "xstring_contents",
"regexp_contents",
"string_content",
"@48",
"$@49",
1684 "@50",
"@51",
"@52",
"@53",
"string_dvar",
"symbol",
"ssym",
"sym",
1685 "dsym",
"numeric",
"simple_numeric",
"user_variable",
"keyword_variable",
1686 "var_ref",
"var_lhs",
"backref",
"superclass",
"$@54",
"f_arglist",
1687 "@55",
"args_tail",
"opt_args_tail",
"f_args",
"args_forward",
1688 "f_bad_arg",
"f_norm_arg",
"f_arg_asgn",
"f_arg_item",
"f_arg",
1689 "f_label",
"f_kw",
"f_block_kw",
"f_block_kwarg",
"f_kwarg",
1690 "kwrest_mark",
"f_no_kwarg",
"f_kwrest",
"f_opt",
"f_block_opt",
1691 "f_block_optarg",
"f_optarg",
"restarg_mark",
"f_rest_arg",
1692 "blkarg_mark",
"f_block_arg",
"opt_f_block_arg",
"singleton",
"$@56",
1693 "assoc_list",
"assocs",
"assoc",
"operation",
"operation2",
"operation3",
1694 "dot_or_colon",
"call_op",
"call_op2",
"opt_terms",
"opt_nl",
"rparen",
1695 "rbracket",
"rbrace",
"trailer",
"term",
"terms",
"none",
YY_NULLPTR
1704 0, 256, 257, 258, 259, 260, 261, 262, 263, 264,
1705 265, 266, 267, 268, 269, 270, 271, 272, 273, 274,
1706 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
1707 285, 286, 287, 288, 289, 290, 291, 292, 293, 294,
1708 295, 296, 297, 298, 299, 300, 301, 302, 303, 304,
1709 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
1710 315, 316, 317, 318, 319, 320, 321, 322, 46, 92,
1711 323, 9, 12, 13, 11, 132, 133, 134, 135, 140,
1712 141, 142, 139, 138, 148, 149, 143, 144, 128, 129,
1713 130, 131, 145, 146, 136, 137, 150, 147, 324, 325,
1714 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
1715 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
1716 346, 347, 348, 349, 350, 351, 61, 63, 58, 62,
1717 60, 124, 94, 38, 43, 45, 42, 47, 37, 352,
1718 33, 126, 353, 123, 125, 91, 44, 96, 40, 41,
1723 #define YYPACT_NINF -1028
1725 #define yypact_value_is_default(Yystate) \
1726 (!!((Yystate) == (-1028)))
1728 #define YYTABLE_NINF -760
1730 #define yytable_value_is_error(Yytable_value) \
1731 (!!((Yytable_value) == (-760)))
1737 -1028, 133, 3772, -1028, 9176, -1028, -1028, -1028, 8634, -1028,
1738 -1028, -1028, -1028, -1028, -1028, -1028, 9302, 9302, -1028, -1028,
1739 -1028, 5241, 4800, -1028, -1028, -1028, -1028, 533, 8489, 1,
1740 100, 124, -1028, -1028, -1028, 4065, 4947, -1028, -1028, 4212,
1741 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 10940, 10940,
1742 10940, 10940, 200, 6689, 9428, 9806, 10184, 8918, -1028, 8344,
1743 -1028, -1028, -1028, 155, 181, 247, 265, 1275, 11066, 10940,
1744 -1028, 232, -1028, 1140, -1028, 319, -1028, -1028, 14, 411,
1745 330, -1028, 332, 11318, -1028, 380, 2654, 644, 46, 425,
1746 -1028, 11192, 11192, -1028, -1028, 7671, 11440, 11562, 11684, 8198,
1747 9302, 819, 108, -1028, -1028, 456, -1028, -1028, -1028, -1028,
1748 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 717, 729,
1749 -1028, 420, 783, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1750 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1751 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1752 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1753 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1754 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1755 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1756 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1757 -1028, -1028, 432, -1028, -1028, -1028, 479, 10940, 524, 6840,
1758 10940, 10940, 10940, -1028, 10940, -1028, 503, 4337, 542, -1028,
1759 -1028, 513, 515, 267, 365, 614, 366, 545, -1028, -1028,
1760 7545, -1028, 9302, 9554, -1028, -1028, 7797, -1028, 11192, 858,
1761 -1028, 574, 6991, -1028, 7142, -1028, -1028, 598, 605, 14,
1762 -1028, 522, -1028, 718, 3380, 3380, 791, 9428, -1028, 6689,
1763 657, 232, -1028, 1140, 1, 682, -1028, 1140, 1, 665,
1764 371, 519, -1028, 542, 673, 519, -1028, 1, 763, 1275,
1765 11806, 677, -1028, 690, 708, 716, 724, -1028, -1028, -1028,
1766 -1028, -1028, 481, -1028, 580, 678, 953, -1028, -1028, -1028,
1767 -1028, 748, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 7923,
1768 11192, 11192, 11192, 11192, 9428, 11192, 11192, -1028, -1028, -1028,
1769 721, -1028, -1028, -1028, -1028, -1028, 10310, -1028, 6689, 9047,
1770 684, 10310, -1028, 10940, 10940, 10940, 10940, 10940, -1028, -1028,
1771 10940, 10940, 10940, 10940, 10940, 10940, 10940, 10940, 10940, -1028,
1772 -1028, 10940, 10940, 10940, 10940, 10940, 10940, 10940, 10940, 10940,
1773 10940, -1028, -1028, 12269, 9302, 12359, 5833, 319, 86, 86,
1774 7293, 11192, 7293, 232, -1028, 691, 777, -1028, -1028, 741,
1775 822, 53, 68, 69, 681, 956, 11192, 733, -1028, 714,
1776 891, -1028, -1028, -1028, -1028, 130, 291, 527, 572, 582,
1777 586, 608, 653, 663, -1028, -1028, -1028, 666, -1028, -1028,
1778 -1028, 13619, -1028, -1028, 11066, 11066, -1028, -1028, 374, -1028,
1779 -1028, -1028, 618, 10940, 10940, 9680, -1028, -1028, 12449, 9302,
1780 12539, 10940, 10940, 9932, -1028, 1, 710, -1028, -1028, 10940,
1781 1, -1028, 711, 1, 722, -1028, 107, -1028, -1028, -1028,
1782 -1028, -1028, 8634, -1028, 10940, 726, 728, 12449, 12539, 10940,
1783 1140, 100, 1, -1028, -1028, 8049, 732, 1, -1028, -1028,
1784 10058, -1028, -1028, 10184, -1028, -1028, -1028, 574, 893, -1028,
1785 -1028, 734, 11806, 12629, 9302, 12719, -1028, -1028, -1028, -1028,
1786 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 786, 101,
1787 988, 102, 10940, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1788 -1028, -1028, 757, -1028, -1028, -1028, 882, -1028, 882, 10940,
1789 -1028, 760, 767, 874, -1028, 1, 11806, 774, -1028, -1028,
1790 -1028, 880, 806, 4043, -1028, -1028, -1028, 963, 400, -1028,
1791 718, 3896, 3896, 3896, 3896, 4484, 3134, 3896, 3896, 3380,
1792 3380, 759, 759, 3267, 1222, 1222, 1464, 406, 406, 718,
1793 718, 718, 1115, 1115, 3482, 4359, 5535, 4506, -1028, 605,
1794 -1028, 1, 850, -1028, 1016, -1028, -1028, 5094, 882, 925,
1795 -1028, 5984, 922, 6437, 882, 60, 882, 914, 927, 76,
1796 12809, 9302, 12899, -1028, 319, -1028, 893, -1028, -1028, -1028,
1797 12989, 9302, 13079, 5833, 11192, -1028, -1028, -1028, -1028, -1028,
1798 -1028, 2683, -1028, 4190, -1028, -1028, -1028, 8634, 10940, -1028,
1799 10940, 542, -1028, 545, 3918, 4653, 1, 453, 458, -1028,
1800 -1028, -1028, -1028, 9680, -1028, 9932, -1028, -1028, 11192, 4337,
1801 -1028, -1028, 605, 605, -1028, -1028, -9, -1028, -1028, 519,
1802 11806, 734, 381, 686, 1, 362, 407, -1028, -1028, 1249,
1803 -1028, 566, -1028, 794, -1028, -1028, 568, 795, -1028, 718,
1804 -1028, -1028, 804, -1028, -1028, -1028, -1028, 812, 10436, 9428,
1805 -1028, 734, 11806, 9428, 11066, 10940, 13169, 9302, 13259, 12202,
1806 832, 11066, 11066, -1028, 721, 816, 1020, 11066, 11066, -1028,
1807 -1028, 721, -1028, -1028, -1028, 10562, 755, -1028, 825, -1028,
1808 950, -1028, -1028, -1028, -1028, -1028, -1028, 927, 882, -1028,
1809 10688, 882, 33, 278, 1, 77, 83, 7293, 232, 11192,
1810 5833, 995, 686, -1028, 1, 882, 107, 820, 8779, 108,
1811 411, -1028, -1028, -1028, -1028, 10940, 10940, 462, 10940, 10940,
1812 824, 107, -1028, -1028, 626, -1028, -1028, -1028, -1028, -1028,
1813 -1028, -1028, -1028, -1028, -1028, -1028, -1028, 843, -1028, 843,
1814 10940, 833, -1028, 734, -1028, 4337, 5388, 5682, 1, 466,
1815 470, -1028, -1028, 3091, 3091, 751, -1028, 616, 345, -1028,
1816 940, 899, -1028, 871, -1028, -1028, 815, -1028, -1028, 336,
1817 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 10940,
1818 -1028, -1028, -1028, -1028, -1028, -1028, 11066, -1028, -1028, -1028,
1819 -1028, -1028, 760, -1028, 904, -1028, -1028, -1028, 7293, -1028,
1820 -1028, -1028, -1028, 7293, 11192, 882, -1028, -1028, 882, -1028,
1821 -1028, 882, -1028, 10940, -1028, 54, -1028, 113, 882, 5833,
1822 232, 882, -1028, -1028, -1028, 1877, 5833, 1686, -1028, -1028,
1823 -1028, 10940, 9932, -1028, 1519, -1028, 1385, 7142, -1028, -1028,
1824 5833, 862, 538, -1028, -1028, -1028, -1028, 12202, 12083, -1028,
1825 257, 866, -1028, -1028, -1028, 964, -1028, 12202, 3091, 3091,
1826 751, 616, 547, 3621, 3621, 4337, -1028, -1028, 11928, 86,
1827 -1028, -1028, 6563, -1028, 86, -1028, -1028, -1028, -1028, -1028,
1828 10814, 6135, -1028, 882, -1028, -1028, -1028, -1028, -1028, -1028,
1829 -1028, -1028, -1028, -1028, 1537, -1028, -1028, -1028, -1028, -1028,
1830 -1028, 1, 1, -1028, -1028, 896, -1028, 877, 10940, -1028,
1831 883, 106, 887, 887, -1028, 894, 980, 895, 987, -1028,
1832 882, 232, 820, 1686, -1028, -1028, -1028, -1028, 1, 912,
1833 920, 901, 12050, -1028, 911, 887, 887, -1028, 916, 918,
1834 -1028, 929, -1028, -1028, 276, 27, 3, 1, 12169, -1028,
1835 919, -1028, -1028, 1, 932, -1028, 12202, -1028, -1028, 348,
1836 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
1837 1, 1, 1, 1, 994, -1028, 1025, 118, 135, 179,
1838 5833, 1078, 5984, 3621, 10940, -1028, 92, -1028, 1537, 1208,
1839 -1028, 949, 1, 954, -1028, -1028, -1028, 10940, 1686, -1028,
1840 -1028, 1060, -1028, -1028, -1028, -1028, 216, -1028, -1028, 1686,
1841 -1028, -1028, 1096, -1028, -1028, -1028, -1028, 5833, 1, 63,
1842 7419, 972, -1028, 12050, 1686, -1028, 1049, 1030, 1060, -1028,
1843 -1028, -1028, 1686, -1028, 1096, -1028, 1424, -1028, 978, 12202,
1844 -1028, 43, 899, 982, -1028, 288, -1028, 257, 899, -1028,
1845 -1028, 1079, -1028, -1028, -1028, -1028, 222, 13349, 9302, 13439,
1846 925, -1028, 825, 86, 886, 255, -1028, -1028, -1028, -1028,
1847 -1028, -1028, 1, -1028, 1537, -1028, 1560, -1028, -1028, -1028,
1848 983, 986, -1028, 1082, 887, -1028, 989, -1028, 990, -1028,
1849 989, 882, 992, 5833, 7142, -1028, 1019, -1028, 1030, -1028,
1850 998, 1001, -1028, 13529, -1028, 887, 1003, -1028, 1011, 1003,
1851 -1028, 592, -1028, -1028, 12202, 1012, -1028, 1015, 12202, -1028,
1852 -1028, -1028, -1028, -1028, 134, 158, 1, 315, 318, -1028,
1853 -1028, -1028, 11192, 11192, 12083, -1028, -1028, 1017, 1021, 1686,
1854 -1028, 1096, -1028, -1028, 1096, -1028, 1096, -1028, -1028, -1028,
1855 -1028, 882, 1027, -1028, 1686, -1028, 1096, -1028, 1024, 1029,
1856 -1028, 1096, -1028, 1096, -1028, -1028, 1424, -1028, 1012, 12202,
1857 12202, 1012, 457, -1028, -1028, -1028, -1028, 1560, 1560, 989,
1858 1041, 989, 989, -1028, -1028, 1003, 1043, 1003, 1003, -1028,
1859 -1028, 1012, -1028, 1021, -1028, 1096, -1028, -1028, -1028, -1028,
1860 1096, -1028, -1028, -1028, 6286, 989, 1003, 150, -1028, -1028,
1869 2, 0, 0, 1, 0, 361, 362, 363, 0, 354,
1870 355, 356, 359, 357, 358, 360, 349, 350, 351, 352,
1871 372, 278, 278, 636, 635, 637, 638, 747, 0, 747,
1872 0, 0, 640, 639, 641, 729, 731, 632, 631, 730,
1873 634, 626, 627, 628, 629, 577, 646, 647, 0, 0,
1874 0, 0, 0, 0, 305, 759, 759, 95, 325, 597,
1875 597, 599, 601, 0, 0, 0, 0, 0, 0, 0,
1876 3, 745, 6, 9, 35, 40, 52, 67, 278, 66,
1877 0, 83, 0, 87, 97, 0, 61, 235, 250, 0,
1878 303, 0, 0, 63, 63, 745, 0, 0, 0, 0,
1879 314, 68, 323, 292, 293, 576, 578, 294, 295, 296,
1880 298, 297, 299, 575, 616, 617, 574, 624, 642, 643,
1881 300, 0, 301, 71, 5, 8, 176, 187, 177, 200,
1882 173, 193, 183, 182, 203, 204, 198, 181, 180, 175,
1883 201, 205, 206, 185, 174, 188, 192, 194, 186, 179,
1884 195, 202, 197, 196, 189, 199, 184, 172, 191, 190,
1885 171, 178, 169, 170, 166, 167, 168, 126, 128, 127,
1886 161, 162, 157, 139, 140, 141, 148, 145, 147, 142,
1887 143, 163, 164, 149, 150, 154, 158, 144, 146, 136,
1888 137, 138, 151, 152, 153, 155, 156, 159, 160, 165,
1889 131, 133, 28, 129, 130, 132, 0, 0, 0, 0,
1890 0, 0, 0, 597, 0, 273, 0, 257, 283, 81,
1891 277, 759, 0, 642, 643, 0, 301, 759, 723, 82,
1892 747, 79, 0, 759, 448, 78, 747, 748, 0, 0,
1893 23, 247, 0, 10, 0, 349, 350, 317, 449, 0,
1894 229, 0, 314, 230, 220, 221, 311, 0, 21, 0,
1895 0, 745, 17, 20, 747, 85, 16, 307, 747, 0,
1896 752, 752, 258, 0, 0, 752, 721, 747, 0, 0,
1897 0, 93, 353, 0, 103, 104, 111, 427, 621, 620,
1898 622, 619, 0, 618, 0, 0, 0, 584, 593, 589,
1899 595, 625, 56, 241, 242, 755, 756, 4, 757, 746,
1900 0, 0, 0, 0, 0, 0, 0, 364, 453, 442,
1901 72, 457, 322, 365, 457, 438, 0, 99, 0, 91,
1902 88, 0, 57, 0, 0, 0, 0, 0, 253, 254,
1903 0, 0, 0, 0, 218, 219, 0, 0, 0, 251,
1904 252, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 741, 742, 0, 759, 0, 0, 62, 0, 0,
1906 0, 0, 0, 745, 333, 746, 0, 383, 382, 0,
1907 0, 642, 643, 301, 121, 122, 0, 0, 124, 650,
1908 0, 642, 643, 301, 341, 196, 189, 199, 184, 166,
1909 167, 168, 126, 127, 719, 343, 718, 0, 80, 744,
1910 743, 0, 324, 579, 0, 0, 134, 726, 311, 284,
1911 728, 280, 0, 0, 0, 0, 274, 282, 0, 759,
1912 0, 0, 0, 0, 275, 747, 0, 316, 279, 677,
1913 747, 269, 759, 747, 759, 268, 747, 321, 55, 25,
1914 27, 26, 0, 318, 0, 0, 0, 0, 0, 0,
1915 19, 0, 747, 309, 15, 746, 84, 747, 306, 312,
1916 754, 753, 259, 754, 261, 313, 722, 0, 110, 625,
1917 101, 96, 0, 0, 759, 0, 326, 428, 603, 623,
1918 606, 604, 598, 580, 581, 600, 582, 602, 0, 0,
1919 0, 0, 0, 758, 7, 29, 30, 31, 32, 33,
1920 53, 54, 0, 454, 453, 73, 0, 458, 0, 0,
1921 36, 288, 0, 39, 287, 747, 0, 89, 100, 51,
1922 41, 49, 0, 262, 283, 207, 37, 0, 301, 58,
1923 227, 234, 236, 237, 238, 245, 246, 239, 240, 216,
1924 217, 243, 244, 747, 231, 232, 233, 222, 223, 224,
1925 225, 226, 255, 256, 732, 734, 733, 735, 447, 278,
1926 445, 747, 732, 734, 733, 735, 446, 278, 0, 759,
1927 374, 0, 373, 0, 0, 0, 0, 331, 0, 311,
1928 0, 759, 0, 63, 339, 121, 122, 123, 648, 337,
1929 0, 759, 0, 0, 0, 344, 739, 740, 346, 732,
1930 733, 278, 42, 262, 208, 48, 215, 0, 0, 725,
1931 0, 285, 281, 759, 732, 733, 747, 732, 733, 724,
1932 315, 749, 264, 270, 265, 272, 320, 24, 0, 248,
1933 11, 34, 0, 759, 214, 22, 86, 18, 308, 752,
1934 0, 94, 736, 109, 747, 732, 733, 429, 607, 0,
1935 583, 0, 586, 0, 591, 588, 0, 0, 592, 228,
1936 451, 455, 0, 371, 452, 459, 437, 291, 0, 0,
1937 98, 92, 0, 0, 0, 0, 0, 759, 0, 0,
1938 0, 0, 0, 444, 76, 0, 450, 0, 0, 267,
1939 443, 74, 266, 304, 366, 759, 759, 566, 759, 375,
1940 759, 329, 377, 64, 376, 330, 468, 0, 0, 368,
1941 0, 0, 736, 310, 747, 732, 733, 0, 0, 0,
1942 0, 121, 122, 125, 747, 0, 747, 653, 0, 439,
1943 69, 135, 727, 286, 276, 0, 0, 450, 0, 0,
1944 759, 747, 260, 102, 450, 430, 608, 612, 613, 614,
1945 605, 615, 585, 587, 594, 590, 596, 759, 70, 759,
1946 0, 289, 38, 90, 50, 263, 732, 733, 747, 732,
1947 733, 560, 564, 0, 0, 0, 505, 499, 502, 558,
1948 0, 59, 485, 487, 489, 492, 539, 544, 545, 546,
1949 549, 550, 551, 552, 553, 555, 554, 556, 557, 0,
1950 47, 212, 46, 213, 77, 750, 0, 44, 210, 45,
1951 211, 75, 567, 568, 759, 569, 367, 369, 0, 12,
1952 14, 573, 370, 0, 0, 0, 378, 380, 0, 65,
1953 469, 0, 335, 0, 461, 0, 334, 450, 0, 0,
1954 0, 0, 450, 342, 720, 676, 0, 676, 347, 440,
1955 441, 0, 271, 319, 676, 609, 747, 0, 418, 417,
1956 0, 290, 450, 547, 548, 122, 562, 0, 0, 501,
1957 0, 0, 504, 427, 561, 0, 60, 0, 542, 543,
1958 0, 491, 490, 0, 0, 249, 43, 209, 0, 0,
1959 571, 572, 0, 381, 0, 327, 328, 470, 332, 462,
1960 0, 0, 336, 0, 649, 338, 683, 680, 679, 678,
1961 681, 689, 698, 677, 0, 710, 699, 714, 713, 709,
1962 675, 747, 747, 682, 684, 685, 687, 661, 691, 696,
1963 759, 702, 759, 759, 707, 661, 712, 661, 0, 659,
1964 0, 0, 653, 676, 431, 434, 610, 416, 747, 0,
1965 685, 401, 693, 694, 759, 759, 759, 705, 401, 401,
1966 399, 421, 456, 460, 747, 519, 507, 747, 508, 514,
1967 0, 534, 597, 747, 525, 530, 533, 527, 529, 537,
1968 751, 559, 486, 488, 540, 541, 563, 498, 495, 597,
1969 747, 747, 747, 747, 0, 570, 0, 642, 643, 301,
1970 0, 759, 0, 0, 0, 463, 759, 340, 0, 394,
1971 386, 388, 747, 391, 384, 651, 652, 0, 0, 668,
1972 690, 0, 656, 717, 700, 701, 0, 658, 657, 0,
1973 671, 711, 0, 673, 715, 345, 654, 0, 747, 0,
1974 0, 0, 419, 0, 407, 409, 0, 692, 0, 396,
1975 398, 397, 0, 412, 0, 414, 0, 506, 517, 0,
1976 500, 512, 523, 509, 515, 0, 503, 526, 532, 538,
1977 536, 0, 493, 494, 496, 497, 311, 0, 759, 0,
1978 759, 13, 759, 0, 477, 480, 483, 484, 464, 466,
1979 467, 465, 747, 393, 0, 686, 0, 703, 660, 688,
1980 661, 661, 697, 702, 759, 716, 661, 708, 661, 685,
1981 661, 0, 0, 0, 0, 432, 0, 420, 704, 400,
1982 401, 401, 311, 0, 695, 759, 401, 706, 401, 401,
1983 425, 747, 423, 426, 0, 520, 521, 510, 0, 516,
1984 535, 531, 524, 528, 736, 310, 747, 732, 733, 565,
1985 379, 471, 0, 0, 481, 385, 387, 389, 392, 0,
1986 664, 0, 666, 655, 0, 672, 0, 669, 674, 348,
1987 433, 0, 0, 611, 0, 404, 0, 406, 736, 310,
1988 395, 0, 413, 0, 410, 415, 0, 422, 518, 0,
1989 0, 513, 450, 472, 478, 479, 482, 0, 0, 661,
1990 661, 661, 661, 436, 435, 401, 401, 401, 401, 424,
1991 522, 511, 473, 390, 665, 0, 662, 667, 670, 405,
1992 0, 402, 408, 411, 0, 661, 401, 759, 663, 403,
1999 -1028, -1028, -1028, 923, -1028, 62, 730, -552, -1028, -35,
2000 -1028, 731, -1028, 72, -1028, -212, -254, -66, -1028, -1028,
2001 -1028, -32, -88, -1028, -1028, -36, -1028, -260, 641, 25,
2002 1106, -141, -6, -68, -1028, -410, -19, 2212, -370, 1108,
2003 -40, -24, -1028, -1028, 5, -1028, 2954, -1028, 1121, -1028,
2004 1541, -1028, 652, 426, 601, -307, 94, -10, -1028, -360,
2005 -218, 66, -1028, -310, -52, -1028, -1028, -1028, -1028, -1028,
2006 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, 32,
2007 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028,
2008 -1028, -1028, -1028, -1028, -1028, 509, -1028, 210, 981, -368,
2009 -1028, 126, -700, -1028, -1024, -1001, 198, 116, 355, 317,
2010 -1028, 461, -1028, -860, -1028, 30, 350, -1028, -1028, -1028,
2011 -1028, -1028, -1028, -1028, 494, -1028, -1028, -95, 723, -1028,
2012 -1028, -1028, 915, -1028, -1028, -1028, -1028, -680, -1028, -1,
2013 -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -1028, -526,
2014 -1028, -1028, -1028, -1028, 354, -1028, -1028, -1028, -824, -1028,
2015 230, -609, -594, -781, -1028, 177, -1028, 178, 190, -1028,
2016 -376, -1028, 373, -1028, -1028, 166, -1028, -1028, 263, 485,
2017 499, -1028, 1171, 747, 1110, 1394, -1028, 780, 1448, -1028,
2018 1612, 1744, -1028, -1028, -57, -1028, -1028, -199, -1028, -1028,
2019 -1028, -1028, -1028, -1028, -1028, 0, -1028, -1028, -1028, -1028,
2020 -37, 2020, 1174, 1178, 2236, 1512, -1028, -1028, 329, -1028,
2021 -705, 314, -773, 429, -1027, -785, -603, -908, 236, -200,
2022 258, 243, -1028, -1028, -503, -690, -213, -984, -987, 234,
2023 274, -1028, -846, -1028, -513, -379, -1028, -1028, -1028, 6,
2024 -417, -1028, -275, -1028, -1028, -87, -1028, -71, 23, 185,
2025 -583, 322, -194, -60, -44, -2
2031 -1, 1, 2, 70, 71, 72, 243, 578, 902, 579,
2032 261, 262, 461, 263, 452, 74, 530, 75, 539, 689,
2033 886, 368, 370, 371, 839, 76, 77, 515, 249, 79,
2034 80, 264, 81, 82, 83, 481, 84, 216, 388, 389,
2035 200, 201, 202, 617, 567, 204, 86, 454, 359, 87,
2036 218, 269, 535, 568, 700, 440, 441, 231, 232, 220,
2037 426, 442, 523, 524, 88, 366, 268, 467, 638, 287,
2038 717, 588, 730, 728, 603, 605, 737, 738, 952, 251,
2039 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,
2040 321, 324, 705, 828, 720, 833, 834, 674, 252, 581,
2041 713, 835, 836, 380, 1020, 1021, 1022, 1023, 1129, 1055,
2042 958, 867, 868, 959, 1141, 1142, 486, 487, 657, 755,
2043 864, 1049, 954, 1125, 325, 101, 102, 322, 512, 513,
2044 671, 767, 516, 517, 675, 769, 845, 721, 1101, 718,
2045 840, 907, 1013, 1203, 1222, 1234, 1242, 1093, 1094, 1072,
2046 792, 793, 893, 894, 794, 878, 880, 877, 977, 978,
2047 979, 1145, 980, 983, 984, 985, 986, 987, 988, 795,
2048 796, 883, 797, 798, 799, 706, 824, 899, 830, 103,
2049 104, 105, 106, 107, 108, 109, 498, 661, 110, 500,
2050 111, 112, 499, 501, 292, 295, 296, 492, 659, 658,
2051 756, 865, 956, 1050, 760, 113, 114, 293, 115, 116,
2052 117, 223, 224, 120, 225, 226, 599, 729, 856, 857,
2053 1108, 1029, 931, 443, 933, 934, 1119, 936, 937, 938,
2054 939, 963, 964, 940, 941, 942, 943, 944, 967, 968,
2055 945, 946, 947, 948, 949, 1032, 407, 604, 274, 444,
2056 228, 123, 642, 570, 608, 602, 411, 307, 436, 437,
2057 696, 882, 472, 582, 375, 266
2065 124, 583, 365, 294, 240, 282, 372, 412, 205, 434,
2066 838, 308, 235, 203, 410, 330, 629, 597, 260, 291,
2067 969, 536, 227, 227, 374, 367, 367, 309, 205, 367,
2068 301, 282, 302, 203, 89, 308, 89, 841, 281, 1143,
2069 317, 215, 215, 747, 282, 282, 282, 265, 222, 222,
2070 238, 735, 241, 272, 276, 1117, 629, 571, -116, 405,
2071 369, 271, 275, 373, 203, 622, 125, 580, 320, 1000,
2072 1002, 754, 651, 622, 73, 1137, 73, 474, -112, 1068,
2073 1166, 476, 221, 221, 951, 89, 89, 712, 569, 283,
2074 577, 955, 1123, -113, -120, 1147, 495, 497, 1051, 580,
2075 222, -119, -115, 885, 203, 1168, 227, 827, -117, 719,
2076 219, 229, 1001, 1003, -353, 283, 681, -84, 462, 529,
2077 1109, 270, 626, 222, 222, 215, 267, 222, 379, 390,
2078 390, -112, 222, 3, 317, 430, 611, -98, -114, 1024,
2079 1034, 847, -353, -353, 315, 316, 1109, -116, -113, -523,
2080 930, 852, 930, 569, 237, 577, 422, 318, 1035, 930,
2081 612, 615, 233, 791, 458, 827, 221, 663, 667, 1143,
2082 446, -118, 448, 1069, 260, 716, 965, 654, 851, -107,
2083 1048, -732, 1111, 643, 1166, 1117, 1124, 525, 1122, 1148,
2084 464, -353, -120, 1118, 408, 872, 485, 1137, -636, -103,
2085 910, 308, 529, 529, 879, 305, 1223, 306, 1131, 456,
2086 643, 305, 480, 306, -104, -111, 1138, 465, 629, 427,
2087 664, 668, -110, -106, 260, 427, 434, -636, 282, -108,
2088 733, 445, 1097, 1024, 1103, -119, 227, 305, 227, 306,
2089 124, 89, 479, 242, 367, 367, 367, 367, 930, 510,
2090 511, 318, 935, 265, 935, 215, 256, 215, 215, -105,
2091 237, 935, 222, 960, 222, 222, 1109, 244, 222, -112,
2092 222, -112, 773, 622, 89, 622, 89, 282, 505, 506,
2093 507, 508, -732, 1109, 724, -116, -113, -116, -113, 89,
2094 520, 89, 592, 260, 734, 531, 221, 913, 221, 662,
2095 477, 662, 587, -118, 950, 367, -733, 297, 997, -118,
2096 527, -118, 283, 308, 73, 981, 1099, 643, 973, 1024,
2097 594, 1024, 265, 1210, 435, 927, 438, 643, -115, 460,
2098 -120, -117, -120, 298, 922, 584, 1100, 586, 1216, 585,
2099 1206, 89, 222, 222, 222, 222, 89, 222, 222, 928,
2100 935, 974, 976, 970, 488, 885, 315, 316, 222, -635,
2101 89, 283, 445, 537, 965, 926, -644, 976, 976, 982,
2102 575, 504, 965, -119, 965, -119, 885, 989, 531, 531,
2103 778, 73, 1079, 305, 1073, 306, 509, -106, -635, 215,
2104 989, 989, 522, -112, 1070, 823, 222, 522, 89, 299,
2105 1080, 1164, 89, 222, 89, 744, -107, 873, 874, 490,
2106 491, 569, 1150, 577, 480, 876, 575, 300, 222, 1084,
2107 1085, 447, 1024, 1024, -109, 935, -733, 445, 637, 237,
2108 282, 623, -108, 890, 814, 575, 935, 810, 812, 323,
2109 427, 821, 427, 817, 819, 629, 537, 537, 234, 466,
2110 688, 960, 205, 468, 215, 752, 326, 203, 480, 960,
2111 1078, 222, 763, 575, -645, 432, -115, 763, -115, -117,
2112 -114, -117, 529, 459, 282, 1146, 649, 911, 327, 529,
2113 529, 891, 445, 333, 892, 529, 529, 1095, -106, -747,
2114 575, -113, -120, 361, 965, 1121, 965, 89, 237, 415,
2115 -119, 965, 622, 965, 319, 727, 331, -107, -106, 215,
2116 989, -106, 994, 995, 283, -106, 222, 470, 1115, 414,
2117 996, 362, 363, 1115, 471, 714, -120, -107, 1113, -732,
2118 -107, 1010, 744, -108, -107, 1198, 1012, 1240, 736, 1201,
2119 965, 970, 356, 357, 358, 1115, 708, 488, 710, 970,
2120 1146, 970, 748, -108, 1146, 1113, -108, 749, 283, 694,
2121 -108, 861, 896, 1037, 1038, 697, 935, 701, 60, 698,
2122 364, 1181, 751, 1202, 989, 702, 690, 707, 416, -115,
2123 418, 960, 753, 361, -117, 1059, 1060, 1061, -114, 445,
2124 361, 1221, -115, 741, 695, -637, -117, 575, 282, 445,
2125 489, 740, 490, 491, 529, 1220, 1146, 575, -114, 702,
2126 -114, 362, 428, 89, 480, 89, 215, 205, 362, 457,
2127 630, 427, 203, 222, -637, 632, 215, 236, 634, 423,
2128 282, 636, 488, 222, 488, 89, 222, 816, 976, 750,
2129 -638, 702, 424, 78, 859, 78, 488, 646, 531, 695,
2130 -640, -105, 648, 966, -639, 531, 531, 78, 78, 425,
2131 429, 531, 531, 367, -114, 473, 962, 429, 849, -638,
2132 222, 970, 471, 970, 234, 319, -641, 695, 970, -640,
2133 970, 236, 283, -639, 488, 445, 237, 490, 491, 490,
2134 491, 433, 848, 575, 78, 78, -747, 850, 858, 493,
2135 237, 490, 491, 825, 831, -641, 837, -729, 837, 78,
2136 680, 89, 215, 431, 283, 89, 537, 970, 762, 222,
2137 765, -630, 453, 537, 537, 1161, 338, 339, 676, 537,
2138 537, -633, 78, 78, 606, 1173, 78, 493, 1196, 490,
2139 491, 78, 618, 203, 488, 237, 230, 695, 427, -630,
2140 -630, 772, -105, 233, -310, 774, 1190, 695, 361, 89,
2141 -633, 222, 89, 607, 826, 869, -747, 869, 367, 237,
2142 827, 522, -105, 349, 350, -105, -642, -630, -630, -105,
2143 531, 1156, -310, -310, -643, 595, 362, 483, 703, 596,
2144 914, 576, -301, 901, 711, 333, 715, 494, 903, 490,
2145 491, 695, 904, 595, -642, -642, 463, 875, -83, 361,
2146 695, 881, -643, -643, 643, 469, -644, 475, 1114, 478,
2147 -301, -301, 900, 482, -729, 502, -630, 514, -645, -729,
2148 528, -310, 972, 589, -733, 484, 333, 362, 590, 832,
2149 827, 966, 503, -112, 598, 1135, 282, 593, 537, 966,
2150 78, 966, 488, -642, 962, -113, 576, 633, 962, 631,
2151 89, -643, 962, -103, 962, 89, 222, 1011, 635, -301,
2152 640, 78, 641, 78, 78, -104, 1016, 78, -98, 78,
2153 650, 89, 415, 78, 576, 78, 591, 361, 89, 971,
2154 459, 1046, 673, 354, 355, 356, 357, 358, 78, 89,
2155 78, 670, 89, 888, 889, 660, -283, 490, 491, -120,
2156 282, 576, 449, 678, 695, 362, 409, -119, 679, 1089,
2157 682, 854, 450, 451, 683, 1075, 1162, 1163, 842, -111,
2158 1006, 846, 684, 704, 89, 709, 863, -110, 1033, 716,
2159 1033, 1033, 1081, 89, 719, 853, 764, 766, 768, 697,
2160 78, 78, 78, 78, 78, 78, 78, 78, -284, 361,
2161 809, -311, 1033, 1033, 1033, 827, 815, 78, 855, 78,
2162 862, 966, 78, 966, 866, 1090, -115, 1092, 966, -285,
2163 966, 971, -730, 100, 962, 100, 962, 362, 600, -311,
2164 -311, 962, 884, 962, 1057, 693, -106, 100, 100, 885,
2165 695, 282, 887, 699, 898, 78, 881, 78, -286, 831,
2166 990, 78, 78, 78, 837, 1126, 781, 966, 576, 488,
2167 496, -736, 1027, 1028, -633, 695, 695, 78, 576, 1031,
2168 962, 361, 1041, 1036, 100, 100, 601, 699, -311, 1044,
2169 1039, 1042, 89, 1052, 89, 905, 1053, 1054, 906, 100,
2170 1086, 908, -633, -633, 488, 78, 78, 1058, 912, 362,
2171 686, 915, 1062, -736, 1064, 1074, 614, 616, 693, 699,
2172 78, 971, 100, 100, 490, 491, 100, 998, 1077, 89,
2173 1066, 100, 89, 614, 616, 1128, 445, 826, 707, 1182,
2174 837, -736, -736, 361, 575, 1104, 367, 367, 361, -730,
2175 1106, -633, 961, 1127, -730, 1132, 78, 665, 687, 490,
2176 491, 644, 1033, 215, 576, 698, 1025, 1026, 921, 816,
2177 222, 362, 1087, 1017, 1144, 78, 362, 1133, 1149, 1169,
2178 1204, 1205, 1171, 1033, 1035, 1174, 1176, 922, -736, 1183,
2179 -736, 1180, -117, -732, 1184, 488, -114, 1186, 916, 1191,
2180 917, 918, 919, 920, 921, 89, 89, 1193, 1199, 1067,
2181 1045, 1200, -108, 1207, 1197, 455, -105, 1208, 926, 927,
2182 1088, 1214, -732, 922, 800, 601, 119, -733, 119, 695,
2183 310, 311, 312, 313, 314, 1082, 1083, 1225, 801, 1230,
2184 100, 645, 333, 928, 222, 222, 647, 924, 493, 1237,
2185 490, 491, 377, 1150, 926, 927, 394, 1105, 360, 346,
2186 347, 100, 739, 100, 100, 829, 1102, 100, 1160, 100,
2187 1167, 957, 78, 100, 78, 100, 1219, 119, 119, 928,
2188 870, 285, 78, 991, 860, 837, 1241, 672, 100, 518,
2189 100, 993, 78, 1096, 78, 78, 351, 352, 353, 354,
2190 355, 356, 357, 358, 1151, 1152, 1159, 285, 992, 1040,
2191 916, 1043, 917, 918, 919, 920, 89, 1153, 800, 800,
2192 382, 392, 392, 392, 1091, 1116, 413, 406, 1120, 78,
2193 666, 1047, 801, 801, 932, 1063, 1065, 1165, 1130, 1112,
2194 100, 100, 100, 100, 100, 100, 100, 100, 1136, 333,
2195 1139, 1134, 1110, 757, 758, 1076, 759, 100, 0, 100,
2196 0, 0, 100, 46, 47, 0, 346, 347, 0, 0,
2197 78, 0, 0, 0, 78, 78, 0, 0, 78, 0,
2198 0, 1179, 78, 78, 41, 42, 43, 44, 78, 78,
2199 0, 0, 0, 811, 813, 100, 0, 100, 0, 818,
2200 820, 100, 100, 100, 0, 353, 354, 355, 356, 357,
2201 358, 0, 800, 800, 0, 0, 0, 100, 78, 0,
2202 78, 78, 800, 800, 800, 0, 801, 801, 800, 800,
2203 0, 0, 0, 119, 0, 0, 801, 801, 801, 0,
2204 0, 1213, 801, 801, 0, 100, 100, 811, 813, 0,
2205 818, 820, 0, 0, 0, 1209, 0, 1211, 0, 0,
2206 100, 0, 1212, 0, 0, 0, 119, 0, 119, 0,
2207 1215, 0, 1217, 0, 1170, 1172, 0, 0, 0, 1218,
2208 1175, 119, 1177, 119, 1178, 0, 802, 916, 0, 917,
2209 918, 919, 920, 921, 0, 0, 100, 1185, 1187, 0,
2210 0, 0, 0, 1192, 285, 1194, 1195, 78, 0, 0,
2211 0, 1235, 922, 800, 0, 100, 1236, 0, 897, 78,
2212 0, 800, 0, 0, 78, 78, 1140, 801, 917, 918,
2213 919, 920, 0, 119, 0, 801, 924, 0, 119, 0,
2214 78, 0, 925, 926, 927, 0, 0, 78, 800, 0,
2215 0, 0, 119, 285, 0, 0, 0, 0, 78, 0,
2216 0, 78, 801, 897, 122, 576, 122, 0, 928, 0,
2217 0, 929, 0, 1224, 1226, 1227, 1228, 0, 0, 0,
2218 802, 802, 1229, 1231, 1232, 1233, 0, 0, 237, 0,
2219 119, 333, 0, 78, 119, 0, 119, 0, 0, 1238,
2220 0, 0, 78, 1239, 800, 0, 0, 0, 346, 347,
2221 0, 0, 100, 0, 100, 122, 122, 0, 801, 286,
2222 0, 916, 100, 917, 918, 919, 920, 921, 0, 0,
2223 0, 0, 100, 0, 100, 100, 0, 0, 0, 916,
2224 0, 917, 918, 919, 920, 286, 922, 273, 354, 355,
2225 356, 357, 358, 0, 0, 0, 0, 0, 383, 393,
2226 393, 0, 916, 0, 917, 918, 919, 920, 0, 100,
2227 924, 0, 0, 0, 802, 802, 925, 926, 927, 800,
2228 0, 0, 0, 800, 802, 802, 802, 0, 1018, 119,
2229 802, 802, 0, 801, 1019, 0, 0, 801, 0, 800,
2230 0, 78, 928, 78, 0, 929, 285, 0, 0, 0,
2231 100, 1018, 0, 801, 100, 100, 0, 953, 100, 0,
2232 0, 0, 100, 100, 0, 0, 0, 0, 100, 100,
2233 0, 0, 0, 0, 800, 800, 0, 0, 78, 0,
2234 0, 78, 0, 0, 0, 0, 0, 0, 801, 801,
2235 285, 0, 0, 0, 0, 0, 0, 0, 100, 0,
2236 100, 100, 0, 0, 0, 0, 0, 0, 0, 0,
2237 0, 122, 0, 0, 0, 802, 0, 0, 0, 78,
2238 0, 0, 0, 802, 0, 0, 0, 0, 916, 0,
2239 917, 918, 919, 920, 921, 0, 0, 0, 417, 0,
2240 0, 419, 420, 421, 122, 119, 122, 119, 0, 0,
2241 802, 0, 0, 922, 78, 78, 0, 0, 0, 122,
2242 0, 122, 0, 0, 0, 0, 0, 119, 0, 0,
2243 0, 0, 0, 0, 0, 0, 0, 924, 0, 0,
2244 0, 0, 286, 925, 926, 927, 0, 100, 0, 803,
2245 0, 0, 0, 78, 78, 0, 0, 0, 0, 100,
2246 0, 0, 0, 0, 100, 100, 802, 0, 0, 928,
2247 0, 122, 929, 0, 285, 0, 122, 0, 0, 0,
2248 100, 0, 0, 0, 0, 0, 0, 100, 0, 0,
2249 122, 286, 0, 538, 0, 0, 0, 0, 100, 0,
2250 0, 100, 0, 119, 0, 0, 285, 119, 0, 0,
2251 0, 0, 0, 808, 0, 0, 0, 521, 0, 0,
2252 0, 0, 534, 0, 0, 78, 0, 0, 122, 0,
2253 0, 0, 122, 100, 122, 0, 0, 0, 0, 0,
2254 0, 802, 100, 803, 803, 802, 0, 0, 0, 0,
2255 0, 119, 0, 0, 119, 0, 0, 0, 0, 0,
2256 0, 802, 0, 0, 0, 0, 0, 0, 0, 0,
2257 0, 0, 0, 0, 0, 0, 538, 538, 0, 916,
2258 0, 917, 918, 919, 920, 921, 0, 0, 0, 0,
2259 0, 0, 0, 0, 0, 0, 802, 802, 0, 0,
2260 0, 0, 0, 0, 922, 0, 0, 808, 808, 0,
2261 0, 0, 0, 0, 0, 619, 621, 0, 923, 0,
2262 0, 0, 0, 0, 273, 0, 0, 122, 924, 0,
2263 0, 0, 0, 0, 925, 926, 927, 803, 803, 0,
2264 0, 100, 0, 100, 286, 0, 0, 803, 803, 803,
2265 0, 0, 119, 803, 803, 0, 0, 119, 0, 0,
2266 928, 621, 0, 929, 273, 0, 0, 0, 0, 0,
2267 0, 0, 118, 119, 118, 0, 0, 0, 100, 0,
2268 119, 100, 0, 0, 0, 0, 0, 0, 286, 0,
2269 0, 119, 0, 0, 119, 0, 0, 0, 0, 0,
2270 0, 808, 808, 0, 0, 0, 0, 0, 0, 0,
2271 677, 808, 808, 808, 0, 0, 0, 808, 808, 100,
2272 0, 0, 1008, 118, 118, 0, 119, 284, 0, 0,
2273 0, 0, 0, 804, 0, 119, 0, 0, 803, 0,
2274 0, 0, 0, 122, 0, 122, 803, 0, 0, 0,
2275 0, 0, 0, 284, 100, 100, 0, 0, 0, 0,
2276 0, 0, 0, 0, 0, 122, 381, 391, 391, 391,
2277 0, 0, 0, 803, 0, 0, 0, 0, 0, 0,
2278 0, 0, 0, 0, 0, 0, 392, 805, 0, 0,
2279 0, 0, 0, 100, 100, 0, 0, 0, 0, 0,
2280 0, 0, 808, 0, 0, 0, 0, 0, 0, 742,
2281 808, 743, 286, 0, 0, 0, 0, 0, 0, 0,
2282 0, 761, 0, 0, 621, 0, 273, 804, 804, 803,
2283 0, 0, 0, 0, 119, 0, 119, 808, 0, 0,
2284 0, 122, 0, 0, 286, 122, 538, 0, 0, 0,
2285 0, 0, 0, 538, 538, 0, 0, 0, 0, 538,
2286 538, 0, 0, 0, 85, 100, 85, 0, 0, 771,
2287 0, 119, 0, 0, 119, 0, 0, 392, 0, 118,
2288 0, 805, 805, 0, 0, 0, 0, 0, 121, 122,
2289 121, 0, 122, 808, 0, 0, 822, 0, 0, 0,
2290 0, 0, 0, 0, 803, 0, 0, 0, 803, 0,
2291 0, 844, 118, 0, 118, 85, 85, 0, 0, 0,
2292 0, 804, 804, 0, 803, 0, 0, 118, 0, 118,
2293 0, 804, 804, 804, 0, 0, 0, 804, 804, 121,
2294 121, 0, 0, 0, 0, 0, 0, 119, 119, 0,
2295 284, 806, 0, 0, 0, 0, 0, 0, 378, 803,
2296 803, 871, 0, 0, 0, 0, 0, 0, 808, 0,
2297 0, 0, 808, 0, 0, 805, 805, 0, 538, 118,
2298 0, 0, 0, 0, 118, 805, 805, 805, 808, 0,
2299 122, 805, 805, 0, 0, 122, 0, 0, 118, 284,
2300 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2301 0, 122, 0, 0, 0, 0, 0, 0, 122, 0,
2302 0, 0, 804, 808, 808, 0, 0, 0, 0, 122,
2303 804, 0, 122, 0, 909, 0, 118, 0, 0, 0,
2304 118, 0, 118, 0, 0, 806, 806, 0, 0, 0,
2305 0, 0, 0, 273, 0, 0, 0, 804, 119, 0,
2306 1009, 0, 0, 0, 122, 0, 0, 0, 0, 0,
2307 0, 85, 0, 122, 0, 0, 805, 0, 0, 0,
2308 0, 0, 0, 807, 805, 0, 0, 0, 0, 0,
2309 0, 0, 0, 0, 0, 121, 0, 0, 0, 0,
2310 0, 1015, 0, 0, 85, 0, 85, 0, 0, 0,
2311 0, 805, 0, 804, 0, 0, 0, 0, 0, 85,
2312 0, 85, 0, 0, 393, 0, 0, 0, 121, 1030,
2313 121, 0, 0, 0, 0, 118, 0, 0, 0, 806,
2314 806, 0, 0, 121, 0, 121, 0, 0, 0, 806,
2315 806, 806, 284, 0, 0, 806, 806, 0, 0, 0,
2316 0, 0, 0, 0, 0, 0, 0, 805, 0, 0,
2317 0, 85, 122, 0, 122, 0, 85, 807, 807, 0,
2318 0, 0, 0, 0, 0, 0, 0, 0, 804, 0,
2319 85, 0, 804, 532, 0, 121, 284, 0, 0, 0,
2320 121, 0, 0, 0, 0, 1098, 0, 0, 804, 122,
2321 0, 0, 122, 0, 121, 393, 0, 121, 1107, 0,
2322 0, 0, 0, 0, 0, 0, 0, 0, 85, 0,
2323 0, 0, 85, 0, 85, 0, 0, 0, 0, 0,
2324 806, 0, 805, 804, 804, 0, 805, 0, 806, 0,
2325 0, 118, 121, 118, 0, 0, 121, 0, 121, 0,
2326 0, 0, 805, 0, 0, 0, 0, 0, 0, 0,
2327 0, 807, 807, 118, 0, 806, 532, 532, 0, 0,
2328 0, 807, 807, 807, 0, 122, 122, 807, 807, 0,
2329 0, 0, 0, 0, 0, 0, 0, 805, 805, 0,
2330 121, 121, 0, 0, 0, 0, 0, 0, 0, 0,
2331 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2332 284, 0, 0, 0, 0, 0, 0, 85, 0, 332,
2333 0, 806, 0, -759, 0, 0, 0, 0, 0, 0,
2334 0, -759, -759, -759, 0, 0, -759, -759, -759, 118,
2335 -759, 121, 284, 118, 0, 0, 0, 0, -759, -759,
2336 -759, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2337 -759, -759, 807, -759, -759, -759, -759, -759, 0, 0,
2338 807, 333, 334, 335, 336, 337, 338, 339, 340, 341,
2339 342, 343, 344, 345, 0, 0, 122, 118, 346, 347,
2340 118, -759, 0, 0, 0, 0, 806, 807, 0, 0,
2341 806, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2342 0, 0, 0, 0, 0, 0, 806, 0, 0, -759,
2343 -759, 348, 0, 349, 350, 351, 352, 353, 354, 355,
2344 356, 357, 358, 85, 0, 85, 0, 0, 0, 0,
2345 0, 0, 0, -759, 0, 0, 0, 0, 0, 0,
2346 0, 806, 806, 807, 0, 85, 0, 121, 0, 121,
2347 0, 0, 0, 0, 0, 0, -759, -759, 0, 0,
2348 0, 233, -759, 0, -759, 0, -759, 0, 0, 121,
2349 0, 0, 0, 0, 0, 0, 0, 0, 118, 0,
2350 0, 0, 0, 118, 0, 0, 0, 0, 0, 0,
2351 0, 0, 0, 0, 0, 0, 0, 0, 0, 118,
2352 0, 0, 0, 0, 0, 0, 118, 0, 0, 0,
2353 0, 0, 0, 0, 0, 0, 0, 118, 807, 0,
2354 118, 85, 807, 0, 0, 85, 532, 0, 0, 0,
2355 0, 0, 0, 532, 532, 0, 0, 0, 807, 532,
2356 532, 0, 0, 0, 0, 121, 0, 0, 1007, 121,
2357 121, 0, 118, 0, 0, 0, 0, 121, 121, 0,
2358 0, 118, 0, 121, 121, 0, 0, 0, 0, 85,
2359 0, 0, 85, 807, 807, 0, 0, 0, 0, 0,
2360 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2361 0, 0, 0, 121, 0, 0, 121, 0, 0, 0,
2362 217, 217, 0, 0, 0, 0, 0, 0, 0, 0,
2363 0, 0, 391, 0, 0, 0, 0, 0, 0, 0,
2364 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2365 0, 0, 250, 253, 254, 255, 0, 0, 0, 217,
2366 217, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2367 0, 0, 303, 304, 0, 0, 0, 0, 532, 0,
2368 118, 0, 118, 0, 0, 0, 0, 0, 0, 0,
2369 85, 0, 0, 0, 0, 85, 0, 0, 0, 0,
2370 0, 0, 121, 0, 217, 0, 0, 0, 0, 0,
2371 0, 85, 0, 0, 121, 0, 0, 118, 85, 121,
2372 118, 0, 0, 391, 0, 0, 0, 0, 0, 85,
2373 0, 0, 85, 0, 0, 121, 0, 0, 0, 0,
2374 0, 0, 121, 0, 0, 0, 0, 0, 0, 0,
2375 0, 0, 0, 121, 0, 0, 121, 0, 0, 0,
2376 1005, 0, 0, 0, 85, 0, 0, 0, 0, 0,
2377 0, 0, 0, 85, 23, 24, 25, 26, 0, 0,
2378 0, 0, 0, 0, 0, 0, 0, 0, 121, 0,
2379 32, 33, 34, 118, 118, 0, 0, 121, 0, 0,
2380 41, 42, 43, 44, 45, 0, 0, 0, 0, 0,
2381 0, 217, 0, 0, 217, 217, 217, 0, 303, 0,
2382 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2383 0, 0, 0, 0, 217, 0, 217, 217, 0, 0,
2384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2385 0, 789, 59, 60, 61, 62, 63, 64, 65, 66,
2386 0, 333, 334, 335, 336, 337, 338, 339, 340, 0,
2387 342, 343, 85, 0, 85, 0, 0, 0, 346, 347,
2388 279, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2389 0, 0, 0, 0, 0, 0, 121, 0, 121, 0,
2390 0, 0, 0, 0, 118, 0, 0, 0, 0, 85,
2391 0, 0, 85, 349, 350, 351, 352, 353, 354, 355,
2392 356, 357, 358, 0, 0, 0, 0, 0, 0, 0,
2393 217, 0, 0, 121, 0, 533, 121, 540, 541, 542,
2394 543, 544, 0, 0, 545, 546, 547, 548, 549, 550,
2395 551, 552, 553, 0, 0, 554, 555, 556, 557, 558,
2396 559, 560, 561, 562, 563, 0, 0, 0, 217, 0,
2397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2398 0, 0, 0, 0, 0, 85, 85, 0, 0, 0,
2399 0, 0, 0, 0, 333, 334, 335, 336, 337, 338,
2400 339, 340, 341, 342, 343, 344, 345, 0, 0, 121,
2401 121, 346, 347, 0, 0, 0, 0, 0, 613, 613,
2402 0, 0, 0, 0, 0, 0, 0, 613, 217, 217,
2403 0, 0, 0, 217, 0, 613, 613, 217, 0, 0,
2404 0, 0, 0, 255, 348, 0, 349, 350, 351, 352,
2405 353, 354, 355, 356, 357, 358, 0, 0, 639, 0,
2406 0, 0, 0, 613, 0, 0, 0, 0, 0, 0,
2407 237, 0, 0, 0, 217, 0, 0, 217, 0, 0,
2408 0, 0, 0, 0, 0, 0, 0, 0, 217, 0,
2409 0, 0, 0, 0, 0, 0, 85, 0, 0, 0,
2410 0, 0, 0, 0, 0, 0, 669, 333, 334, 335,
2411 336, 337, 338, 339, 340, 341, 342, 343, -760, -760,
2412 121, 0, 0, 217, 346, 347, 0, 0, 0, 0,
2413 0, 0, -736, 0, 0, 0, 0, 0, 0, 0,
2414 -736, -736, -736, 0, 0, 0, -736, -736, 0, -736,
2415 0, 0, 0, 0, 0, 0, 0, -736, -736, 349,
2416 350, 351, 352, 353, 354, 355, 356, 357, 358, -736,
2417 -736, 0, -736, -736, -736, -736, -736, 0, 0, 0,
2418 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2419 0, 0, 0, 0, 0, 217, 0, 0, 0, 0,
2420 -736, 0, 0, 0, 0, 217, 0, 0, 0, -736,
2421 -736, -736, -736, -736, -736, -736, -736, -736, -736, -736,
2422 -736, -736, 217, 0, 217, 0, -736, -736, -736, -736,
2423 0, 691, 0, 0, 0, 0, 0, 217, 0, 217,
2424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2425 0, 0, -736, 0, 0, 0, 0, 0, -116, -736,
2426 0, -736, -736, -736, -736, -736, -736, -736, -736, -736,
2427 -736, 0, 0, 0, 0, -736, -736, -736, -107, 0,
2428 0, -736, 217, -736, 0, -736, 0, 0, 613, 775,
2429 0, 217, 0, 0, 0, 613, 613, 0, 0, 0,
2430 0, 613, 613, 0, 23, 24, 25, 26, 0, 217,
2431 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2432 32, 33, 34, 781, 217, 0, 0, 782, 0, 981,
2433 41, 42, 43, 44, 45, 0, 0, 0, 0, 0,
2434 0, 0, 0, 0, 0, 0, 0, 0, 922, 613,
2435 613, 0, 613, 613, 0, 0, 0, 0, 0, 0,
2436 0, 783, 784, 0, 0, 0, 0, 0, 0, 785,
2437 0, 0, 786, 0, 217, 787, 788, 0, 975, 926,
2438 0, 789, 59, 999, 61, 62, 63, 64, 65, 66,
2439 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2440 0, 0, 0, 790, 0, 0, 0, 0, 0, 0,
2441 279, 0, 0, 895, 0, 0, 0, 0, 0, 0,
2442 613, 0, -759, 4, 0, 5, 6, 7, 8, 9,
2443 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2444 13, 14, 15, 16, 17, 18, 19, 217, 0, 0,
2445 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2446 0, 27, 0, 0, 0, 613, 217, 28, 29, 30,
2447 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2448 0, 41, 42, 43, 44, 45, 46, 47, 0, 0,
2449 0, 0, 0, 0, 0, 0, 0, 48, 49, 0,
2450 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2451 0, 0, 50, 51, 217, 0, 0, 0, 0, 0,
2452 52, 0, 0, 53, 54, 0, 55, 56, 0, 57,
2453 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
2454 66, 0, 217, 0, 0, 0, 0, 0, 0, 0,
2455 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2456 0, 67, 68, 69, 0, 0, 0, 0, -736, 0,
2457 0, 0, 0, -759, 0, -759, -736, -736, -736, 0,
2458 0, -736, -736, -736, 0, -736, 0, 0, 0, 0,
2459 0, 0, 0, -736, -736, -736, -736, -736, 0, 0,
2460 0, 0, 0, 0, 0, -736, -736, 0, -736, -736,
2461 -736, -736, -736, 0, 0, 0, 0, 0, 217, 0,
2462 0, 0, 0, 333, -760, -760, -760, -760, 338, 339,
2463 0, 217, -760, -760, 0, 0, -736, 0, 0, 0,
2464 346, 347, 0, 0, 0, -736, -736, -736, -736, -736,
2465 -736, -736, -736, -736, -736, -736, -736, -736, 0, 0,
2466 0, 0, -736, -736, -736, -736, 0, 745, -736, 0,
2467 0, 0, 0, 0, -736, 349, 350, 351, 352, 353,
2468 354, 355, 356, 357, 358, 0, 0, 0, -736, 0,
2469 0, -736, 217, 0, -116, -736, -736, -736, -736, -736,
2470 -736, -736, -736, -736, -736, -736, -736, 0, 0, 0,
2471 0, -736, -736, -736, -736, -630, 0, -736, -736, -736,
2472 0, -736, 0, -630, -630, -630, 0, 0, -630, -630,
2473 -630, 0, -630, 0, 0, 0, 0, 685, 0, 0,
2474 -630, 0, -630, -630, -630, 0, 0, 0, 0, 0,
2475 0, 0, -630, -630, 0, -630, -630, -630, -630, -630,
2476 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2477 333, 334, 335, 336, 337, 338, 339, 340, 341, 342,
2478 343, 344, 345, -630, 0, 0, 0, 346, 347, 0,
2479 0, 0, -630, -630, -630, -630, -630, -630, -630, -630,
2480 -630, -630, -630, -630, -630, 0, 0, 0, 0, -630,
2481 -630, -630, -630, 0, -630, -630, 0, 0, 0, 0,
2482 348, -630, 349, 350, 351, 352, 353, 354, 355, 356,
2483 357, 358, 0, 0, 0, -630, 0, 0, -630, -257,
2484 0, -630, -630, -630, -630, -630, -630, -630, -630, -630,
2485 -630, -630, -630, -630, 0, 0, 0, 0, 0, -630,
2486 -630, -630, -633, 0, -630, -630, -630, 0, -630, 0,
2487 -633, -633, -633, 0, 0, -633, -633, -633, 0, -633,
2488 0, 0, 0, 0, 685, 0, 0, -633, 0, -633,
2489 -633, -633, 0, 0, 0, 0, 0, 0, 0, -633,
2490 -633, 0, -633, -633, -633, -633, -633, 0, 0, 0,
2491 0, 0, 0, 0, 0, 0, 0, 333, 334, 335,
2492 336, 337, 338, 339, 340, 341, 342, 343, 344, 345,
2493 -633, 0, 0, 0, 346, 347, 0, 0, 0, -633,
2494 -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
2495 -633, -633, 0, 0, 0, 0, -633, -633, -633, -633,
2496 0, -633, -633, 0, 0, 0, 0, 348, -633, 349,
2497 350, 351, 352, 353, 354, 355, 356, 357, 358, 0,
2498 0, 0, -633, 0, 0, -633, 0, 0, -633, -633,
2499 -633, -633, -633, -633, -633, -633, -633, -633, -633, -633,
2500 -633, 0, 0, 0, 0, 0, -633, -633, -633, -737,
2501 0, -633, -633, -633, 0, -633, 0, -737, -737, -737,
2502 0, 0, -737, -737, -737, 0, -737, 0, 0, 0,
2503 0, 0, 0, 0, -737, -737, -737, -737, -737, 0,
2504 0, 0, 0, 0, 0, 0, -737, -737, 0, -737,
2505 -737, -737, -737, -737, 0, 0, 0, 0, 0, 0,
2506 0, 0, 0, 0, 333, 334, 335, 336, 337, 338,
2507 339, 340, 341, 342, 343, 344, 345, -737, 0, 0,
2508 0, 346, 347, 0, 0, 0, -737, -737, -737, -737,
2509 -737, -737, -737, -737, -737, -737, -737, -737, -737, 0,
2510 0, 0, 0, -737, -737, -737, -737, 0, 0, -737,
2511 0, 0, 0, 0, 348, -737, 349, 350, 351, 352,
2512 353, 354, 355, 356, 357, 358, 0, 0, 0, -737,
2513 0, 0, -737, 0, 0, 0, -737, -737, -737, -737,
2514 -737, -737, -737, -737, -737, -737, -737, -737, 0, 0,
2515 0, 0, -737, -737, -737, -737, -738, 0, -737, -737,
2516 -737, 0, -737, 0, -738, -738, -738, 0, 0, -738,
2517 -738, -738, 0, -738, 0, 0, 0, 0, 0, 0,
2518 0, -738, -738, -738, -738, -738, 0, 0, 0, 0,
2519 0, 0, 0, -738, -738, 0, -738, -738, -738, -738,
2520 -738, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2521 0, 333, 334, 335, 336, 337, 338, 339, 0, 0,
2522 342, 343, 0, 0, -738, 0, 0, 0, 346, 347,
2523 0, 0, 0, -738, -738, -738, -738, -738, -738, -738,
2524 -738, -738, -738, -738, -738, -738, 0, 0, 0, 0,
2525 -738, -738, -738, -738, 0, 0, -738, 0, 0, 0,
2526 0, 0, -738, 349, 350, 351, 352, 353, 354, 355,
2527 356, 357, 358, 0, 0, 0, -738, 0, 0, -738,
2528 0, 0, 0, -738, -738, -738, -738, -738, -738, -738,
2529 -738, -738, -738, -738, -738, 0, 0, 0, 0, -738,
2530 -738, -738, -738, -310, 0, -738, -738, -738, 0, -738,
2531 0, -310, -310, -310, 0, 0, -310, -310, -310, 0,
2532 -310, 0, 0, 0, 0, 0, 0, 0, -310, 0,
2533 -310, -310, -310, 0, 0, 0, 0, 0, 0, 0,
2534 -310, -310, 0, -310, -310, -310, -310, -310, 0, 0,
2535 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2536 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2537 0, -310, 0, 0, 0, 0, 0, 0, 0, 0,
2538 -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
2539 -310, -310, -310, 0, 0, 0, 0, -310, -310, -310,
2540 -310, 0, 746, -310, 0, 0, 0, 0, 0, -310,
2541 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2542 0, 0, 0, -310, 0, 0, -310, 0, 0, -118,
2543 -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
2544 -310, -310, 0, 0, 0, 0, 0, -310, -310, -310,
2545 -449, 0, -310, -310, -310, 0, -310, 0, -449, -449,
2546 -449, 0, 0, -449, -449, -449, 0, -449, 0, 0,
2547 0, 0, 0, 0, 0, -449, -449, -449, -449, 0,
2548 0, 0, 0, 0, 0, 0, 0, -449, -449, 0,
2549 -449, -449, -449, -449, -449, 0, 0, 0, 0, 0,
2550 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2551 0, 0, 0, 0, 0, 0, 0, 0, -449, 0,
2552 0, 0, 0, 0, 0, 0, 0, -449, -449, -449,
2553 -449, -449, -449, -449, -449, -449, -449, -449, -449, -449,
2554 0, 0, 0, 0, -449, -449, -449, -449, 0, 0,
2555 -449, 0, 0, 0, 0, 0, -449, 0, 0, 0,
2556 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2557 -449, 0, 0, 0, 0, 0, 0, -449, 0, -449,
2558 -449, -449, -449, -449, -449, -449, -449, -449, -449, 0,
2559 0, 0, 0, -449, -449, -449, -449, -302, 233, -449,
2560 -449, -449, 0, -449, 0, -302, -302, -302, 0, 0,
2561 -302, -302, -302, 0, -302, 0, 0, 0, 0, 0,
2562 0, 0, -302, 0, -302, -302, -302, 0, 0, 0,
2563 0, 0, 0, 0, -302, -302, 0, -302, -302, -302,
2564 -302, -302, 0, 0, 0, 0, 0, 0, 0, 0,
2565 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2566 0, 0, 0, 0, 0, -302, 0, 0, 0, 0,
2567 0, 0, 0, 0, -302, -302, -302, -302, -302, -302,
2568 -302, -302, -302, -302, -302, -302, -302, 0, 0, 0,
2569 0, -302, -302, -302, -302, 0, 0, -302, 0, 0,
2570 0, 0, 0, -302, 0, 0, 0, 0, 0, 0,
2571 0, 0, 0, 0, 0, 0, 0, -302, 0, 0,
2572 -302, 0, 0, 0, -302, -302, -302, -302, -302, -302,
2573 -302, -302, -302, -302, -302, -302, 0, 0, 0, 0,
2574 0, -302, -302, -302, -759, 0, -302, -302, -302, 0,
2575 -302, 0, -759, -759, -759, 0, 0, -759, -759, -759,
2576 0, -759, 0, 0, 0, 0, 0, 0, 0, -759,
2577 -759, -759, -759, 0, 0, 0, 0, 0, 0, 0,
2578 0, -759, -759, 0, -759, -759, -759, -759, -759, 0,
2579 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2580 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2581 0, 0, -759, 0, 0, 0, 0, 0, 0, 0,
2582 0, -759, -759, -759, -759, -759, -759, -759, -759, -759,
2583 -759, -759, -759, -759, 0, 0, 0, 0, -759, -759,
2584 -759, -759, 0, 0, -759, 0, 0, 0, 0, 0,
2585 -759, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2586 0, 0, 0, 0, -759, 0, 0, 0, 0, 0,
2587 0, -759, 0, -759, -759, -759, -759, -759, -759, -759,
2588 -759, -759, -759, 0, 0, 0, 0, -759, -759, -759,
2589 -759, -317, 233, -759, -759, -759, 0, -759, 0, -317,
2590 -317, -317, 0, 0, -317, -317, -317, 0, -317, 0,
2591 0, 0, 0, 0, 0, 0, -317, 0, -317, -317,
2592 0, 0, 0, 0, 0, 0, 0, 0, -317, -317,
2593 0, -317, -317, -317, -317, -317, 0, 0, 0, 0,
2594 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2595 0, 0, 0, 0, 0, 0, 0, 0, 0, -317,
2596 0, 0, 0, 0, 0, 0, 0, 0, -317, -317,
2597 -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
2598 -317, 0, 0, 0, 0, -317, -317, -317, -317, 0,
2599 0, -317, 0, 0, 0, 0, 0, -317, 0, 0,
2600 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2601 0, -317, 0, 0, 0, 0, 0, 0, -317, 0,
2602 -317, -317, -317, -317, -317, -317, -317, -317, -317, -317,
2603 0, 0, 0, 0, 0, -317, -317, -317, -736, 230,
2604 -317, -317, -317, 0, -317, 0, -736, -736, -736, 0,
2605 0, 0, -736, -736, 0, -736, 0, 0, 0, 0,
2606 0, 0, 0, -736, -736, 0, 0, 0, 0, 0,
2607 0, 0, 0, 0, 0, -736, -736, 0, -736, -736,
2608 -736, -736, -736, 0, 0, 0, 0, 0, 0, 0,
2609 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2610 0, 0, 0, 0, 0, 0, -736, 0, 0, 0,
2611 0, 0, 0, 0, 0, -736, -736, -736, -736, -736,
2612 -736, -736, -736, -736, -736, -736, -736, -736, 0, 0,
2613 0, 0, -736, -736, -736, -736, 0, 691, 0, 0,
2614 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2615 0, 0, 0, 0, 0, 0, 0, 0, -736, 0,
2616 0, 0, 0, 0, -116, -736, 0, -736, -736, -736,
2617 -736, -736, -736, -736, -736, -736, -736, 0, 0, 0,
2618 0, -736, -736, -736, -736, -310, 0, -736, 0, -736,
2619 0, -736, 0, -310, -310, -310, 0, 0, 0, -310,
2620 -310, 0, -310, 0, 0, 0, 0, 0, 0, 0,
2621 -310, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2622 0, 0, -310, -310, 0, -310, -310, -310, -310, -310,
2623 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2624 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2625 0, 0, 0, -310, 0, 0, 0, 0, 0, 0,
2626 0, 0, -310, -310, -310, -310, -310, -310, -310, -310,
2627 -310, -310, -310, -310, -310, 0, 0, 0, 0, -310,
2628 -310, -310, -310, 0, 692, 0, 0, 0, 0, 0,
2629 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2630 0, 0, 0, 0, 0, -310, 0, 0, 0, 0,
2631 0, -118, -310, 0, -310, -310, -310, -310, -310, -310,
2632 -310, -310, -310, -310, 0, 0, 0, 0, 0, -310,
2633 -310, -109, -310, 0, -310, 0, -310, 0, -310, 0,
2634 -310, -310, -310, 0, 0, 0, -310, -310, 0, -310,
2635 0, 0, 0, 0, 0, 0, 0, -310, 0, 0,
2636 0, 0, 0, 0, 0, 0, 0, 0, 0, -310,
2637 -310, 0, -310, -310, -310, -310, -310, 0, 0, 0,
2638 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2639 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2640 -310, 0, 0, 0, 0, 0, 0, 0, 0, -310,
2641 -310, -310, -310, -310, -310, -310, -310, -310, -310, -310,
2642 -310, -310, 0, 0, 0, 0, -310, -310, -310, -310,
2643 0, 692, 0, 0, 0, 0, 0, 0, 0, 0,
2644 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2645 0, 0, -310, 0, 0, 0, 0, 0, -118, -310,
2646 0, -310, -310, -310, -310, -310, -310, -310, -310, -310,
2647 -310, 0, 0, 0, 0, 0, -310, -310, -310, 0,
2648 0, -310, 0, -310, 257, -310, 5, 6, 7, 8,
2649 9, -759, -759, -759, 10, 11, 0, 0, -759, 12,
2650 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2651 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2652 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2653 258, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2654 40, 0, 41, 42, 43, 44, 45, 46, 47, 0,
2655 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
2656 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2657 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
2658 0, 52, 0, 0, 53, 54, 0, 55, 56, 0,
2659 57, 0, 0, 58, 59, 60, 61, 62, 63, 64,
2660 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
2661 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662 0, 0, 67, 68, 69, 0, 0, 0, 0, 0,
2663 0, 0, 0, 0, -759, 257, -759, 5, 6, 7,
2664 8, 9, 0, 0, -759, 10, 11, 0, -759, -759,
2665 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
2666 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
2667 26, 0, 0, 27, 0, 0, 0, 0, 0, 28,
2668 29, 258, 31, 32, 33, 34, 35, 36, 37, 38,
2669 39, 40, 0, 41, 42, 43, 44, 45, 46, 47,
2670 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
2671 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672 0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
2673 0, 0, 52, 0, 0, 53, 54, 0, 55, 56,
2674 0, 57, 0, 0, 58, 59, 60, 61, 62, 63,
2675 64, 65, 66, 0, 0, 0, 0, 0, 0, 0,
2676 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2677 0, 0, 0, 67, 68, 69, 0, 0, 0, 0,
2678 0, 0, 0, 0, 0, -759, 257, -759, 5, 6,
2679 7, 8, 9, 0, 0, -759, 10, 11, 0, 0,
2680 -759, 12, -759, 13, 14, 15, 16, 17, 18, 19,
2681 0, 0, 0, 0, 0, 20, 21, 22, 23, 24,
2682 25, 26, 0, 0, 27, 0, 0, 0, 0, 0,
2683 28, 29, 258, 31, 32, 33, 34, 35, 36, 37,
2684 38, 39, 40, 0, 41, 42, 43, 44, 45, 46,
2685 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2687 0, 0, 0, 0, 0, 50, 51, 0, 0, 0,
2688 0, 0, 0, 52, 0, 0, 53, 54, 0, 55,
2689 56, 0, 57, 0, 0, 58, 59, 60, 61, 62,
2690 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
2691 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2692 0, 0, 0, 0, 67, 68, 69, 0, 0, 0,
2693 0, 0, 0, 0, 0, 0, -759, 257, -759, 5,
2694 6, 7, 8, 9, 0, 0, -759, 10, 11, 0,
2695 0, -759, 12, 0, 13, 14, 15, 16, 17, 18,
2696 19, -759, 0, 0, 0, 0, 20, 21, 22, 23,
2697 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2698 0, 28, 29, 258, 31, 32, 33, 34, 35, 36,
2699 37, 38, 39, 40, 0, 41, 42, 43, 44, 45,
2700 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2701 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2702 0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
2703 0, 0, 0, 0, 52, 0, 0, 53, 54, 0,
2704 55, 56, 0, 57, 0, 0, 58, 59, 60, 61,
2705 62, 63, 64, 65, 66, 0, 0, 0, 0, 0,
2706 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707 0, 0, 0, 0, 0, 67, 68, 69, 0, 0,
2708 0, 0, 0, 0, 0, 0, 0, -759, 257, -759,
2709 5, 6, 7, 8, 9, 0, 0, -759, 10, 11,
2710 0, 0, -759, 12, 0, 13, 14, 15, 16, 17,
2711 18, 19, 0, 0, 0, 0, 0, 20, 21, 22,
2712 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2713 0, 0, 28, 29, 258, 31, 32, 33, 34, 35,
2714 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2715 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2716 0, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2717 0, 0, 0, 0, 0, 0, 0, 50, 51, 0,
2718 0, 0, 0, 0, 0, 52, 0, 0, 53, 54,
2719 0, 55, 56, 0, 57, 0, 0, 58, 59, 60,
2720 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
2721 0, 0, 0, 0, 257, 0, 5, 6, 7, 8,
2722 9, 0, -759, -759, 10, 11, 67, 68, 69, 12,
2723 0, 13, 14, 15, 16, 17, 18, 19, -759, 0,
2724 -759, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2725 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2726 258, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2727 40, 0, 41, 42, 43, 44, 45, 46, 47, 0,
2728 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
2729 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
2731 0, 52, 0, 0, 53, 54, 0, 55, 56, 0,
2732 57, 0, 0, 58, 59, 60, 61, 62, 63, 64,
2733 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
2734 257, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2735 10, 11, 67, 68, 69, 12, 0, 13, 14, 15,
2736 16, 17, 18, 19, -759, 0, -759, 0, 0, 20,
2737 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2738 0, 0, 0, 0, 28, 29, 258, 31, 32, 33,
2739 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2740 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
2741 0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
2742 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2743 51, 0, 0, 0, 0, 0, 0, 52, 0, 0,
2744 259, 54, 0, 55, 56, 0, 57, 0, 0, 58,
2745 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
2746 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747 0, 0, 0, 0, 0, 0, 0, 0, 67, 68,
2748 69, 0, 0, 0, 0, 0, 0, 0, -759, 0,
2749 -759, 257, -759, 5, 6, 7, 8, 9, 0, 0,
2750 0, 10, 11, 0, 0, 0, 12, 0, 13, 14,
2751 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
2752 20, 21, 22, 23, 24, 25, 26, 0, 0, 27,
2753 0, 0, 0, 0, 0, 28, 29, 258, 31, 32,
2754 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
2755 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
2756 0, 0, 0, 0, 0, 48, 49, 0, 0, 0,
2757 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758 50, 51, 0, 0, 0, 0, 0, 0, 52, 0,
2759 0, 53, 54, 0, 55, 56, 0, 57, 0, 0,
2760 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
2761 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762 0, 0, 0, 0, 0, 0, 0, 0, 0, 67,
2763 68, 69, 0, 0, 0, 0, 0, 0, 0, -759,
2764 0, -759, 4, -759, 5, 6, 7, 8, 9, 0,
2765 0, 0, 10, 11, 0, 0, 0, 12, 0, 13,
2766 14, 15, 16, 17, 18, 19, 0, 0, 0, 0,
2767 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2768 27, 0, 0, 0, 0, 0, 28, 29, 30, 31,
2769 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2770 41, 42, 43, 44, 45, 46, 47, 0, 0, 0,
2771 0, 0, 0, 0, 0, 0, 48, 49, 0, 0,
2772 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773 0, 50, 51, 0, 0, 0, 0, 0, 0, 52,
2774 0, 0, 53, 54, 0, 55, 56, 0, 57, 0,
2775 0, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2776 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2777 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2778 67, 68, 69, 0, 0, -759, 0, 0, 0, 0,
2779 0, 0, -759, 257, -759, 5, 6, 7, 8, 9,
2780 0, 0, 0, 10, 11, 0, 0, 0, 12, 0,
2781 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2782 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2783 0, 27, 0, 0, 0, 0, 0, 28, 29, 258,
2784 31, 32, 33, 34, 35, 36, 37, 38, 39, 40,
2785 0, 41, 42, 43, 44, 45, 46, 47, 0, 0,
2786 0, 0, 0, 0, 0, 0, 0, 48, 49, 0,
2787 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788 0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
2789 52, 0, 0, 53, 54, 0, 55, 56, 0, 57,
2790 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
2791 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2792 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2793 0, 67, 68, 69, 0, 0, -759, 0, 0, 0,
2794 0, 0, 0, -759, 257, -759, 5, 6, 7, 8,
2795 9, 0, 0, -759, 10, 11, 0, 0, 0, 12,
2796 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2797 0, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2798 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2799 258, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2800 40, 0, 41, 42, 43, 44, 45, 46, 47, 0,
2801 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
2802 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
2804 0, 52, 0, 0, 53, 54, 0, 55, 56, 0,
2805 57, 0, 0, 58, 59, 60, 61, 62, 63, 64,
2806 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
2807 257, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2808 10, 11, 67, 68, 69, 12, 0, 13, 14, 15,
2809 16, 17, 18, 19, -759, 0, -759, 0, 0, 20,
2810 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2811 0, 0, 0, 0, 28, 29, 258, 31, 32, 33,
2812 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2813 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
2814 0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
2815 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2816 51, 0, 0, 0, 0, 0, 0, 52, 0, 0,
2817 53, 54, 0, 55, 56, 0, 57, 0, 0, 58,
2818 59, 60, 61, 62, 63, 64, 65, 66, 0, -759,
2819 0, 0, 0, 0, 0, 0, 0, 0, 5, 6,
2820 7, 0, 9, 0, 0, 0, 10, 11, 67, 68,
2821 69, 12, 0, 13, 14, 15, 16, 17, 18, 19,
2822 -759, 0, -759, 0, 0, 20, 21, 22, 23, 24,
2823 25, 26, 0, 0, 206, 0, 0, 0, 0, 0,
2824 0, 29, 0, 0, 32, 33, 34, 35, 36, 37,
2825 38, 39, 40, 207, 41, 42, 43, 44, 45, 46,
2826 47, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2827 48, 49, 0, 0, 0, 0, 0, 0, 0, 0,
2828 0, 0, 0, 0, 0, 50, 51, 0, 0, 0,
2829 0, 0, 0, 208, 0, 0, 209, 54, 0, 55,
2830 56, 0, 210, 211, 212, 58, 59, 213, 61, 62,
2831 63, 64, 65, 66, 0, 0, 0, 0, 0, 0,
2832 0, 0, 0, 0, 5, 6, 7, 0, 9, 0,
2833 0, 0, 10, 11, 67, 214, 69, 12, 0, 13,
2834 14, 15, 16, 17, 18, 19, 0, 0, 237, 0,
2835 0, 20, 21, 22, 23, 24, 25, 26, 0, 0,
2836 27, 0, 0, 0, 0, 0, 0, 29, 0, 0,
2837 32, 33, 34, 35, 36, 37, 38, 39, 40, 0,
2838 41, 42, 43, 44, 45, 46, 47, 0, 0, 0,
2839 0, 0, 0, 0, 0, 0, 48, 49, 0, 0,
2840 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841 0, 50, 51, 0, 0, 0, 0, 0, 0, 208,
2842 0, 0, 209, 54, 0, 55, 56, 0, 0, 0,
2843 0, 58, 59, 60, 61, 62, 63, 64, 65, 66,
2844 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2845 5, 6, 7, 0, 9, 0, 0, 0, 10, 11,
2846 67, 68, 69, 12, 0, 13, 14, 15, 16, 17,
2847 18, 19, 305, 0, 306, 0, 0, 20, 21, 22,
2848 23, 24, 25, 26, 0, 0, 27, 0, 0, 0,
2849 0, 0, 0, 29, 0, 0, 32, 33, 34, 35,
2850 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2851 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2852 0, 0, 48, 49, 0, 0, 0, 0, 0, 0,
2853 0, 0, 0, 0, 0, 0, 0, 50, 51, 0,
2854 0, 0, 0, 0, 0, 208, 0, 0, 209, 54,
2855 0, 55, 56, 0, 0, 0, 0, 58, 59, 60,
2856 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
2857 0, 0, 0, 0, 0, 0, 5, 6, 7, 8,
2858 9, 0, 0, 0, 10, 11, 67, 68, 69, 12,
2859 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
2860 237, 0, 0, 20, 21, 22, 23, 24, 25, 26,
2861 0, 0, 27, 0, 0, 0, 0, 0, 28, 29,
2862 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
2863 40, 0, 41, 42, 43, 44, 45, 46, 47, 0,
2864 0, 0, 0, 0, 0, 0, 0, 0, 48, 49,
2865 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2866 0, 0, 0, 50, 51, 0, 0, 0, 0, 0,
2867 0, 52, 0, 0, 53, 54, 0, 55, 56, 0,
2868 57, 0, 0, 58, 59, 60, 61, 62, 63, 64,
2869 65, 66, 0, 0, 0, 0, 0, 0, 0, 0,
2870 0, 0, 5, 6, 7, 8, 9, 0, 0, 0,
2871 10, 11, 67, 68, 69, 12, 0, 13, 14, 15,
2872 16, 17, 18, 19, 503, 0, 0, 0, 0, 20,
2873 21, 22, 23, 24, 25, 26, 0, 0, 27, 0,
2874 0, 0, 0, 0, 28, 29, 258, 31, 32, 33,
2875 34, 35, 36, 37, 38, 39, 40, 0, 41, 42,
2876 43, 44, 45, 46, 47, 0, 0, 0, 0, 0,
2877 0, 0, 0, 0, 48, 49, 0, 0, 0, 0,
2878 0, 0, 0, 0, 0, 0, 0, 0, 0, 50,
2879 51, 0, 0, 0, 0, 0, 0, 52, 0, 0,
2880 53, 54, 0, 55, 56, 0, 57, 0, 0, 58,
2881 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
2882 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2883 0, 0, 0, 0, 0, 0, 0, 0, 67, 68,
2884 69, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885 503, 126, 127, 128, 129, 130, 131, 132, 133, 134,
2886 135, 136, 137, 138, 139, 140, 141, 142, 143, 144,
2887 145, 146, 147, 148, 149, 0, 0, 0, 150, 151,
2888 152, 395, 396, 397, 398, 157, 158, 159, 0, 0,
2889 0, 0, 0, 160, 161, 162, 163, 399, 400, 401,
2890 402, 168, 37, 38, 403, 40, 0, 0, 0, 0,
2891 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892 0, 0, 0, 170, 171, 172, 173, 174, 175, 176,
2893 177, 178, 0, 0, 179, 180, 0, 0, 0, 0,
2894 181, 182, 183, 184, 0, 0, 0, 0, 0, 0,
2895 0, 0, 0, 0, 0, 185, 186, 0, 0, 0,
2896 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897 0, 0, 0, 0, 0, 0, 0, 187, 188, 189,
2898 190, 191, 192, 193, 194, 195, 196, 0, 197, 198,
2899 0, 0, 0, 0, 0, 199, 404, 126, 127, 128,
2900 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2901 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2902 149, 0, 0, 0, 150, 151, 152, 153, 154, 155,
2903 156, 157, 158, 159, 0, 0, 0, 0, 0, 160,
2904 161, 162, 163, 164, 165, 166, 167, 168, 288, 289,
2905 169, 290, 0, 0, 0, 0, 0, 0, 0, 0,
2906 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
2907 171, 172, 173, 174, 175, 176, 177, 178, 0, 0,
2908 179, 180, 0, 0, 0, 0, 181, 182, 183, 184,
2909 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910 0, 185, 186, 0, 0, 0, 0, 0, 0, 0,
2911 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2912 0, 0, 0, 187, 188, 189, 190, 191, 192, 193,
2913 194, 195, 196, 0, 197, 198, 0, 0, 0, 0,
2914 0, 199, 126, 127, 128, 129, 130, 131, 132, 133,
2915 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2916 144, 145, 146, 147, 148, 149, 0, 0, 0, 150,
2917 151, 152, 153, 154, 155, 156, 157, 158, 159, 0,
2918 0, 0, 0, 0, 160, 161, 162, 163, 164, 165,
2919 166, 167, 168, 239, 0, 169, 0, 0, 0, 0,
2920 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2921 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
2922 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
2923 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
2924 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
2925 59, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2926 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
2927 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
2928 198, 0, 0, 0, 0, 0, 199, 126, 127, 128,
2929 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
2930 139, 140, 141, 142, 143, 144, 145, 146, 147, 148,
2931 149, 0, 0, 0, 150, 151, 152, 153, 154, 155,
2932 156, 157, 158, 159, 0, 0, 0, 0, 0, 160,
2933 161, 162, 163, 164, 165, 166, 167, 168, 0, 0,
2934 169, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2935 0, 0, 0, 0, 0, 0, 0, 0, 0, 170,
2936 171, 172, 173, 174, 175, 176, 177, 178, 0, 0,
2937 179, 180, 0, 0, 0, 0, 181, 182, 183, 184,
2938 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2939 0, 185, 186, 0, 0, 59, 0, 0, 0, 0,
2940 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941 0, 0, 0, 187, 188, 189, 190, 191, 192, 193,
2942 194, 195, 196, 0, 197, 198, 0, 0, 0, 0,
2943 0, 199, 126, 127, 128, 129, 130, 131, 132, 133,
2944 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
2945 144, 145, 146, 147, 148, 149, 0, 0, 0, 150,
2946 151, 152, 153, 154, 155, 156, 157, 158, 159, 0,
2947 0, 0, 0, 0, 160, 161, 162, 163, 164, 165,
2948 166, 167, 168, 0, 0, 169, 0, 0, 0, 0,
2949 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
2951 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
2952 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
2953 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
2954 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
2956 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
2957 198, 5, 6, 7, 0, 9, 199, 0, 0, 10,
2958 11, 0, 0, 0, 12, 0, 13, 14, 15, 245,
2959 246, 18, 19, 0, 0, 0, 0, 0, 20, 247,
2960 248, 23, 24, 25, 26, 0, 0, 206, 0, 0,
2961 0, 0, 0, 0, 277, 0, 0, 32, 33, 34,
2962 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
2963 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
2964 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2965 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966 0, 0, 0, 0, 0, 0, 278, 0, 0, 209,
2967 54, 0, 55, 56, 0, 0, 0, 0, 58, 59,
2968 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
2969 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2970 5, 6, 7, 0, 9, 0, 0, 279, 10, 11,
2971 0, 0, 0, 12, 280, 13, 14, 15, 245, 246,
2972 18, 19, 0, 0, 0, 0, 0, 20, 247, 248,
2973 23, 24, 25, 26, 0, 0, 206, 0, 0, 0,
2974 0, 0, 0, 277, 0, 0, 32, 33, 34, 35,
2975 36, 37, 38, 39, 40, 0, 41, 42, 43, 44,
2976 45, 46, 47, 0, 0, 0, 0, 0, 0, 0,
2977 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2978 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2979 0, 0, 0, 0, 0, 278, 0, 0, 209, 54,
2980 0, 55, 56, 0, 0, 0, 0, 58, 59, 60,
2981 61, 62, 63, 64, 65, 66, 0, 0, 0, 0,
2982 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
2983 6, 7, 8, 9, 0, 0, 279, 10, 11, 0,
2984 0, 0, 12, 526, 13, 14, 15, 16, 17, 18,
2985 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
2986 24, 25, 26, 0, 0, 27, 0, 0, 0, 0,
2987 0, 28, 29, 30, 31, 32, 33, 34, 35, 36,
2988 37, 38, 39, 40, 0, 41, 42, 43, 44, 45,
2989 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
2990 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
2991 0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
2992 0, 0, 0, 0, 52, 0, 0, 53, 54, 0,
2993 55, 56, 0, 57, 0, 0, 58, 59, 60, 61,
2994 62, 63, 64, 65, 66, 0, 0, 0, 0, 0,
2995 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
2996 0, 0, 0, 10, 11, 67, 68, 69, 12, 0,
2997 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
2998 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
2999 0, 206, 0, 0, 0, 0, 0, 0, 29, 0,
3000 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3001 207, 41, 42, 43, 44, 45, 46, 47, 0, 0,
3002 0, 0, 0, 0, 0, 0, 0, 48, 49, 0,
3003 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3004 0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
3005 208, 0, 0, 209, 54, 0, 55, 56, 0, 210,
3006 211, 212, 58, 59, 213, 61, 62, 63, 64, 65,
3007 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008 0, 5, 6, 7, 8, 9, 0, 0, 0, 10,
3009 11, 67, 214, 69, 12, 0, 13, 14, 15, 16,
3010 17, 18, 19, 0, 0, 0, 0, 0, 20, 21,
3011 22, 23, 24, 25, 26, 0, 0, 27, 0, 0,
3012 0, 0, 0, 28, 29, 0, 31, 32, 33, 34,
3013 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3014 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3015 0, 0, 0, 48, 49, 0, 0, 0, 0, 0,
3016 0, 0, 0, 0, 0, 0, 0, 0, 50, 51,
3017 0, 0, 0, 0, 0, 0, 52, 0, 0, 53,
3018 54, 0, 55, 56, 0, 57, 0, 0, 58, 59,
3019 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
3020 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3021 0, 9, 0, 0, 0, 10, 11, 67, 68, 69,
3022 12, 0, 13, 14, 15, 16, 17, 18, 19, 0,
3023 0, 0, 0, 0, 20, 21, 22, 23, 24, 25,
3024 26, 0, 0, 206, 0, 0, 0, 0, 0, 0,
3025 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3026 39, 40, 207, 41, 42, 43, 44, 45, 46, 47,
3027 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
3028 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029 0, 0, 0, 0, 50, 439, 0, 0, 0, 0,
3030 0, 0, 208, 0, 0, 209, 54, 0, 55, 56,
3031 0, 210, 211, 212, 58, 59, 213, 61, 62, 63,
3032 64, 65, 66, 0, 0, 0, 0, 0, 0, 0,
3033 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3034 0, 10, 11, 67, 214, 69, 12, 0, 13, 14,
3035 15, 245, 246, 18, 19, 0, 0, 0, 0, 0,
3036 20, 247, 248, 23, 24, 25, 26, 0, 0, 206,
3037 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3038 33, 34, 35, 36, 37, 38, 39, 40, 207, 41,
3039 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
3040 0, 0, 0, 0, 0, 48, 49, 0, 0, 0,
3041 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3042 50, 51, 0, 0, 0, 0, 0, 0, 208, 0,
3043 0, 209, 54, 0, 55, 56, 0, 620, 211, 212,
3044 58, 59, 213, 61, 62, 63, 64, 65, 66, 0,
3045 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3046 6, 7, 0, 9, 0, 0, 0, 10, 11, 67,
3047 214, 69, 12, 0, 13, 14, 15, 245, 246, 18,
3048 19, 0, 0, 0, 0, 0, 20, 247, 248, 23,
3049 24, 25, 26, 0, 0, 206, 0, 0, 0, 0,
3050 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
3051 37, 38, 39, 40, 207, 41, 42, 43, 44, 45,
3052 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
3053 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3054 0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
3055 0, 0, 0, 0, 208, 0, 0, 209, 54, 0,
3056 55, 56, 0, 210, 211, 0, 58, 59, 213, 61,
3057 62, 63, 64, 65, 66, 0, 0, 0, 0, 0,
3058 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3059 0, 0, 0, 10, 11, 67, 214, 69, 12, 0,
3060 13, 14, 15, 245, 246, 18, 19, 0, 0, 0,
3061 0, 0, 20, 247, 248, 23, 24, 25, 26, 0,
3062 0, 206, 0, 0, 0, 0, 0, 0, 29, 0,
3063 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3064 207, 41, 42, 43, 44, 45, 46, 47, 0, 0,
3065 0, 0, 0, 0, 0, 0, 0, 48, 49, 0,
3066 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3067 0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
3068 208, 0, 0, 209, 54, 0, 55, 56, 0, 0,
3069 211, 212, 58, 59, 213, 61, 62, 63, 64, 65,
3070 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3071 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3072 11, 67, 214, 69, 12, 0, 13, 14, 15, 245,
3073 246, 18, 19, 0, 0, 0, 0, 0, 20, 247,
3074 248, 23, 24, 25, 26, 0, 0, 206, 0, 0,
3075 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
3076 35, 36, 37, 38, 39, 40, 207, 41, 42, 43,
3077 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3078 0, 0, 0, 48, 49, 0, 0, 0, 0, 0,
3079 0, 0, 0, 0, 0, 0, 0, 0, 50, 51,
3080 0, 0, 0, 0, 0, 0, 208, 0, 0, 209,
3081 54, 0, 55, 56, 0, 620, 211, 0, 58, 59,
3082 213, 61, 62, 63, 64, 65, 66, 0, 0, 0,
3083 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3084 0, 9, 0, 0, 0, 10, 11, 67, 214, 69,
3085 12, 0, 13, 14, 15, 245, 246, 18, 19, 0,
3086 0, 0, 0, 0, 20, 247, 248, 23, 24, 25,
3087 26, 0, 0, 206, 0, 0, 0, 0, 0, 0,
3088 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3089 39, 40, 207, 41, 42, 43, 44, 45, 46, 47,
3090 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
3091 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3092 0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
3093 0, 0, 208, 0, 0, 209, 54, 0, 55, 56,
3094 0, 0, 211, 0, 58, 59, 213, 61, 62, 63,
3095 64, 65, 66, 0, 0, 0, 0, 0, 0, 0,
3096 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3097 0, 10, 11, 67, 214, 69, 12, 0, 13, 14,
3098 15, 16, 17, 18, 19, 0, 0, 0, 0, 0,
3099 20, 21, 22, 23, 24, 25, 26, 0, 0, 206,
3100 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3101 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3102 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
3103 0, 0, 0, 0, 0, 48, 49, 0, 0, 0,
3104 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3105 50, 51, 0, 0, 0, 0, 0, 0, 208, 0,
3106 0, 209, 54, 0, 55, 56, 0, 519, 0, 0,
3107 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
3108 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3109 6, 7, 0, 9, 0, 0, 0, 10, 11, 67,
3110 214, 69, 12, 0, 13, 14, 15, 245, 246, 18,
3111 19, 0, 0, 0, 0, 0, 20, 247, 248, 23,
3112 24, 25, 26, 0, 0, 206, 0, 0, 0, 0,
3113 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
3114 37, 38, 39, 40, 0, 41, 42, 43, 44, 45,
3115 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
3116 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3117 0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
3118 0, 0, 0, 0, 208, 0, 0, 209, 54, 0,
3119 55, 56, 0, 770, 0, 0, 58, 59, 60, 61,
3120 62, 63, 64, 65, 66, 0, 0, 0, 0, 0,
3121 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3122 0, 0, 0, 10, 11, 67, 214, 69, 12, 0,
3123 13, 14, 15, 245, 246, 18, 19, 0, 0, 0,
3124 0, 0, 20, 247, 248, 23, 24, 25, 26, 0,
3125 0, 206, 0, 0, 0, 0, 0, 0, 29, 0,
3126 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3127 0, 41, 42, 43, 44, 45, 46, 47, 0, 0,
3128 0, 0, 0, 0, 0, 0, 0, 48, 49, 0,
3129 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3130 0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
3131 208, 0, 0, 209, 54, 0, 55, 56, 0, 519,
3132 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
3133 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3135 11, 67, 214, 69, 12, 0, 13, 14, 15, 245,
3136 246, 18, 19, 0, 0, 0, 0, 0, 20, 247,
3137 248, 23, 24, 25, 26, 0, 0, 206, 0, 0,
3138 0, 0, 0, 0, 29, 0, 0, 32, 33, 34,
3139 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3140 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3141 0, 0, 0, 48, 49, 0, 0, 0, 0, 0,
3142 0, 0, 0, 0, 0, 0, 0, 0, 50, 51,
3143 0, 0, 0, 0, 0, 0, 208, 0, 0, 209,
3144 54, 0, 55, 56, 0, 843, 0, 0, 58, 59,
3145 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
3146 0, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3147 0, 9, 0, 0, 0, 10, 11, 67, 214, 69,
3148 12, 0, 13, 14, 15, 245, 246, 18, 19, 0,
3149 0, 0, 0, 0, 20, 247, 248, 23, 24, 25,
3150 26, 0, 0, 206, 0, 0, 0, 0, 0, 0,
3151 29, 0, 0, 32, 33, 34, 35, 36, 37, 38,
3152 39, 40, 0, 41, 42, 43, 44, 45, 46, 47,
3153 0, 0, 0, 0, 0, 0, 0, 0, 0, 48,
3154 49, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3155 0, 0, 0, 0, 50, 51, 0, 0, 0, 0,
3156 0, 0, 208, 0, 0, 209, 54, 0, 55, 56,
3157 0, 1014, 0, 0, 58, 59, 60, 61, 62, 63,
3158 64, 65, 66, 0, 0, 0, 0, 0, 0, 0,
3159 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3160 0, 10, 11, 67, 214, 69, 12, 0, 13, 14,
3161 15, 245, 246, 18, 19, 0, 0, 0, 0, 0,
3162 20, 247, 248, 23, 24, 25, 26, 0, 0, 206,
3163 0, 0, 0, 0, 0, 0, 29, 0, 0, 32,
3164 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3165 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
3166 0, 0, 0, 0, 0, 48, 49, 0, 0, 0,
3167 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3168 50, 51, 0, 0, 0, 0, 0, 0, 208, 0,
3169 0, 209, 54, 0, 55, 56, 0, 0, 0, 0,
3170 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
3171 0, 0, 0, 0, 0, 0, 0, 0, 0, 5,
3172 6, 7, 0, 9, 0, 0, 0, 10, 11, 67,
3173 214, 69, 12, 0, 13, 14, 15, 16, 17, 18,
3174 19, 0, 0, 0, 0, 0, 20, 21, 22, 23,
3175 24, 25, 26, 0, 0, 206, 0, 0, 0, 0,
3176 0, 0, 29, 0, 0, 32, 33, 34, 35, 36,
3177 37, 38, 39, 40, 0, 41, 42, 43, 44, 45,
3178 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
3179 0, 48, 49, 0, 0, 0, 0, 0, 0, 0,
3180 0, 0, 0, 0, 0, 0, 50, 51, 0, 0,
3181 0, 0, 0, 0, 208, 0, 0, 209, 54, 0,
3182 55, 56, 0, 0, 0, 0, 58, 59, 60, 61,
3183 62, 63, 64, 65, 66, 0, 0, 0, 0, 0,
3184 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3185 0, 0, 0, 10, 11, 67, 214, 69, 12, 0,
3186 13, 14, 15, 16, 17, 18, 19, 0, 0, 0,
3187 0, 0, 20, 21, 22, 23, 24, 25, 26, 0,
3188 0, 27, 0, 0, 0, 0, 0, 0, 29, 0,
3189 0, 32, 33, 34, 35, 36, 37, 38, 39, 40,
3190 0, 41, 42, 43, 44, 45, 46, 47, 0, 0,
3191 0, 0, 0, 0, 0, 0, 0, 48, 49, 0,
3192 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3193 0, 0, 50, 51, 0, 0, 0, 0, 0, 0,
3194 208, 0, 0, 209, 54, 0, 55, 56, 0, 0,
3195 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
3196 66, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3197 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3198 11, 67, 68, 69, 12, 0, 13, 14, 15, 245,
3199 246, 18, 19, 0, 0, 0, 0, 0, 20, 247,
3200 248, 23, 24, 25, 26, 0, 0, 206, 0, 0,
3201 0, 0, 0, 0, 277, 0, 0, 32, 33, 34,
3202 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3203 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3204 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3205 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3206 0, 0, 0, 0, 0, 0, 278, 0, 0, 328,
3207 54, 0, 55, 56, 0, 329, 0, 0, 58, 59,
3208 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
3209 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3210 0, 10, 11, 0, 0, 0, 12, 279, 13, 14,
3211 15, 245, 246, 18, 19, 0, 0, 0, 0, 0,
3212 20, 247, 248, 23, 24, 25, 26, 0, 0, 206,
3213 0, 0, 0, 0, 0, 0, 277, 0, 0, 32,
3214 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3215 42, 43, 44, 45, 46, 47, 0, 0, 0, 0,
3216 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3217 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3218 0, 0, 0, 0, 0, 0, 0, 0, 376, 0,
3219 0, 53, 54, 0, 55, 56, 0, 57, 0, 0,
3220 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
3221 0, 0, 0, 0, 0, 5, 6, 7, 0, 9,
3222 0, 0, 0, 10, 11, 0, 0, 0, 12, 279,
3223 13, 14, 15, 245, 246, 18, 19, 0, 0, 0,
3224 0, 0, 20, 247, 248, 23, 24, 25, 26, 0,
3225 0, 206, 0, 0, 0, 0, 0, 0, 277, 0,
3226 0, 32, 33, 34, 384, 36, 37, 38, 385, 40,
3227 0, 41, 42, 43, 44, 45, 46, 47, 0, 0,
3228 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3229 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3230 0, 0, 0, 0, 0, 0, 386, 0, 0, 0,
3231 387, 0, 0, 209, 54, 0, 55, 56, 0, 0,
3232 0, 0, 58, 59, 60, 61, 62, 63, 64, 65,
3233 66, 0, 0, 0, 0, 0, 0, 5, 6, 7,
3234 0, 9, 0, 0, 0, 10, 11, 0, 0, 0,
3235 12, 279, 13, 14, 15, 245, 246, 18, 19, 0,
3236 0, 0, 0, 0, 20, 247, 248, 23, 24, 25,
3237 26, 0, 0, 206, 0, 0, 0, 0, 0, 0,
3238 277, 0, 0, 32, 33, 34, 384, 36, 37, 38,
3239 385, 40, 0, 41, 42, 43, 44, 45, 46, 47,
3240 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3241 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3242 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3243 0, 0, 387, 0, 0, 209, 54, 0, 55, 56,
3244 0, 0, 0, 0, 58, 59, 60, 61, 62, 63,
3245 64, 65, 66, 0, 0, 0, 0, 0, 0, 5,
3246 6, 7, 0, 9, 0, 0, 0, 10, 11, 0,
3247 0, 0, 12, 279, 13, 14, 15, 245, 246, 18,
3248 19, 0, 0, 0, 0, 0, 20, 247, 248, 23,
3249 24, 25, 26, 0, 0, 206, 0, 0, 0, 0,
3250 0, 0, 277, 0, 0, 32, 33, 34, 35, 36,
3251 37, 38, 39, 40, 0, 41, 42, 43, 44, 45,
3252 46, 47, 0, 0, 0, 0, 0, 0, 0, 0,
3253 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3254 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3255 0, 0, 0, 0, 278, 0, 0, 328, 54, 0,
3256 55, 56, 0, 0, 0, 0, 58, 59, 60, 61,
3257 62, 63, 64, 65, 66, 0, 0, 0, 0, 0,
3258 0, 5, 6, 7, 0, 9, 0, 0, 0, 10,
3259 11, 0, 0, 0, 12, 279, 13, 14, 15, 245,
3260 246, 18, 19, 0, 0, 0, 0, 0, 20, 247,
3261 248, 23, 24, 25, 26, 0, 0, 206, 0, 0,
3262 0, 0, 0, 0, 277, 0, 0, 32, 33, 34,
3263 35, 36, 37, 38, 39, 40, 0, 41, 42, 43,
3264 44, 45, 46, 47, 0, 0, 0, 0, 0, 0,
3265 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3266 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3267 0, 0, 0, 0, 0, 0, 1004, 0, 0, 209,
3268 54, 0, 55, 56, 0, 0, 0, 0, 58, 59,
3269 60, 61, 62, 63, 64, 65, 66, 0, 0, 0,
3270 0, 0, 0, 5, 6, 7, 0, 9, 0, 0,
3271 0, 10, 11, 0, 0, 0, 12, 279, 13, 14,
3272 15, 245, 246, 18, 19, 0, 0, 0, 0, 0,
3273 20, 247, 248, 23, 24, 25, 26, 0, 0, 206,
3274 0, 0, 0, 0, 0, 0, 277, 0, 0, 32,
3275 33, 34, 35, 36, 37, 38, 39, 40, 0, 41,
3276 42, 43, 44, 45, 46, 47, 23, 24, 25, 26,
3277 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3278 0, 0, 32, 33, 34, 781, 0, 0, 0, 782,
3279 0, 0, 41, 42, 43, 44, 45, 0, 1056, 0,
3280 0, 209, 54, 0, 55, 56, 0, 0, 0, 0,
3281 58, 59, 60, 61, 62, 63, 64, 65, 66, 0,
3282 0, 0, 0, 783, 784, 0, 0, 0, 0, 0,
3283 0, 785, 0, 0, 786, 0, 0, 787, 788, 279,
3284 975, 0, 0, 789, 59, 60, 61, 62, 63, 64,
3285 65, 66, 23, 24, 25, 26, 0, 0, 0, 0,
3286 0, 0, 0, 0, 0, 790, 0, 0, 32, 33,
3287 34, 781, 279, 0, 0, 782, 0, 0, 41, 42,
3288 43, 44, 45, 0, 0, 23, 24, 25, 26, 0,
3289 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3290 0, 32, 33, 34, 781, 0, 0, 0, 782, 783,
3291 784, 41, 42, 43, 44, 45, 0, 785, 0, 0,
3292 786, 0, 0, 787, 788, 0, 1071, 0, 0, 789,
3293 59, 60, 61, 62, 63, 64, 65, 66, 0, 0,
3294 0, 0, 783, 784, 0, 0, 0, 0, 0, 0,
3295 785, 790, 0, 786, 0, 0, 787, 788, 279, 0,
3296 0, 0, 789, 59, 60, 61, 62, 63, 64, 65,
3297 66, 564, 565, 0, 0, 566, 0, 0, 0, 0,
3298 0, 0, 0, 0, 790, 0, 0, 0, 0, 0,
3299 0, 279, 0, 0, 170, 171, 172, 173, 174, 175,
3300 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3301 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3302 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3303 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3304 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3305 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3306 198, 572, 573, 0, 0, 574, 199, 233, 0, 0,
3307 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3308 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3309 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3310 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3311 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3312 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3313 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3314 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3315 198, 624, 565, 0, 0, 625, 199, 233, 0, 0,
3316 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3317 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3318 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3319 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3320 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3321 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3322 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3323 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3324 198, 627, 573, 0, 0, 628, 199, 233, 0, 0,
3325 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3326 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3327 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3328 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3329 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3330 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3331 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3332 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3333 198, 652, 565, 0, 0, 653, 199, 233, 0, 0,
3334 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3335 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3336 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3337 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3338 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3339 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3340 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3341 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3342 198, 655, 573, 0, 0, 656, 199, 233, 0, 0,
3343 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3344 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3345 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3346 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3347 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3348 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3349 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3350 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3351 198, 722, 565, 0, 0, 723, 199, 233, 0, 0,
3352 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3353 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3354 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3355 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3356 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3357 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3358 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3359 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3360 198, 725, 573, 0, 0, 726, 199, 233, 0, 0,
3361 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3362 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3363 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3364 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3365 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3366 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3367 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3368 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3369 198, 731, 565, 0, 0, 732, 199, 233, 0, 0,
3370 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3371 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3372 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3373 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3374 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3375 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3376 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3377 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3378 198, 609, 573, 0, 0, 610, 199, 233, 0, 0,
3379 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3380 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3381 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3382 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3383 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3384 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3385 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3386 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3387 198, 776, 565, 0, 0, 777, 199, 233, 0, 0,
3388 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3389 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3390 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3391 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3392 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3393 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3394 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3395 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3396 198, 779, 573, 0, 0, 780, 199, 233, 0, 0,
3397 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3398 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3399 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3400 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3401 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3402 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3403 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3404 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3405 198, 1154, 565, 0, 0, 1155, 199, 233, 0, 0,
3406 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3407 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3408 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3409 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3410 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3411 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3412 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3413 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3414 198, 1157, 573, 0, 0, 1158, 199, 233, 0, 0,
3415 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3416 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3417 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3418 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3419 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3420 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3421 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3422 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3423 198, 1188, 565, 0, 0, 1189, 199, 233, 0, 0,
3424 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3425 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3426 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3427 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3428 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3429 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3430 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3431 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3432 198, 609, 573, 0, 0, 610, 199, 233, 0, 0,
3433 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3434 0, 0, 0, 0, 170, 171, 172, 173, 174, 175,
3435 176, 177, 178, 0, 0, 179, 180, 0, 0, 0,
3436 0, 181, 182, 183, 184, 0, 0, 0, 0, 0,
3437 0, 0, 0, 0, 0, 0, 185, 186, 0, 0,
3438 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3439 0, 0, 0, 0, 0, 0, 0, 0, 187, 188,
3440 189, 190, 191, 192, 193, 194, 195, 196, 0, 197,
3441 198, 0, 0, 0, 0, 0, 199
3446 2, 369, 89, 60, 28, 57, 94, 102, 8, 227,
3447 710, 71, 22, 8, 101, 83, 433, 387, 53, 59,
3448 866, 331, 16, 17, 95, 91, 92, 71, 28, 95,
3449 67, 83, 68, 28, 2, 95, 4, 717, 57, 1066,
3450 26, 16, 17, 626, 96, 97, 98, 53, 16, 17,
3451 27, 603, 29, 55, 56, 1039, 473, 364, 25, 99,
3452 92, 55, 56, 95, 59, 425, 4, 13, 78, 893,
3453 894, 654, 482, 433, 2, 1062, 4, 271, 25, 52,
3454 1104, 275, 16, 17, 857, 53, 54, 27, 363, 57,
3455 365, 864, 29, 25, 25, 52, 295, 296, 958, 13,
3456 68, 25, 25, 100, 99, 1106, 100, 15, 25, 17,
3457 16, 17, 893, 894, 68, 83, 526, 126, 259, 331,
3458 1028, 55, 429, 91, 92, 100, 54, 95, 96, 97,
3459 98, 13, 100, 0, 26, 222, 411, 146, 25, 924,
3460 34, 724, 96, 97, 37, 38, 1054, 13, 13, 146,
3461 855, 734, 857, 428, 153, 430, 213, 143, 52, 864,
3462 414, 415, 148, 689, 251, 15, 100, 66, 66, 1196,
3463 236, 13, 238, 146, 209, 25, 866, 484, 730, 146,
3464 953, 148, 1028, 458, 1208, 1169, 123, 328, 1048, 146,
3465 261, 145, 13, 1039, 100, 778, 283, 1184, 68, 146,
3466 146, 261, 414, 415, 787, 151, 1207, 153, 1054, 244,
3467 485, 151, 280, 153, 146, 146, 1062, 261, 635, 221,
3468 119, 119, 146, 146, 259, 227, 444, 97, 280, 146,
3469 600, 233, 1013, 1018, 1019, 13, 230, 151, 232, 153,
3470 242, 209, 279, 143, 310, 311, 312, 313, 953, 315,
3471 316, 143, 855, 259, 857, 230, 56, 232, 233, 146,
3472 153, 864, 230, 866, 232, 233, 1174, 143, 236, 151,
3473 238, 153, 682, 633, 242, 635, 244, 329, 310, 311,
3474 312, 313, 148, 1191, 591, 151, 151, 153, 153, 257,
3475 326, 259, 379, 328, 601, 331, 230, 849, 232, 498,
3476 277, 500, 373, 25, 856, 371, 148, 152, 891, 151,
3477 329, 153, 280, 373, 242, 58, 1016, 592, 870, 1104,
3478 386, 1106, 328, 1169, 230, 109, 232, 602, 13, 257,
3479 151, 13, 153, 152, 77, 370, 1016, 372, 1184, 371,
3480 1164, 309, 310, 311, 312, 313, 314, 315, 316, 133,
3481 953, 877, 878, 866, 66, 100, 37, 38, 326, 68,
3482 328, 329, 364, 331, 1054, 108, 99, 893, 894, 112,
3483 365, 309, 1062, 151, 1064, 153, 100, 880, 414, 415,
3484 687, 309, 34, 151, 978, 153, 314, 25, 97, 364,
3485 893, 894, 326, 126, 977, 705, 364, 331, 366, 152,
3486 52, 146, 370, 371, 372, 623, 25, 783, 784, 121,
3487 122, 686, 124, 688, 482, 785, 411, 152, 386, 1002,
3488 1003, 236, 1207, 1208, 146, 1028, 148, 429, 452, 153,
3489 482, 425, 25, 97, 694, 430, 1039, 691, 692, 28,
3490 442, 701, 444, 697, 698, 862, 414, 415, 22, 264,
3491 537, 1054, 452, 268, 429, 649, 126, 452, 526, 1062,
3492 986, 429, 661, 458, 99, 99, 151, 666, 153, 151,
3493 13, 153, 684, 99, 526, 1069, 470, 845, 146, 691,
3494 692, 145, 484, 77, 148, 697, 698, 1013, 126, 144,
3495 485, 126, 126, 68, 1184, 1047, 1186, 465, 153, 99,
3496 126, 1191, 862, 1193, 78, 593, 126, 126, 146, 484,
3497 1013, 149, 888, 889, 482, 153, 484, 146, 1031, 99,
3498 890, 96, 97, 1036, 153, 585, 126, 146, 1031, 148,
3499 149, 899, 750, 126, 153, 1144, 904, 1237, 604, 1148,
3500 1230, 1054, 136, 137, 138, 1058, 581, 66, 583, 1062,
3501 1144, 1064, 99, 146, 1148, 1058, 149, 99, 526, 569,
3502 153, 99, 816, 942, 943, 99, 1169, 577, 112, 99,
3503 145, 1123, 638, 1156, 1077, 577, 553, 579, 146, 126,
3504 56, 1184, 650, 68, 126, 964, 965, 966, 126, 591,
3505 68, 1200, 126, 617, 571, 68, 126, 592, 650, 601,
3506 119, 611, 121, 122, 816, 1199, 1200, 602, 151, 611,
3507 153, 96, 97, 581, 682, 583, 591, 617, 96, 97,
3508 435, 623, 617, 591, 97, 440, 601, 148, 443, 126,
3509 682, 446, 66, 601, 66, 603, 604, 99, 1164, 633,
3510 68, 643, 100, 2, 739, 4, 66, 462, 684, 626,
3511 68, 25, 467, 866, 68, 691, 692, 16, 17, 146,
3512 145, 697, 698, 729, 126, 146, 866, 145, 728, 97,
3513 638, 1184, 153, 1186, 248, 249, 68, 654, 1191, 97,
3514 1193, 148, 650, 97, 66, 687, 153, 121, 122, 121,
3515 122, 146, 727, 688, 53, 54, 149, 729, 738, 119,
3516 153, 121, 122, 705, 706, 97, 708, 26, 710, 68,
3517 525, 679, 687, 99, 682, 683, 684, 1230, 152, 687,
3518 152, 68, 148, 691, 692, 1093, 82, 83, 518, 697,
3519 698, 68, 91, 92, 68, 1114, 95, 119, 146, 121,
3520 122, 100, 124, 738, 66, 153, 148, 724, 750, 68,
3521 97, 679, 126, 148, 68, 683, 1135, 734, 68, 727,
3522 97, 729, 730, 97, 9, 767, 150, 769, 834, 153,
3523 15, 705, 146, 129, 130, 149, 68, 96, 97, 153,
3524 816, 1088, 96, 97, 68, 52, 96, 97, 578, 56,
3525 850, 365, 68, 828, 584, 77, 586, 119, 833, 121,
3526 122, 778, 834, 52, 96, 97, 149, 56, 126, 68,
3527 787, 788, 96, 97, 1089, 150, 99, 144, 1031, 56,
3528 96, 97, 824, 146, 143, 77, 145, 106, 99, 148,
3529 146, 145, 867, 56, 148, 145, 77, 96, 97, 14,
3530 15, 1054, 151, 126, 130, 1058, 898, 25, 816, 1062,
3531 209, 1064, 66, 145, 1054, 126, 430, 146, 1058, 149,
3532 828, 145, 1062, 146, 1064, 833, 834, 902, 146, 145,
3533 144, 230, 144, 232, 233, 146, 911, 236, 146, 238,
3534 146, 849, 99, 242, 458, 244, 145, 68, 856, 866,
3535 99, 951, 10, 134, 135, 136, 137, 138, 257, 867,
3536 259, 144, 870, 88, 89, 119, 146, 121, 122, 126,
3537 962, 485, 54, 146, 891, 96, 97, 126, 44, 1006,
3538 146, 736, 64, 65, 44, 982, 40, 41, 718, 146,
3539 898, 721, 126, 8, 902, 13, 751, 146, 940, 25,
3540 942, 943, 999, 911, 17, 735, 152, 152, 144, 99,
3541 309, 310, 311, 312, 313, 314, 315, 316, 146, 68,
3542 128, 68, 964, 965, 966, 15, 150, 326, 148, 328,
3543 146, 1184, 331, 1186, 131, 1010, 126, 1012, 1191, 146,
3544 1193, 958, 26, 2, 1184, 4, 1186, 96, 97, 96,
3545 97, 1191, 52, 1193, 962, 569, 146, 16, 17, 100,
3546 977, 1053, 131, 577, 100, 364, 983, 366, 146, 1011,
3547 144, 370, 371, 372, 1016, 1050, 52, 1230, 592, 66,
3548 67, 26, 126, 146, 68, 1002, 1003, 386, 602, 146,
3549 1230, 68, 52, 146, 53, 54, 145, 611, 145, 52,
3550 146, 146, 1010, 131, 1012, 835, 126, 146, 838, 68,
3551 56, 841, 96, 97, 66, 414, 415, 146, 848, 96,
3552 97, 851, 146, 68, 146, 146, 414, 415, 642, 643,
3553 429, 1048, 91, 92, 121, 122, 95, 892, 146, 1047,
3554 151, 100, 1050, 431, 432, 1053, 1088, 9, 1090, 1124,
3555 1092, 96, 97, 68, 1089, 146, 1162, 1163, 68, 143,
3556 146, 145, 866, 131, 148, 56, 465, 119, 145, 121,
3557 122, 459, 1114, 1088, 688, 99, 931, 932, 58, 99,
3558 1088, 96, 97, 913, 146, 484, 96, 97, 146, 146,
3559 1162, 1163, 146, 1135, 52, 146, 146, 77, 143, 120,
3560 145, 149, 126, 148, 146, 66, 126, 146, 52, 146,
3561 54, 55, 56, 57, 58, 1123, 1124, 146, 146, 974,
3562 950, 146, 146, 146, 1141, 242, 146, 146, 108, 109,
3563 145, 144, 148, 77, 689, 145, 2, 148, 4, 1156,
3564 40, 41, 42, 43, 44, 1000, 1001, 146, 689, 146,
3565 209, 461, 77, 133, 1162, 1163, 465, 101, 119, 1234,
3566 121, 122, 96, 124, 108, 109, 98, 1022, 87, 94,
3567 95, 230, 611, 232, 233, 706, 1018, 236, 1092, 238,
3568 1104, 866, 581, 242, 583, 244, 1196, 53, 54, 133,
3569 769, 57, 591, 883, 740, 1237, 1237, 514, 257, 324,
3570 259, 887, 601, 1013, 603, 604, 131, 132, 133, 134,
3571 135, 136, 137, 138, 1077, 1077, 1090, 83, 885, 945,
3572 52, 947, 54, 55, 56, 57, 1234, 1077, 783, 784,
3573 96, 97, 98, 99, 1011, 1039, 105, 99, 1042, 638,
3574 500, 952, 783, 784, 855, 968, 969, 1102, 1054, 1031,
3575 309, 310, 311, 312, 313, 314, 315, 316, 1062, 77,
3576 1064, 1058, 1028, 54, 55, 983, 57, 326, -1, 328,
3577 -1, -1, 331, 64, 65, -1, 94, 95, -1, -1,
3578 679, -1, -1, -1, 683, 684, -1, -1, 687, -1,
3579 -1, 1121, 691, 692, 59, 60, 61, 62, 697, 698,
3580 -1, -1, -1, 691, 692, 364, -1, 366, -1, 697,
3581 698, 370, 371, 372, -1, 133, 134, 135, 136, 137,
3582 138, -1, 877, 878, -1, -1, -1, 386, 727, -1,
3583 729, 730, 887, 888, 889, -1, 877, 878, 893, 894,
3584 -1, -1, -1, 209, -1, -1, 887, 888, 889, -1,
3585 -1, 1181, 893, 894, -1, 414, 415, 745, 746, -1,
3586 748, 749, -1, -1, -1, 1169, -1, 1171, -1, -1,
3587 429, -1, 1176, -1, -1, -1, 242, -1, 244, -1,
3588 1184, -1, 1186, -1, 1110, 1111, -1, -1, -1, 1193,
3589 1116, 257, 1118, 259, 1120, -1, 689, 52, -1, 54,
3590 55, 56, 57, 58, -1, -1, 465, 1130, 1131, -1,
3591 -1, -1, -1, 1136, 280, 1138, 1139, 816, -1, -1,
3592 -1, 1225, 77, 978, -1, 484, 1230, -1, 816, 828,
3593 -1, 986, -1, -1, 833, 834, 52, 978, 54, 55,
3594 56, 57, -1, 309, -1, 986, 101, -1, 314, -1,
3595 849, -1, 107, 108, 109, -1, -1, 856, 1013, -1,
3596 -1, -1, 328, 329, -1, -1, -1, -1, 867, -1,
3597 -1, 870, 1013, 861, 2, 1089, 4, -1, 133, -1,
3598 -1, 136, -1, 1209, 1210, 1211, 1212, -1, -1, -1,
3599 783, 784, 1215, 1216, 1217, 1218, -1, -1, 153, -1,
3600 366, 77, -1, 902, 370, -1, 372, -1, -1, 1235,
3601 -1, -1, 911, 1236, 1069, -1, -1, -1, 94, 95,
3602 -1, -1, 581, -1, 583, 53, 54, -1, 1069, 57,
3603 -1, 52, 591, 54, 55, 56, 57, 58, -1, -1,
3604 -1, -1, 601, -1, 603, 604, -1, -1, -1, 52,
3605 -1, 54, 55, 56, 57, 83, 77, 56, 134, 135,
3606 136, 137, 138, -1, -1, -1, -1, -1, 96, 97,
3607 98, -1, 52, -1, 54, 55, 56, 57, -1, 638,
3608 101, -1, -1, -1, 877, 878, 107, 108, 109, 1144,
3609 -1, -1, -1, 1148, 887, 888, 889, -1, 101, 465,
3610 893, 894, -1, 1144, 107, -1, -1, 1148, -1, 1164,
3611 -1, 1010, 133, 1012, -1, 136, 482, -1, -1, -1,
3612 679, 101, -1, 1164, 683, 684, -1, 148, 687, -1,
3613 -1, -1, 691, 692, -1, -1, -1, -1, 697, 698,
3614 -1, -1, -1, -1, 1199, 1200, -1, -1, 1047, -1,
3615 -1, 1050, -1, -1, -1, -1, -1, -1, 1199, 1200,
3616 526, -1, -1, -1, -1, -1, -1, -1, 727, -1,
3617 729, 730, -1, -1, -1, -1, -1, -1, -1, -1,
3618 -1, 209, -1, -1, -1, 978, -1, -1, -1, 1088,
3619 -1, -1, -1, 986, -1, -1, -1, -1, 52, -1,
3620 54, 55, 56, 57, 58, -1, -1, -1, 207, -1,
3621 -1, 210, 211, 212, 242, 581, 244, 583, -1, -1,
3622 1013, -1, -1, 77, 1123, 1124, -1, -1, -1, 257,
3623 -1, 259, -1, -1, -1, -1, -1, 603, -1, -1,
3624 -1, -1, -1, -1, -1, -1, -1, 101, -1, -1,
3625 -1, -1, 280, 107, 108, 109, -1, 816, -1, 689,
3626 -1, -1, -1, 1162, 1163, -1, -1, -1, -1, 828,
3627 -1, -1, -1, -1, 833, 834, 1069, -1, -1, 133,
3628 -1, 309, 136, -1, 650, -1, 314, -1, -1, -1,
3629 849, -1, -1, -1, -1, -1, -1, 856, -1, -1,
3630 328, 329, -1, 331, -1, -1, -1, -1, 867, -1,
3631 -1, 870, -1, 679, -1, -1, 682, 683, -1, -1,
3632 -1, -1, -1, 689, -1, -1, -1, 326, -1, -1,
3633 -1, -1, 331, -1, -1, 1234, -1, -1, 366, -1,
3634 -1, -1, 370, 902, 372, -1, -1, -1, -1, -1,
3635 -1, 1144, 911, 783, 784, 1148, -1, -1, -1, -1,
3636 -1, 727, -1, -1, 730, -1, -1, -1, -1, -1,
3637 -1, 1164, -1, -1, -1, -1, -1, -1, -1, -1,
3638 -1, -1, -1, -1, -1, -1, 414, 415, -1, 52,
3639 -1, 54, 55, 56, 57, 58, -1, -1, -1, -1,
3640 -1, -1, -1, -1, -1, -1, 1199, 1200, -1, -1,
3641 -1, -1, -1, -1, 77, -1, -1, 783, 784, -1,
3642 -1, -1, -1, -1, -1, 424, 425, -1, 91, -1,
3643 -1, -1, -1, -1, 433, -1, -1, 465, 101, -1,
3644 -1, -1, -1, -1, 107, 108, 109, 877, 878, -1,
3645 -1, 1010, -1, 1012, 482, -1, -1, 887, 888, 889,
3646 -1, -1, 828, 893, 894, -1, -1, 833, -1, -1,
3647 133, 470, -1, 136, 473, -1, -1, -1, -1, -1,
3648 -1, -1, 2, 849, 4, -1, -1, -1, 1047, -1,
3649 856, 1050, -1, -1, -1, -1, -1, -1, 526, -1,
3650 -1, 867, -1, -1, 870, -1, -1, -1, -1, -1,
3651 -1, 877, 878, -1, -1, -1, -1, -1, -1, -1,
3652 519, 887, 888, 889, -1, -1, -1, 893, 894, 1088,
3653 -1, -1, 898, 53, 54, -1, 902, 57, -1, -1,
3654 -1, -1, -1, 689, -1, 911, -1, -1, 978, -1,
3655 -1, -1, -1, 581, -1, 583, 986, -1, -1, -1,
3656 -1, -1, -1, 83, 1123, 1124, -1, -1, -1, -1,
3657 -1, -1, -1, -1, -1, 603, 96, 97, 98, 99,
3658 -1, -1, -1, 1013, -1, -1, -1, -1, -1, -1,
3659 -1, -1, -1, -1, -1, -1, 962, 689, -1, -1,
3660 -1, -1, -1, 1162, 1163, -1, -1, -1, -1, -1,
3661 -1, -1, 978, -1, -1, -1, -1, -1, -1, 618,
3662 986, 620, 650, -1, -1, -1, -1, -1, -1, -1,
3663 -1, 659, -1, -1, 633, -1, 635, 783, 784, 1069,
3664 -1, -1, -1, -1, 1010, -1, 1012, 1013, -1, -1,
3665 -1, 679, -1, -1, 682, 683, 684, -1, -1, -1,
3666 -1, -1, -1, 691, 692, -1, -1, -1, -1, 697,
3667 698, -1, -1, -1, 2, 1234, 4, -1, -1, 678,
3668 -1, 1047, -1, -1, 1050, -1, -1, 1053, -1, 209,
3669 -1, 783, 784, -1, -1, -1, -1, -1, 2, 727,
3670 4, -1, 730, 1069, -1, -1, 705, -1, -1, -1,
3671 -1, -1, -1, -1, 1144, -1, -1, -1, 1148, -1,
3672 -1, 720, 242, -1, 244, 53, 54, -1, -1, -1,
3673 -1, 877, 878, -1, 1164, -1, -1, 257, -1, 259,
3674 -1, 887, 888, 889, -1, -1, -1, 893, 894, 53,
3675 54, -1, -1, -1, -1, -1, -1, 1123, 1124, -1,
3676 280, 689, -1, -1, -1, -1, -1, -1, 96, 1199,
3677 1200, 770, -1, -1, -1, -1, -1, -1, 1144, -1,
3678 -1, -1, 1148, -1, -1, 877, 878, -1, 816, 309,
3679 -1, -1, -1, -1, 314, 887, 888, 889, 1164, -1,
3680 828, 893, 894, -1, -1, 833, -1, -1, 328, 329,
3681 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3682 -1, 849, -1, -1, -1, -1, -1, -1, 856, -1,
3683 -1, -1, 978, 1199, 1200, -1, -1, -1, -1, 867,
3684 986, -1, 870, -1, 843, -1, 366, -1, -1, -1,
3685 370, -1, 372, -1, -1, 783, 784, -1, -1, -1,
3686 -1, -1, -1, 862, -1, -1, -1, 1013, 1234, -1,
3687 898, -1, -1, -1, 902, -1, -1, -1, -1, -1,
3688 -1, 209, -1, 911, -1, -1, 978, -1, -1, -1,
3689 -1, -1, -1, 689, 986, -1, -1, -1, -1, -1,
3690 -1, -1, -1, -1, -1, 209, -1, -1, -1, -1,
3691 -1, 910, -1, -1, 242, -1, 244, -1, -1, -1,
3692 -1, 1013, -1, 1069, -1, -1, -1, -1, -1, 257,
3693 -1, 259, -1, -1, 962, -1, -1, -1, 242, 938,
3694 244, -1, -1, -1, -1, 465, -1, -1, -1, 877,
3695 878, -1, -1, 257, -1, 259, -1, -1, -1, 887,
3696 888, 889, 482, -1, -1, 893, 894, -1, -1, -1,
3697 -1, -1, -1, -1, -1, -1, -1, 1069, -1, -1,
3698 -1, 309, 1010, -1, 1012, -1, 314, 783, 784, -1,
3699 -1, -1, -1, -1, -1, -1, -1, -1, 1144, -1,
3700 328, -1, 1148, 331, -1, 309, 526, -1, -1, -1,
3701 314, -1, -1, -1, -1, 1014, -1, -1, 1164, 1047,
3702 -1, -1, 1050, -1, 328, 1053, -1, 331, 1027, -1,
3703 -1, -1, -1, -1, -1, -1, -1, -1, 366, -1,
3704 -1, -1, 370, -1, 372, -1, -1, -1, -1, -1,
3705 978, -1, 1144, 1199, 1200, -1, 1148, -1, 986, -1,
3706 -1, 581, 366, 583, -1, -1, 370, -1, 372, -1,
3707 -1, -1, 1164, -1, -1, -1, -1, -1, -1, -1,
3708 -1, 877, 878, 603, -1, 1013, 414, 415, -1, -1,
3709 -1, 887, 888, 889, -1, 1123, 1124, 893, 894, -1,
3710 -1, -1, -1, -1, -1, -1, -1, 1199, 1200, -1,
3711 414, 415, -1, -1, -1, -1, -1, -1, -1, -1,
3712 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3713 650, -1, -1, -1, -1, -1, -1, 465, -1, 25,
3714 -1, 1069, -1, 0, -1, -1, -1, -1, -1, -1,
3715 -1, 8, 9, 10, -1, -1, 13, 14, 15, 679,
3716 17, 465, 682, 683, -1, -1, -1, -1, 25, 26,
3717 27, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3718 37, 38, 978, 40, 41, 42, 43, 44, -1, -1,
3719 986, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3720 86, 87, 88, 89, -1, -1, 1234, 727, 94, 95,
3721 730, 68, -1, -1, -1, -1, 1144, 1013, -1, -1,
3722 1148, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3723 -1, -1, -1, -1, -1, -1, 1164, -1, -1, 96,
3724 97, 127, -1, 129, 130, 131, 132, 133, 134, 135,
3725 136, 137, 138, 581, -1, 583, -1, -1, -1, -1,
3726 -1, -1, -1, 120, -1, -1, -1, -1, -1, -1,
3727 -1, 1199, 1200, 1069, -1, 603, -1, 581, -1, 583,
3728 -1, -1, -1, -1, -1, -1, 143, 144, -1, -1,
3729 -1, 148, 149, -1, 151, -1, 153, -1, -1, 603,
3730 -1, -1, -1, -1, -1, -1, -1, -1, 828, -1,
3731 -1, -1, -1, 833, -1, -1, -1, -1, -1, -1,
3732 -1, -1, -1, -1, -1, -1, -1, -1, -1, 849,
3733 -1, -1, -1, -1, -1, -1, 856, -1, -1, -1,
3734 -1, -1, -1, -1, -1, -1, -1, 867, 1144, -1,
3735 870, 679, 1148, -1, -1, 683, 684, -1, -1, -1,
3736 -1, -1, -1, 691, 692, -1, -1, -1, 1164, 697,
3737 698, -1, -1, -1, -1, 679, -1, -1, 898, 683,
3738 684, -1, 902, -1, -1, -1, -1, 691, 692, -1,
3739 -1, 911, -1, 697, 698, -1, -1, -1, -1, 727,
3740 -1, -1, 730, 1199, 1200, -1, -1, -1, -1, -1,
3741 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3742 -1, -1, -1, 727, -1, -1, 730, -1, -1, -1,
3743 16, 17, -1, -1, -1, -1, -1, -1, -1, -1,
3744 -1, -1, 962, -1, -1, -1, -1, -1, -1, -1,
3745 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3746 -1, -1, 48, 49, 50, 51, -1, -1, -1, 55,
3747 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3748 -1, -1, 68, 69, -1, -1, -1, -1, 816, -1,
3749 1010, -1, 1012, -1, -1, -1, -1, -1, -1, -1,
3750 828, -1, -1, -1, -1, 833, -1, -1, -1, -1,
3751 -1, -1, 816, -1, 100, -1, -1, -1, -1, -1,
3752 -1, 849, -1, -1, 828, -1, -1, 1047, 856, 833,
3753 1050, -1, -1, 1053, -1, -1, -1, -1, -1, 867,
3754 -1, -1, 870, -1, -1, 849, -1, -1, -1, -1,
3755 -1, -1, 856, -1, -1, -1, -1, -1, -1, -1,
3756 -1, -1, -1, 867, -1, -1, 870, -1, -1, -1,
3757 898, -1, -1, -1, 902, -1, -1, -1, -1, -1,
3758 -1, -1, -1, 911, 33, 34, 35, 36, -1, -1,
3759 -1, -1, -1, -1, -1, -1, -1, -1, 902, -1,
3760 49, 50, 51, 1123, 1124, -1, -1, 911, -1, -1,
3761 59, 60, 61, 62, 63, -1, -1, -1, -1, -1,
3762 -1, 207, -1, -1, 210, 211, 212, -1, 214, -1,
3763 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3764 -1, -1, -1, -1, 230, -1, 232, 233, -1, -1,
3765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3766 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
3767 -1, 77, 78, 79, 80, 81, 82, 83, 84, -1,
3768 86, 87, 1010, -1, 1012, -1, -1, -1, 94, 95,
3769 139, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3770 -1, -1, -1, -1, -1, -1, 1010, -1, 1012, -1,
3771 -1, -1, -1, -1, 1234, -1, -1, -1, -1, 1047,
3772 -1, -1, 1050, 129, 130, 131, 132, 133, 134, 135,
3773 136, 137, 138, -1, -1, -1, -1, -1, -1, -1,
3774 326, -1, -1, 1047, -1, 331, 1050, 333, 334, 335,
3775 336, 337, -1, -1, 340, 341, 342, 343, 344, 345,
3776 346, 347, 348, -1, -1, 351, 352, 353, 354, 355,
3777 356, 357, 358, 359, 360, -1, -1, -1, 364, -1,
3778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3779 -1, -1, -1, -1, -1, 1123, 1124, -1, -1, -1,
3780 -1, -1, -1, -1, 77, 78, 79, 80, 81, 82,
3781 83, 84, 85, 86, 87, 88, 89, -1, -1, 1123,
3782 1124, 94, 95, -1, -1, -1, -1, -1, 414, 415,
3783 -1, -1, -1, -1, -1, -1, -1, 423, 424, 425,
3784 -1, -1, -1, 429, -1, 431, 432, 433, -1, -1,
3785 -1, -1, -1, 439, 127, -1, 129, 130, 131, 132,
3786 133, 134, 135, 136, 137, 138, -1, -1, 454, -1,
3787 -1, -1, -1, 459, -1, -1, -1, -1, -1, -1,
3788 153, -1, -1, -1, 470, -1, -1, 473, -1, -1,
3789 -1, -1, -1, -1, -1, -1, -1, -1, 484, -1,
3790 -1, -1, -1, -1, -1, -1, 1234, -1, -1, -1,
3791 -1, -1, -1, -1, -1, -1, 502, 77, 78, 79,
3792 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3793 1234, -1, -1, 519, 94, 95, -1, -1, -1, -1,
3794 -1, -1, 0, -1, -1, -1, -1, -1, -1, -1,
3795 8, 9, 10, -1, -1, -1, 14, 15, -1, 17,
3796 -1, -1, -1, -1, -1, -1, -1, 25, 26, 129,
3797 130, 131, 132, 133, 134, 135, 136, 137, 138, 37,
3798 38, -1, 40, 41, 42, 43, 44, -1, -1, -1,
3799 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3800 -1, -1, -1, -1, -1, 591, -1, -1, -1, -1,
3801 68, -1, -1, -1, -1, 601, -1, -1, -1, 77,
3802 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3803 88, 89, 618, -1, 620, -1, 94, 95, 96, 97,
3804 -1, 99, -1, -1, -1, -1, -1, 633, -1, 635,
3805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3806 -1, -1, 120, -1, -1, -1, -1, -1, 126, 127,
3807 -1, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3808 138, -1, -1, -1, -1, 143, 144, 145, 146, -1,
3809 -1, 149, 678, 151, -1, 153, -1, -1, 684, 685,
3810 -1, 687, -1, -1, -1, 691, 692, -1, -1, -1,
3811 -1, 697, 698, -1, 33, 34, 35, 36, -1, 705,
3812 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3813 49, 50, 51, 52, 720, -1, -1, 56, -1, 58,
3814 59, 60, 61, 62, 63, -1, -1, -1, -1, -1,
3815 -1, -1, -1, -1, -1, -1, -1, -1, 77, 745,
3816 746, -1, 748, 749, -1, -1, -1, -1, -1, -1,
3817 -1, 90, 91, -1, -1, -1, -1, -1, -1, 98,
3818 -1, -1, 101, -1, 770, 104, 105, -1, 107, 108,
3819 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
3820 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3821 -1, -1, -1, 132, -1, -1, -1, -1, -1, -1,
3822 139, -1, -1, 809, -1, -1, -1, -1, -1, -1,
3823 816, -1, 0, 1, -1, 3, 4, 5, 6, 7,
3824 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
3825 18, 19, 20, 21, 22, 23, 24, 843, -1, -1,
3826 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
3827 -1, 39, -1, -1, -1, 861, 862, 45, 46, 47,
3828 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
3829 -1, 59, 60, 61, 62, 63, 64, 65, -1, -1,
3830 -1, -1, -1, -1, -1, -1, -1, 75, 76, -1,
3831 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3832 -1, -1, 90, 91, 910, -1, -1, -1, -1, -1,
3833 98, -1, -1, 101, 102, -1, 104, 105, -1, 107,
3834 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
3835 118, -1, 938, -1, -1, -1, -1, -1, -1, -1,
3836 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3837 -1, 139, 140, 141, -1, -1, -1, -1, 0, -1,
3838 -1, -1, -1, 151, -1, 153, 8, 9, 10, -1,
3839 -1, 13, 14, 15, -1, 17, -1, -1, -1, -1,
3840 -1, -1, -1, 25, 26, 27, 28, 29, -1, -1,
3841 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3842 42, 43, 44, -1, -1, -1, -1, -1, 1014, -1,
3843 -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
3844 -1, 1027, 86, 87, -1, -1, 68, -1, -1, -1,
3845 94, 95, -1, -1, -1, 77, 78, 79, 80, 81,
3846 82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
3847 -1, -1, 94, 95, 96, 97, -1, 99, 100, -1,
3848 -1, -1, -1, -1, 106, 129, 130, 131, 132, 133,
3849 134, 135, 136, 137, 138, -1, -1, -1, 120, -1,
3850 -1, 123, 1088, -1, 126, 127, 128, 129, 130, 131,
3851 132, 133, 134, 135, 136, 137, 138, -1, -1, -1,
3852 -1, 143, 144, 145, 146, 0, -1, 149, 150, 151,
3853 -1, 153, -1, 8, 9, 10, -1, -1, 13, 14,
3854 15, -1, 17, -1, -1, -1, -1, 44, -1, -1,
3855 25, -1, 27, 28, 29, -1, -1, -1, -1, -1,
3856 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
3857 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3858 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3859 87, 88, 89, 68, -1, -1, -1, 94, 95, -1,
3860 -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
3861 85, 86, 87, 88, 89, -1, -1, -1, -1, 94,
3862 95, 96, 97, -1, 99, 100, -1, -1, -1, -1,
3863 127, 106, 129, 130, 131, 132, 133, 134, 135, 136,
3864 137, 138, -1, -1, -1, 120, -1, -1, 123, 146,
3865 -1, 126, 127, 128, 129, 130, 131, 132, 133, 134,
3866 135, 136, 137, 138, -1, -1, -1, -1, -1, 144,
3867 145, 146, 0, -1, 149, 150, 151, -1, 153, -1,
3868 8, 9, 10, -1, -1, 13, 14, 15, -1, 17,
3869 -1, -1, -1, -1, 44, -1, -1, 25, -1, 27,
3870 28, 29, -1, -1, -1, -1, -1, -1, -1, 37,
3871 38, -1, 40, 41, 42, 43, 44, -1, -1, -1,
3872 -1, -1, -1, -1, -1, -1, -1, 77, 78, 79,
3873 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3874 68, -1, -1, -1, 94, 95, -1, -1, -1, 77,
3875 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
3876 88, 89, -1, -1, -1, -1, 94, 95, 96, 97,
3877 -1, 99, 100, -1, -1, -1, -1, 127, 106, 129,
3878 130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
3879 -1, -1, 120, -1, -1, 123, -1, -1, 126, 127,
3880 128, 129, 130, 131, 132, 133, 134, 135, 136, 137,
3881 138, -1, -1, -1, -1, -1, 144, 145, 146, 0,
3882 -1, 149, 150, 151, -1, 153, -1, 8, 9, 10,
3883 -1, -1, 13, 14, 15, -1, 17, -1, -1, -1,
3884 -1, -1, -1, -1, 25, 26, 27, 28, 29, -1,
3885 -1, -1, -1, -1, -1, -1, 37, 38, -1, 40,
3886 41, 42, 43, 44, -1, -1, -1, -1, -1, -1,
3887 -1, -1, -1, -1, 77, 78, 79, 80, 81, 82,
3888 83, 84, 85, 86, 87, 88, 89, 68, -1, -1,
3889 -1, 94, 95, -1, -1, -1, 77, 78, 79, 80,
3890 81, 82, 83, 84, 85, 86, 87, 88, 89, -1,
3891 -1, -1, -1, 94, 95, 96, 97, -1, -1, 100,
3892 -1, -1, -1, -1, 127, 106, 129, 130, 131, 132,
3893 133, 134, 135, 136, 137, 138, -1, -1, -1, 120,
3894 -1, -1, 123, -1, -1, -1, 127, 128, 129, 130,
3895 131, 132, 133, 134, 135, 136, 137, 138, -1, -1,
3896 -1, -1, 143, 144, 145, 146, 0, -1, 149, 150,
3897 151, -1, 153, -1, 8, 9, 10, -1, -1, 13,
3898 14, 15, -1, 17, -1, -1, -1, -1, -1, -1,
3899 -1, 25, 26, 27, 28, 29, -1, -1, -1, -1,
3900 -1, -1, -1, 37, 38, -1, 40, 41, 42, 43,
3901 44, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3902 -1, 77, 78, 79, 80, 81, 82, 83, -1, -1,
3903 86, 87, -1, -1, 68, -1, -1, -1, 94, 95,
3904 -1, -1, -1, 77, 78, 79, 80, 81, 82, 83,
3905 84, 85, 86, 87, 88, 89, -1, -1, -1, -1,
3906 94, 95, 96, 97, -1, -1, 100, -1, -1, -1,
3907 -1, -1, 106, 129, 130, 131, 132, 133, 134, 135,
3908 136, 137, 138, -1, -1, -1, 120, -1, -1, 123,
3909 -1, -1, -1, 127, 128, 129, 130, 131, 132, 133,
3910 134, 135, 136, 137, 138, -1, -1, -1, -1, 143,
3911 144, 145, 146, 0, -1, 149, 150, 151, -1, 153,
3912 -1, 8, 9, 10, -1, -1, 13, 14, 15, -1,
3913 17, -1, -1, -1, -1, -1, -1, -1, 25, -1,
3914 27, 28, 29, -1, -1, -1, -1, -1, -1, -1,
3915 37, 38, -1, 40, 41, 42, 43, 44, -1, -1,
3916 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3917 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3918 -1, 68, -1, -1, -1, -1, -1, -1, -1, -1,
3919 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
3920 87, 88, 89, -1, -1, -1, -1, 94, 95, 96,
3921 97, -1, 99, 100, -1, -1, -1, -1, -1, 106,
3922 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3923 -1, -1, -1, 120, -1, -1, 123, -1, -1, 126,
3924 127, 128, 129, 130, 131, 132, 133, 134, 135, 136,
3925 137, 138, -1, -1, -1, -1, -1, 144, 145, 146,
3926 0, -1, 149, 150, 151, -1, 153, -1, 8, 9,
3927 10, -1, -1, 13, 14, 15, -1, 17, -1, -1,
3928 -1, -1, -1, -1, -1, 25, 26, 27, 28, -1,
3929 -1, -1, -1, -1, -1, -1, -1, 37, 38, -1,
3930 40, 41, 42, 43, 44, -1, -1, -1, -1, -1,
3931 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3932 -1, -1, -1, -1, -1, -1, -1, -1, 68, -1,
3933 -1, -1, -1, -1, -1, -1, -1, 77, 78, 79,
3934 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
3935 -1, -1, -1, -1, 94, 95, 96, 97, -1, -1,
3936 100, -1, -1, -1, -1, -1, 106, -1, -1, -1,
3937 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3938 120, -1, -1, -1, -1, -1, -1, 127, -1, 129,
3939 130, 131, 132, 133, 134, 135, 136, 137, 138, -1,
3940 -1, -1, -1, 143, 144, 145, 146, 0, 148, 149,
3941 150, 151, -1, 153, -1, 8, 9, 10, -1, -1,
3942 13, 14, 15, -1, 17, -1, -1, -1, -1, -1,
3943 -1, -1, 25, -1, 27, 28, 29, -1, -1, -1,
3944 -1, -1, -1, -1, 37, 38, -1, 40, 41, 42,
3945 43, 44, -1, -1, -1, -1, -1, -1, -1, -1,
3946 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3947 -1, -1, -1, -1, -1, 68, -1, -1, -1, -1,
3948 -1, -1, -1, -1, 77, 78, 79, 80, 81, 82,
3949 83, 84, 85, 86, 87, 88, 89, -1, -1, -1,
3950 -1, 94, 95, 96, 97, -1, -1, 100, -1, -1,
3951 -1, -1, -1, 106, -1, -1, -1, -1, -1, -1,
3952 -1, -1, -1, -1, -1, -1, -1, 120, -1, -1,
3953 123, -1, -1, -1, 127, 128, 129, 130, 131, 132,
3954 133, 134, 135, 136, 137, 138, -1, -1, -1, -1,
3955 -1, 144, 145, 146, 0, -1, 149, 150, 151, -1,
3956 153, -1, 8, 9, 10, -1, -1, 13, 14, 15,
3957 -1, 17, -1, -1, -1, -1, -1, -1, -1, 25,
3958 26, 27, 28, -1, -1, -1, -1, -1, -1, -1,
3959 -1, 37, 38, -1, 40, 41, 42, 43, 44, -1,
3960 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3961 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3962 -1, -1, 68, -1, -1, -1, -1, -1, -1, -1,
3963 -1, 77, 78, 79, 80, 81, 82, 83, 84, 85,
3964 86, 87, 88, 89, -1, -1, -1, -1, 94, 95,
3965 96, 97, -1, -1, 100, -1, -1, -1, -1, -1,
3966 106, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3967 -1, -1, -1, -1, 120, -1, -1, -1, -1, -1,
3968 -1, 127, -1, 129, 130, 131, 132, 133, 134, 135,
3969 136, 137, 138, -1, -1, -1, -1, 143, 144, 145,
3970 146, 0, 148, 149, 150, 151, -1, 153, -1, 8,
3971 9, 10, -1, -1, 13, 14, 15, -1, 17, -1,
3972 -1, -1, -1, -1, -1, -1, 25, -1, 27, 28,
3973 -1, -1, -1, -1, -1, -1, -1, -1, 37, 38,
3974 -1, 40, 41, 42, 43, 44, -1, -1, -1, -1,
3975 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3976 -1, -1, -1, -1, -1, -1, -1, -1, -1, 68,
3977 -1, -1, -1, -1, -1, -1, -1, -1, 77, 78,
3978 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
3979 89, -1, -1, -1, -1, 94, 95, 96, 97, -1,
3980 -1, 100, -1, -1, -1, -1, -1, 106, -1, -1,
3981 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3982 -1, 120, -1, -1, -1, -1, -1, -1, 127, -1,
3983 129, 130, 131, 132, 133, 134, 135, 136, 137, 138,
3984 -1, -1, -1, -1, -1, 144, 145, 146, 0, 148,
3985 149, 150, 151, -1, 153, -1, 8, 9, 10, -1,
3986 -1, -1, 14, 15, -1, 17, -1, -1, -1, -1,
3987 -1, -1, -1, 25, 26, -1, -1, -1, -1, -1,
3988 -1, -1, -1, -1, -1, 37, 38, -1, 40, 41,
3989 42, 43, 44, -1, -1, -1, -1, -1, -1, -1,
3990 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3991 -1, -1, -1, -1, -1, -1, 68, -1, -1, -1,
3992 -1, -1, -1, -1, -1, 77, 78, 79, 80, 81,
3993 82, 83, 84, 85, 86, 87, 88, 89, -1, -1,
3994 -1, -1, 94, 95, 96, 97, -1, 99, -1, -1,
3995 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
3996 -1, -1, -1, -1, -1, -1, -1, -1, 120, -1,
3997 -1, -1, -1, -1, 126, 127, -1, 129, 130, 131,
3998 132, 133, 134, 135, 136, 137, 138, -1, -1, -1,
3999 -1, 143, 144, 145, 146, 0, -1, 149, -1, 151,
4000 -1, 153, -1, 8, 9, 10, -1, -1, -1, 14,
4001 15, -1, 17, -1, -1, -1, -1, -1, -1, -1,
4002 25, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4003 -1, -1, 37, 38, -1, 40, 41, 42, 43, 44,
4004 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4005 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4006 -1, -1, -1, 68, -1, -1, -1, -1, -1, -1,
4007 -1, -1, 77, 78, 79, 80, 81, 82, 83, 84,
4008 85, 86, 87, 88, 89, -1, -1, -1, -1, 94,
4009 95, 96, 97, -1, 99, -1, -1, -1, -1, -1,
4010 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4011 -1, -1, -1, -1, -1, 120, -1, -1, -1, -1,
4012 -1, 126, 127, -1, 129, 130, 131, 132, 133, 134,
4013 135, 136, 137, 138, -1, -1, -1, -1, -1, 144,
4014 145, 146, 0, -1, 149, -1, 151, -1, 153, -1,
4015 8, 9, 10, -1, -1, -1, 14, 15, -1, 17,
4016 -1, -1, -1, -1, -1, -1, -1, 25, -1, -1,
4017 -1, -1, -1, -1, -1, -1, -1, -1, -1, 37,
4018 38, -1, 40, 41, 42, 43, 44, -1, -1, -1,
4019 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4020 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4021 68, -1, -1, -1, -1, -1, -1, -1, -1, 77,
4022 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
4023 88, 89, -1, -1, -1, -1, 94, 95, 96, 97,
4024 -1, 99, -1, -1, -1, -1, -1, -1, -1, -1,
4025 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4026 -1, -1, 120, -1, -1, -1, -1, -1, 126, 127,
4027 -1, 129, 130, 131, 132, 133, 134, 135, 136, 137,
4028 138, -1, -1, -1, -1, -1, 144, 145, 146, -1,
4029 -1, 149, -1, 151, 1, 153, 3, 4, 5, 6,
4030 7, 8, 9, 10, 11, 12, -1, -1, 15, 16,
4031 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4032 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4033 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
4034 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4035 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
4036 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4037 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4038 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4039 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4040 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4041 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4042 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4043 -1, -1, 139, 140, 141, -1, -1, -1, -1, -1,
4044 -1, -1, -1, -1, 151, 1, 153, 3, 4, 5,
4045 6, 7, -1, -1, 10, 11, 12, -1, 14, 15,
4046 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4047 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4048 36, -1, -1, 39, -1, -1, -1, -1, -1, 45,
4049 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4050 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
4051 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4052 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4053 -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
4054 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4055 -1, 107, -1, -1, 110, 111, 112, 113, 114, 115,
4056 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
4057 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4058 -1, -1, -1, 139, 140, 141, -1, -1, -1, -1,
4059 -1, -1, -1, -1, -1, 151, 1, 153, 3, 4,
4060 5, 6, 7, -1, -1, 10, 11, 12, -1, -1,
4061 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
4062 -1, -1, -1, -1, -1, 30, 31, 32, 33, 34,
4063 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4064 45, 46, 47, 48, 49, 50, 51, 52, 53, 54,
4065 55, 56, 57, -1, 59, 60, 61, 62, 63, 64,
4066 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4067 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
4068 -1, -1, -1, -1, -1, 90, 91, -1, -1, -1,
4069 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
4070 105, -1, 107, -1, -1, 110, 111, 112, 113, 114,
4071 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
4072 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4073 -1, -1, -1, -1, 139, 140, 141, -1, -1, -1,
4074 -1, -1, -1, -1, -1, -1, 151, 1, 153, 3,
4075 4, 5, 6, 7, -1, -1, 10, 11, 12, -1,
4076 -1, 15, 16, -1, 18, 19, 20, 21, 22, 23,
4077 24, 25, -1, -1, -1, -1, 30, 31, 32, 33,
4078 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4079 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
4080 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
4081 64, 65, -1, -1, -1, -1, -1, -1, -1, -1,
4082 -1, 75, 76, -1, -1, -1, -1, -1, -1, -1,
4083 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
4084 -1, -1, -1, -1, 98, -1, -1, 101, 102, -1,
4085 104, 105, -1, 107, -1, -1, 110, 111, 112, 113,
4086 114, 115, 116, 117, 118, -1, -1, -1, -1, -1,
4087 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4088 -1, -1, -1, -1, -1, 139, 140, 141, -1, -1,
4089 -1, -1, -1, -1, -1, -1, -1, 151, 1, 153,
4090 3, 4, 5, 6, 7, -1, -1, 10, 11, 12,
4091 -1, -1, 15, 16, -1, 18, 19, 20, 21, 22,
4092 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4093 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4094 -1, -1, 45, 46, 47, 48, 49, 50, 51, 52,
4095 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4096 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4097 -1, -1, 75, 76, -1, -1, -1, -1, -1, -1,
4098 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
4099 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4100 -1, 104, 105, -1, 107, -1, -1, 110, 111, 112,
4101 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4102 -1, -1, -1, -1, 1, -1, 3, 4, 5, 6,
4103 7, -1, 9, 10, 11, 12, 139, 140, 141, 16,
4104 -1, 18, 19, 20, 21, 22, 23, 24, 151, -1,
4105 153, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4106 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
4107 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4108 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
4109 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4110 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4111 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4112 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4113 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4114 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4115 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
4116 11, 12, 139, 140, 141, 16, -1, 18, 19, 20,
4117 21, 22, 23, 24, 151, -1, 153, -1, -1, 30,
4118 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4119 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4120 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4121 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4122 -1, -1, -1, -1, 75, 76, -1, -1, -1, -1,
4123 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
4124 91, -1, -1, -1, -1, -1, -1, 98, -1, -1,
4125 101, 102, -1, 104, 105, -1, 107, -1, -1, 110,
4126 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4127 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4128 -1, -1, -1, -1, -1, -1, -1, -1, 139, 140,
4129 141, -1, -1, -1, -1, -1, -1, -1, 149, -1,
4130 151, 1, 153, 3, 4, 5, 6, 7, -1, -1,
4131 -1, 11, 12, -1, -1, -1, 16, -1, 18, 19,
4132 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4133 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4134 -1, -1, -1, -1, -1, 45, 46, 47, 48, 49,
4135 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4136 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
4137 -1, -1, -1, -1, -1, 75, 76, -1, -1, -1,
4138 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4139 90, 91, -1, -1, -1, -1, -1, -1, 98, -1,
4140 -1, 101, 102, -1, 104, 105, -1, 107, -1, -1,
4141 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4142 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4143 -1, -1, -1, -1, -1, -1, -1, -1, -1, 139,
4144 140, 141, -1, -1, -1, -1, -1, -1, -1, 149,
4145 -1, 151, 1, 153, 3, 4, 5, 6, 7, -1,
4146 -1, -1, 11, 12, -1, -1, -1, 16, -1, 18,
4147 19, 20, 21, 22, 23, 24, -1, -1, -1, -1,
4148 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4149 39, -1, -1, -1, -1, -1, 45, 46, 47, 48,
4150 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4151 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
4152 -1, -1, -1, -1, -1, -1, 75, 76, -1, -1,
4153 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4154 -1, 90, 91, -1, -1, -1, -1, -1, -1, 98,
4155 -1, -1, 101, 102, -1, 104, 105, -1, 107, -1,
4156 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
4157 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4158 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4159 139, 140, 141, -1, -1, 144, -1, -1, -1, -1,
4160 -1, -1, 151, 1, 153, 3, 4, 5, 6, 7,
4161 -1, -1, -1, 11, 12, -1, -1, -1, 16, -1,
4162 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4163 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4164 -1, 39, -1, -1, -1, -1, -1, 45, 46, 47,
4165 48, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4166 -1, 59, 60, 61, 62, 63, 64, 65, -1, -1,
4167 -1, -1, -1, -1, -1, -1, -1, 75, 76, -1,
4168 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4169 -1, -1, 90, 91, -1, -1, -1, -1, -1, -1,
4170 98, -1, -1, 101, 102, -1, 104, 105, -1, 107,
4171 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
4172 118, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4173 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4174 -1, 139, 140, 141, -1, -1, 144, -1, -1, -1,
4175 -1, -1, -1, 151, 1, 153, 3, 4, 5, 6,
4176 7, -1, -1, 10, 11, 12, -1, -1, -1, 16,
4177 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4178 -1, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4179 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
4180 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4181 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
4182 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4183 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4184 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4185 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4186 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4187 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4188 1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
4189 11, 12, 139, 140, 141, 16, -1, 18, 19, 20,
4190 21, 22, 23, 24, 151, -1, 153, -1, -1, 30,
4191 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4192 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4193 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4194 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4195 -1, -1, -1, -1, 75, 76, -1, -1, -1, -1,
4196 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
4197 91, -1, -1, -1, -1, -1, -1, 98, -1, -1,
4198 101, 102, -1, 104, 105, -1, 107, -1, -1, 110,
4199 111, 112, 113, 114, 115, 116, 117, 118, -1, 120,
4200 -1, -1, -1, -1, -1, -1, -1, -1, 3, 4,
4201 5, -1, 7, -1, -1, -1, 11, 12, 139, 140,
4202 141, 16, -1, 18, 19, 20, 21, 22, 23, 24,
4203 151, -1, 153, -1, -1, 30, 31, 32, 33, 34,
4204 35, 36, -1, -1, 39, -1, -1, -1, -1, -1,
4205 -1, 46, -1, -1, 49, 50, 51, 52, 53, 54,
4206 55, 56, 57, 58, 59, 60, 61, 62, 63, 64,
4207 65, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4208 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
4209 -1, -1, -1, -1, -1, 90, 91, -1, -1, -1,
4210 -1, -1, -1, 98, -1, -1, 101, 102, -1, 104,
4211 105, -1, 107, 108, 109, 110, 111, 112, 113, 114,
4212 115, 116, 117, 118, -1, -1, -1, -1, -1, -1,
4213 -1, -1, -1, -1, 3, 4, 5, -1, 7, -1,
4214 -1, -1, 11, 12, 139, 140, 141, 16, -1, 18,
4215 19, 20, 21, 22, 23, 24, -1, -1, 153, -1,
4216 -1, 30, 31, 32, 33, 34, 35, 36, -1, -1,
4217 39, -1, -1, -1, -1, -1, -1, 46, -1, -1,
4218 49, 50, 51, 52, 53, 54, 55, 56, 57, -1,
4219 59, 60, 61, 62, 63, 64, 65, -1, -1, -1,
4220 -1, -1, -1, -1, -1, -1, 75, 76, -1, -1,
4221 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4222 -1, 90, 91, -1, -1, -1, -1, -1, -1, 98,
4223 -1, -1, 101, 102, -1, 104, 105, -1, -1, -1,
4224 -1, 110, 111, 112, 113, 114, 115, 116, 117, 118,
4225 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4226 3, 4, 5, -1, 7, -1, -1, -1, 11, 12,
4227 139, 140, 141, 16, -1, 18, 19, 20, 21, 22,
4228 23, 24, 151, -1, 153, -1, -1, 30, 31, 32,
4229 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4230 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4231 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4232 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4233 -1, -1, 75, 76, -1, -1, -1, -1, -1, -1,
4234 -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
4235 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4236 -1, 104, 105, -1, -1, -1, -1, 110, 111, 112,
4237 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4238 -1, -1, -1, -1, -1, -1, 3, 4, 5, 6,
4239 7, -1, -1, -1, 11, 12, 139, 140, 141, 16,
4240 -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
4241 153, -1, -1, 30, 31, 32, 33, 34, 35, 36,
4242 -1, -1, 39, -1, -1, -1, -1, -1, 45, 46,
4243 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4244 57, -1, 59, 60, 61, 62, 63, 64, 65, -1,
4245 -1, -1, -1, -1, -1, -1, -1, -1, 75, 76,
4246 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4247 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4248 -1, 98, -1, -1, 101, 102, -1, 104, 105, -1,
4249 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4250 117, 118, -1, -1, -1, -1, -1, -1, -1, -1,
4251 -1, -1, 3, 4, 5, 6, 7, -1, -1, -1,
4252 11, 12, 139, 140, 141, 16, -1, 18, 19, 20,
4253 21, 22, 23, 24, 151, -1, -1, -1, -1, 30,
4254 31, 32, 33, 34, 35, 36, -1, -1, 39, -1,
4255 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4256 51, 52, 53, 54, 55, 56, 57, -1, 59, 60,
4257 61, 62, 63, 64, 65, -1, -1, -1, -1, -1,
4258 -1, -1, -1, -1, 75, 76, -1, -1, -1, -1,
4259 -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
4260 91, -1, -1, -1, -1, -1, -1, 98, -1, -1,
4261 101, 102, -1, 104, 105, -1, 107, -1, -1, 110,
4262 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4263 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4264 -1, -1, -1, -1, -1, -1, -1, -1, 139, 140,
4265 141, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4266 151, 3, 4, 5, 6, 7, 8, 9, 10, 11,
4267 12, 13, 14, 15, 16, 17, 18, 19, 20, 21,
4268 22, 23, 24, 25, 26, -1, -1, -1, 30, 31,
4269 32, 33, 34, 35, 36, 37, 38, 39, -1, -1,
4270 -1, -1, -1, 45, 46, 47, 48, 49, 50, 51,
4271 52, 53, 54, 55, 56, 57, -1, -1, -1, -1,
4272 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4273 -1, -1, -1, 75, 76, 77, 78, 79, 80, 81,
4274 82, 83, -1, -1, 86, 87, -1, -1, -1, -1,
4275 92, 93, 94, 95, -1, -1, -1, -1, -1, -1,
4276 -1, -1, -1, -1, -1, 107, 108, -1, -1, -1,
4277 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4278 -1, -1, -1, -1, -1, -1, -1, 129, 130, 131,
4279 132, 133, 134, 135, 136, 137, 138, -1, 140, 141,
4280 -1, -1, -1, -1, -1, 147, 148, 3, 4, 5,
4281 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
4282 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
4283 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4284 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
4285 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
4286 56, 57, -1, -1, -1, -1, -1, -1, -1, -1,
4287 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4288 76, 77, 78, 79, 80, 81, 82, 83, -1, -1,
4289 86, 87, -1, -1, -1, -1, 92, 93, 94, 95,
4290 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4291 -1, 107, 108, -1, -1, -1, -1, -1, -1, -1,
4292 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4293 -1, -1, -1, 129, 130, 131, 132, 133, 134, 135,
4294 136, 137, 138, -1, 140, 141, -1, -1, -1, -1,
4295 -1, 147, 3, 4, 5, 6, 7, 8, 9, 10,
4296 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
4297 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
4298 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
4299 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4300 51, 52, 53, 54, -1, 56, -1, -1, -1, -1,
4301 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4302 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4303 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4304 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4305 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4306 111, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4307 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4308 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4309 141, -1, -1, -1, -1, -1, 147, 3, 4, 5,
4310 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
4311 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
4312 26, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4313 36, 37, 38, 39, -1, -1, -1, -1, -1, 45,
4314 46, 47, 48, 49, 50, 51, 52, 53, -1, -1,
4315 56, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4316 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4317 76, 77, 78, 79, 80, 81, 82, 83, -1, -1,
4318 86, 87, -1, -1, -1, -1, 92, 93, 94, 95,
4319 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4320 -1, 107, 108, -1, -1, 111, -1, -1, -1, -1,
4321 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4322 -1, -1, -1, 129, 130, 131, 132, 133, 134, 135,
4323 136, 137, 138, -1, 140, 141, -1, -1, -1, -1,
4324 -1, 147, 3, 4, 5, 6, 7, 8, 9, 10,
4325 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
4326 21, 22, 23, 24, 25, 26, -1, -1, -1, 30,
4327 31, 32, 33, 34, 35, 36, 37, 38, 39, -1,
4328 -1, -1, -1, -1, 45, 46, 47, 48, 49, 50,
4329 51, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4330 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4331 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4332 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4333 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4334 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4335 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4336 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4337 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4338 141, 3, 4, 5, -1, 7, 147, -1, -1, 11,
4339 12, -1, -1, -1, 16, -1, 18, 19, 20, 21,
4340 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4341 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4342 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4343 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4344 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4345 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4346 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4347 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4348 102, -1, 104, 105, -1, -1, -1, -1, 110, 111,
4349 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4350 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4351 3, 4, 5, -1, 7, -1, -1, 139, 11, 12,
4352 -1, -1, -1, 16, 146, 18, 19, 20, 21, 22,
4353 23, 24, -1, -1, -1, -1, -1, 30, 31, 32,
4354 33, 34, 35, 36, -1, -1, 39, -1, -1, -1,
4355 -1, -1, -1, 46, -1, -1, 49, 50, 51, 52,
4356 53, 54, 55, 56, 57, -1, 59, 60, 61, 62,
4357 63, 64, 65, -1, -1, -1, -1, -1, -1, -1,
4358 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4359 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4360 -1, -1, -1, -1, -1, 98, -1, -1, 101, 102,
4361 -1, 104, 105, -1, -1, -1, -1, 110, 111, 112,
4362 113, 114, 115, 116, 117, 118, -1, -1, -1, -1,
4363 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4364 4, 5, 6, 7, -1, -1, 139, 11, 12, -1,
4365 -1, -1, 16, 146, 18, 19, 20, 21, 22, 23,
4366 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4367 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4368 -1, 45, 46, 47, 48, 49, 50, 51, 52, 53,
4369 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
4370 64, 65, -1, -1, -1, -1, -1, -1, -1, -1,
4371 -1, 75, 76, -1, -1, -1, -1, -1, -1, -1,
4372 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
4373 -1, -1, -1, -1, 98, -1, -1, 101, 102, -1,
4374 104, 105, -1, 107, -1, -1, 110, 111, 112, 113,
4375 114, 115, 116, 117, 118, -1, -1, -1, -1, -1,
4376 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4377 -1, -1, -1, 11, 12, 139, 140, 141, 16, -1,
4378 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4379 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4380 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4381 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4382 58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
4383 -1, -1, -1, -1, -1, -1, -1, 75, 76, -1,
4384 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4385 -1, -1, 90, 91, -1, -1, -1, -1, -1, -1,
4386 98, -1, -1, 101, 102, -1, 104, 105, -1, 107,
4387 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
4388 118, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4389 -1, 3, 4, 5, 6, 7, -1, -1, -1, 11,
4390 12, 139, 140, 141, 16, -1, 18, 19, 20, 21,
4391 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4392 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4393 -1, -1, -1, 45, 46, -1, 48, 49, 50, 51,
4394 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4395 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4396 -1, -1, -1, 75, 76, -1, -1, -1, -1, -1,
4397 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
4398 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4399 102, -1, 104, 105, -1, 107, -1, -1, 110, 111,
4400 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4401 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4402 -1, 7, -1, -1, -1, 11, 12, 139, 140, 141,
4403 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4404 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4405 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4406 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4407 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
4408 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4409 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4410 -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
4411 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4412 -1, 107, 108, 109, 110, 111, 112, 113, 114, 115,
4413 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
4414 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4415 -1, 11, 12, 139, 140, 141, 16, -1, 18, 19,
4416 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4417 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4418 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4419 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
4420 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
4421 -1, -1, -1, -1, -1, 75, 76, -1, -1, -1,
4422 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4423 90, 91, -1, -1, -1, -1, -1, -1, 98, -1,
4424 -1, 101, 102, -1, 104, 105, -1, 107, 108, 109,
4425 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4426 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4427 4, 5, -1, 7, -1, -1, -1, 11, 12, 139,
4428 140, 141, 16, -1, 18, 19, 20, 21, 22, 23,
4429 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4430 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4431 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4432 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
4433 64, 65, -1, -1, -1, -1, -1, -1, -1, -1,
4434 -1, 75, 76, -1, -1, -1, -1, -1, -1, -1,
4435 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
4436 -1, -1, -1, -1, 98, -1, -1, 101, 102, -1,
4437 104, 105, -1, 107, 108, -1, 110, 111, 112, 113,
4438 114, 115, 116, 117, 118, -1, -1, -1, -1, -1,
4439 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4440 -1, -1, -1, 11, 12, 139, 140, 141, 16, -1,
4441 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4442 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4443 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4444 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4445 58, 59, 60, 61, 62, 63, 64, 65, -1, -1,
4446 -1, -1, -1, -1, -1, -1, -1, 75, 76, -1,
4447 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4448 -1, -1, 90, 91, -1, -1, -1, -1, -1, -1,
4449 98, -1, -1, 101, 102, -1, 104, 105, -1, -1,
4450 108, 109, 110, 111, 112, 113, 114, 115, 116, 117,
4451 118, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4452 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4453 12, 139, 140, 141, 16, -1, 18, 19, 20, 21,
4454 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4455 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4456 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4457 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
4458 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4459 -1, -1, -1, 75, 76, -1, -1, -1, -1, -1,
4460 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
4461 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4462 102, -1, 104, 105, -1, 107, 108, -1, 110, 111,
4463 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4464 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4465 -1, 7, -1, -1, -1, 11, 12, 139, 140, 141,
4466 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4467 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4468 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4469 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4470 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
4471 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4472 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4473 -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
4474 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4475 -1, -1, 108, -1, 110, 111, 112, 113, 114, 115,
4476 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
4477 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4478 -1, 11, 12, 139, 140, 141, 16, -1, 18, 19,
4479 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4480 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4481 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4482 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4483 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
4484 -1, -1, -1, -1, -1, 75, 76, -1, -1, -1,
4485 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4486 90, 91, -1, -1, -1, -1, -1, -1, 98, -1,
4487 -1, 101, 102, -1, 104, 105, -1, 107, -1, -1,
4488 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4489 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4490 4, 5, -1, 7, -1, -1, -1, 11, 12, 139,
4491 140, 141, 16, -1, 18, 19, 20, 21, 22, 23,
4492 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4493 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4494 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4495 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
4496 64, 65, -1, -1, -1, -1, -1, -1, -1, -1,
4497 -1, 75, 76, -1, -1, -1, -1, -1, -1, -1,
4498 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
4499 -1, -1, -1, -1, 98, -1, -1, 101, 102, -1,
4500 104, 105, -1, 107, -1, -1, 110, 111, 112, 113,
4501 114, 115, 116, 117, 118, -1, -1, -1, -1, -1,
4502 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4503 -1, -1, -1, 11, 12, 139, 140, 141, 16, -1,
4504 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4505 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4506 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4507 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4508 -1, 59, 60, 61, 62, 63, 64, 65, -1, -1,
4509 -1, -1, -1, -1, -1, -1, -1, 75, 76, -1,
4510 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4511 -1, -1, 90, 91, -1, -1, -1, -1, -1, -1,
4512 98, -1, -1, 101, 102, -1, 104, 105, -1, 107,
4513 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
4514 118, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4515 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4516 12, 139, 140, 141, 16, -1, 18, 19, 20, 21,
4517 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4518 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4519 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4520 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4521 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4522 -1, -1, -1, 75, 76, -1, -1, -1, -1, -1,
4523 -1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
4524 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4525 102, -1, 104, 105, -1, 107, -1, -1, 110, 111,
4526 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4527 -1, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4528 -1, 7, -1, -1, -1, 11, 12, 139, 140, 141,
4529 16, -1, 18, 19, 20, 21, 22, 23, 24, -1,
4530 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4531 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4532 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4533 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
4534 -1, -1, -1, -1, -1, -1, -1, -1, -1, 75,
4535 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4536 -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
4537 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4538 -1, 107, -1, -1, 110, 111, 112, 113, 114, 115,
4539 116, 117, 118, -1, -1, -1, -1, -1, -1, -1,
4540 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4541 -1, 11, 12, 139, 140, 141, 16, -1, 18, 19,
4542 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4543 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4544 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4545 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4546 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
4547 -1, -1, -1, -1, -1, 75, 76, -1, -1, -1,
4548 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4549 90, 91, -1, -1, -1, -1, -1, -1, 98, -1,
4550 -1, 101, 102, -1, 104, 105, -1, -1, -1, -1,
4551 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4552 -1, -1, -1, -1, -1, -1, -1, -1, -1, 3,
4553 4, 5, -1, 7, -1, -1, -1, 11, 12, 139,
4554 140, 141, 16, -1, 18, 19, 20, 21, 22, 23,
4555 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4556 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4557 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4558 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
4559 64, 65, -1, -1, -1, -1, -1, -1, -1, -1,
4560 -1, 75, 76, -1, -1, -1, -1, -1, -1, -1,
4561 -1, -1, -1, -1, -1, -1, 90, 91, -1, -1,
4562 -1, -1, -1, -1, 98, -1, -1, 101, 102, -1,
4563 104, 105, -1, -1, -1, -1, 110, 111, 112, 113,
4564 114, 115, 116, 117, 118, -1, -1, -1, -1, -1,
4565 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4566 -1, -1, -1, 11, 12, 139, 140, 141, 16, -1,
4567 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4568 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4569 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4570 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4571 -1, 59, 60, 61, 62, 63, 64, 65, -1, -1,
4572 -1, -1, -1, -1, -1, -1, -1, 75, 76, -1,
4573 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4574 -1, -1, 90, 91, -1, -1, -1, -1, -1, -1,
4575 98, -1, -1, 101, 102, -1, 104, 105, -1, -1,
4576 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
4577 118, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4578 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4579 12, 139, 140, 141, 16, -1, 18, 19, 20, 21,
4580 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4581 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4582 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4583 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4584 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4585 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4586 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4587 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4588 102, -1, 104, 105, -1, 107, -1, -1, 110, 111,
4589 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4590 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4591 -1, 11, 12, -1, -1, -1, 16, 139, 18, 19,
4592 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4593 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4594 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4595 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4596 60, 61, 62, 63, 64, 65, -1, -1, -1, -1,
4597 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4598 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4599 -1, -1, -1, -1, -1, -1, -1, -1, 98, -1,
4600 -1, 101, 102, -1, 104, 105, -1, 107, -1, -1,
4601 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4602 -1, -1, -1, -1, -1, 3, 4, 5, -1, 7,
4603 -1, -1, -1, 11, 12, -1, -1, -1, 16, 139,
4604 18, 19, 20, 21, 22, 23, 24, -1, -1, -1,
4605 -1, -1, 30, 31, 32, 33, 34, 35, 36, -1,
4606 -1, 39, -1, -1, -1, -1, -1, -1, 46, -1,
4607 -1, 49, 50, 51, 52, 53, 54, 55, 56, 57,
4608 -1, 59, 60, 61, 62, 63, 64, 65, -1, -1,
4609 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4610 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4611 -1, -1, -1, -1, -1, -1, 94, -1, -1, -1,
4612 98, -1, -1, 101, 102, -1, 104, 105, -1, -1,
4613 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
4614 118, -1, -1, -1, -1, -1, -1, 3, 4, 5,
4615 -1, 7, -1, -1, -1, 11, 12, -1, -1, -1,
4616 16, 139, 18, 19, 20, 21, 22, 23, 24, -1,
4617 -1, -1, -1, -1, 30, 31, 32, 33, 34, 35,
4618 36, -1, -1, 39, -1, -1, -1, -1, -1, -1,
4619 46, -1, -1, 49, 50, 51, 52, 53, 54, 55,
4620 56, 57, -1, 59, 60, 61, 62, 63, 64, 65,
4621 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4622 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4623 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4624 -1, -1, 98, -1, -1, 101, 102, -1, 104, 105,
4625 -1, -1, -1, -1, 110, 111, 112, 113, 114, 115,
4626 116, 117, 118, -1, -1, -1, -1, -1, -1, 3,
4627 4, 5, -1, 7, -1, -1, -1, 11, 12, -1,
4628 -1, -1, 16, 139, 18, 19, 20, 21, 22, 23,
4629 24, -1, -1, -1, -1, -1, 30, 31, 32, 33,
4630 34, 35, 36, -1, -1, 39, -1, -1, -1, -1,
4631 -1, -1, 46, -1, -1, 49, 50, 51, 52, 53,
4632 54, 55, 56, 57, -1, 59, 60, 61, 62, 63,
4633 64, 65, -1, -1, -1, -1, -1, -1, -1, -1,
4634 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4635 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4636 -1, -1, -1, -1, 98, -1, -1, 101, 102, -1,
4637 104, 105, -1, -1, -1, -1, 110, 111, 112, 113,
4638 114, 115, 116, 117, 118, -1, -1, -1, -1, -1,
4639 -1, 3, 4, 5, -1, 7, -1, -1, -1, 11,
4640 12, -1, -1, -1, 16, 139, 18, 19, 20, 21,
4641 22, 23, 24, -1, -1, -1, -1, -1, 30, 31,
4642 32, 33, 34, 35, 36, -1, -1, 39, -1, -1,
4643 -1, -1, -1, -1, 46, -1, -1, 49, 50, 51,
4644 52, 53, 54, 55, 56, 57, -1, 59, 60, 61,
4645 62, 63, 64, 65, -1, -1, -1, -1, -1, -1,
4646 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4647 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4648 -1, -1, -1, -1, -1, -1, 98, -1, -1, 101,
4649 102, -1, 104, 105, -1, -1, -1, -1, 110, 111,
4650 112, 113, 114, 115, 116, 117, 118, -1, -1, -1,
4651 -1, -1, -1, 3, 4, 5, -1, 7, -1, -1,
4652 -1, 11, 12, -1, -1, -1, 16, 139, 18, 19,
4653 20, 21, 22, 23, 24, -1, -1, -1, -1, -1,
4654 30, 31, 32, 33, 34, 35, 36, -1, -1, 39,
4655 -1, -1, -1, -1, -1, -1, 46, -1, -1, 49,
4656 50, 51, 52, 53, 54, 55, 56, 57, -1, 59,
4657 60, 61, 62, 63, 64, 65, 33, 34, 35, 36,
4658 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4659 -1, -1, 49, 50, 51, 52, -1, -1, -1, 56,
4660 -1, -1, 59, 60, 61, 62, 63, -1, 98, -1,
4661 -1, 101, 102, -1, 104, 105, -1, -1, -1, -1,
4662 110, 111, 112, 113, 114, 115, 116, 117, 118, -1,
4663 -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
4664 -1, 98, -1, -1, 101, -1, -1, 104, 105, 139,
4665 107, -1, -1, 110, 111, 112, 113, 114, 115, 116,
4666 117, 118, 33, 34, 35, 36, -1, -1, -1, -1,
4667 -1, -1, -1, -1, -1, 132, -1, -1, 49, 50,
4668 51, 52, 139, -1, -1, 56, -1, -1, 59, 60,
4669 61, 62, 63, -1, -1, 33, 34, 35, 36, -1,
4670 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4671 -1, 49, 50, 51, 52, -1, -1, -1, 56, 90,
4672 91, 59, 60, 61, 62, 63, -1, 98, -1, -1,
4673 101, -1, -1, 104, 105, -1, 107, -1, -1, 110,
4674 111, 112, 113, 114, 115, 116, 117, 118, -1, -1,
4675 -1, -1, 90, 91, -1, -1, -1, -1, -1, -1,
4676 98, 132, -1, 101, -1, -1, 104, 105, 139, -1,
4677 -1, -1, 110, 111, 112, 113, 114, 115, 116, 117,
4678 118, 52, 53, -1, -1, 56, -1, -1, -1, -1,
4679 -1, -1, -1, -1, 132, -1, -1, -1, -1, -1,
4680 -1, 139, -1, -1, 75, 76, 77, 78, 79, 80,
4681 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4682 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4683 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4684 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4685 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4686 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4687 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4688 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4689 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4690 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4691 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4692 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4693 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4694 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4695 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4696 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4697 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4698 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4699 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4700 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4701 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4702 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4703 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4704 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4705 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4706 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4707 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4708 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4709 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4710 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4711 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4712 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4713 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4714 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4715 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4716 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4717 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4718 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4719 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4720 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4721 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4722 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4723 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4724 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4725 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4726 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4727 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4728 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4729 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4730 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4731 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4732 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4733 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4734 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4735 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4736 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4737 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4738 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4739 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4740 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4741 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4742 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4743 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4744 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4745 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4746 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4747 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4748 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4749 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4750 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4751 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4752 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4753 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4754 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4755 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4756 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4757 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4758 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4759 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4760 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4761 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4762 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4763 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4764 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4765 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4766 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4767 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4768 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4769 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4770 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4771 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4772 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4773 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4774 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4775 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4776 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4777 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4778 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4779 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4780 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4781 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4782 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4783 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4784 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4785 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4786 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4787 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4788 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4789 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4790 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4791 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4792 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4793 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4794 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4795 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4796 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4797 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4798 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4799 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4800 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4801 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4802 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4803 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4804 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4805 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4806 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4807 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4808 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4809 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4810 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4811 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4812 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4813 141, 52, 53, -1, -1, 56, 147, 148, -1, -1,
4814 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4815 -1, -1, -1, -1, 75, 76, 77, 78, 79, 80,
4816 81, 82, 83, -1, -1, 86, 87, -1, -1, -1,
4817 -1, 92, 93, 94, 95, -1, -1, -1, -1, -1,
4818 -1, -1, -1, -1, -1, -1, 107, 108, -1, -1,
4819 -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
4820 -1, -1, -1, -1, -1, -1, -1, -1, 129, 130,
4821 131, 132, 133, 134, 135, 136, 137, 138, -1, 140,
4822 141, -1, -1, -1, -1, -1, 147
4829 0, 155, 156, 0, 1, 3, 4, 5, 6, 7,
4830 11, 12, 16, 18, 19, 20, 21, 22, 23, 24,
4831 30, 31, 32, 33, 34, 35, 36, 39, 45, 46,
4832 47, 48, 49, 50, 51, 52, 53, 54, 55, 56,
4833 57, 59, 60, 61, 62, 63, 64, 65, 75, 76,
4834 90, 91, 98, 101, 102, 104, 105, 107, 110, 111,
4835 112, 113, 114, 115, 116, 117, 118, 139, 140, 141,
4836 157, 158, 159, 167, 169, 171, 179, 180, 182, 183,
4837 184, 186, 187, 188, 190, 191, 200, 203, 218, 233,
4838 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
4839 252, 279, 280, 333, 334, 335, 336, 337, 338, 339,
4840 342, 344, 345, 359, 360, 362, 363, 364, 365, 366,
4841 367, 368, 369, 405, 419, 159, 3, 4, 5, 6,
4842 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
4843 17, 18, 19, 20, 21, 22, 23, 24, 25, 26,
4844 30, 31, 32, 33, 34, 35, 36, 37, 38, 39,
4845 45, 46, 47, 48, 49, 50, 51, 52, 53, 56,
4846 75, 76, 77, 78, 79, 80, 81, 82, 83, 86,
4847 87, 92, 93, 94, 95, 107, 108, 129, 130, 131,
4848 132, 133, 134, 135, 136, 137, 138, 140, 141, 147,
4849 194, 195, 196, 198, 199, 359, 39, 58, 98, 101,
4850 107, 108, 109, 112, 140, 183, 191, 200, 204, 210,
4851 213, 215, 233, 365, 366, 368, 369, 403, 404, 210,
4852 148, 211, 212, 148, 207, 211, 148, 153, 412, 54,
4853 195, 412, 143, 160, 143, 21, 22, 31, 32, 182,
4854 200, 233, 252, 200, 200, 200, 56, 1, 47, 101,
4855 163, 164, 165, 167, 185, 186, 419, 167, 220, 205,
4856 215, 403, 419, 204, 402, 403, 419, 46, 98, 139,
4857 146, 190, 218, 233, 365, 366, 369, 223, 54, 55,
4858 57, 194, 348, 361, 348, 349, 350, 152, 152, 152,
4859 152, 364, 179, 200, 200, 151, 153, 411, 417, 418,
4860 40, 41, 42, 43, 44, 37, 38, 26, 143, 207,
4861 211, 244, 281, 28, 245, 278, 126, 146, 101, 107,
4862 187, 126, 25, 77, 78, 79, 80, 81, 82, 83,
4863 84, 85, 86, 87, 88, 89, 94, 95, 127, 129,
4864 130, 131, 132, 133, 134, 135, 136, 137, 138, 202,
4865 202, 68, 96, 97, 145, 409, 219, 171, 175, 175,
4866 176, 177, 176, 175, 411, 418, 98, 184, 191, 233,
4867 257, 365, 366, 369, 52, 56, 94, 98, 192, 193,
4868 233, 365, 366, 369, 193, 33, 34, 35, 36, 49,
4869 50, 51, 52, 56, 148, 194, 367, 400, 210, 97,
4870 409, 410, 281, 336, 99, 99, 146, 204, 56, 204,
4871 204, 204, 348, 126, 100, 146, 214, 419, 97, 145,
4872 409, 99, 99, 146, 214, 210, 412, 413, 210, 91,
4873 209, 210, 215, 377, 403, 419, 171, 413, 171, 54,
4874 64, 65, 168, 148, 201, 157, 163, 97, 409, 99,
4875 167, 166, 185, 149, 411, 418, 413, 221, 413, 150,
4876 146, 153, 416, 146, 416, 144, 416, 412, 56, 364,
4877 187, 189, 146, 97, 145, 409, 270, 271, 66, 119,
4878 121, 122, 351, 119, 119, 351, 67, 351, 340, 346,
4879 343, 347, 77, 151, 159, 175, 175, 175, 175, 167,
4880 171, 171, 282, 283, 106, 181, 286, 287, 286, 107,
4881 179, 204, 215, 216, 217, 185, 146, 190, 146, 169,
4882 170, 179, 191, 200, 204, 206, 217, 233, 369, 172,
4883 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
4884 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
4885 200, 200, 200, 200, 52, 53, 56, 198, 207, 406,
4886 407, 209, 52, 53, 56, 198, 207, 406, 161, 163,
4887 13, 253, 417, 253, 163, 175, 163, 411, 225, 56,
4888 97, 145, 409, 25, 171, 52, 56, 192, 130, 370,
4889 97, 145, 409, 228, 401, 229, 68, 97, 408, 52,
4890 56, 406, 170, 200, 206, 170, 206, 197, 124, 204,
4891 107, 204, 213, 403, 52, 56, 209, 52, 56, 404,
4892 413, 149, 413, 146, 413, 146, 413, 195, 222, 200,
4893 144, 144, 406, 406, 206, 160, 413, 165, 413, 403,
4894 146, 189, 52, 56, 209, 52, 56, 272, 353, 352,
4895 119, 341, 351, 66, 119, 119, 341, 66, 119, 200,
4896 144, 284, 282, 10, 251, 288, 251, 204, 146, 44,
4897 413, 189, 146, 44, 126, 44, 97, 145, 409, 173,
4898 412, 99, 99, 207, 211, 412, 414, 99, 99, 207,
4899 208, 211, 419, 251, 8, 246, 329, 419, 163, 13,
4900 163, 251, 27, 254, 417, 251, 25, 224, 293, 17,
4901 248, 291, 52, 56, 209, 52, 56, 176, 227, 371,
4902 226, 52, 56, 192, 209, 161, 171, 230, 231, 208,
4903 211, 195, 204, 204, 214, 99, 99, 414, 99, 99,
4904 403, 171, 416, 187, 414, 273, 354, 54, 55, 57,
4905 358, 369, 152, 351, 152, 152, 152, 285, 144, 289,
4906 107, 204, 167, 189, 167, 200, 52, 56, 209, 52,
4907 56, 52, 56, 90, 91, 98, 101, 104, 105, 110,
4908 132, 303, 304, 305, 308, 323, 324, 326, 327, 328,
4909 333, 334, 337, 338, 339, 342, 344, 345, 366, 128,
4910 170, 206, 170, 206, 181, 150, 99, 170, 206, 170,
4911 206, 181, 204, 217, 330, 419, 9, 15, 247, 249,
4912 332, 419, 14, 249, 250, 255, 256, 419, 256, 178,
4913 294, 291, 251, 107, 204, 290, 251, 414, 163, 417,
4914 175, 161, 414, 251, 413, 148, 372, 373, 194, 281,
4915 278, 99, 146, 413, 274, 355, 131, 265, 266, 419,
4916 265, 204, 414, 324, 324, 56, 192, 311, 309, 414,
4917 310, 412, 415, 325, 52, 100, 174, 131, 88, 89,
4918 97, 145, 148, 306, 307, 200, 170, 206, 100, 331,
4919 419, 163, 162, 163, 175, 251, 251, 295, 251, 204,
4920 146, 253, 251, 161, 417, 251, 52, 54, 55, 56,
4921 57, 58, 77, 91, 101, 107, 108, 109, 133, 136,
4922 374, 376, 377, 378, 379, 380, 381, 382, 383, 384,
4923 387, 388, 389, 390, 391, 394, 395, 396, 397, 398,
4924 161, 376, 232, 148, 276, 376, 356, 262, 264, 267,
4925 380, 382, 383, 385, 386, 389, 390, 392, 393, 396,
4926 398, 412, 163, 161, 303, 107, 303, 312, 313, 314,
4927 316, 58, 112, 317, 318, 319, 320, 321, 322, 388,
4928 144, 270, 326, 308, 324, 324, 192, 414, 413, 112,
4929 312, 317, 312, 317, 98, 191, 233, 365, 366, 369,
4930 253, 163, 253, 296, 107, 204, 163, 251, 101, 107,
4931 258, 259, 260, 261, 379, 413, 413, 126, 146, 375,
4932 204, 146, 399, 419, 34, 52, 146, 399, 399, 146,
4933 375, 52, 146, 375, 52, 251, 417, 372, 376, 275,
4934 357, 267, 131, 126, 146, 263, 98, 233, 146, 399,
4935 399, 399, 146, 263, 146, 263, 151, 413, 52, 146,
4936 414, 107, 303, 316, 146, 348, 415, 146, 303, 34,
4937 52, 348, 413, 413, 414, 414, 56, 97, 145, 409,
4938 163, 332, 163, 301, 302, 303, 314, 317, 204, 256,
4939 291, 292, 260, 379, 146, 413, 146, 204, 374, 381,
4940 394, 396, 384, 388, 390, 398, 382, 391, 396, 380,
4941 382, 161, 267, 29, 123, 277, 163, 131, 233, 262,
4942 393, 396, 56, 97, 385, 390, 382, 392, 396, 382,
4943 52, 268, 269, 378, 146, 315, 316, 52, 146, 146,
4944 124, 319, 321, 322, 52, 56, 209, 52, 56, 329,
4945 255, 253, 40, 41, 146, 413, 258, 261, 259, 146,
4946 375, 146, 375, 399, 146, 375, 146, 375, 375, 251,
4947 149, 161, 163, 120, 146, 263, 146, 263, 52, 56,
4948 399, 146, 263, 146, 263, 263, 146, 412, 315, 146,
4949 146, 315, 414, 297, 175, 175, 312, 146, 146, 382,
4950 396, 382, 382, 251, 144, 382, 396, 382, 382, 269,
4951 316, 315, 298, 259, 375, 146, 375, 375, 375, 263,
4952 146, 263, 263, 263, 299, 382, 382, 163, 375, 263,
4959 0, 154, 156, 155, 157, 158, 158, 158, 158, 159,
4960 159, 160, 162, 161, 161, 163, 164, 164, 164, 164,
4961 165, 166, 165, 168, 167, 167, 167, 167, 167, 167,
4962 167, 167, 167, 167, 167, 167, 167, 167, 167, 167,
4963 167, 169, 169, 169, 169, 169, 169, 169, 169, 170,
4964 170, 170, 171, 171, 171, 171, 171, 172, 173, 174,
4965 171, 171, 175, 177, 178, 176, 179, 179, 180, 180,
4966 181, 182, 183, 183, 183, 183, 183, 183, 183, 183,
4967 183, 183, 183, 184, 184, 185, 185, 186, 186, 186,
4968 186, 186, 186, 186, 186, 186, 186, 187, 187, 188,
4969 188, 189, 189, 190, 190, 190, 190, 190, 190, 190,
4970 190, 190, 191, 191, 191, 191, 191, 191, 191, 191,
4971 191, 192, 192, 193, 193, 193, 194, 194, 194, 194,
4972 194, 195, 195, 196, 197, 196, 198, 198, 198, 198,
4973 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
4974 198, 198, 198, 198, 198, 198, 198, 198, 198, 198,
4975 198, 198, 198, 198, 198, 198, 199, 199, 199, 199,
4976 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
4977 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
4978 199, 199, 199, 199, 199, 199, 199, 199, 199, 199,
4979 199, 199, 199, 199, 199, 199, 199, 200, 200, 200,
4980 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
4981 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
4982 200, 200, 200, 200, 200, 200, 200, 200, 200, 200,
4983 200, 200, 200, 200, 200, 200, 200, 201, 200, 200,
4984 200, 202, 202, 202, 202, 203, 203, 204, 205, 205,
4985 205, 205, 206, 206, 207, 207, 208, 208, 209, 209,
4986 209, 209, 209, 210, 210, 210, 210, 210, 212, 211,
4987 213, 214, 214, 215, 215, 215, 215, 216, 216, 217,
4988 217, 217, 218, 218, 218, 218, 218, 218, 218, 218,
4989 218, 218, 218, 219, 218, 220, 218, 221, 218, 218,
4990 218, 218, 218, 218, 218, 218, 218, 218, 222, 218,
4991 218, 218, 218, 218, 218, 223, 218, 218, 218, 218,
4992 218, 224, 218, 225, 218, 218, 218, 226, 218, 227,
4993 218, 228, 218, 229, 230, 218, 231, 232, 218, 218,
4994 218, 218, 218, 233, 234, 235, 236, 237, 238, 239,
4995 240, 241, 242, 243, 244, 245, 246, 247, 248, 249,
4996 250, 251, 252, 253, 253, 253, 254, 254, 255, 255,
4997 256, 256, 257, 257, 258, 258, 259, 259, 260, 260,
4998 260, 260, 260, 261, 261, 262, 262, 262, 262, 262,
4999 263, 263, 264, 264, 264, 264, 264, 264, 264, 264,
5000 264, 264, 264, 264, 264, 264, 264, 265, 265, 266,
5001 266, 267, 267, 268, 268, 269, 269, 271, 272, 273,
5002 274, 275, 270, 276, 276, 277, 277, 278, 279, 279,
5003 279, 279, 280, 280, 280, 280, 280, 280, 280, 280,
5004 280, 281, 281, 283, 284, 285, 282, 287, 288, 289,
5005 286, 290, 290, 290, 290, 291, 292, 292, 294, 295,
5006 296, 297, 298, 299, 293, 300, 300, 301, 301, 301,
5007 302, 302, 302, 302, 302, 303, 304, 304, 305, 305,
5008 306, 307, 308, 308, 308, 308, 308, 308, 308, 309,
5009 308, 308, 310, 308, 308, 311, 308, 312, 312, 312,
5010 312, 312, 312, 312, 312, 313, 313, 314, 314, 314,
5011 314, 315, 315, 316, 317, 317, 317, 317, 317, 317,
5012 318, 318, 319, 319, 320, 320, 321, 321, 322, 323,
5013 323, 323, 323, 323, 323, 323, 323, 323, 323, 324,
5014 324, 324, 324, 324, 324, 324, 324, 324, 325, 324,
5015 326, 327, 328, 328, 328, 329, 329, 330, 330, 330,
5016 331, 331, 332, 332, 333, 333, 334, 335, 335, 335,
5017 336, 337, 338, 339, 340, 340, 341, 341, 342, 343,
5018 343, 344, 345, 346, 346, 347, 347, 348, 348, 349,
5019 349, 350, 350, 351, 352, 351, 353, 354, 355, 356,
5020 357, 351, 358, 358, 358, 358, 359, 359, 360, 361,
5021 361, 361, 361, 362, 363, 363, 364, 364, 364, 364,
5022 365, 365, 365, 365, 365, 366, 366, 366, 366, 366,
5023 366, 366, 367, 367, 368, 368, 369, 369, 371, 370,
5024 370, 372, 372, 373, 372, 374, 374, 374, 374, 374,
5025 375, 375, 376, 376, 376, 376, 376, 376, 376, 376,
5026 376, 376, 376, 376, 376, 376, 376, 377, 378, 378,
5027 378, 378, 379, 379, 380, 381, 381, 382, 382, 383,
5028 384, 384, 385, 385, 386, 386, 387, 387, 388, 388,
5029 389, 390, 390, 391, 392, 393, 393, 394, 394, 395,
5030 395, 396, 396, 397, 397, 398, 399, 399, 400, 401,
5031 400, 402, 402, 403, 403, 404, 404, 404, 404, 405,
5032 405, 405, 406, 406, 406, 406, 407, 407, 407, 408,
5033 408, 409, 409, 410, 410, 411, 411, 412, 412, 413,
5034 414, 415, 416, 416, 416, 417, 417, 418, 418, 419
5040 0, 2, 0, 2, 2, 1, 1, 3, 2, 1,
5041 2, 3, 0, 6, 3, 2, 1, 1, 3, 2,
5042 1, 0, 3, 0, 4, 3, 3, 3, 2, 3,
5043 3, 3, 3, 3, 4, 1, 3, 3, 5, 3,
5044 1, 3, 3, 6, 5, 5, 5, 5, 3, 1,
5045 3, 1, 1, 3, 3, 3, 2, 0, 0, 0,
5046 6, 1, 1, 0, 0, 4, 1, 1, 1, 4,
5047 3, 1, 2, 3, 4, 5, 4, 5, 2, 2,
5048 2, 2, 2, 1, 3, 1, 3, 1, 2, 3,
5049 5, 2, 4, 2, 4, 1, 3, 1, 3, 2,
5050 3, 1, 3, 1, 1, 4, 3, 3, 3, 3,
5051 2, 1, 1, 1, 4, 3, 3, 3, 3, 2,
5052 1, 1, 1, 2, 1, 3, 1, 1, 1, 1,
5053 1, 1, 1, 1, 0, 4, 1, 1, 1, 1,
5054 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5055 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5056 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5057 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5058 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5059 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5060 1, 1, 1, 1, 1, 1, 1, 3, 3, 6,
5061 5, 5, 5, 5, 4, 3, 3, 3, 2, 2,
5062 2, 2, 3, 3, 3, 3, 3, 3, 4, 2,
5063 2, 3, 3, 3, 3, 1, 3, 3, 3, 3,
5064 3, 2, 2, 3, 3, 3, 3, 0, 4, 6,
5065 1, 1, 1, 1, 1, 3, 3, 1, 1, 2,
5066 4, 2, 1, 3, 3, 3, 1, 1, 1, 1,
5067 2, 4, 2, 1, 2, 2, 4, 1, 0, 2,
5068 2, 2, 1, 1, 2, 3, 4, 1, 1, 3,
5069 4, 2, 1, 1, 1, 1, 1, 1, 1, 1,
5070 1, 1, 1, 0, 4, 0, 3, 0, 4, 3,
5071 3, 2, 3, 3, 1, 4, 3, 1, 0, 6,
5072 4, 3, 2, 1, 2, 0, 3, 6, 6, 4,
5073 4, 0, 6, 0, 5, 5, 6, 0, 6, 0,
5074 7, 0, 5, 0, 0, 7, 0, 0, 9, 1,
5075 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5076 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5077 1, 1, 1, 1, 1, 2, 1, 1, 1, 5,
5078 1, 2, 1, 1, 1, 3, 1, 3, 1, 3,
5079 5, 1, 3, 2, 1, 4, 2, 2, 2, 1,
5080 2, 0, 6, 8, 4, 6, 4, 2, 6, 2,
5081 4, 6, 2, 4, 2, 4, 1, 1, 1, 3,
5082 4, 1, 4, 1, 3, 1, 1, 0, 0, 0,
5083 0, 0, 7, 4, 1, 3, 3, 3, 2, 4,
5084 5, 5, 2, 4, 4, 3, 3, 3, 2, 1,
5085 4, 3, 3, 0, 0, 0, 5, 0, 0, 0,
5086 5, 1, 2, 3, 4, 5, 1, 1, 0, 0,
5087 0, 0, 0, 0, 11, 1, 1, 1, 3, 3,
5088 1, 2, 3, 1, 1, 1, 3, 1, 3, 1,
5089 1, 1, 1, 4, 4, 3, 4, 4, 3, 0,
5090 4, 2, 0, 4, 2, 0, 4, 1, 1, 2,
5091 3, 5, 2, 4, 1, 2, 3, 2, 4, 1,
5092 3, 1, 3, 1, 3, 1, 2, 1, 3, 1,
5093 1, 3, 2, 1, 1, 3, 2, 1, 2, 1,
5094 3, 3, 2, 2, 1, 1, 1, 2, 2, 1,
5095 1, 1, 1, 1, 1, 1, 1, 1, 0, 3,
5096 1, 2, 2, 3, 1, 6, 1, 1, 1, 1,
5097 2, 1, 2, 1, 1, 1, 1, 1, 1, 2,
5098 3, 3, 3, 4, 0, 3, 1, 2, 4, 0,
5099 3, 4, 4, 0, 3, 0, 3, 0, 2, 0,
5100 2, 0, 2, 1, 0, 3, 0, 0, 0, 0,
5101 0, 8, 1, 1, 1, 1, 1, 1, 2, 1,
5102 1, 1, 1, 3, 1, 2, 1, 1, 1, 1,
5103 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5104 1, 1, 1, 1, 1, 1, 1, 1, 0, 4,
5105 0, 3, 3, 0, 3, 4, 2, 2, 2, 1,
5106 2, 0, 6, 8, 4, 6, 4, 6, 2, 4,
5107 6, 2, 4, 2, 4, 1, 0, 1, 1, 1,
5108 1, 1, 1, 1, 1, 1, 3, 1, 3, 1,
5109 2, 1, 2, 1, 1, 3, 1, 3, 1, 1,
5110 2, 2, 1, 3, 3, 1, 3, 1, 3, 1,
5111 1, 2, 1, 1, 1, 2, 2, 1, 1, 0,
5112 4, 1, 2, 1, 3, 3, 2, 4, 2, 1,
5113 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
5114 1, 1, 1, 1, 1, 0, 1, 0, 1, 2,
5115 2, 2, 0, 1, 1, 1, 1, 1, 2, 0
5119 #define yyerrok (yyerrstatus = 0)
5120 #define yyclearin (yychar = YYEMPTY)
5121 #define YYEMPTY (-2)
5124 #define YYACCEPT goto yyacceptlab
5125 #define YYABORT goto yyabortlab
5126 #define YYERROR goto yyerrorlab
5129 #define YYRECOVERING() (!!yyerrstatus)
5131 #define YYBACKUP(Token, Value) \
5133 if (yychar == YYEMPTY) \
5137 YYPOPSTACK (yylen); \
5143 yyerror (&yylloc, p, YY_("syntax error: cannot back up")); \
5150 #define YYERRCODE 256
5157 #ifndef YYLLOC_DEFAULT
5158 # define YYLLOC_DEFAULT(Current, Rhs, N) \
5162 (Current).first_line = YYRHSLOC (Rhs, 1).first_line; \
5163 (Current).first_column = YYRHSLOC (Rhs, 1).first_column; \
5164 (Current).last_line = YYRHSLOC (Rhs, N).last_line; \
5165 (Current).last_column = YYRHSLOC (Rhs, N).last_column; \
5169 (Current).first_line = (Current).last_line = \
5170 YYRHSLOC (Rhs, 0).last_line; \
5171 (Current).first_column = (Current).last_column = \
5172 YYRHSLOC (Rhs, 0).last_column; \
5177 #define YYRHSLOC(Rhs, K) ((Rhs)[K])
5185 # define YYFPRINTF fprintf
5188 # define YYDPRINTF(Args) \
5199 #ifndef YY_LOCATION_PRINT
5200 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
5206 yy_location_print_ (
FILE *yyo,
YYLTYPE const *
const yylocp)
5224 else if (0 <= end_col && yylocp->
first_column < end_col)
5230 # define YY_LOCATION_PRINT(File, Loc) \
5231 yy_location_print_ (File, &(Loc))
5234 # define YY_LOCATION_PRINT(File, Loc) ((void) 0)
5239 # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \
5243 YYFPRINTF (p, "%s ", Title); \
5244 yy_symbol_print (stderr, \
5245 Type, Value, Location, p); \
5246 YYFPRINTF (p, "\n"); \
5258 FILE *yyo = yyoutput;
5260 YYUSE (yylocationp);
5266 YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep);
5280 yytype <
YYNTOKENS ?
"token" :
"nterm", yytname[yytype]);
5284 yy_symbol_value_print (yyoutput, yytype, yyvaluep, yylocationp, p);
5295 #define yy_stack_print(b, t) ruby_parser_yy_stack_print(b, t, p)
5298 for (; yybottom <= yytop; yybottom++)
5300 int yybot = *yybottom;
5306 # define YY_STACK_PRINT(Bottom, Top) \
5309 yy_stack_print ((Bottom), (Top)); \
5320 unsigned long int yylno = yyrline[yyrule];
5321 int yynrhs = yyr2[yyrule];
5323 YYFPRINTF (p,
"Reducing stack by rule %d (line %lu):\n",
5326 for (yyi = 0; yyi < yynrhs; yyi++)
5330 yystos[yyssp[yyi + 1 - yynrhs]],
5331 &(yyvsp[(yyi + 1) - (yynrhs)])
5332 , &(yylsp[(yyi + 1) - (yynrhs)]) , p);
5337 # define YY_REDUCE_PRINT(Rule) \
5340 yy_reduce_print (yyssp, yyvsp, yylsp, Rule, p); \
5349 # define YYDPRINTF(Args)
5350 # define YY_SYMBOL_PRINT(Title, Type, Value, Location)
5351 # define YY_STACK_PRINT(Bottom, Top)
5352 # define YY_REDUCE_PRINT(Rule)
5358 # define YYINITDEPTH 200
5369 # define YYMAXDEPTH 10000
5376 # if defined __GLIBC__ && defined _STRING_H
5377 # define yystrlen strlen
5381 yystrlen (
const char *yystr)
5384 for (yylen = 0; yystr[yylen]; yylen++)
5392 # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE
5393 # define yystpcpy stpcpy
5398 yystpcpy (
char *yydest,
const char *yysrc)
5401 const char *yys = yysrc;
5403 while ((*yyd++ = *yys++) !=
'\0')
5420 yytnamerr (
char *yyres,
const char *yystr)
5425 char const *yyp = yystr;
5432 goto do_not_strip_quotes;
5436 goto do_not_strip_quotes;
5449 do_not_strip_quotes: ;
5453 return yystrlen (yystr);
5455 return yystpcpy (yyres, yystr) - yyres;
5473 enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
5477 char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
5507 int yyn = yypact[*yyssp];
5508 yyarg[yycount++] = yytname[yytoken];
5514 int yyxbegin = yyn < 0 ? -yyn : 0;
5516 int yychecklim =
YYLAST - yyn + 1;
5520 for (yyx = yyxbegin; yyx < yyxend; ++yyx)
5521 if (yycheck[yyx + yyn] == yyx && yyx !=
YYTERROR
5524 if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
5530 yyarg[yycount++] = yytname[yyx];
5533 if (! (yysize <= yysize1
5544 # define YYCASE_(N, S) \
5549 YYCASE_(1,
YY_(
"syntax error, unexpected %s"));
5550 YYCASE_(2,
YY_(
"syntax error, unexpected %s, expecting %s"));
5551 YYCASE_(3,
YY_(
"syntax error, unexpected %s, expecting %s or %s"));
5552 YYCASE_(4,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s"));
5553 YYCASE_(5,
YY_(
"syntax error, unexpected %s, expecting %s or %s or %s or %s"));
5558 YYSIZE_T yysize1 = yysize + yystrlen (yyformat);
5564 if (*yymsg_alloc < yysize)
5566 *yymsg_alloc = 2 * yysize;
5567 if (! (yysize <= *yymsg_alloc
5579 while ((*yyp = *yyformat) !=
'\0')
5580 if (*yyp ==
'%' && yyformat[1] ==
's' && yyi < yycount)
5603 YYUSE (yylocationp);
5636 # if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
5640 YYLTYPE yylloc = yyloc_default;
5689 char *yymsg = yymsgbuf;
5690 YYSIZE_T yymsg_alloc =
sizeof yymsgbuf;
5693 #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N), yylsp -= (N))
5699 yyssp = yyss = yyssa;
5700 yyvsp = yyvs = yyvsa;
5701 yylsp = yyls = yylsa;
5712 #line 974 "ripper.y"
5717 #line 5713 "ripper.c"
5732 if (yyss + yystacksize - 1 <= yyssp)
5735 YYSIZE_T yysize = yyssp - yyss + 1;
5750 yyoverflow (
YY_(
"memory exhausted"),
5751 &yyss1, yysize *
sizeof (*yyssp),
5752 &yyvs1, yysize *
sizeof (*yyvsp),
5753 &yyls1, yysize *
sizeof (*yylsp),
5761 # ifndef YYSTACK_RELOCATE
5762 goto yyexhaustedlab;
5766 goto yyexhaustedlab;
5776 goto yyexhaustedlab;
5780 # undef YYSTACK_RELOCATE
5787 yyssp = yyss + yysize - 1;
5788 yyvsp = yyvs + yysize - 1;
5789 yylsp = yyls + yysize - 1;
5791 YYDPRINTF ((p,
"Stack size increased to %lu\n",
5792 (
unsigned long int) yystacksize));
5794 if (yyss + yystacksize - 1 <= yyssp)
5798 YYDPRINTF ((p,
"Entering state %d\n", yystate));
5814 yyn = yypact[yystate];
5824 yychar = yylex (&
yylval, &yylloc, p);
5827 if (yychar <=
YYEOF)
5829 yychar = yytoken =
YYEOF;
5830 YYDPRINTF ((p,
"Now at end of input.\n"));
5841 if (yyn < 0 ||
YYLAST < yyn || yycheck[yyn] != yytoken)
5875 yyn = yydefact[yystate];
5896 yyval = yyvsp[1-yylen];
5904 #line 1176 "ripper.y"
5909 #line 5905 "ripper.c"
5913 #line 1181 "ripper.y"
5917 NODE *node = (yyvsp[0].val);
5920 while (node->nd_next) {
5921 node = node->nd_next;
5923 node = node->nd_head;
5925 node = remove_begin(node);
5930 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(program,v1);p->result=v2;}
5933 #line 5929 "ripper.c"
5937 #line 1203 "ripper.y"
5939 (yyval.
val) = void_stmts(p, (yyvsp[-1].val));
5941 #line 5937 "ripper.c"
5945 #line 1209 "ripper.y"
5950 {
VALUE v1,v2,v3,v4,v5;v1=dispatch0(stmts_new);v2=dispatch0(void_stmt);v3=v1;v4=v2;v5=dispatch2(stmts_add,v3,v4);(yyval.
val)=v5;}
5952 #line 5948 "ripper.c"
5956 #line 1216 "ripper.y"
5959 (yyval.
val) = newline_node((yyvsp[0].val));
5961 {
VALUE v1,v2,v3,v4;v1=dispatch0(stmts_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(stmts_add,v2,v3);(yyval.
val)=v4;}
5963 #line 5959 "ripper.c"
5967 #line 1223 "ripper.y"
5970 (yyval.
val) = block_append(p, (yyvsp[-2].val), newline_node((yyvsp[0].val)));
5972 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(stmts_add,v1,v2);(yyval.
val)=v3;}
5974 #line 5970 "ripper.c"
5978 #line 1230 "ripper.y"
5980 (yyval.
val) = remove_begin((yyvsp[0].val));
5982 #line 5978 "ripper.c"
5986 #line 1237 "ripper.y"
5988 (yyval.
val) = (yyvsp[0].val);
5990 #line 5986 "ripper.c"
5994 #line 1243 "ripper.y"
6001 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(BEGIN,v1);(yyval.
val)=v2;}
6003 #line 5999 "ripper.c"
6007 #line 1255 "ripper.y"
6008 {
if (!(yyvsp[-1].val)) {
yyerror1(&(yylsp[0]),
"else without rescue is useless");}}
6009 #line 6005 "ripper.c"
6013 #line 1258 "ripper.y"
6016 (yyval.
val) = new_bodystmt(p, (yyvsp[-5].val), (yyvsp[-4].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6018 {
VALUE v1,v2,v3,v4,v5;v1=escape_Qundef((yyvsp[-5].val));v2=escape_Qundef((yyvsp[-4].val));v3=escape_Qundef((yyvsp[-1].val));v4=escape_Qundef((yyvsp[0].val));v5=dispatch4(bodystmt,v1,v2,v3,v4);(yyval.
val)=v5;}
6020 #line 6016 "ripper.c"
6024 #line 1267 "ripper.y"
6027 (yyval.
val) = new_bodystmt(p, (yyvsp[-2].val), (yyvsp[-1].val), 0, (yyvsp[0].val), &(yyloc));
6029 {
VALUE v1,v2,v3,v4,v5;v1=escape_Qundef((yyvsp[-2].val));v2=escape_Qundef((yyvsp[-1].val));v3=
Qnil;v4=escape_Qundef((yyvsp[0].val));v5=dispatch4(bodystmt,v1,v2,v3,v4);(yyval.
val)=v5;}
6031 #line 6027 "ripper.c"
6035 #line 1276 "ripper.y"
6037 (yyval.
val) = void_stmts(p, (yyvsp[-1].val));
6039 #line 6035 "ripper.c"
6043 #line 1282 "ripper.y"
6048 {
VALUE v1,v2,v3,v4,v5;v1=dispatch0(stmts_new);v2=dispatch0(void_stmt);v3=v1;v4=v2;v5=dispatch2(stmts_add,v3,v4);(yyval.
val)=v5;}
6050 #line 6046 "ripper.c"
6054 #line 1289 "ripper.y"
6057 (yyval.
val) = newline_node((yyvsp[0].val));
6059 {
VALUE v1,v2,v3,v4;v1=dispatch0(stmts_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(stmts_add,v2,v3);(yyval.
val)=v4;}
6061 #line 6057 "ripper.c"
6065 #line 1296 "ripper.y"
6068 (yyval.
val) = block_append(p, (yyvsp[-2].val), newline_node((yyvsp[0].val)));
6070 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(stmts_add,v1,v2);(yyval.
val)=v3;}
6072 #line 6068 "ripper.c"
6076 #line 1303 "ripper.y"
6078 (yyval.
val) = remove_begin((yyvsp[0].val));
6080 #line 6076 "ripper.c"
6084 #line 1309 "ripper.y"
6086 (yyval.
val) = (yyvsp[0].val);
6088 #line 6084 "ripper.c"
6092 #line 1313 "ripper.y"
6094 yyerror1(&(yylsp[0]),
"BEGIN is permitted only at toplevel");
6096 #line 6092 "ripper.c"
6100 #line 1317 "ripper.y"
6102 (yyval.
val) = (yyvsp[0].val);
6104 #line 6100 "ripper.c"
6108 #line 1322 "ripper.y"
6110 #line 6106 "ripper.c"
6114 #line 1323 "ripper.y"
6117 (yyval.
val) =
NEW_ALIAS((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
6119 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(
alias,v1,v2);(yyval.
val)=v3;}
6121 #line 6117 "ripper.c"
6125 #line 1330 "ripper.y"
6128 (yyval.
val) =
NEW_VALIAS((yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6130 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(var_alias,v1,v2);(yyval.
val)=v3;}
6132 #line 6128 "ripper.c"
6136 #line 1337 "ripper.y"
6141 buf[1] = (
char)(yyvsp[0].val)->nd_nth;
6144 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(var_alias,v1,v2);(yyval.
val)=v3;}
6146 #line 6142 "ripper.c"
6150 #line 1347 "ripper.y"
6153 yyerror1(&(yylsp[0]),
"can't make alias for the number variables");
6156 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(var_alias,v1,v2);v4=v3;v5=dispatch1(alias_error,v4);(yyval.
val)=v5;}ripper_error(p);
6158 #line 6154 "ripper.c"
6162 #line 1355 "ripper.y"
6165 (yyval.
val) = (yyvsp[0].val);
6167 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(undef,v1);(yyval.
val)=v2;}
6169 #line 6165 "ripper.c"
6173 #line 1362 "ripper.y"
6176 (yyval.
val) = new_if(p, (yyvsp[0].val), remove_begin((yyvsp[-2].val)), 0, &(yyloc));
6177 fixpos((yyval.
val), (yyvsp[0].val));
6179 {
VALUE v1,v2,v3;v1=(yyvsp[0].val);v2=(yyvsp[-2].val);v3=dispatch2(if_mod,v1,v2);(yyval.
val)=v3;}
6181 #line 6177 "ripper.c"
6185 #line 1370 "ripper.y"
6188 (yyval.
val) = new_unless(p, (yyvsp[0].val), remove_begin((yyvsp[-2].val)), 0, &(yyloc));
6189 fixpos((yyval.
val), (yyvsp[0].val));
6191 {
VALUE v1,v2,v3;v1=(yyvsp[0].val);v2=(yyvsp[-2].val);v3=dispatch2(unless_mod,v1,v2);(yyval.
val)=v3;}
6193 #line 6189 "ripper.c"
6197 #line 1378 "ripper.y"
6201 (yyval.
val) =
NEW_WHILE(cond(p, (yyvsp[0].val), &(yylsp[0])), (yyvsp[-2].val)->
nd_body, 0, &(yyloc));
6204 (yyval.
val) =
NEW_WHILE(cond(p, (yyvsp[0].val), &(yylsp[0])), (yyvsp[-2].val), 1, &(yyloc));
6207 {
VALUE v1,v2,v3;v1=(yyvsp[0].val);v2=(yyvsp[-2].val);v3=dispatch2(while_mod,v1,v2);(yyval.
val)=v3;}
6209 #line 6205 "ripper.c"
6213 #line 1390 "ripper.y"
6217 (yyval.
val) =
NEW_UNTIL(cond(p, (yyvsp[0].val), &(yylsp[0])), (yyvsp[-2].val)->
nd_body, 0, &(yyloc));
6220 (yyval.
val) =
NEW_UNTIL(cond(p, (yyvsp[0].val), &(yylsp[0])), (yyvsp[-2].val), 1, &(yyloc));
6223 {
VALUE v1,v2,v3;v1=(yyvsp[0].val);v2=(yyvsp[-2].val);v3=dispatch2(until_mod,v1,v2);(yyval.
val)=v3;}
6225 #line 6221 "ripper.c"
6229 #line 1402 "ripper.y"
6233 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
6234 resq =
NEW_RESBODY(0, remove_begin((yyvsp[0].val)), 0, &loc);
6235 (yyval.
val) =
NEW_RESCUE(remove_begin((yyvsp[-2].val)), resq, 0, &(yyloc));
6237 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(rescue_mod,v1,v2);(yyval.
val)=v3;}
6239 #line 6235 "ripper.c"
6243 #line 1412 "ripper.y"
6246 rb_warn0(
"END in method; use at_exit");
6251 NODE_SCOPE, 0 , (yyvsp[-1].val) , 0 , &(yyloc));
6255 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(
END,v1);(yyval.
val)=v2;}
6257 #line 6253 "ripper.c"
6261 #line 1427 "ripper.y"
6265 (yyval.
val) = node_assign(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
6267 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(massign,v1,v2);(yyval.
val)=v3;}
6269 #line 6265 "ripper.c"
6273 #line 1435 "ripper.y"
6277 (yyval.
val) = node_assign(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
6279 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(assign,v1,v2);(yyval.
val)=v3;}
6281 #line 6277 "ripper.c"
6285 #line 1443 "ripper.y"
6288 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
6290 (yyval.
val) = node_assign(p, (yyvsp[-4].val),
NEW_RESCUE((yyvsp[-2].val),
NEW_RESBODY(0, remove_begin((yyvsp[0].val)), 0, &loc), 0, &(yyloc)), &(yyloc));
6292 {
VALUE v1,v2,v3,v4,v5,v6;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(rescue_mod,v1,v2);v4=(yyvsp[-4].val);v5=v3;v6=dispatch2(massign,v4,v5);(yyval.
val)=v6;}
6294 #line 6290 "ripper.c"
6298 #line 1452 "ripper.y"
6301 (yyval.
val) = node_assign(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
6303 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(massign,v1,v2);(yyval.
val)=v3;}
6305 #line 6301 "ripper.c"
6309 #line 1462 "ripper.y"
6312 (yyval.
val) = node_assign(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
6314 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(assign,v1,v2);(yyval.
val)=v3;}
6316 #line 6312 "ripper.c"
6320 #line 1469 "ripper.y"
6323 (yyval.
val) = new_op_assign(p, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6325 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=(yyvsp[0].val);v4=dispatch3(opassign,v1,v2,v3);(yyval.
val)=v4;}
6327 #line 6323 "ripper.c"
6331 #line 1476 "ripper.y"
6334 (yyval.
val) = new_ary_op_assign(p, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-3]), &(yyloc));
6336 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-5].val);v2=escape_Qundef((yyvsp[-3].val));v3=dispatch2(aref_field,v1,v2);v4=v3;v5=(yyvsp[-1].val);v6=(yyvsp[0].val);v7=dispatch3(opassign,v4,v5,v6);(yyval.
val)=v7;}
6339 #line 6335 "ripper.c"
6343 #line 1484 "ripper.y"
6346 (yyval.
val) = new_attr_op_assign(p, (yyvsp[-4].val), (yyvsp[-3].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6348 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=(yyvsp[-3].val);v3=(yyvsp[-2].val);v4=dispatch3(field,v1,v2,v3);v5=v4;v6=(yyvsp[-1].val);v7=(yyvsp[0].val);v8=dispatch3(opassign,v5,v6,v7);(yyval.
val)=v8;}
6350 #line 6346 "ripper.c"
6354 #line 1491 "ripper.y"
6357 (yyval.
val) = new_attr_op_assign(p, (yyvsp[-4].val), (yyvsp[-3].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6359 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=(yyvsp[-3].val);v3=(yyvsp[-2].val);v4=dispatch3(field,v1,v2,v3);v5=v4;v6=(yyvsp[-1].val);v7=(yyvsp[0].val);v8=dispatch3(opassign,v5,v6,v7);(yyval.
val)=v8;}
6361 #line 6357 "ripper.c"
6365 #line 1498 "ripper.y"
6368 YYLTYPE loc = code_loc_gen(&(yylsp[-4]), &(yylsp[-2]));
6369 (yyval.
val) = new_const_op_assign(p,
NEW_COLON2((yyvsp[-4].val), (yyvsp[-2].val), &loc), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6371 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-4].val);v2=(yyvsp[-2].val);v3=dispatch2(const_path_field,v1,v2);v4=v3;v5=(yyvsp[-1].val);v6=(yyvsp[0].val);v7=dispatch3(opassign,v4,v5,v6);(yyval.
val)=v7;}
6373 #line 6369 "ripper.c"
6377 #line 1506 "ripper.y"
6380 (yyval.
val) = new_attr_op_assign(p, (yyvsp[-4].val),
ID2VAL(
idCOLON2), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6382 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=
ID2VAL(
idCOLON2);v3=(yyvsp[-2].val);v4=dispatch3(field,v1,v2,v3);v5=v4;v6=(yyvsp[-1].val);v7=(yyvsp[0].val);v8=dispatch3(opassign,v5,v6,v7);(yyval.
val)=v8;}
6384 #line 6380 "ripper.c"
6388 #line 1513 "ripper.y"
6391 rb_backref_error(p, (yyvsp[-2].val));
6394 {
VALUE v1,v2,v3,v4,v5;v1=var_field(p, (yyvsp[-2].val));v2=(yyvsp[0].val);v3=dispatch2(assign,v1,v2);v4=v3;v5=dispatch1(assign_error,v4);(yyval.
val)=v5;}ripper_error(p);
6396 #line 6392 "ripper.c"
6400 #line 1523 "ripper.y"
6403 (yyval.
val) = (yyvsp[0].val);
6405 #line 6401 "ripper.c"
6409 #line 1528 "ripper.y"
6412 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
6416 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(rescue_mod,v1,v2);(yyval.
val)=v3;}
6418 #line 6414 "ripper.c"
6422 #line 1541 "ripper.y"
6424 (yyval.
val) = logop(p,
idAND, (yyvsp[-2].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
6426 #line 6422 "ripper.c"
6430 #line 1545 "ripper.y"
6432 (yyval.
val) = logop(p,
idOR, (yyvsp[-2].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
6434 #line 6430 "ripper.c"
6438 #line 1549 "ripper.y"
6440 (yyval.
val) = call_uni_op(p, method_cond(p, (yyvsp[0].val), &(yylsp[0])),
METHOD_NOT, &(yylsp[-2]), &(yyloc));
6442 #line 6438 "ripper.c"
6446 #line 1553 "ripper.y"
6448 (yyval.
val) = call_uni_op(p, method_cond(p, (yyvsp[0].val), &(yylsp[0])),
'!', &(yylsp[-1]), &(yyloc));
6450 #line 6446 "ripper.c"
6454 #line 1557 "ripper.y"
6462 #line 6458 "ripper.c"
6466 #line 1564 "ripper.y"
6467 {(yyval.
tbl) = push_pvtbl(p);}
6468 #line 6464 "ripper.c"
6472 #line 1566 "ripper.y"
6473 {pop_pvtbl(p, (yyvsp[-1].tbl));}
6474 #line 6470 "ripper.c"
6478 #line 1567 "ripper.y"
6482 (yyval.
val) = new_case3(p, (yyvsp[-5].val),
NEW_IN((yyvsp[-1].val), 0, 0, &(yylsp[-1])), &(yyloc));
6484 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-1].val);v2=
Qnil;v3=
Qnil;v4=dispatch3(in,v1,v2,v3);v5=(yyvsp[-5].val);v6=v4;v7=dispatch2(
case,v5,v6);(yyval.
val)=v7;}
6486 #line 6482 "ripper.c"
6490 #line 1578 "ripper.y"
6493 (yyval.
val) = (yyvsp[0].val);
6495 #line 6491 "ripper.c"
6499 #line 1584 "ripper.y"
6501 #line 6497 "ripper.c"
6505 #line 1584 "ripper.y"
6507 #line 6503 "ripper.c"
6511 #line 1585 "ripper.y"
6513 (yyval.
val) = (yyvsp[-2].val);
6515 #line 6511 "ripper.c"
6519 #line 1596 "ripper.y"
6522 (yyval.
val) = new_qcall(p, (yyvsp[-2].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
6524 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-3].val);v2=(yyvsp[-2].val);v3=(yyvsp[-1].val);v4=dispatch3(
call,v1,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=dispatch2(method_add_arg,v5,v6);(yyval.
val)=v7;}
6526 #line 6522 "ripper.c"
6530 #line 1605 "ripper.y"
6532 (yyval.
val) = (yyvsp[-1].val);
6534 (yyval.
val)->
nd_body->nd_loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
6538 #line 6534 "ripper.c"
6542 #line 1615 "ripper.y"
6548 (yyval.
val)=(yyvsp[0].val);
6550 #line 6546 "ripper.c"
6554 #line 1625 "ripper.y"
6557 (yyvsp[-1].val)->
nd_args = (yyvsp[0].val);
6559 (yyval.
val) = (yyvsp[-1].val);
6561 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(command,v1,v2);(yyval.
val)=v3;}
6563 #line 6559 "ripper.c"
6567 #line 1634 "ripper.y"
6570 block_dup_check(p, (yyvsp[-1].val), (yyvsp[0].val));
6571 (yyvsp[-2].val)->
nd_args = (yyvsp[-1].val);
6572 (yyval.
val) = method_add_block(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
6573 fixpos((yyval.
val), (yyvsp[-2].val));
6576 {
VALUE v1,v2,v3,v4,v5,v6;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=dispatch2(command,v1,v2);v4=v3;v5=(yyvsp[0].val);v6=dispatch2(method_add_block,v4,v5);(yyval.
val)=v6;}
6578 #line 6574 "ripper.c"
6582 #line 1645 "ripper.y"
6585 (yyval.
val) = new_command_qcall(p, (yyvsp[-2].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val),
Qnull, &(yylsp[-1]), &(yyloc));
6587 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-3].val);v2=(yyvsp[-2].val);v3=(yyvsp[-1].val);v4=(yyvsp[0].val);v5=dispatch4(command_call,v1,v2,v3,v4);(yyval.
val)=v5;}
6589 #line 6585 "ripper.c"
6593 #line 1652 "ripper.y"
6596 (yyval.
val) = new_command_qcall(p, (yyvsp[-3].val), (yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-2]), &(yyloc));
6598 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=(yyvsp[-3].val);v3=(yyvsp[-2].val);v4=(yyvsp[-1].val);v5=dispatch4(command_call,v1,v2,v3,v4);v6=v5;v7=(yyvsp[0].val);v8=dispatch2(method_add_block,v6,v7);(yyval.
val)=v8;}
6600 #line 6596 "ripper.c"
6604 #line 1659 "ripper.y"
6607 (yyval.
val) = new_command_qcall(p,
ID2VAL(
idCOLON2), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val),
Qnull, &(yylsp[-1]), &(yyloc));
6609 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-3].val);v2=
ID2VAL(
idCOLON2);v3=(yyvsp[-1].val);v4=(yyvsp[0].val);v5=dispatch4(command_call,v1,v2,v3,v4);(yyval.
val)=v5;}
6611 #line 6607 "ripper.c"
6615 #line 1666 "ripper.y"
6618 (yyval.
val) = new_command_qcall(p,
ID2VAL(
idCOLON2), (yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-2]), &(yyloc));
6620 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=
ID2VAL(
idCOLON2);v3=(yyvsp[-2].val);v4=(yyvsp[-1].val);v5=dispatch4(command_call,v1,v2,v3,v4);v6=v5;v7=(yyvsp[0].val);v8=dispatch2(method_add_block,v6,v7);(yyval.
val)=v8;}
6622 #line 6618 "ripper.c"
6626 #line 1673 "ripper.y"
6630 fixpos((yyval.
val), (yyvsp[0].val));
6632 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(super,v1);(yyval.
val)=v2;}
6634 #line 6630 "ripper.c"
6638 #line 1681 "ripper.y"
6641 (yyval.
val) = new_yield(p, (yyvsp[0].val), &(yyloc));
6642 fixpos((yyval.
val), (yyvsp[0].val));
6644 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(yield,v1);(yyval.
val)=v2;}
6646 #line 6642 "ripper.c"
6650 #line 1689 "ripper.y"
6653 (yyval.
val) =
NEW_RETURN(ret_args(p, (yyvsp[0].val)), &(yyloc));
6655 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(
return,v1);(yyval.
val)=v2;}
6657 #line 6653 "ripper.c"
6661 #line 1696 "ripper.y"
6664 (yyval.
val) =
NEW_BREAK(ret_args(p, (yyvsp[0].val)), &(yyloc));
6666 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(
break,v1);(yyval.
val)=v2;}
6668 #line 6664 "ripper.c"
6672 #line 1703 "ripper.y"
6675 (yyval.
val) =
NEW_NEXT(ret_args(p, (yyvsp[0].val)), &(yyloc));
6677 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(next,v1);(yyval.
val)=v2;}
6679 #line 6675 "ripper.c"
6683 #line 1713 "ripper.y"
6686 (yyval.
val) = (yyvsp[-1].val);
6688 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(mlhs_paren,v1);(yyval.
val)=v2;}
6690 #line 6686 "ripper.c"
6694 #line 1723 "ripper.y"
6699 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(mlhs_paren,v1);(yyval.
val)=v2;}
6701 #line 6697 "ripper.c"
6705 #line 1732 "ripper.y"
6710 (yyval.
val)=(yyvsp[0].val);
6712 #line 6708 "ripper.c"
6716 #line 1739 "ripper.y"
6719 (yyval.
val) =
NEW_MASGN(list_append(p, (yyvsp[-1].val),(yyvsp[0].val)), 0, &(yyloc));
6721 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(mlhs_add,v1,v2);(yyval.
val)=v3;}
6723 #line 6719 "ripper.c"
6727 #line 1746 "ripper.y"
6730 (yyval.
val) =
NEW_MASGN((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
6732 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(mlhs_add_star,v1,v2);(yyval.
val)=v3;}
6734 #line 6730 "ripper.c"
6738 #line 1753 "ripper.y"
6743 {
VALUE v1,v2,v3,v4,v5,v6;v1=(yyvsp[-4].val);v2=(yyvsp[-2].val);v3=dispatch2(mlhs_add_star,v1,v2);v4=v3;v5=(yyvsp[0].val);v6=dispatch2(mlhs_add_post,v4,v5);(yyval.
val)=v6;}
6745 #line 6741 "ripper.c"
6749 #line 1760 "ripper.y"
6754 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=
Qnil;v3=dispatch2(mlhs_add_star,v1,v2);(yyval.
val)=v3;}
6756 #line 6752 "ripper.c"
6760 #line 1767 "ripper.y"
6765 {
VALUE v1,v2,v3,v4,v5,v6;v1=(yyvsp[-3].val);v2=
Qnil;v3=dispatch2(mlhs_add_star,v1,v2);v4=v3;v5=(yyvsp[0].val);v6=dispatch2(mlhs_add_post,v4,v5);(yyval.
val)=v6;}
6767 #line 6763 "ripper.c"
6771 #line 1774 "ripper.y"
6776 {
VALUE v1,v2,v3,v4;v1=dispatch0(mlhs_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(mlhs_add_star,v2,v3);(yyval.
val)=v4;}
6778 #line 6774 "ripper.c"
6782 #line 1781 "ripper.y"
6787 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=dispatch0(mlhs_new);v2=v1;v3=(yyvsp[-2].val);v4=dispatch2(mlhs_add_star,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=dispatch2(mlhs_add_post,v5,v6);(yyval.
val)=v7;}
6789 #line 6785 "ripper.c"
6793 #line 1788 "ripper.y"
6798 {
VALUE v1,v2,v3,v4;v1=dispatch0(mlhs_new);v2=v1;v3=
Qnil;v4=dispatch2(mlhs_add_star,v2,v3);(yyval.
val)=v4;}
6800 #line 6796 "ripper.c"
6804 #line 1795 "ripper.y"
6809 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=dispatch0(mlhs_new);v2=v1;v3=
Qnil;v4=dispatch2(mlhs_add_star,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=dispatch2(mlhs_add_post,v5,v6);(yyval.
val)=v7;}
6811 #line 6807 "ripper.c"
6815 #line 1805 "ripper.y"
6818 (yyval.
val) = (yyvsp[-1].val);
6820 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(mlhs_paren,v1);(yyval.
val)=v2;}
6822 #line 6818 "ripper.c"
6826 #line 1814 "ripper.y"
6829 (yyval.
val) =
NEW_LIST((yyvsp[-1].val), &(yylsp[-1]));
6831 {
VALUE v1,v2,v3,v4;v1=dispatch0(mlhs_new);v2=v1;v3=(yyvsp[-1].val);v4=dispatch2(mlhs_add,v2,v3);(yyval.
val)=v4;}
6833 #line 6829 "ripper.c"
6837 #line 1821 "ripper.y"
6840 (yyval.
val) = list_append(p, (yyvsp[-2].val), (yyvsp[-1].val));
6842 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=dispatch2(mlhs_add,v1,v2);(yyval.
val)=v3;}
6844 #line 6840 "ripper.c"
6848 #line 1830 "ripper.y"
6853 {
VALUE v1,v2,v3,v4;v1=dispatch0(mlhs_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(mlhs_add,v2,v3);(yyval.
val)=v4;}
6855 #line 6851 "ripper.c"
6859 #line 1837 "ripper.y"
6862 (yyval.
val) = list_append(p, (yyvsp[-2].val), (yyvsp[0].val));
6864 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(mlhs_add,v1,v2);(yyval.
val)=v3;}
6866 #line 6862 "ripper.c"
6870 #line 1846 "ripper.y"
6873 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
6875 (yyval.
val)=assignable(p, var_field(p, (yyvsp[0].val)));
6877 #line 6873 "ripper.c"
6881 #line 1853 "ripper.y"
6884 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
6886 (yyval.
val)=assignable(p, var_field(p, (yyvsp[0].val)));
6888 #line 6884 "ripper.c"
6892 #line 1860 "ripper.y"
6895 (yyval.
val) = aryset(p, (yyvsp[-3].val), (yyvsp[-1].val), &(yyloc));
6897 {
VALUE v1,v2,v3;v1=(yyvsp[-3].val);v2=escape_Qundef((yyvsp[-1].val));v3=dispatch2(aref_field,v1,v2);(yyval.
val)=v3;}
6899 #line 6895 "ripper.c"
6903 #line 1867 "ripper.y"
6905 if ((yyvsp[-1].val) ==
tANDDOT) {
6906 yyerror1(&(yylsp[-1]),
"&. inside multiple assignment destination");
6909 (yyval.
val) = attrset(p, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6911 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=(yyvsp[0].val);v4=dispatch3(field,v1,v2,v3);(yyval.
val)=v4;}
6913 #line 6909 "ripper.c"
6917 #line 1877 "ripper.y"
6920 (yyval.
val) = attrset(p, (yyvsp[-2].val),
idCOLON2, (yyvsp[0].val), &(yyloc));
6922 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(const_path_field,v1,v2);(yyval.
val)=v3;}
6924 #line 6920 "ripper.c"
6928 #line 1884 "ripper.y"
6930 if ((yyvsp[-1].val) ==
tANDDOT) {
6931 yyerror1(&(yylsp[-1]),
"&. inside multiple assignment destination");
6934 (yyval.
val) = attrset(p, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
6936 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=(yyvsp[0].val);v4=dispatch3(field,v1,v2,v3);(yyval.
val)=v4;}
6938 #line 6934 "ripper.c"
6942 #line 1894 "ripper.y"
6945 (yyval.
val) = const_decl(p,
NEW_COLON2((yyvsp[-2].val), (yyvsp[0].val), &(yyloc)), &(yyloc));
6947 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(const_path_field,v1,v2);(yyval.
val)=const_decl(p, v3);}
6949 #line 6945 "ripper.c"
6953 #line 1901 "ripper.y"
6956 (yyval.
val) = const_decl(p,
NEW_COLON3((yyvsp[0].val), &(yyloc)), &(yyloc));
6958 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(top_const_field,v1);(yyval.
val)=const_decl(p, v2);}
6960 #line 6956 "ripper.c"
6964 #line 1908 "ripper.y"
6967 rb_backref_error(p, (yyvsp[0].val));
6970 {
VALUE v1,v2;v1=var_field(p, (yyvsp[0].val));v2=dispatch1(assign_error,v1);(yyval.
val)=v2;}ripper_error(p);
6972 #line 6968 "ripper.c"
6976 #line 1918 "ripper.y"
6979 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
6981 (yyval.
val)=assignable(p, var_field(p, (yyvsp[0].val)));
6983 #line 6979 "ripper.c"
6987 #line 1925 "ripper.y"
6990 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
6992 (yyval.
val)=assignable(p, var_field(p, (yyvsp[0].val)));
6994 #line 6990 "ripper.c"
6998 #line 1932 "ripper.y"
7001 (yyval.
val) = aryset(p, (yyvsp[-3].val), (yyvsp[-1].val), &(yyloc));
7003 {
VALUE v1,v2,v3;v1=(yyvsp[-3].val);v2=escape_Qundef((yyvsp[-1].val));v3=dispatch2(aref_field,v1,v2);(yyval.
val)=v3;}
7005 #line 7001 "ripper.c"
7009 #line 1939 "ripper.y"
7012 (yyval.
val) = attrset(p, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
7014 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=(yyvsp[0].val);v4=dispatch3(field,v1,v2,v3);(yyval.
val)=v4;}
7016 #line 7012 "ripper.c"
7020 #line 1946 "ripper.y"
7023 (yyval.
val) = attrset(p, (yyvsp[-2].val),
idCOLON2, (yyvsp[0].val), &(yyloc));
7025 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=
ID2VAL(
idCOLON2);v3=(yyvsp[0].val);v4=dispatch3(field,v1,v2,v3);(yyval.
val)=v4;}
7027 #line 7023 "ripper.c"
7031 #line 1953 "ripper.y"
7034 (yyval.
val) = attrset(p, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
7036 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=(yyvsp[0].val);v4=dispatch3(field,v1,v2,v3);(yyval.
val)=v4;}
7038 #line 7034 "ripper.c"
7042 #line 1960 "ripper.y"
7045 (yyval.
val) = const_decl(p,
NEW_COLON2((yyvsp[-2].val), (yyvsp[0].val), &(yyloc)), &(yyloc));
7047 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(const_path_field,v1,v2);(yyval.
val)=const_decl(p, v3);}
7049 #line 7045 "ripper.c"
7053 #line 1967 "ripper.y"
7056 (yyval.
val) = const_decl(p,
NEW_COLON3((yyvsp[0].val), &(yyloc)), &(yyloc));
7058 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(top_const_field,v1);(yyval.
val)=const_decl(p, v2);}
7060 #line 7056 "ripper.c"
7064 #line 1974 "ripper.y"
7067 rb_backref_error(p, (yyvsp[0].val));
7070 {
VALUE v1,v2;v1=var_field(p, (yyvsp[0].val));v2=dispatch1(assign_error,v1);(yyval.
val)=v2;}ripper_error(p);
7072 #line 7068 "ripper.c"
7076 #line 1984 "ripper.y"
7079 yyerror1(&(yylsp[0]),
"class/module name must be CONSTANT");
7081 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(class_name_error,v1);(yyval.
val)=v2;}ripper_error(p);
7083 #line 7079 "ripper.c"
7087 #line 1994 "ripper.y"
7092 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(top_const_ref,v1);(yyval.
val)=v2;}
7094 #line 7090 "ripper.c"
7098 #line 2001 "ripper.y"
7103 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(const_ref,v1);(yyval.
val)=v2;}
7105 #line 7101 "ripper.c"
7109 #line 2008 "ripper.y"
7112 (yyval.
val) =
NEW_COLON2((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
7114 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(const_path_ref,v1,v2);(yyval.
val)=v3;}
7116 #line 7112 "ripper.c"
7120 #line 2020 "ripper.y"
7123 (yyval.
val) = (yyvsp[0].val);
7125 #line 7121 "ripper.c"
7129 #line 2025 "ripper.y"
7132 (yyval.
val) = (yyvsp[0].val);
7134 #line 7130 "ripper.c"
7138 #line 2032 "ripper.y"
7143 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(symbol_literal,v1);(yyval.
val)=v2;}
7145 #line 7141 "ripper.c"
7149 #line 2042 "ripper.y"
7156 #line 7152 "ripper.c"
7160 #line 2048 "ripper.y"
7162 #line 7158 "ripper.c"
7166 #line 2049 "ripper.y"
7170 (yyval.
val) = block_append(p, (yyvsp[-3].val), undef);
7174 #line 7170 "ripper.c"
7178 #line 2058 "ripper.y"
7180 #line 7176 "ripper.c"
7184 #line 2059 "ripper.y"
7186 #line 7182 "ripper.c"
7190 #line 2060 "ripper.y"
7192 #line 7188 "ripper.c"
7196 #line 2061 "ripper.y"
7198 #line 7194 "ripper.c"
7202 #line 2062 "ripper.y"
7204 #line 7200 "ripper.c"
7208 #line 2063 "ripper.y"
7210 #line 7206 "ripper.c"
7214 #line 2064 "ripper.y"
7216 #line 7212 "ripper.c"
7220 #line 2065 "ripper.y"
7222 #line 7218 "ripper.c"
7226 #line 2066 "ripper.y"
7228 #line 7224 "ripper.c"
7232 #line 2067 "ripper.y"
7234 #line 7230 "ripper.c"
7238 #line 2068 "ripper.y"
7240 #line 7236 "ripper.c"
7244 #line 2069 "ripper.y"
7246 #line 7242 "ripper.c"
7250 #line 2070 "ripper.y"
7252 #line 7248 "ripper.c"
7256 #line 2071 "ripper.y"
7258 #line 7254 "ripper.c"
7262 #line 2072 "ripper.y"
7264 #line 7260 "ripper.c"
7268 #line 2073 "ripper.y"
7270 #line 7266 "ripper.c"
7274 #line 2074 "ripper.y"
7276 #line 7272 "ripper.c"
7280 #line 2075 "ripper.y"
7282 #line 7278 "ripper.c"
7286 #line 2076 "ripper.y"
7288 #line 7284 "ripper.c"
7292 #line 2077 "ripper.y"
7294 #line 7290 "ripper.c"
7298 #line 2078 "ripper.y"
7300 #line 7296 "ripper.c"
7304 #line 2079 "ripper.y"
7306 #line 7302 "ripper.c"
7310 #line 2080 "ripper.y"
7312 #line 7308 "ripper.c"
7316 #line 2081 "ripper.y"
7318 #line 7314 "ripper.c"
7322 #line 2082 "ripper.y"
7324 #line 7320 "ripper.c"
7328 #line 2083 "ripper.y"
7330 #line 7326 "ripper.c"
7334 #line 2084 "ripper.y"
7336 #line 7332 "ripper.c"
7340 #line 2085 "ripper.y"
7342 #line 7338 "ripper.c"
7346 #line 2086 "ripper.y"
7348 #line 7344 "ripper.c"
7352 #line 2087 "ripper.y"
7354 #line 7350 "ripper.c"
7358 #line 2105 "ripper.y"
7361 (yyval.
val) = node_assign(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
7363 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(assign,v1,v2);(yyval.
val)=v3;}
7365 #line 7361 "ripper.c"
7369 #line 2112 "ripper.y"
7372 (yyval.
val) = new_op_assign(p, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
7374 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=(yyvsp[0].val);v4=dispatch3(opassign,v1,v2,v3);(yyval.
val)=v4;}
7376 #line 7372 "ripper.c"
7380 #line 2119 "ripper.y"
7384 (yyval.
val) = new_ary_op_assign(p, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-3]), &(yyloc));
7386 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-5].val);v2=escape_Qundef((yyvsp[-3].val));v3=dispatch2(aref_field,v1,v2);v4=v3;v5=(yyvsp[-1].val);v6=(yyvsp[0].val);v7=dispatch3(opassign,v4,v5,v6);(yyval.
val)=v7;}
7388 #line 7384 "ripper.c"
7392 #line 2127 "ripper.y"
7396 (yyval.
val) = new_attr_op_assign(p, (yyvsp[-4].val), (yyvsp[-3].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
7398 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=(yyvsp[-3].val);v3=(yyvsp[-2].val);v4=dispatch3(field,v1,v2,v3);v5=v4;v6=(yyvsp[-1].val);v7=(yyvsp[0].val);v8=dispatch3(opassign,v5,v6,v7);(yyval.
val)=v8;}
7400 #line 7396 "ripper.c"
7404 #line 2135 "ripper.y"
7408 (yyval.
val) = new_attr_op_assign(p, (yyvsp[-4].val), (yyvsp[-3].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
7410 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=(yyvsp[-3].val);v3=(yyvsp[-2].val);v4=dispatch3(field,v1,v2,v3);v5=v4;v6=(yyvsp[-1].val);v7=(yyvsp[0].val);v8=dispatch3(opassign,v5,v6,v7);(yyval.
val)=v8;}
7412 #line 7408 "ripper.c"
7416 #line 2143 "ripper.y"
7420 (yyval.
val) = new_attr_op_assign(p, (yyvsp[-4].val),
ID2VAL(
idCOLON2), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
7422 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=
ID2VAL(
idCOLON2);v3=(yyvsp[-2].val);v4=dispatch3(field,v1,v2,v3);v5=v4;v6=(yyvsp[-1].val);v7=(yyvsp[0].val);v8=dispatch3(opassign,v5,v6,v7);(yyval.
val)=v8;}
7424 #line 7420 "ripper.c"
7428 #line 2151 "ripper.y"
7431 YYLTYPE loc = code_loc_gen(&(yylsp[-4]), &(yylsp[-2]));
7432 (yyval.
val) = new_const_op_assign(p,
NEW_COLON2((yyvsp[-4].val), (yyvsp[-2].val), &loc), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
7434 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-4].val);v2=(yyvsp[-2].val);v3=dispatch2(const_path_field,v1,v2);v4=v3;v5=(yyvsp[-1].val);v6=(yyvsp[0].val);v7=dispatch3(opassign,v4,v5,v6);(yyval.
val)=v7;}
7436 #line 7432 "ripper.c"
7440 #line 2159 "ripper.y"
7443 (yyval.
val) = new_const_op_assign(p,
NEW_COLON3((yyvsp[-2].val), &(yyloc)), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
7445 {
VALUE v1,v2,v3,v4,v5,v6;v1=(yyvsp[-2].val);v2=dispatch1(top_const_field,v1);v3=v2;v4=(yyvsp[-1].val);v5=(yyvsp[0].val);v6=dispatch3(opassign,v3,v4,v5);(yyval.
val)=v6;}
7447 #line 7443 "ripper.c"
7451 #line 2166 "ripper.y"
7454 rb_backref_error(p, (yyvsp[-2].val));
7457 {
VALUE v1,v2,v3,v4,v5,v6;v1=var_field(p, (yyvsp[-2].val));v2=(yyvsp[-1].val);v3=(yyvsp[0].val);v4=dispatch3(opassign,v1,v2,v3);v5=v4;v6=dispatch1(assign_error,v5);(yyval.
val)=v6;}ripper_error(p);
7459 #line 7455 "ripper.c"
7463 #line 2174 "ripper.y"
7468 (yyval.
val) =
NEW_DOT2((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
7470 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(dot2,v1,v2);(yyval.
val)=v3;}
7472 #line 7468 "ripper.c"
7476 #line 2183 "ripper.y"
7481 (yyval.
val) =
NEW_DOT3((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
7483 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(dot3,v1,v2);(yyval.
val)=v3;}
7485 #line 7481 "ripper.c"
7489 #line 2192 "ripper.y"
7493 loc.beg_pos = (yylsp[0]).end_pos;
7494 loc.end_pos = (yylsp[0]).end_pos;
7499 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=
Qnil;v3=dispatch2(dot2,v1,v2);(yyval.
val)=v3;}
7501 #line 7497 "ripper.c"
7505 #line 2204 "ripper.y"
7509 loc.beg_pos = (yylsp[0]).end_pos;
7510 loc.end_pos = (yylsp[0]).end_pos;
7515 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=
Qnil;v3=dispatch2(dot3,v1,v2);(yyval.
val)=v3;}
7517 #line 7513 "ripper.c"
7521 #line 2216 "ripper.y"
7525 loc.beg_pos = (yylsp[-1]).beg_pos;
7526 loc.end_pos = (yylsp[-1]).beg_pos;
7531 {
VALUE v1,v2,v3;v1=
Qnil;v2=(yyvsp[0].val);v3=dispatch2(dot2,v1,v2);(yyval.
val)=v3;}
7533 #line 7529 "ripper.c"
7537 #line 2228 "ripper.y"
7541 loc.beg_pos = (yylsp[-1]).beg_pos;
7542 loc.end_pos = (yylsp[-1]).beg_pos;
7547 {
VALUE v1,v2,v3;v1=
Qnil;v2=(yyvsp[0].val);v3=dispatch2(dot3,v1,v2);(yyval.
val)=v3;}
7549 #line 7545 "ripper.c"
7553 #line 2240 "ripper.y"
7555 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
'+', (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7557 #line 7553 "ripper.c"
7561 #line 2244 "ripper.y"
7563 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
'-', (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7565 #line 7561 "ripper.c"
7569 #line 2248 "ripper.y"
7571 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
'*', (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7573 #line 7569 "ripper.c"
7577 #line 2252 "ripper.y"
7579 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
'/', (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7581 #line 7577 "ripper.c"
7585 #line 2256 "ripper.y"
7587 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
'%', (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7589 #line 7585 "ripper.c"
7593 #line 2260 "ripper.y"
7595 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
idPow, (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7597 #line 7593 "ripper.c"
7601 #line 2264 "ripper.y"
7603 (yyval.
val) = call_uni_op(p, call_bin_op(p, (yyvsp[-2].val),
idPow, (yyvsp[0].val), &(yylsp[-2]), &(yyloc)),
idUMinus, &(yylsp[-3]), &(yyloc));
7605 #line 7601 "ripper.c"
7609 #line 2268 "ripper.y"
7611 (yyval.
val) = call_uni_op(p, (yyvsp[0].val),
idUPlus, &(yylsp[-1]), &(yyloc));
7613 #line 7609 "ripper.c"
7617 #line 2272 "ripper.y"
7619 (yyval.
val) = call_uni_op(p, (yyvsp[0].val),
idUMinus, &(yylsp[-1]), &(yyloc));
7621 #line 7617 "ripper.c"
7625 #line 2276 "ripper.y"
7627 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
'|', (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7629 #line 7625 "ripper.c"
7633 #line 2280 "ripper.y"
7635 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
'^', (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7637 #line 7633 "ripper.c"
7641 #line 2284 "ripper.y"
7643 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
'&', (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7645 #line 7641 "ripper.c"
7649 #line 2288 "ripper.y"
7651 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
idCmp, (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7653 #line 7649 "ripper.c"
7657 #line 2293 "ripper.y"
7659 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
idEq, (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7661 #line 7657 "ripper.c"
7665 #line 2297 "ripper.y"
7667 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
idEqq, (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7669 #line 7665 "ripper.c"
7673 #line 2301 "ripper.y"
7675 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
idNeq, (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7677 #line 7673 "ripper.c"
7681 #line 2305 "ripper.y"
7683 (yyval.
val) = match_op(p, (yyvsp[-2].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7685 #line 7681 "ripper.c"
7689 #line 2309 "ripper.y"
7691 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
idNeqTilde, (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7693 #line 7689 "ripper.c"
7697 #line 2313 "ripper.y"
7699 (yyval.
val) = call_uni_op(p, method_cond(p, (yyvsp[0].val), &(yylsp[0])),
'!', &(yylsp[-1]), &(yyloc));
7701 #line 7697 "ripper.c"
7705 #line 2317 "ripper.y"
7707 (yyval.
val) = call_uni_op(p, (yyvsp[0].val),
'~', &(yylsp[-1]), &(yyloc));
7709 #line 7705 "ripper.c"
7713 #line 2321 "ripper.y"
7715 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
idLTLT, (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7717 #line 7713 "ripper.c"
7721 #line 2325 "ripper.y"
7723 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val),
idGTGT, (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7725 #line 7721 "ripper.c"
7729 #line 2329 "ripper.y"
7731 (yyval.
val) = logop(p,
idANDOP, (yyvsp[-2].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7733 #line 7729 "ripper.c"
7737 #line 2333 "ripper.y"
7739 (yyval.
val) = logop(p,
idOROP, (yyvsp[-2].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7741 #line 7737 "ripper.c"
7745 #line 2336 "ripper.y"
7747 #line 7743 "ripper.c"
7751 #line 2337 "ripper.y"
7754 (yyval.
val) = new_defined(p, (yyvsp[0].val), &(yyloc));
7756 #line 7752 "ripper.c"
7760 #line 2342 "ripper.y"
7764 (yyval.
val) = new_if(p, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[0].val), &(yyloc));
7765 fixpos((yyval.
val), (yyvsp[-5].val));
7767 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-5].val);v2=(yyvsp[-3].val);v3=(yyvsp[0].val);v4=dispatch3(ifop,v1,v2,v3);(yyval.
val)=v4;}
7769 #line 7765 "ripper.c"
7773 #line 2351 "ripper.y"
7775 (yyval.
val) = (yyvsp[0].val);
7777 #line 7773 "ripper.c"
7781 #line 2356 "ripper.y"
7782 {(yyval.
val) =
'>';}
7783 #line 7779 "ripper.c"
7787 #line 2357 "ripper.y"
7788 {(yyval.
val) =
'<';}
7789 #line 7785 "ripper.c"
7793 #line 2358 "ripper.y"
7795 #line 7791 "ripper.c"
7799 #line 2359 "ripper.y"
7801 #line 7797 "ripper.c"
7805 #line 2363 "ripper.y"
7807 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7809 #line 7805 "ripper.c"
7813 #line 2367 "ripper.y"
7816 (yyval.
val) = call_bin_op(p, (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
7818 #line 7814 "ripper.c"
7822 #line 2374 "ripper.y"
7825 (yyval.
val) = (yyvsp[0].val);
7827 #line 7823 "ripper.c"
7831 #line 2382 "ripper.y"
7833 (yyval.
val) = (yyvsp[-1].val);
7835 #line 7831 "ripper.c"
7839 #line 2386 "ripper.y"
7842 (yyval.
val) = (yyvsp[-1].val) ? arg_append(p, (yyvsp[-3].val), new_hash(p, (yyvsp[-1].val), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].val);
7844 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-1].val);v2=dispatch1(bare_assoc_hash,v1);v3=(yyvsp[-3].val);v4=v2;v5=dispatch2(args_add,v3,v4);(yyval.
val)=v5;}
7846 #line 7842 "ripper.c"
7850 #line 2393 "ripper.y"
7853 (yyval.
val) = (yyvsp[-1].val) ?
NEW_LIST(new_hash(p, (yyvsp[-1].val), &(yylsp[-1])), &(yyloc)) : 0;
7855 {
VALUE v1,v2,v3,v4,v5,v6;v1=dispatch0(args_new);v2=(yyvsp[-1].val);v3=dispatch1(bare_assoc_hash,v2);v4=v1;v5=v3;v6=dispatch2(args_add,v4,v5);(yyval.
val)=v6;}
7857 #line 7853 "ripper.c"
7861 #line 2402 "ripper.y"
7864 (yyval.
val) = (yyvsp[0].val);
7866 #line 7862 "ripper.c"
7870 #line 2407 "ripper.y"
7873 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
7877 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(rescue_mod,v1,v2);(yyval.
val)=v3;}
7879 #line 7875 "ripper.c"
7883 #line 2418 "ripper.y"
7886 (yyval.
val) = (yyvsp[-1].val);
7888 {
VALUE v1,v2;v1=escape_Qundef((yyvsp[-1].val));v2=dispatch1(arg_paren,v1);(yyval.
val)=v2;}
7890 #line 7886 "ripper.c"
7894 #line 2425 "ripper.y"
7912 (yyval.
val) = arg_append(p, splat, new_hash(p, kwrest, &(yylsp[-1])), &(yylsp[-1]));
7914 (yyval.
val) = splat;
7916 (yyval.
val) = arg_blk_pass((yyval.
val), block);
7918 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(arg_paren,v1);(yyval.
val)=v2;}
7921 #line 7917 "ripper.c"
7925 #line 2460 "ripper.y"
7927 (yyval.
val) = (yyvsp[-1].val);
7929 #line 7925 "ripper.c"
7933 #line 2464 "ripper.y"
7936 (yyval.
val) = (yyvsp[-1].val) ? arg_append(p, (yyvsp[-3].val), new_hash(p, (yyvsp[-1].val), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].val);
7938 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-1].val);v2=dispatch1(bare_assoc_hash,v1);v3=(yyvsp[-3].val);v4=v2;v5=dispatch2(args_add,v3,v4);(yyval.
val)=v5;}
7940 #line 7936 "ripper.c"
7944 #line 2471 "ripper.y"
7947 (yyval.
val) = (yyvsp[-1].val) ?
NEW_LIST(new_hash(p, (yyvsp[-1].val), &(yylsp[-1])), &(yylsp[-1])) : 0;
7949 {
VALUE v1,v2,v3,v4,v5,v6;v1=dispatch0(args_new);v2=(yyvsp[-1].val);v3=dispatch1(bare_assoc_hash,v2);v4=v1;v5=v3;v6=dispatch2(args_add,v4,v5);(yyval.
val)=v6;}
7951 #line 7947 "ripper.c"
7955 #line 2480 "ripper.y"
7961 {
VALUE v1,v2,v3,v4;v1=dispatch0(args_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(args_add,v2,v3);(yyval.
val)=v4;}
7963 #line 7959 "ripper.c"
7967 #line 2488 "ripper.y"
7970 (yyval.
val) = arg_blk_pass((yyvsp[-1].val), (yyvsp[0].val));
7972 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(args_add_block,v1,v2);(yyval.
val)=v3;}
7974 #line 7970 "ripper.c"
7978 #line 2495 "ripper.y"
7981 (yyval.
val) = (yyvsp[-1].val) ?
NEW_LIST(new_hash(p, (yyvsp[-1].val), &(yylsp[-1])), &(yylsp[-1])) : 0;
7982 (yyval.
val) = arg_blk_pass((yyval.
val), (yyvsp[0].val));
7984 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8,v9;v1=dispatch0(args_new);v2=(yyvsp[-1].val);v3=dispatch1(bare_assoc_hash,v2);v4=v1;v5=v3;v6=dispatch2(args_add,v4,v5);v7=v6;v8=(yyvsp[0].val);v9=dispatch2(args_add_block,v7,v8);(yyval.
val)=v9;}
7986 #line 7982 "ripper.c"
7990 #line 2503 "ripper.y"
7993 (yyval.
val) = (yyvsp[-1].val) ? arg_append(p, (yyvsp[-3].val), new_hash(p, (yyvsp[-1].val), &(yylsp[-1])), &(yyloc)) : (yyvsp[-3].val);
7994 (yyval.
val) = arg_blk_pass((yyval.
val), (yyvsp[0].val));
7996 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-1].val);v2=dispatch1(bare_assoc_hash,v1);v3=(yyvsp[-3].val);v4=v2;v5=dispatch2(args_add,v3,v4);v6=v5;v7=(yyvsp[0].val);v8=dispatch2(args_add_block,v6,v7);(yyval.
val)=v8;}
7998 #line 7994 "ripper.c"
8002 #line 2511 "ripper.y"
8003 {{
VALUE v1,v2,v3,v4;v1=dispatch0(args_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(args_add_block,v2,v3);(yyval.
val)=v4;}}
8004 #line 8000 "ripper.c"
8008 #line 2514 "ripper.y"
8026 #line 8022 "ripper.c"
8030 #line 2532 "ripper.y"
8046 (yyval.
val) = (yyvsp[0].val);
8048 #line 8044 "ripper.c"
8052 #line 2552 "ripper.y"
8057 (yyval.
val)=(yyvsp[0].val);
8059 #line 8055 "ripper.c"
8063 #line 2561 "ripper.y"
8065 (yyval.
val) = (yyvsp[0].val);
8067 #line 8063 "ripper.c"
8071 #line 2565 "ripper.y"
8075 #line 8071 "ripper.c"
8079 #line 2571 "ripper.y"
8084 {
VALUE v1,v2,v3,v4;v1=dispatch0(args_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(args_add,v2,v3);(yyval.
val)=v4;}
8086 #line 8082 "ripper.c"
8090 #line 2578 "ripper.y"
8095 {
VALUE v1,v2,v3,v4;v1=dispatch0(args_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(args_add_star,v2,v3);(yyval.
val)=v4;}
8097 #line 8093 "ripper.c"
8101 #line 2585 "ripper.y"
8104 (yyval.
val) = last_arg_append(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
8106 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(args_add,v1,v2);(yyval.
val)=v3;}
8108 #line 8104 "ripper.c"
8112 #line 2592 "ripper.y"
8115 (yyval.
val) = rest_arg_append(p, (yyvsp[-3].val), (yyvsp[0].val), &(yyloc));
8117 {
VALUE v1,v2,v3;v1=(yyvsp[-3].val);v2=(yyvsp[0].val);v3=dispatch2(args_add_star,v1,v2);(yyval.
val)=v3;}
8119 #line 8115 "ripper.c"
8123 #line 2605 "ripper.y"
8126 (yyval.
val) = last_arg_append(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
8128 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-2].val);v2=dispatch1(mrhs_new_from_args,v1);v3=v2;v4=(yyvsp[0].val);v5=dispatch2(mrhs_add,v3,v4);(yyval.
val)=v5;}
8130 #line 8126 "ripper.c"
8134 #line 2612 "ripper.y"
8137 (yyval.
val) = rest_arg_append(p, (yyvsp[-3].val), (yyvsp[0].val), &(yyloc));
8139 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-3].val);v2=dispatch1(mrhs_new_from_args,v1);v3=v2;v4=(yyvsp[0].val);v5=dispatch2(mrhs_add_star,v3,v4);(yyval.
val)=v5;}
8141 #line 8137 "ripper.c"
8145 #line 2619 "ripper.y"
8150 {
VALUE v1,v2,v3,v4;v1=dispatch0(mrhs_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(mrhs_add_star,v2,v3);(yyval.
val)=v4;}
8152 #line 8148 "ripper.c"
8156 #line 2638 "ripper.y"
8161 {
VALUE v1,v2,v3,v4,v5,v6;v1=(yyvsp[0].val);v2=dispatch1(fcall,v1);v3=dispatch0(args_new);v4=v2;v5=v3;v6=dispatch2(method_add_arg,v4,v5);(yyval.
val)=v6;}
8163 #line 8159 "ripper.c"
8167 #line 2645 "ripper.y"
8171 #line 8167 "ripper.c"
8175 #line 2650 "ripper.y"
8179 set_line_body((yyvsp[-1].val), (yylsp[-3]).end_pos.lineno);
8183 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(begin,v1);(yyval.
val)=v2;}
8185 #line 8181 "ripper.c"
8189 #line 2659 "ripper.y"
8191 #line 8187 "ripper.c"
8195 #line 2660 "ripper.y"
8200 {
VALUE v1,v2;v1=0;v2=dispatch1(paren,v1);(yyval.
val)=v2;}
8202 #line 8198 "ripper.c"
8206 #line 2666 "ripper.y"
8208 #line 8204 "ripper.c"
8212 #line 2667 "ripper.y"
8216 (yyval.
val) = (yyvsp[-2].val);
8218 {
VALUE v1,v2;v1=(yyvsp[-2].val);v2=dispatch1(paren,v1);(yyval.
val)=v2;}
8220 #line 8216 "ripper.c"
8224 #line 2675 "ripper.y"
8228 (yyval.
val) = (yyvsp[-1].val);
8230 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(paren,v1);(yyval.
val)=v2;}
8232 #line 8228 "ripper.c"
8236 #line 2683 "ripper.y"
8239 (yyval.
val) =
NEW_COLON2((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
8241 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(const_path_ref,v1,v2);(yyval.
val)=v3;}
8243 #line 8239 "ripper.c"
8247 #line 2690 "ripper.y"
8252 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(top_const_ref,v1);(yyval.
val)=v2;}
8254 #line 8250 "ripper.c"
8258 #line 2697 "ripper.y"
8263 {
VALUE v1,v2;v1=escape_Qundef((yyvsp[-1].val));v2=dispatch1(array,v1);(yyval.
val)=v2;}
8265 #line 8261 "ripper.c"
8269 #line 2704 "ripper.y"
8272 (yyval.
val) = new_hash(p, (yyvsp[-1].val), &(yyloc));
8275 {
VALUE v1,v2;v1=escape_Qundef((yyvsp[-1].val));v2=dispatch1(hash,v1);(yyval.
val)=v2;}
8277 #line 8273 "ripper.c"
8281 #line 2712 "ripper.y"
8286 {
VALUE v1;v1=dispatch0(return0);(yyval.
val)=v1;}
8288 #line 8284 "ripper.c"
8292 #line 2719 "ripper.y"
8295 (yyval.
val) = new_yield(p, (yyvsp[-1].val), &(yyloc));
8297 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-1].val);v2=dispatch1(paren,v1);v3=v2;v4=dispatch1(yield,v3);(yyval.
val)=v4;}
8299 #line 8295 "ripper.c"
8303 #line 2726 "ripper.y"
8308 {
VALUE v1,v2,v3,v4,v5;v1=dispatch0(args_new);v2=v1;v3=dispatch1(paren,v2);v4=v3;v5=dispatch1(yield,v4);(yyval.
val)=v5;}
8310 #line 8306 "ripper.c"
8314 #line 2733 "ripper.y"
8319 {
VALUE v1;v1=dispatch0(yield0);(yyval.
val)=v1;}
8321 #line 8317 "ripper.c"
8325 #line 2739 "ripper.y"
8327 #line 8323 "ripper.c"
8331 #line 2740 "ripper.y"
8334 (yyval.
val) = new_defined(p, (yyvsp[-1].val), &(yyloc));
8336 #line 8332 "ripper.c"
8340 #line 2745 "ripper.y"
8342 (yyval.
val) = call_uni_op(p, method_cond(p, (yyvsp[-1].val), &(yylsp[-1])),
METHOD_NOT, &(yylsp[-3]), &(yyloc));
8344 #line 8340 "ripper.c"
8348 #line 2749 "ripper.y"
8350 (yyval.
val) = call_uni_op(p, method_cond(p,
new_nil(&(yylsp[-1])), &(yylsp[-1])),
METHOD_NOT, &(yylsp[-2]), &(yyloc));
8352 #line 8348 "ripper.c"
8356 #line 2753 "ripper.y"
8359 (yyval.
val) = method_add_block(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
8361 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8,v9;v1=(yyvsp[-1].val);v2=dispatch1(fcall,v1);v3=dispatch0(args_new);v4=v2;v5=v3;v6=dispatch2(method_add_arg,v4,v5);v7=v6;v8=(yyvsp[0].val);v9=dispatch2(method_add_block,v7,v8);(yyval.
val)=v9;}
8363 #line 8359 "ripper.c"
8367 #line 2761 "ripper.y"
8370 block_dup_check(p, (yyvsp[-1].val)->
nd_args, (yyvsp[0].val));
8371 (yyval.
val) = method_add_block(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
8373 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(method_add_block,v1,v2);(yyval.
val)=v3;}
8375 #line 8371 "ripper.c"
8379 #line 2769 "ripper.y"
8381 token_info_push(p,
"->", &(yylsp[0]));
8383 #line 8379 "ripper.c"
8387 #line 2773 "ripper.y"
8389 (yyval.
val) = (yyvsp[0].val);
8394 #line 8390 "ripper.c"
8398 #line 2783 "ripper.y"
8401 (yyval.
val) = new_if(p, (yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[-1].val), &(yyloc));
8402 fixpos((yyval.
val), (yyvsp[-4].val));
8404 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-4].val);v2=(yyvsp[-2].val);v3=escape_Qundef((yyvsp[-1].val));v4=dispatch3(
if,v1,v2,v3);(yyval.
val)=v4;}
8406 #line 8402 "ripper.c"
8410 #line 2794 "ripper.y"
8413 (yyval.
val) = new_unless(p, (yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[-1].val), &(yyloc));
8414 fixpos((yyval.
val), (yyvsp[-4].val));
8416 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-4].val);v2=(yyvsp[-2].val);v3=escape_Qundef((yyvsp[-1].val));v4=dispatch3(unless,v1,v2,v3);(yyval.
val)=v4;}
8418 #line 8414 "ripper.c"
8422 #line 2804 "ripper.y"
8425 (yyval.
val) =
NEW_WHILE(cond(p, (yyvsp[-2].val), &(yylsp[-2])), (yyvsp[-1].val), 1, &(yyloc));
8426 fixpos((yyval.
val), (yyvsp[-2].val));
8428 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=dispatch2(
while,v1,v2);(yyval.
val)=v3;}
8430 #line 8426 "ripper.c"
8434 #line 2814 "ripper.y"
8437 (yyval.
val) =
NEW_UNTIL(cond(p, (yyvsp[-2].val), &(yylsp[-2])), (yyvsp[-1].val), 1, &(yyloc));
8438 fixpos((yyval.
val), (yyvsp[-2].val));
8440 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=dispatch2(until,v1,v2);(yyval.
val)=v3;}
8442 #line 8438 "ripper.c"
8446 #line 2822 "ripper.y"
8451 #line 8447 "ripper.c"
8455 #line 2828 "ripper.y"
8460 (yyval.
val) =
NEW_CASE((yyvsp[-4].val), (yyvsp[-1].val), &(yyloc));
8461 fixpos((yyval.
val), (yyvsp[-4].val));
8463 {
VALUE v1,v2,v3;v1=(yyvsp[-4].val);v2=(yyvsp[-1].val);v3=dispatch2(
case,v1,v2);(yyval.
val)=v3;}
8465 #line 8461 "ripper.c"
8469 #line 2838 "ripper.y"
8474 #line 8470 "ripper.c"
8478 #line 2844 "ripper.y"
8485 {
VALUE v1,v2,v3;v1=
Qnil;v2=(yyvsp[-1].val);v3=dispatch2(
case,v1,v2);(yyval.
val)=v3;}
8487 #line 8483 "ripper.c"
8491 #line 2855 "ripper.y"
8494 (yyval.
val) = new_case3(p, (yyvsp[-3].val), (yyvsp[-1].val), &(yyloc));
8496 {
VALUE v1,v2,v3;v1=(yyvsp[-3].val);v2=(yyvsp[-1].val);v3=dispatch2(
case,v1,v2);(yyval.
val)=v3;}
8498 #line 8494 "ripper.c"
8502 #line 2864 "ripper.y"
8514 ID id = internal_id(p);
8516 NODE *args, *scope, *internal_var =
NEW_DVAR(
id, &(yylsp[-4]));
8519 rb_imemo_tmpbuf_set_ptr(tmpbuf, tbl);
8520 tbl[0] = 1 ; tbl[1] =
id ;
8523 switch (
nd_type((yyvsp[-4].val))) {
8527 (yyvsp[-4].val)->
nd_value = internal_var;
8530 m->nd_next = (yyvsp[-4].val);
8533 m->nd_next = node_assign(p, (yyvsp[-4].val),
NEW_FOR_MASGN(internal_var, &(yylsp[-4])), &(yylsp[-4]));
8536 m->nd_next = node_assign(p,
NEW_MASGN(
NEW_LIST((yyvsp[-4].val), &(yylsp[-4])), 0, &(yylsp[-4])), internal_var, &(yylsp[-4]));
8539 args = new_args(p, m, 0,
id, 0, new_args_tail(p, 0, 0, 0, &(yylsp[-4])), &(yylsp[-4]));
8542 (yyval.
val) =
NEW_FOR((yyvsp[-2].val), scope, &(yyloc));
8543 fixpos((yyval.
val), (yyvsp[-4].val));
8545 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-4].val);v2=(yyvsp[-2].val);v3=(yyvsp[-1].val);v4=dispatch3(
for,v1,v2,v3);(yyval.
val)=v4;}
8547 #line 8543 "ripper.c"
8551 #line 2909 "ripper.y"
8554 YYLTYPE loc = code_loc_gen(&(yylsp[-2]), &(yylsp[-1]));
8555 yyerror1(&loc,
"class definition in method body");
8561 #line 8557 "ripper.c"
8565 #line 2920 "ripper.y"
8568 (yyval.
val) =
NEW_CLASS((yyvsp[-4].val), (yyvsp[-1].val), (yyvsp[-3].val), &(yyloc));
8570 set_line_body((yyvsp[-1].val), (yylsp[-3]).end_pos.lineno);
8573 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-4].val);v2=(yyvsp[-3].val);v3=(yyvsp[-1].val);v4=dispatch3(
class,v1,v2,v3);(yyval.
val)=v4;}
8577 #line 8573 "ripper.c"
8581 #line 2932 "ripper.y"
8588 #line 8584 "ripper.c"
8592 #line 2941 "ripper.y"
8595 (yyval.
val) =
NEW_SCLASS((yyvsp[-4].val), (yyvsp[-1].val), &(yyloc));
8597 set_line_body((yyvsp[-1].val),
nd_line((yyvsp[-4].val)));
8598 fixpos((yyval.
val), (yyvsp[-4].val));
8600 {
VALUE v1,v2,v3;v1=(yyvsp[-4].val);v2=(yyvsp[-1].val);v3=dispatch2(sclass,v1,v2);(yyval.
val)=v3;}
8602 p->
in_def = (yyvsp[-3].num) & 1;
8603 p->
in_class = ((yyvsp[-3].num) >> 1) & 1;
8605 #line 8601 "ripper.c"
8609 #line 2954 "ripper.y"
8612 YYLTYPE loc = code_loc_gen(&(yylsp[-1]), &(yylsp[0]));
8613 yyerror1(&loc,
"module definition in method body");
8619 #line 8615 "ripper.c"
8623 #line 2965 "ripper.y"
8626 (yyval.
val) =
NEW_MODULE((yyvsp[-3].val), (yyvsp[-1].val), &(yyloc));
8628 set_line_body((yyvsp[-1].val), (yylsp[-3]).end_pos.lineno);
8631 {
VALUE v1,v2,v3;v1=(yyvsp[-3].val);v2=(yyvsp[-1].val);v3=dispatch2(module,v1,v2);(yyval.
val)=v3;}
8635 #line 8631 "ripper.c"
8639 #line 2977 "ripper.y"
8641 numparam_name(p,
get_id((yyvsp[0].val)));
8646 #line 8642 "ripper.c"
8650 #line 2983 "ripper.y"
8655 #line 8651 "ripper.c"
8659 #line 2990 "ripper.y"
8662 NODE *body = remove_begin((yyvsp[-1].val));
8663 reduce_nodes(p, &body);
8664 (yyval.
val) =
NEW_DEFN((yyvsp[-5].val), (yyvsp[-2].val), body, &(yyloc));
8666 set_line_body(body, (yylsp[-6]).beg_pos.lineno);
8668 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-5].val);v2=(yyvsp[-2].val);v3=(yyvsp[-1].val);v4=dispatch3(def,v1,v2,v3);(yyval.
val)=v4;}
8670 p->
in_def = (yyvsp[-3].num) & 1;
8673 #line 8669 "ripper.c"
8677 #line 3003 "ripper.y"
8679 #line 8675 "ripper.c"
8683 #line 3004 "ripper.y"
8685 numparam_name(p,
get_id((yyvsp[0].val)));
8686 (yyvsp[-1].num) = p->
in_def;
8693 #line 8689 "ripper.c"
8697 #line 3016 "ripper.y"
8700 NODE *body = remove_begin((yyvsp[-1].val));
8701 reduce_nodes(p, &body);
8702 (yyval.
val) =
NEW_DEFS((yyvsp[-7].val), (yyvsp[-4].val), (yyvsp[-2].val), body, &(yyloc));
8704 set_line_body(body, (yylsp[-8]).beg_pos.lineno);
8706 {
VALUE v1,v2,v3,v4,v5,v6;v1=(yyvsp[-7].val);v2=(yyvsp[-6].val);v3=(yyvsp[-4].val);v4=(yyvsp[-2].val);v5=(yyvsp[-1].val);v6=dispatch5(defs,v1,v2,v3,v4,v5);(yyval.
val)=v6;}
8708 p->
in_def = (yyvsp[-5].num) & 1;
8711 #line 8707 "ripper.c"
8715 #line 3030 "ripper.y"
8720 {
VALUE v1,v2,v3;v1=dispatch0(args_new);v2=v1;v3=dispatch1(
break,v2);(yyval.
val)=v3;}
8722 #line 8718 "ripper.c"
8726 #line 3037 "ripper.y"
8731 {
VALUE v1,v2,v3;v1=dispatch0(args_new);v2=v1;v3=dispatch1(next,v2);(yyval.
val)=v3;}
8733 #line 8729 "ripper.c"
8737 #line 3044 "ripper.y"
8742 {
VALUE v1;v1=dispatch0(redo);(yyval.
val)=v1;}
8744 #line 8740 "ripper.c"
8748 #line 3051 "ripper.y"
8753 {
VALUE v1;v1=dispatch0(retry);(yyval.
val)=v1;}
8755 #line 8751 "ripper.c"
8759 #line 3060 "ripper.y"
8762 (yyval.
val) = (yyvsp[0].val);
8764 #line 8760 "ripper.c"
8768 #line 3067 "ripper.y"
8770 token_info_push(p,
"begin", &(yyloc));
8772 #line 8768 "ripper.c"
8776 #line 3073 "ripper.y"
8779 token_info_push(p,
"if", &(yyloc));
8791 #line 8787 "ripper.c"
8795 #line 3090 "ripper.y"
8797 token_info_push(p,
"unless", &(yyloc));
8799 #line 8795 "ripper.c"
8803 #line 3096 "ripper.y"
8805 token_info_push(p,
"while", &(yyloc));
8807 #line 8803 "ripper.c"
8811 #line 3102 "ripper.y"
8813 token_info_push(p,
"until", &(yyloc));
8815 #line 8811 "ripper.c"
8819 #line 3108 "ripper.y"
8821 token_info_push(p,
"case", &(yyloc));
8823 #line 8819 "ripper.c"
8827 #line 3114 "ripper.y"
8829 token_info_push(p,
"for", &(yyloc));
8831 #line 8827 "ripper.c"
8835 #line 3120 "ripper.y"
8837 token_info_push(p,
"class", &(yyloc));
8839 #line 8835 "ripper.c"
8843 #line 3126 "ripper.y"
8845 token_info_push(p,
"module", &(yyloc));
8847 #line 8843 "ripper.c"
8851 #line 3132 "ripper.y"
8853 token_info_push(p,
"def", &(yyloc));
8855 #line 8851 "ripper.c"
8859 #line 3138 "ripper.y"
8861 token_info_push(p,
"do", &(yyloc));
8863 #line 8859 "ripper.c"
8867 #line 3144 "ripper.y"
8869 token_info_push(p,
"do", &(yyloc));
8871 #line 8867 "ripper.c"
8875 #line 3150 "ripper.y"
8877 token_info_warn(p,
"rescue", p->
token_info, 1, &(yyloc));
8879 #line 8875 "ripper.c"
8883 #line 3156 "ripper.y"
8885 token_info_warn(p,
"ensure", p->
token_info, 1, &(yyloc));
8887 #line 8883 "ripper.c"
8891 #line 3162 "ripper.y"
8893 token_info_warn(p,
"when", p->
token_info, 0, &(yyloc));
8895 #line 8891 "ripper.c"
8899 #line 3168 "ripper.y"
8902 int same = ptinfo_beg &&
strcmp(ptinfo_beg->
token,
"case") != 0;
8903 token_info_warn(p,
"else", p->
token_info, same, &(yyloc));
8908 token_info_setup(&e, p->
lex.
pbeg, &(yyloc));
8909 if (!e.
nonspc) *ptinfo_beg = e;
8912 #line 8908 "ripper.c"
8916 #line 3183 "ripper.y"
8919 token_info_warn(p,
"elsif", p->
token_info, 1, &(yyloc));
8921 #line 8917 "ripper.c"
8925 #line 3190 "ripper.y"
8927 token_info_pop(p,
"end", &(yyloc));
8929 #line 8925 "ripper.c"
8933 #line 3196 "ripper.y"
8936 yyerror1(&(yylsp[0]),
"Invalid return in class/module body");
8938 #line 8934 "ripper.c"
8942 #line 3215 "ripper.y"
8945 (yyval.
val) = new_if(p, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
8946 fixpos((yyval.
val), (yyvsp[-3].val));
8948 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-3].val);v2=(yyvsp[-1].val);v3=escape_Qundef((yyvsp[0].val));v4=dispatch3(elsif,v1,v2,v3);(yyval.
val)=v4;}
8950 #line 8946 "ripper.c"
8954 #line 3226 "ripper.y"
8957 (yyval.
val) = (yyvsp[0].val);
8959 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(
else,v1);(yyval.
val)=v2;}
8961 #line 8957 "ripper.c"
8965 #line 3239 "ripper.y"
8968 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
8969 mark_lvar_used(p, (yyval.
val));
8971 (yyval.
val)=assignable(p, (yyvsp[0].val));
8973 #line 8969 "ripper.c"
8977 #line 3247 "ripper.y"
8980 (yyval.
val) = (yyvsp[-1].val);
8982 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(mlhs_paren,v1);(yyval.
val)=v2;}
8984 #line 8980 "ripper.c"
8988 #line 3256 "ripper.y"
8993 {
VALUE v1,v2,v3,v4;v1=dispatch0(mlhs_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(mlhs_add,v2,v3);(yyval.
val)=v4;}
8995 #line 8991 "ripper.c"
8999 #line 3263 "ripper.y"
9002 (yyval.
val) = list_append(p, (yyvsp[-2].val), (yyvsp[0].val));
9004 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(mlhs_add,v1,v2);(yyval.
val)=v3;}
9006 #line 9002 "ripper.c"
9010 #line 3272 "ripper.y"
9015 (yyval.
val)=(yyvsp[0].val);
9017 #line 9013 "ripper.c"
9021 #line 3279 "ripper.y"
9024 (yyval.
val) =
NEW_MASGN((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
9026 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(mlhs_add_star,v1,v2);(yyval.
val)=v3;}
9028 #line 9024 "ripper.c"
9032 #line 3286 "ripper.y"
9037 {
VALUE v1,v2,v3,v4,v5,v6;v1=(yyvsp[-4].val);v2=(yyvsp[-2].val);v3=dispatch2(mlhs_add_star,v1,v2);v4=v3;v5=(yyvsp[0].val);v6=dispatch2(mlhs_add_post,v4,v5);(yyval.
val)=v6;}
9039 #line 9035 "ripper.c"
9043 #line 3293 "ripper.y"
9048 {
VALUE v1,v2,v3,v4;v1=dispatch0(mlhs_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(mlhs_add_star,v2,v3);(yyval.
val)=v4;}
9050 #line 9046 "ripper.c"
9054 #line 3300 "ripper.y"
9059 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=dispatch0(mlhs_new);v2=v1;v3=(yyvsp[-2].val);v4=dispatch2(mlhs_add_star,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=dispatch2(mlhs_add_post,v5,v6);(yyval.
val)=v7;}
9061 #line 9057 "ripper.c"
9065 #line 3309 "ripper.y"
9068 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
9069 mark_lvar_used(p, (yyval.
val));
9071 (yyval.
val)=assignable(p, (yyvsp[0].val));
9073 #line 9069 "ripper.c"
9077 #line 3317 "ripper.y"
9084 #line 9080 "ripper.c"
9088 #line 3326 "ripper.y"
9090 (yyval.
val) = new_args_tail(p, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]));
9092 #line 9088 "ripper.c"
9096 #line 3330 "ripper.y"
9098 (yyval.
val) = new_args_tail(p, (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yylsp[-1]));
9100 #line 9096 "ripper.c"
9104 #line 3334 "ripper.y"
9106 (yyval.
val) = new_args_tail(p,
Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]));
9108 #line 9104 "ripper.c"
9112 #line 3338 "ripper.y"
9116 #line 9112 "ripper.c"
9120 #line 3342 "ripper.y"
9122 (yyval.
val) = new_args_tail(p,
Qnone,
Qnone, (yyvsp[0].val), &(yylsp[0]));
9124 #line 9120 "ripper.c"
9128 #line 3348 "ripper.y"
9130 (yyval.
val) = (yyvsp[0].val);
9132 #line 9128 "ripper.c"
9136 #line 3352 "ripper.y"
9140 #line 9136 "ripper.c"
9144 #line 3358 "ripper.y"
9146 (yyval.
val) = new_args(p, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yyloc));
9148 #line 9144 "ripper.c"
9152 #line 3362 "ripper.y"
9154 (yyval.
val) = new_args(p, (yyvsp[-7].val), (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9156 #line 9152 "ripper.c"
9160 #line 3366 "ripper.y"
9162 (yyval.
val) = new_args(p, (yyvsp[-3].val), (yyvsp[-1].val),
Qnone,
Qnone, (yyvsp[0].val), &(yyloc));
9164 #line 9160 "ripper.c"
9168 #line 3370 "ripper.y"
9170 (yyval.
val) = new_args(p, (yyvsp[-5].val), (yyvsp[-3].val),
Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9172 #line 9168 "ripper.c"
9176 #line 3374 "ripper.y"
9178 (yyval.
val) = new_args(p, (yyvsp[-3].val),
Qnone, (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yyloc));
9180 #line 9176 "ripper.c"
9184 #line 3378 "ripper.y"
9188 (yyval.
val) = new_args(p, (yyvsp[-1].val),
Qnone,
NODE_SPECIAL_EXCESSIVE_COMMA,
Qnone, new_args_tail(p,
Qnone,
Qnone,
Qnone, &(yylsp[-1])), &(yyloc));
9190 {
VALUE v1;v1=dispatch0(excessed_comma);(yyval.
val)=new_args(p, (yyvsp[-1].val),
Qnone, v1,
Qnone, new_args_tail(p,
Qnone,
Qnone,
Qnone,
NULL),
NULL);}
9192 #line 9188 "ripper.c"
9196 #line 3386 "ripper.y"
9198 (yyval.
val) = new_args(p, (yyvsp[-5].val),
Qnone, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9200 #line 9196 "ripper.c"
9204 #line 3390 "ripper.y"
9206 (yyval.
val) = new_args(p, (yyvsp[-1].val),
Qnone,
Qnone,
Qnone, (yyvsp[0].val), &(yyloc));
9208 #line 9204 "ripper.c"
9212 #line 3394 "ripper.y"
9214 (yyval.
val) = new_args(p,
Qnone, (yyvsp[-3].val), (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yyloc));
9216 #line 9212 "ripper.c"
9220 #line 3398 "ripper.y"
9222 (yyval.
val) = new_args(p,
Qnone, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9224 #line 9220 "ripper.c"
9228 #line 3402 "ripper.y"
9230 (yyval.
val) = new_args(p,
Qnone, (yyvsp[-1].val),
Qnone,
Qnone, (yyvsp[0].val), &(yyloc));
9232 #line 9228 "ripper.c"
9236 #line 3406 "ripper.y"
9238 (yyval.
val) = new_args(p,
Qnone, (yyvsp[-3].val),
Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9240 #line 9236 "ripper.c"
9244 #line 3410 "ripper.y"
9246 (yyval.
val) = new_args(p,
Qnone,
Qnone, (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yyloc));
9248 #line 9244 "ripper.c"
9252 #line 3414 "ripper.y"
9254 (yyval.
val) = new_args(p,
Qnone,
Qnone, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9256 #line 9252 "ripper.c"
9260 #line 3418 "ripper.y"
9264 #line 9260 "ripper.c"
9268 #line 3425 "ripper.y"
9272 #line 9268 "ripper.c"
9276 #line 3431 "ripper.y"
9283 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8,v9,v10,v11;v1=
Qnil;v2=
Qnil;v3=
Qnil;v4=
Qnil;v5=
Qnil;v6=
Qnil;v7=
Qnil;v8=dispatch7(params,v1,v2,v3,v4,v5,v6,v7);v9=v8;v10=escape_Qundef((yyvsp[-1].val));v11=dispatch2(block_var,v9,v10);(yyval.
val)=v11;}
9285 #line 9281 "ripper.c"
9289 #line 3440 "ripper.y"
9294 (yyval.
val) = (yyvsp[-2].val);
9296 {
VALUE v1,v2,v3;v1=escape_Qundef((yyvsp[-2].val));v2=escape_Qundef((yyvsp[-1].val));v3=dispatch2(block_var,v1,v2);(yyval.
val)=v3;}
9298 #line 9294 "ripper.c"
9302 #line 3452 "ripper.y"
9306 #line 9302 "ripper.c"
9310 #line 3456 "ripper.y"
9315 (yyval.
val)=(yyvsp[-1].val);
9317 #line 9313 "ripper.c"
9321 #line 3465 "ripper.y"
9323 #line 9319 "ripper.c"
9327 #line 3467 "ripper.y"
9329 #line 9325 "ripper.c"
9333 #line 3471 "ripper.y"
9335 new_bv(p,
get_id((yyvsp[0].val)));
9338 #line 9334 "ripper.c"
9342 #line 3476 "ripper.y"
9346 #line 9342 "ripper.c"
9350 #line 3481 "ripper.y"
9352 (yyval.
vars) = dyna_push(p);
9354 #line 9350 "ripper.c"
9358 #line 3484 "ripper.y"
9363 #line 9359 "ripper.c"
9367 #line 3488 "ripper.y"
9372 #line 9368 "ripper.c"
9376 #line 3492 "ripper.y"
9378 (yyval.
node) = numparam_push(p);
9380 #line 9376 "ripper.c"
9384 #line 3496 "ripper.y"
9388 #line 9384 "ripper.c"
9392 #line 3500 "ripper.y"
9398 (yyvsp[-2].val) = args_with_numbered(p, (yyvsp[-2].val), max_numparam);
9401 YYLTYPE loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
9402 (yyval.
val) =
NEW_LAMBDA((yyvsp[-2].val), (yyvsp[0].val), &loc);
9407 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(lambda,v1,v2);(yyval.
val)=v3;}
9408 numparam_pop(p, (yyvsp[-3].node));
9409 dyna_pop(p, (yyvsp[-6].
vars));
9411 #line 9407 "ripper.c"
9415 #line 3521 "ripper.y"
9418 (yyval.
val) = (yyvsp[-2].val);
9421 {
VALUE v1,v2;v1=(yyvsp[-2].val);v2=dispatch1(paren,v1);(yyval.
val)=v2;}
9423 #line 9419 "ripper.c"
9427 #line 3529 "ripper.y"
9430 if (!args_info_empty_p((yyvsp[0].val)->
nd_ainfo))
9433 (yyval.
val) = (yyvsp[0].val);
9435 #line 9431 "ripper.c"
9439 #line 3539 "ripper.y"
9441 token_info_pop(p,
"}", &(yylsp[0]));
9442 (yyval.
val) = (yyvsp[-1].val);
9444 #line 9440 "ripper.c"
9448 #line 3544 "ripper.y"
9450 (yyval.
val) = (yyvsp[-1].val);
9452 #line 9448 "ripper.c"
9456 #line 3550 "ripper.y"
9458 (yyval.
val) = (yyvsp[-1].val);
9460 (yyval.
val)->
nd_body->nd_loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
9464 #line 9460 "ripper.c"
9468 #line 3560 "ripper.y"
9475 block_dup_check(p, (yyvsp[-1].val)->
nd_args, (yyvsp[0].val));
9477 (yyval.
val) = method_add_block(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9478 fixpos((yyval.
val), (yyvsp[-1].val));
9480 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(method_add_block,v1,v2);(yyval.
val)=v3;}
9482 #line 9478 "ripper.c"
9486 #line 3574 "ripper.y"
9489 (yyval.
val) = new_qcall(p, (yyvsp[-2].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
9491 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-3].val);v2=(yyvsp[-2].val);v3=(yyvsp[-1].val);v4=dispatch3(
call,v1,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=v6==
Qundef ? v5 : dispatch2(method_add_arg,v5,v6);(yyval.
val)=v7;}
9493 #line 9489 "ripper.c"
9497 #line 3581 "ripper.y"
9500 (yyval.
val) = new_command_qcall(p, (yyvsp[-3].val), (yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-2]), &(yyloc));
9502 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=(yyvsp[-3].val);v3=(yyvsp[-2].val);v4=(yyvsp[-1].val);v5=dispatch4(command_call,v1,v2,v3,v4);v6=v5;v7=(yyvsp[0].val);v8=v7==
Qundef ? v6 : dispatch2(method_add_block,v6,v7);(yyval.
val)=v8;}
9504 #line 9500 "ripper.c"
9508 #line 3588 "ripper.y"
9511 (yyval.
val) = new_command_qcall(p, (yyvsp[-3].val), (yyvsp[-4].val), (yyvsp[-2].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-2]), &(yyloc));
9513 {
VALUE v1,v2,v3,v4,v5,v6,v7,v8;v1=(yyvsp[-4].val);v2=(yyvsp[-3].val);v3=(yyvsp[-2].val);v4=(yyvsp[-1].val);v5=dispatch4(command_call,v1,v2,v3,v4);v6=v5;v7=(yyvsp[0].val);v8=dispatch2(method_add_block,v6,v7);(yyval.
val)=v8;}
9515 #line 9511 "ripper.c"
9519 #line 3597 "ripper.y"
9522 (yyval.
val) = (yyvsp[-1].val);
9526 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-1].val);v2=dispatch1(fcall,v1);v3=v2;v4=(yyvsp[0].val);v5=dispatch2(method_add_arg,v3,v4);(yyval.
val)=v5;}
9528 #line 9524 "ripper.c"
9532 #line 3606 "ripper.y"
9535 (yyval.
val) = new_qcall(p, (yyvsp[-2].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
9538 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-3].val);v2=(yyvsp[-2].val);v3=(yyvsp[-1].val);v4=dispatch3(
call,v1,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=v6==
Qundef ? v5 : dispatch2(method_add_arg,v5,v6);(yyval.
val)=v7;}
9540 #line 9536 "ripper.c"
9544 #line 3614 "ripper.y"
9547 (yyval.
val) = new_qcall(p,
ID2VAL(
idCOLON2), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
9550 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-3].val);v2=
ID2VAL(
idCOLON2);v3=(yyvsp[-1].val);v4=dispatch3(
call,v1,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=dispatch2(method_add_arg,v5,v6);(yyval.
val)=v7;}
9552 #line 9548 "ripper.c"
9556 #line 3622 "ripper.y"
9559 (yyval.
val) = new_qcall(p,
ID2VAL(
idCOLON2), (yyvsp[-2].val), (yyvsp[0].val),
Qnull, &(yylsp[0]), &(yyloc));
9563 #line 9559 "ripper.c"
9567 #line 3629 "ripper.y"
9570 (yyval.
val) = new_qcall(p, (yyvsp[-1].val), (yyvsp[-2].val),
ID2VAL(
idCall), (yyvsp[0].val), &(yylsp[-1]), &(yyloc));
9573 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=
ID2VAL(
idCall);v4=dispatch3(
call,v1,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=dispatch2(method_add_arg,v5,v6);(yyval.
val)=v7;}
9575 #line 9571 "ripper.c"
9579 #line 3637 "ripper.y"
9585 {
VALUE v1,v2,v3,v4,v5,v6,v7;v1=(yyvsp[-2].val);v2=
ID2VAL(
idCOLON2);v3=
ID2VAL(
idCall);v4=dispatch3(
call,v1,v2,v3);v5=v4;v6=(yyvsp[0].val);v7=dispatch2(method_add_arg,v5,v6);(yyval.
val)=v7;}
9587 #line 9583 "ripper.c"
9591 #line 3645 "ripper.y"
9596 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(super,v1);(yyval.
val)=v2;}
9598 #line 9594 "ripper.c"
9602 #line 3652 "ripper.y"
9607 {
VALUE v1;v1=dispatch0(zsuper);(yyval.
val)=v1;}
9609 #line 9605 "ripper.c"
9613 #line 3659 "ripper.y"
9620 fixpos((yyval.
val), (yyvsp[-3].val));
9622 {
VALUE v1,v2,v3;v1=(yyvsp[-3].val);v2=escape_Qundef((yyvsp[-1].val));v3=dispatch2(aref,v1,v2);(yyval.
val)=v3;}
9624 #line 9620 "ripper.c"
9628 #line 3672 "ripper.y"
9630 (yyval.
val) = (yyvsp[-1].val);
9632 (yyval.
val)->
nd_body->nd_loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
9636 #line 9632 "ripper.c"
9640 #line 3680 "ripper.y"
9642 (yyval.
val) = (yyvsp[-1].val);
9644 (yyval.
val)->
nd_body->nd_loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
9648 #line 9644 "ripper.c"
9652 #line 3689 "ripper.y"
9653 {(yyval.
vars) = dyna_push(p);}
9654 #line 9650 "ripper.c"
9658 #line 3690 "ripper.y"
9663 #line 9659 "ripper.c"
9667 #line 3694 "ripper.y"
9669 (yyval.
node) = numparam_push(p);
9671 #line 9667 "ripper.c"
9675 #line 3698 "ripper.y"
9679 (yyvsp[-1].val) = args_with_numbered(p, (yyvsp[-1].val), max_numparam);
9681 (yyval.
val) =
NEW_ITER((yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9683 {
VALUE v1,v2,v3;v1=escape_Qundef((yyvsp[-1].val));v2=(yyvsp[0].val);v3=dispatch2(brace_block,v1,v2);(yyval.
val)=v3;}
9684 numparam_pop(p, (yyvsp[-2].node));
9685 dyna_pop(p, (yyvsp[-4].
vars));
9687 #line 9683 "ripper.c"
9691 #line 3711 "ripper.y"
9692 {(yyval.
vars) = dyna_push(p);}
9693 #line 9689 "ripper.c"
9697 #line 3712 "ripper.y"
9702 #line 9698 "ripper.c"
9706 #line 3716 "ripper.y"
9708 (yyval.
node) = numparam_push(p);
9711 #line 9707 "ripper.c"
9715 #line 3721 "ripper.y"
9719 (yyvsp[-1].val) = args_with_numbered(p, (yyvsp[-1].val), max_numparam);
9721 (yyval.
val) =
NEW_ITER((yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9723 {
VALUE v1,v2,v3;v1=escape_Qundef((yyvsp[-1].val));v2=(yyvsp[0].val);v3=dispatch2(do_block,v1,v2);(yyval.
val)=v3;}
9725 numparam_pop(p, (yyvsp[-2].node));
9726 dyna_pop(p, (yyvsp[-4].
vars));
9728 #line 9724 "ripper.c"
9732 #line 3736 "ripper.y"
9735 check_literal_when(p, (yyvsp[0].val), &(yylsp[0]));
9738 {
VALUE v1,v2,v3,v4;v1=dispatch0(args_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(args_add,v2,v3);(yyval.
val)=v4;}
9740 #line 9736 "ripper.c"
9744 #line 3744 "ripper.y"
9749 {
VALUE v1,v2,v3,v4;v1=dispatch0(args_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(args_add_star,v2,v3);(yyval.
val)=v4;}
9751 #line 9747 "ripper.c"
9755 #line 3751 "ripper.y"
9758 check_literal_when(p, (yyvsp[0].val), &(yylsp[0]));
9759 (yyval.
val) = last_arg_append(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
9761 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(args_add,v1,v2);(yyval.
val)=v3;}
9763 #line 9759 "ripper.c"
9767 #line 3759 "ripper.y"
9770 (yyval.
val) = rest_arg_append(p, (yyvsp[-3].val), (yyvsp[0].val), &(yyloc));
9772 {
VALUE v1,v2,v3;v1=(yyvsp[-3].val);v2=(yyvsp[0].val);v3=dispatch2(args_add_star,v1,v2);(yyval.
val)=v3;}
9774 #line 9770 "ripper.c"
9778 #line 3770 "ripper.y"
9781 (yyval.
val) =
NEW_WHEN((yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9782 fixpos((yyval.
val), (yyvsp[-3].val));
9784 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-3].val);v2=(yyvsp[-1].val);v3=escape_Qundef((yyvsp[0].val));v4=dispatch3(when,v1,v2,v3);(yyval.
val)=v4;}
9786 #line 9782 "ripper.c"
9790 #line 3784 "ripper.y"
9797 #line 9793 "ripper.c"
9801 #line 3790 "ripper.y"
9802 {(yyval.
tbl) = push_pvtbl(p);}
9803 #line 9799 "ripper.c"
9807 #line 3791 "ripper.y"
9808 {(yyval.
tbl) = push_pktbl(p);}
9809 #line 9805 "ripper.c"
9813 #line 3793 "ripper.y"
9814 {pop_pktbl(p, (yyvsp[-2].tbl));}
9815 #line 9811 "ripper.c"
9819 #line 3794 "ripper.y"
9820 {pop_pvtbl(p, (yyvsp[-4].tbl));}
9821 #line 9817 "ripper.c"
9825 #line 3795 "ripper.y"
9829 #line 9825 "ripper.c"
9833 #line 3800 "ripper.y"
9836 (yyval.
val) =
NEW_IN((yyvsp[-6].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
9838 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-6].val);v2=(yyvsp[-1].val);v3=escape_Qundef((yyvsp[0].val));v4=dispatch3(in,v1,v2,v3);(yyval.
val)=v4;}
9840 #line 9836 "ripper.c"
9844 #line 3814 "ripper.y"
9847 (yyval.
val) = new_if(p, (yyvsp[0].val), remove_begin((yyvsp[-2].val)), 0, &(yyloc));
9848 fixpos((yyval.
val), (yyvsp[0].val));
9850 {
VALUE v1,v2,v3;v1=(yyvsp[0].val);v2=(yyvsp[-2].val);v3=dispatch2(if_mod,v1,v2);(yyval.
val)=v3;}
9852 #line 9848 "ripper.c"
9856 #line 3822 "ripper.y"
9859 (yyval.
val) = new_unless(p, (yyvsp[0].val), remove_begin((yyvsp[-2].val)), 0, &(yyloc));
9860 fixpos((yyval.
val), (yyvsp[0].val));
9862 {
VALUE v1,v2,v3;v1=(yyvsp[0].val);v2=(yyvsp[-2].val);v3=dispatch2(unless_mod,v1,v2);(yyval.
val)=v3;}
9864 #line 9860 "ripper.c"
9868 #line 3833 "ripper.y"
9870 (yyval.
val) = new_array_pattern_tail(p,
Qnone, 1, 0,
Qnone, &(yyloc));
9873 #line 9869 "ripper.c"
9877 #line 3838 "ripper.y"
9879 (yyval.
val) = new_array_pattern(p,
Qnone,
get_value((yyvsp[-2].val)), (yyvsp[0].val), &(yyloc));
9885 #line 9881 "ripper.c"
9889 #line 3846 "ripper.y"
9891 (yyval.
val) = new_array_pattern(p,
Qnone,
Qnone, (yyvsp[0].val), &(yyloc));
9893 #line 9889 "ripper.c"
9897 #line 3850 "ripper.y"
9899 (yyval.
val) = new_hash_pattern(p,
Qnone, (yyvsp[0].val), &(yyloc));
9901 #line 9897 "ripper.c"
9905 #line 3859 "ripper.y"
9909 n = list_append(p,
n, (yyvsp[0].val));
9910 (yyval.
val) = new_hash(p,
n, &(yyloc));
9912 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=
STATIC_ID2SYM(id_assoc);v3=(yyvsp[0].val);v4=dispatch3(binary,v1,v2,v3);(yyval.
val)=v4;}
9914 #line 9910 "ripper.c"
9918 #line 3871 "ripper.y"
9923 {
VALUE v1,v2,v3,v4;v1=(yyvsp[-2].val);v2=
STATIC_ID2SYM(
idOr);v3=(yyvsp[0].val);v4=dispatch3(binary,v1,v2,v3);(yyval.
val)=v4;}
9925 #line 9921 "ripper.c"
9929 #line 3880 "ripper.y"
9930 {(yyval.
tbl) = push_pktbl(p);}
9931 #line 9927 "ripper.c"
9935 #line 3881 "ripper.y"
9936 {(yyval.
tbl) = push_pktbl(p);}
9937 #line 9933 "ripper.c"
9941 #line 3885 "ripper.y"
9943 pop_pktbl(p, (yyvsp[-2].tbl));
9944 (yyval.
val) = new_array_pattern(p, (yyvsp[-3].val),
Qnone, (yyvsp[-1].val), &(yyloc));
9950 #line 9946 "ripper.c"
9954 #line 3894 "ripper.y"
9956 pop_pktbl(p, (yyvsp[-2].tbl));
9957 (yyval.
val) = new_hash_pattern(p, (yyvsp[-3].val), (yyvsp[-1].val), &(yyloc));
9963 #line 9959 "ripper.c"
9967 #line 3903 "ripper.y"
9969 (yyval.
val) = new_array_pattern_tail(p,
Qnone, 0, 0,
Qnone, &(yyloc));
9970 (yyval.
val) = new_array_pattern(p, (yyvsp[-2].val),
Qnone, (yyval.
val), &(yyloc));
9972 #line 9968 "ripper.c"
9976 #line 3908 "ripper.y"
9978 pop_pktbl(p, (yyvsp[-2].tbl));
9979 (yyval.
val) = new_array_pattern(p, (yyvsp[-3].val),
Qnone, (yyvsp[-1].val), &(yyloc));
9985 #line 9981 "ripper.c"
9989 #line 3917 "ripper.y"
9991 pop_pktbl(p, (yyvsp[-2].tbl));
9992 (yyval.
val) = new_hash_pattern(p, (yyvsp[-3].val), (yyvsp[-1].val), &(yyloc));
9998 #line 9994 "ripper.c"
10002 #line 3926 "ripper.y"
10004 (yyval.
val) = new_array_pattern_tail(p,
Qnone, 0, 0,
Qnone, &(yyloc));
10005 (yyval.
val) = new_array_pattern(p, (yyvsp[-2].val),
Qnone, (yyval.
val), &(yyloc));
10007 #line 10003 "ripper.c"
10011 #line 3930 "ripper.y"
10012 {(yyval.
tbl) = push_pktbl(p);}
10013 #line 10009 "ripper.c"
10017 #line 3931 "ripper.y"
10019 pop_pktbl(p, (yyvsp[-2].tbl));
10020 (yyval.
val) = new_array_pattern(p,
Qnone,
Qnone, (yyvsp[-1].val), &(yyloc));
10022 #line 10018 "ripper.c"
10026 #line 3936 "ripper.y"
10028 (yyval.
val) = new_array_pattern_tail(p,
Qnone, 0, 0,
Qnone, &(yyloc));
10031 #line 10027 "ripper.c"
10035 #line 3941 "ripper.y"
10037 (yyval.
tbl) = push_pktbl(p);
10041 #line 10037 "ripper.c"
10045 #line 3947 "ripper.y"
10047 pop_pktbl(p, (yyvsp[-2].tbl));
10049 (yyval.
val) = new_hash_pattern(p,
Qnone, (yyvsp[-1].val), &(yyloc));
10051 #line 10047 "ripper.c"
10055 #line 3953 "ripper.y"
10057 (yyval.
val) = new_hash_pattern_tail(p,
Qnone, 0, &(yyloc));
10058 (yyval.
val) = new_hash_pattern(p,
Qnone, (yyval.
val), &(yyloc));
10060 #line 10056 "ripper.c"
10064 #line 3957 "ripper.y"
10065 {(yyval.
tbl) = push_pktbl(p);}
10066 #line 10062 "ripper.c"
10070 #line 3958 "ripper.y"
10072 pop_pktbl(p, (yyvsp[-2].tbl));
10073 (yyval.
val) = (yyvsp[-1].val);
10075 #line 10071 "ripper.c"
10079 #line 3965 "ripper.y"
10083 (yyval.
val) = new_array_pattern_tail(p, pre_args, 0, 0,
Qnone, &(yyloc));
10088 #line 10084 "ripper.c"
10092 #line 3974 "ripper.y"
10094 (yyval.
val) = new_array_pattern_tail(p, (yyvsp[0].val), 1, 0,
Qnone, &(yyloc));
10096 #line 10092 "ripper.c"
10100 #line 3978 "ripper.y"
10103 (yyval.
val) = new_array_pattern_tail(p, list_concat((yyvsp[-1].val), (yyvsp[0].val)), 0, 0,
Qnone, &(yyloc));
10106 (yyval.
val) = new_array_pattern_tail(p, pre_args, 0, 0,
Qnone, &(yyloc));
10109 #line 10105 "ripper.c"
10113 #line 3987 "ripper.y"
10115 (yyval.
val) = new_array_pattern_tail(p, (yyvsp[-2].val), 1, (yyvsp[0].val),
Qnone, &(yyloc));
10117 #line 10113 "ripper.c"
10121 #line 3991 "ripper.y"
10123 (yyval.
val) = new_array_pattern_tail(p, (yyvsp[-4].val), 1, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
10125 #line 10121 "ripper.c"
10129 #line 3995 "ripper.y"
10131 (yyval.
val) = new_array_pattern_tail(p, (yyvsp[-1].val), 1, 0,
Qnone, &(yyloc));
10133 #line 10129 "ripper.c"
10137 #line 3999 "ripper.y"
10139 (yyval.
val) = new_array_pattern_tail(p, (yyvsp[-3].val), 1, 0, (yyvsp[0].val), &(yyloc));
10141 #line 10137 "ripper.c"
10145 #line 4006 "ripper.y"
10147 (yyval.
val) = (yyvsp[-1].val);
10149 #line 10145 "ripper.c"
10153 #line 4010 "ripper.y"
10156 (yyval.
val) = list_concat((yyvsp[-2].val), (yyvsp[-1].val));
10160 #line 10156 "ripper.c"
10164 #line 4019 "ripper.y"
10166 (yyval.
val) = new_array_pattern_tail(p,
Qnone, 1, (yyvsp[0].val),
Qnone, &(yyloc));
10168 #line 10164 "ripper.c"
10172 #line 4023 "ripper.y"
10174 (yyval.
val) = new_array_pattern_tail(p,
Qnone, 1, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
10176 #line 10172 "ripper.c"
10180 #line 4027 "ripper.y"
10182 (yyval.
val) = new_array_pattern_tail(p,
Qnone, 1, 0,
Qnone, &(yyloc));
10184 #line 10180 "ripper.c"
10188 #line 4031 "ripper.y"
10190 (yyval.
val) = new_array_pattern_tail(p,
Qnone, 1, 0, (yyvsp[0].val), &(yyloc));
10192 #line 10188 "ripper.c"
10196 #line 4038 "ripper.y"
10199 (yyval.
val) = list_concat((yyvsp[-2].val), (yyvsp[0].val));
10203 #line 10199 "ripper.c"
10207 #line 4047 "ripper.y"
10210 (yyval.
val) =
NEW_LIST((yyvsp[0].val), &(yyloc));
10214 #line 10210 "ripper.c"
10218 #line 4056 "ripper.y"
10220 (yyval.
val) = new_hash_pattern_tail(p, new_unique_key_hash(p, (yyvsp[-2].val), &(yyloc)), (yyvsp[0].val), &(yyloc));
10222 #line 10218 "ripper.c"
10226 #line 4060 "ripper.y"
10228 (yyval.
val) = new_hash_pattern_tail(p, new_unique_key_hash(p, (yyvsp[0].val), &(yyloc)), 0, &(yyloc));
10230 #line 10226 "ripper.c"
10234 #line 4064 "ripper.y"
10236 (yyval.
val) = new_hash_pattern_tail(p, new_unique_key_hash(p, (yyvsp[-1].val), &(yyloc)), 0, &(yyloc));
10238 #line 10234 "ripper.c"
10242 #line 4068 "ripper.y"
10244 (yyval.
val) = new_hash_pattern_tail(p, new_hash(p,
Qnone, &(yyloc)), (yyvsp[0].val), &(yyloc));
10246 #line 10242 "ripper.c"
10250 #line 4072 "ripper.y"
10252 (yyval.
val) = new_hash_pattern_tail(p, new_unique_key_hash(p, (yyvsp[-2].val), &(yyloc)),
ID2VAL(
idNil), &(yyloc));
10254 #line 10250 "ripper.c"
10258 #line 4076 "ripper.y"
10260 (yyval.
val) = new_hash_pattern_tail(p, new_hash(p,
Qnone, &(yyloc)),
ID2VAL(
idNil), &(yyloc));
10262 #line 10258 "ripper.c"
10266 #line 4082 "ripper.y"
10268 #line 10264 "ripper.c"
10272 #line 4084 "ripper.y"
10275 (yyval.
val) = list_concat((yyvsp[-2].val), (yyvsp[0].val));
10279 #line 10275 "ripper.c"
10283 #line 4093 "ripper.y"
10285 error_duplicate_pattern_key(p,
get_id((yyvsp[-1].val)), &(yylsp[-1]));
10291 #line 10287 "ripper.c"
10295 #line 4101 "ripper.y"
10297 error_duplicate_pattern_key(p,
get_id((yyvsp[0].val)), &(yylsp[0]));
10299 yyerror1(&(yylsp[0]),
"key must be valid as local variables");
10301 error_duplicate_pattern_variable(p,
get_id((yyvsp[0].val)), &(yylsp[0]));
10303 (yyval.
val) = list_append(p,
NEW_LIST(
NEW_LIT(
ID2SYM((yyvsp[0].val)), &(yyloc)), &(yyloc)), assignable(p, (yyvsp[0].val), 0, &(yyloc)));
10307 #line 10303 "ripper.c"
10311 #line 4116 "ripper.y"
10313 YYLTYPE loc = code_loc_gen(&(yylsp[-2]), &(yylsp[0]));
10316 NODE *node = dsym_node(p, (yyvsp[-1].val), &loc);
10320 if (ripper_is_node_yylval((yyvsp[-1].val)) &&
RNODE((yyvsp[-1].val))->nd_cval) {
10321 VALUE label =
RNODE((yyvsp[-1].val))->nd_cval;
10322 VALUE rval =
RNODE((yyvsp[-1].val))->nd_rval;
10328 yyerror1(&loc,
"symbol literal with interpolation is not allowed");
10332 #line 10328 "ripper.c"
10336 #line 4139 "ripper.y"
10338 (yyval.
val) = (yyvsp[0].val);
10340 #line 10336 "ripper.c"
10344 #line 4143 "ripper.y"
10348 #line 10344 "ripper.c"
10352 #line 4149 "ripper.y"
10356 #line 10352 "ripper.c"
10360 #line 4156 "ripper.y"
10365 (yyval.
val) =
NEW_DOT2((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
10367 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(dot2,v1,v2);(yyval.
val)=v3;}
10369 #line 10365 "ripper.c"
10373 #line 4165 "ripper.y"
10378 (yyval.
val) =
NEW_DOT3((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
10380 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(dot3,v1,v2);(yyval.
val)=v3;}
10382 #line 10378 "ripper.c"
10386 #line 4174 "ripper.y"
10390 loc.beg_pos = (yylsp[0]).end_pos;
10391 loc.end_pos = (yylsp[0]).end_pos;
10396 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=
Qnil;v3=dispatch2(dot2,v1,v2);(yyval.
val)=v3;}
10398 #line 10394 "ripper.c"
10402 #line 4186 "ripper.y"
10406 loc.beg_pos = (yylsp[0]).end_pos;
10407 loc.end_pos = (yylsp[0]).end_pos;
10412 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=
Qnil;v3=dispatch2(dot3,v1,v2);(yyval.
val)=v3;}
10414 #line 10410 "ripper.c"
10418 #line 4201 "ripper.y"
10422 loc.beg_pos = (yylsp[-1]).beg_pos;
10423 loc.end_pos = (yylsp[-1]).beg_pos;
10428 {
VALUE v1,v2,v3;v1=
Qnil;v2=(yyvsp[0].val);v3=dispatch2(dot2,v1,v2);(yyval.
val)=v3;}
10430 #line 10426 "ripper.c"
10434 #line 4213 "ripper.y"
10438 loc.beg_pos = (yylsp[-1]).beg_pos;
10439 loc.end_pos = (yylsp[-1]).beg_pos;
10444 {
VALUE v1,v2,v3;v1=
Qnil;v2=(yyvsp[0].val);v3=dispatch2(dot3,v1,v2);(yyval.
val)=v3;}
10446 #line 10442 "ripper.c"
10450 #line 4235 "ripper.y"
10453 if (!((yyval.
val) = gettable(p, (yyvsp[0].val), &(yyloc)))) (yyval.
val) =
NEW_BEGIN(0, &(yyloc));
10455 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(var_ref,v1);(yyval.
val)=v2;}
10457 #line 10453 "ripper.c"
10461 #line 4242 "ripper.y"
10463 token_info_push(p,
"->", &(yylsp[0]));
10465 #line 10461 "ripper.c"
10469 #line 4246 "ripper.y"
10471 (yyval.
val) = (yyvsp[0].val);
10476 #line 10472 "ripper.c"
10480 #line 4255 "ripper.y"
10483 error_duplicate_pattern_variable(p, (yyvsp[0].val), &(yylsp[0]));
10484 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
10486 (yyval.
val)=assignable(p, var_field(p, (yyvsp[0].val)));
10488 #line 10484 "ripper.c"
10492 #line 4265 "ripper.y"
10495 NODE *
n = gettable(p, (yyvsp[0].val), &(yyloc));
10501 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(var_ref,v1);(yyval.
val)=v2;}
10503 #line 10499 "ripper.c"
10507 #line 4278 "ripper.y"
10512 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(top_const_ref,v1);(yyval.
val)=v2;}
10514 #line 10510 "ripper.c"
10518 #line 4285 "ripper.y"
10521 (yyval.
val) =
NEW_COLON2((yyvsp[-2].val), (yyvsp[0].val), &(yyloc));
10523 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(const_path_ref,v1,v2);(yyval.
val)=v3;}
10525 #line 10521 "ripper.c"
10529 #line 4292 "ripper.y"
10532 (yyval.
val) = gettable(p, (yyvsp[0].val), &(yyloc));
10534 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(var_ref,v1);(yyval.
val)=v2;}
10536 #line 10532 "ripper.c"
10540 #line 4303 "ripper.y"
10544 (yyvsp[-3].val) ? block_append(p, node_assign(p, (yyvsp[-3].val),
NEW_ERRINFO(&(yylsp[-3])), &(yylsp[-3])), (yyvsp[-1].val)) : (yyvsp[-1].val),
10545 (yyvsp[0].val), &(yyloc));
10546 fixpos((yyval.
val), (yyvsp[-4].val)?(yyvsp[-4].val):(yyvsp[-1].val));
10548 {
VALUE v1,v2,v3,v4,v5;v1=escape_Qundef((yyvsp[-4].val));v2=escape_Qundef((yyvsp[-3].val));v3=escape_Qundef((yyvsp[-1].val));v4=escape_Qundef((yyvsp[0].val));v5=dispatch4(rescue,v1,v2,v3,v4);(yyval.
val)=v5;}
10550 #line 10546 "ripper.c"
10554 #line 4316 "ripper.y"
10557 (yyval.
val) =
NEW_LIST((yyvsp[0].val), &(yyloc));
10561 #line 10557 "ripper.c"
10565 #line 4323 "ripper.y"
10568 if (!((yyval.
val) = splat_array((yyvsp[0].val)))) (yyval.
val) = (yyvsp[0].val);
10570 (yyval.
val)=(yyvsp[0].val);
10572 #line 10568 "ripper.c"
10576 #line 4333 "ripper.y"
10578 (yyval.
val) = (yyvsp[0].val);
10580 #line 10576 "ripper.c"
10584 #line 4340 "ripper.y"
10587 (yyval.
val) = (yyvsp[0].val);
10589 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(ensure,v1);(yyval.
val)=v2;}
10591 #line 10587 "ripper.c"
10595 #line 4354 "ripper.y"
10598 NODE *node = (yyvsp[0].val);
10604 node = evstr2dstr(p, node);
10606 (yyval.
val) = node;
10608 (yyval.
val)=(yyvsp[0].val);
10610 #line 10606 "ripper.c"
10614 #line 4373 "ripper.y"
10617 (yyval.
val) = literal_concat(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
10619 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(string_concat,v1,v2);(yyval.
val)=v3;}
10621 #line 10617 "ripper.c"
10625 #line 4382 "ripper.y"
10628 (yyval.
val) = heredoc_dedent(p, (yyvsp[-1].val));
10629 if ((yyval.
val)) nd_set_loc((yyval.
val), &(yyloc));
10631 {
VALUE v1,v2;v1=heredoc_dedent(p, (yyvsp[-1].val));v2=dispatch1(string_literal,v1);(yyval.
val)=v2;}
10633 #line 10629 "ripper.c"
10637 #line 4392 "ripper.y"
10640 (yyval.
val) = new_xstring(p, heredoc_dedent(p, (yyvsp[-1].val)), &(yyloc));
10642 {
VALUE v1,v2;v1=heredoc_dedent(p, (yyvsp[-1].val));v2=dispatch1(xstring_literal,v1);(yyval.
val)=v2;}
10644 #line 10640 "ripper.c"
10648 #line 4401 "ripper.y"
10650 (yyval.
val) = new_regexp(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
10652 #line 10648 "ripper.c"
10656 #line 4407 "ripper.y"
10661 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(array,v1);(yyval.
val)=v2;}
10663 #line 10659 "ripper.c"
10667 #line 4416 "ripper.y"
10672 {
VALUE v1;v1=dispatch0(words_new);(yyval.
val)=v1;}
10674 #line 10670 "ripper.c"
10678 #line 4423 "ripper.y"
10681 (yyval.
val) = list_append(p, (yyvsp[-2].val), evstr2dstr(p, (yyvsp[-1].val)));
10683 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=dispatch2(words_add,v1,v2);(yyval.
val)=v3;}
10685 #line 10681 "ripper.c"
10689 #line 4432 "ripper.y"
10690 {{
VALUE v1,v2,v3,v4;v1=dispatch0(word_new);v2=v1;v3=(yyvsp[0].val);v4=dispatch2(word_add,v2,v3);(yyval.
val)=v4;}}
10691 #line 10687 "ripper.c"
10695 #line 4434 "ripper.y"
10698 (yyval.
val) = literal_concat(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
10700 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(word_add,v1,v2);(yyval.
val)=v3;}
10702 #line 10698 "ripper.c"
10706 #line 4443 "ripper.y"
10711 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(array,v1);(yyval.
val)=v2;}
10713 #line 10709 "ripper.c"
10717 #line 4452 "ripper.y"
10722 {
VALUE v1;v1=dispatch0(symbols_new);(yyval.
val)=v1;}
10724 #line 10720 "ripper.c"
10728 #line 4459 "ripper.y"
10731 (yyval.
val) = symbol_append(p, (yyvsp[-2].val), evstr2dstr(p, (yyvsp[-1].val)));
10733 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=dispatch2(symbols_add,v1,v2);(yyval.
val)=v3;}
10735 #line 10731 "ripper.c"
10739 #line 4468 "ripper.y"
10744 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(array,v1);(yyval.
val)=v2;}
10746 #line 10742 "ripper.c"
10750 #line 4477 "ripper.y"
10755 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(array,v1);(yyval.
val)=v2;}
10757 #line 10753 "ripper.c"
10761 #line 4486 "ripper.y"
10766 {
VALUE v1;v1=dispatch0(qwords_new);(yyval.
val)=v1;}
10768 #line 10764 "ripper.c"
10772 #line 4493 "ripper.y"
10775 (yyval.
val) = list_append(p, (yyvsp[-2].val), (yyvsp[-1].val));
10777 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=dispatch2(qwords_add,v1,v2);(yyval.
val)=v3;}
10779 #line 10775 "ripper.c"
10783 #line 4502 "ripper.y"
10788 {
VALUE v1;v1=dispatch0(qsymbols_new);(yyval.
val)=v1;}
10790 #line 10786 "ripper.c"
10794 #line 4509 "ripper.y"
10797 (yyval.
val) = symbol_append(p, (yyvsp[-2].val), (yyvsp[-1].val));
10799 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[-1].val);v3=dispatch2(qsymbols_add,v1,v2);(yyval.
val)=v3;}
10801 #line 10797 "ripper.c"
10805 #line 4518 "ripper.y"
10810 {
VALUE v1;v1=dispatch0(string_content);(yyval.
val)=v1;}
10813 (yyval.
val) = ripper_new_yylval(p, 0, (yyval.
val), 0);
10816 #line 10812 "ripper.c"
10820 #line 4529 "ripper.y"
10823 (yyval.
val) = literal_concat(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
10825 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(string_add,v1,v2);(yyval.
val)=v3;}
10828 if (ripper_is_node_yylval((yyvsp[-1].val)) && ripper_is_node_yylval((yyvsp[0].val)) &&
10829 !
RNODE((yyvsp[-1].val))->nd_cval) {
10830 RNODE((yyvsp[-1].val))->nd_cval =
RNODE((yyvsp[0].val))->nd_cval;
10831 RNODE((yyvsp[-1].val))->nd_rval = add_mark_object(p, (yyval.
val));
10832 (yyval.
val) = (yyvsp[-1].val);
10836 #line 10832 "ripper.c"
10840 #line 4547 "ripper.y"
10845 {
VALUE v1;v1=dispatch0(xstring_new);(yyval.
val)=v1;}
10847 #line 10843 "ripper.c"
10851 #line 4554 "ripper.y"
10854 (yyval.
val) = literal_concat(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
10856 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(xstring_add,v1,v2);(yyval.
val)=v3;}
10858 #line 10854 "ripper.c"
10862 #line 4563 "ripper.y"
10867 {
VALUE v1;v1=dispatch0(regexp_new);(yyval.
val)=v1;}
10870 (yyval.
val) = ripper_new_yylval(p, 0, (yyval.
val), 0);
10873 #line 10869 "ripper.c"
10877 #line 4574 "ripper.y"
10880 NODE *head = (yyvsp[-1].val), *tail = (yyvsp[0].val);
10882 (yyval.
val) = tail;
10885 (yyval.
val) = head;
10895 head = list_append(p,
NEW_DSTR(
Qnil, &(yyloc)), head);
10898 (yyval.
val) = list_append(p, head, tail);
10901 VALUE s1 = 1,
s2 = 0, n1 = (yyvsp[-1].val), n2 = (yyvsp[0].val);
10902 if (ripper_is_node_yylval(n1)) {
10903 s1 =
RNODE(n1)->nd_cval;
10904 n1 =
RNODE(n1)->nd_rval;
10906 if (ripper_is_node_yylval(n2)) {
10908 n2 =
RNODE(n2)->nd_rval;
10910 (yyval.
val) = dispatch2(regexp_add, n1, n2);
10912 (yyval.
val) = ripper_new_yylval(p, 0, (yyval.
val),
s2);
10916 #line 10912 "ripper.c"
10920 #line 4615 "ripper.y"
10921 {(yyval.
val)=ripper_new_yylval(p, 0,
get_value((yyvsp[0].val)), (yyvsp[0].val));}
10922 #line 10918 "ripper.c"
10926 #line 4617 "ripper.y"
10933 #line 10929 "ripper.c"
10937 #line 4624 "ripper.y"
10944 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(string_dvar,v1);(yyval.
val)=v2;}
10946 #line 10942 "ripper.c"
10950 #line 4633 "ripper.y"
10955 #line 10951 "ripper.c"
10959 #line 4637 "ripper.y"
10965 #line 10961 "ripper.c"
10969 #line 4642 "ripper.y"
10974 #line 10970 "ripper.c"
10978 #line 4646 "ripper.y"
10983 #line 10979 "ripper.c"
10987 #line 4650 "ripper.y"
10992 #line 10988 "ripper.c"
10996 #line 4655 "ripper.y"
11007 (yyval.
val) = new_evstr(p, (yyvsp[-1].val), &(yyloc));
11009 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(string_embexpr,v1);(yyval.
val)=v2;}
11011 #line 11007 "ripper.c"
11015 #line 4672 "ripper.y"
11018 (yyval.
val) =
NEW_GVAR((yyvsp[0].val), &(yyloc));
11020 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(var_ref,v1);(yyval.
val)=v2;}
11022 #line 11018 "ripper.c"
11026 #line 4679 "ripper.y"
11029 (yyval.
val) =
NEW_IVAR((yyvsp[0].val), &(yyloc));
11031 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(var_ref,v1);(yyval.
val)=v2;}
11033 #line 11029 "ripper.c"
11037 #line 4686 "ripper.y"
11040 (yyval.
val) =
NEW_CVAR((yyvsp[0].val), &(yyloc));
11042 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(var_ref,v1);(yyval.
val)=v2;}
11044 #line 11040 "ripper.c"
11048 #line 4700 "ripper.y"
11054 {
VALUE v1,v2,v3,v4;v1=(yyvsp[0].val);v2=dispatch1(symbol,v1);v3=v2;v4=dispatch1(symbol_literal,v3);(yyval.
val)=v4;}
11056 #line 11052 "ripper.c"
11060 #line 4716 "ripper.y"
11064 (yyval.
val) = dsym_node(p, (yyvsp[-1].val), &(yyloc));
11066 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(dyna_symbol,v1);(yyval.
val)=v2;}
11068 #line 11064 "ripper.c"
11072 #line 4727 "ripper.y"
11075 (yyval.
val) = (yyvsp[0].val);
11080 #line 11076 "ripper.c"
11084 #line 4749 "ripper.y"
11085 {(yyval.
val) =
KWD2EID(nil, (yyvsp[0].val));}
11086 #line 11082 "ripper.c"
11090 #line 4750 "ripper.y"
11091 {(yyval.
val) =
KWD2EID(
self, (yyvsp[0].val));}
11092 #line 11088 "ripper.c"
11096 #line 4751 "ripper.y"
11097 {(yyval.
val) =
KWD2EID(
true, (yyvsp[0].val));}
11098 #line 11094 "ripper.c"
11102 #line 4752 "ripper.y"
11103 {(yyval.
val) =
KWD2EID(
false, (yyvsp[0].val));}
11104 #line 11100 "ripper.c"
11108 #line 4753 "ripper.y"
11109 {(yyval.
val) =
KWD2EID(_FILE__, (yyvsp[0].val));}
11110 #line 11106 "ripper.c"
11114 #line 4754 "ripper.y"
11115 {(yyval.
val) =
KWD2EID(_LINE__, (yyvsp[0].val));}
11116 #line 11112 "ripper.c"
11120 #line 4755 "ripper.y"
11121 {(yyval.
val) =
KWD2EID(_ENCODING__, (yyvsp[0].val));}
11122 #line 11118 "ripper.c"
11126 #line 4759 "ripper.y"
11129 if (!((yyval.
val) = gettable(p, (yyvsp[0].val), &(yyloc)))) (yyval.
val) =
NEW_BEGIN(0, &(yyloc));
11131 if (id_is_var(p,
get_id((yyvsp[0].val)))) {
11132 (yyval.
val) = dispatch1(var_ref, (yyvsp[0].val));
11135 (yyval.
val) = dispatch1(vcall, (yyvsp[0].val));
11139 #line 11135 "ripper.c"
11143 #line 4772 "ripper.y"
11146 if (!((yyval.
val) = gettable(p, (yyvsp[0].val), &(yyloc)))) (yyval.
val) =
NEW_BEGIN(0, &(yyloc));
11148 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(var_ref,v1);(yyval.
val)=v2;}
11150 #line 11146 "ripper.c"
11154 #line 4781 "ripper.y"
11157 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
11159 (yyval.
val)=assignable(p, var_field(p, (yyvsp[0].val)));
11161 #line 11157 "ripper.c"
11165 #line 4788 "ripper.y"
11168 (yyval.
val) = assignable(p, (yyvsp[0].val), 0, &(yyloc));
11170 (yyval.
val)=assignable(p, var_field(p, (yyvsp[0].val)));
11172 #line 11168 "ripper.c"
11176 #line 4801 "ripper.y"
11181 #line 11177 "ripper.c"
11185 #line 4806 "ripper.y"
11187 (yyval.
val) = (yyvsp[-1].val);
11189 #line 11185 "ripper.c"
11193 #line 4810 "ripper.y"
11200 #line 11196 "ripper.c"
11204 #line 4819 "ripper.y"
11207 (yyval.
val) = (yyvsp[-1].val);
11209 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(paren,v1);(yyval.
val)=v2;}
11213 #line 11209 "ripper.c"
11217 #line 4828 "ripper.y"
11232 #line 11228 "ripper.c"
11236 #line 4842 "ripper.y"
11242 #line 11238 "ripper.c"
11246 #line 4848 "ripper.y"
11249 (yyval.
val) = (yyvsp[-1].val);
11253 #line 11249 "ripper.c"
11257 #line 4857 "ripper.y"
11259 (yyval.
val) = new_args_tail(p, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]));
11261 #line 11257 "ripper.c"
11265 #line 4861 "ripper.y"
11267 (yyval.
val) = new_args_tail(p, (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yylsp[-1]));
11269 #line 11265 "ripper.c"
11273 #line 4865 "ripper.y"
11275 (yyval.
val) = new_args_tail(p,
Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yylsp[-1]));
11277 #line 11273 "ripper.c"
11281 #line 4869 "ripper.y"
11285 #line 11281 "ripper.c"
11289 #line 4873 "ripper.y"
11291 (yyval.
val) = new_args_tail(p,
Qnone,
Qnone, (yyvsp[0].val), &(yylsp[0]));
11293 #line 11289 "ripper.c"
11297 #line 4879 "ripper.y"
11299 (yyval.
val) = (yyvsp[0].val);
11301 #line 11297 "ripper.c"
11305 #line 4883 "ripper.y"
11309 #line 11305 "ripper.c"
11313 #line 4889 "ripper.y"
11315 (yyval.
val) = new_args(p, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yyloc));
11317 #line 11313 "ripper.c"
11321 #line 4893 "ripper.y"
11323 (yyval.
val) = new_args(p, (yyvsp[-7].val), (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
11325 #line 11321 "ripper.c"
11329 #line 4897 "ripper.y"
11331 (yyval.
val) = new_args(p, (yyvsp[-3].val), (yyvsp[-1].val),
Qnone,
Qnone, (yyvsp[0].val), &(yyloc));
11333 #line 11329 "ripper.c"
11337 #line 4901 "ripper.y"
11339 (yyval.
val) = new_args(p, (yyvsp[-5].val), (yyvsp[-3].val),
Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
11341 #line 11337 "ripper.c"
11345 #line 4905 "ripper.y"
11347 (yyval.
val) = new_args(p, (yyvsp[-3].val),
Qnone, (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yyloc));
11349 #line 11345 "ripper.c"
11353 #line 4909 "ripper.y"
11355 (yyval.
val) = new_args(p, (yyvsp[-5].val),
Qnone, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
11357 #line 11353 "ripper.c"
11361 #line 4913 "ripper.y"
11363 (yyval.
val) = new_args(p, (yyvsp[-1].val),
Qnone,
Qnone,
Qnone, (yyvsp[0].val), &(yyloc));
11365 #line 11361 "ripper.c"
11369 #line 4917 "ripper.y"
11371 (yyval.
val) = new_args(p,
Qnone, (yyvsp[-3].val), (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yyloc));
11373 #line 11369 "ripper.c"
11377 #line 4921 "ripper.y"
11379 (yyval.
val) = new_args(p,
Qnone, (yyvsp[-5].val), (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
11381 #line 11377 "ripper.c"
11385 #line 4925 "ripper.y"
11387 (yyval.
val) = new_args(p,
Qnone, (yyvsp[-1].val),
Qnone,
Qnone, (yyvsp[0].val), &(yyloc));
11389 #line 11385 "ripper.c"
11393 #line 4929 "ripper.y"
11395 (yyval.
val) = new_args(p,
Qnone, (yyvsp[-3].val),
Qnone, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
11397 #line 11393 "ripper.c"
11401 #line 4933 "ripper.y"
11403 (yyval.
val) = new_args(p,
Qnone,
Qnone, (yyvsp[-1].val),
Qnone, (yyvsp[0].val), &(yyloc));
11405 #line 11401 "ripper.c"
11409 #line 4937 "ripper.y"
11411 (yyval.
val) = new_args(p,
Qnone,
Qnone, (yyvsp[-3].val), (yyvsp[-1].val), (yyvsp[0].val), &(yyloc));
11413 #line 11409 "ripper.c"
11417 #line 4941 "ripper.y"
11421 #line 11417 "ripper.c"
11425 #line 4945 "ripper.y"
11430 #line 11426 "ripper.c"
11434 #line 4952 "ripper.y"
11439 {
VALUE v1;v1=dispatch0(args_forward);(yyval.
val)=v1;}
11441 #line 11437 "ripper.c"
11445 #line 4961 "ripper.y"
11448 yyerror1(&(yylsp[0]),
"formal argument cannot be a constant");
11451 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(param_error,v1);(yyval.
val)=v2;}ripper_error(p);
11453 #line 11449 "ripper.c"
11457 #line 4969 "ripper.y"
11460 yyerror1(&(yylsp[0]),
"formal argument cannot be an instance variable");
11463 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(param_error,v1);(yyval.
val)=v2;}ripper_error(p);
11465 #line 11461 "ripper.c"
11469 #line 4977 "ripper.y"
11472 yyerror1(&(yylsp[0]),
"formal argument cannot be a global variable");
11475 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(param_error,v1);(yyval.
val)=v2;}ripper_error(p);
11477 #line 11473 "ripper.c"
11481 #line 4985 "ripper.y"
11484 yyerror1(&(yylsp[0]),
"formal argument cannot be a class variable");
11487 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(param_error,v1);(yyval.
val)=v2;}ripper_error(p);
11489 #line 11485 "ripper.c"
11493 #line 4996 "ripper.y"
11495 formal_argument(p,
get_id((yyvsp[0].val)));
11497 (yyval.
val) = (yyvsp[0].val);
11499 #line 11495 "ripper.c"
11503 #line 5004 "ripper.y"
11508 (yyval.
val) = (yyvsp[0].val);
11510 #line 11506 "ripper.c"
11514 #line 5013 "ripper.y"
11522 #line 11518 "ripper.c"
11526 #line 5021 "ripper.y"
11529 ID tid = internal_id(p);
11531 loc.beg_pos = (yylsp[-1]).beg_pos;
11532 loc.end_pos = (yylsp[-1]).beg_pos;
11534 if (dyna_in_block(p)) {
11543 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(mlhs_paren,v1);(yyval.
val)=v2;}
11545 #line 11541 "ripper.c"
11549 #line 5042 "ripper.y"
11551 #line 11547 "ripper.c"
11555 #line 5044 "ripper.y"
11558 (yyval.
val) = (yyvsp[-2].val);
11561 rb_discard_node(p, (yyvsp[0].val));
11565 #line 11561 "ripper.c"
11569 #line 5057 "ripper.y"
11572 arg_var(p, formal_argument(p,
id));
11575 (yyval.
val) = (yyvsp[0].val);
11577 #line 11573 "ripper.c"
11581 #line 5067 "ripper.y"
11585 (yyval.
val) = new_kw_arg(p, assignable(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)), &(yyloc));
11589 #line 11585 "ripper.c"
11593 #line 5075 "ripper.y"
11601 #line 11597 "ripper.c"
11605 #line 5085 "ripper.y"
11608 (yyval.
val) = new_kw_arg(p, assignable(p, (yyvsp[-1].val), (yyvsp[0].val), &(yyloc)), &(yyloc));
11612 #line 11608 "ripper.c"
11616 #line 5092 "ripper.y"
11623 #line 11619 "ripper.c"
11627 #line 5101 "ripper.y"
11630 (yyval.
val) = (yyvsp[0].val);
11634 #line 11630 "ripper.c"
11638 #line 5108 "ripper.y"
11641 (yyval.
val) = kwd_append((yyvsp[-2].val), (yyvsp[0].val));
11645 #line 11641 "ripper.c"
11649 #line 5118 "ripper.y"
11652 (yyval.
val) = (yyvsp[0].val);
11656 #line 11652 "ripper.c"
11660 #line 5125 "ripper.y"
11663 (yyval.
val) = kwd_append((yyvsp[-2].val), (yyvsp[0].val));
11667 #line 11663 "ripper.c"
11671 #line 5138 "ripper.y"
11675 {
VALUE v1,v2;v1=
Qnil;v2=dispatch1(nokw_param,v1);(yyval.
val)=v2;}
11677 #line 11673 "ripper.c"
11681 #line 5146 "ripper.y"
11683 arg_var(p, shadowing_lvar(p,
get_id((yyvsp[0].val))));
11685 (yyval.
val) = (yyvsp[0].val);
11687 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(kwrest_param,v1);(yyval.
val)=v2;}
11689 #line 11685 "ripper.c"
11693 #line 5154 "ripper.y"
11696 (yyval.
val) = internal_id(p);
11697 arg_var(p, (yyval.
val));
11699 {
VALUE v1,v2;v1=
Qnil;v2=dispatch1(kwrest_param,v1);(yyval.
val)=v2;}
11701 #line 11697 "ripper.c"
11705 #line 5164 "ripper.y"
11709 (yyval.
val) =
NEW_OPT_ARG(0, assignable(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc)), &(yyloc));
11713 #line 11709 "ripper.c"
11717 #line 5174 "ripper.y"
11721 (yyval.
val) =
NEW_OPT_ARG(0, assignable(p, (yyvsp[-2].val), (yyvsp[0].val), &(yyloc)), &(yyloc));
11725 #line 11721 "ripper.c"
11729 #line 5184 "ripper.y"
11732 (yyval.
val) = (yyvsp[0].val);
11736 #line 11732 "ripper.c"
11740 #line 5191 "ripper.y"
11743 (yyval.
val) = opt_arg_append((yyvsp[-2].val), (yyvsp[0].val));
11747 #line 11743 "ripper.c"
11751 #line 5200 "ripper.y"
11754 (yyval.
val) = (yyvsp[0].val);
11758 #line 11754 "ripper.c"
11762 #line 5207 "ripper.y"
11765 (yyval.
val) = opt_arg_append((yyvsp[-2].val), (yyvsp[0].val));
11769 #line 11765 "ripper.c"
11773 #line 5220 "ripper.y"
11775 arg_var(p, shadowing_lvar(p,
get_id((yyvsp[0].val))));
11777 (yyval.
val) = (yyvsp[0].val);
11779 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(rest_param,v1);(yyval.
val)=v2;}
11781 #line 11777 "ripper.c"
11785 #line 5228 "ripper.y"
11788 (yyval.
val) = internal_id(p);
11789 arg_var(p, (yyval.
val));
11791 {
VALUE v1,v2;v1=
Qnil;v2=dispatch1(rest_param,v1);(yyval.
val)=v2;}
11793 #line 11789 "ripper.c"
11797 #line 5242 "ripper.y"
11799 arg_var(p, shadowing_lvar(p,
get_id((yyvsp[0].val))));
11801 (yyval.
val) = (yyvsp[0].val);
11803 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(blockarg,v1);(yyval.
val)=v2;}
11805 #line 11801 "ripper.c"
11809 #line 5252 "ripper.y"
11811 (yyval.
val) = (yyvsp[0].val);
11813 #line 11809 "ripper.c"
11817 #line 5256 "ripper.y"
11821 #line 11817 "ripper.c"
11825 #line 5262 "ripper.y"
11828 (yyval.
val) = (yyvsp[0].val);
11830 #line 11826 "ripper.c"
11834 #line 5266 "ripper.y"
11836 #line 11832 "ripper.c"
11840 #line 5267 "ripper.y"
11843 switch (
nd_type((yyvsp[-1].val))) {
11852 yyerror1(&(yylsp[-1]),
"can't define singleton method for literals");
11858 (yyval.
val) = (yyvsp[-1].val);
11860 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(paren,v1);(yyval.
val)=v2;}
11862 #line 11858 "ripper.c"
11866 #line 5292 "ripper.y"
11869 (yyval.
val) = (yyvsp[-1].val);
11871 {
VALUE v1,v2;v1=(yyvsp[-1].val);v2=dispatch1(assoclist_from_args,v1);(yyval.
val)=v2;}
11873 #line 11869 "ripper.c"
11877 #line 5301 "ripper.y"
11879 #line 11875 "ripper.c"
11883 #line 5303 "ripper.y"
11886 NODE *assocs = (yyvsp[-2].val);
11887 NODE *tail = (yyvsp[0].val);
11892 if (assocs->nd_head &&
11896 tail = tail->nd_next->nd_head->nd_head;
11898 assocs = list_concat(assocs, tail);
11900 (yyval.
val) = assocs;
11904 #line 11900 "ripper.c"
11908 #line 5326 "ripper.y"
11915 (yyval.
val) = list_append(p,
NEW_LIST((yyvsp[-2].val), &(yyloc)), (yyvsp[0].val));
11917 {
VALUE v1,v2,v3;v1=(yyvsp[-2].val);v2=(yyvsp[0].val);v3=dispatch2(assoc_new,v1,v2);(yyval.
val)=v3;}
11919 #line 11915 "ripper.c"
11923 #line 5337 "ripper.y"
11928 {
VALUE v1,v2,v3;v1=(yyvsp[-1].val);v2=(yyvsp[0].val);v3=dispatch2(assoc_new,v1,v2);(yyval.
val)=v3;}
11930 #line 11926 "ripper.c"
11934 #line 5344 "ripper.y"
11937 YYLTYPE loc = code_loc_gen(&(yylsp[-3]), &(yylsp[-1]));
11938 (yyval.
val) = list_append(p,
NEW_LIST(dsym_node(p, (yyvsp[-2].val), &loc), &loc), (yyvsp[0].val));
11940 {
VALUE v1,v2,v3,v4,v5;v1=(yyvsp[-2].val);v2=dispatch1(dyna_symbol,v1);v3=v2;v4=(yyvsp[0].val);v5=dispatch2(assoc_new,v3,v4);(yyval.
val)=v5;}
11942 #line 11938 "ripper.c"
11946 #line 5352 "ripper.y"
11950 !((yyvsp[0].val)->
nd_head && (yyvsp[0].val)->nd_head->nd_alen)) {
11951 static VALUE empty_hash;
11959 (yyval.
val) = list_append(p,
NEW_LIST(0, &(yyloc)), (yyvsp[0].val));
11961 {
VALUE v1,v2;v1=(yyvsp[0].val);v2=dispatch1(assoc_splat,v1);(yyval.
val)=v2;}
11963 #line 11959 "ripper.c"
11967 #line 5420 "ripper.y"
11969 #line 11965 "ripper.c"
11973 #line 5421 "ripper.y"
11975 #line 11971 "ripper.c"
11979 #line 5425 "ripper.y"
11981 #line 11977 "ripper.c"
11985 #line 5429 "ripper.y"
11989 #line 11985 "ripper.c"
11993 #line 11989 "ripper.c"
12022 yystate = yypgoto[yyn -
YYNTOKENS] + *yyssp;
12023 if (0 <= yystate && yystate <=
YYLAST && yycheck[yystate] == *yyssp)
12024 yystate = yytable[yystate];
12043 #if ! YYERROR_VERBOSE
12046 # define YYSYNTAX_ERROR yysyntax_error (p, &yymsg_alloc, &yymsg, \
12049 char const *yymsgp =
YY_(
"syntax error");
12050 int yysyntax_error_status;
12052 if (yysyntax_error_status == 0)
12054 else if (yysyntax_error_status == 1)
12056 if (yymsg != yymsgbuf)
12062 yymsg_alloc =
sizeof yymsgbuf;
12063 yysyntax_error_status = 2;
12071 yyerror (&yylloc, p, yymsgp);
12072 if (yysyntax_error_status == 2)
12073 goto yyexhaustedlab;
12075 # undef YYSYNTAX_ERROR
12079 yyerror_range[1] = yylloc;
12081 if (yyerrstatus == 3)
12086 if (yychar <=
YYEOF)
12089 if (yychar ==
YYEOF)
12094 yydestruct (
"Error: discarding",
12095 yytoken, &
yylval, &yylloc, p);
12116 yyerror_range[1] = yylsp[1-yylen];
12134 yyn = yypact[yystate];
12140 yyn = yytable[yyn];
12150 yyerror_range[1] = *yylsp;
12151 yydestruct (
"Error: popping",
12152 yystos[yystate], yyvsp, yylsp, p);
12162 yyerror_range[2] = yylloc;
12189 #if !defined yyoverflow || YYERROR_VERBOSE
12194 yyerror (&yylloc, p,
YY_(
"memory exhausted"));
12205 yydestruct (
"Cleanup: discarding lookahead",
12206 yytoken, &
yylval, &yylloc, p);
12212 while (yyssp != yyss)
12214 yydestruct (
"Cleanup: popping",
12215 yystos[*yyssp], yyvsp, yylsp, p);
12222 #if YYERROR_VERBOSE
12223 if (yymsg != yymsgbuf)
12228 #line 5433 "ripper.y"
12233 # define yylval (*p->lval)
12242 # define set_yylval_node(x) { \
12243 YYLTYPE _cur_loc; \
12244 rb_parser_set_location(p, &_cur_loc); \
12245 yylval.node = (x); \
12247 # define set_yylval_str(x) \
12249 set_yylval_node(NEW_STR(x, &_cur_loc)); \
12250 RB_OBJ_WRITTEN(p->ast, Qnil, x); \
12252 # define set_yylval_literal(x) \
12254 set_yylval_node(NEW_LIT(x, &_cur_loc)); \
12255 RB_OBJ_WRITTEN(p->ast, Qnil, x); \
12257 # define set_yylval_num(x) (yylval.num = (x))
12258 # define set_yylval_id(x) (yylval.id = (x))
12259 # define set_yylval_name(x) (yylval.id = (x))
12260 # define yylval_id() (yylval.id)
12262 static inline VALUE
12265 return ripper_new_yylval(p, x,
ID2SYM(x), 0);
12267 # define set_yylval_str(x) (yylval.val = add_mark_object(p, (x)))
12268 # define set_yylval_num(x) (yylval.val = ripper_new_yylval(p, (x), 0, 0))
12269 # define set_yylval_id(x) (void)(x)
12270 # define set_yylval_name(x) (void)(yylval.val = ripper_yylval_id(p, x))
12271 # define set_yylval_literal(x) add_mark_object(p, (x))
12272 # define set_yylval_node(x) (void)(x)
12273 # define yylval_id() yylval.id
12274 # define _cur_loc NULL_LOC
12277 #define set_yylval_noname() set_yylval_id(keyword_nil)
12280 #define literal_flush(p, ptr) ((p)->lex.ptok = (ptr))
12281 #define dispatch_scan_event(p, t) ((void)0)
12282 #define dispatch_delayed_token(p, t) ((void)0)
12283 #define has_delayed_token(p) (0)
12285 #define literal_flush(p, ptr) ((void)(ptr))
12287 #define yylval_rval (*(RB_TYPE_P(yylval.val, T_NODE) ? &yylval.node->nd_rval : &yylval.val))
12289 static inline VALUE
12290 intern_sym(
const char *
name)
12307 VALUE rval = ripper_dispatch1(p, ripper_token2eventid(t),
str);
12315 if (!ripper_has_scan_event(p))
return;
12316 add_mark_object(p, yylval_rval = ripper_scan_event_val(p, t));
12318 #define dispatch_scan_event(p, t) ripper_dispatch_scan_event(p, t)
12324 const char *saved_tokp = p->
lex.
ptok;
12326 if (
NIL_P(p->delayed.token))
return;
12329 add_mark_object(p, yylval_rval = ripper_dispatch1(p, ripper_token2eventid(t), p->delayed.token));
12330 p->delayed.token =
Qnil;
12334 #define dispatch_delayed_token(p, t) ripper_dispatch_delayed_token(p, t)
12335 #define has_delayed_token(p) (!NIL_P(p->delayed.token))
12362 int column = 1, nonspc = 0,
i;
12364 if (*
ptr ==
'\t') {
12368 if (*
ptr !=
' ' && *
ptr !=
'\t') {
12374 ptinfo->
indent = column;
12375 ptinfo->
nonspc = nonspc;
12387 token_info_setup(ptinfo, p->
lex.
pbeg, loc);
12397 if (!ptinfo_beg)
return;
12401 token_info_warn(p,
token, ptinfo_beg, 1, loc);
12408 token_info ptinfo_end_body, *ptinfo_end = &ptinfo_end_body;
12410 if (!ptinfo_beg)
return;
12411 token_info_setup(ptinfo_end, p->
lex.
pbeg, loc);
12415 if (!same && ptinfo_beg->
indent < ptinfo_end->
indent)
return;
12417 "mismatched indentations at '%s' with '%s' at %d",
12443 else if (yylloc->beg_pos.lineno == lineno) {
12462 (yylloc->beg_pos.lineno == yylloc->end_pos.lineno &&
12463 yylloc->beg_pos.column == yylloc->end_pos.column)) {
12467 parser_show_error_line(p, yylloc);
12475 const int max_line_margin = 30;
12476 const char *
ptr, *ptr_end, *pt, *pb;
12477 const char *pre =
"", *post =
"", *pend;
12478 const char *code =
"", *caret =
"";
12485 if (!yylloc)
return;
12487 if (pend > pbeg && pend[-1] ==
'\n') {
12488 if (--pend > pbeg && pend[-1] ==
'\r') --pend;
12492 if (lineno == yylloc->end_pos.lineno &&
12493 (pend - pbeg) > yylloc->end_pos.column) {
12494 pt = pbeg + yylloc->end_pos.column;
12497 ptr = ptr_end = pt;
12498 lim =
ptr - pbeg > max_line_margin ?
ptr - max_line_margin : pbeg;
12499 while ((lim <
ptr) && (*(
ptr-1) !=
'\n'))
ptr--;
12501 lim = pend - ptr_end > max_line_margin ? ptr_end + max_line_margin : pend;
12502 while ((ptr_end < lim) && (*ptr_end !=
'\n') && (*ptr_end !=
'\r')) ptr_end++;
12508 if (
ptr > pbeg) pre =
"...";
12510 if (ptr_end < pend) {
12512 if (ptr_end < pend) post =
"...";
12516 if (lineno == yylloc->beg_pos.lineno) {
12517 pb += yylloc->beg_pos.column;
12518 if (pb > pt) pb = pt;
12521 if (len <= 4 && yylloc->beg_pos.lineno == yylloc->end_pos.lineno) {
12524 if (
RTEST(errbuf)) {
12533 #define CSI_BEGIN "\033["
12534 #define CSI_SGR "m"
12544 (
int)(pt - pb), pb,
12545 (
int)(ptr_end - pt), pt,
12552 lim = pt < pend ? pt : pend;
12559 *p2++ = *
ptr++ ==
'\t' ?
'\t' :
' ';
12570 pre, (
int)
len, code, post,
12579 const char *pcur = 0, *ptok = 0;
12588 dispatch1(parse_error,
STR_NEW2(msg));
12605 vtable_size(
const struct vtable *tbl)
12631 #define vtable_alloc(prev) vtable_alloc_gen(p, __LINE__, prev)
12649 #define vtable_free(tbl) vtable_free_gen(p, __LINE__, #tbl, tbl)
12665 if (
tbl->pos ==
tbl->capa) {
12666 tbl->capa =
tbl->capa * 2;
12671 #define vtable_add(tbl, id) vtable_add_gen(p, __LINE__, #tbl, tbl, id)
12682 if (
tbl->pos <
n) {
12688 #define vtable_pop(tbl, n) vtable_pop_gen(p, __LINE__, #tbl, tbl, n)
12692 vtable_included(
const struct vtable *
tbl,
ID id)
12697 for (
i = 0;
i <
tbl->pos;
i++) {
12698 if (
tbl->tbl[
i] ==
id) {
12712 debug_lines(
VALUE fname)
12715 CONST_ID(script_lines,
"SCRIPT_LINES__");
12751 if (!e_option_supplied(p)) {
12757 #define RUBY_DTRACE_PARSE_HOOK(name) \
12758 if (RUBY_DTRACE_PARSE_##name##_ENABLED()) { \
12759 RUBY_DTRACE_PARSE_##name(p->ruby_sourcefile, p->ruby_sourceline); \
12784 NODE *body = parser_append_options(p, tree->nd_body);
12788 tree->nd_body = prelude;
12800 if (
NIL_P(fname)) {
12820 must_be_ascii_compatible(
VALUE s)
12832 char *beg, *end, *start;
12844 if (end)
len = ++end - beg;
12853 if (
NIL_P(line))
return line;
12854 must_be_ascii_compatible(line);
12880 return yycompile(vparser, p, fname, line);
12892 must_be_ascii_compatible(s);
12893 return parser_compile_string(vparser,
f, s, line);
12915 return yycompile(vparser, p, fname, start);
12931 p->
lex.
gets = lex_generic_gets;
12936 return yycompile(vparser, p, fname, start);
12940 #define STR_FUNC_ESCAPE 0x01
12941 #define STR_FUNC_EXPAND 0x02
12942 #define STR_FUNC_REGEXP 0x04
12943 #define STR_FUNC_QWORDS 0x08
12944 #define STR_FUNC_SYMBOL 0x10
12945 #define STR_FUNC_INDENT 0x20
12946 #define STR_FUNC_LABEL 0x40
12947 #define STR_FUNC_LIST 0x4000
12948 #define STR_FUNC_TERM 0x8000
12979 #define lex_goto_eol(p) ((p)->lex.pcur = (p)->lex.pend)
12980 #define lex_eol_p(p) ((p)->lex.pcur >= (p)->lex.pend)
12981 #define lex_eol_n_p(p,n) ((p)->lex.pcur+(n) >= (p)->lex.pend)
12982 #define peek(p,c) peek_n(p, (c), 0)
12983 #define peek_n(p,c,n) (!lex_eol_n_p(p, n) && (c) == (unsigned char)(p)->lex.pcur[n])
12984 #define peekc(p) peekc_n(p, 0)
12985 #define peekc_n(p,n) (lex_eol_n_p(p, n) ? -1 : (unsigned char)(p)->lex.pcur[n])
13003 #define add_delayed_token(p, tok, end) ((void)(tok), (void)(end))
13048 if (
peek(p,
'\n')) {
13055 rb_warn0(
"encountered \\r in middle of line, treated as a mere space");
13070 c = parser_cr(p, c);
13079 if (c == -1)
return;
13086 #define was_bol(p) ((p)->lex.pcur == (p)->lex.pbeg + 1)
13088 #define tokfix(p) ((p)->tokenbuf[(p)->tokidx]='\0')
13089 #define tok(p) (p)->tokenbuf
13090 #define toklen(p) (p)->tokidx
13096 while (ptr < p->
lex.pend) {
13097 int c = (
unsigned char)*
ptr++;
13098 int eol = (c ==
'\n' || c ==
'#');
13159 #define tokcopy(p, n) memcpy(tokspace(p, n), (p)->lex.pcur - (n), (n))
13162 escaped_control_code(
int c)
13188 #define WARN_SPACE_CHAR(c, prefix) \
13189 rb_warn1("invalid character syntax; use "prefix"\\%c", WARN_I(c2))
13193 int regexp_literal,
int wide)
13199 if (wide ? (numlen == 0 || numlen > 6) : (numlen < 4)) {
13200 yyerror0(
"invalid Unicode escape");
13201 return wide && numlen > 0;
13203 if (codepoint > 0x10ffff) {
13204 yyerror0(
"invalid Unicode codepoint (too large)");
13207 if ((codepoint & 0xfffff800) == 0xd800) {
13208 yyerror0(
"invalid Unicode codepoint");
13211 if (regexp_literal) {
13214 else if (codepoint >= 0x80) {
13216 if (*encp && utf8 != *encp) {
13219 parser_show_error_line(p, &loc);
13223 tokaddmbc(p, codepoint, *encp);
13226 tokadd(p, codepoint);
13234 int term,
int symbol_literal,
int regexp_literal)
13241 static const char multiple_codepoints[] =
"Multiple codepoints at single character literal";
13243 const int open_brace =
'{', close_brace =
'}';
13245 if (regexp_literal) { tokadd(p,
'\\'); tokadd(p,
'u'); }
13247 if (
peek(p, open_brace)) {
13248 const char *second =
NULL;
13249 int c,
last = nextc(p);
13252 while (c != close_brace) {
13253 if (c ==
term)
goto unterminated;
13254 if (second == multiple_codepoints)
13256 if (regexp_literal) tokadd(p,
last);
13257 if (!tokadd_codepoint(p, encp, regexp_literal,
TRUE)) {
13264 if (
term == -1 && !second)
13265 second = multiple_codepoints;
13268 if (c != close_brace) {
13271 yyerror0(
"unterminated Unicode escape");
13274 if (second && second != multiple_codepoints) {
13284 if (regexp_literal) tokadd(p, close_brace);
13288 if (!tokadd_codepoint(p, encp, regexp_literal,
FALSE)) {
13295 #define ESCAPE_CONTROL 1
13296 #define ESCAPE_META 2
13304 switch (c = nextc(p)) {
13329 case '0':
case '1':
case '2':
case '3':
13330 case '4':
case '5':
case '6':
case '7':
13337 c = tok_hex(p, &numlen);
13338 if (numlen == 0)
return 0;
13349 if ((c = nextc(p)) !=
'-') {
13352 if ((c = nextc(p)) ==
'\\') {
13353 if (
peek(p,
'u'))
goto eof;
13354 return read_escape(p, flags|
ESCAPE_META, encp) | 0x80;
13356 else if (c == -1 || !
ISASCII(c))
goto eof;
13358 int c2 = escaped_control_code(c);
13367 else if (
ISCNTRL(c))
goto eof;
13368 return ((c & 0xff) | 0x80);
13372 if ((c = nextc(p)) !=
'-') {
13377 if ((c = nextc(p))==
'\\') {
13378 if (
peek(p,
'u'))
goto eof;
13383 else if (c == -1 || !
ISASCII(c))
goto eof;
13385 int c2 = escaped_control_code(c);
13404 else if (
ISCNTRL(c))
goto eof;
13410 yyerror0(
"Invalid escape character syntax");
13434 switch (c = nextc(p)) {
13438 case '0':
case '1':
case '2':
case '3':
13439 case '4':
case '5':
case '6':
case '7':
13442 if (numlen == 0)
goto eof;
13450 tok_hex(p, &numlen);
13451 if (numlen == 0)
return -1;
13458 if ((c = nextc(p)) !=
'-') {
13468 if ((c = nextc(p)) !=
'-') {
13480 if ((c = nextc(p)) ==
'\\') {
13483 else if (c == -1)
goto eof;
13489 yyerror0(
"Invalid escape character syntax");
13509 while (c = nextc(p),
ISALPHA(c)) {
13533 parser_show_error_line(p, &loc);
13541 int len = parser_precise_mbclen(p, p->
lex.
pcur-1);
13542 if (
len < 0)
return -1;
13550 simple_re_meta(
int c)
13553 case '$':
case '*':
case '+':
case '.':
13554 case '?':
case '^':
case '|':
13555 case ')':
case ']':
case '}':
case '>':
13563 parser_update_heredoc_indent(
struct parser_params *p,
int c)
13573 else if (c ==
'\t') {
13578 else if (c !=
'\n') {
13594 parser_show_error_line(p, &loc);
13600 const char *pos = p->
lex.
pcur;
13602 parser_mixed_error(p, enc1, enc2);
13608 int func,
int term,
int paren,
long *nest,
13612 bool erred =
false;
13614 #define mixed_error(enc1, enc2) \
13615 (void)(erred || (parser_mixed_error(p, enc1, enc2), erred = true))
13616 #define mixed_escape(beg, enc1, enc2) \
13617 (void)(erred || (parser_mixed_escape(p, beg, enc1, enc2), erred = true))
13619 while ((c = nextc(p)) != -1) {
13621 parser_update_heredoc_indent(p, c);
13624 if (paren && c == paren) {
13627 else if (c ==
term) {
13628 if (!nest || !*nest) {
13636 if (c2 ==
'$' || c2 ==
'@' || c2 ==
'{') {
13641 else if (c ==
'\\') {
13673 if (c == -1)
return -1;
13679 if (c ==
term && !simple_re_meta(c)) {
13684 if ((c = tokadd_escape(p,
enc)) < 0)
13686 if (*
enc && *
enc != *encp) {
13694 c = read_escape(p, 0,
enc);
13699 else if (c !=
term && !(paren && c == paren)) {
13706 else if (!parser_isascii(p)) {
13711 else if (*
enc != *encp) {
13715 if (tokadd_mbchar(p, c) == -1)
return -1;
13726 else if (*
enc != *encp) {
13745 #define NEW_STRTERM(func, term, paren) \
13746 new_strterm((VALUE)(func), (VALUE)(paren), (VALUE)(term), 0)
13753 if (!ripper_is_node_yylval(content))
13754 content = ripper_new_yylval(p, 0, 0, content);
13765 if (
yylval.val != content)
13770 #define flush_string_content(p, enc) ((void)(enc))
13777 #define BIT(c, idx) (((c) / 32 - 1 == idx) ? (1U << ((c) % 32)) : 0)
13778 #define SPECIAL_PUNCT(idx) ( \
13779 BIT('~', idx) | BIT('*', idx) | BIT('$', idx) | BIT('?', idx) | \
13780 BIT('!', idx) | BIT('@', idx) | BIT('/', idx) | BIT('\\', idx) | \
13781 BIT(';', idx) | BIT(',', idx) | BIT('.', idx) | BIT('=', idx) | \
13782 BIT(':', idx) | BIT('<', idx) | BIT('>', idx) | BIT('\"', idx) | \
13783 BIT('&', idx) | BIT('`', idx) | BIT('\'', idx) | BIT('+', idx) | \
13791 #undef SPECIAL_PUNCT
13804 if ((c = *
ptr) ==
'-') {
13808 else if (is_global_name_punct(c) ||
ISDIGIT(c)) {
13813 if ((c = *
ptr) ==
'@') {
13830 #define IS_ARG() IS_lex_state(EXPR_ARG_ANY)
13831 #define IS_END() IS_lex_state(EXPR_END_ANY)
13832 #define IS_BEG() (IS_lex_state(EXPR_BEG_ANY) || IS_lex_state_all(EXPR_ARG|EXPR_LABELED))
13833 #define IS_SPCARG(c) (IS_ARG() && space_seen && !ISSPACE(c))
13834 #define IS_LABEL_POSSIBLE() (\
13835 (IS_lex_state(EXPR_LABEL|EXPR_ENDFN) && !cmd_state) || \
13837 #define IS_LABEL_SUFFIX(n) (peek_n(p, ':',(n)) && !peek_n(p, ':', (n)+1))
13838 #define IS_AFTER_OPERATOR() IS_lex_state(EXPR_FNAME | EXPR_DOT)
13878 do {c = nextc(p);}
while (
ISSPACE(c));
13892 return parser_string_term(p, func);
13901 int t = parser_peek_variable_name(p);
13907 if (tokadd_string(p, func,
term, paren, "e->
u0.
nest,
13908 &
enc, &base_enc) == -1) {
13911 # define unterminated_literal(mesg) yyerror0(mesg)
13913 # define unterminated_literal(mesg) compile_error(p, mesg)
13948 int c = nextc(p),
term, func = 0, quote = 0;
13957 else if (c ==
'~') {
13977 while ((c = nextc(p)) !=
term) {
13978 if (c == -1 || c ==
'\r' || c ==
'\n') {
13979 yyerror(
NULL, p,
"unterminated here document identifier");
13986 if (!parser_is_identchar(p)) {
13989 pushback(p, indent > 0 ?
'~' :
'-');
13995 int n = parser_precise_mbclen(p, p->
lex.
pcur-1);
13996 if (
n < 0)
return 0;
13998 }
while ((c = nextc(p)) != -1 && parser_is_identchar(p));
14005 yyerror(
NULL, p,
"too long here document identifier");
14015 here->
quote = quote;
14043 dedent_string(
VALUE string,
int width)
14050 for (
i = 0;
i <
len && col < width;
i++) {
14051 if (
str[
i] ==
' ') {
14054 else if (
str[
i] ==
'\t') {
14056 if (
n > width)
break;
14077 NODE *node, *str_node, *prev_node;
14079 VALUE prev_lit = 0;
14081 if (indent <= 0)
return root;
14083 if (!root)
return root;
14085 prev_node = node = str_node = root;
14089 VALUE lit = str_node->nd_lit;
14091 dedent_string(lit, indent);
14096 else if (!literal_concat0(p, prev_lit, lit)) {
14100 NODE *end = node->nd_end;
14101 node = prev_node->nd_next = node->nd_next;
14107 node->nd_end = end;
14112 while ((node = (prev_node = node)->
nd_next) != 0) {
14115 if ((str_node = node->nd_head) != 0) {
14131 if (indent <= 0)
return array;
14133 dispatch2(heredoc_dedent, array,
INT2NUM(indent));
14153 col = dedent_string(
input, wid);
14159 whole_match_p(
struct parser_params *p,
const char *eos,
long len,
int indent)
14168 if (
n < 0)
return FALSE;
14169 if (
n > 0 &&
ptr[
len] !=
'\n') {
14184 case '\0':
case '\004':
case '\032':
return 1;
14189 #define NUM_SUFFIX_R (1<<0)
14190 #define NUM_SUFFIX_I (1<<1)
14191 #define NUM_SUFFIX_ALL 3
14197 const char *lastp = p->
lex.
pcur;
14199 while ((c = nextc(p)) != -1) {
14244 return set_number_literal(p,
v,
type, suffix);
14261 #define dispatch_heredoc_end(p) ((void)0)
14267 int c, func, indent = 0;
14268 const char *eos, *
ptr, *ptr_end;
14279 if ((c = nextc(p)) == -1) {
14303 compile_error(p,
"can't find string \"%.*s\" anywhere before EOF",
14321 else if (whole_match_p(p, eos,
len, indent)) {
14335 if (ptr_end >
ptr) {
14336 switch (ptr_end[-1]) {
14338 if (--ptr_end ==
ptr || ptr_end[-1] !=
'\r') {
14349 while (
ptr +
i < ptr_end && parser_update_heredoc_indent(p,
ptr[
i]))
14363 if (nextc(p) == -1) {
14369 }
while (!whole_match_p(p, eos,
len, indent));
14375 int t = parser_peek_variable_name(p);
14389 if ((c = tokadd_string(p, func,
'\n', 0,
NULL, &
enc, &base_enc)) == -1) {
14405 tokadd(p, nextc(p));
14411 if ((c = nextc(p)) == -1)
goto error;
14412 }
while (!whole_match_p(p, eos,
len, indent));
14436 rb_warning1(
"ambiguous first argument; put parentheses or a space even after `%c' operator",
WARN_I(c));
14446 switch (id_type(lhs)) {
14451 yyerror0(
"formal argument cannot be a constant");
14454 yyerror0(
"formal argument cannot be an instance variable");
14457 yyerror0(
"formal argument cannot be a global variable");
14460 yyerror0(
"formal argument cannot be a class variable");
14463 yyerror0(
"formal argument must be local variable");
14467 lhs = dispatch1(param_error, lhs);
14472 shadowing_lvar(p, lhs);
14479 return (dyna_in_block(p) && dvar_defined(p,
id)) || local_id(p,
id);
14488 if (
len > 5 &&
name[nlen =
len - 5] ==
'-') {
14492 if (
len > 4 &&
name[nlen =
len - 4] ==
'-') {
14528 for (
i = 0;
i <
n; ++
i) {
14540 while (
ptr < ptr_end) {
14551 magic_comment_encoding(
struct parser_params *p,
const char *
name,
const char *val)
14553 if (!comment_at_top(p)) {
14556 parser_set_encode(p, val);
14563 case 't':
case 'T':
14568 case 'f':
case 'F':
14579 parser_set_token_info(
struct parser_params *p,
const char *
name,
const char *val)
14581 int b = parser_get_bool(p,
name, val);
14586 parser_set_compile_option_flag(
struct parser_params *p,
const char *
name,
const char *val)
14595 b = parser_get_bool(p,
name, val);
14604 # if WARN_PAST_SCOPE
14606 parser_set_past_scope(
struct parser_params *p,
const char *
name,
const char *val)
14608 int b = parser_get_bool(p,
name, val);
14609 if (b >= 0) p->past_scope_enabled = b;
14620 {
"coding", magic_comment_encoding, parser_encode_length},
14621 {
"encoding", magic_comment_encoding, parser_encode_length},
14622 {
"frozen_string_literal", parser_set_compile_option_flag},
14623 {
"warn_indent", parser_set_token_info},
14624 # if WARN_PAST_SCOPE
14625 {
"warn_past_scope", parser_set_past_scope},
14629 static const char *
14630 magic_comment_marker(
const char *
str,
long len)
14637 if (
str[
i-1] ==
'*' &&
str[
i-2] ==
'-') {
14638 return str +
i + 1;
14643 if (
i + 1 >=
len)
return 0;
14644 if (
str[
i+1] !=
'-') {
14647 else if (
str[
i-1] !=
'-') {
14651 return str +
i + 2;
14667 const char *beg, *end, *vbeg, *vend;
14668 #define str_copy(_s, _p, _n) ((_s) \
14669 ? (void)(rb_str_resize((_s), (_n)), \
14670 MEMCPY(RSTRING_PTR(_s), (_p), char, (_n)), (_s)) \
14671 : (void)((_s) = STR_NEW((_p), (_n))))
14674 if (!!(beg = magic_comment_marker(
str,
len))) {
14675 if (!(end = magic_comment_marker(beg,
str +
len - beg)))
14679 len = end - beg - 3;
14691 case '\'':
case '"':
case ':':
case ';':
14698 case '\'':
case '"':
case ':':
case ';':
14709 if (!indicator)
return FALSE;
14717 if (*
str ==
'\\') {
14743 for (
i = 0;
i <
n; ++
i) {
14744 if (s[
i] ==
'-') s[
i] =
'_';
14756 }
while (++mc < magic_comments +
numberof(magic_comments));
14767 set_file_encoding(
struct parser_params *p,
const char *
str,
const char *send)
14770 const char *beg =
str;
14774 if (send -
str <= 6)
return;
14776 case 'C':
case 'c':
str += 6;
continue;
14777 case 'O':
case 'o':
str += 5;
continue;
14778 case 'D':
case 'd':
str += 4;
continue;
14779 case 'I':
case 'i':
str += 3;
continue;
14780 case 'N':
case 'n':
str += 2;
continue;
14781 case 'G':
case 'g':
str += 1;
continue;
14782 case '=':
case ':':
14795 if (++
str >= send)
return;
14798 if (*
str !=
'=' && *
str !=
':')
return;
14804 s =
rb_str_new(beg, parser_encode_length(p, beg,
str - beg));
14820 (
unsigned char)p->
lex.
pcur[0] == 0xbb &&
14821 (
unsigned char)p->
lex.
pcur[1] == 0xbf) {
14836 #define ambiguous_operator(tok, op, syn) ( \
14837 rb_warning0("`"op"' after local variable or literal is interpreted as binary operator"), \
14838 rb_warning0("even though it seems like "syn""))
14840 #define ambiguous_operator(tok, op, syn) \
14841 dispatch2(operator_ambiguous, TOKEN2VAL(tok), rb_str_new_cstr(syn))
14843 #define warn_balanced(tok, op, syn) ((void) \
14844 (!IS_lex_state_for(last_state, EXPR_CLASS|EXPR_DOT|EXPR_FNAME|EXPR_ENDFN) && \
14845 space_seen && !ISSPACE(c) && \
14846 (ambiguous_operator(tok, op, syn), 0)), \
14847 (enum yytokentype)(tok))
14853 char *point = &
str[seen_point];
14854 size_t fraclen =
len-seen_point-1;
14855 memmove(point, point+1, fraclen+1);
14863 yyerror0(
"numeric literal without digits");
14864 if (
peek(p,
'_')) nextc(p);
14866 return set_integer_literal(p,
INT2FIX(0), 0);
14872 int is_float, seen_point, seen_e, nondigit;
14875 is_float = seen_point = seen_e = nondigit = 0;
14878 if (c ==
'-' || c ==
'+') {
14885 if (c ==
'x' || c ==
'X') {
14891 if (nondigit)
break;
14898 }
while ((c = nextc(p)) != -1);
14902 if (
toklen(p) == start) {
14903 return no_digits(p);
14905 else if (nondigit)
goto trailing_uc;
14909 if (c ==
'b' || c ==
'B') {
14912 if (c ==
'0' || c ==
'1') {
14915 if (nondigit)
break;
14919 if (c !=
'0' && c !=
'1')
break;
14922 }
while ((c = nextc(p)) != -1);
14926 if (
toklen(p) == start) {
14927 return no_digits(p);
14929 else if (nondigit)
goto trailing_uc;
14933 if (c ==
'd' || c ==
'D') {
14939 if (nondigit)
break;
14946 }
while ((c = nextc(p)) != -1);
14950 if (
toklen(p) == start) {
14951 return no_digits(p);
14953 else if (nondigit)
goto trailing_uc;
14961 if (c ==
'o' || c ==
'O') {
14964 if (c == -1 || c ==
'_' || !
ISDIGIT(c)) {
14965 return no_digits(p);
14968 if (c >=
'0' && c <=
'7') {
14973 if (nondigit)
break;
14977 if (c < '0' || c >
'9')
break;
14978 if (c >
'7')
goto invalid_octal;
14981 }
while ((c = nextc(p)) != -1);
14982 if (
toklen(p) > start) {
14985 if (nondigit)
goto trailing_uc;
14994 if (c >
'7' && c <=
'9') {
14998 else if (c ==
'.' || c ==
'e' || c ==
'E') {
15004 return set_integer_literal(p,
INT2FIX(0), suffix);
15010 case '0':
case '1':
case '2':
case '3':
case '4':
15011 case '5':
case '6':
case '7':
case '8':
case '9':
15017 if (nondigit)
goto trailing_uc;
15018 if (seen_point || seen_e) {
15023 if (c0 == -1 || !
ISDIGIT(c0)) {
15048 if (c !=
'-' && c !=
'+' && !
ISDIGIT(c)) {
15053 tokadd(p, nondigit);
15057 nondigit = (c ==
'-' || c ==
'+') ? c : 0;
15061 if (nondigit)
goto decode_num;
15078 parser_show_error_line(p, &loc);
15088 v = parse_rational(p,
tok(p),
toklen(p), seen_point);
15098 return set_number_literal(p,
v,
type, suffix);
15122 int c2 = escaped_control_code(c);
15134 if (!parser_isascii(p)) {
15135 if (tokadd_mbchar(p, c) == -1)
return 0;
15140 const char *start = p->
lex.
pcur - 1, *
ptr = start;
15142 int n = parser_precise_mbclen(p,
ptr);
15143 if (
n < 0)
return -1;
15146 rb_warn2(
"`?' just followed by `%.*s' is interpreted as" \
15147 " a conditional operator, put a space after `?'",
15152 else if (c ==
'\\') {
15153 if (
peek(p,
'u')) {
15156 tokadd_utf8(p, &enc, -1, 0, 0);
15160 if (tokadd_mbchar(p, c) == -1)
return 0;
15163 c = read_escape(p, 0, &enc);
15181 const char *ptok = p->
lex.
pcur;
15189 if (c == -1 || !
ISALNUM(c)) {
15196 yyerror0(
"unknown type of %string");
15200 if (c == -1 ||
term == -1) {
15201 compile_error(p,
"unterminated quoted string meets end of file");
15251 yyerror0(
"unknown type of %string");
15255 if ((c = nextc(p)) ==
'=') {
15272 if (tokadd_mbchar(p, c) == -1)
return -1;
15274 }
while (parser_is_identchar(p));
15295 const unsigned long nth_ref_max =
15296 ((FIXNUM_MAX < INT_MAX) ? FIXNUM_MAX : INT_MAX) >> 1;
15300 if (overflow ||
n > nth_ref_max) {
15323 if (parser_is_identchar(p)) {
15355 if (parser_is_identchar(p)) {
15356 if (tokadd_mbchar(p, c) == -1)
return 0;
15379 case '1':
case '2':
case '3':
15380 case '4':
case '5':
case '6':
15381 case '7':
case '8':
case '9':
15386 }
while (c != -1 &&
ISDIGIT(c));
15394 if (!parser_is_identchar(p)) {
15397 compile_error(p,
"`$' without identifiers is not allowed as a global variable name");
15401 compile_error(p,
"`$%c' is not allowed as a global variable name", c);
15403 parser_show_error_line(p, &loc);
15412 if (tokadd_ident(p, c))
return 0;
15414 tokenize_ident(p, last_state);
15422 if (
n < 0)
return false;
15435 while (
n > args->
pos) {
15447 register int c = nextc(p);
15459 if (c == -1 || !parser_is_identchar(p)) {
15462 if (result ==
tIVAR) {
15463 compile_error(p,
"`@' without identifiers is not allowed as an instance variable name");
15466 compile_error(p,
"`@@' without identifiers is not allowed as a class variable name");
15468 parser_show_error_line(p, &loc);
15476 if (result ==
tIVAR) {
15477 compile_error(p,
"`@%c' is not allowed as an instance variable name", c);
15480 compile_error(p,
"`@@%c' is not allowed as a class variable name", c);
15482 parser_show_error_line(p, &loc);
15488 if (tokadd_ident(p, c))
return 0;
15489 tokenize_ident(p, last_state);
15503 if (tokadd_mbchar(p, c) == -1)
return 0;
15505 }
while (parser_is_identchar(p));
15506 if ((c ==
'!' || c ==
'?') && !
peek(p,
'=')) {
15557 if (kw->
id[0] != kw->
id[1])
15572 else if (p->
lex.
state == EXPR_FNAME) {
15579 ident = tokenize_ident(p, last_state);
15583 lvar_defined(p, ident)) {
15593 int space_seen = 0;
15597 int fallthru =
FALSE;
15617 switch (c = nextc(p)) {
15625 case ' ':
case '\t':
case '\f':
case '\r':
15629 while ((c = nextc(p))) {
15631 case ' ':
case '\t':
case '\f':
case '\r':
15648 if (comment_at_top(p)) {
15658 c = (
IS_lex_state(EXPR_BEG|EXPR_CLASS|EXPR_FNAME|EXPR_DOT) &&
15666 goto normal_newline;
15671 switch (c = nextc(p)) {
15672 case ' ':
case '\t':
case '\f':
case '\r':
15683 if (
peek(p,
'.') == (c ==
'&')) {
15705 goto normal_newline;
15714 if ((c = nextc(p)) ==
'*') {
15715 if ((c = nextc(p)) ==
'=') {
15722 rb_warning0(
"`**' interpreted as argument prefix");
15740 rb_warning0(
"`*' interpreted as argument prefix");
15776 if (word_match_p(p,
"begin", 5)) {
15777 int first_p =
TRUE;
15792 if (c ==
'=' && word_match_p(p,
"end", 3)) {
15804 if ((c = nextc(p)) ==
'=') {
15805 if ((c = nextc(p)) ==
'=') {
15814 else if (c ==
'>') {
15826 int token = heredoc_identifier(p);
15838 if ((c = nextc(p)) ==
'>') {
15845 if ((c = nextc(p)) ==
'=') {
15858 if ((c = nextc(p)) ==
'=') {
15862 if ((c = nextc(p)) ==
'=') {
15901 return parse_qmark(p, space_seen);
15904 if ((c = nextc(p)) ==
'&') {
15906 if ((c = nextc(p)) ==
'=') {
15914 else if (c ==
'=') {
15919 else if (c ==
'.') {
15928 !(c ==
'\'' || c ==
'"' ||
15930 rb_warning0(
"`&' interpreted as argument prefix");
15944 if ((c = nextc(p)) ==
'|') {
15946 if ((c = nextc(p)) ==
'=') {
15987 return parse_numeric(p,
'+');
16029 if ((c = nextc(p)) ==
'.') {
16030 if ((c = nextc(p)) ==
'.') {
16032 rb_warn0(
"... at EOL, should be parenthesized?");
16042 parse_numeric(p,
'.');
16044 yyerror0(
"unexpected fraction part after numeric literal");
16047 yyerror0(
"no .<digit> floating literal anymore; put 0 before dot");
16058 case '0':
case '1':
case '2':
case '3':
case '4':
16059 case '5':
case '6':
case '7':
case '8':
case '9':
16060 return parse_numeric(p, c);
16121 if ((c = nextc(p)) ==
'=') {
16128 arg_ambiguous(p,
'/');
16136 if ((c = nextc(p)) ==
'=') {
16156 if ((c = nextc(p)) !=
'@') {
16170 else if (!space_seen) {
16177 rb_warning0(
"parentheses after method name is interpreted as "
16178 "an argument list, not a decomposed argument");
16189 if ((c = nextc(p)) ==
']') {
16191 if ((c = nextc(p)) ==
'=') {
16243 if (c ==
' ')
return tSP;
16249 return parse_percent(p, space_seen, last_state);
16252 return parse_gvar(p, last_state);
16255 return parse_atmark(p, last_state);
16258 if (
was_bol(p) && whole_match_p(p,
"__END__", 7, 0)) {
16273 if (!parser_is_identchar(p)) {
16274 compile_error(p,
"Invalid char `\\x%02X' in expression", c);
16283 return parse_ident(p, c, cmd_state);
16293 t = parser_yylex(p);
16307 #define LVAR_USED ((ID)1 << (sizeof(ID) * CHAR_BIT - 1))
16316 nd_set_loc(
n, loc);
16331 nodetype(
NODE *node)
16337 nodeline(
NODE *node)
16343 newline_node(
NODE *node)
16346 node = remove_begin(node);
16375 NODE *end, *
h = head, *nd;
16377 if (tail == 0)
return head;
16379 if (
h == 0)
return tail;
16387 parser_warning(p,
h,
"unused literal ignored");
16407 parser_warning(p, tail,
"statement not reached");
16417 tail->nd_end = tail;
16419 end->nd_next = tail;
16420 h->nd_end = tail->nd_end;
16432 if (
list->nd_next) {
16439 list->nd_alen += 1;
16441 list->nd_next->nd_end =
last->nd_next;
16450 list_concat(
NODE *head,
NODE *tail)
16454 if (head->nd_next) {
16455 last = head->nd_next->nd_end;
16461 head->nd_alen += tail->nd_alen;
16462 last->nd_next = tail;
16463 if (tail->nd_next) {
16464 head->nd_next->nd_end = tail->nd_next->nd_end;
16467 head->nd_next->nd_end = tail;
16478 if (
NIL_P(tail))
return 1;
16480 compile_error(p,
"string literal encodings differ (%s / %s)",
16499 if (!head)
return tail;
16500 if (!tail)
return head;
16506 head = list_append(p, node, head);
16514 return list_append(p, head, tail);
16521 if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
16524 lit = headlast->nd_lit;
16527 lit = head->nd_lit;
16530 if (!literal_concat0(p, lit, tail->nd_lit)) {
16532 rb_discard_node(p, head);
16533 rb_discard_node(p, tail);
16536 rb_discard_node(p, tail);
16539 list_append(p, head, tail);
16545 if (!literal_concat0(p, head->nd_lit, tail->nd_lit))
16547 tail->nd_lit = head->nd_lit;
16548 rb_discard_node(p, head);
16551 else if (
NIL_P(tail->nd_lit)) {
16553 head->nd_alen += tail->nd_alen - 1;
16554 head->nd_next->nd_end->nd_next = tail->nd_next;
16555 head->nd_next->nd_end = tail->nd_next->nd_end;
16556 rb_discard_node(p, tail);
16558 else if (htype ==
NODE_DSTR && (headlast = head->nd_next->nd_end->nd_head) &&
16560 lit = headlast->nd_lit;
16561 if (!literal_concat0(p, lit, tail->nd_lit))
16563 tail->nd_lit =
Qnil;
16576 list_append(p, head, tail);
16588 node = list_append(p, dstr, node);
16641 if (block) block_dup_check(p, args, block);
16642 ret = new_qcall(p, atype, recv, mid, args, op_loc, loc);
16643 if (block) ret = method_add_block(p, ret, block, loc);
16648 #define nd_once_body(node) (nd_type(node) == NODE_ONCE ? (node)->nd_body : node)
16653 int line = op_loc->beg_pos.lineno;
16668 const VALUE lit =
n->nd_lit;
16670 match->nd_args = reg_named_capture_assign(p, lit, loc);
16695 # if WARN_PAST_SCOPE
16701 if (vtable_included(past,
id))
return 1;
16710 #define WARN_LOCATION(type) do { \
16711 if (p->warn_location) { \
16713 VALUE file = rb_source_location(&line); \
16714 rb_warn3(type" in eval may not return location in binding;" \
16715 " use Binding#source_location instead\n" \
16716 "%"PRIsWARN":%d: warning: in `%"PRIsWARN"'", \
16717 file, WARN_I(line), rb_id2str(rb_frame_this_func())); \
16730 "%s:%d: %s block here",
16732 outer ?
"outer" :
"inner");
16733 parser_show_error_line(p, &
used->nd_loc);
16774 switch (id_type(
id)) {
16776 if (dyna_in_block(p) && dvar_defined_ref(p,
id, &vidp)) {
16786 if (local_id_ref(p,
id, &vidp)) {
16797 if (numparam_nested_p(p))
return 0;
16803 # if WARN_PAST_SCOPE
16824 opt_arg_append(
NODE *opt_list,
NODE *opt)
16826 NODE *opts = opt_list;
16829 while (opts->nd_next) {
16830 opts = opts->nd_next;
16833 opts->nd_next = opt;
16839 kwd_append(
NODE *kwlist,
NODE *kw)
16842 NODE *kws = kwlist;
16844 while (kws->nd_next) {
16845 kws = kws->nd_next;
16869 return list_append(p, symbols, symbol);
16888 nd_set_loc(node, loc);
16899 nd_set_loc(node, loc);
16901 if (!
NIL_P(node->nd_lit)) reg_fragment_check(p, node->nd_lit, options);
16905 if (reg_fragment_check(p, tail, options) &&
prev && !
NIL_P(
prev->nd_lit)) {
16907 if (!literal_concat0(p, lit, tail)) {
16912 rb_discard_node(p,
list->nd_head);
16913 rb_discard_node(p,
list);
16924 if (!node->nd_next) {
16956 nd_set_loc(node, loc);
16960 nd_set_loc(node, loc);
16977 if (lit ==
Qundef)
return;
16987 if (!
NIL_P(line)) {
16988 rb_warning1(
"duplicated `when' clause with line %d is ignored",
17005 if (dyna_in_block(p)) {
17008 if (local_id(p,
id))
return 1;
17022 if (ripper_is_node_yylval(re)) {
17024 re =
RNODE(re)->nd_rval;
17026 if (ripper_is_node_yylval(opt)) {
17027 options = (
int)
RNODE(opt)->nd_tag;
17028 opt =
RNODE(opt)->nd_rval;
17033 return dispatch2(regexp_literal, re, opt);
17039 static const char rb_parser_lex_state_names[][8] = {
17040 "BEG",
"END",
"ENDARG",
"ENDFN",
"ARG",
17041 "CMDARG",
"MID",
"FNAME",
"DOT",
"CLASS",
17042 "LABEL",
"LABELED",
"FITEM",
17049 unsigned int mask = 1;
17050 static const char none[] =
"NONE";
17053 if ((
unsigned)state &
mask) {
17087 append_lex_state_name(from, mesg);
17089 append_lex_state_name(to, mesg);
17116 const char *
name,
int line)
17119 append_bitstack_value(stack, mesg);
17137 append_lex_state_name(p->
lex.
state, mesg);
17158 yylloc->beg_pos.lineno = sourceline;
17159 yylloc->beg_pos.column = beg_pos;
17160 yylloc->end_pos.lineno = sourceline;
17161 yylloc->end_pos.column = end_pos;
17197 v = valp->
node->nd_rval;
17204 v = valp->
node->nd_lit;
17232 if (!
id)
return -1;
17235 *
err =
"Can't change the value of self";
17238 *
err =
"Can't assign to nil";
17241 *
err =
"Can't assign to true";
17244 *
err =
"Can't assign to false";
17247 *
err =
"Can't assign to __FILE__";
17250 *
err =
"Can't assign to __LINE__";
17253 *
err =
"Can't assign to __ENCODING__";
17256 switch (id_type(
id)) {
17258 if (dyna_in_block(p)) {
17271 if (!local_id(p,
id)) local_var(p,
id);
17279 *
err =
"dynamic constant assignment";
17292 const char *
err = 0;
17310 const char *
err = 0;
17312 if (
err) lhs = assign_error(p, lhs);
17318 is_private_local_id(
ID name)
17331 if (is_private_local_id(
name))
return 1;
17332 if (dyna_in_block(p)) {
17333 if (dvar_curr(p,
name)) {
17334 yyerror0(
"duplicated argument name");
17336 else if (dvar_defined(p,
name) || local_id(p,
name)) {
17345 if (local_id(p,
name)) {
17346 yyerror0(
"duplicated argument name");
17355 shadowing_lvar_0(p,
name);
17368 if (!shadowing_lvar_0(p,
name))
return;
17402 compile_error(p,
"Can't set variable $%c", (
int)node->nd_nth);
17413 return list_append(p, node1, node2);
17415 node1->nd_head = arg_append(p, node1->nd_head, node2, loc);
17419 node1->nd_body = list_append(p,
NEW_LIST(node1->nd_body, &node1->nd_body->
nd_loc), node2);
17425 node1->nd_body = list_append(p, node1->nd_body, node2);
17435 if (!node2)
return node1;
17438 if (node1->nd_head)
17439 node1->nd_head = arg_concat(p, node1->nd_head, node2, loc);
17441 node1->nd_head =
NEW_LIST(node2, loc);
17445 node1->nd_body = list_concat(
NEW_LIST(node1->nd_body, loc), node2);
17451 node1->nd_body = list_concat(node1->nd_body, node2);
17461 if ((n1 = splat_array(
args)) != 0) {
17462 return list_append(p, n1, last_arg);
17464 return arg_append(p,
args, last_arg, loc);
17472 return list_concat(n1, rest_arg);
17474 return arg_concat(p,
args, rest_arg, loc);
17478 splat_array(
NODE* node)
17492 if (local_id_ref(p, rhs->nd_vid, &vidp)) {
17498 if (dvar_defined_ref(p, rhs->nd_vid, &vidp)) {
17504 for (rhs = rhs->nd_head; rhs; rhs = rhs->nd_next) {
17505 mark_lvar_used(p, rhs->nd_head);
17515 if (!lhs)
return 0;
17526 lhs->nd_value = rhs;
17527 nd_set_loc(lhs, loc);
17531 lhs->nd_args = arg_append(p, lhs->nd_args, rhs, loc);
17532 nd_set_loc(lhs, loc);
17546 NODE *void_node = 0, *vn;
17558 return void_node ? void_node : node;
17565 if (node->nd_body->nd_body) {
17569 return void_node ? void_node : node;
17572 while (node->nd_next) {
17573 node = node->nd_next;
17575 node = node->nd_head;
17579 node = node->nd_body;
17584 if (!node->nd_body) {
17587 else if (!node->nd_else) {
17590 vn = value_expr_check(p, node->nd_body);
17591 if (!vn)
return NULL;
17592 if (!void_node) void_node = vn;
17593 node = node->nd_else;
17598 node = node->nd_1st;
17605 mark_lvar_used(p, node);
17619 NODE *void_node = value_expr_check(p, node);
17630 const char *useless = 0;
17637 switch (node->nd_mid) {
17668 useless =
"a variable";
17671 useless =
"a constant";
17677 useless =
"a literal";
17702 useless =
"defined?";
17714 NODE *
const n = node;
17716 if (!node)
return n;
17719 while (node->nd_next) {
17720 void_expr(p, node->nd_head);
17721 node = node->nd_next;
17727 remove_begin(
NODE *node)
17729 NODE **
n = &node, *n1 = node;
17731 *
n = n1 = n1->nd_body;
17737 remove_begin_all(
NODE *node)
17739 NODE **
n = &node, *n1 = node;
17741 *
n = n1 = n1->nd_body;
17749 NODE *node = *body;
17755 #define subnodes(n1, n2) \
17756 ((!node->n1) ? (node->n2 ? (body = &node->n2, 1) : 0) : \
17757 (!node->n2) ? (body = &node->n1, 1) : \
17758 (reduce_nodes(p, &node->n1), body = &node->n2, 1))
17768 *body = node = node->nd_stts;
17772 *body = node = node->nd_body;
17776 body = &node->nd_end->nd_head;
17783 body = &node->nd_body;
17792 if (node->nd_else) {
17793 body = &node->nd_resq;
17809 is_static_content(
NODE *node)
17811 if (!node)
return 1;
17814 if (!(node = node->nd_head))
break;
17817 if (!is_static_content(node->nd_head))
return 0;
17818 }
while ((node = node->nd_next) != 0);
17848 if (!node->nd_value)
return 1;
17849 if (is_static_content(node->nd_value)) {
17851 parser_warn(p, node->nd_value,
"found `= literal' in conditional, should be ==");
17862 #define SWITCH_BY_COND_TYPE(t, w, arg) \
17864 case COND_IN_OP: break; \
17865 case COND_IN_COND: rb_##w##0(arg "literal in condition"); break; \
17866 case COND_IN_FF: rb_##w##0(arg "literal in flip-flop"); break; \
17876 if (node == 0)
return 0;
17881 if (!e_option_supplied(p)) parser_warn(p, node,
"integer literal in flip-flop");
17890 if (node == 0)
return 0;
17892 assign_in_cond(p, node);
17945 if (node == 0)
return 0;
17952 if (node == 0)
return 0;
17959 if (!
cc)
return right;
17961 return newline_node(
NEW_IF(
cc, left, right, loc));
17967 if (!
cc)
return right;
17969 return newline_node(
NEW_UNLESS(
cc, left, right, loc));
17980 NODE *node = left, *second;
17985 nd_set_line(node->nd_2nd, op_loc->beg_pos.lineno);
18006 no_blockarg(p, node);
18008 if (node->nd_next == 0) {
18009 node = node->nd_head;
18022 if (node) no_blockarg(p, node);
18066 arg_blk_pass(
NODE *node1,
NODE *node2)
18069 if (!node1)
return node2;
18070 node2->nd_head = node1;
18081 if (
args->pre_args_num)
return false;
18082 if (
args->post_args_num)
return false;
18083 if (
args->rest_arg)
return false;
18084 if (
args->opt_args)
return false;
18085 if (
args->block_arg)
return false;
18086 if (
args->kw_args)
return false;
18087 if (
args->kw_rest_arg)
return false;
18098 args->
pre_init = pre_args ? pre_args->nd_next : 0;
18101 args->
post_init = post_args ? post_args->nd_next : 0;
18111 nd_set_loc(tail, loc);
18123 rb_imemo_tmpbuf_set_ptr(tmpbuf, args);
18124 args->
imemo = tmpbuf;
18139 ID kw_bits = internal_id(p), *required_kw_vars, *kw_vars;
18141 NODE *kwn = kw_args;
18143 vtable_pop(vtargs, !!block + !!kw_rest_arg);
18144 required_kw_vars = kw_vars = &vtargs->
tbl[vtargs->
pos];
18148 --required_kw_vars;
18149 kwn = kwn->nd_next;
18152 for (kwn = kw_args; kwn; kwn = kwn->nd_next) {
18153 ID vid = kwn->nd_body->nd_vid;
18155 *required_kw_vars++ = vid;
18162 arg_var(p, kw_bits);
18163 if (kw_rest_arg) arg_var(p, kw_rest_arg);
18164 if (block) arg_var(p, block);
18169 else if (kw_rest_arg ==
idNil) {
18172 else if (kw_rest_arg) {
18186 args = new_args_tail(p, 0, 0, 0, 0);
18187 nd_set_loc(args, &loc);
18189 args->nd_ainfo->pre_args_num = max_numparam;
18199 aryptn->nd_pconst = constant;
18220 rb_imemo_tmpbuf_set_ptr(tmpbuf, apinfo);
18222 apinfo->
imemo = tmpbuf;
18248 hshptn->nd_pconst = constant;
18256 NODE *node, *kw_rest_arg_node;
18258 if (kw_rest_arg ==
idNil) {
18261 else if (kw_rest_arg) {
18262 kw_rest_arg_node = assignable(p, kw_rest_arg, 0, loc);
18265 kw_rest_arg_node =
NULL;
18280 rb_warn0L(
nd_line(node),
"Pattern matching is experimental, and the behavior may change in future versions of Ruby!");
18296 nd_set_loc(node, loc);
18299 lit = node->nd_lit;
18302 nd_set_loc(node, loc);
18317 node->nd_next->nd_end = node->nd_next;
18318 node->nd_next->nd_next = 0;
18320 list_concat(*result, node);
18332 while (hash && hash->nd_head && hash->nd_next) {
18333 NODE *head = hash->nd_head;
18334 NODE *value = hash->nd_next;
18335 NODE *next = value->nd_next;
18339 st_lookup(literal_keys, (
key = head->nd_lit), &data)) {
18341 "key %+"PRIsVALUE" is duplicated and overwritten on line %d",
18342 head->nd_lit,
nd_line(head));
18343 head = ((
NODE *)data)->nd_next;
18344 head->nd_head = block_append(p, head->nd_head, value->nd_head);
18354 if (!result) result = hash;
18355 else list_concat(result, hash);
18364 if (hash) hash = remove_duplicate_keys(p, hash);
18372 if (is_private_local_id(
id)) {
18376 yyerror1(loc,
"duplicated variable name");
18390 yyerror1(loc,
"duplicated key name");
18411 ID vid = lhs->nd_vid;
18414 lhs->nd_value = rhs;
18415 nd_set_loc(lhs, loc);
18418 switch (id_type(vid)) {
18422 asgn->nd_aid = vid;
18426 else if (op ==
tANDOP) {
18427 lhs->nd_value = rhs;
18428 nd_set_loc(lhs, loc);
18434 nd_set_loc(asgn, loc);
18454 args = arg_concat(p, args, rhs, loc);
18491 yyerror1(loc,
"dynamic constant assignment");
18500 path = dispatch1(assign_error,
path);
18509 a = dispatch1(assign_error, a);
18517 return ripper_new_yylval(p,
get_id(a), dispatch1(var_field, a), 0);
18525 NODE *result = head;
18527 NODE *tmp = rescue_else ? rescue_else : rescue;
18530 result =
NEW_RESCUE(head, rescue, rescue_else, &rescue_loc);
18533 else if (rescue_else) {
18534 result = block_append(p, result, rescue_else);
18539 fixpos(result, head);
18549 if (!local->
used)
return;
18557 for (
int i = 0;
i <
cnt; ++
i) {
18559 if (is_private_local_id(
v[
i]))
continue;
18578 if (toplevel_scope && e_option_supplied(p)) warn_unused_vars = 0;
18585 # if WARN_PAST_SCOPE
18598 warn_unused_var(p, p->
lvtbl);
18601 # if WARN_PAST_SCOPE
18602 while (p->
lvtbl->past) {
18620 int cnt_args = vtable_size(p->
lvtbl->
args);
18621 int cnt_vars = vtable_size(p->
lvtbl->
vars);
18622 int cnt = cnt_args + cnt_vars;
18627 if (
cnt <= 0)
return 0;
18630 rb_imemo_tmpbuf_set_ptr(
tbl,
buf);
18633 for (
i = 0, j = cnt_args+1;
i < cnt_vars; ++
i) {
18635 if (!vtable_included(p->
lvtbl->
args,
id)) {
18641 rb_imemo_tmpbuf_set_ptr(
tbl,
buf);
18667 rb_warn1(
"`_%d' is reserved for numbered parameter; consider another name",
18674 numparam_name(p,
id);
18681 numparam_name(p,
id);
18700 if (used) used = used->
prev;
18706 else if (vtable_included(args,
id)) {
18710 int i = vtable_included(
vars,
id);
18711 if (
i && used && vidrefp) *vidrefp = &used->
tbl[
i-1];
18719 return local_id_ref(p,
id,
NULL);
18764 static const struct vtable *
18778 struct vtable *tmp = *vtblp;
18779 *vtblp = tmp->
prev;
18780 # if WARN_PAST_SCOPE
18781 if (p->past_scope_enabled) {
18783 p->
lvtbl->past = tmp;
18796 warn_unused_var(p, p->
lvtbl);
18835 if (vtable_included(args,
id)) {
18838 if ((
i = vtable_included(
vars,
id)) != 0) {
18839 if (used && vidrefp) *vidrefp = &used->
tbl[
i-1];
18844 if (!vidrefp) used = 0;
18845 if (used) used = used->
prev;
18858 return dvar_defined_ref(p,
id,
NULL);
18864 return (vtable_included(p->
lvtbl->
args,
id) ||
18872 "regexp encoding option '%c' differs from source encoding '%s'",
18918 if (c) reg_fragment_enc_error(p,
str, c);
18925 reg_fragment_setenc(p,
str, options);
18944 int back_num,
int *back_refs,
OnigRegex regex,
void *arg0)
18950 const char *s = (
const char *)
name;
18962 succ =
arg->succ_block;
18964 succ = block_append(p, succ, node);
18965 arg->succ_block = succ;
18976 arg.succ_block = 0;
18980 if (!
arg.succ_block)
return 0;
18981 return arg.succ_block->nd_next;
18987 reg_fragment_setenc(p,
str, options);
19004 re = parser_reg_compile(p,
str, options);
19021 if (c) reg_fragment_enc_error(p,
str, c);
19054 static const YYLTYPE default_location = {{1, 0}, {1, 0}};
19055 const YYLTYPE *
const LOC = &default_location;
19061 node = block_append(p, node, print);
19071 node = block_append(p, split, node);
19076 node = block_append(p, chomp, node);
19096 const ID max_id = RB_ID_SERIAL_MAX & ~0xffff;
19112 p->delayed.token =
Qnil;
19114 p->parsing_thread =
Qnil;
19124 #define parser_mark ripper_parser_mark
19125 #define parser_free ripper_parser_free
19129 parser_mark(
void *
ptr)
19159 parser_free(
void *
ptr)
19167 for (local = p->
lvtbl; local; local =
prev) {
19183 parser_memsize(
const void *
ptr)
19187 size_t size =
sizeof(*p);
19190 for (local = p->
lvtbl; local; local = local->
prev) {
19191 size +=
sizeof(*local);
19212 #undef rb_reserved_word
19217 return reserved_word(
str,
len);
19225 &parser_data_type, p);
19226 parser_initialize(p);
19243 #define rb_parser_end_seen_p ripper_parser_end_seen_p
19244 #define rb_parser_encoding ripper_parser_encoding
19245 #define rb_parser_get_yydebug ripper_parser_get_yydebug
19246 #define rb_parser_set_yydebug ripper_parser_set_yydebug
19247 #define rb_parser_get_debug_output ripper_parser_get_debug_output
19248 #define rb_parser_set_debug_output ripper_parser_set_debug_output
19249 static VALUE ripper_parser_end_seen_p(
VALUE vparser);
19250 static VALUE ripper_parser_encoding(
VALUE vparser);
19251 static VALUE ripper_parser_get_yydebug(
VALUE self);
19253 static VALUE ripper_parser_get_debug_output(
VALUE self);
19254 static VALUE ripper_parser_set_debug_output(
VALUE self,
VALUE output);
19263 ripper_error_p(
VALUE vparser)
19310 rb_parser_get_yydebug(
VALUE self)
19367 #define HEAPCNT(n, size) ((n) * (size) / sizeof(YYSTYPE))
19370 #define NEWHEAP() rb_imemo_tmpbuf_parser_heap(0, p->heap, 0)
19371 #define ADD2HEAP(new, cnt, ptr) ((p->heap = (new))->ptr = (ptr), \
19372 (new)->cnt = (cnt), (ptr))
19402 if (
n->ptr ==
ptr) {
19404 if (
n->cnt)
n->cnt =
cnt;
19407 }
while ((
n =
n->next) !=
NULL);
19419 while ((
n = *prev) !=
NULL) {
19420 if (
n->ptr ==
ptr) {
19465 count_char(
const char *
str,
int c)
19468 while (
str[
n] == c) ++
n;
19482 if (*yystr ==
'"') {
19483 size_t yyn = 0, bquote = 0;
19484 const char *yyp = yystr;
19490 bquote = count_char(yyp+1,
'`') + 1;
19491 if (yyres)
memcpy(&yyres[yyn], yyp, bquote);
19499 if (bquote && count_char(yyp+1,
'\'') + 1 == bquote) {
19500 if (yyres)
memcpy(yyres + yyn, yyp, bquote);
19506 if (yyp[1] && yyp[1] !=
'\'' && yyp[2] ==
'\'') {
19507 if (yyres)
memcpy(yyres + yyn, yyp, 3);
19512 goto do_not_strip_quotes;
19515 goto do_not_strip_quotes;
19518 if (*++yyp !=
'\\')
19519 goto do_not_strip_quotes;
19535 do_not_strip_quotes: ;
19538 if (!yyres)
return strlen(yystr);
19540 return (
YYSIZE_T)(yystpcpy(yyres, yystr) - yyres);
19545 #ifdef RIPPER_DEBUG
19550 if (x ==
Qfalse)
return x;
19551 if (x ==
Qtrue)
return x;
19552 if (x ==
Qnil)
return x;
19570 x = ((
NODE *)x)->nd_rval;
19584 #define validate(x) ((x) = get_value(x))
19613 return rb_funcall(p->value, mid, 3, a, b, c);
19623 return rb_funcall(p->value, mid, 4, a, b, c, d);
19634 return rb_funcall(p->value, mid, 5, a, b, c, d, e);
19647 return rb_funcall(p->value, mid, 7, a, b, c, d, e,
f, g);
19656 if (
nd_type(nd) != NODE_RIPPER)
return 0;
19661 ripper_get_value(
VALUE v)
19668 return nd->nd_rval;
19696 "gets returned %"PRIsVALUE" (expected String or nil)",
19713 &parser_data_type, p);
19718 #define ripper_initialized_p(r) ((r)->lex.input != 0)
19739 p->
lex.
gets = ripper_lex_io_get;
19742 p->
lex.
gets = ripper_lex_get_generic;
19750 if (
NIL_P(fname)) {
19758 parser_initialize(p);
19768 ripper_parse0(
VALUE parser_v)
19775 ripper_yyparse((
void*)p);
19782 ripper_ensure(
VALUE parser_v)
19787 p->parsing_thread =
Qnil;
19798 ripper_parse(
VALUE self)
19803 if (!ripper_initialized_p(p)) {
19806 if (!
NIL_P(p->parsing_thread)) {
19813 rb_ensure(ripper_parse0,
self, ripper_ensure,
self);
19826 ripper_column(
VALUE self)
19832 if (!ripper_initialized_p(p)) {
19835 if (
NIL_P(p->parsing_thread))
return Qnil;
19847 ripper_filename(
VALUE self)
19852 if (!ripper_initialized_p(p)) {
19866 ripper_lineno(
VALUE self)
19871 if (!ripper_initialized_p(p)) {
19874 if (
NIL_P(p->parsing_thread))
return Qnil;
19885 ripper_state(
VALUE self)
19890 if (!ripper_initialized_p(p)) {
19893 if (
NIL_P(p->parsing_thread))
return Qnil;
19904 ripper_token(
VALUE self)
19910 if (!ripper_initialized_p(p)) {
19913 if (
NIL_P(p->parsing_thread))
return Qnil;
19919 #ifdef RIPPER_DEBUG
19954 ripper_init_eventids1();
19955 ripper_init_eventids2();
19967 InitVM_ripper(
void)
19989 #ifdef RIPPER_DEBUG
20037 ripper_init_eventids1_table(Ripper);
20038 ripper_init_eventids2_table(Ripper);